event_triggers_v1.8--v1.9.patch
text/x-patch
Filename: event_triggers_v1.8--v1.9.patch
Type: text/x-patch
Part: 0
Message:
Re: Event Triggers reduced, v1
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
Series: patch v1
| File | + | − |
|---|---|---|
| doc/src/sgml/event-trigger.sgml | 22 | 19 |
| doc/src/sgml/plpgsql.sgml | 1 | 1 |
| doc/src/sgml/ref/create_event_trigger.sgml | 4 | 5 |
| src/backend/tcop/utility.c | 85 | 53 |
| src/backend/utils/cache/evtcache.c | 32 | 56 |
| src/include/commands/event_trigger.h | 1 | 1 |
| src/include/utils/evtcache.h | 3 | 8 |
| src/pl/plperl/expected/plperl_trigger.out | 8 | 6 |
| src/pl/plperl/sql/plperl_trigger.sql | 3 | 1 |
| src/pl/plpython/expected/plpython_trigger.out | 8 | 6 |
| src/pl/plpython/sql/plpython_trigger.sql | 3 | 1 |
| src/pl/tcl/expected/pltcl_setup.out | 8 | 6 |
| src/pl/tcl/sql/pltcl_setup.sql | 3 | 1 |
| src/test/regress/expected/event_triggers.out | 232 | 239 |
| src/test/regress/sql/event_triggers.sql | 9 | 7 |
diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml
index 52e9764..36f0d34 100644
--- a/doc/src/sgml/event-trigger.sgml
+++ b/doc/src/sgml/event-trigger.sgml
@@ -25,24 +25,25 @@
<title>Overview of Event Trigger Behavior</title>
<para>
- An event trigger fires whenever the event with which it is
- associated occurs in the database in which it is defined. Currently,
- the only supported event is <literal>command_start</>. Support for
+ An event trigger fires whenever the event with which it is associated
+ occurs in the database in which it is defined. Currently, the only
+ supported event is <literal>ddl_command_start</>. Support for
additional events may be added in future releases.
</para>
<para>
- The <literal>command_start</> event occurs just before the execution of
- many SQL commands, most of which can be broadly described as
- <link linkend="ddl">DDL</link>. There are a number of commands that,
+ The <literal>ddl_command_start</> event occurs just before the
+ execution of many SQL commands, most of which can be broadly described
+ as
+ <link linkend="ddl">DDL</link>. There are a number of commands that,
for various reasons, are specifically excluded from the event trigger
system:
<itemizedlist>
<listitem>
<para>
- The <literal>command_start</> event does not occur for commands that
- access or modify data within a particular table, such
+ The <literal>ddl_command_start</> event does not occur for commands
+ that access or modify data within a particular table, such
<xref linkend="sql-select">, <xref linkend="sql-insert">,
<xref linkend="sql-update">, <xref linkend="sql-delete">, and
<xref linkend="sql-truncate">. This also includes commands related
@@ -54,19 +55,21 @@
</listitem>
<listitem>
<para>
- The <literal>command_start</> event does not occur for commands that
- create, alter, or drop global objects. Unlike the event trigger, these
- objects are not part of the current database; they are accessible from
- all databases in the cluster, and are therefore unaffected by event
- triggers. Such objects include databases, tablespaces, and roles.
+ The <literal>ddl_command_start</> event does not occur for commands
+ that create, alter, or drop global objects. Unlike the event trigger,
+ these objects are not part of the current database; they are
+ accessible from all databases in the cluster, and are therefore
+ unaffected by event triggers. Such objects include databases,
+ tablespaces, and roles.
</para>
</listitem>
<listitem>
<para>
- The <literal>command_start</> event does not occur for commands where
- firing a trigger might result either result in system instability or
- interfere with the administrator's ability to regain control of the
- database. These include transaction control commands, such as
+ The <literal>ddl_command_start</> event does not occur for commands
+ where firing a trigger might result either result in system
+ instability or interfere with the administrator's ability to regain
+ control of the database. These include transaction control commands,
+ such as
<xref linkend="sql-begin"> or <xref linkend="sql-commit">; configuration
commands, such as <xref linkend="sql-set"> or <xref linkend="sql-show">;
and commands related to the event trigger mechanism itself, such as
@@ -97,7 +100,7 @@
<para>
A trigger definition can also specify a <literal>WHEN</literal>
- condition so that, for example, a <literal>command_start</literal>
+ condition so that, for example, a <literal>ddl_command_start</literal>
trigger can be fired only for particular commands which the user wishes
to intercept. A common use of such triggers is to restrict the range of
DDL operations which users may perform.
@@ -118,7 +121,7 @@
<thead>
<row>
<entry>command tag</entry>
- <entry><literal>command_start</literal></entry>
+ <entry><literal>ddl_command_start</literal></entry>
</row>
</thead>
<tbody>
diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index a21aaf2..4ce3278 100644
--- a/doc/src/sgml/plpgsql.sgml
+++ b/doc/src/sgml/plpgsql.sgml
@@ -4020,7 +4020,7 @@ BEGIN
END;
$$ LANGUAGE plpgsql;
-CREATE EVENT TRIGGER snitch ON command_start EXECUTE PROCEDURE snitch();
+CREATE EVENT TRIGGER snitch ON ddl_command_start EXECUTE PROCEDURE snitch();
</programlisting>
</example>
</sect2>
diff --git a/doc/src/sgml/ref/create_event_trigger.sgml b/doc/src/sgml/ref/create_event_trigger.sgml
index 3b3d474..a25c6b0 100644
--- a/doc/src/sgml/ref/create_event_trigger.sgml
+++ b/doc/src/sgml/ref/create_event_trigger.sgml
@@ -122,8 +122,7 @@ CREATE EVENT TRIGGER <replaceable class="PARAMETER">name</replaceable>
<title>Examples</title>
<para>
- Forbid the execution of any command supported by the event trigger
- mechanism:
+ Forbid the execution of any <link linkend="ddl">ddl</link> command:
<programlisting>
CREATE OR REPLACE FUNCTION abort_any_command()
@@ -135,7 +134,7 @@ BEGIN
END;
$$;
-CREATE EVENT TRIGGER abort_ddl ON command_start
+CREATE EVENT TRIGGER abort_ddl ON ddl_command_start
EXECUTE PROCEDURE abort_any_command();
</programlisting>
@@ -156,8 +155,8 @@ END;
$$;
CREATE EVENT TRIGGER check_style
- ON command_start
- WHEN tag IN (CREATE TABLE)
+ ON ddl_command_start
+ WHEN tag IN ('CREATE TABLE', 'CREATE TABLE AS', 'SELECT INTO')
EXECUTE PROCEDURE enforce_local_style();
</programlisting>
</para>
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 4e1a8c0..dcbd180 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -355,7 +355,7 @@ standard_ProcessUtility(Node *parsetree,
if (completionTag)
completionTag[0] = '\0';
- /* Event Trigger support for command_start */
+ /* Event Trigger support for ddl_command_start */
InitEventContext(&evt, parsetree);
switch (nodeTag(parsetree))
@@ -509,7 +509,8 @@ standard_ProcessUtility(Node *parsetree,
* relation and attribute manipulation
*/
case T_CreateSchemaStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_SCHEMA;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateSchemaCommand((CreateSchemaStmt *) parsetree,
queryString);
break;
@@ -523,7 +524,11 @@ standard_ProcessUtility(Node *parsetree,
CreateStmt *stmt = (CreateStmt *) parsetree;
/* possibly run event triggers */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ if (nodeTag(parsetree) == T_CreateStmt)
+ evt.objecttype = OBJECT_TABLE;
+ else
+ evt.objecttype = OBJECT_FOREIGN_TABLE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
/* Run parse analysis ... */
stmts = transformCreateStmt(stmt, queryString);
@@ -589,74 +594,81 @@ standard_ProcessUtility(Node *parsetree,
case T_CreateTableSpaceStmt:
PreventTransactionChain(isTopLevel, "CREATE TABLESPACE");
- ExecEventTriggers(&evt, EVT_CommandStart);
CreateTableSpace((CreateTableSpaceStmt *) parsetree);
break;
case T_DropTableSpaceStmt:
PreventTransactionChain(isTopLevel, "DROP TABLESPACE");
- ExecEventTriggers(&evt, EVT_CommandStart);
DropTableSpace((DropTableSpaceStmt *) parsetree);
break;
case T_AlterTableSpaceOptionsStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
AlterTableSpaceOptions((AlterTableSpaceOptionsStmt *) parsetree);
break;
case T_CreateExtensionStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_EXTENSION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateExtension((CreateExtensionStmt *) parsetree);
break;
case T_AlterExtensionStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_EXTENSION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
ExecAlterExtensionStmt((AlterExtensionStmt *) parsetree);
break;
case T_AlterExtensionContentsStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_EXTENSION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
ExecAlterExtensionContentsStmt((AlterExtensionContentsStmt *) parsetree);
break;
case T_CreateFdwStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_FDW;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateForeignDataWrapper((CreateFdwStmt *) parsetree);
break;
case T_AlterFdwStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_FDW;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterForeignDataWrapper((AlterFdwStmt *) parsetree);
break;
case T_CreateForeignServerStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_FOREIGN_SERVER;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateForeignServer((CreateForeignServerStmt *) parsetree);
break;
case T_AlterForeignServerStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_FOREIGN_SERVER;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterForeignServer((AlterForeignServerStmt *) parsetree);
break;
case T_CreateUserMappingStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ /* there's no OBJECT_ for user mappings */
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateUserMapping((CreateUserMappingStmt *) parsetree);
break;
case T_AlterUserMappingStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ /* there's no OBJECT_ for user mappings */
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterUserMapping((AlterUserMappingStmt *) parsetree);
break;
case T_DropUserMappingStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ /* there's no OBJECT_ for user mappings */
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
RemoveUserMapping((DropUserMappingStmt *) parsetree);
break;
case T_DropStmt:
evt.objecttype = ((DropStmt *) parsetree)->removeType;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
switch (((DropStmt *) parsetree)->removeType)
{
@@ -722,19 +734,19 @@ standard_ProcessUtility(Node *parsetree,
*/
case T_RenameStmt:
evt.objecttype = ((RenameStmt *) parsetree)->renameType;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
ExecRenameStmt((RenameStmt *) parsetree);
break;
case T_AlterObjectSchemaStmt:
evt.objecttype = ((AlterObjectSchemaStmt *) parsetree)->objectType;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
ExecAlterObjectSchemaStmt((AlterObjectSchemaStmt *) parsetree);
break;
case T_AlterOwnerStmt:
evt.objecttype = ((AlterOwnerStmt *) parsetree)->objectType;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
ExecAlterOwnerStmt((AlterOwnerStmt *) parsetree);
break;
@@ -746,8 +758,9 @@ standard_ProcessUtility(Node *parsetree,
ListCell *l;
LOCKMODE lockmode;
- /* run command_start event triggers, if any */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ /* run ddl_command_start event triggers, if any */
+ evt.objecttype = OBJECT_TABLE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
/*
* Figure out lock mode, and acquire lock. This also does
@@ -800,8 +813,9 @@ standard_ProcessUtility(Node *parsetree,
{
AlterDomainStmt *stmt = (AlterDomainStmt *) parsetree;
- /* run command_start event triggers, if any */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ /* run ddl_command_start event triggers, if any */
+ evt.objecttype = OBJECT_DOMAIN;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
/*
* Some or all of these functions are recursive to cover
@@ -868,7 +882,7 @@ standard_ProcessUtility(Node *parsetree,
DefineStmt *stmt = (DefineStmt *) parsetree;
evt.objecttype = stmt->kind;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
switch (stmt->kind)
{
@@ -916,18 +930,21 @@ standard_ProcessUtility(Node *parsetree,
{
CompositeTypeStmt *stmt = (CompositeTypeStmt *) parsetree;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TYPE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineCompositeType(stmt->typevar, stmt->coldeflist);
}
break;
case T_CreateEnumStmt: /* CREATE TYPE AS ENUM */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TYPE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineEnum((CreateEnumStmt *) parsetree);
break;
case T_CreateRangeStmt: /* CREATE TYPE AS RANGE */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TYPE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineRange((CreateRangeStmt *) parsetree);
break;
@@ -938,23 +955,27 @@ standard_ProcessUtility(Node *parsetree,
* with enum OID values getting into indexes and then having their
* defining pg_enum entries go away.
*/
+ evt.objecttype = OBJECT_TYPE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
PreventTransactionChain(isTopLevel, "ALTER TYPE ... ADD");
- ExecEventTriggers(&evt, EVT_CommandStart);
AlterEnum((AlterEnumStmt *) parsetree);
break;
case T_ViewStmt: /* CREATE VIEW */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_VIEW;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineView((ViewStmt *) parsetree, queryString);
break;
case T_CreateFunctionStmt: /* CREATE FUNCTION */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_FUNCTION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateFunction((CreateFunctionStmt *) parsetree, queryString);
break;
case T_AlterFunctionStmt: /* ALTER FUNCTION */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_FUNCTION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterFunction((AlterFunctionStmt *) parsetree);
break;
@@ -962,7 +983,8 @@ standard_ProcessUtility(Node *parsetree,
{
IndexStmt *stmt = (IndexStmt *) parsetree;
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_INDEX;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
if (stmt->concurrent)
PreventTransactionChain(isTopLevel,
@@ -998,17 +1020,20 @@ standard_ProcessUtility(Node *parsetree,
break;
case T_RuleStmt: /* CREATE RULE */
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_RULE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineRule((RuleStmt *) parsetree, queryString);
break;
case T_CreateSeqStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_SEQUENCE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineSequence((CreateSeqStmt *) parsetree);
break;
case T_AlterSeqStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_SEQUENCE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterSequence((AlterSeqStmt *) parsetree);
break;
@@ -1075,8 +1100,6 @@ standard_ProcessUtility(Node *parsetree,
{
LoadStmt *stmt = (LoadStmt *) parsetree;
- ExecEventTriggers(&evt, EVT_CommandStart);
-
closeAllVfds(); /* probably not necessary... */
/* Allowed names are restricted if you're not superuser */
load_file(stmt->filename, !superuser());
@@ -1085,14 +1108,12 @@ standard_ProcessUtility(Node *parsetree,
case T_ClusterStmt:
/* we choose to allow this during "read only" transactions */
- ExecEventTriggers(&evt, EVT_CommandStart);
PreventCommandDuringRecovery("CLUSTER");
cluster((ClusterStmt *) parsetree, isTopLevel);
break;
case T_VacuumStmt:
/* we choose to allow this during "read only" transactions */
- ExecEventTriggers(&evt, EVT_CommandStart);
PreventCommandDuringRecovery("VACUUM");
vacuum((VacuumStmt *) parsetree, InvalidOid, true, NULL, false,
isTopLevel);
@@ -1103,7 +1124,10 @@ standard_ProcessUtility(Node *parsetree,
break;
case T_CreateTableAsStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TABLE;
+ if (((CreateTableAsStmt *) parsetree)->is_select_into)
+ evt.operation = "CREATE";
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
ExecCreateTableAs((CreateTableAsStmt *) parsetree,
queryString, params, completionTag);
break;
@@ -1127,7 +1151,8 @@ standard_ProcessUtility(Node *parsetree,
break;
case T_CreateTrigStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TRIGGER;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
(void) CreateTrigger((CreateTrigStmt *) parsetree, queryString,
InvalidOid, InvalidOid, false);
break;
@@ -1141,7 +1166,8 @@ standard_ProcessUtility(Node *parsetree,
break;
case T_CreatePLangStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_LANGUAGE;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateProceduralLanguage((CreatePLangStmt *) parsetree);
break;
@@ -1149,7 +1175,8 @@ standard_ProcessUtility(Node *parsetree,
* ******************************** DOMAIN statements ****
*/
case T_CreateDomainStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_DOMAIN;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineDomain((CreateDomainStmt *) parsetree);
break;
@@ -1215,8 +1242,6 @@ standard_ProcessUtility(Node *parsetree,
{
ReindexStmt *stmt = (ReindexStmt *) parsetree;
- ExecEventTriggers(&evt, EVT_CommandStart);
-
/* we choose to allow this during "read only" transactions */
PreventCommandDuringRecovery("REINDEX");
switch (stmt->kind)
@@ -1250,37 +1275,44 @@ standard_ProcessUtility(Node *parsetree,
break;
case T_CreateConversionStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_CONVERSION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateConversionCommand((CreateConversionStmt *) parsetree);
break;
case T_CreateCastStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_CAST;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
CreateCast((CreateCastStmt *) parsetree);
break;
case T_CreateOpClassStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_OPCLASS;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineOpClass((CreateOpClassStmt *) parsetree);
break;
case T_CreateOpFamilyStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_OPFAMILY;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
DefineOpFamily((CreateOpFamilyStmt *) parsetree);
break;
case T_AlterOpFamilyStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_OPFAMILY;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterOpFamily((AlterOpFamilyStmt *) parsetree);
break;
case T_AlterTSDictionaryStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TSDICTIONARY;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterTSDictionary((AlterTSDictionaryStmt *) parsetree);
break;
case T_AlterTSConfigurationStmt:
- ExecEventTriggers(&evt, EVT_CommandStart);
+ evt.objecttype = OBJECT_TSCONFIGURATION;
+ ExecEventTriggers(&evt, EVT_DDLCommandStart);
AlterTSConfiguration((AlterTSConfigurationStmt *) parsetree);
break;
diff --git a/src/backend/utils/cache/evtcache.c b/src/backend/utils/cache/evtcache.c
index bae9c35..df517e8 100644
--- a/src/backend/utils/cache/evtcache.c
+++ b/src/backend/utils/cache/evtcache.c
@@ -102,7 +102,7 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateCast,
"CREATE CAST",
T_CreateCastStmt,
- -1
+ OBJECT_CAST
},
{
ETC_CreateCollation,
@@ -114,49 +114,49 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateConversion,
"CREATE CONVERSION",
T_CreateConversionStmt,
- -1
+ OBJECT_CONVERSION
},
{
ETC_CreateDomain,
"CREATE DOMAIN",
T_CreateDomainStmt,
- -1
+ OBJECT_DOMAIN
},
{
ETC_CreateExtension,
"CREATE EXTENSION",
T_CreateExtensionStmt,
- -1
+ OBJECT_EXTENSION
},
{
ETC_CreateForeignDataWrapper,
"CREATE FOREIGN DATA WRAPPER",
T_CreateFdwStmt,
- -1
+ OBJECT_FDW
},
{
ETC_CreateForeignTable,
"CREATE FOREIGN TABLE",
T_CreateForeignTableStmt,
- -1
+ OBJECT_FOREIGN_TABLE
},
{
ETC_CreateFunction,
"CREATE FUNCTION",
T_CreateFunctionStmt,
- -1
+ OBJECT_FUNCTION
},
{
ETC_CreateIndex,
"CREATE INDEX",
T_IndexStmt,
- -1
+ OBJECT_INDEX
},
{
ETC_CreateLanguage,
"CREATE LANGUAGE",
T_CreatePLangStmt,
- -1
+ OBJECT_LANGUAGE
},
{
ETC_CreateOperator,
@@ -168,13 +168,13 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateOperatorClass,
"CREATE OPERATOR CLASS",
T_CreateOpClassStmt,
- -1
+ OBJECT_OPCLASS
},
{
ETC_CreateOperatorFamily,
"CREATE OPERATOR FAMILY",
T_CreateOpFamilyStmt,
- -1
+ OBJECT_OPFAMILY
},
{
ETC_CreateRule,
@@ -186,37 +186,37 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateSchema,
"CREATE SCHEMA",
T_CreateSchemaStmt,
- -1
+ OBJECT_SCHEMA
},
{
ETC_CreateSequence,
"CREATE SEQUENCE",
T_CreateSeqStmt,
- -1
+ OBJECT_SEQUENCE
},
{
ETC_CreateServer,
"CREATE SERVER",
T_CreateForeignServerStmt,
- -1
+ OBJECT_FOREIGN_SERVER
},
{
ETC_CreateTable,
"CREATE TABLE",
T_CreateStmt,
- -1
+ OBJECT_TABLE
},
{
ETC_CreateTableAs,
"CREATE TABLE AS",
T_CreateTableAsStmt,
- -1
+ OBJECT_TABLE
},
{
ETC_SelectInto,
"SELECT INTO",
T_CreateTableAsStmt,
- -1
+ OBJECT_TABLE
},
{
ETC_CreateTextSearchParser,
@@ -246,7 +246,7 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateTrigger,
"CREATE TRIGGER",
T_CreateTrigStmt,
- -1
+ OBJECT_TRIGGER
},
{
ETC_CreateType,
@@ -258,19 +258,19 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateType,
"CREATE TYPE",
T_CompositeTypeStmt,
- -1
+ OBJECT_TYPE
},
{
ETC_CreateType,
"CREATE TYPE",
T_CreateEnumStmt,
- -1
+ OBJECT_TYPE
},
{
ETC_CreateType,
"CREATE TYPE",
T_CreateRangeStmt,
- -1
+ OBJECT_TYPE
},
{
ETC_CreateUserMapping,
@@ -282,13 +282,13 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_CreateView,
"CREATE VIEW",
T_ViewStmt,
- -1
+ OBJECT_VIEW
},
{
ETC_AlterTable,
"ALTER TABLE",
T_AlterTableStmt,
- -1
+ OBJECT_TABLE
},
{
ETC_DropAggregate,
@@ -453,34 +453,10 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
OBJECT_VIEW
},
{
- ETC_Vacuum,
- "VACUUM",
- T_VacuumStmt,
- -1
- },
- {
- ETC_Cluster,
- "CLUSTER",
- T_ClusterStmt,
- -1
- },
- {
- ETC_Load,
- "LOAD",
- T_LoadStmt,
- -1
- },
- {
- ETC_Reindex,
- "REINDEX",
- T_ReindexStmt,
- -1
- },
- {
ETC_AlterSequence,
"ALTER SEQUENCE",
T_AlterSeqStmt,
- -1
+ OBJECT_SEQUENCE
},
{
ETC_AlterUserMapping,
@@ -492,13 +468,13 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_AlterFunction,
"ALTER FUNCTION",
T_AlterFunctionStmt,
- -1
+ OBJECT_FUNCTION
},
{
ETC_AlterDomain,
"ALTER DOMAIN",
T_AlterDomainStmt,
- -1
+ OBJECT_DOMAIN
},
/* ALTER <OBJECT> name RENAME TO */
{
@@ -818,7 +794,7 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_AlterType,
"ALTER TYPE",
T_AlterEnumStmt,
- -1
+ OBJECT_TYPE
},
{
ETC_AlterType,
@@ -842,7 +818,7 @@ static EventTriggerCommandTagsType EventTriggerCommandTags[] =
ETC_AlterTextSearchDictionary,
"ALTER TEXT SEARCH DICTIONARY",
T_AlterTSDictionaryStmt,
- -1
+ OBJECT_TSDICTIONARY
},
/* ALTER <OBJECT> name OWNER TO */
{
@@ -1319,8 +1295,8 @@ event_to_string(TrigEvent event)
{
switch (event)
{
- case EVT_CommandStart:
- return "command_start";
+ case EVT_DDLCommandStart:
+ return "ddl_command_start";
}
return NULL;
}
@@ -1328,8 +1304,8 @@ event_to_string(TrigEvent event)
TrigEvent
parse_event_name(char *event)
{
- if (pg_strcasecmp(event, "command_start") == 0)
- return EVT_CommandStart;
+ if (pg_strcasecmp(event, "ddl_command_start") == 0)
+ return EVT_DDLCommandStart;
else
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
diff --git a/src/include/commands/event_trigger.h b/src/include/commands/event_trigger.h
index 13be6bc..9772577 100644
--- a/src/include/commands/event_trigger.h
+++ b/src/include/commands/event_trigger.h
@@ -51,7 +51,7 @@ typedef struct EventContextData *EventContext;
typedef struct EventTriggerData
{
NodeTag type;
- char *event; /* command_start, etc */
+ char *event; /* ddl_command_start, etc */
char *toplevel; /* TopLevel Command Tag */
char *tag; /* Command Tag */
char *operation; /* CREATE / ALTER / DROP, or NULL */
diff --git a/src/include/utils/evtcache.h b/src/include/utils/evtcache.h
index ef84b90..397cd55 100644
--- a/src/include/utils/evtcache.h
+++ b/src/include/utils/evtcache.h
@@ -20,12 +20,12 @@
* Times at which an event trigger can be fired. These are the
* possible values for pg_event_trigger.evtevent.
*
- * As of now we only implement the command_start firing point, we intend on
+ * As of now we only implement the ddl_command_start firing point, we intend on
* adding more firing points later.
*/
typedef enum TrigEvent
{
- EVT_CommandStart = 1,
+ EVT_DDLCommandStart = 1,
} TrigEvent;
/*
@@ -70,12 +70,6 @@ typedef enum TrigEventCommand
ETC_AlterUserMapping,
ETC_AlterView,
- ETC_Cluster = 300,
- ETC_Load,
- ETC_Reindex,
- ETC_SelectInto,
- ETC_Vacuum,
-
ETC_CreateAggregate = 400,
ETC_CreateCast,
ETC_CreateCollation,
@@ -96,6 +90,7 @@ typedef enum TrigEventCommand
ETC_CreateServer,
ETC_CreateTable,
ETC_CreateTableAs,
+ ETC_SelectInto,
ETC_CreateTextSearchParser,
ETC_CreateTextSearchConfiguration,
ETC_CreateTextSearchDictionary,
diff --git a/src/pl/plperl/expected/plperl_trigger.out b/src/pl/plperl/expected/plperl_trigger.out
index 2d1ed56..6f48bef 100644
--- a/src/pl/plperl/expected/plperl_trigger.out
+++ b/src/pl/plperl/expected/plperl_trigger.out
@@ -317,20 +317,22 @@ create or replace function perlsnitch() returns event_trigger language plperl as
. $_TD->{schemaname} . " "
. $_TD->{objectname});
$$;
-create event trigger perl_snitch on command_start execute procedure perlsnitch();
+create event trigger perl_snitch
+ on ddl_command_start
+ execute procedure perlsnitch();
create or replace function foobar() returns int language sql as $$select 1;$$;
-NOTICE: perlsnitch: command_start CREATE FUNCTION NULL NULL
+NOTICE: perlsnitch: ddl_command_start CREATE FUNCTION NULL NULL
CONTEXT: PL/Perl function "perlsnitch"
alter function foobar() cost 77;
-NOTICE: perlsnitch: command_start ALTER FUNCTION NULL NULL
+NOTICE: perlsnitch: ddl_command_start ALTER FUNCTION NULL NULL
CONTEXT: PL/Perl function "perlsnitch"
drop function foobar();
-NOTICE: perlsnitch: command_start DROP FUNCTION NULL NULL
+NOTICE: perlsnitch: ddl_command_start DROP FUNCTION NULL NULL
CONTEXT: PL/Perl function "perlsnitch"
create table foo();
-NOTICE: perlsnitch: command_start CREATE TABLE NULL NULL
+NOTICE: perlsnitch: ddl_command_start CREATE TABLE NULL NULL
CONTEXT: PL/Perl function "perlsnitch"
drop table foo;
-NOTICE: perlsnitch: command_start DROP TABLE NULL NULL
+NOTICE: perlsnitch: ddl_command_start DROP TABLE NULL NULL
CONTEXT: PL/Perl function "perlsnitch"
drop event trigger perl_snitch;
diff --git a/src/pl/plperl/sql/plperl_trigger.sql b/src/pl/plperl/sql/plperl_trigger.sql
index 75a9f11..9df8a77 100644
--- a/src/pl/plperl/sql/plperl_trigger.sql
+++ b/src/pl/plperl/sql/plperl_trigger.sql
@@ -179,7 +179,9 @@ create or replace function perlsnitch() returns event_trigger language plperl as
. $_TD->{objectname});
$$;
-create event trigger perl_snitch on command_start execute procedure perlsnitch();
+create event trigger perl_snitch
+ on ddl_command_start
+ execute procedure perlsnitch();
create or replace function foobar() returns int language sql as $$select 1;$$;
alter function foobar() cost 77;
diff --git a/src/pl/plpython/expected/plpython_trigger.out b/src/pl/plpython/expected/plpython_trigger.out
index 5294dc7..5eb92ee 100644
--- a/src/pl/plpython/expected/plpython_trigger.out
+++ b/src/pl/plpython/expected/plpython_trigger.out
@@ -615,20 +615,22 @@ create or replace function pysnitch() returns event_trigger language plpythonu a
plpy.notice(" pysnitch: %s %s %s.%s" %
(TD["event"], TD["tag"], TD["schemaname"], TD["objectname"]));
$$;
-create event trigger py_snitch on command_start execute procedure pysnitch();
+create event trigger py_snitch
+ on ddl_command_start
+ execute procedure pysnitch();
create or replace function foobar() returns int language sql as $$select 1;$$;
-NOTICE: pysnitch: command_start CREATE FUNCTION None.None
+NOTICE: pysnitch: ddl_command_start CREATE FUNCTION None.None
CONTEXT: PL/Python function "pysnitch"
alter function foobar() cost 77;
-NOTICE: pysnitch: command_start ALTER FUNCTION None.None
+NOTICE: pysnitch: ddl_command_start ALTER FUNCTION None.None
CONTEXT: PL/Python function "pysnitch"
drop function foobar();
-NOTICE: pysnitch: command_start DROP FUNCTION None.None
+NOTICE: pysnitch: ddl_command_start DROP FUNCTION None.None
CONTEXT: PL/Python function "pysnitch"
create table foo();
-NOTICE: pysnitch: command_start CREATE TABLE None.None
+NOTICE: pysnitch: ddl_command_start CREATE TABLE None.None
CONTEXT: PL/Python function "pysnitch"
drop table foo;
-NOTICE: pysnitch: command_start DROP TABLE None.None
+NOTICE: pysnitch: ddl_command_start DROP TABLE None.None
CONTEXT: PL/Python function "pysnitch"
drop event trigger py_snitch;
diff --git a/src/pl/plpython/sql/plpython_trigger.sql b/src/pl/plpython/sql/plpython_trigger.sql
index aaa1731..dd2ac11 100644
--- a/src/pl/plpython/sql/plpython_trigger.sql
+++ b/src/pl/plpython/sql/plpython_trigger.sql
@@ -394,7 +394,9 @@ create or replace function pysnitch() returns event_trigger language plpythonu a
(TD["event"], TD["tag"], TD["schemaname"], TD["objectname"]));
$$;
-create event trigger py_snitch on command_start execute procedure pysnitch();
+create event trigger py_snitch
+ on ddl_command_start
+ execute procedure pysnitch();
create or replace function foobar() returns int language sql as $$select 1;$$;
alter function foobar() cost 77;
diff --git a/src/pl/tcl/expected/pltcl_setup.out b/src/pl/tcl/expected/pltcl_setup.out
index cfe124c..b28cb8c 100644
--- a/src/pl/tcl/expected/pltcl_setup.out
+++ b/src/pl/tcl/expected/pltcl_setup.out
@@ -523,15 +523,17 @@ select tcl_date_week(2001,10,24);
create or replace function tclsnitch() returns event_trigger language pltcl as $$
elog NOTICE " tclsnitch: $TG_event $TG_tag $TG_schemaname $TG_objectname"
$$;
-create event trigger tcl_snitch on command_start execute procedure tclsnitch();
+create event trigger tcl_snitch
+ on ddl_command_start
+ execute procedure tclsnitch();
create or replace function foobar() returns int language sql as $$select 1;$$;
-NOTICE: tclsnitch: command_start CREATE FUNCTION
+NOTICE: tclsnitch: ddl_command_start CREATE FUNCTION
alter function foobar() cost 77;
-NOTICE: tclsnitch: command_start ALTER FUNCTION
+NOTICE: tclsnitch: ddl_command_start ALTER FUNCTION
drop function foobar();
-NOTICE: tclsnitch: command_start DROP FUNCTION
+NOTICE: tclsnitch: ddl_command_start DROP FUNCTION
create table foo();
-NOTICE: tclsnitch: command_start CREATE TABLE
+NOTICE: tclsnitch: ddl_command_start CREATE TABLE
drop table foo;
-NOTICE: tclsnitch: command_start DROP TABLE
+NOTICE: tclsnitch: ddl_command_start DROP TABLE
drop event trigger tcl_snitch;
diff --git a/src/pl/tcl/sql/pltcl_setup.sql b/src/pl/tcl/sql/pltcl_setup.sql
index 2cb4839..06aef02 100644
--- a/src/pl/tcl/sql/pltcl_setup.sql
+++ b/src/pl/tcl/sql/pltcl_setup.sql
@@ -565,7 +565,9 @@ create or replace function tclsnitch() returns event_trigger language pltcl as $
elog NOTICE " tclsnitch: $TG_event $TG_tag $TG_schemaname $TG_objectname"
$$;
-create event trigger tcl_snitch on command_start execute procedure tclsnitch();
+create event trigger tcl_snitch
+ on ddl_command_start
+ execute procedure tclsnitch();
create or replace function foobar() returns int language sql as $$select 1;$$;
alter function foobar() cost 77;
diff --git a/src/test/regress/expected/event_triggers.out b/src/test/regress/expected/event_triggers.out
index 687d1c2..443736c 100644
--- a/src/test/regress/expected/event_triggers.out
+++ b/src/test/regress/expected/event_triggers.out
@@ -10,9 +10,11 @@ begin
raise notice 'snitch: % % [% - %]', tg_event, tg_tag, tg_operation, tg_objecttype;
end;
$$;
-create event trigger any_t on command_start
+create event trigger any_t
+ on ddl_command_start
execute procedure snitch();
-create event trigger foo_t on command_start
+create event trigger foo_t
+ on ddl_command_start
when tag in ('alter collation',
'alter conversion',
'alter domain',
@@ -51,19 +53,17 @@ create event trigger foo_t on command_start
'drop text search parser',
'drop text search template',
'drop trigger',
- 'reindex',
- 'select into',
- 'vacuum')
+ 'select into')
execute procedure snitch();
alter event trigger foo_t disable;
alter event trigger foo_t enable;
alter event trigger foo_t rename to snitch;
create schema cmd;
-NOTICE: snitch: command_start CREATE SCHEMA [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE SCHEMA [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE SCHEMA [CREATE - SCHEMA]
+NOTICE: snitch: ddl_command_start CREATE SCHEMA [CREATE - SCHEMA]
create schema cmd2;
-NOTICE: snitch: command_start CREATE SCHEMA [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE SCHEMA [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE SCHEMA [CREATE - SCHEMA]
+NOTICE: snitch: ddl_command_start CREATE SCHEMA [CREATE - SCHEMA]
create role regression_bob;
alter event trigger snitch owner to regression_bob;
ERROR: permission denied to change owner of event trigger "snitch"
@@ -71,204 +71,195 @@ HINT: The owner of an event trigger must be a superuser.
alter role regression_bob superuser;
alter event trigger snitch owner to regression_bob;
create table cmd.foo(id bigserial primary key);
-NOTICE: snitch: command_start CREATE TABLE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TABLE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE SEQUENCE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE SEQUENCE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE INDEX [CREATE - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TABLE [CREATE - TABLE]
+NOTICE: snitch: ddl_command_start CREATE TABLE [CREATE - TABLE]
+NOTICE: snitch: ddl_command_start CREATE SEQUENCE [CREATE - SEQUENCE]
+NOTICE: snitch: ddl_command_start CREATE SEQUENCE [CREATE - SEQUENCE]
+NOTICE: snitch: ddl_command_start CREATE INDEX [CREATE - INDEX]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
create view cmd.v as select * from cmd.foo;
-NOTICE: snitch: command_start CREATE VIEW [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE VIEW [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE VIEW [CREATE - VIEW]
+NOTICE: snitch: ddl_command_start CREATE VIEW [CREATE - VIEW]
alter table cmd.foo add column t text;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
create table cmd.bar as select 1;
-NOTICE: snitch: command_start CREATE TABLE AS [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TABLE AS [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TABLE AS [CREATE - TABLE]
+NOTICE: snitch: ddl_command_start CREATE TABLE AS [CREATE - TABLE]
drop table cmd.bar;
-NOTICE: snitch: command_start DROP TABLE [DROP - TABLE]
-NOTICE: snitch: command_start DROP TABLE [DROP - TABLE]
+NOTICE: snitch: ddl_command_start DROP TABLE [DROP - TABLE]
+NOTICE: snitch: ddl_command_start DROP TABLE [DROP - TABLE]
select 1 into cmd.bar;
-NOTICE: snitch: command_start SELECT INTO [<NULL> - <NULL>]
-NOTICE: snitch: command_start SELECT INTO [<NULL> - <NULL>]
+NOTICE: snitch: ddl_command_start SELECT INTO [CREATE - TABLE]
+NOTICE: snitch: ddl_command_start SELECT INTO [CREATE - TABLE]
drop table cmd.bar;
-NOTICE: snitch: command_start DROP TABLE [DROP - TABLE]
-NOTICE: snitch: command_start DROP TABLE [DROP - TABLE]
+NOTICE: snitch: ddl_command_start DROP TABLE [DROP - TABLE]
+NOTICE: snitch: ddl_command_start DROP TABLE [DROP - TABLE]
create table test9 (id int, stuff text);
-NOTICE: snitch: command_start CREATE TABLE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TABLE [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TABLE [CREATE - TABLE]
+NOTICE: snitch: ddl_command_start CREATE TABLE [CREATE - TABLE]
alter table test9 rename to test;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - TABLE]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table test set schema cmd;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - TABLE]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test rename column stuff to things;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - COLUMN]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - COLUMN]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - COLUMN]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - COLUMN]
alter table cmd.test add column alpha text;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha set data type varchar(300);
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha set default 'test';
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha drop default;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha set statistics 78;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha set storage plain;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha set not null;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha drop not null;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha set (n_distinct = -0.78);
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test alter column alpha reset (n_distinct);
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test drop column alpha;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test add check (id > 2) not valid;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test add check (id < 800000);
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test set without cluster;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test set with oids;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
alter table cmd.test set without oids;
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TABLE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TABLE [ALTER - TABLE]
create sequence test_seq_;
-NOTICE: snitch: command_start CREATE SEQUENCE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE SEQUENCE [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE SEQUENCE [CREATE - SEQUENCE]
+NOTICE: snitch: ddl_command_start CREATE SEQUENCE [CREATE - SEQUENCE]
alter sequence test_seq_ owner to regression_bob;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - TABLE]
alter sequence test_seq_ rename to test_seq;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - SEQUENCE]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence test_seq set schema cmd;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - SEQUENCE]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq start with 3;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq restart with 4;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq minvalue 3;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq no minvalue;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq maxvalue 900000;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq no maxvalue;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq cache 876;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq cycle;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
alter sequence cmd.test_seq no cycle;
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER SEQUENCE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
+NOTICE: snitch: ddl_command_start ALTER SEQUENCE [ALTER - SEQUENCE]
create view view_test as select id, things from cmd.test;
-NOTICE: snitch: command_start CREATE VIEW [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE VIEW [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE VIEW [CREATE - VIEW]
+NOTICE: snitch: ddl_command_start CREATE VIEW [CREATE - VIEW]
alter view view_test owner to regression_bob;
-NOTICE: snitch: command_start ALTER VIEW [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER VIEW [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - TABLE]
alter view view_test rename to view_test2;
-NOTICE: snitch: command_start ALTER VIEW [ALTER - VIEW]
-NOTICE: snitch: command_start ALTER VIEW [ALTER - VIEW]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - VIEW]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - VIEW]
alter view view_test2 set schema cmd;
-NOTICE: snitch: command_start ALTER VIEW [ALTER - VIEW]
-NOTICE: snitch: command_start ALTER VIEW [ALTER - VIEW]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - VIEW]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - VIEW]
alter view cmd.view_test2 alter column id set default 9;
-NOTICE: snitch: command_start ALTER VIEW [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER VIEW [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - TABLE]
alter view cmd.view_test2 alter column id drop default;
-NOTICE: snitch: command_start ALTER VIEW [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER VIEW [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER VIEW [ALTER - TABLE]
cluster cmd.foo using foo_pkey;
-NOTICE: snitch: command_start CLUSTER [<NULL> - <NULL>]
vacuum cmd.foo;
-NOTICE: snitch: command_start VACUUM [<NULL> - <NULL>]
-NOTICE: snitch: command_start VACUUM [<NULL> - <NULL>]
vacuum;
-NOTICE: snitch: command_start VACUUM [<NULL> - <NULL>]
-NOTICE: snitch: command_start VACUUM [<NULL> - <NULL>]
reindex table cmd.foo;
-NOTICE: snitch: command_start REINDEX [<NULL> - <NULL>]
-NOTICE: snitch: command_start REINDEX [<NULL> - <NULL>]
set session_replication_role to replica;
create table cmd.bar();
-NOTICE: snitch: command_start CREATE TABLE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TABLE [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TABLE [CREATE - TABLE]
+NOTICE: snitch: ddl_command_start CREATE TABLE [CREATE - TABLE]
reset session_replication_role;
create index idx_foo on cmd.foo(t);
-NOTICE: snitch: command_start CREATE INDEX [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE INDEX [CREATE - INDEX]
reindex index cmd.idx_foo;
-NOTICE: snitch: command_start REINDEX [<NULL> - <NULL>]
-NOTICE: snitch: command_start REINDEX [<NULL> - <NULL>]
drop index cmd.idx_foo;
-NOTICE: snitch: command_start DROP INDEX [DROP - INDEX]
+NOTICE: snitch: ddl_command_start DROP INDEX [DROP - INDEX]
create function fun(int) returns text language sql
as $$ select t from cmd.foo where id = $1; $$;
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
alter function fun(int) strict;
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
alter function fun(int) rename to notfun;
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - FUNCTION]
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
alter function notfun(int) set schema cmd;
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - FUNCTION]
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
alter function cmd.notfun(int) owner to regression_bob;
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - FUNCTION]
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
alter function cmd.notfun(int) cost 77;
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER FUNCTION [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
+NOTICE: snitch: ddl_command_start ALTER FUNCTION [ALTER - FUNCTION]
drop function cmd.notfun(int);
-NOTICE: snitch: command_start DROP FUNCTION [DROP - FUNCTION]
+NOTICE: snitch: ddl_command_start DROP FUNCTION [DROP - FUNCTION]
create function cmd.plus1(int) returns bigint language sql
as $$ select $1::bigint + 1; $$;
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
create operator cmd.+!(procedure = cmd.plus1, leftarg = int);
-NOTICE: snitch: command_start CREATE OPERATOR [CREATE - OPERATOR]
-NOTICE: snitch: command_start CREATE OPERATOR [CREATE - OPERATOR]
+NOTICE: snitch: ddl_command_start CREATE OPERATOR [CREATE - OPERATOR]
+NOTICE: snitch: ddl_command_start CREATE OPERATOR [CREATE - OPERATOR]
alter operator cmd.+!(int, NONE) set schema public;
-NOTICE: snitch: command_start ALTER OPERATOR [ALTER - OPERATOR]
-NOTICE: snitch: command_start ALTER OPERATOR [ALTER - OPERATOR]
+NOTICE: snitch: ddl_command_start ALTER OPERATOR [ALTER - OPERATOR]
+NOTICE: snitch: ddl_command_start ALTER OPERATOR [ALTER - OPERATOR]
drop operator public.+!(int, NONE);
-NOTICE: snitch: command_start DROP OPERATOR [DROP - OPERATOR]
+NOTICE: snitch: ddl_command_start DROP OPERATOR [DROP - OPERATOR]
create aggregate cmd.avg (float8)
(
sfunc = float8_accum,
@@ -276,130 +267,130 @@ create aggregate cmd.avg (float8)
finalfunc = float8_avg,
initcond = '{0,0,0}'
);
-NOTICE: snitch: command_start CREATE AGGREGATE [CREATE - AGGREGATE]
-NOTICE: snitch: command_start CREATE AGGREGATE [CREATE - AGGREGATE]
+NOTICE: snitch: ddl_command_start CREATE AGGREGATE [CREATE - AGGREGATE]
+NOTICE: snitch: ddl_command_start CREATE AGGREGATE [CREATE - AGGREGATE]
alter aggregate cmd.avg(float8) set schema public;
-NOTICE: snitch: command_start ALTER AGGREGATE [ALTER - AGGREGATE]
+NOTICE: snitch: ddl_command_start ALTER AGGREGATE [ALTER - AGGREGATE]
drop aggregate public.avg(float8);
-NOTICE: snitch: command_start DROP AGGREGATE [DROP - AGGREGATE]
-NOTICE: snitch: command_start DROP AGGREGATE [DROP - AGGREGATE]
+NOTICE: snitch: ddl_command_start DROP AGGREGATE [DROP - AGGREGATE]
+NOTICE: snitch: ddl_command_start DROP AGGREGATE [DROP - AGGREGATE]
create collation cmd.french (LOCALE = 'fr_FR');
-NOTICE: snitch: command_start CREATE COLLATION [CREATE - COLLATION]
-NOTICE: snitch: command_start CREATE COLLATION [CREATE - COLLATION]
+NOTICE: snitch: ddl_command_start CREATE COLLATION [CREATE - COLLATION]
+NOTICE: snitch: ddl_command_start CREATE COLLATION [CREATE - COLLATION]
alter collation cmd.french rename to francais;
-NOTICE: snitch: command_start ALTER COLLATION [ALTER - COLLATION]
-NOTICE: snitch: command_start ALTER COLLATION [ALTER - COLLATION]
+NOTICE: snitch: ddl_command_start ALTER COLLATION [ALTER - COLLATION]
+NOTICE: snitch: ddl_command_start ALTER COLLATION [ALTER - COLLATION]
create type cmd.compfoo AS (f1 int, f2 text);
-NOTICE: snitch: command_start CREATE TYPE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TYPE [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TYPE [CREATE - TYPE]
+NOTICE: snitch: ddl_command_start CREATE TYPE [CREATE - TYPE]
alter type cmd.compfoo add attribute f3 text;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
create type cmd.type_test AS (a integer, b integer, c text);
-NOTICE: snitch: command_start CREATE TYPE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TYPE [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TYPE [CREATE - TYPE]
+NOTICE: snitch: ddl_command_start CREATE TYPE [CREATE - TYPE]
alter type cmd.type_test owner to regression_bob;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - TYPE]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
alter type cmd.type_test rename to type_test2;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - TYPE]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
alter type cmd.type_test2 set schema public;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - TYPE]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
alter type public.type_test2 rename attribute a to z;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - ATTRIBUTE]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - ATTRIBUTE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - ATTRIBUTE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - ATTRIBUTE]
alter type public.type_test2 add attribute alpha text;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
alter type public.type_test2 alter attribute alpha set data type char(90);
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
alter type public.type_test2 drop attribute alpha;
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TABLE]
drop type cmd.compfoo;
-NOTICE: snitch: command_start DROP TYPE [DROP - TYPE]
+NOTICE: snitch: ddl_command_start DROP TYPE [DROP - TYPE]
drop type public.type_test2;
-NOTICE: snitch: command_start DROP TYPE [DROP - TYPE]
+NOTICE: snitch: ddl_command_start DROP TYPE [DROP - TYPE]
create type cmd.bug_status as enum ('new', 'open', 'closed');
-NOTICE: snitch: command_start CREATE TYPE [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TYPE [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TYPE [CREATE - TYPE]
+NOTICE: snitch: ddl_command_start CREATE TYPE [CREATE - TYPE]
alter type cmd.bug_status add value 'wontfix';
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER TYPE [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
+NOTICE: snitch: ddl_command_start ALTER TYPE [ALTER - TYPE]
create domain cmd.us_postal_code as text check(value ~ '^\d{5}$' or value ~ '^\d{5}-\d{4}$');
-NOTICE: snitch: command_start CREATE DOMAIN [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE DOMAIN [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE DOMAIN [CREATE - DOMAIN]
+NOTICE: snitch: ddl_command_start CREATE DOMAIN [CREATE - DOMAIN]
alter domain cmd.us_postal_code set not null;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code set default 90210;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code drop default;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code drop not null;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code add constraint dummy_constraint check (value ~ '^\d{8}$');
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code drop constraint dummy_constraint;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code owner to regression_bob;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - DOMAIN]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
alter domain cmd.us_postal_code set schema cmd2;
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - DOMAIN]
-NOTICE: snitch: command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
+NOTICE: snitch: ddl_command_start ALTER DOMAIN [ALTER - DOMAIN]
drop domain cmd2.us_postal_code;
-NOTICE: snitch: command_start DROP DOMAIN [DROP - DOMAIN]
-NOTICE: snitch: command_start DROP DOMAIN [DROP - DOMAIN]
+NOTICE: snitch: ddl_command_start DROP DOMAIN [DROP - DOMAIN]
+NOTICE: snitch: ddl_command_start DROP DOMAIN [DROP - DOMAIN]
create function cmd.trigfunc() returns trigger language plpgsql as
$$ begin raise notice 'trigfunc'; end;$$;
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
create trigger footg before update on cmd.foo for each row execute procedure cmd.trigfunc();
-NOTICE: snitch: command_start CREATE TRIGGER [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE TRIGGER [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE TRIGGER [CREATE - TRIGGER]
+NOTICE: snitch: ddl_command_start CREATE TRIGGER [CREATE - TRIGGER]
alter trigger footg on cmd.foo rename to foo_trigger;
-NOTICE: snitch: command_start ALTER TRIGGER [ALTER - TRIGGER]
-NOTICE: snitch: command_start ALTER TRIGGER [ALTER - TRIGGER]
+NOTICE: snitch: ddl_command_start ALTER TRIGGER [ALTER - TRIGGER]
+NOTICE: snitch: ddl_command_start ALTER TRIGGER [ALTER - TRIGGER]
drop trigger foo_trigger on cmd.foo;
-NOTICE: snitch: command_start DROP TRIGGER [DROP - TRIGGER]
-NOTICE: snitch: command_start DROP TRIGGER [DROP - TRIGGER]
+NOTICE: snitch: ddl_command_start DROP TRIGGER [DROP - TRIGGER]
+NOTICE: snitch: ddl_command_start DROP TRIGGER [DROP - TRIGGER]
create conversion test for 'utf8' to 'sjis' from utf8_to_sjis;
-NOTICE: snitch: command_start CREATE CONVERSION [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE CONVERSION [CREATE - CONVERSION]
create default conversion test2 for 'utf8' to 'sjis' from utf8_to_sjis;
-NOTICE: snitch: command_start CREATE CONVERSION [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE CONVERSION [CREATE - CONVERSION]
alter conversion test2 rename to test3;
-NOTICE: snitch: command_start ALTER CONVERSION [ALTER - CONVERSION]
-NOTICE: snitch: command_start ALTER CONVERSION [ALTER - CONVERSION]
+NOTICE: snitch: ddl_command_start ALTER CONVERSION [ALTER - CONVERSION]
+NOTICE: snitch: ddl_command_start ALTER CONVERSION [ALTER - CONVERSION]
drop conversion test3;
-NOTICE: snitch: command_start DROP CONVERSION [DROP - CONVERSION]
+NOTICE: snitch: ddl_command_start DROP CONVERSION [DROP - CONVERSION]
drop conversion test;
-NOTICE: snitch: command_start DROP CONVERSION [DROP - CONVERSION]
+NOTICE: snitch: ddl_command_start DROP CONVERSION [DROP - CONVERSION]
create operator class test_op_class
for type anyenum using hash as
operator 1 =,
function 1 hashenum(anyenum);
-NOTICE: snitch: command_start CREATE OPERATOR CLASS [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE OPERATOR CLASS [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE OPERATOR CLASS [CREATE - OPERATOR CLASS]
+NOTICE: snitch: ddl_command_start CREATE OPERATOR CLASS [CREATE - OPERATOR CLASS]
create text search configuration test (parser = "default");
-NOTICE: snitch: command_start CREATE TEXT SEARCH CONFIGURATION [CREATE - TEXT SEARCH CONFIGURATION]
-NOTICE: snitch: command_start CREATE TEXT SEARCH CONFIGURATION [CREATE - TEXT SEARCH CONFIGURATION]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH CONFIGURATION [CREATE - TEXT SEARCH CONFIGURATION]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH CONFIGURATION [CREATE - TEXT SEARCH CONFIGURATION]
create text search dictionary test_stem (
template = snowball,
language = 'english', stopwords = 'english'
);
-NOTICE: snitch: command_start CREATE TEXT SEARCH DICTIONARY [CREATE - TEXT SEARCH DICTIONARY]
-NOTICE: snitch: command_start CREATE TEXT SEARCH DICTIONARY [CREATE - TEXT SEARCH DICTIONARY]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH DICTIONARY [CREATE - TEXT SEARCH DICTIONARY]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH DICTIONARY [CREATE - TEXT SEARCH DICTIONARY]
alter text search dictionary test_stem (StopWords = dutch );
-NOTICE: snitch: command_start ALTER TEXT SEARCH DICTIONARY [ALTER - <NULL>]
+NOTICE: snitch: ddl_command_start ALTER TEXT SEARCH DICTIONARY [ALTER - TEXT SEARCH DICTIONARY]
create text search parser test_parser (
start = prsd_start,
gettoken = prsd_nexttoken,
@@ -407,38 +398,38 @@ create text search parser test_parser (
lextypes = prsd_lextype,
headline = prsd_headline
);
-NOTICE: snitch: command_start CREATE TEXT SEARCH PARSER [CREATE - TEXT SEARCH PARSER]
-NOTICE: snitch: command_start CREATE TEXT SEARCH PARSER [CREATE - TEXT SEARCH PARSER]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH PARSER [CREATE - TEXT SEARCH PARSER]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH PARSER [CREATE - TEXT SEARCH PARSER]
create text search template test_template (
init = dsimple_init,
lexize = dsimple_lexize
);
-NOTICE: snitch: command_start CREATE TEXT SEARCH TEMPLATE [CREATE - TEXT SEARCH TEMPLATE]
-NOTICE: snitch: command_start CREATE TEXT SEARCH TEMPLATE [CREATE - TEXT SEARCH TEMPLATE]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH TEMPLATE [CREATE - TEXT SEARCH TEMPLATE]
+NOTICE: snitch: ddl_command_start CREATE TEXT SEARCH TEMPLATE [CREATE - TEXT SEARCH TEMPLATE]
drop text search configuration test;
-NOTICE: snitch: command_start DROP TEXT SEARCH CONFIGURATION [DROP - TEXT SEARCH CONFIGURATION]
-NOTICE: snitch: command_start DROP TEXT SEARCH CONFIGURATION [DROP - TEXT SEARCH CONFIGURATION]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH CONFIGURATION [DROP - TEXT SEARCH CONFIGURATION]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH CONFIGURATION [DROP - TEXT SEARCH CONFIGURATION]
drop text search dictionary test_stem;
-NOTICE: snitch: command_start DROP TEXT SEARCH DICTIONARY [DROP - TEXT SEARCH DICTIONARY]
-NOTICE: snitch: command_start DROP TEXT SEARCH DICTIONARY [DROP - TEXT SEARCH DICTIONARY]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH DICTIONARY [DROP - TEXT SEARCH DICTIONARY]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH DICTIONARY [DROP - TEXT SEARCH DICTIONARY]
drop text search parser test_parser;
-NOTICE: snitch: command_start DROP TEXT SEARCH PARSER [DROP - TEXT SEARCH PARSER]
-NOTICE: snitch: command_start DROP TEXT SEARCH PARSER [DROP - TEXT SEARCH PARSER]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH PARSER [DROP - TEXT SEARCH PARSER]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH PARSER [DROP - TEXT SEARCH PARSER]
drop text search template test_template;
-NOTICE: snitch: command_start DROP TEXT SEARCH TEMPLATE [DROP - TEXT SEARCH TEMPLATE]
-NOTICE: snitch: command_start DROP TEXT SEARCH TEMPLATE [DROP - TEXT SEARCH TEMPLATE]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH TEMPLATE [DROP - TEXT SEARCH TEMPLATE]
+NOTICE: snitch: ddl_command_start DROP TEXT SEARCH TEMPLATE [DROP - TEXT SEARCH TEMPLATE]
create function cmd.testcast(text) returns int4 language plpgsql as $$begin return 4::int4;end;$$;
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE FUNCTION [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
+NOTICE: snitch: ddl_command_start CREATE FUNCTION [CREATE - FUNCTION]
create cast (text as int4) with function cmd.testcast(text) as assignment;
-NOTICE: snitch: command_start CREATE CAST [CREATE - <NULL>]
-NOTICE: snitch: command_start CREATE CAST [CREATE - <NULL>]
+NOTICE: snitch: ddl_command_start CREATE CAST [CREATE - CAST]
+NOTICE: snitch: ddl_command_start CREATE CAST [CREATE - CAST]
alter schema cmd rename to cmd1;
-NOTICE: snitch: command_start ALTER SCHEMA [ALTER - SCHEMA]
-NOTICE: snitch: command_start ALTER SCHEMA [ALTER - SCHEMA]
+NOTICE: snitch: ddl_command_start ALTER SCHEMA [ALTER - SCHEMA]
+NOTICE: snitch: ddl_command_start ALTER SCHEMA [ALTER - SCHEMA]
drop schema cmd1 cascade;
-NOTICE: snitch: command_start DROP SCHEMA [DROP - SCHEMA]
-NOTICE: snitch: command_start DROP SCHEMA [DROP - SCHEMA]
+NOTICE: snitch: ddl_command_start DROP SCHEMA [DROP - SCHEMA]
+NOTICE: snitch: ddl_command_start DROP SCHEMA [DROP - SCHEMA]
NOTICE: drop cascades to 12 other objects
DETAIL: drop cascades to table cmd1.foo
drop cascades to view cmd1.v
@@ -453,8 +444,8 @@ drop cascades to function cmd1.trigfunc()
drop cascades to function cmd1.testcast(text)
drop cascades to cast from text to integer
drop schema cmd2 cascade;
-NOTICE: snitch: command_start DROP SCHEMA [DROP - SCHEMA]
-NOTICE: snitch: command_start DROP SCHEMA [DROP - SCHEMA]
+NOTICE: snitch: ddl_command_start DROP SCHEMA [DROP - SCHEMA]
+NOTICE: snitch: ddl_command_start DROP SCHEMA [DROP - SCHEMA]
-- fail because owning event trigger snitch
drop role regression_bob;
ERROR: role "regression_bob" cannot be dropped because some objects depend on it
@@ -485,10 +476,12 @@ begin
raise notice 'check_one_row: %', c;
end;
$$;
-create event trigger a_insert_one_row on command_start
+create event trigger a_insert_one_row
+ on ddl_command_start
when tag in ('alter table')
execute procedure insert_one_row();
-create event trigger b_check_one_row on command_start
+create event trigger b_check_one_row
+ on ddl_command_start
when tag in ('alter table')
execute procedure check_one_row();
alter table onerow alter column id type bigint;
diff --git a/src/test/regress/sql/event_triggers.sql b/src/test/regress/sql/event_triggers.sql
index 9ca1a28..d3436b3 100644
--- a/src/test/regress/sql/event_triggers.sql
+++ b/src/test/regress/sql/event_triggers.sql
@@ -11,10 +11,12 @@ begin
end;
$$;
-create event trigger any_t on command_start
+create event trigger any_t
+ on ddl_command_start
execute procedure snitch();
-create event trigger foo_t on command_start
+create event trigger foo_t
+ on ddl_command_start
when tag in ('alter collation',
'alter conversion',
'alter domain',
@@ -53,9 +55,7 @@ create event trigger foo_t on command_start
'drop text search parser',
'drop text search template',
'drop trigger',
- 'reindex',
- 'select into',
- 'vacuum')
+ 'select into')
execute procedure snitch();
alter event trigger foo_t disable;
@@ -277,11 +277,13 @@ begin
end;
$$;
-create event trigger a_insert_one_row on command_start
+create event trigger a_insert_one_row
+ on ddl_command_start
when tag in ('alter table')
execute procedure insert_one_row();
-create event trigger b_check_one_row on command_start
+create event trigger b_check_one_row
+ on ddl_command_start
when tag in ('alter table')
execute procedure check_one_row();