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. |