-
- Downloads
Support triggers on views.
This patch adds the SQL-standard concept of an INSTEAD OF trigger, which is fired instead of performing a physical insert/update/delete. The trigger function is passed the entire old and/or new rows of the view, and must figure out what to do to the underlying tables to implement the update. So this feature can be used to implement updatable views using trigger programming style rather than rule hacking. In passing, this patch corrects the names of some columns in the information_schema.triggers view. It seems the SQL committee renamed them somewhere between SQL:99 and SQL:2003. Dean Rasheed, reviewed by Bernd Helmle; some additional hacking by me.
Showing
- doc/src/sgml/catalogs.sgml 5 additions, 4 deletionsdoc/src/sgml/catalogs.sgml
- doc/src/sgml/information_schema.sgml 45 additions, 16 deletionsdoc/src/sgml/information_schema.sgml
- doc/src/sgml/plperl.sgml 3 additions, 1 deletiondoc/src/sgml/plperl.sgml
- doc/src/sgml/plpgsql.sgml 101 additions, 5 deletionsdoc/src/sgml/plpgsql.sgml
- doc/src/sgml/plpython.sgml 10 additions, 10 deletionsdoc/src/sgml/plpython.sgml
- doc/src/sgml/pltcl.sgml 10 additions, 6 deletionsdoc/src/sgml/pltcl.sgml
- doc/src/sgml/ref/create_rule.sgml 6 additions, 4 deletionsdoc/src/sgml/ref/create_rule.sgml
- doc/src/sgml/ref/create_trigger.sgml 94 additions, 12 deletionsdoc/src/sgml/ref/create_trigger.sgml
- doc/src/sgml/rules.sgml 106 additions, 56 deletionsdoc/src/sgml/rules.sgml
- doc/src/sgml/trigger.sgml 107 additions, 33 deletionsdoc/src/sgml/trigger.sgml
- src/backend/catalog/index.c 1 addition, 1 deletionsrc/backend/catalog/index.c
- src/backend/catalog/information_schema.sql 28 additions, 10 deletionssrc/backend/catalog/information_schema.sql
- src/backend/catalog/sql_features.txt 1 addition, 1 deletionsrc/backend/catalog/sql_features.txt
- src/backend/commands/copy.c 1 addition, 1 deletionsrc/backend/commands/copy.c
- src/backend/commands/tablecmds.c 3 additions, 3 deletionssrc/backend/commands/tablecmds.c
- src/backend/commands/trigger.c 338 additions, 239 deletionssrc/backend/commands/trigger.c
- src/backend/executor/execMain.c 37 additions, 7 deletionssrc/backend/executor/execMain.c
- src/backend/executor/nodeModifyTable.c 323 additions, 176 deletionssrc/backend/executor/nodeModifyTable.c
- src/backend/nodes/copyfuncs.c 1 addition, 1 deletionsrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 1 addition, 1 deletionsrc/backend/nodes/equalfuncs.c
Loading
Please register or sign in to comment