|
From: <asf...@us...> - 2011-11-10 14:55:13
|
Revision: 53623
http://firebird.svn.sourceforge.net/firebird/?rev=53623&view=rev
Author: asfernandes
Date: 2011-11-10 14:55:06 +0000 (Thu, 10 Nov 2011)
Log Message:
-----------
Feature CORE-3018 - RECREATE SEQUENCE/GENERATOR.
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/parse.y
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/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 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2011-11-10 14:55:06 UTC (rev 53623)
@@ -2116,6 +2116,8 @@
PARAMETER (GDS__dsql_drop_view_failed = 336397302)
INTEGER*4 GDS__dsql_drop_sequence_failed
PARAMETER (GDS__dsql_drop_sequence_failed = 336397303)
+ INTEGER*4 GDS__dsql_recreate_sequence_failed
+ PARAMETER (GDS__dsql_recreate_sequence_failed = 336397304)
INTEGER*4 GDS__gsec_cant_open_db
PARAMETER (GDS__gsec_cant_open_db = 336723983)
INTEGER*4 GDS__gsec_switches_error
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1065,6 +1065,7 @@
gds_dsql_recreate_view_failed = 336397301;
gds_dsql_drop_view_failed = 336397302;
gds_dsql_drop_sequence_failed = 336397303;
+ gds_dsql_recreate_sequence_failed = 336397304;
gds_gsec_cant_open_db = 336723983;
gds_gsec_switches_error = 336723984;
gds_gsec_no_op_spec = 336723985;
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2011-11-10 14:55:06 UTC (rev 53623)
@@ -4749,7 +4749,7 @@
if (found)
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_DROP_SEQUENCE, name);
- else
+ else if (!silent)
status_exception::raise(Arg::Gds(isc_gennotdef) << Arg::Str(name));
}
Modified: firebird/trunk/src/dsql/DdlNodes.h
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.h 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/dsql/DdlNodes.h 2011-11-10 14:55:06 UTC (rev 53623)
@@ -888,7 +888,7 @@
statusVector << Firebird::Arg::Gds(isc_dsql_create_sequence_failed) << name;
}
-private:
+public:
Firebird::MetaName name;
};
@@ -898,7 +898,8 @@
public:
DropSequenceNode(MemoryPool& pool, const Firebird::MetaName&aName)
: DdlNode(pool),
- name(pool, aName)
+ name(pool, aName),
+ silent(false)
{
}
@@ -915,11 +916,16 @@
statusVector << Firebird::Arg::Gds(isc_dsql_drop_sequence_failed) << name;
}
-private:
+public:
Firebird::MetaName name;
+ bool silent;
};
+typedef RecreateNode<CreateSequenceNode, DropSequenceNode, isc_dsql_recreate_sequence_failed>
+ RecreateSequenceNode;
+
+
class RelationNode : public DdlNode
{
public:
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/dsql/parse.y 2011-11-10 14:55:06 UTC (rev 53623)
@@ -646,6 +646,7 @@
Jrd::CreateAlterProcedureNode* createAlterProcedureNode;
Jrd::CreateAlterTriggerNode* createAlterTriggerNode;
Jrd::CreateAlterPackageNode* createAlterPackageNode;
+ Jrd::CreateSequenceNode* createSequenceNode;
Firebird::Array<Jrd::CreateAlterPackageNode::Item>* packageItems;
Jrd::ExceptionArray* exceptionArray;
Jrd::CreateAlterPackageNode::Item packageItem;
@@ -881,7 +882,8 @@
%type <boolVal> release_only_opt
-%type <ddlNode> alter_charset_clause comment generator_clause
+%type <ddlNode> alter_charset_clause comment
+%type <createSequenceNode> generator_clause
%type <stmtNode> if_then_else in_autonomous_transaction excp_statement raise_statement
%type <execBlockNode> exec_block
@@ -1342,6 +1344,10 @@
{ $$ = makeClassNode(newNode<RecreatePackageBodyNode>($3)); }
| EXCEPTION rexception_clause
{ $$ = $2; }
+ | GENERATOR generator_clause
+ { $$ = makeClassNode(newNode<RecreateSequenceNode>($2)); }
+ | SEQUENCE generator_clause
+ { $$ = makeClassNode(newNode<RecreateSequenceNode>($2)); }
;
create_or_alter
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/include/gen/codetext.h 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1054,6 +1054,7 @@
{"dsql_recreate_view_failed", 336397301},
{"dsql_drop_view_failed", 336397302},
{"dsql_drop_sequence_failed", 336397303},
+ {"dsql_recreate_sequence_failed", 336397304},
{"gsec_cant_open_db", 336723983},
{"gsec_switches_error", 336723984},
{"gsec_no_op_spec", 336723985},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/include/gen/iberror.h 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1088,6 +1088,7 @@
const ISC_STATUS isc_dsql_recreate_view_failed = 336397301L;
const ISC_STATUS isc_dsql_drop_view_failed = 336397302L;
const ISC_STATUS isc_dsql_drop_sequence_failed = 336397303L;
+const ISC_STATUS isc_dsql_recreate_sequence_failed = 336397304L;
const ISC_STATUS isc_gsec_cant_open_db = 336723983L;
const ISC_STATUS isc_gsec_switches_error = 336723984L;
const ISC_STATUS isc_gsec_no_op_spec = 336723985L;
@@ -1189,7 +1190,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 = 1133;
+const ISC_STATUS isc_err_max = 1134;
#else /* c definitions */
@@ -2247,6 +2248,7 @@
#define isc_dsql_recreate_view_failed 336397301L
#define isc_dsql_drop_view_failed 336397302L
#define isc_dsql_drop_sequence_failed 336397303L
+#define isc_dsql_recreate_sequence_failed 336397304L
#define isc_gsec_cant_open_db 336723983L
#define isc_gsec_switches_error 336723984L
#define isc_gsec_no_op_spec 336723985L
@@ -2348,7 +2350,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 1133
+#define isc_err_max 1134
#endif
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/include/gen/msgs.h 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1057,6 +1057,7 @@
{336397301, "RECREATE VIEW @1 failed"}, /* dsql_recreate_view_failed */
{336397302, "DROP VIEW @1 failed"}, /* dsql_drop_view_failed */
{336397303, "DROP SEQUENCE @1 failed"}, /* dsql_drop_sequence_failed */
+ {336397304, "RECREATE SEQUENCE @1 failed"}, /* dsql_recreate_sequence_failed */
{336723983, "unable to open database"}, /* gsec_cant_open_db */
{336723984, "error in switch specifications"}, /* gsec_switches_error */
{336723985, "no operation specified"}, /* gsec_no_op_spec */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/include/gen/sql_code.h 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1053,6 +1053,7 @@
{336397301, -901}, /* 1013 dsql_recreate_view_failed */
{336397302, -901}, /* 1014 dsql_drop_view_failed */
{336397303, -901}, /* 1015 dsql_drop_sequence_failed */
+ {336397304, -901}, /* 1016 dsql_recreate_sequence_failed */
{336723983, -901}, /* 15 gsec_cant_open_db */
{336723984, -901}, /* 16 gsec_switches_error */
{336723985, -901}, /* 17 gsec_no_op_spec */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/include/gen/sql_state.h 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1053,6 +1053,7 @@
{336397301, "42000"}, // 1013 dsql_recreate_view_failed
{336397302, "42000"}, // 1014 dsql_drop_view_failed
{336397303, "42000"}, // 1015 dsql_drop_sequence_failed
+ {336397304, "42000"}, // 1016 dsql_recreate_sequence_failed
{336723983, "00000"}, // 15 gsec_cant_open_db
{336723984, "00000"}, // 16 gsec_switches_error
{336723985, "00000"}, // 17 gsec_no_op_spec
Modified: firebird/trunk/src/msgs/facilities2.sql
===================================================================
--- firebird/trunk/src/msgs/facilities2.sql 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/msgs/facilities2.sql 2011-11-10 14:55:06 UTC (rev 53623)
@@ -20,7 +20,7 @@
('1996-11-07 13:39:40', 'INSTALL', 10, 1)
('1996-11-07 13:38:41', 'TEST', 11, 4)
('2011-06-01 12:57:44', 'GBAK', 12, 351)
-('2010-08-01 13:05:00', 'SQLERR', 13, 1016)
+('2010-11-10 12:40:00', 'SQLERR', 13, 1017)
('1996-11-07 13:38:42', 'SQLWARN', 14, 613)
('2006-09-10 03:04:31', 'JRD_BUGCHK', 15, 307)
--
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/msgs/messages2.sql 2011-11-10 14:55:06 UTC (rev 53623)
@@ -2483,6 +2483,7 @@
('dsql_recreate_view_failed', 'getMainErrorCode', 'DdlNodes.h', NULL, 13, 1013, NULL, 'RECREATE VIEW @1 failed', NULL, NULL);
('dsql_drop_view_failed', 'getMainErrorCode', 'DdlNodes.h', NULL, 13, 1014, NULL, 'DROP VIEW @1 failed', NULL, NULL);
('dsql_drop_sequence_failed', 'getMainErrorCode', 'DdlNodes.h', NULL, 13, 1015, NULL, 'DROP SEQUENCE @1 failed', NULL, NULL);
+('dsql_recreate_sequence_failed', 'getMainErrorCode', 'DdlNodes.h', NULL, 13, 1016, NULL, 'RECREATE SEQUENCE @1 failed', NULL, NULL);
-- SQLWARN
(NULL, NULL, NULL, NULL, 14, 100, NULL, 'Row not found for fetch, update or delete, or the result of a query is an empty table.', NULL, NULL);
(NULL, NULL, NULL, NULL, 14, 101, NULL, 'segment buffer length shorter than expected', NULL, NULL);
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql 2011-11-10 14:35:40 UTC (rev 53622)
+++ firebird/trunk/src/msgs/system_errors2.sql 2011-11-10 14:55:06 UTC (rev 53623)
@@ -1046,6 +1046,7 @@
(-901, '42', '000', 13, 1013, 'dsql_recreate_view_failed', NULL, NULL);
(-901, '42', '000', 13, 1014, 'dsql_drop_view_failed', NULL, NULL);
(-901, '42', '000', 13, 1015, 'dsql_drop_sequence_failed', NULL, NULL);
+(-901, '42', '000', 13, 1016, 'dsql_recreate_sequence_failed', NULL, NULL);
-- GSEC
(-901, '00', '000', 18, 15, 'gsec_cant_open_db', NULL, NULL)
(-901, '00', '000', 18, 16, 'gsec_switches_error', NULL, NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|