From 7ab27804043b7d809286e04ceda586ea594bda2b Mon Sep 17 00:00:00 2001 From: lsv Date: Fri, 11 Feb 2022 09:35:00 +0500 Subject: [PATCH] Support in defining a FUNCTION keyword trigger MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Начиная с 11 версии вместо PROCEDURE будет использовано FUNCTION. --- schema/pgTrigger.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/schema/pgTrigger.cpp b/schema/pgTrigger.cpp index 5018f9f..8ce4ea4 100644 --- a/schema/pgTrigger.cpp +++ b/schema/pgTrigger.cpp @@ -204,7 +204,9 @@ wxString pgTrigger::GetSql(ctlTree *browser) } else { - sql += wxT("\n EXECUTE PROCEDURE ") + triggerFunction->GetQuotedFullIdentifier() + wxString keyword = "PROCEDURE "; + if (GetConnection()->BackendMinimumVersion(11, 0)) keyword = "FUNCTION "; + sql += wxT("\n EXECUTE ") + keyword + triggerFunction->GetQuotedFullIdentifier() + wxT("(") + GetArguments() + wxT(")") + wxT(";\n"); } @@ -405,7 +407,7 @@ pgObject *pgTriggerFactory::CreateObjects(pgCollection *coll, ctlTree *browser, wxString trig_sql; trig_sql = wxT("SELECT t.oid, t.xmin, encode(t.tgargs,'escape') tgargsE, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable, ")+ref+ wxT(" nspname, des.description, l.lanname, p.prosrc, \n") - wxT(" COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \\$trigger')) AS whenclause\n") + wxT(" COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE FUNCTION'),substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'), substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \\$trigger')) AS whenclause\n") wxT(" FROM pg_trigger t\n") wxT(" JOIN pg_class cl ON cl.oid=tgrelid\n") wxT(" JOIN pg_namespace na ON na.oid=relnamespace\n")