From 769307c821afd57510eadd4a7c5151b1500179c1 Mon Sep 17 00:00:00 2001 From: eelke Date: Thu, 27 Dec 2018 12:15:37 +0100 Subject: [PATCH] Added the trigger definitions to the sql for a table. Also tuned the formatting of the trigger definitions a bit. --- pglab/TablesPage.cpp | 10 ++++++++-- pglablib/catalog/PgTrigger.cpp | 8 ++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pglab/TablesPage.cpp b/pglab/TablesPage.cpp index 1e31415..727ec2f 100644 --- a/pglab/TablesPage.cpp +++ b/pglab/TablesPage.cpp @@ -3,13 +3,14 @@ #include "catalog/PgAttribute.h" #include "catalog/PgDatabaseCatalog.h" +#include "catalog/PgIndexContainer.h" +#include "catalog/PgTriggerContainer.h" #include "ColumnPage.h" #include "ColumnTableModel.h" #include "ConstraintModel.h" #include "IconColumnDelegate.h" #include "IndexModel.h" #include "MainWindow.h" -#include "catalog/PgIndexContainer.h" #include "PgLabItemDelegate.h" #include "PropertiesPage.h" #include "ResultTableModelUtil.h" @@ -264,10 +265,15 @@ void TablesPage::updateSqlTab(const std::optional &table) // Triggers drop_sql += "-- drop Triggers\n"; create_sql += "-- create Triggers\n"; + auto && triggers = m_catalog->triggers()->getTriggersForRelation(table->oid()); + for (auto && trg : triggers) { + drop_sql += trg.dropSql() % "\n"; + create_sql += trg.createSql() % "\n"; + } // Privileges create_sql += "-- set Privileges\n"; - create_sql += table->grantSql(); + create_sql += table->grantSql() % "\n"; // Comments create_sql += "-- set Comments table + columns\n"; diff --git a/pglablib/catalog/PgTrigger.cpp b/pglablib/catalog/PgTrigger.cpp index 067ef43..f34bfcc 100644 --- a/pglablib/catalog/PgTrigger.cpp +++ b/pglablib/catalog/PgTrigger.cpp @@ -32,7 +32,7 @@ QString PgTrigger::createSql() m_createSql += "\n ON " + fqtablename; if (deferrable) { - m_createSql += "\n DEFERRABLE INITIALLY "; + m_createSql += " DEFERRABLE INITIALLY "; if (initdeferred) m_createSql += "DEFERRED"; else @@ -42,12 +42,12 @@ QString PgTrigger::createSql() // requires atleast 8.5 don;t think we have to support older if (!whenclause.isEmpty()) - m_createSql += "\n WHEN (" + whenclause + ")"; + m_createSql += " WHEN (" + whenclause + ")"; - m_createSql += QString("\n EXECUTE PROCEDURE %1;\n").arg(procedure()); + m_createSql += QString("\n EXECUTE PROCEDURE %1;").arg(procedure()); if (!enabled) - m_createSql += QString("ALTER TABLE %1 DISABLE TRIGGER %2;\n").arg(fqtablename, triggername); + m_createSql += QString("\nALTER TABLE %1 DISABLE TRIGGER %2;").arg(fqtablename, triggername); // if (!GetComment().IsEmpty()) // sql += wxT("COMMENT ON TRIGGER ") + GetQuotedIdentifier() + wxT(" ON ") + GetQuotedFullTable()