DROP TABLE is allowed while package HEADER contains reference on its column(s). -------------------------------------------------------------------------------
Key: CORE-4974 URL: http://tracker.firebirdsql.org/browse/CORE-4974 Project: Firebird Core Issue Type: Bug Components: Engine Reporter: Pavel Zotov Test: #### set list on; recreate table tbl_test(id int generated by default as identity, x int default 100); commit; set term ^; --------------------------------- [ 1:begin ] create package pkg_test as begin procedure sp_test(a type of column tbl_test.x); end ^ ------------------------------------------- [ 1:end ] create package body pkg_test as begin procedure sp_test (a type of column tbl_test.x) as declare c int; begin select count(*) from tbl_test t where t.x = :a into c; end end ^ set term ;^ commit; select 'Before ALTER package statement, w/o any changes in it' as msg, p.rdb$package_name, p.rdb$valid_body_flag from rdb$packages p; set term ^; --------------------------------- [ 2:begin ] alter package pkg_test as begin procedure sp_test(a type of column tbl_test.x); end ^ ------------------------------------------- [ 2:end ] set term ;^ commit; select 'After ALTER package statement, w/o any changes in it' as msg, p.rdb$package_name, p.rdb$valid_body_flag from rdb$packages p; set echo on; drop table tbl_test; ----------------- PASSED. Though reference to its column 'X' present in package HEADER. set echo off; show package pkg_test; Output: ###### MSG Before ALTER package statement, w/o any changes in it RDB$PACKAGE_NAME PKG_TEST RDB$VALID_BODY_FLAG 1 MSG After ALTER package statement, w/o any changes in it RDB$PACKAGE_NAME PKG_TEST RDB$VALID_BODY_FLAG 0 drop table tbl_test; set echo off; PKG_TEST Header source: begin procedure sp_test(a type of column tbl_test.x); ------------------------------------ [ !!! ] end Body source (invalid): begin procedure sp_test (a type of column tbl_test.x) as declare c int; begin select count(*) from tbl_test t where t.x = :a into c; end end PS. BTW, why the body of package became invalid if I did not intruduce any changes in its header (compare text between [1:begin]..[1:end] and [2:begin]..[2:end]) ? -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel