pgsql: Support automatically-updatable views.
От | Tom Lane |
---|---|
Тема | pgsql: Support automatically-updatable views. |
Дата | |
Msg-id | E1ThToI-0000LZ-Df@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Support automatically-updatable views. This patch makes "simple" views automatically updatable, without the need to create either INSTEAD OF triggers or INSTEAD rules. "Simple" views are those classified as updatable according to SQL-92 rules. The rewriter transforms INSERT/UPDATE/DELETE commands on such views directly into an equivalent command on the underlying table, which will generally have noticeably better performance than is possible with either triggers or user-written rules. A view that has INSTEAD OF triggers or INSTEAD rules continues to operate the same as before. For the moment, security_barrier views are not considered simple. Also, we do not support WITH CHECK OPTION. These features may be added in future. Dean Rasheed, reviewed by Amit Kapila Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/a99c42f291421572aef2b0a9360294c7d89b8bc7 Modified Files -------------- doc/src/sgml/intro.sgml | 2 +- doc/src/sgml/ref/alter_table.sgml | 8 +- doc/src/sgml/ref/alter_view.sgml | 9 +- doc/src/sgml/ref/create_rule.sgml | 25 +- doc/src/sgml/ref/create_view.sgml | 125 +++- doc/src/sgml/rules.sgml | 47 +- src/backend/catalog/information_schema.sql | 18 +- src/backend/executor/execMain.c | 20 +- src/backend/rewrite/rewriteHandler.c | 684 ++++++++++++++++- src/backend/utils/adt/misc.c | 31 + src/include/catalog/catversion.h | 2 +- src/include/catalog/pg_proc.h | 5 + src/include/rewrite/rewriteHandler.h | 2 + src/include/utils/builtins.h | 2 + src/test/regress/expected/triggers.out | 14 - src/test/regress/expected/updatable_views.out | 1069 +++++++++++++++++++++++++ src/test/regress/parallel_schedule | 2 +- src/test/regress/serial_schedule | 1 + src/test/regress/sql/triggers.sql | 7 - src/test/regress/sql/updatable_views.sql | 511 ++++++++++++ 20 files changed, 2491 insertions(+), 93 deletions(-)
В списке pgsql-committers по дате отправления: