From: <asf...@us...> - 2010-08-04 01:41:33
|
Revision: 51390 http://firebird.svn.sourceforge.net/firebird/?rev=51390&view=rev Author: asfernandes Date: 2010-08-04 01:41:25 +0000 (Wed, 04 Aug 2010) Log Message: ----------- Use RecreateNode in package commands Modified Paths: -------------- firebird/trunk/src/dsql/PackageNodes.epp firebird/trunk/src/dsql/PackageNodes.h Modified: firebird/trunk/src/dsql/PackageNodes.epp =================================================================== --- firebird/trunk/src/dsql/PackageNodes.epp 2010-08-03 01:09:39 UTC (rev 51389) +++ firebird/trunk/src/dsql/PackageNodes.epp 2010-08-04 01:41:25 UTC (rev 51390) @@ -690,35 +690,6 @@ //---------------------- -void RecreatePackageNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const -{ - text.printf("RecreatePackageNode\n"); -} - - -DdlNode* RecreatePackageNode::internalDsqlPass() -{ - dropNode.dsqlPass(dsqlScratch); - createNode->dsqlPass(dsqlScratch); - return DdlNode::internalDsqlPass(); -} - - -void RecreatePackageNode::execute(thread_db* tdbb, jrd_tra* transaction) -{ - // run all statements under savepoint control - AutoSavePoint savePoint(tdbb, transaction); - - dropNode.executeDdl(tdbb, transaction); - createNode->executeDdl(tdbb, transaction); - - savePoint.release(); // everything is ok -} - - -//---------------------- - - void CreatePackageBodyNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const { fb_assert(items); @@ -1118,33 +1089,4 @@ } -//---------------------- - - -void RecreatePackageBodyNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const -{ - text.printf("RecreatePackageBodyNode\n"); -} - - -DdlNode* RecreatePackageBodyNode::internalDsqlPass() -{ - dropNode.dsqlPass(dsqlScratch); - createNode->dsqlPass(dsqlScratch); - return DdlNode::internalDsqlPass(); -} - - -void RecreatePackageBodyNode::execute(thread_db* tdbb, jrd_tra* transaction) -{ - // run all statements under savepoint control - AutoSavePoint savePoint(tdbb, transaction); - - dropNode.executeDdl(tdbb, transaction); - createNode->executeDdl(tdbb, transaction); - - savePoint.release(); // everything is ok -} - - } // namespace Jrd Modified: firebird/trunk/src/dsql/PackageNodes.h =================================================================== --- firebird/trunk/src/dsql/PackageNodes.h 2010-08-03 01:09:39 UTC (rev 51389) +++ firebird/trunk/src/dsql/PackageNodes.h 2010-08-04 01:41:25 UTC (rev 51390) @@ -140,36 +140,10 @@ }; -class RecreatePackageNode : public DdlNode -{ -public: - explicit RecreatePackageNode(MemoryPool& p, const Firebird::string& sqlText, - CreateAlterPackageNode* aCreateNode) - : DdlNode(p, sqlText), - createNode(aCreateNode), - dropNode(p, sqlText, createNode->name) - { - dropNode.silent = true; - } +typedef RecreateNode<CreateAlterPackageNode, DropPackageNode, isc_dsql_recreate_pack_failed> + RecreatePackageNode; -public: - virtual void print(Firebird::string& text, Firebird::Array<dsql_nod*>& nodes) const; - virtual void execute(thread_db* tdbb, jrd_tra* transaction); -protected: - virtual void putErrorPrefix(Firebird::Arg::StatusVector& statusVector) - { - statusVector << Firebird::Arg::Gds(isc_dsql_recreate_pack_failed) << createNode->name; - } - - virtual DdlNode* internalDsqlPass(); - -private: - CreateAlterPackageNode* createNode; - DropPackageNode dropNode; -}; - - class CreatePackageBodyNode : public DdlNode { public: @@ -213,7 +187,8 @@ explicit DropPackageBodyNode(MemoryPool& pool, const Firebird::string& sqlText, const Firebird::MetaName& aName) : DdlNode(pool, sqlText), - name(pool, aName) + name(pool, aName), + silent(false) { } @@ -229,38 +204,14 @@ public: Firebird::MetaName name; + bool silent; // Unused. Just to please RecreateNode template. }; -class RecreatePackageBodyNode : public DdlNode -{ -public: - explicit RecreatePackageBodyNode(MemoryPool& p, const Firebird::string& sqlText, - CreatePackageBodyNode* aCreateNode) - : DdlNode(p, sqlText), - createNode(aCreateNode), - dropNode(p, sqlText, createNode->name) - { - } +typedef RecreateNode<CreatePackageBodyNode, DropPackageBodyNode, isc_dsql_recreate_pack_body_failed> + RecreatePackageBodyNode; -public: - virtual void print(Firebird::string& text, Firebird::Array<dsql_nod*>& nodes) const; - virtual void execute(thread_db* tdbb, jrd_tra* transaction); -protected: - virtual void putErrorPrefix(Firebird::Arg::StatusVector& statusVector) - { - statusVector << Firebird::Arg::Gds(isc_dsql_recreate_pack_body_failed) << createNode->name; - } - - virtual DdlNode* internalDsqlPass(); - -private: - CreatePackageBodyNode* createNode; - DropPackageBodyNode dropNode; -}; - - } // namespace #endif // DSQL_PACKAGE_NODES_H This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |