|
From: <fir...@us...> - 2014-06-24 01:06:26
|
Revision: 59757
http://sourceforge.net/p/firebird/code/59757
Author: firebirds
Date: 2014-06-24 01:06:22 +0000 (Tue, 24 Jun 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-23 11:17:25 UTC (rev 59756)
+++ firebird/trunk/ChangeLog 2014-06-24 01:06:22 UTC (rev 59757)
@@ -1,3 +1,7 @@
+ 2014-06-23 11:17 alexpeshkoff
+ M src/jrd/jrd.cpp
+Fixed deadlock privately reported by Dmitry Yemanov
+
2014-06-22 02:30 asfernandes
M src/burp/restore.epp
Fixed CORE-4470 - gbak fails to restore database containing dependency between views and packaged functions.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-23 11:17:25 UTC (rev 59756)
+++ firebird/trunk/src/jrd/build_no.h 2014-06-24 01:06:22 UTC (rev 59757)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31190
+ FORMAL BUILD NUMBER:31191
*/
-#define PRODUCT_VER_STRING "3.0.0.31190"
-#define FILE_VER_STRING "WI-T3.0.0.31190"
-#define LICENSE_VER_STRING "WI-T3.0.0.31190"
-#define FILE_VER_NUMBER 3, 0, 0, 31190
+#define PRODUCT_VER_STRING "3.0.0.31191"
+#define FILE_VER_STRING "WI-T3.0.0.31191"
+#define LICENSE_VER_STRING "WI-T3.0.0.31191"
+#define FILE_VER_NUMBER 3, 0, 0, 31191
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31190"
+#define FB_BUILD_NO "31191"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-23 11:17:25 UTC (rev 59756)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-06-24 01:06:22 UTC (rev 59757)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31190
+BuildNum=31191
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ale...@us...> - 2014-06-24 06:58:08
|
Revision: 59758
http://sourceforge.net/p/firebird/code/59758
Author: alexpeshkoff
Date: 2014-06-24 06:58:05 +0000 (Tue, 24 Jun 2014)
Log Message:
-----------
Fixed CORE-4464: Duplicate tags for CREATE/ALTER USER not handled correctly
Modified Paths:
--------------
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/jrd/UserManagement.cpp
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2014-06-24 06:58:05 UTC (rev 59758)
@@ -1596,6 +1596,8 @@
PARAMETER (GDS__set_invalid_role = 335545091)
INTEGER*4 GDS__cursor_not_positioned
PARAMETER (GDS__cursor_not_positioned = 335545092)
+ INTEGER*4 GDS__dup_attribute
+ PARAMETER (GDS__dup_attribute = 335545093)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2014-06-24 06:58:05 UTC (rev 59758)
@@ -805,6 +805,7 @@
gds_miss_trusted_role = 335545090;
gds_set_invalid_role = 335545091;
gds_cursor_not_positioned = 335545092;
+ gds_dup_attribute = 335545093;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/include/gen/codetext.h 2014-06-24 06:58:05 UTC (rev 59758)
@@ -794,6 +794,7 @@
{"miss_trusted_role", 335545090},
{"set_invalid_role", 335545091},
{"cursor_not_positioned", 335545092},
+ {"dup_attribute", 335545093},
{"gfix_db_name", 335740929},
{"gfix_invalid_sw", 335740930},
{"gfix_incmp_sw", 335740932},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/include/gen/iberror.h 2014-06-24 06:58:05 UTC (rev 59758)
@@ -828,6 +828,7 @@
const ISC_STATUS isc_miss_trusted_role = 335545090L;
const ISC_STATUS isc_set_invalid_role = 335545091L;
const ISC_STATUS isc_cursor_not_positioned = 335545092L;
+const ISC_STATUS isc_dup_attribute = 335545093L;
const ISC_STATUS isc_gfix_db_name = 335740929L;
const ISC_STATUS isc_gfix_invalid_sw = 335740930L;
const ISC_STATUS isc_gfix_incmp_sw = 335740932L;
@@ -1286,7 +1287,7 @@
const ISC_STATUS isc_trace_switch_param_miss = 337182758L;
const ISC_STATUS isc_trace_param_act_notcompat = 337182759L;
const ISC_STATUS isc_trace_mandatory_switch_miss = 337182760L;
-const ISC_STATUS isc_err_max = 1230;
+const ISC_STATUS isc_err_max = 1231;
#else /* c definitions */
@@ -2084,6 +2085,7 @@
#define isc_miss_trusted_role 335545090L
#define isc_set_invalid_role 335545091L
#define isc_cursor_not_positioned 335545092L
+#define isc_dup_attribute 335545093L
#define isc_gfix_db_name 335740929L
#define isc_gfix_invalid_sw 335740930L
#define isc_gfix_incmp_sw 335740932L
@@ -2542,7 +2544,7 @@
#define isc_trace_switch_param_miss 337182758L
#define isc_trace_param_act_notcompat 337182759L
#define isc_trace_mandatory_switch_miss 337182760L
-#define isc_err_max 1230
+#define isc_err_max 1231
#endif
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/include/gen/msgs.h 2014-06-24 06:58:05 UTC (rev 59758)
@@ -797,6 +797,7 @@
{335545090, "Your attachment has no trusted role"}, /* miss_trusted_role */
{335545091, "Role @1 is invalid or unavailable"}, /* set_invalid_role */
{335545092, "Cursor @1 is not positioned in a valid record"}, /* cursor_not_positioned */
+ {335545093, "Duplicated user attribute @1"}, /* dup_attribute */
{335740929, "data base file name (@1) already given"}, /* gfix_db_name */
{335740930, "invalid switch @1"}, /* gfix_invalid_sw */
{335740932, "incompatible switch combination"}, /* gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/include/gen/sql_code.h 2014-06-24 06:58:05 UTC (rev 59758)
@@ -793,6 +793,7 @@
{335545090, -901}, /* 770 miss_trusted_role */
{335545091, -901}, /* 771 set_invalid_role */
{335545092, -596}, /* 772 cursor_not_positioned */
+ {335545093, -901}, /* 773 dup_attribute */
{335740929, -901}, /* 1 gfix_db_name */
{335740930, -901}, /* 2 gfix_invalid_sw */
{335740932, -901}, /* 4 gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/include/gen/sql_state.h 2014-06-24 06:58:05 UTC (rev 59758)
@@ -780,7 +780,7 @@
{335545077, "08004"}, // 757 server_misconfigured
{335545078, "0A000"}, // 758 alter_role
{335545079, "42S01"}, // 759 map_already_exists
- {335545080, "42S01"}, // 760 map_not_exists
+ {335545080, "42S02"}, // 760 map_not_exists
{335545081, "08004"}, // 761 map_load
{335545082, "08004"}, // 762 map_aster
{335545083, "08004"}, // 763 map_multi
@@ -793,6 +793,7 @@
{335545090, "0P000"}, // 770 miss_trusted_role
{335545091, "0P000"}, // 771 set_invalid_role
{335545092, "HY109"}, // 772 cursor_not_positioned
+ {335545093, "42702"}, // 773 dup_attribute
{335740929, "00000"}, // 1 gfix_db_name
{335740930, "00000"}, // 2 gfix_invalid_sw
{335740932, "00000"}, // 4 gfix_incmp_sw
Modified: firebird/trunk/src/jrd/UserManagement.cpp
===================================================================
--- firebird/trunk/src/jrd/UserManagement.cpp 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/jrd/UserManagement.cpp 2014-06-24 06:58:05 UTC (rev 59758)
@@ -257,6 +257,19 @@
ConfigFile::Parameters::const_iterator cur(ccf.getParameters().begin());
ConfigFile::Parameters::const_iterator curEnd(ccf.getParameters().end());
+ // Dup check
+ ConfigFile::KeyType prev;
+ while (cur != curEnd)
+ {
+ if (cur->name == prev)
+ {
+ (Arg::Gds(isc_dup_attribute) << cur->name).raise();
+ }
+ prev = cur->name;
+ ++cur;
+ }
+ cur = ccf.getParameters().begin();
+
string merged;
while (old != oldEnd && cur != curEnd)
{
Modified: firebird/trunk/src/msgs/facilities2.sql
===================================================================
--- firebird/trunk/src/msgs/facilities2.sql 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/msgs/facilities2.sql 2014-06-24 06:58:05 UTC (rev 59758)
@@ -1,7 +1,7 @@
/* MAX_NUMBER is the next number to be used, always one more than the highest message number. */
set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?);
--
-('2014-05-14 23:48:00', 'JRD', 0, 773)
+('2014-06-24 10:13:56', 'JRD', 0, 774)
('2012-01-23 20:10:30', 'QLI', 1, 532)
('2013-11-13 15:59:10', 'GFIX', 3, 122)
('1996-11-07 13:39:40', 'GPRE', 4, 1)
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/msgs/messages2.sql 2014-06-24 06:58:05 UTC (rev 59758)
@@ -880,6 +880,7 @@
('miss_trusted_role', 'SetRoleNode::execute', 'StmtNodes.cpp', NULL, 0, 770, NULL, 'Your attachment has no trusted role', NULL, NULL);
('set_invalid_role', 'SetRoleNode::execute', 'StmtNodes.cpp', NULL, 0, 771, NULL, 'Role @1 is invalid or unavailable', NULL, NULL);
('cursor_not_positioned', NULL, NULL, NULL, 0, 772, NULL, 'Cursor @1 is not positioned in a valid record', NULL, NULL);
+('dup_attribute', 'UserManagement::execute', 'UserManagement.cpp', NULL, 0, 773, NULL, 'Duplicated user attribute @1', NULL, NULL);
-- QLI
(NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL);
(NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL);
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql 2014-06-24 01:06:22 UTC (rev 59757)
+++ firebird/trunk/src/msgs/system_errors2.sql 2014-06-24 06:58:05 UTC (rev 59758)
@@ -766,7 +766,7 @@
(-901, '08', '004', 0, 757, 'server_misconfigured', NULL, NULL);
(-901, '0A', '000', 0, 758, 'alter_role', NULL, NULL);
(-901, '42', 'S01', 0, 759, 'map_already_exists', NULL, NULL);
-(-901, '42', 'S01', 0, 760, 'map_not_exists', NULL, NULL);
+(-901, '42', 'S02', 0, 760, 'map_not_exists', NULL, NULL);
(-901, '08', '004', 0, 761, 'map_load', NULL, NULL);
(-901, '08', '004', 0, 762, 'map_aster', NULL, NULL);
(-901, '08', '004', 0, 763, 'map_multi', NULL, NULL);
@@ -779,6 +779,7 @@
(-901, '0P', '000', 0, 770, 'miss_trusted_role', NULL, NULL);
(-901, '0P', '000', 0, 771, 'set_invalid_role', NULL, NULL);
(-596, 'HY', '109', 0, 772, 'cursor_not_positioned', NULL, NULL)
+(-901, '42', '702', 0, 773, 'dup_attribute', NULL, NULL);
-- GFIX
(-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL)
(-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-06-25 01:36:22
|
Revision: 59760
http://sourceforge.net/p/firebird/code/59760
Author: firebirds
Date: 2014-06-25 01:36:14 +0000 (Wed, 25 Jun 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-24 10:16:24 UTC (rev 59759)
+++ firebird/trunk/ChangeLog 2014-06-25 01:36:14 UTC (rev 59760)
@@ -1,3 +1,25 @@
+ 2014-06-24 10:16 alexpeshkoff
+ M src/burp/backup.epp
+ M src/burp/restore.epp
+ M src/jrd/constants.h
+ M src/jrd/ini.epp
+ M src/jrd/scl.epp
+Avoid non-standard use of RDB$ROLES.RDB$SYSTEM_FLAG
+
+ 2014-06-24 06:58 alexpeshkoff
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/jrd/UserManagement.cpp
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+Fixed CORE-4464: Duplicate tags for CREATE/ALTER USER not handled correctly
+
2014-06-23 11:17 alexpeshkoff
M src/jrd/jrd.cpp
Fixed deadlock privately reported by Dmitry Yemanov
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-24 10:16:24 UTC (rev 59759)
+++ firebird/trunk/src/jrd/build_no.h 2014-06-25 01:36:14 UTC (rev 59760)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31191
+ FORMAL BUILD NUMBER:31193
*/
-#define PRODUCT_VER_STRING "3.0.0.31191"
-#define FILE_VER_STRING "WI-T3.0.0.31191"
-#define LICENSE_VER_STRING "WI-T3.0.0.31191"
-#define FILE_VER_NUMBER 3, 0, 0, 31191
+#define PRODUCT_VER_STRING "3.0.0.31193"
+#define FILE_VER_STRING "WI-T3.0.0.31193"
+#define LICENSE_VER_STRING "WI-T3.0.0.31193"
+#define FILE_VER_NUMBER 3, 0, 0, 31193
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31191"
+#define FB_BUILD_NO "31193"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-24 10:16:24 UTC (rev 59759)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-06-25 01:36:14 UTC (rev 59760)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31191
+BuildNum=31193
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-06-26 00:29:32
|
Revision: 59768
http://sourceforge.net/p/firebird/code/59768
Author: firebirds
Date: 2014-06-26 00:29:29 +0000 (Thu, 26 Jun 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-25 20:04:02 UTC (rev 59767)
+++ firebird/trunk/ChangeLog 2014-06-26 00:29:29 UTC (rev 59768)
@@ -1,3 +1,25 @@
+ 2014-06-25 11:20 alexpeshkoff
+ M src/alice/alice.cpp
+ M src/alice/alice.h
+ M src/alice/aliceswi.h
+ M src/alice/exe.cpp
+ M src/alice/tdr.cpp
+ M src/burp/burp.cpp
+ M src/burp/burp.h
+ M src/burp/burpswi.h
+ M src/burp/restore.epp
+ M src/jrd/constants.h
+ M src/jrd/svc.cpp
+ M src/jrd/tra.cpp
+ M src/jrd/trace/TraceCmdLine.cpp
+ M src/jrd/trace/traceswi.h
+ M src/utilities/gsec/gsecswi.h
+ M src/utilities/gstat/dba.epp
+ M src/utilities/gstat/dbaswi.h
+ M src/utilities/nbackup/nbackup.cpp
+ M src/utilities/nbackup/nbkswi.h
+Cleanup - removed unused any more service time only switches trusted_user & trusted_role
+
2014-06-24 10:16 alexpeshkoff
M src/burp/backup.epp
M src/burp/restore.epp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-25 20:04:02 UTC (rev 59767)
+++ firebird/trunk/src/jrd/build_no.h 2014-06-26 00:29:29 UTC (rev 59768)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31193
+ FORMAL BUILD NUMBER:31194
*/
-#define PRODUCT_VER_STRING "3.0.0.31193"
-#define FILE_VER_STRING "WI-T3.0.0.31193"
-#define LICENSE_VER_STRING "WI-T3.0.0.31193"
-#define FILE_VER_NUMBER 3, 0, 0, 31193
+#define PRODUCT_VER_STRING "3.0.0.31194"
+#define FILE_VER_STRING "WI-T3.0.0.31194"
+#define LICENSE_VER_STRING "WI-T3.0.0.31194"
+#define FILE_VER_NUMBER 3, 0, 0, 31194
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31193"
+#define FB_BUILD_NO "31194"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-25 20:04:02 UTC (rev 59767)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-06-26 00:29:29 UTC (rev 59768)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31193
+BuildNum=31194
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-06-27 00:40:07
|
Revision: 59776
http://sourceforge.net/p/firebird/code/59776
Author: firebirds
Date: 2014-06-27 00:39:59 +0000 (Fri, 27 Jun 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-26 17:23:44 UTC (rev 59775)
+++ firebird/trunk/ChangeLog 2014-06-27 00:39:59 UTC (rev 59776)
@@ -1,3 +1,35 @@
+ 2014-06-26 16:14 fsg
+ M src/isql/extract.epp
+ M src/jrd/obj.h
+some more enhancements to isqls extract utility
+split extraction of functions and procedures in two parts (header and body)
+
+ 2014-06-26 09:43 alexpeshkoff
+ M src/jrd/DatabaseSnapshot.cpp
+Fixed very frequent segfault in monitoring code (CS/SC): tdbb->attachment was not set in thread_db::getCharSet() function used to convert monitoring strings
+
+ 2014-06-26 09:37 alexpeshkoff
+ M src/burp/backup.epp
+ M src/burp/restore.epp
+ M src/dsql/DdlNodes.epp
+ M src/include/gen/ids.h
+ M src/isql/show.epp
+ M src/jrd/Mapping.cpp
+ M src/jrd/idx.h
+ M src/jrd/names.h
+ M src/jrd/opt.cpp
+ M src/jrd/relations.h
+ M src/jrd/vio.cpp
+Renamed mapping-related tables as was discussed in devel
+
+ 2014-06-26 07:32 fsg
+ M src/isql/extract.epp
+extract domain definitions before functions, they may need them
+
+ 2014-06-26 07:09 fsg
+ M src/isql/extract.epp
+fixed extract of return parameter of external UDF's
+
2014-06-25 11:20 alexpeshkoff
M src/alice/alice.cpp
M src/alice/alice.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-26 17:23:44 UTC (rev 59775)
+++ firebird/trunk/src/jrd/build_no.h 2014-06-27 00:39:59 UTC (rev 59776)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31194
+ FORMAL BUILD NUMBER:31199
*/
-#define PRODUCT_VER_STRING "3.0.0.31194"
-#define FILE_VER_STRING "WI-T3.0.0.31194"
-#define LICENSE_VER_STRING "WI-T3.0.0.31194"
-#define FILE_VER_NUMBER 3, 0, 0, 31194
+#define PRODUCT_VER_STRING "3.0.0.31199"
+#define FILE_VER_STRING "WI-T3.0.0.31199"
+#define LICENSE_VER_STRING "WI-T3.0.0.31199"
+#define FILE_VER_NUMBER 3, 0, 0, 31199
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31194"
+#define FB_BUILD_NO "31199"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-26 17:23:44 UTC (rev 59775)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-06-27 00:39:59 UTC (rev 59776)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31194
+BuildNum=31199
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-06-28 00:35:43
|
Revision: 59782
http://sourceforge.net/p/firebird/code/59782
Author: firebirds
Date: 2014-06-28 00:35:36 +0000 (Sat, 28 Jun 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-27 16:29:14 UTC (rev 59781)
+++ firebird/trunk/ChangeLog 2014-06-28 00:35:36 UTC (rev 59782)
@@ -1,3 +1,11 @@
+ 2014-06-27 11:58 alexpeshkoff
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+Fixed CORE-4468: CREATE USER GRANT ADMIN ROLE does not work
+
+ 2014-06-27 11:32 alexpeshkoff
+ M src/auth/SecurityDatabase/LegacyManagement.epp
+cleanup
+
2014-06-26 16:14 fsg
M src/isql/extract.epp
M src/jrd/obj.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-27 16:29:14 UTC (rev 59781)
+++ firebird/trunk/src/jrd/build_no.h 2014-06-28 00:35:36 UTC (rev 59782)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31199
+ FORMAL BUILD NUMBER:31201
*/
-#define PRODUCT_VER_STRING "3.0.0.31199"
-#define FILE_VER_STRING "WI-T3.0.0.31199"
-#define LICENSE_VER_STRING "WI-T3.0.0.31199"
-#define FILE_VER_NUMBER 3, 0, 0, 31199
+#define PRODUCT_VER_STRING "3.0.0.31201"
+#define FILE_VER_STRING "WI-T3.0.0.31201"
+#define LICENSE_VER_STRING "WI-T3.0.0.31201"
+#define FILE_VER_NUMBER 3, 0, 0, 31201
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31199"
+#define FB_BUILD_NO "31201"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-27 16:29:14 UTC (rev 59781)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-06-28 00:35:36 UTC (rev 59782)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31199
+BuildNum=31201
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-06-29 00:36:09
|
Revision: 59790
http://sourceforge.net/p/firebird/code/59790
Author: firebirds
Date: 2014-06-29 00:36:05 +0000 (Sun, 29 Jun 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-28 12:41:17 UTC (rev 59789)
+++ firebird/trunk/ChangeLog 2014-06-29 00:36:05 UTC (rev 59790)
@@ -1,3 +1,11 @@
+ 2014-06-28 09:58 alexpeshkoff
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+ M src/include/gen/ids.h
+ M src/jrd/UserManagement.cpp
+ M src/jrd/names.h
+ M src/jrd/relations.h
+Fixed CORE-4469: Add field in SEC$USERS reflecting whether a user has RDB$ADMIN role in security database
+
2014-06-27 11:58 alexpeshkoff
M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
Fixed CORE-4468: CREATE USER GRANT ADMIN ROLE does not work
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-28 12:41:17 UTC (rev 59789)
+++ firebird/trunk/src/jrd/build_no.h 2014-06-29 00:36:05 UTC (rev 59790)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31201
+ FORMAL BUILD NUMBER:31202
*/
-#define PRODUCT_VER_STRING "3.0.0.31201"
-#define FILE_VER_STRING "WI-T3.0.0.31201"
-#define LICENSE_VER_STRING "WI-T3.0.0.31201"
-#define FILE_VER_NUMBER 3, 0, 0, 31201
+#define PRODUCT_VER_STRING "3.0.0.31202"
+#define FILE_VER_STRING "WI-T3.0.0.31202"
+#define LICENSE_VER_STRING "WI-T3.0.0.31202"
+#define FILE_VER_NUMBER 3, 0, 0, 31202
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31201"
+#define FB_BUILD_NO "31202"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-28 12:41:17 UTC (rev 59789)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-06-29 00:36:05 UTC (rev 59790)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31201
+BuildNum=31202
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-01 00:18:10
|
Revision: 59804
http://sourceforge.net/p/firebird/code/59804
Author: firebirds
Date: 2014-07-01 00:18:05 +0000 (Tue, 01 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-06-30 19:51:24 UTC (rev 59803)
+++ firebird/trunk/ChangeLog 2014-07-01 00:18:05 UTC (rev 59804)
@@ -1,3 +1,13 @@
+ 2014-06-30 11:45 alexpeshkoff
+ M src/common/isc.cpp
+ M src/common/isc_proto.h
+ M src/common/isc_sync.cpp
+ M src/jrd/svc.cpp
+ M src/jrd/trace/TraceConfigStorage.cpp
+ M src/jrd/trace/TraceLog.cpp
+ M src/yvalve/gds.cpp
+Fixed CORE-4475: attempt to create lock files directory fails during cleanup
+
2014-06-28 09:58 alexpeshkoff
M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
M src/include/gen/ids.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-06-30 19:51:24 UTC (rev 59803)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-01 00:18:05 UTC (rev 59804)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31202
+ FORMAL BUILD NUMBER:31203
*/
-#define PRODUCT_VER_STRING "3.0.0.31202"
-#define FILE_VER_STRING "WI-T3.0.0.31202"
-#define LICENSE_VER_STRING "WI-T3.0.0.31202"
-#define FILE_VER_NUMBER 3, 0, 0, 31202
+#define PRODUCT_VER_STRING "3.0.0.31203"
+#define FILE_VER_STRING "WI-T3.0.0.31203"
+#define LICENSE_VER_STRING "WI-T3.0.0.31203"
+#define FILE_VER_NUMBER 3, 0, 0, 31203
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31202"
+#define FB_BUILD_NO "31203"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-06-30 19:51:24 UTC (rev 59803)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-01 00:18:05 UTC (rev 59804)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31202
+BuildNum=31203
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-02 00:30:49
|
Revision: 59807
http://sourceforge.net/p/firebird/code/59807
Author: firebirds
Date: 2014-07-02 00:30:41 +0000 (Wed, 02 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-01 08:23:07 UTC (rev 59806)
+++ firebird/trunk/ChangeLog 2014-07-02 00:30:41 UTC (rev 59807)
@@ -1,3 +1,7 @@
+ 2014-07-01 08:23 alexpeshkoff
+ M src/jrd/types.h
+Fixed CORE-4477: Field RDB$MAP_TO_TYPE is not present in RDB$TYPES
+
2014-06-30 11:45 alexpeshkoff
M src/common/isc.cpp
M src/common/isc_proto.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-01 08:23:07 UTC (rev 59806)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-02 00:30:41 UTC (rev 59807)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31203
+ FORMAL BUILD NUMBER:31204
*/
-#define PRODUCT_VER_STRING "3.0.0.31203"
-#define FILE_VER_STRING "WI-T3.0.0.31203"
-#define LICENSE_VER_STRING "WI-T3.0.0.31203"
-#define FILE_VER_NUMBER 3, 0, 0, 31203
+#define PRODUCT_VER_STRING "3.0.0.31204"
+#define FILE_VER_STRING "WI-T3.0.0.31204"
+#define LICENSE_VER_STRING "WI-T3.0.0.31204"
+#define FILE_VER_NUMBER 3, 0, 0, 31204
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31203"
+#define FB_BUILD_NO "31204"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-01 08:23:07 UTC (rev 59806)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-02 00:30:41 UTC (rev 59807)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31203
+BuildNum=31204
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ale...@us...> - 2014-07-02 12:57:20
|
Revision: 59811
http://sourceforge.net/p/firebird/code/59811
Author: alexpeshkoff
Date: 2014-07-02 12:57:12 +0000 (Wed, 02 Jul 2014)
Log Message:
-----------
Added first parameter IStatus* to a lot of functions in API interfaces
Modified Paths:
--------------
firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
firebird/trunk/examples/dbcrypt/DbCrypt.cpp
firebird/trunk/src/auth/AuthDbg.cpp
firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp
firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
firebird/trunk/src/common/Auth.cpp
firebird/trunk/src/common/Auth.h
firebird/trunk/src/common/MsgMetadata.cpp
firebird/trunk/src/common/call_service.cpp
firebird/trunk/src/common/classes/GetPlugins.h
firebird/trunk/src/common/classes/ImplementHelper.h
firebird/trunk/src/common/classes/fb_string.cpp
firebird/trunk/src/common/classes/fb_string.h
firebird/trunk/src/common/security.cpp
firebird/trunk/src/common/security.h
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/dsql.cpp
firebird/trunk/src/include/firebird/Auth.h
firebird/trunk/src/include/firebird/Plugin.h
firebird/trunk/src/include/firebird/Provider.h
firebird/trunk/src/include/firebird/Timer.h
firebird/trunk/src/include/firebird/Utl.h
firebird/trunk/src/isql/show.epp
firebird/trunk/src/jrd/Database.cpp
firebird/trunk/src/jrd/UserManagement.cpp
firebird/trunk/src/jrd/jrd.cpp
firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp
firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp
firebird/trunk/src/remote/client/BlrFromMessage.cpp
firebird/trunk/src/utilities/gsec/gsec.cpp
firebird/trunk/src/yvalve/MasterImplementation.cpp
firebird/trunk/src/yvalve/PluginManager.cpp
firebird/trunk/src/yvalve/PluginManager.h
firebird/trunk/src/yvalve/alt.cpp
firebird/trunk/src/yvalve/utl.cpp
firebird/trunk/src/yvalve/why.cpp
Modified: firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -205,19 +205,22 @@
status->init();
if (key != 0)
- {
return 1;
- }
- IConfig* def = config->getDefaultConfig();
- IConfigEntry* confEntry = def->find("Auto");
+ IConfig* def = config->getDefaultConfig(status);
+ if (!status->isSuccess())
+ return 1;
+
+ IConfigEntry* confEntry = def->find(status, "Auto");
def->release();
+ if (!status->isSuccess())
+ return 1;
if (confEntry)
{
- char v = *(confEntry->getValue());
+ FB_BOOLEAN b = confEntry->getBoolValue();
confEntry->release();
- if (v == '1' || v == 'y' || v == 'Y' || v == 't' || v == 'T')
+ if (b)
{
key = 0x5a;
return 1;
@@ -256,11 +259,19 @@
return &module;
}
- IPluginBase* FB_CARG createPlugin(IPluginConfig* factoryParameter)
+ IPluginBase* FB_CARG createPlugin(IStatus* status, IPluginConfig* factoryParameter)
{
- CryptKeyHolder* p = new CryptKeyHolder(factoryParameter);
- p->addRef();
- return p;
+ try
+ {
+ CryptKeyHolder* p = new CryptKeyHolder(factoryParameter);
+ p->addRef();
+ return p;
+ }
+ catch(const Exception& ex)
+ {
+ ex.stuffException(status);
+ }
+ return NULL;
}
};
Modified: firebird/trunk/examples/dbcrypt/DbCrypt.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -200,9 +200,15 @@
if (key != 0)
return;
- IConfig* def = config->getDefaultConfig();
- IConfigEntry* confEntry = def->find("Auto");
+ IConfig* def = config->getDefaultConfig(status);
+ if (!status->isSuccess())
+ return;
+
+ IConfigEntry* confEntry = def->find(status, "Auto");
def->release();
+ if (!status->isSuccess())
+ return;
+
if (confEntry)
{
char v = *(confEntry->getValue());
@@ -218,14 +224,10 @@
{
ICryptKeyCallback* callback = sources[n]->keyHandle(status, "sample");
if (!status->isSuccess())
- {
return;
- }
if (callback && callback->callback(0, NULL, 1, &key) == 1)
- {
return;
- }
}
key = 0;
@@ -245,11 +247,19 @@
return &module;
}
- IPluginBase* FB_CARG createPlugin(IPluginConfig* factoryParameter)
+ IPluginBase* FB_CARG createPlugin(IStatus* status, IPluginConfig* factoryParameter)
{
- DbCrypt* p = new DbCrypt(factoryParameter);
- p->addRef();
- return p;
+ try
+ {
+ DbCrypt* p = new DbCrypt(factoryParameter);
+ p->addRef();
+ return p;
+ }
+ catch(const Exception& ex)
+ {
+ ex.stuffException(status);
+ }
+ return NULL;
}
};
Modified: firebird/trunk/src/auth/AuthDbg.cpp
===================================================================
--- firebird/trunk/src/auth/AuthDbg.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/auth/AuthDbg.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -28,6 +28,7 @@
#include "firebird.h"
#include "../auth/AuthDbg.h"
#include "../jrd/ibase.h"
+#include "../common/StatusHolder.h"
#ifdef AUTH_DEBUG
@@ -55,9 +56,12 @@
namespace Auth {
DebugServer::DebugServer(Firebird::IPluginConfig* pConf)
- : str(getPool()),
- config(Firebird::REF_NO_INCR, pConf->getDefaultConfig())
-{ }
+ : str(getPool())
+{
+ Firebird::LocalStatus s;
+ config.assignRefNoIncr(pConf->getDefaultConfig(&s));
+ check(&s);
+}
int FB_CARG DebugServer::authenticate(Firebird::IStatus* status, IServerBlock* sb,
IWriter* writerInterface)
@@ -94,14 +98,19 @@
#ifdef AUTH_VERBOSE
fprintf(stderr, "DebugServer::authenticate2: %s\n", str.c_str());
#endif
- writerInterface->add(str.c_str());
+ Firebird::LocalStatus s;
+ writerInterface->add(&s, str.c_str());
+ check(&s);
str.erase();
- Firebird::RefPtr<Firebird::IConfigEntry> group(Firebird::REF_NO_INCR, config->find("GROUP"));
+ Firebird::RefPtr<Firebird::IConfigEntry> group(Firebird::REF_NO_INCR, config->find(&s, "GROUP"));
+ check(&s);
if (group)
{
- writerInterface->add(group->getValue());
- writerInterface->setType("GROUP");
+ writerInterface->add(&s, group->getValue());
+ check(&s);
+ writerInterface->setType(&s, "GROUP");
+ check(&s);
}
return AUTH_SUCCESS;
Modified: firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -56,8 +56,12 @@
{
public:
explicit SrpManagement(Firebird::IPluginConfig* par)
- : config(Firebird::REF_NO_INCR, par->getFirebirdConf()), upCount(0), delCount(0)
- { }
+ : upCount(0), delCount(0)
+ {
+ Firebird::LocalStatus s;
+ config.assignRefNoIncr(par->getFirebirdConf(&s));
+ check(&s);
+ }
private:
void prepareDataStructures()
@@ -497,8 +501,10 @@
stmt->free(status);
check(status);
- user->admin()->set(0);
- user->admin()->setEntered(1);
+ user->admin()->set(status, 0);
+ check(status);
+ user->admin()->setEntered(status, 1);
+ check(status);
grantRevokeAdmin(user, true);
}
catch (const Firebird::Exception&)
@@ -556,18 +562,17 @@
while (rs->fetchNext(status, di.getBuffer()))
{
- check(status);
-
listField(user->userName(), login);
listField(user->firstName(), first);
listField(user->middleName(), middle);
listField(user->lastName(), last);
- listField(status, user->comment(), comment);
- listField(status, user->attributes(), attr);
+ listField(user->comment(), comment);
+ listField(user->attributes(), attr);
listField(user->active(), active);
listField(user->admin(), admin);
- callback->list(user);
+ callback->list(status, user);
+ check(status);
}
check(status);
@@ -796,49 +801,58 @@
static void listField(Auth::ICharUserField* to, Varfield& from)
{
- to->setEntered(from.null ? 0 : 1);
+ Firebird::LocalStatus st;
+ to->setEntered(&st, from.null ? 0 : 1);
+ check(&st);
if (!from.null)
{
- to->set(from);
+ to->set(&st, from);
+ check(&st);
}
}
static void listField(Auth::IIntUserField* to, Boolean& from)
{
- to->setEntered(from.null ? 0 : 1);
+ Firebird::LocalStatus st;
+ to->setEntered(&st, from.null ? 0 : 1);
+ check(&st);
if (!from.null)
{
- to->set(from);
+ to->set(&st, from);
+ check(&st);
}
}
- void listField(Firebird::IStatus* st, Auth::ICharUserField* to, Blob& from)
+ void listField(Auth::ICharUserField* to, Blob& from)
{
- to->setEntered(from.null ? 0 : 1);
+ Firebird::LocalStatus st;
+ to->setEntered(&st, from.null ? 0 : 1);
+ check(&st);
if (!from.null)
{
Firebird::string s;
Firebird::IBlob* blob = NULL;
try
{
- blob = att->openBlob(st, tra, &from);
- check(st);
+ blob = att->openBlob(&st, tra, &from);
+ check(&st);
char segbuf[256];
unsigned len;
- while ( (len = blob->getSegment(st, sizeof(segbuf), segbuf)) )
+ while ( (len = blob->getSegment(&st, sizeof(segbuf), segbuf)) )
{
- if (st->get()[1] != isc_segment)
- check(st);
+ if (st.get()[1] != isc_segment)
+ check(&st);
s.append(segbuf, len);
}
- if (st->get()[1] != isc_segstr_eof)
- check(st);
+ if (st.get()[1] != isc_segstr_eof)
+ check(&st);
- blob->close(st);
- check(st);
+ blob->close(&st);
+ check(&st);
- to->set(s.c_str());
+ to->set(&st, s.c_str());
+ check(&st);
}
catch (const Firebird::Exception&)
{
Modified: firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -57,8 +57,12 @@
: server(NULL), data(getPool()), account(getPool()),
clientPubKey(getPool()), serverPubKey(getPool()),
verifier(getPool()), salt(getPool()), sessionKey(getPool()),
- config(REF_NO_INCR, par->getFirebirdConf()), secDbName(NULL)
- { }
+ secDbName(NULL)
+ {
+ Firebird::LocalStatus s;
+ config.assignRefNoIncr(par->getFirebirdConf(&s));
+ check(&s);
+ }
// IServer implementation
int FB_CARG authenticate(IStatus* status, IServerBlock* sBlock, IWriter* writerInterface);
@@ -266,8 +270,16 @@
if (clientProof == serverProof)
{
MasterInterfacePtr()->upgradeInterface(writerInterface, FB_AUTH_WRITER_VERSION, upInfo);
- writerInterface->add(account.c_str());
- writerInterface->setDb(secDbName);
+ writerInterface->add(status, account.c_str());
+ if (!status->isSuccess())
+ {
+ return AUTH_FAILED;
+ }
+ writerInterface->setDb(status, secDbName);
+ if (!status->isSuccess())
+ {
+ return AUTH_FAILED;
+ }
return AUTH_SUCCESS;
}
}
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -40,6 +40,7 @@
#include "../auth/SecurityDatabase/LegacyManagement.h"
#include "../common/classes/ImplementHelper.h"
#include "../common/classes/ClumpletWriter.h"
+#include "../common/StatusHolder.h"
#include "firebird/Plugin.h"
static Firebird::MakeUpgradeInfo<> upInfo;
@@ -105,8 +106,12 @@
namespace Auth {
SecurityDatabaseManagement::SecurityDatabaseManagement(Firebird::IPluginConfig* par)
- : config(Firebird::REF_NO_INCR, par->getFirebirdConf()), database(0), transaction(0)
-{ }
+ : database(0), transaction(0)
+{
+ Firebird::LocalStatus s;
+ config.assignRefNoIncr(par->getFirebirdConf(&s));
+ check(&s);
+}
void FB_CARG SecurityDatabaseManagement::start(Firebird::IStatus* st, ILogonInfo* logonInfo)
{
@@ -535,8 +540,10 @@
if (!ret && !found)
ret = GsecMsg22; // gsec - record not found for user:
- user->admin()->set(0);
- user->admin()->setEntered(1);
+ user->admin()->set(st, 0);
+ check(st);
+ user->admin()->setEntered(st, 1);
+ check(st);
if (ret == 0 && !grantRevokeAdmin(isc_status, database, transaction, user))
{
ret = GsecMsg24;
@@ -550,7 +557,11 @@
found = false;
if (!user->userName()->entered())
{
+ Firebird::LocalStatus s2;
+ Firebird::IStatus* s = st;
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS
+ try
+ {
{
Firebird::string attr, a1, a2, a3;
@@ -564,22 +575,37 @@
a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
attr = a1 + a2 + a3;
- user->attributes()->set(attr.c_str());
- user->attributes()->setEntered(attr.hasData() ? 1 : 0);
+ user->attributes()->set(s, attr.c_str());
+ check(s);
+ user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ check(s);
}
- user->userName()->set(U.PLG$USER_NAME);
- user->userName()->setEntered(U.PLG$USER_NAME.NULL ? 0 : 1);
- user->password()->set("");
- user->password()->setEntered(0);
- user->firstName()->set(U.PLG$FIRST_NAME);
- user->firstName()->setEntered(U.PLG$FIRST_NAME.NULL ? 0 : 1);
- user->middleName()->set(U.PLG$MIDDLE_NAME);
- user->middleName()->setEntered(U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
- user->lastName()->set(U.PLG$LAST_NAME);
- user->lastName()->setEntered(U.PLG$LAST_NAME.NULL ? 0 : 1);
+ user->userName()->set(s, U.PLG$USER_NAME);
+ check(s);
+ user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
+ check(s);
+ user->password()->set(s, "");
+ check(s);
+ user->password()->setEntered(s, 0);
+ check(s);
+ user->firstName()->set(s, U.PLG$FIRST_NAME);
+ check(s);
+ user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
+ check(s);
+ user->middleName()->set(s, U.PLG$MIDDLE_NAME);
+ check(s);
+ user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
+ check(s);
+ user->lastName()->set(s, U.PLG$LAST_NAME);
+ check(s);
+ user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
+ check(s);
- user->admin()->set(0);
+ user->admin()->set(s, 0);
+ check(s);
+ user->admin()->setEntered(s, 1);
+ check(s);
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
P IN RDB$USER_PRIVILEGES
@@ -587,24 +613,39 @@
P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
P.RDB$PRIVILEGE EQ 'M'
{
- user->admin()->set(1);
+ user->admin()->set(s, 1);
}
END_FOR
+ check(s);
- callback->list(user);
+ callback->list(s, user);
+ check(s);
found = true;
+ }
+ catch(const Firebird::Exception& ex)
+ {
+ ex.stuffException(s);
+ s = &s2;
+ }
END_FOR
ON_ERROR
ret = GsecMsg28; // gsec - find/display record error
END_ERROR;
+
+ // real error raise - out of gpre's FOR loop
+ check(st);
}
else
{
Firebird::string attr, a1, a2, a3;
+ Firebird::LocalStatus s2;
+ Firebird::IStatus* s = st;
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS
WITH U.PLG$USER_NAME EQ user->userName()->get()
+ try
+ {
if (!U.PLG$UID.NULL)
a1.printf("Uid=%d\n", U.PLG$UID);
@@ -615,39 +656,66 @@
a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
attr = a1 + a2 + a3;
- user->attributes()->set(attr.c_str());
- user->attributes()->setEntered(attr.hasData() ? 1 : 0);
+ user->attributes()->set(s, attr.c_str());
+ check(s);
+ user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ check(s);
- user->userName()->set(U.PLG$USER_NAME);
- user->userName()->setEntered(U.PLG$USER_NAME.NULL ? 0 : 1);
- user->password()->set("");
- user->password()->setEntered(0);
- user->firstName()->set(U.PLG$FIRST_NAME);
- user->firstName()->setEntered(U.PLG$FIRST_NAME.NULL ? 0 : 1);
- user->middleName()->set(U.PLG$MIDDLE_NAME);
- user->middleName()->setEntered(U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
- user->lastName()->set(U.PLG$LAST_NAME);
- user->lastName()->setEntered(U.PLG$LAST_NAME.NULL ? 0 : 1);
+ user->userName()->set(s, U.PLG$USER_NAME);
+ check(s);
+ user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
+ check(s);
+ user->password()->set(s, "");
+ check(s);
+ user->password()->setEntered(s, 0);
+ check(s);
+ user->firstName()->set(s, U.PLG$FIRST_NAME);
+ check(s);
+ user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
+ check(s);
+ user->middleName()->set(s, U.PLG$MIDDLE_NAME);
+ check(s);
+ user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
+ check(s);
+ user->lastName()->set(s, U.PLG$LAST_NAME);
+ check(s);
+ user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
+ check(s);
- user->admin()->set(0);
+ user->admin()->set(s, 0);
+ check(s);
+ user->admin()->setEntered(s, 1);
+ check(s);
+
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
P IN RDB$USER_PRIVILEGES
WITH P.RDB$USER EQ U.PLG$USER_NAME AND
P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
P.RDB$PRIVILEGE EQ 'M'
{
- user->admin()->set(1);
+ user->admin()->set(s, 1);
}
END_FOR
+ check(s);
- callback->list(user);
+ callback->list(s, user);
+ check(s);
found = true;
+ }
+ catch(const Firebird::Exception& ex)
+ {
+ ex.stuffException(s);
+ s = &s2;
+ }
END_FOR
ON_ERROR
ret = GsecMsg28; // gsec - find/display record error
END_ERROR;
+
+ // real error raise - out of gpre's FOR loop
+ check(st);
}
break;
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -349,9 +349,12 @@
}
}
+ LocalStatus s;
MasterInterfacePtr()->upgradeInterface(authBlock, FB_AUTH_WRITER_VERSION, upInfo);
- authBlock->add(login.c_str());
- authBlock->setDb(secureDbName);
+ authBlock->add(&s, login.c_str());
+ check(&s);
+ authBlock->setDb(&s, secureDbName);
+ check(&s);
return AUTH_SUCCESS;
}
@@ -426,7 +429,9 @@
{
if (curInstances[i])
{
- TimerInterfacePtr()->stop(curInstances[i]);
+ LocalStatus s;
+ TimerInterfacePtr()->stop(&s, curInstances[i]);
+ check(&s);
curInstances[i]->release();
curInstances[i] = NULL;
}
@@ -460,7 +465,9 @@
{
PathName secDbName;
{ // config scope
- RefPtr<IFirebirdConf> config(REF_NO_INCR, iParameter->getFirebirdConf());
+ LocalStatus s;
+ RefPtr<IFirebirdConf> config(REF_NO_INCR, iParameter->getFirebirdConf(&s));
+ check(&s);
if (secDbKey == INIT_KEY)
{
@@ -501,10 +508,11 @@
int rc = instance->verify(writerInterface, sBlock);
#define USE_ATT_RQ_CACHE
#ifdef USE_ATT_RQ_CACHE
- TimerInterfacePtr()->start(instance, 10 * 1000 * 1000);
-#else
- instance->handler();
+ LocalStatus s;
+ TimerInterfacePtr()->start(&s, instance, 10 * 1000 * 1000);
+ if (!s.isSuccess())
#endif
+ instance->handler();
return rc;
}
catch (const Firebird::Exception& ex)
Modified: firebird/trunk/src/common/Auth.cpp
===================================================================
--- firebird/trunk/src/common/Auth.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/Auth.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -60,18 +60,25 @@
sequence = 0;
}
-void WriterImplementation::add(const char* name)
+void WriterImplementation::add(Firebird::IStatus* st, const char* name)
{
- putLevel();
+ try
+ {
+ putLevel();
- current.clear();
- current.insertString(AuthReader::AUTH_NAME, name);
- fb_assert(plugin.hasData());
- if (plugin.hasData())
+ current.clear();
+ current.insertString(AuthReader::AUTH_NAME, name);
+ fb_assert(plugin.hasData());
+ if (plugin.hasData())
+ {
+ current.insertString(AuthReader::AUTH_PLUGIN, plugin);
+ }
+ type = "USER";
+ }
+ catch(const Firebird::Exception& ex)
{
- current.insertString(AuthReader::AUTH_PLUGIN, plugin);
+ ex.stuffException(st);
}
- type = "USER";
}
void WriterImplementation::setPlugin(const char* m)
@@ -91,20 +98,34 @@
result.insertBytes(sequence++, current.getBuffer(), current.getBufferLength());
}
-void WriterImplementation::setType(const char* value)
+void WriterImplementation::setType(Firebird::IStatus* st, const char* value)
{
- if (value)
- type = value;
+ try
+ {
+ if (value)
+ type = value;
+ }
+ catch(const Firebird::Exception& ex)
+ {
+ ex.stuffException(st);
+ }
}
-void WriterImplementation::setDb(const char* value)
+void WriterImplementation::setDb(Firebird::IStatus* st, const char* value)
{
- if (value)
+ try
{
- PathName target;
- expandDatabaseName(value, target, NULL);
- current.insertPath(AuthReader::AUTH_SECURE_DB, target);
+ if (value)
+ {
+ PathName target;
+ expandDatabaseName(value, target, NULL);
+ current.insertPath(AuthReader::AUTH_SECURE_DB, target);
+ }
}
+ catch(const Firebird::Exception& ex)
+ {
+ ex.stuffException(st);
+ }
}
} // namespace Auth
Modified: firebird/trunk/src/common/Auth.h
===================================================================
--- firebird/trunk/src/common/Auth.h 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/Auth.h 2014-07-02 12:57:12 UTC (rev 59811)
@@ -49,9 +49,9 @@
// IWriter implementation
void FB_CARG reset();
- void FB_CARG add(const char* name);
- void FB_CARG setType(const char* value);
- void FB_CARG setDb(const char* value);
+ void FB_CARG add(Firebird::IStatus* st, const char* name);
+ void FB_CARG setType(Firebird::IStatus* st, const char* value);
+ void FB_CARG setDb(Firebird::IStatus* st, const char* value);
private:
Firebird::ClumpletWriter current, result;
Modified: firebird/trunk/src/common/MsgMetadata.cpp
===================================================================
--- firebird/trunk/src/common/MsgMetadata.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/MsgMetadata.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -270,15 +270,7 @@
}
}
-void check(IStatus* status)
-{
- if (!status->isSuccess())
- {
- status_exception::raise(status->get());
- }
-}
-
// Add an item based on a descriptor.
void MsgMetadata::addItem(const MetaName& name, bool nullable, const dsc& desc)
{
Modified: firebird/trunk/src/common/call_service.cpp
===================================================================
--- firebird/trunk/src/common/call_service.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/call_service.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -328,13 +328,15 @@
}
-static void setAttr(Auth::UserData* u)
+static void setAttr(IStatus* status, Auth::UserData* u)
{
string attr;
setAttr(attr, "Uid", &u->u);
setAttr(attr, "Gid", &u->g);
- u->attributes()->setEntered(attr.hasData());
- u->attributes()->set(attr.c_str());
+ u->attributes()->set(status, attr.c_str());
+ if (!status->isSuccess())
+ return;
+ u->attributes()->setEntered(status, attr.hasData());
}
@@ -472,8 +474,11 @@
if (uData.user.get()[0] && callback)
{
- setAttr(&uData);
- callback->list(&uData);
+ LocalStatus status;
+ setAttr(&status, &uData);
+ check(&status);
+ callback->list(&status, &uData);
+ check(&status);
}
}
else
@@ -554,14 +559,20 @@
p += sizeof(USHORT);
f.set(p, len);
- f.setEntered(1);
p += len;
+
+ LocalStatus s;
+ f.setEntered(&s, 1);
+ check(&s);
}
static void parseLong(const char*& p, Auth::IntField& f, size_t& loop)
{
- f.set(isc_vax_integer(p, sizeof(ULONG)));
- f.setEntered(1);
+ LocalStatus s;
+ f.set(&s, isc_vax_integer(p, sizeof(ULONG)));
+ check(&s);
+ f.setEntered(&s, 1);
+ check(&s);
const size_t len2 = sizeof(ULONG) + 1;
if (len2 > loop)
@@ -639,12 +650,16 @@
case isc_spb_sec_username:
if (uData.user.get()[0])
{
+ LocalStatus status;
if (callback)
{
- setAttr(&uData);
- callback->list(&uData);
+ setAttr(&status, &uData);
+ check(&status);
+ callback->list(&status, &uData);
+ check(&status);
}
- uData.clear();
+ uData.clear(&status);
+ check(&status);
}
parseString2(p, uData.user, loop);
break;
Modified: firebird/trunk/src/common/classes/GetPlugins.h
===================================================================
--- firebird/trunk/src/common/classes/GetPlugins.h 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/classes/GetPlugins.h 2014-07-02 12:57:12 UTC (rev 59811)
@@ -49,13 +49,8 @@
pluginSet.assignRefNoIncr(pluginInterface->getPlugins(&status, interfaceType,
(namesList ? namesList : Config::getDefaultConfig()->getPlugins(interfaceType)),
desiredVersion, ui, NULL));
+ check(&status);
- if (!pluginSet)
- {
- fb_assert(!status.isSuccess());
- status_exception::raise(status.get());
- }
-
getPlugin();
}
@@ -68,13 +63,8 @@
pluginSet.assignRefNoIncr(pluginInterface->getPlugins(&status, interfaceType,
(namesList ? namesList : knownConfig->getPlugins(interfaceType)),
desiredVersion, ui, new FirebirdConf(knownConfig)));
+ check(&status);
- if (!pluginSet)
- {
- fb_assert(!status.isSuccess());
- status_exception::raise(status.get());
- }
-
getPlugin();
}
@@ -104,7 +94,10 @@
{
pluginInterface->releasePlugin(currentPlugin);
currentPlugin = NULL;
- pluginSet->next();
+
+ LocalStatus status;
+ pluginSet->next(&status);
+ check(&status);
getPlugin();
}
}
@@ -116,7 +109,10 @@
pluginInterface->releasePlugin(currentPlugin);
currentPlugin = NULL;
}
- pluginSet->set(newName);
+
+ LocalStatus status;
+ pluginSet->set(&status, newName);
+ check(&status);
getPlugin();
}
@@ -137,7 +133,9 @@
void getPlugin()
{
- currentPlugin = (P*) pluginSet->getPlugin();
+ LocalStatus status;
+ currentPlugin = (P*) pluginSet->getPlugin(&status);
+ check(&status);
}
};
Modified: firebird/trunk/src/common/classes/ImplementHelper.h
===================================================================
--- firebird/trunk/src/common/classes/ImplementHelper.h 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/classes/ImplementHelper.h 2014-07-02 12:57:12 UTC (rev 59811)
@@ -145,11 +145,19 @@
class SimpleFactoryBase : public AutoIface<IPluginFactory, FB_PLUGIN_FACTORY_VERSION>
{
public:
- IPluginBase* FB_CARG createPlugin(IPluginConfig* factoryParameter)
+ IPluginBase* FB_CARG createPlugin(IStatus* status, IPluginConfig* factoryParameter)
{
- P* p = new P(factoryParameter);
- p->addRef();
- return p;
+ try
+ {
+ P* p = new P(factoryParameter);
+ p->addRef();
+ return p;
+ }
+ catch(const Firebird::Exception& ex)
+ {
+ ex.stuffException(status);
+ }
+ return NULL;
}
};
@@ -357,6 +365,16 @@
};
+// Generic status checker
+inline void check(IStatus* status)
+{
+ if (!status->isSuccess())
+ {
+ status_exception::raise(status->get());
+ }
+}
+
+
// debugger for reference counters
#ifdef DEV_BUILD
Modified: firebird/trunk/src/common/classes/fb_string.cpp
===================================================================
--- firebird/trunk/src/common/classes/fb_string.cpp 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/classes/fb_string.cpp 2014-07-02 12:57:12 UTC (rev 59811)
@@ -129,7 +129,7 @@
memset(stringBuffer, c, sizeL);
}
- void AbstractString::adjustRange(const size_type length, size_type& pos, size_type& n)
+ void AbstractString::adjustRange(const size_type length, size_type& pos, size_type& n) throw()
{
if (pos == npos) {
pos = length > n ? length - n : 0;
@@ -174,7 +174,7 @@
return stringBuffer + p0;
}
- void AbstractString::baseErase(size_type p0, size_type n)
+ void AbstractString::baseErase(size_type p0, size_type n) throw()
{
adjustRange(length(), p0, n);
memmove(stringBuffer + p0, stringBuffer + p0 + n, stringLength - (p0 + n) + 1);
Modified: firebird/trunk/src/common/classes/fb_string.h
===================================================================
--- firebird/trunk/src/common/classes/fb_string.h 2014-07-02 12:19:10 UTC (rev 59810)
+++ firebird/trunk/src/common/classes/fb_string.h 2014-07-02 12:57:12 UTC (rev 59811)
@@ -151,7 +151,7 @@
stringBuffer[stringLength] = 0;
}
- void shrinkBuffer()
+ void shrinkBuffer() throw()
{
// Shrink buffer if we decide it is beneficial
}
@@ -200,7 +200,7 @@
}
// Trim the range making sure that it fits inside specified length
- static void adjustRange(const size_type length, size_type& pos, size_type& n);
+ static void adjustRange(const size_type length, size_type& pos, size_type& n) throw();
pointer baseAssign(const size_type n);
@@ -208,7 +208,7 @@
pointer baseInsert(const size_type p0, const size_type n);
- void baseErase(size_type p0, size_type n);
+ void baseErase(size_type p0, size_type n) throw();
enum TrimType {TrimLeft, TrimRight, TrimBoth};
@@ -511,17 +511,17 @@
insert(it - c_str(), first, last - first);
}
- AbstractString& erase(size_type p0 = 0, size_type n = npos)
+ AbstractString& erase(size_type p0 = 0, size_type n = npos) throw()
{
baseErase(p0, n);
return *this;
}
- iterator erase(iterator it)
+ iterator erase(iterator it) ...
[truncated message content] |
|
From: <fir...@us...> - 2014-07-03 00:28:09
|
Revision: 59814
http://sourceforge.net/p/firebird/code/59814
Author: firebirds
Date: 2014-07-03 00:28:01 +0000 (Thu, 03 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-02 19:19:05 UTC (rev 59813)
+++ firebird/trunk/ChangeLog 2014-07-03 00:28:01 UTC (rev 59814)
@@ -1,3 +1,59 @@
+ 2014-07-02 19:19 dimitr
+ M src/burp/restore.epp
+Fixed CORE-4480: ISQL issues warning: "Bad debug info format" when connect to database with stored function after it's restoring.
+
+ 2014-07-02 12:57 alexpeshkoff
+ M examples/dbcrypt/CryptKeyHolder.cpp
+ M examples/dbcrypt/DbCrypt.cpp
+ M src/auth/AuthDbg.cpp
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+ M src/auth/SecureRemotePassword/server/SrpServer.cpp
+ M src/auth/SecurityDatabase/LegacyManagement.epp
+ M src/auth/SecurityDatabase/LegacyServer.cpp
+ M src/common/Auth.cpp
+ M src/common/Auth.h
+ M src/common/MsgMetadata.cpp
+ M src/common/call_service.cpp
+ M src/common/classes/GetPlugins.h
+ M src/common/classes/ImplementHelper.h
+ M src/common/classes/fb_string.cpp
+ M src/common/classes/fb_string.h
+ M src/common/security.cpp
+ M src/common/security.h
+ M src/dsql/DdlNodes.epp
+ M src/dsql/dsql.cpp
+ M src/include/firebird/Auth.h
+ M src/include/firebird/Plugin.h
+ M src/include/firebird/Provider.h
+ M src/include/firebird/Timer.h
+ M src/include/firebird/Utl.h
+ M src/isql/show.epp
+ M src/jrd/Database.cpp
+ M src/jrd/UserManagement.cpp
+ M src/jrd/jrd.cpp
+ M src/jrd/trace/TraceConfigStorage.cpp
+ M src/plugins/udr_engine/UdrEngine.cpp
+ M src/remote/client/BlrFromMessage.cpp
+ M src/utilities/gsec/gsec.cpp
+ M src/yvalve/MasterImplementation.cpp
+ M src/yvalve/PluginManager.cpp
+ M src/yvalve/PluginManager.h
+ M src/yvalve/alt.cpp
+ M src/yvalve/utl.cpp
+ M src/yvalve/why.cpp
+Added first parameter IStatus* to a lot of functions in API interfaces
+
+ 2014-07-02 07:59 fsg
+ M src/isql/extract.epp
+ M src/isql/isql.h
+ M src/jrd/obj.h
+corrections as suggested by Adriano and Claudio
+
+ 2014-07-02 02:22 asfernandes
+ M src/common/isc_proto.h
+ M src/isql/extract.epp
+Misc.
+
2014-07-01 08:23 alexpeshkoff
M src/jrd/types.h
Fixed CORE-4477: Field RDB$MAP_TO_TYPE is not present in RDB$TYPES
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-02 19:19:05 UTC (rev 59813)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-03 00:28:01 UTC (rev 59814)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31204
+ FORMAL BUILD NUMBER:31208
*/
-#define PRODUCT_VER_STRING "3.0.0.31204"
-#define FILE_VER_STRING "WI-T3.0.0.31204"
-#define LICENSE_VER_STRING "WI-T3.0.0.31204"
-#define FILE_VER_NUMBER 3, 0, 0, 31204
+#define PRODUCT_VER_STRING "3.0.0.31208"
+#define FILE_VER_STRING "WI-T3.0.0.31208"
+#define LICENSE_VER_STRING "WI-T3.0.0.31208"
+#define FILE_VER_NUMBER 3, 0, 0, 31208
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31204"
+#define FB_BUILD_NO "31208"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-02 19:19:05 UTC (rev 59813)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-03 00:28:01 UTC (rev 59814)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31204
+BuildNum=31208
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ale...@us...> - 2014-07-03 07:54:52
|
Revision: 59816
http://sourceforge.net/p/firebird/code/59816
Author: alexpeshkoff
Date: 2014-07-03 07:54:48 +0000 (Thu, 03 Jul 2014)
Log Message:
-----------
Frontported fix for linux build regression
Modified Paths:
--------------
firebird/trunk/configure.ac
firebird/trunk/src/jrd/os/posix/unix.cpp
Modified: firebird/trunk/configure.ac
===================================================================
--- firebird/trunk/configure.ac 2014-07-03 07:48:17 UTC (rev 59815)
+++ firebird/trunk/configure.ac 2014-07-03 07:54:48 UTC (rev 59816)
@@ -833,6 +833,9 @@
AC_CHECK_FUNCS(pthread_cancel)
AC_CHECK_FUNCS(sigset)
+dnl Check for fallocate() system call
+AC_CHECK_FUNCS(fallocate)
+
dnl Semaphores
if test "$ac_cv_header_semaphore_h" = "yes"; then
AC_SEARCH_LIBS(sem_init, rt pthread)
Modified: firebird/trunk/src/jrd/os/posix/unix.cpp
===================================================================
--- firebird/trunk/src/jrd/os/posix/unix.cpp 2014-07-03 07:48:17 UTC (rev 59815)
+++ firebird/trunk/src/jrd/os/posix/unix.cpp 2014-07-03 07:54:48 UTC (rev 59816)
@@ -307,7 +307,7 @@
*
**************************************/
-#ifdef HAVE_LINUX_FALLOC_H
+#if defined(HAVE_LINUX_FALLOC_H) && defined(HAVE_FALLOCATE)
ULONG leftPages = extPages;
for (jrd_file* file = main_file; file && leftPages; file = file->fil_next)
{
@@ -354,7 +354,7 @@
}
#else
main_file->fil_flags |= FIL_no_fast_extend;
-#endif // HAVE_LINUX_FALLOC_H
+#endif // fallocate present
// not implemented
return;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-04 00:35:43
|
Revision: 59820
http://sourceforge.net/p/firebird/code/59820
Author: firebirds
Date: 2014-07-04 00:35:34 +0000 (Fri, 04 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-03 09:43:41 UTC (rev 59819)
+++ firebird/trunk/ChangeLog 2014-07-04 00:35:34 UTC (rev 59820)
@@ -1,3 +1,16 @@
+ 2014-07-03 09:43 alexpeshkoff
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+Fixed management for users with ' (single quote) in a name
+
+ 2014-07-03 09:37 alexpeshkoff
+ M src/yvalve/why.cpp
+Added missing check for provider status before creating yvalve objects
+
+ 2014-07-03 07:54 alexpeshkoff
+ M configure.ac
+ M src/jrd/os/posix/unix.cpp
+Frontported fix for linux build regression
+
2014-07-02 19:19 dimitr
M src/burp/restore.epp
Fixed CORE-4480: ISQL issues warning: "Bad debug info format" when connect to database with stored function after it's restoring.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-03 09:43:41 UTC (rev 59819)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-04 00:35:34 UTC (rev 59820)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31208
+ FORMAL BUILD NUMBER:31211
*/
-#define PRODUCT_VER_STRING "3.0.0.31208"
-#define FILE_VER_STRING "WI-T3.0.0.31208"
-#define LICENSE_VER_STRING "WI-T3.0.0.31208"
-#define FILE_VER_NUMBER 3, 0, 0, 31208
+#define PRODUCT_VER_STRING "3.0.0.31211"
+#define FILE_VER_STRING "WI-T3.0.0.31211"
+#define LICENSE_VER_STRING "WI-T3.0.0.31211"
+#define FILE_VER_NUMBER 3, 0, 0, 31211
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31208"
+#define FB_BUILD_NO "31211"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-03 09:43:41 UTC (rev 59819)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-04 00:35:34 UTC (rev 59820)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31208
+BuildNum=31211
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ale...@us...> - 2014-07-04 08:25:58
|
Revision: 59822
http://sourceforge.net/p/firebird/code/59822
Author: alexpeshkoff
Date: 2014-07-04 08:25:49 +0000 (Fri, 04 Jul 2014)
Log Message:
-----------
Fixed CORE-4478: Failure to load provider/plugin not reported
Modified Paths:
--------------
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/common/config/config.cpp
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
firebird/trunk/src/yvalve/PluginManager.cpp
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2014-07-04 08:25:49 UTC (rev 59822)
@@ -1418,16 +1418,16 @@
PARAMETER (GDS__attachment_in_use = 335545002)
INTEGER*4 GDS__transaction_in_use
PARAMETER (GDS__transaction_in_use = 335545003)
- INTEGER*4 GDS__pman_plugin_notfound
- PARAMETER (GDS__pman_plugin_notfound = 335545004)
INTEGER*4 GDS__pman_cannot_load_plugin
- PARAMETER (GDS__pman_cannot_load_plugin = 335545005)
+ PARAMETER (GDS__pman_cannot_load_plugin = 335545004)
+ INTEGER*4 GDS__pman_module_notfound
+ PARAMETER (GDS__pman_module_notfound = 335545005)
INTEGER*4 GDS__pman_entrypoint_notfound
PARAMETER (GDS__pman_entrypoint_notfound = 335545006)
- INTEGER*4 GDS__pman_bad_conf_index
- PARAMETER (GDS__pman_bad_conf_index = 335545007)
- INTEGER*4 GDS__pman_unknown_instance
- PARAMETER (GDS__pman_unknown_instance = 335545008)
+ INTEGER*4 GDS__pman_module_bad
+ PARAMETER (GDS__pman_module_bad = 335545007)
+ INTEGER*4 GDS__pman_plugin_notfound
+ PARAMETER (GDS__pman_plugin_notfound = 335545008)
INTEGER*4 GDS__sysf_invalid_trig_namespace
PARAMETER (GDS__sysf_invalid_trig_namespace = 335545009)
INTEGER*4 GDS__unexpected_null
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2014-07-04 08:25:49 UTC (rev 59822)
@@ -716,11 +716,11 @@
gds_eem_engine_notfound = 335545001;
gds_attachment_in_use = 335545002;
gds_transaction_in_use = 335545003;
- gds_pman_plugin_notfound = 335545004;
- gds_pman_cannot_load_plugin = 335545005;
+ gds_pman_cannot_load_plugin = 335545004;
+ gds_pman_module_notfound = 335545005;
gds_pman_entrypoint_notfound = 335545006;
- gds_pman_bad_conf_index = 335545007;
- gds_pman_unknown_instance = 335545008;
+ gds_pman_module_bad = 335545007;
+ gds_pman_plugin_notfound = 335545008;
gds_sysf_invalid_trig_namespace = 335545009;
gds_unexpected_null = 335545010;
gds_type_notcompat_blob = 335545011;
Modified: firebird/trunk/src/common/config/config.cpp
===================================================================
--- firebird/trunk/src/common/config/config.cpp 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/common/config/config.cpp 2014-07-04 08:25:49 UTC (rev 59822)
@@ -184,7 +184,11 @@
{TYPE_INTEGER, "FileSystemCacheSize", (ConfigValue) 0}, // percent
{TYPE_STRING, "Providers", (ConfigValue) "Remote, " CURRENT_ENGINE ", Loopback"},
{TYPE_STRING, "AuthServer", (ConfigValue) "Srp"},
+#ifdef WIN_NT
{TYPE_STRING, "AuthClient", (ConfigValue) "Srp, Win_Sspi, Legacy_Auth"},
+#else
+ {TYPE_STRING, "AuthClient", (ConfigValue) "Srp, Legacy_Auth"},
+#endif
{TYPE_STRING, "UserManager", (ConfigValue) "Srp"},
{TYPE_STRING, "TracePlugin", (ConfigValue) "fbtrace"},
{TYPE_STRING, "SecurityDatabase", (ConfigValue) "$(root)/security3.fdb"}, // security database name
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/include/gen/codetext.h 2014-07-04 08:25:49 UTC (rev 59822)
@@ -705,11 +705,11 @@
{"eem_engine_notfound", 335545001},
{"attachment_in_use", 335545002},
{"transaction_in_use", 335545003},
- {"pman_plugin_notfound", 335545004},
- {"pman_cannot_load_plugin", 335545005},
+ {"pman_cannot_load_plugin", 335545004},
+ {"pman_module_notfound", 335545005},
{"pman_entrypoint_notfound", 335545006},
- {"pman_bad_conf_index", 335545007},
- {"pman_unknown_instance", 335545008},
+ {"pman_module_bad", 335545007},
+ {"pman_plugin_notfound", 335545008},
{"sysf_invalid_trig_namespace", 335545009},
{"unexpected_null", 335545010},
{"type_notcompat_blob", 335545011},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/include/gen/iberror.h 2014-07-04 08:25:49 UTC (rev 59822)
@@ -739,11 +739,11 @@
const ISC_STATUS isc_eem_engine_notfound = 335545001L;
const ISC_STATUS isc_attachment_in_use = 335545002L;
const ISC_STATUS isc_transaction_in_use = 335545003L;
-const ISC_STATUS isc_pman_plugin_notfound = 335545004L;
-const ISC_STATUS isc_pman_cannot_load_plugin = 335545005L;
+const ISC_STATUS isc_pman_cannot_load_plugin = 335545004L;
+const ISC_STATUS isc_pman_module_notfound = 335545005L;
const ISC_STATUS isc_pman_entrypoint_notfound = 335545006L;
-const ISC_STATUS isc_pman_bad_conf_index = 335545007L;
-const ISC_STATUS isc_pman_unknown_instance = 335545008L;
+const ISC_STATUS isc_pman_module_bad = 335545007L;
+const ISC_STATUS isc_pman_plugin_notfound = 335545008L;
const ISC_STATUS isc_sysf_invalid_trig_namespace = 335545009L;
const ISC_STATUS isc_unexpected_null = 335545010L;
const ISC_STATUS isc_type_notcompat_blob = 335545011L;
@@ -1996,11 +1996,11 @@
#define isc_eem_engine_notfound 335545001L
#define isc_attachment_in_use 335545002L
#define isc_transaction_in_use 335545003L
-#define isc_pman_plugin_notfound 335545004L
-#define isc_pman_cannot_load_plugin 335545005L
+#define isc_pman_cannot_load_plugin 335545004L
+#define isc_pman_module_notfound 335545005L
#define isc_pman_entrypoint_notfound 335545006L
-#define isc_pman_bad_conf_index 335545007L
-#define isc_pman_unknown_instance 335545008L
+#define isc_pman_module_bad 335545007L
+#define isc_pman_plugin_notfound 335545008L
#define isc_sysf_invalid_trig_namespace 335545009L
#define isc_unexpected_null 335545010L
#define isc_type_notcompat_blob 335545011L
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/include/gen/msgs.h 2014-07-04 08:25:49 UTC (rev 59822)
@@ -708,11 +708,11 @@
{335545001, "External engine @1 not found"}, /* eem_engine_notfound */
{335545002, "Attachment is in use"}, /* attachment_in_use */
{335545003, "Transaction is in use"}, /* transaction_in_use */
- {335545004, "Plugin @1 not found"}, /* pman_plugin_notfound */
- {335545005, "Module @1 exists, but can not be loaded"}, /* pman_cannot_load_plugin */
- {335545006, "Entrypoint of plugin @1 does not exist"}, /* pman_entrypoint_notfound */
- {335545007, "Invalid value @1 for parameter index at PluginImpl::getConfigInfo: out of bounds"}, /* pman_bad_conf_index */
- {335545008, "Plugin @1 does not create @2 instances"}, /* pman_unknown_instance */
+ {335545004, "Error loading plugin @1"}, /* pman_cannot_load_plugin */
+ {335545005, "Loadable module @1 not found"}, /* pman_module_notfound */
+ {335545006, "Standard plugin entrypoint does not exist in module @1"}, /* pman_entrypoint_notfound */
+ {335545007, "Module @1 exists but can not be loaded"}, /* pman_module_bad */
+ {335545008, "Module @1 does not contain plugin @2 type @3"}, /* pman_plugin_notfound */
{335545009, "Invalid usage of context namespace DDL_TRIGGER"}, /* sysf_invalid_trig_namespace */
{335545010, "Value is NULL but isNull parameter was not informed"}, /* unexpected_null */
{335545011, "Type @1 is incompatible with BLOB"}, /* type_notcompat_blob */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/include/gen/sql_code.h 2014-07-04 08:25:49 UTC (rev 59822)
@@ -704,11 +704,11 @@
{335545001, -901}, /* 681 eem_engine_notfound */
{335545002, -532}, /* 682 attachment_in_use */
{335545003, -532}, /* 683 transaction_in_use */
- {335545004, -901}, /* 684 pman_plugin_notfound */
- {335545005, -901}, /* 685 pman_cannot_load_plugin */
+ {335545004, -901}, /* 684 pman_cannot_load_plugin */
+ {335545005, -901}, /* 685 pman_module_notfound */
{335545006, -901}, /* 686 pman_entrypoint_notfound */
- {335545007, -901}, /* 687 pman_bad_conf_index */
- {335545008, -901}, /* 688 pman_unknown_instance */
+ {335545007, -901}, /* 687 pman_module_bad */
+ {335545008, -901}, /* 688 pman_plugin_notfound */
{335545009, -833}, /* 689 sysf_invalid_trig_namespace */
{335545010, -901}, /* 690 unexpected_null */
{335545011, -901}, /* 691 type_notcompat_blob */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/include/gen/sql_state.h 2014-07-04 08:25:49 UTC (rev 59822)
@@ -704,11 +704,11 @@
{335545001, "39000"}, // 681 eem_engine_notfound
{335545002, "08002"}, // 682 attachment_in_use
{335545003, "25S02"}, // 683 transaction_in_use
- {335545004, "39000"}, // 684 pman_plugin_notfound
- {335545005, "39000"}, // 685 pman_cannot_load_plugin
- {335545006, "39000"}, // 686 pman_entrypoint_notfound
- {335545007, "39000"}, // 687 pman_bad_conf_index
- {335545008, "39000"}, // 688 pman_unknown_instance
+ {335545004, "39000"}, // 684 pman_cannot_load_plugin
+ {335545005, "00000"}, // 685 pman_module_notfound
+ {335545006, "00000"}, // 686 pman_entrypoint_notfound
+ {335545007, "00000"}, // 687 pman_module_bad
+ {335545008, "00000"}, // 688 pman_plugin_notfound
{335545009, "42000"}, // 689 sysf_invalid_trig_namespace
{335545010, "22002"}, // 690 unexpected_null
{335545011, "2200G"}, // 691 type_notcompat_blob
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/msgs/messages2.sql 2014-07-04 08:25:49 UTC (rev 59822)
@@ -791,11 +791,11 @@
('eem_engine_notfound', 'getEngine', 'ExtEngineManager.cpp', NULL, 0, 681, NULL, 'External engine @1 not found', NULL, NULL)
('attachment_in_use', 'GDS_DETACH/GDS_DROP_DATABASE', 'jrd.cpp', NULL, 0, 682, NULL, 'Attachment is in use', NULL, NULL)
('transaction_in_use', 'commit/prepare/rollback', 'jrd.cpp', NULL, 0, 683, NULL, 'Transaction is in use', NULL, NULL)
-('pman_plugin_notfound', 'PluginManager::getPlugin', 'PluginManager.cpp', NULL, 0, 684, NULL, 'Plugin @1 not found', NULL, NULL)
-('pman_cannot_load_plugin', 'PluginManager::getPlugin', 'PluginManager.cpp', NULL, 0, 685, NULL, 'Module @1 exists, but can not be loaded', NULL, NULL)
-('pman_entrypoint_notfound', 'PluginManager::getPlugin', 'PluginManager.cpp', NULL, 0, 686, NULL, 'Entrypoint of plugin @1 does not exist', NULL, NULL)
-('pman_bad_conf_index', 'PluginImpl::getConfigInfo', 'PluginManager.cpp', NULL, 0, 687, NULL, 'Invalid value @1 for parameter index at PluginImpl::getConfigInfo: out of bounds', NULL, NULL)
-('pman_unknown_instance', 'PluginImpl::getExternalEngineFactory', 'PluginManager.cpp', NULL, 0, 688, NULL, 'Plugin @1 does not create @2 instances', NULL, NULL)
+('pman_cannot_load_plugin', 'PluginManager::getPlugin', 'PluginManager.cpp', NULL, 0, 684, NULL, 'Error loading plugin @1', NULL, NULL)
+('pman_module_notfound', 'PluginManager::getPlugin', 'PluginManager.cpp', NULL, 0, 685, NULL, 'Loadable module @1 not found', NULL, NULL)
+('pman_entrypoint_notfound', 'PluginManager::getPlugin', 'PluginManager.cpp', NULL, 0, 686, NULL, 'Standard plugin entrypoint does not exist in module @1', NULL, NULL)
+('pman_module_bad', 'PluginImpl::getConfigInfo', 'PluginManager.cpp', NULL, 0, 687, NULL, 'Module @1 exists but can not be loaded', NULL, NULL)
+('pman_plugin_notfound', 'PluginImpl::getExternalEngineFactory', 'PluginManager.cpp', NULL, 0, 688, NULL, 'Module @1 does not contain plugin @2 type @3', NULL, NULL)
('sysf_invalid_trig_namespace', 'evlGetContext', 'SysFunction.cpp', NULL, 0, 689, NULL, 'Invalid usage of context namespace DDL_TRIGGER', NULL, NULL)
('unexpected_null', 'ValueMover::getValue', 'ValueImpl.cpp', NULL, 0, 690, NULL, 'Value is NULL but isNull parameter was not informed', NULL, NULL)
('type_notcompat_blob', 'ValueImpl::getBlobId', 'ValueImpl.cpp', NULL, 0, 691, NULL, 'Type @1 is incompatible with BLOB', NULL, NULL)
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/msgs/system_errors2.sql 2014-07-04 08:25:49 UTC (rev 59822)
@@ -689,11 +689,11 @@
(-901, '39', '000', 0, 681, 'eem_engine_notfound', NULL, NULL)
(-532, '08', '002', 0, 682, 'attachment_in_use', NULL, NULL)
(-532, '25', 'S02', 0, 683, 'transaction_in_use', NULL, NULL)
-(-901, '39', '000', 0, 684, 'pman_plugin_notfound', NULL, NULL)
-(-901, '39', '000', 0, 685, 'pman_cannot_load_plugin', NULL, NULL)
-(-901, '39', '000', 0, 686, 'pman_entrypoint_notfound', NULL, NULL)
-(-901, '39', '000', 0, 687, 'pman_bad_conf_index', NULL, NULL)
-(-901, '39', '000', 0, 688, 'pman_unknown_instance', NULL, NULL)
+(-901, '39', '000', 0, 684, 'pman_cannot_load_plugin', NULL, NULL)
+(-901, '00', '000', 0, 685, 'pman_module_notfound', NULL, NULL)
+(-901, '00', '000', 0, 686, 'pman_entrypoint_notfound', NULL, NULL)
+(-901, '00', '000', 0, 687, 'pman_module_bad', NULL, NULL)
+(-901, '00', '000', 0, 688, 'pman_plugin_notfound', NULL, NULL)
(-833, '42', '000', 0, 689, 'sysf_invalid_trig_namespace', NULL, NULL)
(-901, '22', '002', 0, 690, 'unexpected_null', NULL, NULL)
(-901, '22', '00G', 0, 691, 'type_notcompat_blob', NULL, NULL)
Modified: firebird/trunk/src/yvalve/PluginManager.cpp
===================================================================
--- firebird/trunk/src/yvalve/PluginManager.cpp 2014-07-04 00:50:22 UTC (rev 59821)
+++ firebird/trunk/src/yvalve/PluginManager.cpp 2014-07-04 08:25:49 UTC (rev 59822)
@@ -127,41 +127,6 @@
return RefPtr<ConfigFile>(NULL);
}
- struct PluginLoadInfo
- {
- PathName curModule, regName, plugConfigFile;
- RefPtr<ConfigFile> conf;
-
- PluginLoadInfo(const char* pluginName)
- {
- // define default values for plugin ...
- curModule = fb_utils::getPrefix(Firebird::DirType::FB_DIR_PLUGINS, pluginName);
- regName = pluginName;
-
- // and try to load them from conf file
- conf = findConfig("Plugin", pluginName);
-
- if (conf.hasData())
- {
- const ConfigFile::Parameter* v = conf->findParameter("RegisterName");
- if (v)
- {
- regName = v->value.ToPathName();
- }
-
- v = conf->findParameter("Module");
- if (v)
- {
- curModule = v->value.ToPathName();
- }
- }
-
- plugConfigFile = curModule;
- changeExtension(plugConfigFile, "conf");
- }
- };
-
-
bool flShutdown = false;
class ConfigParameterAccess FB_FINAL : public RefCntIface<IConfigEntry, FB_CONFIG_PARAMETER_VERSION>
@@ -771,6 +736,49 @@
return 1;
}
+ struct PluginLoadInfo
+ {
+ PathName curModule, regName, plugConfigFile;
+ RefPtr<ConfigFile> conf;
+ bool required;
+
+ PluginLoadInfo(const char* pluginName)
+ {
+ // define default values for plugin ...
+ curModule = fb_utils::getPrefix(Firebird::DirType::FB_DIR_PLUGINS, pluginName);
+ regName = pluginName;
+ required = false;
+
+ // and try to load them from conf file
+ conf = findConfig("Plugin", pluginName);
+
+ if (conf.hasData())
+ {
+ const ConfigFile::Parameter* v = conf->findParameter("RegisterName");
+ if (v)
+ {
+ regName = v->value.ToPathName();
+ }
+
+ v = conf->findParameter("Module");
+ if (v)
+ {
+ curModule = v->value.ToPathName();
+ }
+
+ v = conf->findParameter("Required");
+ if (v)
+ {
+ required = v->asBoolean();
+ }
+ }
+
+ plugConfigFile = curModule;
+ changeExtension(plugConfigFile, "conf");
+ }
+ };
+
+
// Provides access to plugins of given type / name.
class PluginSet FB_FINAL : public RefCntIface<IPluginSet, FB_PLUGIN_SET_VERSION>
{
@@ -841,11 +849,11 @@
RefPtr<IFirebirdConf> firebirdConf;
MasterInterfacePtr masterInterface;
- RefPtr<PluginModule> loadModule(const PathName& modName);
+ RefPtr<PluginModule> loadModule(const PluginLoadInfo& info);
void loadError(const Arg::StatusVector& error)
{
- error.raise();
+ (Arg::Gds(isc_pman_cannot_load_plugin) << currentName << error).raise();
}
};
@@ -882,7 +890,7 @@
RefPtr<PluginModule> m(modules->findModule(info.curModule));
if (!m.hasData() && !flShutdown)
{
- m = loadModule(info.curModule);
+ m = loadModule(info);
}
if (!m.hasData())
{
@@ -892,9 +900,8 @@
int r = m->findPlugin(interfaceType, info.regName);
if (r < 0)
{
- gds__log("Misconfigured: module %s does not contain plugin %s type %d",
- info.curModule.c_str(), info.regName.c_str(), interfaceType);
- continue;
+ loadError(Arg::Gds(isc_pman_plugin_notfound) <<
+ info.curModule << info.regName << Arg::Num(interfaceType));
}
currentPlugin = new ConfiguredPlugin(m, r, info.conf, info.plugConfigFile, currentName);
@@ -909,9 +916,9 @@
}
}
- RefPtr<PluginModule> PluginSet::loadModule(const PathName& asIsModuleName)
+ RefPtr<PluginModule> PluginSet::loadModule(const PluginLoadInfo& info)
{
- PathName fixedModuleName(asIsModuleName);
+ PathName fixedModuleName(info.curModule);
ModuleLoader::Module* module = ModuleLoader::loadModule(fixedModuleName);
@@ -925,13 +932,17 @@
{
if (ModuleLoader::isLoadableModule(fixedModuleName))
{
- loadError(Arg::Gds(isc_pman_cannot_load_plugin) << fixedModuleName);
+ loadError(Arg::Gds(isc_pman_module_bad) << fixedModuleName);
}
+ if (info.required)
+ {
+ loadError(Arg::Gds(isc_pman_module_notfound) << fixedModuleName);
+ }
return RefPtr<PluginModule>(NULL);
}
- RefPtr<PluginModule> rc(new PluginModule(module, asIsModuleName));
+ RefPtr<PluginModule> rc(new PluginModule(module, info.curModule));
PluginEntrypoint* startModule;
if (module->findSymbol(STRINGIZE(FB_PLUGIN_ENTRY_POINT), startModule))
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-05 00:35:56
|
Revision: 59825
http://sourceforge.net/p/firebird/code/59825
Author: firebirds
Date: 2014-07-05 00:35:48 +0000 (Sat, 05 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-04 15:05:28 UTC (rev 59824)
+++ firebird/trunk/ChangeLog 2014-07-05 00:35:48 UTC (rev 59825)
@@ -1,3 +1,22 @@
+ 2014-07-04 14:43 fsg
+ M src/isql/extract.epp
+ M src/isql/isql.h
+rename constants used by extract.epp to avoid future naming conflicts
+
+ 2014-07-04 08:25 alexpeshkoff
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/common/config/config.cpp
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+ M src/yvalve/PluginManager.cpp
+Fixed CORE-4478: Failure to load provider/plugin not reported
+
2014-07-03 09:43 alexpeshkoff
M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
Fixed management for users with ' (single quote) in a name
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-04 15:05:28 UTC (rev 59824)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-05 00:35:48 UTC (rev 59825)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31211
+ FORMAL BUILD NUMBER:31213
*/
-#define PRODUCT_VER_STRING "3.0.0.31211"
-#define FILE_VER_STRING "WI-T3.0.0.31211"
-#define LICENSE_VER_STRING "WI-T3.0.0.31211"
-#define FILE_VER_NUMBER 3, 0, 0, 31211
+#define PRODUCT_VER_STRING "3.0.0.31213"
+#define FILE_VER_STRING "WI-T3.0.0.31213"
+#define LICENSE_VER_STRING "WI-T3.0.0.31213"
+#define FILE_VER_NUMBER 3, 0, 0, 31213
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31211"
+#define FB_BUILD_NO "31213"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-04 15:05:28 UTC (rev 59824)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-05 00:35:48 UTC (rev 59825)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31211
+BuildNum=31213
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-06 00:35:57
|
Revision: 59827
http://sourceforge.net/p/firebird/code/59827
Author: firebirds
Date: 2014-07-06 00:35:48 +0000 (Sun, 06 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-05 18:36:54 UTC (rev 59826)
+++ firebird/trunk/ChangeLog 2014-07-06 00:35:48 UTC (rev 59827)
@@ -1,3 +1,14 @@
+ 2014-07-05 18:36 asfernandes
+ M src/jrd/DatabaseSnapshot.cpp
+ M src/jrd/UserManagement.cpp
+ M src/jrd/jrd.cpp
+ M src/jrd/obj.h
+ M src/utilities/gsec/gsec.cpp
+ M src/yvalve/MasterImplementation.cpp
+ M src/yvalve/PluginManager.cpp
+ M src/yvalve/why.cpp
+Misc.
+
2014-07-04 14:43 fsg
M src/isql/extract.epp
M src/isql/isql.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-05 18:36:54 UTC (rev 59826)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-06 00:35:48 UTC (rev 59827)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31213
+ FORMAL BUILD NUMBER:31214
*/
-#define PRODUCT_VER_STRING "3.0.0.31213"
-#define FILE_VER_STRING "WI-T3.0.0.31213"
-#define LICENSE_VER_STRING "WI-T3.0.0.31213"
-#define FILE_VER_NUMBER 3, 0, 0, 31213
+#define PRODUCT_VER_STRING "3.0.0.31214"
+#define FILE_VER_STRING "WI-T3.0.0.31214"
+#define LICENSE_VER_STRING "WI-T3.0.0.31214"
+#define FILE_VER_NUMBER 3, 0, 0, 31214
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31213"
+#define FB_BUILD_NO "31214"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-05 18:36:54 UTC (rev 59826)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-06 00:35:48 UTC (rev 59827)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31213
+BuildNum=31214
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-07 00:47:33
|
Revision: 59835
http://sourceforge.net/p/firebird/code/59835
Author: firebirds
Date: 2014-07-07 00:47:21 +0000 (Mon, 07 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-06 21:15:47 UTC (rev 59834)
+++ firebird/trunk/ChangeLog 2014-07-07 00:47:21 UTC (rev 59835)
@@ -1,3 +1,12 @@
+ 2014-07-06 21:15 hvlad
+ M src/auth/trusted/AuthSspi.cpp
+Fixed Windows build
+
+ 2014-07-06 18:47 asfernandes
+ M src/isql/extract.epp
+ M src/isql/isql.h
+Get rid of warnings and two set of constants chasing the same "number space".
+
2014-07-05 18:36 asfernandes
M src/jrd/DatabaseSnapshot.cpp
M src/jrd/UserManagement.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-06 21:15:47 UTC (rev 59834)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-07 00:47:21 UTC (rev 59835)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31214
+ FORMAL BUILD NUMBER:31216
*/
-#define PRODUCT_VER_STRING "3.0.0.31214"
-#define FILE_VER_STRING "WI-T3.0.0.31214"
-#define LICENSE_VER_STRING "WI-T3.0.0.31214"
-#define FILE_VER_NUMBER 3, 0, 0, 31214
+#define PRODUCT_VER_STRING "3.0.0.31216"
+#define FILE_VER_STRING "WI-T3.0.0.31216"
+#define LICENSE_VER_STRING "WI-T3.0.0.31216"
+#define FILE_VER_NUMBER 3, 0, 0, 31216
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31214"
+#define FB_BUILD_NO "31216"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-06 21:15:47 UTC (rev 59834)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-07 00:47:21 UTC (rev 59835)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31214
+BuildNum=31216
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2014-07-08 07:35:38
|
Revision: 59840
http://sourceforge.net/p/firebird/code/59840
Author: roman-simakov
Date: 2014-07-08 07:35:27 +0000 (Tue, 08 Jul 2014)
Log Message:
-----------
Fixed CORE-735: User rights for metadata changes.
We check DDL in DDL nodes and skip at vio level. vio level still exists for direct metadata editing.
Modified Paths:
--------------
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/DdlNodes.h
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/dsql/PackageNodes.epp
firebird/trunk/src/dsql/PackageNodes.h
firebird/trunk/src/dsql/parse.y
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/ids.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/jrd/Database.h
firebird/trunk/src/jrd/acl.h
firebird/trunk/src/jrd/constants.h
firebird/trunk/src/jrd/drq.h
firebird/trunk/src/jrd/filters.cpp
firebird/trunk/src/jrd/grant.epp
firebird/trunk/src/jrd/ini.epp
firebird/trunk/src/jrd/intl.h
firebird/trunk/src/jrd/jrd.h
firebird/trunk/src/jrd/met.epp
firebird/trunk/src/jrd/obj.h
firebird/trunk/src/jrd/relations.h
firebird/trunk/src/jrd/scl.epp
firebird/trunk/src/jrd/scl.h
firebird/trunk/src/jrd/scl_proto.h
firebird/trunk/src/jrd/vio.cpp
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
Added Paths:
-----------
firebird/trunk/doc/sql.extensions/README.ddl_access.txt
Added: firebird/trunk/doc/sql.extensions/README.ddl_access.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.ddl_access.txt (rev 0)
+++ firebird/trunk/doc/sql.extensions/README.ddl_access.txt 2014-07-08 07:35:27 UTC (rev 59840)
@@ -0,0 +1,35 @@
+SQL Language Extension: GRANT/REVOKE permissions on DDL operations
+
+ Implements capability to manage permissions on DDL operations.
+
+Author:
+ Red Soft Corporation, roman.simakov(at)red-soft.biz
+
+Syntax is:
+
+GRANT CREATE <OBJECT> TO USER|ROLE [with grant option];
+GRANT ALTER ANY <OBJECT> TO USER|ROLE [with grant option];
+GRANT DROP ANY <OBJECT> TO USER|ROLE [with grant option];
+
+REVOKE [grant option for] CREATE <OBJECT> FROM USER|ROLE;
+REVOKE [grant option for] ALTER ANY <OBJECT> FROM USER|ROLE;
+REVOKE [grant option for] DROP ANY <OBJECT> FROM USER|ROLE;
+
+Where <OBJECT> could be:
+TABLE, VIEW, PROCEDURE, FUNCTION, PACKAGE, GENERATOR, SEQUENCE, DOMAIN,
+EXCEPTION, ROLE, SHADOW, DATABASE, CHARACTER SET, COLLATION, FILTER
+
+Description:
+
+Makes it possible to grant and revoke privileges on DDL operations.
+
+DDL operations for managing triggers and indices re-use table privileges.
+
+If ANY keyword is used a user will be able to perform operation on any object. Otherwise only on object which he owns.
+If ANY keyword was used due GRANT operation it also must be used in according REVOKE operation.
+
+Sample:
+
+GRANT CREATE TABLE TO Joe;
+GRANT ALTER ANY TABLE TO Joe;
+REVOKE CREATE TABLE FROM Joe;
Property changes on: firebird/trunk/doc/sql.extensions/README.ddl_access.txt
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2014-07-08 00:52:54 UTC (rev 59839)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2014-07-08 07:35:27 UTC (rev 59840)
@@ -1598,6 +1598,10 @@
PARAMETER (GDS__cursor_not_positioned = 335545092)
INTEGER*4 GDS__dup_attribute
PARAMETER (GDS__dup_attribute = 335545093)
+ INTEGER*4 GDS__dyn_no_priv
+ PARAMETER (GDS__dyn_no_priv = 335545094)
+ INTEGER*4 GDS__dsql_cant_grant_option
+ PARAMETER (GDS__dsql_cant_grant_option = 335545095)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2014-07-08 00:52:54 UTC (rev 59839)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2014-07-08 07:35:27 UTC (rev 59840)
@@ -806,6 +806,8 @@
gds_set_invalid_role = 335545091;
gds_cursor_not_positioned = 335545092;
gds_dup_attribute = 335545093;
+ gds_dyn_no_priv = 335545094;
+ gds_dsql_cant_grant_option = 335545095;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2014-07-08 00:52:54 UTC (rev 59839)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2014-07-08 07:35:27 UTC (rev 59840)
@@ -747,7 +747,16 @@
//----------------------
+SecureDdlNodeExecute::SecureDdlNodeExecute(thread_db* tdbb, DdlNode* ddlNode,
+ DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction): _tdbb(tdbb)
+{
+ if (ddlNode->checkPermission(tdbb, transaction))
+ tdbb->tdbb_flags |= TDBB_trusted_ddl;
+ ddlNode->execute(tdbb, dsqlScratch, transaction);
+}
+
+
// Delete a security class.
bool DdlNode::deleteSecurityClass(thread_db* tdbb, jrd_tra* transaction,
const MetaName& secClass)
@@ -962,6 +971,12 @@
charSet.c_str(), defaultCollation.c_str());
}
+bool AlterCharSetNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_charset(tdbb, charSet, SCL_alter);
+ return true;
+}
+
void AlterCharSetNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -1030,6 +1045,13 @@
objType, objName.c_str(), this->text.c_str());
}
+bool CommentOnNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ //DDL_TODO
+ // Probably requires migration code from execute with caching some query results for reuse in execute later.
+ return false;
+}
+
// select rdb$relation_name from rdb$relation_fields where rdb$field_name = 'RDB$DESCRIPTION';
// gives the list of objects that accept descriptions. At FB2 time, the only
// subobjects with descriptions are relation's fields and procedure's parameters.
@@ -1357,6 +1379,17 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool CreateAlterFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ if (alter)
+ SCL_check_function(tdbb, &dscName, SCL_alter);
+ else
+ SCL_check_create_access(tdbb, SCL_object_function);
+ return true;
+}
+
void CreateAlterFunctionNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -1975,6 +2008,14 @@
name.c_str(), clauses.name.c_str(), clauses.udfModule.c_str());
}
+bool AlterExternalFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ SCL_check_function(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
// Allow changing the entry point and/or the module name of a UDF.
void AlterExternalFunctionNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
@@ -2092,6 +2133,14 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool DropFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ SCL_check_function(tdbb, &dscName, SCL_drop);
+ return true;
+}
+
void DropFunctionNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -2277,6 +2326,17 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool CreateAlterProcedureNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ if (alter)
+ SCL_check_procedure(tdbb, &dscName, SCL_alter);
+ else
+ SCL_check_create_access(tdbb, SCL_object_procedure);
+ return true;
+}
+
void CreateAlterProcedureNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -2820,6 +2880,14 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool DropProcedureNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ SCL_check_procedure(tdbb, &dscName, SCL_drop);
+ return true;
+}
+
void DropProcedureNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -3075,6 +3143,14 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool CreateAlterTriggerNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
void CreateAlterTriggerNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -3082,9 +3158,6 @@
Attachment* const attachment = transaction->getAttachment();
- if (relationName.isEmpty() && !attachment->locksmith())
- status_exception::raise(Arg::Gds(isc_adm_task_denied));
-
source.ltrim("\n\r\t ");
// run all statements under savepoint control
@@ -3248,6 +3321,32 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool DropTriggerNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ MetaName relationName;
+
+ AutoCacheRequest request(tdbb, drq_l_trigger_relname, DYN_REQUESTS);
+
+ FOR (REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ X IN RDB$TRIGGERS
+ WITH X.RDB$TRIGGER_NAME EQ name.c_str()
+ {
+ relationName = X.RDB$RELATION_NAME;
+ }
+ END_FOR
+
+ if (relationName.isEmpty())
+ {
+ // msg 48: "Index not found"
+ status_exception::raise(Arg::PrivateDyn(48));
+ }
+
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
void DropTriggerNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -3371,6 +3470,12 @@
attributesOn, attributesOff);
}
+bool CreateCollationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_create_access(tdbb, SCL_object_collation);
+ return true;
+}
+
void CreateCollationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -3583,6 +3688,12 @@
name.c_str());
}
+bool DropCollationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_collation(tdbb, name, SCL_drop);
+ return true;
+}
+
void DropCollationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -3732,6 +3843,12 @@
" " + nameTypeStr + "\n";
}
+bool CreateDomainNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_create_access(tdbb, SCL_object_domain);
+ return true;
+}
+
void CreateDomainNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -4250,6 +4367,12 @@
" %s\n", name.c_str());
}
+bool AlterDomainNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_domain(tdbb, name, SCL_alter);
+ return true;
+}
+
void AlterDomainNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -4266,6 +4389,7 @@
WITH FLD.RDB$FIELD_NAME EQ name.c_str()
{
found = true;
+
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_ALTER_DOMAIN, name);
@@ -4565,6 +4689,12 @@
name.c_str());
}
+bool DropDomainNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_domain(tdbb, name, SCL_drop);
+ return true;
+}
+
void DropDomainNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -4685,6 +4815,15 @@
name.c_str(), create, alter, message.c_str());
}
+bool CreateAlterExceptionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ if (alter)
+ SCL_check_exception(tdbb, name, SCL_alter);
+ else
+ SCL_check_create_access(tdbb, SCL_object_exception);
+ return true;
+}
+
void CreateAlterExceptionNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -4720,7 +4859,6 @@
{
Attachment* const attachment = transaction->getAttachment();
const string& userName = attachment->att_user->usr_user_name;
-
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_CREATE_EXCEPTION, name);
@@ -4811,6 +4949,12 @@
name.c_str());
}
+bool DropExceptionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_exception(tdbb, name, SCL_drop);
+ return true;
+}
+
void DropExceptionNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -4869,6 +5013,15 @@
name.c_str());
}
+bool CreateAlterSequenceNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ if (alter)
+ SCL_check_generator(tdbb, name, SCL_alter);
+ else
+ SCL_check_create_access(tdbb, SCL_object_generator);
+ return true;
+}
+
void CreateAlterSequenceNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -5116,6 +5269,12 @@
name.c_str());
}
+bool DropSequenceNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_generator(tdbb, name, SCL_drop);
+ return true;
+}
+
void DropSequenceNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -6552,6 +6711,12 @@
name.c_str());
}
+bool CreateRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_create_access(tdbb, SCL_object_table);
+ return true;
+}
+
void CreateRelationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -6676,11 +6841,30 @@
name.c_str());
}
+bool AlterRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
void AlterRelationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
saveRelation(tdbb, dsqlScratch, name, false, false);
+ dsql_rel* relation;
+ relation = METD_get_relation(dsqlScratch->getTransaction(), dsqlScratch, name);
+
+ if (!relation || (relation && (relation->rel_flags & REL_view)))
+ {
+ status_exception::raise(
+ Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
+ Arg::Gds(isc_dsql_command_err) <<
+ Arg::Gds(isc_dsql_table_not_found) << name);
+ }
+
if (!dsqlScratch->relation)
{
//// TODO: <Missing arg #1 - possibly status vector overflow>
@@ -7353,6 +7537,17 @@
name.c_str());
}
+bool DropRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ if (view)
+ SCL_check_view(tdbb, &dscName, SCL_drop);
+ else
+ SCL_check_relation(tdbb, &dscName, SCL_drop);
+ return true;
+}
+
void DropRelationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -7587,6 +7782,17 @@
return DdlNode::dsqlPass(dsqlScratch);
}
+bool CreateAlterViewNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ if (alter)
+ SCL_check_view(tdbb, &dscName, SCL_alter);
+ else
+ SCL_check_create_access(tdbb, SCL_object_view);
+ return true;
+}
+
void CreateAlterViewNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
@@ -7642,7 +7848,6 @@
REL.RDB$VIEW_BLR NOT MISSING
{
found = true;
-
MODIFY REL
attachment->storeMetaDataBlob(tdbb, transaction, &REL.RDB$VIEW_SOURCE, source);
attachment->storeBinaryBlob(tdbb, transaction, &REL.RDB$VIEW_BLR,
@@ -8709,6 +8914,15 @@
name.c_str());
}
+bool CreateIndexNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ const MetaName &relationName = relation->dsqlName;
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
// Define an index.
void CreateIndexNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
@@ -8768,6 +8982,32 @@
name.c_str(), active);
}
+bool AlterIndexNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ MetaName relationName;
+
+ AutoCacheRequest request(tdbb, drq_l_index_relname, DYN_REQUESTS);
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ IDX IN RDB$INDICES
+ WITH IDX.RDB$INDEX_NAME EQ name.c_str()
+ {
+ relationName = IDX.RDB$RELATION_NAME;
+ }
+ END_FOR
+
+ if (relationName.isEmpty())
+ {
+ // msg 48: "Index not found"
+ status_exception::raise(Arg::PrivateDyn(48));
+ }
+
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
void AlterIndexNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -8814,6 +9054,32 @@
name.c_str());
}
+bool SetStatisticsNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ MetaName relationName;
+
+ AutoCacheRequest request(tdbb, drq_l_index_relname, DYN_REQUESTS);
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ IDX IN RDB$INDICES
+ WITH IDX.RDB$INDEX_NAME EQ name.c_str()
+ {
+ relationName = IDX.RDB$RELATION_NAME;
+ }
+ END_FOR
+
+ if (relationName.isEmpty())
+ {
+ // msg 48: "Index not found"
+ status_exception::raise(Arg::PrivateDyn(48));
+ }
+
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
void SetStatisticsNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -8879,6 +9145,32 @@
name.c_str());
}
+bool DropIndexNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ dsc dscName;
+ MetaName relationName;
+
+ AutoCacheRequest request(tdbb, drq_l_index_relname, DYN_REQUESTS);
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ IDX IN RDB$INDICES
+ WITH IDX.RDB$INDEX_NAME EQ name.c_str()
+ {
+ relationName = IDX.RDB$RELATION_NAME;
+ }
+ END_FOR
+
+ if (relationName.isEmpty())
+ {
+ // msg 48: "Index not found"
+ status_exception::raise(Arg::PrivateDyn(48));
+ }
+
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ return true;
+}
+
void DropIndexNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -8929,6 +9221,12 @@
name.c_str());
}
+bool CreateFilterNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_create_access(tdbb, SCL_object_filter);
+ return true;
+}
+
// Define a blob filter.
void CreateFilterNode::execute(thread_db* tdbb, DsqlCompilerScratch* /*dsqlScratch*/, jrd_tra* transaction)
{
@@ -8994,6 +9292,12 @@
name.c_str());
}
+bool DropFilterNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_filter(tdbb, name, SCL_drop);
+ return true;
+}
+
void DropFilterNode::execute(thread_db* tdbb, DsqlCompilerScratch* /*dsqlScratch*/, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -9032,11 +9336,14 @@
number);
}
+bool CreateShadowNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_database(tdbb, SCL_alter);
+ return true;
+}
+
void CreateShadowNode::execute(thread_db* tdbb, DsqlCompilerScratch* /*dsqlScratch*/, jrd_tra* transaction)
{
- if (!tdbb->getAttachment()->locksmith())
- status_exception::raise(Arg::Gds(isc_adm_task_denied));
-
// Should be caught by the parser.
if (number == 0)
{
@@ -9097,11 +9404,14 @@
number);
}
+bool DropShadowNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_database(tdbb, SCL_alter);
+ return true;
+}
+
void DropShadowNode::execute(thread_db* tdbb, DsqlCompilerScratch* /*dsqlScratch*/, jrd_tra* transaction)
{
- if (!tdbb->getAttachment()->locksmith())
- status_exception::raise(Arg::Gds(isc_adm_task_denied));
-
// run all statements under savepoint control
AutoSavePoint savePoint(tdbb, transaction);
@@ -9132,6 +9442,12 @@
name.c_str());
}
+bool CreateRoleNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_create_access(tdbb, SCL_object_role);
+ return true;
+}
+
void CreateRoleNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
MetaName ownerName(tdbb->getAttachment()->att_user->usr_user_name);
@@ -9269,6 +9585,12 @@
ddl += '"';
}
+bool MappingNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ //DDL_TODO
+ return false;
+}
+
// It's purpose is to add/drop mapping from any security name to DB security object.
void MappingNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
@@ -9660,6 +9982,12 @@
name.c_str());
}
+bool DropRoleNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_role(tdbb, name, SCL_drop);
+ return true;
+}
+
void DropRoleNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
MetaName user(tdbb->getAttachment()->att_user->usr_user_name);
@@ -9678,7 +10006,7 @@
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_DROP_ROLE, name);
- const MetaName roleOwner(ROL.RDB$OWNER_NAME);
+
if (ROL.RDB$SYSTEM_FLAG != 0)
{
@@ -9686,29 +10014,22 @@
status_exception::raise(Arg::PrivateDyn(284) << name);
}
- if (tdbb->getAttachment()->locksmith() || roleOwner == user)
- {
- AutoCacheRequest request2(tdbb, drq_del_role_1, DYN_REQUESTS);
+
+ AutoCacheRequest request2(tdbb, drq_del_role_1, DYN_REQUESTS);
- // The first OR clause finds all members of the role.
- // The 2nd OR clause finds all privileges granted to the role
- FOR(REQUEST_HANDLE request2 TRANSACTION_HANDLE transaction)
- PRIV IN RDB$USER_PRIVILEGES
- WITH (PRIV.RDB$RELATION_NAME EQ name.c_str() AND PRIV.RDB$OBJECT_TYPE = obj_sql_role) OR
- (PRIV.RDB$USER EQ name.c_str() AND PRIV.RDB$USER_TYPE = obj_sql_role)
- {
- ERASE PRIV;
- }
- END_FOR
-
- ERASE ROL;
- }
- else
+ // The first OR clause finds all members of the role.
+ // The 2nd OR clause finds all privileges granted to the role
+ FOR(REQUEST_HANDLE request2 TRANSACTION_HANDLE transaction)
+ PRIV IN RDB$USER_PRIVILEGES
+ WITH (PRIV.RDB$RELATION_NAME EQ name.c_str() AND PRIV.RDB$OBJECT_TYPE = obj_sql_role) OR
+ (PRIV.RDB$USER EQ name.c_str() AND PRIV.RDB$USER_TYPE = obj_sql_role)
{
- // msg 191: "only owner of SQL role or USR_locksmith could drop SQL role"
- status_exception::raise(Arg::PrivateDyn(191));
+ ERASE PRIV;
}
+ END_FOR
+ ERASE ROL;
+
found = true;
}
END_FOR
@@ -9759,6 +10080,13 @@
}
+bool CreateAlterUserNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ //DDL_TODO
+ return false;
+}
+
+
void CreateAlterUserNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
if (mode != USER_ADD && !password && !firstName && !middleName && !lastName &&
@@ -9872,6 +10200,12 @@
name.c_str());
}
+bool DropUserNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ //DDL_TODO
+ return false;
+}
+
void DropUserNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -9912,6 +10246,12 @@
isGrant);
}
+bool GrantRevokeNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ // GRANT OPTION will be checked in grantRevoke method
+ return false;
+}
+
void GrantRevokeNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -10033,6 +10373,26 @@
break;
}
+ if (options == 1) { // with grant option
+ switch (userType) {
+ case obj_procedure: {
+ ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("procedures"));
+ break;
+ }
+ case obj_trigger: {
+ ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("triggers"));
+ break;
+ }
+ case obj_view: {
+ ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("views"));
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+
MetaName grantorRevoker(grantor ?
*grantor : tdbb->getAttachment()->att_user->usr_user_name);
@@ -10171,6 +10531,10 @@
tdbb->getAttachment()->att_user->usr_user_name.c_str(), priv, objName,
field, true);
}
+ else if (objType >= obj_database) {
+ checkGrantorCanGrantDdl(tdbb, transaction,
+ tdbb->getAttachment()->att_user->usr_user_name.c_str(), priv, objName);
+ }
}
storePrivilege(tdbb, transaction, objName, user, field, pr, userType, objType,
@@ -10506,6 +10870,35 @@
}
}
+// Check if the grantor has grant option on DDL privilege
+void GrantRevokeNode::checkGrantorCanGrantDdl(thread_db* tdbb, jrd_tra* transaction,
+ const Firebird::MetaName& grantor, const char* privilege, const Firebird::MetaName& objName)
+{
+ if (tdbb->getAttachment()->locksmith())
+ return;
+
+ AutoCacheRequest request(tdbb, drq_l_grant_option, DYN_REQUESTS);
+ bool grantable = false;
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ PRV IN RDB$USER_PRIVILEGES WITH
+ PRV.RDB$USER = UPPERCASE(grantor.c_str()) AND
+ PRV.RDB$USER_TYPE = obj_user AND
+ PRV.RDB$RELATION_NAME EQ objName.c_str() AND
+ PRV.RDB$OBJECT_TYPE >= obj_database AND
+ PRV.RDB$PRIVILEGE EQ privilege
+ {
+ grantable = PRV.RDB$GRANT_OPTION == 1;
+ }
+ END_FOR
+
+ if (!grantable)
+ {
+ // no .. privilege with grant option on DDL ..
+ status_exception::raise(Arg::PrivateDyn(174) << privilege << objName.c_str());
+ }
+}
+
void GrantRevokeNode::storePrivilege(thread_db* tdbb, jrd_tra* transaction, const MetaName& object,
const MetaName& user, const MetaName& field, const TEXT* privilege, SSHORT userType,
SSHORT objType, int option, const MetaName& grantor)
@@ -10582,6 +10975,12 @@
"AlterDatabaseNode\n");
}
+bool AlterDatabaseNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
+{
+ SCL_check_database(tdbb, SCL_alter);
+ return true;
+}
+
void AlterDatabaseNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
jrd_tra* transaction)
{
Modified: firebird/trunk/src/dsql/DdlNodes.h
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.h 2014-07-08 00:52:54 UTC (rev 59839)
+++ firebird/trunk/src/dsql/DdlNodes.h 2014-07-08 07:35:27 UTC (rev 59840)
@@ -153,6 +153,11 @@
text.printf("RecreateNode\n");
}
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction)
+ {
+ return dropNode.checkPermission(tdbb, transaction) && createNode->checkPermission(tdbb, transaction);
+ }
+
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
{
// run all statements under savepoint control
@@ -196,6 +201,7 @@
public:
virtual void print(Firebird::string& text) const;
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction);
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
protected:
@@ -226,6 +232,7 @@
public:
virtual void print(Firebird::string& text) const;
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction);
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
protected:
@@ -275,6 +282,7 @@
public:
virtual void print(Firebird::string& text) const;
virtual DdlNode* dsqlPass(DsqlCompilerScratch* dsqlScratch);
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction);
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
protected:
@@ -334,6 +342,7 @@
public:
virtual void print(Firebird::string& text) const;
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction);
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
protected:
@@ -366,6 +375,7 @@
public:
virtual void print(Firebird::string& text) const;
virtual DdlNode* dsqlPass(DsqlCompilerScratch* dsqlScratch);
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction);
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
protected:
@@ -410,6 +420,7 @@
public:
virtual void print(Firebird::string& text) const;
virtual DdlNode* dsqlPass(DsqlCompilerScratch* dsqlScratch);
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* transaction);
virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
protected:
@@ -467,6 +478,7 @@
public:
virtual void print(Firebird::string& text) const;
virtual DdlNode* dsqlPass(DsqlCompilerScratch* dsqlScratch);
+ virtual bool checkPermission(thread_db* tdbb, jrd_tra* t...
[truncated message content] |
|
From: <fir...@us...> - 2014-07-09 00:37:19
|
Revision: 59841
http://sourceforge.net/p/firebird/code/59841
Author: firebirds
Date: 2014-07-09 00:37:11 +0000 (Wed, 09 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-08 07:35:27 UTC (rev 59840)
+++ firebird/trunk/ChangeLog 2014-07-09 00:37:11 UTC (rev 59841)
@@ -1,3 +1,41 @@
+ 2014-07-08 07:35 roman-simakov
+ A doc/sql.extensions/README.ddl_access.txt
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/Nodes.h
+ M src/dsql/PackageNodes.epp
+ M src/dsql/PackageNodes.h
+ M src/dsql/parse.y
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/ids.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/jrd/Database.h
+ M src/jrd/acl.h
+ M src/jrd/constants.h
+ M src/jrd/drq.h
+ M src/jrd/filters.cpp
+ M src/jrd/grant.epp
+ M src/jrd/ini.epp
+ M src/jrd/intl.h
+ M src/jrd/jrd.h
+ M src/jrd/met.epp
+ M src/jrd/obj.h
+ M src/jrd/relations.h
+ M src/jrd/scl.epp
+ M src/jrd/scl.h
+ M src/jrd/scl_proto.h
+ M src/jrd/vio.cpp
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+Fixed CORE-735: User rights for metadata changes.
+We check DDL in DDL nodes and skip at vio level. vio level still exists for direct metadata editing.
+
2014-07-06 21:15 hvlad
M src/auth/trusted/AuthSspi.cpp
Fixed Windows build
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-08 07:35:27 UTC (rev 59840)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-09 00:37:11 UTC (rev 59841)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31216
+ FORMAL BUILD NUMBER:31217
*/
-#define PRODUCT_VER_STRING "3.0.0.31216"
-#define FILE_VER_STRING "WI-T3.0.0.31216"
-#define LICENSE_VER_STRING "WI-T3.0.0.31216"
-#define FILE_VER_NUMBER 3, 0, 0, 31216
+#define PRODUCT_VER_STRING "3.0.0.31217"
+#define FILE_VER_STRING "WI-T3.0.0.31217"
+#define LICENSE_VER_STRING "WI-T3.0.0.31217"
+#define FILE_VER_NUMBER 3, 0, 0, 31217
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31216"
+#define FB_BUILD_NO "31217"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-08 07:35:27 UTC (rev 59840)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-09 00:37:11 UTC (rev 59841)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31216
+BuildNum=31217
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <asf...@us...> - 2014-07-10 02:21:22
|
Revision: 59842
http://sourceforge.net/p/firebird/code/59842
Author: asfernandes
Date: 2014-07-10 02:21:18 +0000 (Thu, 10 Jul 2014)
Log Message:
-----------
Misc.
Modified Paths:
--------------
firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
firebird/trunk/examples/dbcrypt/DbCrypt.cpp
firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
firebird/trunk/src/common/Auth.cpp
firebird/trunk/src/common/classes/ImplementHelper.h
firebird/trunk/src/common/security.h
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/DdlNodes.h
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/dsql/PackageNodes.epp
firebird/trunk/src/dsql/parse.y
firebird/trunk/src/jrd/grant.epp
firebird/trunk/src/jrd/ini.epp
firebird/trunk/src/jrd/jrd.h
firebird/trunk/src/jrd/obj.h
firebird/trunk/src/jrd/scl.epp
Modified: firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -267,7 +267,7 @@
p->addRef();
return p;
}
- catch(const Exception& ex)
+ catch (const Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/examples/dbcrypt/DbCrypt.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -255,7 +255,7 @@
p->addRef();
return p;
}
- catch(const Exception& ex)
+ catch (const Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -560,74 +560,74 @@
Firebird::LocalStatus s2;
Firebird::IStatus* s = st;
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS
- try
- {
+ try
{
- Firebird::string attr, a1, a2, a3;
+ {
+ Firebird::string attr, a1, a2, a3;
- if (!U.PLG$UID.NULL)
- a1.printf("Uid=%d\n", U.PLG$UID);
+ if (!U.PLG$UID.NULL)
+ a1.printf("Uid=%d\n", U.PLG$UID);
- if (!U.PLG$GID.NULL)
- a2.printf("Gid=%d\n", U.PLG$GID);
+ if (!U.PLG$GID.NULL)
+ a2.printf("Gid=%d\n", U.PLG$GID);
- if (!U.PLG$GROUP_NAME.NULL)
- a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
+ if (!U.PLG$GROUP_NAME.NULL)
+ a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
- attr = a1 + a2 + a3;
- user->attributes()->set(s, attr.c_str());
+ attr = a1 + a2 + a3;
+ user->attributes()->set(s, attr.c_str());
+ check(s);
+ user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ check(s);
+ }
+
+ user->userName()->set(s, U.PLG$USER_NAME);
check(s);
- user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
check(s);
- }
+ user->password()->set(s, "");
+ check(s);
+ user->password()->setEntered(s, 0);
+ check(s);
+ user->firstName()->set(s, U.PLG$FIRST_NAME);
+ check(s);
+ user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
+ check(s);
+ user->middleName()->set(s, U.PLG$MIDDLE_NAME);
+ check(s);
+ user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
+ check(s);
+ user->lastName()->set(s, U.PLG$LAST_NAME);
+ check(s);
+ user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
+ check(s);
- user->userName()->set(s, U.PLG$USER_NAME);
- check(s);
- user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
- check(s);
- user->password()->set(s, "");
- check(s);
- user->password()->setEntered(s, 0);
- check(s);
- user->firstName()->set(s, U.PLG$FIRST_NAME);
- check(s);
- user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
- check(s);
- user->middleName()->set(s, U.PLG$MIDDLE_NAME);
- check(s);
- user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
- check(s);
- user->lastName()->set(s, U.PLG$LAST_NAME);
- check(s);
- user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
- check(s);
+ user->admin()->set(s, 0);
+ check(s);
+ user->admin()->setEntered(s, 1);
+ check(s);
- user->admin()->set(s, 0);
- check(s);
- user->admin()->setEntered(s, 1);
- check(s);
+ FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
+ P IN RDB$USER_PRIVILEGES
+ WITH P.RDB$USER EQ U.PLG$USER_NAME AND
+ P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
+ P.RDB$PRIVILEGE EQ 'M'
+ {
+ user->admin()->set(s, 1);
+ }
+ END_FOR
+ check(s);
- FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
- P IN RDB$USER_PRIVILEGES
- WITH P.RDB$USER EQ U.PLG$USER_NAME AND
- P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
- P.RDB$PRIVILEGE EQ 'M'
+ callback->list(s, user);
+ check(s);
+
+ found = true;
+ }
+ catch(const Firebird::Exception& ex)
{
- user->admin()->set(s, 1);
+ ex.stuffException(s);
+ s = &s2;
}
- END_FOR
- check(s);
-
- callback->list(s, user);
- check(s);
-
- found = true;
- }
- catch(const Firebird::Exception& ex)
- {
- ex.stuffException(s);
- s = &s2;
- }
END_FOR
ON_ERROR
ret = GsecMsg28; // gsec - find/display record error
@@ -644,71 +644,70 @@
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS
WITH U.PLG$USER_NAME EQ user->userName()->get()
- try
- {
- if (!U.PLG$UID.NULL)
- a1.printf("Uid=%d\n", U.PLG$UID);
+ try
+ {
+ if (!U.PLG$UID.NULL)
+ a1.printf("Uid=%d\n", U.PLG$UID);
- if (!U.PLG$GID.NULL)
- a2.printf("Gid=%d\n", U.PLG$GID);
+ if (!U.PLG$GID.NULL)
+ a2.printf("Gid=%d\n", U.PLG$GID);
- if (!U.PLG$GROUP_NAME.NULL)
- a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
+ if (!U.PLG$GROUP_NAME.NULL)
+ a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
- attr = a1 + a2 + a3;
- user->attributes()->set(s, attr.c_str());
- check(s);
- user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
- check(s);
+ attr = a1 + a2 + a3;
+ user->attributes()->set(s, attr.c_str());
+ check(s);
+ user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ check(s);
- user->userName()->set(s, U.PLG$USER_NAME);
- check(s);
- user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
- check(s);
- user->password()->set(s, "");
- check(s);
- user->password()->setEntered(s, 0);
- check(s);
- user->firstName()->set(s, U.PLG$FIRST_NAME);
- check(s);
- user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
- check(s);
- user->middleName()->set(s, U.PLG$MIDDLE_NAME);
- check(s);
- user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
- check(s);
- user->lastName()->set(s, U.PLG$LAST_NAME);
- check(s);
- user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
- check(s);
+ user->userName()->set(s, U.PLG$USER_NAME);
+ check(s);
+ user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
+ check(s);
+ user->password()->set(s, "");
+ check(s);
+ user->password()->setEntered(s, 0);
+ check(s);
+ user->firstName()->set(s, U.PLG$FIRST_NAME);
+ check(s);
+ user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
+ check(s);
+ user->middleName()->set(s, U.PLG$MIDDLE_NAME);
+ check(s);
+ user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
+ check(s);
+ user->lastName()->set(s, U.PLG$LAST_NAME);
+ check(s);
+ user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
+ check(s);
- user->admin()->set(s, 0);
- check(s);
- user->admin()->setEntered(s, 1);
- check(s);
+ user->admin()->set(s, 0);
+ check(s);
+ user->admin()->setEntered(s, 1);
+ check(s);
+ FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
+ P IN RDB$USER_PRIVILEGES
+ WITH P.RDB$USER EQ U.PLG$USER_NAME AND
+ P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
+ P.RDB$PRIVILEGE EQ 'M'
+ {
+ user->admin()->set(s, 1);
+ }
+ END_FOR
+ check(s);
- FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
- P IN RDB$USER_PRIVILEGES
- WITH P.RDB$USER EQ U.PLG$USER_NAME AND
- P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
- P.RDB$PRIVILEGE EQ 'M'
+ callback->list(s, user);
+ check(s);
+
+ found = true;
+ }
+ catch(const Firebird::Exception& ex)
{
- user->admin()->set(s, 1);
+ ex.stuffException(s);
+ s = &s2;
}
- END_FOR
- check(s);
-
- callback->list(s, user);
- check(s);
-
- found = true;
- }
- catch(const Firebird::Exception& ex)
- {
- ex.stuffException(s);
- s = &s2;
- }
END_FOR
ON_ERROR
ret = GsecMsg28; // gsec - find/display record error
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -511,8 +511,10 @@
LocalStatus s;
TimerInterfacePtr()->start(&s, instance, 10 * 1000 * 1000);
if (!s.isSuccess())
+ instance->handler();
+#else
+ instance->handler();
#endif
- instance->handler();
return rc;
}
catch (const Firebird::Exception& ex)
Modified: firebird/trunk/src/common/Auth.cpp
===================================================================
--- firebird/trunk/src/common/Auth.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/common/Auth.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -75,7 +75,7 @@
}
type = "USER";
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(st);
}
@@ -105,7 +105,7 @@
if (value)
type = value;
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(st);
}
@@ -122,7 +122,7 @@
current.insertPath(AuthReader::AUTH_SECURE_DB, target);
}
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(st);
}
Modified: firebird/trunk/src/common/classes/ImplementHelper.h
===================================================================
--- firebird/trunk/src/common/classes/ImplementHelper.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/common/classes/ImplementHelper.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -153,7 +153,7 @@
p->addRef();
return p;
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/src/common/security.h
===================================================================
--- firebird/trunk/src/common/security.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/common/security.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -74,7 +74,7 @@
{
value = newValue ? newValue : "";
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -748,7 +748,8 @@
//----------------------
SecureDdlNodeExecute::SecureDdlNodeExecute(thread_db* tdbb, DdlNode* ddlNode,
- DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction): _tdbb(tdbb)
+ DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+ : _tdbb(tdbb)
{
if (ddlNode->checkPermission(tdbb, transaction))
tdbb->tdbb_flags |= TDBB_trusted_ddl;
@@ -1382,7 +1383,7 @@
bool CreateAlterFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_function(tdbb, &dscName, SCL_alter);
else
@@ -2011,7 +2012,7 @@
bool AlterExternalFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_function(tdbb, &dscName, SCL_alter);
return true;
}
@@ -2136,7 +2137,7 @@
bool DropFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_function(tdbb, &dscName, SCL_drop);
return true;
}
@@ -2329,7 +2330,7 @@
bool CreateAlterProcedureNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_procedure(tdbb, &dscName, SCL_alter);
else
@@ -2883,7 +2884,7 @@
bool DropProcedureNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_procedure(tdbb, &dscName, SCL_drop);
return true;
}
@@ -3146,7 +3147,7 @@
bool CreateAlterTriggerNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -3342,7 +3343,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -4859,6 +4860,7 @@
{
Attachment* const attachment = transaction->getAttachment();
const string& userName = attachment->att_user->usr_user_name;
+
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_CREATE_EXCEPTION, name);
@@ -6844,7 +6846,7 @@
bool AlterRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -7540,7 +7542,7 @@
bool DropRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (view)
SCL_check_view(tdbb, &dscName, SCL_drop);
else
@@ -7785,7 +7787,7 @@
bool CreateAlterViewNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_view(tdbb, &dscName, SCL_alter);
else
@@ -7848,6 +7850,7 @@
REL.RDB$VIEW_BLR NOT MISSING
{
found = true;
+
MODIFY REL
attachment->storeMetaDataBlob(tdbb, transaction, &REL.RDB$VIEW_SOURCE, source);
attachment->storeBinaryBlob(tdbb, transaction, &REL.RDB$VIEW_BLR,
@@ -8918,7 +8921,7 @@
{
dsc dscName;
const MetaName &relationName = relation->dsqlName;
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -9003,7 +9006,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -9075,7 +9078,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -9166,7 +9169,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -10006,15 +10009,15 @@
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_DROP_ROLE, name);
-
+
if (ROL.RDB$SYSTEM_FLAG != 0)
{
// msg 284: can not drop system SQL role @1
status_exception::raise(Arg::PrivateDyn(284) << name);
}
-
+
AutoCacheRequest request2(tdbb, drq_del_role_1, DYN_REQUESTS);
// The first OR clause finds all members of the role.
@@ -10373,23 +10376,24 @@
break;
}
- if (options == 1) { // with grant option
- switch (userType) {
- case obj_procedure: {
+ if (options == 1) // with grant option
+ {
+ switch (userType)
+ {
+ case obj_procedure:
ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("procedures"));
break;
- }
- case obj_trigger: {
+
+ case obj_trigger:
ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("triggers"));
break;
- }
- case obj_view: {
+
+ case obj_view:
ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("views"));
break;
- }
- default: {
+
+ default:
break;
- }
}
}
@@ -10531,7 +10535,8 @@
tdbb->getAttachment()->att_user->usr_user_name.c_str(), priv, objName,
field, true);
}
- else if (objType >= obj_database) {
+ else if (objType >= obj_database)
+ {
checkGrantorCanGrantDdl(tdbb, transaction,
tdbb->getAttachment()->att_user->usr_user_name.c_str(), priv, objName);
}
@@ -10872,7 +10877,7 @@
// Check if the grantor has grant option on DDL privilege
void GrantRevokeNode::checkGrantorCanGrantDdl(thread_db* tdbb, jrd_tra* transaction,
- const Firebird::MetaName& grantor, const char* privilege, const Firebird::MetaName& objName)
+ const MetaName& grantor, const char* privilege, const MetaName& objName)
{
if (tdbb->getAttachment()->locksmith())
return;
@@ -10880,13 +10885,13 @@
AutoCacheRequest request(tdbb, drq_l_grant_option, DYN_REQUESTS);
bool grantable = false;
- FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
- PRV IN RDB$USER_PRIVILEGES WITH
- PRV.RDB$USER = UPPERCASE(grantor.c_str()) AND
- PRV.RDB$USER_TYPE = obj_user AND
- PRV.RDB$RELATION_NAME EQ objName.c_str() AND
- PRV.RDB$OBJECT_TYPE >= obj_database AND
- PRV.RDB$PRIVILEGE EQ privilege
+ FOR (REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ PRV IN RDB$USER_PRIVILEGES
+ WITH PRV.RDB$USER = UPPERCASE(grantor.c_str()) AND
+ PRV.RDB$USER_TYPE = obj_user AND
+ PRV.RDB$RELATION_NAME EQ objName.c_str() AND
+ PRV.RDB$OBJECT_TYPE >= obj_database AND
+ PRV.RDB$PRIVILEGE EQ privilege
{
grantable = PRV.RDB$GRANT_OPTION == 1;
}
Modified: firebird/trunk/src/dsql/DdlNodes.h
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/DdlNodes.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -2031,7 +2031,7 @@
case 'G': return "Usage";
case 'M': return "Role";
case 'R': return "Reference";
- //ddl
+ // ddl
case 'C': return "Create";
case 'L': return "Alter";
case 'O': return "DROP";
@@ -2048,7 +2048,7 @@
Firebird::Array<GranteeClause> users;
bool grantAdminOption;
NestConst<Firebird::MetaName> grantor;
- // ddl rights
+ // ddl rights
bool isDdl;
};
Modified: firebird/trunk/src/dsql/Nodes.h
===================================================================
--- firebird/trunk/src/dsql/Nodes.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/Nodes.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -158,7 +158,7 @@
{
public:
explicit SecureDdlNodeExecute(thread_db* tdbb, DdlNode* ddlNode,
- DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
+ DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
~SecureDdlNodeExecute()
{
Modified: firebird/trunk/src/dsql/PackageNodes.epp
===================================================================
--- firebird/trunk/src/dsql/PackageNodes.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/PackageNodes.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -462,7 +462,7 @@
bool CreateAlterPackageNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_package(tdbb, &dscName, SCL_alter);
else
@@ -635,7 +635,7 @@
bool DropPackageNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_package(tdbb, &dscName, SCL_drop);
return true;
}
@@ -1095,7 +1095,7 @@
bool DropPackageBodyNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_package(tdbb, &dscName, SCL_drop);
return true;
}
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/parse.y 2014-07-10 02:21:18 UTC (rev 59842)
@@ -855,7 +855,8 @@
;
%type <granteeClause> object
-object : TABLE
+object
+ : TABLE
{ $$ = newNode<GranteeClause>(obj_relations, get_object_name(obj_relations)); }
| VIEW
{ $$ = newNode<GranteeClause>(obj_views, get_object_name(obj_views)); }
@@ -925,8 +926,18 @@
%type ddl_privileges(<privilegeArray>)
ddl_privileges($privilegeArray)
- : ALL { $privilegeArray->add(PrivilegeClause('C', NULL)); $privilegeArray->add(PrivilegeClause('L', NULL)); $privilegeArray->add(PrivilegeClause('O', NULL)); }
- | ALL PRIVILEGES { $privilegeArray->add(PrivilegeClause('C', NULL)); $privilegeArray->add(PrivilegeClause('L', NULL)); $privilegeArray->add(PrivilegeClause('O', NULL)); }
+ : ALL
+ {
+ $privilegeArray->add(PrivilegeClause('C', NULL));
+ $privilegeArray->add(PrivilegeClause('L', NULL));
+ $privilegeArray->add(PrivilegeClause('O', NULL));
+ }
+ | ALL PRIVILEGES
+ {
+ $privilegeArray->add(PrivilegeClause('C', NULL));
+ $privilegeArray->add(PrivilegeClause('L', NULL));
+ $privilegeArray->add(PrivilegeClause('O', NULL));
+ }
| ddl_privilege_list($privilegeArray)
;
Modified: firebird/trunk/src/jrd/grant.epp
===================================================================
--- firebird/trunk/src/jrd/grant.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/grant.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -141,11 +141,9 @@
break;
default:
- if (id >= obj_database &&
- id < obj_type_MAX)
- {
+ if (id >= obj_database && id < obj_type_MAX)
priv = OWNER_PRIVS;
- }
+ break;
}
grant_user(acl, owner, obj_user, priv);
Modified: firebird/trunk/src/jrd/ini.epp
===================================================================
--- firebird/trunk/src/jrd/ini.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/ini.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -478,7 +478,7 @@
add_security_to_sys_obj(tdbb, ownerName, obj_collation, collation->name, length, buffer);
}
- for (int ddl_obj = obj_database + 1; ddl_obj < obj_type_MAX; ddl_obj++)
+ for (int ddl_obj = obj_database + 1; ddl_obj < obj_type_MAX; ++ddl_obj)
{
add_security_class(tdbb, get_object_name(ddl_obj), length, buffer);
}
@@ -1182,7 +1182,7 @@
bid blob_id;
attachment->storeBinaryBlob(tdbb, attachment->getSysTransaction(), &blob_id,
- ByteChunk(acl, acl_length));
+ ByteChunk(acl, acl_length));
AutoRequest handle;
@@ -1193,8 +1193,6 @@
CLS.RDB$ACL = blob_id;
}
END_STORE
-
- handle.reset();
}
Modified: firebird/trunk/src/jrd/jrd.h
===================================================================
--- firebird/trunk/src/jrd/jrd.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/jrd.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -369,7 +369,7 @@
const USHORT TDBB_detaching = 512; // detach is in progress
const USHORT TDBB_wait_cancel_disable = 1024; // don't cancel current waiting operation
const USHORT TDBB_cache_unwound = 2048; // page cache was unwound
-const USHORT TDBB_trusted_ddl = 4096; // skip DDL permission checks. set after DDL permission check and clear after DDL execution
+const USHORT TDBB_trusted_ddl = 4096; // skip DDL permission checks. Set after DDL permission check and clear after DDL execution
class thread_db : public Firebird::ThreadData
{
Modified: firebird/trunk/src/jrd/obj.h
===================================================================
--- firebird/trunk/src/jrd/obj.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/obj.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -48,17 +48,17 @@
const int obj_package_header = 18;
const int obj_package_body = 19;
-//objects types for ddl operations
+// objects types for ddl operations
const int obj_database = 20;
const int obj_relations = 21;
-const int obj_views = 22;
+const int obj_views = 22;
const int obj_procedures = 23;
const int obj_functions = 24;
const int obj_packages = 25;
const int obj_generators = 26;
const int obj_domains = 27;
const int obj_exceptions = 28;
-const int obj_roles = 29;
+const int obj_roles = 29;
const int obj_shadows = 30;
const int obj_charsets = 31;
const int obj_collations = 32;
Modified: firebird/trunk/src/jrd/scl.epp
===================================================================
--- firebird/trunk/src/jrd/scl.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/scl.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -1249,28 +1249,28 @@
* S C L _ g e t _ o b j e c t _ m a s k
*
**************************************
- *
+ *
* Functional description
* Get a protection mask for database object.
*
**************************************/
thread_db* tdbb = JRD_get_thread_data();
Database* dbb = tdbb->getDatabase();
-
+
UserId* user = tdbb->getAttachment()->att_user;
/*if (object_type == obj_roles)
{
if (user->isSecAdmin())
- return -1 & ~SCL_corrupt;
+ return -1 & ~SCL_corrupt;
}*/
-
+
const TEXT* object_name = get_object_name(object_type);
const Jrd::SecurityClass* s_class = SCL_recompute_class(tdbb, object_name);
-
+
if (s_class)
return s_class->scl_flags;
-
+
return -1 & ~SCL_corrupt;
}
@@ -1283,7 +1283,7 @@
**************************************
*
* Functional description
- * Set user attributes.
+ * Set user attributes.
*
**************************************/
thread_db* tdbb = JRD_get_thread_data();
@@ -1293,7 +1293,7 @@
if (!user.usr_user_name.compare(dbb->dbb_owner.c_str())) {
user.usr_flags |= USR_owner;
- }
+ }
}
static bool check_number(const UCHAR* acl, USHORT number)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-11 00:36:18
|
Revision: 59846
http://sourceforge.net/p/firebird/code/59846
Author: firebirds
Date: 2014-07-11 00:36:16 +0000 (Fri, 11 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-10 15:45:02 UTC (rev 59845)
+++ firebird/trunk/ChangeLog 2014-07-11 00:36:16 UTC (rev 59846)
@@ -1,3 +1,34 @@
+ 2014-07-10 15:45 asfernandes
+ M src/dsql/DdlNodes.epp
+ M src/dsql/Nodes.h
+ M src/dsql/parse.y
+Simplifications.
+
+ 2014-07-10 02:25 asfernandes
+ M src/jrd/Database.h
+ M src/jrd/obj.h
+Warnings.
+
+ 2014-07-10 02:21 asfernandes
+ M examples/dbcrypt/CryptKeyHolder.cpp
+ M examples/dbcrypt/DbCrypt.cpp
+ M src/auth/SecurityDatabase/LegacyManagement.epp
+ M src/auth/SecurityDatabase/LegacyServer.cpp
+ M src/common/Auth.cpp
+ M src/common/classes/ImplementHelper.h
+ M src/common/security.h
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/Nodes.h
+ M src/dsql/PackageNodes.epp
+ M src/dsql/parse.y
+ M src/jrd/grant.epp
+ M src/jrd/ini.epp
+ M src/jrd/jrd.h
+ M src/jrd/obj.h
+ M src/jrd/scl.epp
+Misc.
+
2014-07-08 07:35 roman-simakov
A doc/sql.extensions/README.ddl_access.txt
M lang_helpers/gds_codes.ftn
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-10 15:45:02 UTC (rev 59845)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-11 00:36:16 UTC (rev 59846)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31217
+ FORMAL BUILD NUMBER:31220
*/
-#define PRODUCT_VER_STRING "3.0.0.31217"
-#define FILE_VER_STRING "WI-T3.0.0.31217"
-#define LICENSE_VER_STRING "WI-T3.0.0.31217"
-#define FILE_VER_NUMBER 3, 0, 0, 31217
+#define PRODUCT_VER_STRING "3.0.0.31220"
+#define FILE_VER_STRING "WI-T3.0.0.31220"
+#define LICENSE_VER_STRING "WI-T3.0.0.31220"
+#define FILE_VER_NUMBER 3, 0, 0, 31220
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31217"
+#define FB_BUILD_NO "31220"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-10 15:45:02 UTC (rev 59845)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-11 00:36:16 UTC (rev 59846)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31217
+BuildNum=31220
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-13 00:24:08
|
Revision: 59867
http://sourceforge.net/p/firebird/code/59867
Author: firebirds
Date: 2014-07-13 00:24:05 +0000 (Sun, 13 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-12 18:38:53 UTC (rev 59866)
+++ firebird/trunk/ChangeLog 2014-07-13 00:24:05 UTC (rev 59867)
@@ -1,3 +1,18 @@
+ 2014-07-12 08:04 dimitr
+ M src/jrd/DatabaseSnapshot.h
+ M src/jrd/Mapping.h
+ M src/jrd/UserManagement.h
+ M src/jrd/opt.cpp
+ M src/jrd/recsrc/BitmapTableScan.cpp
+ M src/jrd/recsrc/ExternalTableScan.cpp
+ M src/jrd/recsrc/FullTableScan.cpp
+ M src/jrd/recsrc/IndexTableScan.cpp
+ M src/jrd/recsrc/ProcedureScan.cpp
+ M src/jrd/recsrc/RecordSource.cpp
+ M src/jrd/recsrc/RecordSource.h
+ M src/jrd/recsrc/VirtualTableScan.cpp
+Improved the detailed plan output (report both table name and its alias).
+
2014-07-10 15:45 asfernandes
M src/dsql/DdlNodes.epp
M src/dsql/Nodes.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-12 18:38:53 UTC (rev 59866)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-13 00:24:05 UTC (rev 59867)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31220
+ FORMAL BUILD NUMBER:31221
*/
-#define PRODUCT_VER_STRING "3.0.0.31220"
-#define FILE_VER_STRING "WI-T3.0.0.31220"
-#define LICENSE_VER_STRING "WI-T3.0.0.31220"
-#define FILE_VER_NUMBER 3, 0, 0, 31220
+#define PRODUCT_VER_STRING "3.0.0.31221"
+#define FILE_VER_STRING "WI-T3.0.0.31221"
+#define LICENSE_VER_STRING "WI-T3.0.0.31221"
+#define FILE_VER_NUMBER 3, 0, 0, 31221
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31220"
+#define FB_BUILD_NO "31221"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-12 18:38:53 UTC (rev 59866)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-13 00:24:05 UTC (rev 59867)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31220
+BuildNum=31221
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-14 00:27:34
|
Revision: 59871
http://sourceforge.net/p/firebird/code/59871
Author: firebirds
Date: 2014-07-14 00:27:26 +0000 (Mon, 14 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-13 18:50:57 UTC (rev 59870)
+++ firebird/trunk/ChangeLog 2014-07-14 00:27:26 UTC (rev 59871)
@@ -1,3 +1,16 @@
+ 2014-07-13 18:50 roman-simakov
+ M src/dsql/DdlNodes.h
+ M src/jrd/vio.cpp
+Corrections pointed by Adriano.
+
+ 2014-07-13 01:33 asfernandes
+ M src/jrd/scl.epp
+Misc.
+
+ 2014-07-13 01:33 asfernandes
+ M src/msgs/facilities2.sql
+Correction.
+
2014-07-12 08:04 dimitr
M src/jrd/DatabaseSnapshot.h
M src/jrd/Mapping.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-13 18:50:57 UTC (rev 59870)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-14 00:27:26 UTC (rev 59871)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31221
+ FORMAL BUILD NUMBER:31224
*/
-#define PRODUCT_VER_STRING "3.0.0.31221"
-#define FILE_VER_STRING "WI-T3.0.0.31221"
-#define LICENSE_VER_STRING "WI-T3.0.0.31221"
-#define FILE_VER_NUMBER 3, 0, 0, 31221
+#define PRODUCT_VER_STRING "3.0.0.31224"
+#define FILE_VER_STRING "WI-T3.0.0.31224"
+#define LICENSE_VER_STRING "WI-T3.0.0.31224"
+#define FILE_VER_NUMBER 3, 0, 0, 31224
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31221"
+#define FB_BUILD_NO "31224"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-13 18:50:57 UTC (rev 59870)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-14 00:27:26 UTC (rev 59871)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31221
+BuildNum=31224
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2014-07-14 13:12:15
|
Revision: 59872
http://sourceforge.net/p/firebird/code/59872
Author: roman-simakov
Date: 2014-07-14 13:12:12 +0000 (Mon, 14 Jul 2014)
Log Message:
-----------
Improved description of DDL access control operations.
Fixed DB and DDL triggers handling. Thanks to Adriano.
Modified Paths:
--------------
firebird/trunk/doc/sql.extensions/README.ddl_access.txt
firebird/trunk/src/dsql/DdlNodes.epp
Modified: firebird/trunk/doc/sql.extensions/README.ddl_access.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.ddl_access.txt 2014-07-14 00:27:26 UTC (rev 59871)
+++ firebird/trunk/doc/sql.extensions/README.ddl_access.txt 2014-07-14 13:12:12 UTC (rev 59872)
@@ -7,13 +7,13 @@
Syntax is:
-GRANT CREATE <OBJECT> TO USER|ROLE [with grant option];
-GRANT ALTER ANY <OBJECT> TO USER|ROLE [with grant option];
-GRANT DROP ANY <OBJECT> TO USER|ROLE [with grant option];
+GRANT CREATE <OBJECT> TO [USER | ROLE] <user/role name> [with grant option];
+GRANT ALTER ANY <OBJECT> TO [USER | ROLE] <user/role name> [with grant option];
+GRANT DROP ANY <OBJECT> TO [USER | ROLE] <user/role name> [with grant option];
-REVOKE [grant option for] CREATE <OBJECT> FROM USER|ROLE;
-REVOKE [grant option for] ALTER ANY <OBJECT> FROM USER|ROLE;
-REVOKE [grant option for] DROP ANY <OBJECT> FROM USER|ROLE;
+REVOKE [grant option for] CREATE <OBJECT> FROM [USER | ROLE] <user/role name>;
+REVOKE [grant option for] ALTER ANY <OBJECT> FROM [USER | ROLE] <user/role name>;
+REVOKE [grant option for] DROP ANY <OBJECT> FROM [USER | ROLE] <user/role name>;
Where <OBJECT> could be:
TABLE, VIEW, PROCEDURE, FUNCTION, PACKAGE, GENERATOR, SEQUENCE, DOMAIN,
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2014-07-14 00:27:26 UTC (rev 59871)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2014-07-14 13:12:12 UTC (rev 59872)
@@ -3157,9 +3157,16 @@
bool CreateAlterTriggerNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
- dsc dscName;
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
- SCL_check_relation(tdbb, &dscName, SCL_alter);
+ if (relationName.hasData())
+ {
+ dsc dscName;
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ }
+ else
+ {
+ SCL_check_database(tdbb, SCL_alter);
+ }
return true;
}
@@ -3335,7 +3342,6 @@
bool DropTriggerNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
- dsc dscName;
MetaName relationName;
AutoCacheRequest request(tdbb, drq_l_trigger_relname, DYN_REQUESTS);
@@ -3350,12 +3356,15 @@
if (relationName.isEmpty())
{
- // msg 48: "Index not found"
- status_exception::raise(Arg::PrivateDyn(48));
+ SCL_check_database(tdbb, SCL_alter);
}
+ else
+ {
+ dsc dscName;
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
+ SCL_check_relation(tdbb, &dscName, SCL_alter);
+ }
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
- SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -3390,9 +3399,6 @@
break;
}
- if (X.RDB$RELATION_NAME.NULL && !transaction->getAttachment()->locksmith())
- status_exception::raise(Arg::Gds(isc_adm_task_denied));
-
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_DROP_TRIGGER, name);
relationName = X.RDB$RELATION_NAME;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2014-07-15 00:28:02
|
Revision: 59874
http://sourceforge.net/p/firebird/code/59874
Author: firebirds
Date: 2014-07-15 00:27:54 +0000 (Tue, 15 Jul 2014)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2014-07-14 19:33:47 UTC (rev 59873)
+++ firebird/trunk/ChangeLog 2014-07-15 00:27:54 UTC (rev 59874)
@@ -1,3 +1,13 @@
+ 2014-07-14 19:33 dimitr
+ M builds/win32/make_all.bat
+Added the missing but required (by ICU) runtime lib.
+
+ 2014-07-14 13:12 roman-simakov
+ M doc/sql.extensions/README.ddl_access.txt
+ M src/dsql/DdlNodes.epp
+Improved description of DDL access control operations.
+Fixed DB and DDL triggers handling. Thanks to Adriano.
+
2014-07-13 18:50 roman-simakov
M src/dsql/DdlNodes.h
M src/jrd/vio.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2014-07-14 19:33:47 UTC (rev 59873)
+++ firebird/trunk/src/jrd/build_no.h 2014-07-15 00:27:54 UTC (rev 59874)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:31224
+ FORMAL BUILD NUMBER:31226
*/
-#define PRODUCT_VER_STRING "3.0.0.31224"
-#define FILE_VER_STRING "WI-T3.0.0.31224"
-#define LICENSE_VER_STRING "WI-T3.0.0.31224"
-#define FILE_VER_NUMBER 3, 0, 0, 31224
+#define PRODUCT_VER_STRING "3.0.0.31226"
+#define FILE_VER_STRING "WI-T3.0.0.31226"
+#define LICENSE_VER_STRING "WI-T3.0.0.31226"
+#define FILE_VER_NUMBER 3, 0, 0, 31226
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "31224"
+#define FB_BUILD_NO "31226"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2014-07-14 19:33:47 UTC (rev 59873)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2014-07-15 00:27:54 UTC (rev 59874)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=31224
+BuildNum=31226
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|