You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(24) |
Oct
(37) |
Nov
(42) |
Dec
(29) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(24) |
Feb
(24) |
Mar
(15) |
Apr
(55) |
May
(99) |
Jun
(70) |
Jul
(197) |
Aug
(329) |
Sep
(81) |
Oct
(141) |
Nov
(100) |
Dec
(157) |
2002 |
Jan
(96) |
Feb
(216) |
Mar
(78) |
Apr
(103) |
May
(29) |
Jun
(193) |
Jul
(130) |
Aug
(215) |
Sep
(262) |
Oct
(655) |
Nov
(1009) |
Dec
(655) |
2003 |
Jan
(413) |
Feb
(939) |
Mar
(527) |
Apr
(538) |
May
(439) |
Jun
(295) |
Jul
(681) |
Aug
(810) |
Sep
(835) |
Oct
(730) |
Nov
(988) |
Dec
(787) |
2004 |
Jan
(559) |
Feb
(480) |
Mar
(749) |
Apr
(565) |
May
(748) |
Jun
(529) |
Jul
(454) |
Aug
(714) |
Sep
(628) |
Oct
(857) |
Nov
(1153) |
Dec
(617) |
2005 |
Jan
(603) |
Feb
(444) |
Mar
(377) |
Apr
(579) |
May
(664) |
Jun
(407) |
Jul
(363) |
Aug
(326) |
Sep
(527) |
Oct
(522) |
Nov
(387) |
Dec
(540) |
2006 |
Jan
(355) |
Feb
(242) |
Mar
(563) |
Apr
(768) |
May
(482) |
Jun
(427) |
Jul
(440) |
Aug
(314) |
Sep
(299) |
Oct
(403) |
Nov
(333) |
Dec
(389) |
2007 |
Jan
(247) |
Feb
(335) |
Mar
(391) |
Apr
(562) |
May
(345) |
Jun
(202) |
Jul
(239) |
Aug
(288) |
Sep
(510) |
Oct
(320) |
Nov
(487) |
Dec
(387) |
2008 |
Jan
(575) |
Feb
(539) |
Mar
(762) |
Apr
(648) |
May
(625) |
Jun
(522) |
Jul
(382) |
Aug
(191) |
Sep
(426) |
Oct
(231) |
Nov
(305) |
Dec
(670) |
2009 |
Jan
(582) |
Feb
(595) |
Mar
(294) |
Apr
(461) |
May
(445) |
Jun
(597) |
Jul
(408) |
Aug
(542) |
Sep
(476) |
Oct
(437) |
Nov
(587) |
Dec
(722) |
2010 |
Jan
(456) |
Feb
(319) |
Mar
(437) |
Apr
(303) |
May
(276) |
Jun
(233) |
Jul
(155) |
Aug
(208) |
Sep
(136) |
Oct
(274) |
Nov
(241) |
Dec
(106) |
2011 |
Jan
(160) |
Feb
(244) |
Mar
(138) |
Apr
(235) |
May
(208) |
Jun
(196) |
Jul
(107) |
Aug
(77) |
Sep
(109) |
Oct
(165) |
Nov
(86) |
Dec
(211) |
2012 |
Jan
(188) |
Feb
(136) |
Mar
(273) |
Apr
(185) |
May
(149) |
Jun
(146) |
Jul
(73) |
Aug
(127) |
Sep
(103) |
Oct
(87) |
Nov
(159) |
Dec
(149) |
2013 |
Jan
(74) |
Feb
(112) |
Mar
(176) |
Apr
(139) |
May
(116) |
Jun
(160) |
Jul
(161) |
Aug
(124) |
Sep
(124) |
Oct
(82) |
Nov
(137) |
Dec
(128) |
2014 |
Jan
(116) |
Feb
(121) |
Mar
(134) |
Apr
(177) |
May
(146) |
Jun
(158) |
Jul
(154) |
Aug
(79) |
Sep
(60) |
Oct
(90) |
Nov
(184) |
Dec
(201) |
2015 |
Jan
(163) |
Feb
(263) |
Mar
(406) |
Apr
(291) |
May
(213) |
Jun
(229) |
Jul
(229) |
Aug
(111) |
Sep
(120) |
Oct
(234) |
Nov
(155) |
Dec
(153) |
2016 |
Jan
(147) |
Feb
(188) |
Mar
(363) |
Apr
(304) |
May
(199) |
Jun
(218) |
Jul
(136) |
Aug
(128) |
Sep
(120) |
Oct
(123) |
Nov
(102) |
Dec
(156) |
2017 |
Jan
(123) |
Feb
(114) |
Mar
(132) |
Apr
(44) |
May
(143) |
Jun
(83) |
Jul
(98) |
Aug
(59) |
Sep
(58) |
Oct
(12) |
Nov
(14) |
Dec
(16) |
2018 |
Jan
(18) |
Feb
(24) |
Mar
(41) |
Apr
(16) |
May
(19) |
Jun
(31) |
Jul
(3) |
Aug
(33) |
Sep
(11) |
Oct
(11) |
Nov
|
Dec
|
2019 |
Jan
(21) |
Feb
(66) |
Mar
(72) |
Apr
(69) |
May
(63) |
Jun
(49) |
Jul
(55) |
Aug
(38) |
Sep
(66) |
Oct
(51) |
Nov
(66) |
Dec
(97) |
2020 |
Jan
(98) |
Feb
(95) |
Mar
(83) |
Apr
(121) |
May
(91) |
Jun
(137) |
Jul
(94) |
Aug
(91) |
Sep
(60) |
Oct
(81) |
Nov
(82) |
Dec
(64) |
2021 |
Jan
(66) |
Feb
(50) |
Mar
(52) |
Apr
(110) |
May
(160) |
Jun
(94) |
Jul
(97) |
Aug
(99) |
Sep
(160) |
Oct
(118) |
Nov
(117) |
Dec
(119) |
2022 |
Jan
(90) |
Feb
(93) |
Mar
(75) |
Apr
(70) |
May
(61) |
Jun
(153) |
Jul
(82) |
Aug
(118) |
Sep
(127) |
Oct
(121) |
Nov
(78) |
Dec
(84) |
2023 |
Jan
(80) |
Feb
(75) |
Mar
(92) |
Apr
(103) |
May
(89) |
Jun
(89) |
Jul
(106) |
Aug
(87) |
Sep
(183) |
Oct
(128) |
Nov
(173) |
Dec
(116) |
2024 |
Jan
(144) |
Feb
(120) |
Mar
(113) |
Apr
(107) |
May
(84) |
Jun
(95) |
Jul
(100) |
Aug
(135) |
Sep
(119) |
Oct
(93) |
Nov
(91) |
Dec
(93) |
2025 |
Jan
(104) |
Feb
(165) |
Mar
(120) |
Apr
(124) |
May
(90) |
Jun
(95) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1
(1) |
2
(1) |
3
|
4
(1) |
5
(1) |
6
(1) |
7
|
8
(2) |
9
|
10
(1) |
11
(1) |
12
|
13
(2) |
14
|
15
|
16
|
17
(1) |
18
|
19
|
20
|
21
|
22
|
23
|
24
(1) |
25
(2) |
26
(1) |
27
|
28
|
29
|
30
|
|
|
|
|
|
From: Joy X. H. <Joy...@bi...> - 2018-04-26 20:10:29
|
Hey, Do you see all the media attention that cryptocurrencies have these last months? It is a very hot topic now and a lot of people are becoming very rich because of that. But you have no clue how to get in right? Click to watch the video, that is how you start. With experienced people helping you, start with crypto currencies trading will be a piece of cake. Fast RELIABLE EASY FREE AUTOMATED Stop waiting for the right moment and start today. Try Online Beta Test : http://btc1.4cubesinc.com Thanks Joy Hunt Click here to Unsubscribe http://track.bitcoin-notification.com/unsubscribe.php?id=PDVmNWQ2MjBmNzUyMmJiMWM1ODZkYTI5NmZiNTZlNGE1QHRyYWNrLmJpdGNvaW4tbm90aWZpY2F0aW9uLmNvbT4%3D |
From: <ta...@us...> - 2018-04-25 05:27:36
|
Revision: 63925 http://sourceforge.net/p/firebird/code/63925 Author: tabloid Date: 2018-04-25 05:27:32 +0000 (Wed, 25 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_5794.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_5794.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5794.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_5794.fbt 2018-04-25 05:27:32 UTC (rev 63925) @@ -0,0 +1,91 @@ +{ +'id': 'bugs.core_5794', +'qmid': None, +'tracker_id': 'CORE-5794', +'title': "Wrong behavour FOR <select_stmt> [AS CURSOR cursorname] with next update and delete", +'description': + """ + Despite that this ticket was closed with solution "Won't fix" i see that it is useful for additional + checking of cursor stability feature (new in 3.0). + See also: + 1) test for CORE-3362; + 2) comment in this ticket (CORE-5794) by hvlad: + "Since Firebird3 <..> cursor doesn't see the changes made by "inner" statements." + """, +'min_versions': '3.0.0', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'test_type': 'ISQL', + 'test_script': + """ + recreate table test_table ( + id integer, + val integer + ); + commit; + insert into test_table (id, val) values (1, 10); + commit; + + recreate exception test_exception 'test'; + + set term ^ ; + create or alter trigger test_table_bd for test_table active before delete position 0 as + begin + rdb$set_context('USER_SESSION','TRIGGER_OLD_ID', coalesce(old.id,'null') ); + rdb$set_context('USER_SESSION','TRIGGER_OLD_VAL', coalesce(old.val,'null') ); + if (old.val >0 ) then + exception test_exception 'it is forbidden to delete row with val>0 (id = '||coalesce(old.id, 'null')||', val='||coalesce(old.val,'null')||')'; + end + ^ + + execute block as + declare curVal integer; + declare curID integer; + begin + for select id, val + from test_table + where val>0 + into curid, curval + as cursor tmpcursor + do begin + update test_table + set val=0 + where current of tmpcursor; + + -- NO error in 2.5: + delete from test_table + where current of tmpcursor; + end + end + ^ + set term ;^ + + set list on; + select mon$variable_name as ctx_var, mon$variable_value as ctx_value from mon$context_variables; + """, + 'expected_stdout': + """ + CTX_VAR TRIGGER_OLD_ID + CTX_VALUE 1 + + CTX_VAR TRIGGER_OLD_VAL + CTX_VALUE 10 + """, + 'expected_stderr': + """ + Statement failed, SQLSTATE = HY000 + exception 1 + -TEST_EXCEPTION + -it is forbidden to delete row with val>0 (id = 1, val=10) + -At trigger 'TEST_TABLE_BD' line: 6, col: 9 + At block line: 16, col: 9 + """, + 'substitutions': [('line:\s[0-9]+,','line: x'), + ('col:\s[0-9]+','col: y') + ] + +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_5794.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. |
From: <ta...@us...> - 2018-04-25 05:12:25
|
Revision: 63924 http://sourceforge.net/p/firebird/code/63924 Author: tabloid Date: 2018-04-25 05:12:20 +0000 (Wed, 25 Apr 2018) Log Message: ----------- Added title (forgot it) Modified Paths: -------------- qa/fbt-repository/trunk/tests/bugs/core_5790.fbt Modified: qa/fbt-repository/trunk/tests/bugs/core_5790.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5790.fbt 2018-04-24 20:38:17 UTC (rev 63923) +++ qa/fbt-repository/trunk/tests/bugs/core_5790.fbt 2018-04-25 05:12:20 UTC (rev 63924) @@ -2,7 +2,7 @@ 'id': 'bugs.core_5790', 'qmid': None, 'tracker_id': 'CORE-5790', -'title': '', +'title': "User with DROP DATABASE privilege can't drop database", 'description': """ Confirmed bug on 3.0.4.32924 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ta...@us...> - 2018-04-24 20:38:22
|
Revision: 63923 http://sourceforge.net/p/firebird/code/63923 Author: tabloid Date: 2018-04-24 20:38:17 +0000 (Tue, 24 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_5804.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_5804.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5804.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_5804.fbt 2018-04-24 20:38:17 UTC (rev 63923) @@ -0,0 +1,1732 @@ +{ +'id': 'bugs.core_5804', +'qmid': None, +'tracker_id': 'CORE-5804', +'title': "Multiple error in REVOKE operator", +'description': + """ + WARNING-1: test contains two separate sections for executing in 3.0.4+ and 4.0: + one can NOT use 'DEFAULT' keyword in GRANT/REVOKE role statements. + Such blocks are commented in 3.0 section. + + WARNING-2: 'SHOW GRANTS' command was replaced with appropriate select from <view> in order to provide stable output. + + Checked on: + WI-V3.0.4.32963, + WI-T4.0.0.967. + + NB. + Firebird never does any kind of implicit revoke if we use GRANT statement that contains "less" options that previously issued one. + See additional explanations in the ticket 24/Apr/18 05:06 PM + """, +'min_versions': '3.0.4', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'test_type': 'ISQL', + 'test_script': + """ + set bail on; + set wng off; + set list on; + set count on; + create or alter user tmp$c5804_john password '123'; + commit; + + set term ^; + create or alter procedure sp_msg (a_msg varchar(100)) returns(msg varchar(100)) as begin + msg=a_msg; + suspend; + end^ + set term ;^ + commit; + + recreate view v_roles as + select r.* + from rdb$roles r + where r.rdb$system_flag is distinct from 1 + ; + + recreate view v_grants as + select + p.rdb$user_type as usr_type + ,p.rdb$user as usr_name + ,p.rdb$grantor as who_gave + ,p.rdb$privilege as what_can + ,p.rdb$grant_option as has_grant + ,p.rdb$object_type as obj_type + ,p.rdb$relation_name as rel_name + ,p.rdb$field_name as fld_name + from rdb$database r left join rdb$user_privileges p on 1=1 + where p.rdb$user in( upper('tmp$c5804_john'), upper('tmp$r5804_boss'), upper('tmp$r5804_acnt') ) + order by 1,2,3,4,5,6,7,8 + ; + + recreate table t(f1 int, f2 int); + create role tmp$r5804_boss; + create role tmp$r5804_acnt; + commit; + revoke all on all from tmp$c5804_john; + commit; + + + --################################################################## + -- G R A N T O P T I O N + --################################################################## + + -- check revoke grant option for all table -- + --------------------------------------------- + + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update of the whole table'); + select v.* from v_grants v; + commit; + + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke grant option for the first field -- + --------------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update(f1) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update only field F1'); + select v.* from v_grants v; + + commit; + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke grant option for the second field -- + ---------------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update(f2) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update only field F2'); + select v.* from v_grants v; + + revoke all on all from tmp$c5804_john; + commit; + + + -- check revoke grant option for every field -- + ----------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update(f2, f1) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update of both fields F1 and F2 enumerated as list'); + select v.* from v_grants v; + + revoke all on all from tmp$c5804_john; + commit; + + --################################################################## + -- U P D A T E + --################################################################## + + -- check revoke update for all table -- + --------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege update for the whole table'); + select v.* from v_grants v; -- no rows should be displayed now! + + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke update for the first field -- + --------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update(f1) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege for update only field F1'); + select v.* from v_grants v; -- only one record with data for field 'F2' should be displayed now + + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke update the second field -- + ------------------------------------------ + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update(f2) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege for update only field F2'); + select v.* from v_grants v; -- only one record with data for field 'F1' should be displayed now + + revoke all on all from tmp$c5804_john; + commit; + + + -- check revoke update for every field -- + ----------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update(f1, f2) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege update of both fields F1 and F2 enumerated as list'); + select v.* from v_grants v; -- no rows should be displayed now + + revoke all on all from tmp$c5804_john; + commit; + + + + -- check revoke role -- + ----------------------- + grant tmp$r5804_boss to + -- role -- allowed only in 4.0 + tmp$r5804_acnt; + commit; + + -- execute procedure sp_msg('after grant tmp$r5804_boss to role tmp$r5804_acnt'); + -- select v.* from v_grants v; + + revoke tmp$r5804_boss from + -- role -- allowed only in 4.0 + tmp$r5804_acnt; + commit; + + -- execute procedure sp_msg('revoked role tmp$r5804_boss from role tmp$r5804_acnt'); + -- select v.* from v_grants v; -- no rows should be displayed now + + --################################################################# + -- R O L E S : D E F A U L T C L A U S E + --################################################################# + + /***************************************** + beg of commented block-1 + + Following is not allowed in 3.0: 'default' clause can not be used in GRANT / REVOKE role statements + + -- check revoke default of role -- + ---------------------------------- + grant default tmp$r5804_boss + -- to role -- allowed only in 4.0 + tmp$r5804_acnt; -- ==> rdb$privileges.rdb$field_name = 'D' after this + commit; + + --execute procedure sp_msg('after grant default tmp$r5804_boss to role tmp$r5804_acnt'); + --select v.* from v_roles v; + --select v.* from v_grants v; + + + execute procedure sp_msg('before revoking only default tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; -- ==> rdb$privileges.rdb$field_name must be 'D' + + revoke default tmp$r5804_boss from role tmp$r5804_acnt;-- revoke only default option + commit; + + execute procedure sp_msg('after revoked only default tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; -- ==> rdb$privileges.rdb$field_name must be NULL + + revoke tmp$r5804_boss from role tmp$r5804_acnt; -- revoke whole role + commit; + + + + -- check revoke whole role which was granted with DEFAULT clause -- + ------------------------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt; + commit; + + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoked role that was granted with DEFAULT clause'); + select v.* from v_grants v; -- ==> no rows must be displayed now + + + end of commented block-1 + ********************************/ + + --################################################################# + -- R O L E S : A D M I N C L A U S E + --################################################################# + + + -- check revoke admin option -- + ------------------------------- + grant tmp$r5804_boss to + -- role -- allowed only in 4.0 + tmp$r5804_acnt with admin option; -- rdb$roles.rdb$grant_option must be 2 after this + commit; + + execute procedure sp_msg('before revoke admin option from role that was granted with this'); + select v.* from v_grants v; + + revoke admin option for tmp$r5804_boss from + -- role -- allowed only in 4.0 + tmp$r5804_acnt; -- rdb$roles.rdb$grant_option must be 0 after this + commit; + + execute procedure sp_msg('after revoke admin option from role that was granted with this'); + select v.* from v_grants v; + + /******************************************* + beg of commented block-2 + + Following is not allowed in 3.0: 'default' clause can not be used in GRANT / REVOKE role statements + + -- check revoke default from role granted with admin option -- + -------------------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + + execute procedure sp_msg('before revoke default tmp$r5804_boss that was granted with admin option to tmp$r5804_acnt'); + select v.* from v_grants v; + + revoke default tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoke default tmp$r5804_boss that was granted with admin option to tmp$r5804_acnt'); + select v.* from v_grants v; + + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + + -- check revoke admin option from default role -- + ------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + + + execute procedure sp_msg('before revoke admin option from default role'); + select v.* from v_grants v; + + revoke admin option for tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoke admin option from default role'); + select v.* from v_grants v; + + end of commented block-2 + *******************************************/ + + + -- added by myself: + revoke tmp$r5804_boss from + -- role + tmp$r5804_acnt; + commit; + + + + /************************************* + beg of commented block-3 + Following is not allowed in 3.0: 'default' clause can not be used in GRANT / REVOKE role statements + + + -- check revoke both GO and AO from granted role -- + --------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + + execute procedure sp_msg('before revoke admin option for default role tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; + + revoke admin option for default tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoke admin option for default role tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; + + -- me: + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + end of commented block-3 + *********************************/ + + -- adding options to role grants -- + ----------------------------------- + drop role tmp$r5804_boss; + create role tmp$r5804_boss; + drop role tmp$r5804_acnt; + create role tmp$r5804_acnt; + + -- commented in 3.0: grant default tmp$r5804_boss to role tmp$r5804_acnt; + + grant tmp$r5804_boss to + -- role -- allowed in 4.0 only + tmp$r5804_acnt with admin option; + + commit; + execute procedure sp_msg('Check aux options: point-1'); + select v.* from v_grants v; + + --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + recreate table t (i int); + grant select on t to tmp$c5804_john; + commit; + execute procedure sp_msg('Check aux options: point-2a'); + select v.* from v_grants v; + + grant select on t to tmp$c5804_john with grant option; + commit; + execute procedure sp_msg('Check aux options: point-2b'); + select v.* from v_grants v; + + grant select on t to tmp$c5804_john; + commit; + execute procedure sp_msg('Check aux options: point-2c'); + select v.* from v_grants v; -- must be the same as it was at point-2a + + revoke all on t from tmp$c5804_john; + revoke tmp$r5804_boss from + -- role -- allowed in 4.0 only + tmp$r5804_acnt; + drop role tmp$r5804_boss; + drop role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('Check aux options: point-2d'); + select v.* from v_grants v; -- must be empty + + --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + create role tmp$r5804_boss; + create role tmp$r5804_acnt; + grant tmp$r5804_boss to + -- role -- allowed in 4.0 only + tmp$r5804_acnt; + commit; + execute procedure sp_msg('Check aux options: point-3'); + select v.* from v_grants v; + + + grant tmp$r5804_boss to + -- role -- allowed in 4.0 only + tmp$r5804_acnt with admin option; + commit; + execute procedure sp_msg('Check aux options: point-4'); + select v.* from v_grants v; -- has_grant must be 2 + + + /************************************* + beg of commented block-4 + Following is not allowed in 3.0: 'default' clause can not be used in GRANT / REVOKE role statements + + grant default tmp$r5804_boss + -- to role -- aloowed in 4.0 only + tmp$r5804_acnt with admin option; + commit; + execute procedure sp_msg('Check aux options: point-5'); + select v.* from v_grants v; -- fld_name must be 'D' + + + grant default tmp$r5804_boss to role tmp$r5804_acnt; + commit; + execute procedure sp_msg('Check aux options: point-6'); + select v.* from v_grants v; + + end of commented block-4 + ***************************************/ + + + drop role tmp$r5804_boss; + drop role tmp$r5804_acnt; + create role tmp$r5804_boss; + create role tmp$r5804_acnt; + commit; + + /************************************* + beg of commented block-5 + Following is not allowed in 3.0: 'default' clause can not be used in GRANT / REVOKE role statements + + grant default tmp$r5804_boss to role tmp$r5804_acnt; + commit; + execute procedure sp_msg('Check aux options: point-7'); + select v.* from v_grants v; -- fld_name must be 'D' + + end of commented block-4 + **********************************/ + + grant tmp$r5804_boss to + -- role -- aloowed in 4.0 only + tmp$r5804_acnt with admin option; + commit; + execute procedure sp_msg('Check aux options: point-8'); + select v.* from v_grants v; -- has_grant must be 2 + + + ---------------------------- final ----------------------------- + commit; + drop user tmp$c5804_john; + drop role tmp$r5804_boss; + drop role tmp$r5804_acnt; + commit; + """, + 'expected_stdout': + """ + MSG revoked grant option for update of the whole table + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 2 + + MSG revoked grant option for update only field F1 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 2 + + MSG revoked grant option for update only field F2 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + + Records affected: 2 + + MSG revoked grant option for update of both fields F1 and F2 enumerated as list + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 2 + + MSG revoked privilege update for the whole table + + + Records affected: 0 + + MSG revoked privilege for update only field F1 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 1 + + MSG revoked privilege for update only field F2 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + + Records affected: 1 + + MSG revoked privilege update of both fields F1 and F2 enumerated as list + + + Records affected: 0 + + MSG before revoke admin option from role that was granted with this + + + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 1 + + MSG after revoke admin option from role that was granted with this + + + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 0 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 1 + + MSG Check aux options: point-1 + + + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 1 + + MSG Check aux options: point-2a + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN S + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME <null> + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 2 + + MSG Check aux options: point-2b + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN S + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME <null> + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 2 + + MSG Check aux options: point-2c + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN S + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME <null> + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 2 + + MSG Check aux options: point-2d + + + Records affected: 0 + + MSG Check aux options: point-3 + + + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 0 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 1 + + MSG Check aux options: point-4 + + + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 1 + + MSG Check aux options: point-8 + + + + USR_TYPE 8 + USR_NAME TMP$R5804_ACNT + WHO_GAVE SYSDBA + WHAT_CAN M + HAS_GRANT 2 + OBJ_TYPE 13 + REL_NAME TMP$R5804_BOSS + FLD_NAME <null> + + + Records affected: 1 + """, + 'expected_stderr': + """ + """ +}, +{ + 'firebird_version': '4.0', + 'platform': 'All', + 'test_type': 'ISQL', + 'test_script': + """ + set bail on; + set wng off; + set list on; + set count on; + + create or alter user tmp$c5804_john password '123'; + commit; + + set term ^; + create or alter procedure sp_msg (a_msg varchar(100)) returns(msg varchar(100)) as begin + msg=a_msg; + suspend; + end^ + set term ;^ + commit; + + recreate view v_roles as + select r.* + from rdb$roles r + where r.rdb$system_flag is distinct from 1 + ; + + recreate view v_grants as + select + p.rdb$user_type as usr_type + ,p.rdb$user as usr_name + ,p.rdb$grantor as who_gave + ,p.rdb$privilege as what_can + ,p.rdb$grant_option as has_grant + ,p.rdb$object_type as obj_type + ,p.rdb$relation_name as rel_name + ,p.rdb$field_name as fld_name + from rdb$database r left join rdb$user_privileges p on 1=1 + where p.rdb$user in( upper('tmp$c5804_john'), upper('tmp$r5804_boss'), upper('tmp$r5804_acnt') ) + order by 1,2,3,4,5,6,7,8 + ; + + recreate table t(f1 int, f2 int); + create role tmp$r5804_boss; + create role tmp$r5804_acnt; + commit; + revoke all on all from tmp$c5804_john; + commit; + + --################################################################## + -- G R A N T O P T I O N + --################################################################## + + -- check revoke grant option for all table -- + --------------------------------------------- + + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update of the whole table'); + select v.* from v_grants v; + commit; + + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke grant option for the first field -- + --------------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update(f1) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update only field F1'); + select v.* from v_grants v; + + commit; + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke grant option for the second field -- + ---------------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update(f2) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update only field F2'); + select v.* from v_grants v; + + revoke all on all from tmp$c5804_john; + commit; + + + -- check revoke grant option for every field -- + ----------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke grant option for update(f2, f1) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked grant option for update of both fields F1 and F2 enumerated as list'); + select v.* from v_grants v; + + revoke all on all from tmp$c5804_john; + commit; + + + --################################################################## + -- U P D A T E + --################################################################## + + -- check revoke update for all table -- + --------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege update for the whole table'); + select v.* from v_grants v; -- no rows should be displayed now! + + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke update for the first field -- + --------------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update(f1) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege for update only field F1'); + select v.* from v_grants v; -- only one record with data for field 'F2' should be displayed now + + revoke all on all from tmp$c5804_john; + commit; + + -- check revoke update the second field -- + ------------------------------------------ + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update(f2) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege for update only field F2'); + select v.* from v_grants v; -- only one record with data for field 'F1' should be displayed now + + revoke all on all from tmp$c5804_john; + commit; + + + -- check revoke update for every field -- + ----------------------------------------- + grant update(f1, f2) on table t to tmp$c5804_john with grant option; + commit; + + revoke update(f1, f2) on table t from tmp$c5804_john; + commit; + + execute procedure sp_msg('revoked privilege update of both fields F1 and F2 enumerated as list'); + select v.* from v_grants v; -- no rows should be displayed now + + revoke all on all from tmp$c5804_john; + commit; + + --################################################################# + -- R O L E S : D E F A U L T C L A U S E + --################################################################# + + + -- check revoke role -- + ----------------------- + grant tmp$r5804_boss to role tmp$r5804_acnt; + commit; + + --execute procedure sp_msg('after grant tmp$r5804_boss to role tmp$r5804_acnt'); + --select v.* from v_grants v; + + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + -- execute procedure sp_msg('revoked role tmp$r5804_boss from role tmp$r5804_acnt'); + -- select v.* from v_grants v; -- no rows should be displayed now + + + -- check revoke default of role -- + ---------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt; -- ==> rdb$privileges.rdb$field_name = 'D' after this + commit; + + --execute procedure sp_msg('after grant default tmp$r5804_boss to role tmp$r5804_acnt'); + --select v.* from v_roles v; + --select v.* from v_grants v; + + + execute procedure sp_msg('before revoking only default tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; -- ==> rdb$privileges.rdb$field_name must be 'D' + + revoke default tmp$r5804_boss from role tmp$r5804_acnt;-- revoke only default option + commit; + + execute procedure sp_msg('after revoked only default tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; -- ==> rdb$privileges.rdb$field_name must be NULL + + + revoke tmp$r5804_boss from role tmp$r5804_acnt;-- revoke whole role + commit; + + + + -- check revoke whole role which was granted with DEFAULT clause -- + ------------------------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt; + commit; + + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoked role that was granted with DEFAULT clause'); + select v.* from v_grants v; -- ==> no rows must be displayed now + + + --################################################################# + -- R O L E S : A D M I N C L A U S E + --################################################################# + + + -- check revoke admin option -- + ------------------------------- + grant tmp$r5804_boss to role tmp$r5804_acnt with admin option; -- rdb$roles.rdb$grant_option must be 2 after this + commit; + + execute procedure sp_msg('before revoke admin option from role that was granted with this'); + select v.* from v_grants v; + + revoke admin option for tmp$r5804_boss from role tmp$r5804_acnt; -- rdb$roles.rdb$grant_option must be 0 after this + commit; + + execute procedure sp_msg('after revoke admin option from role that was granted with this'); + select v.* from v_grants v; + + + -- check revoke default from role granted with admin option -- + -------------------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + + execute procedure sp_msg('before revoke default tmp$r5804_boss that was granted with admin option to tmp$r5804_acnt'); + select v.* from v_grants v; + + revoke default tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoke default tmp$r5804_boss that was granted with admin option to tmp$r5804_acnt'); + select v.* from v_grants v; + + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + + + -- check revoke admin option from default role -- + ------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + + + execute procedure sp_msg('before revoke admin option from default role'); + select v.* from v_grants v; + + revoke admin option for tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoke admin option from default role'); + select v.* from v_grants v; + + + -- me: + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + -- check revoke both GO and AO from granted role -- + --------------------------------------------------- + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + + execute procedure sp_msg('before revoke admin option for default role tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; + + revoke admin option for default tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + execute procedure sp_msg('after revoke admin option for default role tmp$r5804_boss from role tmp$r5804_acnt'); + select v.* from v_grants v; + + -- me: + revoke tmp$r5804_boss from role tmp$r5804_acnt; + commit; + + + -- adding options to role grants -- + ----------------------------------- + drop role tmp$r5804_boss; + create role tmp$r5804_boss; + drop role tmp$r5804_acnt; + create role tmp$r5804_acnt; + + grant default tmp$r5804_boss to role tmp$r5804_acnt; + grant tmp$r5804_boss to role tmp$r5804_acnt with admin option; + + commit; + execute procedure sp_msg('Check aux options: point-1'); + select v.* from v_grants v; + + + --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + recreate table t (i int); + grant select on t to tmp$c5804_john; + commit; + execute procedure sp_msg('Check aux options: point-2a'); + select v.* from v_grants v; + + grant select on t to tmp$c5804_john with grant option; + commit; + execute procedure sp_msg('Check aux options: point-2b'); + select v.* from v_grants v; + + grant select on t to tmp$c5804_john; + commit; + execute procedure sp_msg('Check aux options: point-2c'); + select v.* from v_grants v; -- must be the same as it was at point-2a + + revoke all on t from tmp$c5804_john; + revoke tmp$r5804_boss from role tmp$r5804_acnt; + drop role tmp$r5804_boss; + drop role tmp$r5804_acnt; + commit; + + + execute procedure sp_msg('Check aux options: point-2d'); + select v.* from v_grants v; -- must be empty + + --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + create role tmp$r5804_boss; + create role tmp$r5804_acnt; + grant tmp$r5804_boss to role tmp$r5804_acnt; + commit; + execute procedure sp_msg('Check aux options: point-3'); + select v.* from v_grants v; + + + + grant tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + execute procedure sp_msg('Check aux options: point-4'); + select v.* from v_grants v; -- has_grant must be 2 + + + + grant default tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + execute procedure sp_msg('Check aux options: point-5'); + select v.* from v_grants v; -- fld_name must be 'D' + + + grant default tmp$r5804_boss to role tmp$r5804_acnt; + commit; + execute procedure sp_msg('Check aux options: point-6'); + select v.* from v_grants v; + + + + drop role tmp$r5804_boss; + drop role tmp$r5804_acnt; + create role tmp$r5804_boss; + create role tmp$r5804_acnt; + grant default tmp$r5804_boss to role tmp$r5804_acnt; + commit; + execute procedure sp_msg('Check aux options: point-7'); + select v.* from v_grants v; -- fld_name must be 'D' + + + + grant tmp$r5804_boss to role tmp$r5804_acnt with admin option; + commit; + execute procedure sp_msg('Check aux options: point-8'); + select v.* from v_grants v; -- has_grant must be 2 + + ---------------------------- final ----------------------------- + commit; + drop user tmp$c5804_john; + drop role tmp$r5804_boss; + drop role tmp$r5804_acnt; + commit; + + + """, + 'expected_stdout': + """ + MSG revoked grant option for update of the whole table + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 2 + + MSG revoked grant option for update only field F1 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 2 + + MSG revoked grant option for update only field F2 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + + Records affected: 2 + + MSG revoked grant option for update of both fields F1 and F2 enumerated as list + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 0 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 2 + + MSG revoked privilege update for the whole table + + + Records affected: 0 + + MSG revoked privilege for update only field F1 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F2 + + + Records affected: 1 + + MSG revoked privilege for update only field F2 + + + + USR_TYPE 8 + USR_NAME TMP$C5804_JOHN + WHO_GAVE SYSDBA + WHAT_CAN U + HAS_GRANT 1 + OBJ_TYPE 0 + REL_NAME T + FLD_NAME F1 + + + Records affected: 1 + + MSG revoked privilege update of both fields F1 and F2 enumerated as list + + + Records affected: 0 + ... [truncated message content] |
From: Bitcoin I. <Mak...@bi...> - 2018-04-17 13:49:27
|
Hi, Do you see all the media attention that cryptocurrencies have these last months? It is a very hot topic now and a lot of people are becoming very rich because of that. But you have no clue how to get in right? Click to watch the video, that is how you start. With experienced people helping you, start with crypto currencies trading will be a piece of cake. Fast RELIABLE EASY FREE AUTOMATED Stop waiting for the right moment and start today. Register Now : http://btc1.4cubesinc.com Thanks Makena Joseph Click here to Unsubscribe http://track.bitcoin-charts.com/unsubscribe.php?id=PGYyZTYyYWNlYzkzZGY0Yjk2MzczYTQ0ZTQ4NDg3NDRmQHRyYWNrLmJpdGNvaW4tY2hhcnRzLmNvbT4%3D |
From: <ta...@us...> - 2018-04-13 09:30:16
|
Revision: 63922 http://sourceforge.net/p/firebird/code/63922 Author: tabloid Date: 2018-04-13 09:30:13 +0000 (Fri, 13 Apr 2018) Log Message: ----------- Added DROP USER statement for temp user. Modified Paths: -------------- qa/fbt-repository/trunk/tests/bugs/core_5790.fbt Modified: qa/fbt-repository/trunk/tests/bugs/core_5790.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5790.fbt 2018-04-13 09:13:21 UTC (rev 63921) +++ qa/fbt-repository/trunk/tests/bugs/core_5790.fbt 2018-04-13 09:30:13 UTC (rev 63922) @@ -32,6 +32,7 @@ db_conn.close() +thisdb='$(DATABASE_LOCATION)'+'bugs.core_5790.fdb' tmpfdb='$(DATABASE_LOCATION)'+'tmp_5790.tmp' tmpusr='tmp$c5790' @@ -45,7 +46,14 @@ commit; connect 'localhost:%(tmpfdb)s' user %(tmpusr)s password '123'; drop database; - quit; + rollback; + connect '%(thisdb)s'; + drop user %(tmpusr)s; + commit; + --set list on; + --set count on; + --set echo on; + --select current_user, s.* from sec$users s where sec$user_name not containing 'SYSDBA'; ''' % locals() f_isql_cmd=open( os.path.join(context['temp_directory'],'tmp_5790.sql'), 'w') @@ -65,6 +73,7 @@ print('UNEXPECTED STDOUT: '+line) f_list = (f_isql_log,f_isql_cmd) + for i in range(len(f_list)): if os.path.isfile(f_list[i].name): os.remove(f_list[i].name) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ta...@us...> - 2018-04-13 09:13:24
|
Revision: 63921 http://sourceforge.net/p/firebird/code/63921 Author: tabloid Date: 2018-04-13 09:13:21 +0000 (Fri, 13 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_5790.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_5790.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5790.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_5790.fbt 2018-04-13 09:13:21 UTC (rev 63921) @@ -0,0 +1,81 @@ +{ +'id': 'bugs.core_5790', +'qmid': None, +'tracker_id': 'CORE-5790', +'title': '', +'description': + """ + Confirmed bug on 3.0.4.32924 + Works fine on: + 3.0.4.32947: OK, 2.906s. + 4.0.0.955: OK, 3.453s. + """, +'min_versions': '3.0.4', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'test_type': 'Python', + 'init_script': + """ + """, + 'test_script': + """\ +import os +import subprocess +from fdb import services + +os.environ["ISC_USER"] = user_name +os.environ["ISC_PASSWORD"] = user_password + +fb_home = services.connect(host='localhost', user= user_name, password= user_password).get_home_directory() + +db_conn.close() + +tmpfdb='$(DATABASE_LOCATION)'+'tmp_5790.tmp' +tmpusr='tmp$c5790' + +if os.path.isfile(tmpfdb): + os.remove(tmpfdb) +sql_txt=''' + create database 'localhost:%(tmpfdb)s'; + create or alter user %(tmpusr)s password '123'; + commit; + grant drop database to tmp$c5790; + commit; + connect 'localhost:%(tmpfdb)s' user %(tmpusr)s password '123'; + drop database; + quit; +''' % locals() + +f_isql_cmd=open( os.path.join(context['temp_directory'],'tmp_5790.sql'), 'w') +f_isql_cmd.write(sql_txt) +f_isql_cmd.close() + +f_isql_log=open( os.path.join(context['temp_directory'],'tmp_5790.log'), 'w') +subprocess.call( [ fb_home+'isql', '-q', '-i', f_isql_cmd.name], stdout=f_isql_log, stderr=subprocess.STDOUT ) +f_isql_log.close() + +if os.path.isfile(tmpfdb): + print('Database file was NOT deleted!') + os.remove(tmpfdb) + +with open(f_isql_log.name,'r') as f: + for line in f: + print('UNEXPECTED STDOUT: '+line) + +f_list = (f_isql_log,f_isql_cmd) +for i in range(len(f_list)): + if os.path.isfile(f_list[i].name): + os.remove(f_list[i].name) + + """, + 'expected_stdout': + """ + """, + 'expected_stderr': + """ + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_5790.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. |
From: <ta...@us...> - 2018-04-11 12:29:30
|
Revision: 63920 http://sourceforge.net/p/firebird/code/63920 Author: tabloid Date: 2018-04-11 12:29:15 +0000 (Wed, 11 Apr 2018) Log Message: ----------- Updated to current FB releases: remove prohibition to create index on system tables because now it is allowed, see CORE-5746 Modified Paths: -------------- qa/fbt-repository/trunk/tests/bugs/core_4731.fbt Modified: qa/fbt-repository/trunk/tests/bugs/core_4731.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_4731.fbt 2018-04-08 11:15:12 UTC (rev 63919) +++ qa/fbt-repository/trunk/tests/bugs/core_4731.fbt 2018-04-11 12:29:15 UTC (rev 63920) @@ -13,7 +13,8 @@ b) change data by issuing INSERT / UPDATE / DELETE statements; also try SELECT ... WITH LOCK; c) change metadata: add column, alter column (drop NULL constraint, add new contraint, add DEFAULT value), drop column; - d) aux. actions: create index for ST and DROP this ST. + d) aux. actions: attempt to drop ST. + *** 11-apr-2018: EXCLUDED attempt to create index on ST: now it is allowed, see CORE-5746 *** e) make indirect changes: apply ALTER SEQUENCE statement for system generators Test contains following statements and procedures: @@ -37,6 +38,11 @@ 6) two calls of sp_run_vulnerable_expressions: one for non-privileged user and second for user with role RDB$ADMIN. 7) select values of raised gdscodes (distinct) in order to check that only ONE gdscode occured (335544926). 8) select expressions that were PASSED without exceptions. + + Checked on: + 3.0.4.32947: OK, SS: 22s, CS: 37s + 4.0.0.955: OK, SS: 35s, CS: 33s + """, 'min_versions': '3.0', 'versions': [ @@ -535,7 +541,7 @@ ,n.ret_dbkey from c2 cross join( - select 'I' as op, 10 as ord_pos, 1 as ret_dbkey from rdb$database -- DML, insert + select 'I' as op, 10 as ord_pos, 1 as ret_dbkey from rdb$database -- DML, insert union all select 'L', 20, 0 from rdb$database -- DML, select WITH LOCK union all select 'D', 40, 1 from rdb$database -- DML, delete union all select 'A', 50, 0 from rdb$database -- DDL, add column @@ -542,7 +548,8 @@ union all select 'N', 60, 0 from rdb$database -- DDL, alter column set NULL flag union all select 'C', 65, 0 from rdb$database -- DDL, alter column add new constraint on it union all select 'F', 70, 0 from rdb$database -- DDL, alter column set DEFAULT value - union all select 'X', 75, 0 from rdb$database -- DDL, CREATE INDEX + -- ### commented 11-04-2018: no need anymore because now one may to create index on system tables: + -- ### union all select 'X', 75, 0 from rdb$database -- DDL, CREATE INDEX union all select 'K', 80, 0 from rdb$database -- DDL, drop column union all select 'Z', 90, 0 from rdb$database -- DDL, drop RDB$-table ) n @@ -717,6 +724,8 @@ -- result: table 'vulnerable_on_sys_tables ' will be filled up by ~1560 rows. ----------------------------- + commit; + set transaction no wait; -- ################################################################################### -- R U N A S N O N - P R I V I L E G E D U S E R @@ -735,6 +744,9 @@ from rdb$database ; + commit; -- 11-04-2018, do not remove! + set transaction no wait; + set list on; select count(*) as "-- count_of_passed: " from v_passed; @@ -759,6 +771,7 @@ ||'. Expressions that passes WITHOUT errors:' as msg from rdb$database ; + commit; -- 11-04-2018, do not remove! set list on; select count(*) as "-- count_of_passed: " @@ -783,13 +796,12 @@ """, 'expected_stdout': """ - -- Executed with role: NONE. Expressions that passes WITHOUT errors: + -- Executed with role: NONE. Expressions that passes WITHOUT errors: -- count_of_passed: 0 -- gdscode list for blocked: 335544926 - -- Executed with role: RDB$ADMIN. Expressions that passes WITHOUT errors: + -- Executed with role: RDB$ADMIN. Expressions that passes WITHOUT errors: -- count_of_passed: 23 - VULNERABLE_EXPR insert into RDB$BACKUP_HISTORY(RDB$BACKUP_ID , RDB$TIMESTAMP , RDB$BACKUP_LEVEL , RDB$GUID , RDB$SCN , RDB$FILE_NAME) values(null, null, null, null, null, null) returning rdb$db_key; -- length of returned rdb$dbkey=8 VULNERABLE_EXPR delete from RDB$DB_CREATORS t rows 1 returning t.rdb$db_key; -- length of returned rdb$dbkey=8 VULNERABLE_EXPR insert into RDB$DB_CREATORS(RDB$USER , RDB$USER_TYPE) values(null, null) returning rdb$db_key; -- length of returned rdb$dbkey=8 @@ -813,7 +825,6 @@ VULNERABLE_EXPR update RDB$TYPES t set t.RDB$TYPE = null where coalesce(rdb$system_flag,0)=0 rows 1 returning t.rdb$db_key; -- length of returned rdb$dbkey=8 VULNERABLE_EXPR update RDB$TYPES t set t.RDB$TYPE_NAME = 'C' where coalesce(rdb$system_flag,0)=0 rows 1 returning t.rdb$db_key; -- length of returned rdb$dbkey=8 VULNERABLE_EXPR update RDB$TYPES t set t.RDB$TYPE_NAME = null where coalesce(rdb$system_flag,0)=0 rows 1 returning t.rdb$db_key; -- length of returned rdb$dbkey=8 - -- gdscode list for blocked: 335544926 """, 'expected_stderr': This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Bitcoin I. T. <Bab...@bi...> - 2018-04-10 19:05:21
|
Hey, The World’s #1 Crypto Trading Technology ! Are you Interested in trading Ethereum? Let’s do it the way leaders do. Your chance is here, join elite group of people who made Bitcoin big. You are among the 77 lucky people who we are offering the Public Version of Crypto free of cost and forever. Follow the latest trends, and learn most advanced trading techniques to capitalize the potential of cryptocurrencies to the fullest. Try Now : http://btc1.4cubesinc.com C Ya Baby Ross Click here to Unsubscribe http://track.bitcoin-charts.com/unsubscribe.php?id=PDUyOGYwY2ViODk4Mzg4NmExY2YwMTJhM2VmNWFjOTJhQHRyYWNrLmJpdGNvaW4tY2hhcnRzLmNvbT4%3D |
From: <ta...@us...> - 2018-04-08 11:15:13
|
Revision: 63919 http://sourceforge.net/p/firebird/code/63919 Author: tabloid Date: 2018-04-08 11:15:12 +0000 (Sun, 08 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_3779.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_3779.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_3779.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_3779.fbt 2018-04-08 11:15:12 UTC (rev 63919) @@ -0,0 +1,51 @@ +{ +'id': 'bugs.core_3779', +'qmid': None, +'tracker_id': 'CORE-3779', +'title': "Report OS user name in MON$ATTACHMENTS", +'description': + """ + We compare values in mon$attachment with those that can be obtained using pure Python calls (without FB). + NB: on Windows remote_os_user contains value in lower case ('zotov'), exact value was: 'Zotov'. + """, +'min_versions': '3.0', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'test_type': 'Python', + 'init_script': + """ + """, + 'test_script': + """ +import os +import socket +import getpass + +cur=db_conn.cursor() +cur.execute('select mon$remote_host, mon$remote_os_user from mon$attachments where mon$attachment_id=current_connection') +for r in cur: + if r[0].upper() == socket.gethostname().upper(): + print('Check of remote_host: passed') + else: + print('FAILED check remote_host: got |'+r[0]+'| instead of |'+socket.gethostname()+'|') + + if r[1].upper() == getpass.getuser().upper(): + print('Check of remote_os_user: passed') + else: + print('FAILED check remote_os_user: got |'+r[1]+'| instead of |'+getpass.getuser()+'|') + +cur.close() + """, + 'expected_stdout': + """ + Check of remote_host: passed + Check of remote_os_user: passed + """, + 'expected_stderr': + """ + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_3779.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. |
From: <ta...@us...> - 2018-04-08 09:07:49
|
Revision: 63918 http://sourceforge.net/p/firebird/code/63918 Author: tabloid Date: 2018-04-08 09:07:44 +0000 (Sun, 08 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_3860.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_3860.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_3860.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_3860.fbt 2018-04-08 09:07:44 UTC (rev 63918) @@ -0,0 +1,205 @@ +{ +'id': 'bugs.core_3860', +'qmid': None, +'tracker_id': 'CORE-3860', +'title': "Trace API: Faulty database filter crashes server", +'description': + """ + Confirmed crash on 2.5.1.26351, got on console: + === + Unable to complete network request to host "localhost". + -Error reading data from the connection. + === + For 2.5.x we prepare trace config with invalid pattern for database section, launch trace and do trivial query to some database table. + Trace STDOUT (beside "Trace session ID 5 started") should contain several blocks like this: + === + Error creating trace session for service manager attachment: + error while parsing trace configuration + line 8: expected closing element, got "database" + ==== + We create array of patterns for each of these messages and search in it each line of trace STDOUT. + Every line should be found in this patterns array, otherwise this is UNEXPECTED case. + Finally, if every line will be found then we have no unexpected result and 'expected_stdout' should be EMPTY. + Checked on: + 2.5.8.27067: OK, 7.000s. + 2.5.9.27107: OK, 6.438s. + For 3.0+ we just remain test body empty (there is nothing to check because of changed trace config format). + """, +'min_versions': '2.5.2', +'versions': [ +{ + 'firebird_version': '2.5', + 'platform': 'All', + 'test_type': 'Python', + 'init_script': + """ + """, + 'test_script': + """ +import os +import re +import subprocess +import time +from fdb import services +from subprocess import Popen + +os.environ["ISC_USER"] = user_name +os.environ["ISC_PASSWORD"] = user_password + +# Obtain engine version: +engine = str(db_conn.engine_version) # convert to text because 'float' object has no attribute 'startswith' + +fb_home = services.connect(host='localhost', user= user_name, password= user_password).get_home_directory() + +if engine.startswith('2.5'): + fb_home = fb_home + 'bin'+os.sep + +txt = '''<...enter database regex string here...> + enabled true + time_threshold 0 + log_transactions true + log_statement_prepare true + log_statement_start true + log_statement_finish true + print_perf true +</database> +''' + +f_trc_cfg=open( os.path.join(context['temp_directory'],'tmp_trace_3860.cfg'), 'w') +f_trc_cfg.write(txt) +f_trc_cfg.close() + +# ############################################################## +# S T A R T T R A C E i n S E P A R A T E P R O C E S S +# ############################################################## + +f_trc_log=open( os.path.join(context['temp_directory'],'tmp_trace_3860.log'), "w") +f_trc_err=open( os.path.join(context['temp_directory'],'tmp_trace_3860.err'), "w") + +p_trace = Popen( [ fb_home+'fbsvcmgr', 'localhost:service_mgr', 'action_trace_start' , 'trc_cfg', f_trc_cfg.name],stdout=f_trc_log,stderr=f_trc_err) + +# this delay need for trace start and finish its output about invalid section in its config file: +time.sleep(3) + +# #################################################### +# G E T A C T I V E T R A C E S E S S I O N I D +# #################################################### +# Save active trace session info into file for further parsing it and obtain session_id back (for stop): + +f_trc_lst = open( os.path.join(context['temp_directory'],'tmp_trace_3860.lst'), 'w') +subprocess.call([fb_home+'fbsvcmgr', 'localhost:service_mgr', 'action_trace_list'], stdout=f_trc_lst) +f_trc_lst.close() + +# !!! DO NOT REMOVE THIS LINE !!! +time.sleep(1) + +trcssn=0 +with open( f_trc_lst.name,'r') as f: + for line in f: + i=1 + if 'Session ID' in line: + for word in line.split(): + if i==3: + trcssn=word + i=i+1 + break +f.close() +# Result: `trcssn` is ID of active trace session. Now we have to terminate it: + + +#............................................................................. +cur=db_conn.cursor() +cur.execute('select count(*) from rdb$types') +for r in cur: + n = r[0] +db_conn.commit() +#............................................................................. + + +# #################################################### +# S E N D R E Q U E S T T R A C E T O S T O P +# #################################################### +if trcssn>0: + fn_nul = open(os.devnull, 'w') + subprocess.call([fb_home+'fbsvcmgr', 'localhost:service_mgr', 'action_trace_stop','trc_id', trcssn], stdout=fn_nul) + fn_nul.close() + # DO NOT REMOVE THIS LINE: + time.sleep(2) + + +p_trace.terminate() +f_trc_log.close() +f_trc_err.close() + +#<...enter database regex string here...> +# enabled true +# time_threshold 0 +# log_transactions true +# log_statement_prepare true +# log_statement_start true +# log_statement_finish true +# print_perf true +#</database> + +#Trace session ID 5 started +#Error creating trace session for service manager attachment: +#error while parsing trace configuration +# line 8: expected closing element, got "database" + +allowed_patterns = ( + re.compile('Trace\s+session\s+ID\s+\d+\s+started\.*', re.IGNORECASE) + ,re.compile('error\s+creating\s+trace\s+session\.*', re.IGNORECASE) + ,re.compile('error\s+while\s+parsing\s+trace\s+configuration\.*', re.IGNORECASE) + ,re.compile('[.*]*expected\s+closing\s+element\.*', re.IGNORECASE) +) + +global ls +ls='' +with open( f_trc_log.name,'r') as f: + #lines = f.readlines() + #for i, line in enumerate(lines): + for line in f: + if line.rstrip().split(): + ls=line + match2some = ( p.search(ls) for p in allowed_patterns ) + if max(match2some) == None: + print('UNEXPECTED TRACE STDOUT: ' + line) + +with open( f_trc_err.name,'r') as f: + for line in f: + if line.rstrip().split(): + print('UNEXPECTED TRACE STDERR: ' + line) + + +# CLEANUP +######### +f_list=(f_trc_cfg, f_trc_log, f_trc_err, f_trc_lst) +for i in range(len(f_list)): + if os.path.isfile(f_list[i].name): + os.remove(f_list[i].name) + + + """, + 'expected_stdout': + """ + """, + 'expected_stderr': + """ + """ +}, +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'test_type': 'Python', + 'test_script': + """ + """, + 'expected_stdout': + """ + """, + 'expected_stderr': + """ + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_3860.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. |
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. |
From: <ta...@us...> - 2018-04-05 13:53:59
|
Revision: 63916 http://sourceforge.net/p/firebird/code/63916 Author: tabloid Date: 2018-04-05 13:53:57 +0000 (Thu, 05 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_5783.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_5783.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5783.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_5783.fbt 2018-04-05 13:53:57 UTC (rev 63916) @@ -0,0 +1,83 @@ +{ +'id': 'bugs.core_5783', +'qmid': None, +'tracker_id': 'CORE-5783', +'title': 'execute statement ignores the text of the SQL-query after a comment of the form "-"', +'description': + """ + We concatenate query from several elements and use '\r' delimiter only to split this query into lines. + Also, we put single-line comment in SEPARATE line between 'select' and column/value that is obtained from DB. + Final query will lokk like this (lines are separated only by SINGLE delimiter, ascii_char(13), NO '\n' here!): + === + select + -- comment N1 + 'foo' as msg' + from + -- comment N2 + rdb$database + === + This query should NOT raise any exception and must produce normal output (string 'foo'). + Thanks to hvlad for suggestions. + + Confirmed bug on: + 3.0.4.32924 + 4.0.0.918 + -- got: + Error while preparing SQL statement: + - SQLCODE: -104 + - Dynamic SQL Error + - SQL error code = -104 + - Unexpected end of command - line 1, column 1 + -104 + 335544569 + Checked on: + 3.0.4.32941: OK, 1.187s. + 4.0.0.947: OK, 1.328s. + """, +'min_versions': '3.0.4', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'init_script': + """ + """, + 'test_type': 'Python', + 'test_script':"""\ +import sys +import os + +cur = db_conn.cursor() + +# NB: one need to use TWO backslash characters ('\\r') as escape for CR only within fbtest. +# Single '\' should be used when running under "pure" Python control: + +sql_expr = ' '.join( ('select', '\\r', '-- comment N1', '\\r', "'foo' as msg", '\\r', 'from', '\\r', '-- comment N2', '\\r', 'rdb$database') ) + +for i in sql_expr.split('\\r'): + print('Query line: ' + i) + +#sql_expr = 'select 1 FROM test' +cur.execute( sql_expr ) +for r in cur: + print( 'Query result: ' + r[0] ) + +cur.close() + + """, + 'expected_stdout': + """ + Query line: select + Query line: -- comment N1 + Query line: 'foo' as msg + Query line: from + Query line: -- comment N2 + Query line: rdb$database + Query result: foo + """, + 'expected_stderr': + """ + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_5783.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. |
From: Jadyn T. R. <Jad...@bi...> - 2018-04-04 06:59:53
|
Remember I was telling you in the gym that I bought bitcoin last week for $7,397, I just sold it for $8,905. So in short, I made $1,508 in less than 5 days. This is the link where I made https://m.clickbooth.com/c/aff?lid=56230&subid1=FRQ&subid2=fir...@li.... Hope to see you this Monday! http://track.bitcoin-charts.com/unsubscribe.php?id=PGZhYmY1ZDhkYjQzYzliNDlmNWRjNWM5N2FhODNmYTkyQHRyYWNrLmJpdGNvaW4tY2hhcnRzLmNvbT4%3D |
From: <ta...@us...> - 2018-04-02 11:23:04
|
Revision: 63915 http://sourceforge.net/p/firebird/code/63915 Author: tabloid Date: 2018-04-02 11:23:03 +0000 (Mon, 02 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_5598.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_5598.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_5598.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_5598.fbt 2018-04-02 11:23:03 UTC (rev 63915) @@ -0,0 +1,150 @@ +{ +'id': 'bugs.core_5598', +'qmid': None, +'tracker_id': 'CORE-5598', +'title': 'Error "block size exceeds implementation restriction" while inner joining large datasets with a long key using the HASH JOIN plan', +'description': + """ + Hash join have to operate with keys of total length >= 1 Gb if we want to reproduce runtime error + "Statement failed, SQLSTATE = HY001 / unable to allocate memory from operating system" + If test table that serves as the source for HJ has record length about 65 Kb than not less than 16K records must be added there. + If we use charset UTF8 than record length in bytes will be 8 times of declared field_len, so we declare field with len = 8191 charactyer + (and this is current implementation limit). + Than we add into this table >= 16Kb rows of unicode (NON-ascii!) characters. + Finally, we launch query against this table and this query will use hash join because of missed indices. + We have to check that NO errors occured during this query. + + Discuss with dimitr: letters 08-jan-2018 .. 06-feb-2018. + Confirmed bug on: + 3.0.3.32838 + 4.0.0.838 + Works fine on: + 3.0.4.32939 (SS, CS) - time ~ 29-32" + 4.0.0.945 (SS, CS) - time ~ 29-32" + """, +'min_versions': '3.0.3', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'database_character_set': 'UTF8', + 'connection_character_set': 'UTF8', + 'init_script': + """ + """, + 'test_type': 'Python', + 'test_script':"""\ +import sys +import os +import subprocess +from subprocess import Popen +from fdb import services +import time + +os.environ["ISC_USER"] = user_name +os.environ["ISC_PASSWORD"] = user_password + +# Threshold: minimal records that is to be inserted in order to reproduce runtime exception +# 'unable to allocate memory from OS': +MIN_RECS_TO_ADD = 17000 + +fdb_file='$(DATABASE_LOCATION)bugs.core_5598.fdb' + +fbs = fdb.services.connect( host = 'localhost:service_mgr' ) +fb_home=fbs.get_home_directory() +fbs.set_write_mode( database = fdb_file, mode = fdb.services.WRITE_BUFFERED ) +fbs.close() + +db_conn.close() + +db_conn=fdb.connect(dsn = dsn, charset = 'utf8') +db_conn.execute_immediate( 'create table test(id int, s varchar(8191))' ) +db_conn.commit() +cur=db_conn.cursor() +cur.execute( "insert into test( id, s ) select row_number()over(), lpad('', 8191, 'Алексей, Łukasz, Máté, François, Jørgen, Νικόλαος') from rdb$types,rdb$types rows %d" % MIN_RECS_TO_ADD) +db_conn.commit() +db_conn.close() + +isql_cmd=''' + set list on; + --show version; + set explain on; + select count(*) from test a join test b using(id, s); + set explain off; + quit; + select + m.MON$STAT_ID + ,m.MON$STAT_GROUP + ,m.MON$MEMORY_USED + ,m.MON$MEMORY_ALLOCATED + ,m.MON$MAX_MEMORY_USED + ,m.MON$MAX_MEMORY_ALLOCATED + from mon$database d join mon$memory_usage m using (MON$STAT_ID) + ; +''' + +isql_run=open( os.path.join(context['temp_directory'],'tmp_isql_5596.sql'), 'w') +isql_run.write( isql_cmd ) +isql_run.close() + +#----------------------------------- +isql_log=open( os.path.join(context['temp_directory'],'tmp_isql_5596.log'), 'w') # open( 'c5598-tmp.log', 'w' ) +isql_err=open( os.path.join(context['temp_directory'],'tmp_isql_5596.err'), 'w') # open( 'c5598-tmp.err', 'w' ) + +p_isql = subprocess.call( [fb_home+'isql', dsn, '-i', isql_run.name ], stdout=isql_log, stderr=isql_err ) + +isql_log.close() +isql_err.close() + + +# do NOT remove this delay: +time.sleep(1) + +# STDOUT must contain: +# Select Expression +# -> Aggregate +# -> Filter +# -> Hash Join (inner) +# -> Table "TEST" as "B" Full Scan +# -> Record Buffer (record length: 32793) +# -> Table "TEST" as "A" Full Scan +# +# COUNT 17000 + +with open(isql_log.name,'r') as f: + for line in f: + if line.rstrip(): + print('STDOUT:' + line.upper() ) + +with open(isql_err.name,'r') as f: + for line in f: + if line.rstrip(): + print('UNEXPECTED STDERR:' + line.upper() ) + +time.sleep(1) + +# cleanup: +########## +f_list = ( isql_run, isql_log, isql_err ) +for f in f_list: + os.remove(f.name) + + """, + 'expected_stdout': + """ + STDOUT:SELECT EXPRESSION + STDOUT: -> AGGREGATE + STDOUT: -> FILTER + STDOUT: -> HASH JOIN (INNER) + STDOUT: -> TABLE "TEST" AS "B" FULL SCAN + STDOUT: -> RECORD BUFFER (RECORD LENGTH: 32793) + STDOUT: -> TABLE "TEST" AS "A" FULL SCAN + STDOUT:COUNT 17000 + """, + 'expected_stderr': + """ + """, + 'substitutions':[ ('[ \t]+', ' '), ('.*RECORD LENGTH:[ \t]+[\d]+[ \t]*\)', ''), ('.*COUNT[ \t]+[\d]+', '') ] +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_5598.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. |
From: <ta...@us...> - 2018-04-01 07:53:23
|
Revision: 63914 http://sourceforge.net/p/firebird/code/63914 Author: tabloid Date: 2018-04-01 07:53:21 +0000 (Sun, 01 Apr 2018) Log Message: ----------- See added / modified .fbt file(s) Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_4451.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_4451.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_4451.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_4451.fbt 2018-04-01 07:53:21 UTC (rev 63914) @@ -0,0 +1,179 @@ +{ +'id': 'bugs.core_4451', +'qmid': None, +'tracker_id': 'CORE-4451', +'title': 'Allow output to trace explain plan form.', +'description': + """ + """, +'min_versions': '3.0.0', +'versions': [ +{ + 'firebird_version': '3.0', + 'platform': 'All', + 'init_script': + """ + recreate table test(x int); + """, + 'test_type': 'Python', + 'test_script':"""\ + +import os +import subprocess +from subprocess import Popen +import time + +os.environ["ISC_USER"] = user_name +os.environ["ISC_PASSWORD"] = user_password + + +fdb_file='$(DATABASE_LOCATION)bugs.core_4451.fdb' + +db_conn.close() + +##################################################################### +# Prepare config for trace session that will be launched by call of FBSVCMGR: + +txt = '''\ + database= # %[\\\\\\\\/]bugs.core_4451.fdb + { + enabled = true + time_threshold = 0 + log_initfini = false + print_plan = true + explain_plan = true + log_statement_prepare = true + include_filter=%(from|join)[[:whitespace:]]test% + } +''' +trc_cfg=open( os.path.join(context['temp_directory'],'tmp_trace_4451.cfg'), 'w') +trc_cfg.write(txt) +trc_cfg.close() +trc_log=open( os.path.join(context['temp_directory'],'tmp_trace_4451.log'), 'w') +trc_log.close() +trc_lst=open( os.path.join(context['temp_directory'],'tmp_trace_4451.lst'), 'w') +trc_lst.close() + +#sys.stdout.flush() +#os._exit(0) + +##################################################################### +# Async. launch of trace session using FBSVCMGR action_trace_start: + +trc_log=open(trc_log.name, "w") +# Execute a child program in a new process, redirecting STDERR to the same target as of STDOUT: +p_svcmgr = Popen( [ "fbsvcmgr", "localhost:service_mgr", + "action_trace_start", + "trc_cfg", trc_cfg.name + ], + stdout=trc_log, + stderr=subprocess.STDOUT + ) + +# Wait! Trace session is initialized not instantly! +time.sleep(2) + +##################################################################### + +# Determine active trace session ID (for further stop): + +trc_lst=open(trc_lst.name, "w") +subprocess.call(["fbsvcmgr", "localhost:service_mgr", + "action_trace_list"], + stdout=trc_lst, stderr=subprocess.STDOUT + ) +trc_lst.close() + +# Session ID: 5 +# user: +# date: 2015-08-27 15:24:14 +# flags: active, trace + +trcssn=0 +with open( trc_lst.name,'r') as f: + for line in f: + i=1 + if 'Session ID' in line: + for word in line.split(): + if i==3: + trcssn=word + i=i+1 + break + +# Result: `trcssn` is ID of active trace session. +# We have to terminate trace session that is running on server BEFORE we termitane process `p_svcmgr` +if trcssn==0: + print("Error parsing trace session ID.") + os.remove(fdb_file) + os.exit(0) + +##################################################################### + +# Preparing script for ISQL: + +sql_cmd='''select count(*) from test;''' + +so=sys.stdout +se=sys.stderr + +sys.stdout = open(os.devnull, 'w') +sys.stderr = sys.stdout + +runProgram('isql',[dsn],sql_cmd) + +sys.stdout = so +sys.stderr = se + +# do NOT reduce this delay! +time.sleep(2) + +##################################################################### + +# Stop trace session: + +trc_lst=open(trc_lst.name, "a") +trc_lst.seek(0,2) +subprocess.call( [ "fbsvcmgr", "localhost:service_mgr", + "action_trace_stop", + "trc_id",trcssn + ], + stdout=trc_lst, + stderr=subprocess.STDOUT + ) +trc_lst.close() + +p_svcmgr.terminate() +trc_log.close() + +# do NOT remove this delay: +time.sleep(1) + +show_line = 0 +with open(trc_log.name) as f: + for line in f: + show_line = ( show_line + 1 if ('^' * 79) in line or show_line>0 else show_line ) + if show_line > 1: + print(line) + +# do NOT remove this delay: +time.sleep(1) + +# cleanup: +f_list = (trc_lst, trc_cfg, trc_log) +for f in f_list: + os.remove(f.name) + + """, + 'expected_stdout': + """ + Select Expression + -> Aggregate + -> Table "TEST" Full Scan + """, + 'expected_stderr': + """ + """, + 'substitutions':[('[ \t]+', ' '), ('[ \t]+[\d]+[ \t]+ms', '')] +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_4451.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. |