From: <ta...@us...> - 2018-04-06 12:33:05
|
Revision: 63917 http://sourceforge.net/p/firebird/code/63917 Author: tabloid Date: 2018-04-06 12:32:55 +0000 (Fri, 06 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_5746.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_5746.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5746.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_5746.fbt 2018-04-06 12:32:55 UTC (rev 63917) @@ -0,0 +1,107 @@ +{ +'id': 'bugs.core_5746', +'qmid': None, +'tracker_id': 'CORE-5746', +'title': "Remove the restriction on create/delete, enable/disable the user indexes in system tables", +'description': + """ + Test verifies that one may to: + * create two indices (common and calculated) and + * gather statistics on them + * make some of them inactive and return then to active state + * drop them. + This is checked first under SYSDBA account, then under common non-privileged user (and these attempts should raise exception) + and finally we grant DDL privilege to this user (ALTER ANY TABLE) and check again, and this should pass OK. + + ::: NB ::: + + Restictions about create/alter/drop indexes on system tables that are checked by test for CORE-4731 should be removed. + + Checked on: + 3.0.4.32944: OK, 1.500s. + 4.0.0.952: OK, 1.079s. + """, +'min_versions': '3.0.4', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'test_type': 'ISQL', + 'test_script': + """ + set list on; + set plan on; + create descending index systable_comm_idx on rdb$relations(rdb$format); + create descending index systable_calc_idx on rdb$relations computed by ( 1 + rdb$format ); + set statistics index systable_comm_idx; + set statistics index systable_calc_idx; + + select sign(count(*)) as sign_count from rdb$relations where rdb$format < 65537; + select sign(count(*)) as sign_count from rdb$relations where 1 + rdb$format < 65537; + + alter index systable_calc_idx inactive; + alter index systable_calc_idx active; + + drop index systable_comm_idx; + drop index systable_calc_idx; + commit; + + create or alter user tmp$c5746 password '123'; + commit; + + connect '$(DSN)' user tmp$c5746 password '123'; + -- this should FAIL: + create descending index systable_comm_idx on rdb$relations(rdb$format); + commit; + + + connect '$(DSN)' user 'SYSDBA' password 'masterkey'; + grant alter any table to tmp$c5746; + commit; + + + connect '$(DSN)' user tmp$c5746 password '123'; + -- All following statements should PASS: + create descending index systable_comm_idx on rdb$relations(rdb$format); + create descending index systable_calc_idx on rdb$relations computed by ( 1 + rdb$format ); + set statistics index systable_comm_idx; + set statistics index systable_calc_idx; + + select sign(count(*)) as sign_count from rdb$relations where rdb$format < 65537; + select sign(count(*)) as sign_count from rdb$relations where 1 + rdb$format < 65537; + + alter index systable_calc_idx inactive; + alter index systable_calc_idx active; + + drop index systable_comm_idx; + drop index systable_calc_idx; + commit; + + + connect '$(DSN)' user 'SYSDBA' password 'masterkey'; + drop user tmp$c5746; + commit; + + """, + 'expected_stdout': + """ + PLAN (RDB$RELATIONS INDEX (SYSTABLE_COMM_IDX)) + SIGN_COUNT 1 + PLAN (RDB$RELATIONS INDEX (SYSTABLE_CALC_IDX)) + SIGN_COUNT 1 + + PLAN (RDB$RELATIONS INDEX (SYSTABLE_COMM_IDX)) + SIGN_COUNT 1 + PLAN (RDB$RELATIONS INDEX (SYSTABLE_CALC_IDX)) + SIGN_COUNT 1 + """, + 'expected_stderr': + """ + Statement failed, SQLSTATE = 28000 + unsuccessful metadata update + -CREATE INDEX SYSTABLE_COMM_IDX failed + -no permission for ALTER access to TABLE RDB$RELATIONS + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_5746.fbt ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |