mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Add ALSO keyword to CREATE RULE.
Fabien COELHO
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.446 2004/01/11 04:58:17 neilc Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.447 2004/03/09 05:05:41 momjian Exp $
|
||||
*
|
||||
* HISTORY
|
||||
* AUTHOR DATE MAJOR EVENT
|
||||
@ -332,7 +332,7 @@ static void doNegateFloat(Value *v);
|
||||
|
||||
/* ordinary key words in alphabetical order */
|
||||
%token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD AFTER
|
||||
AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC
|
||||
AGGREGATE ALL ALSO ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC
|
||||
ASSERTION ASSIGNMENT AT AUTHORIZATION
|
||||
|
||||
BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT
|
||||
@ -3610,6 +3610,7 @@ event: SELECT { $$ = CMD_SELECT; }
|
||||
|
||||
opt_instead:
|
||||
INSTEAD { $$ = TRUE; }
|
||||
| ALSO { $$ = FALSE; }
|
||||
| /*EMPTY*/ { $$ = FALSE; }
|
||||
;
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.145 2004/02/21 00:34:52 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/parser/keywords.c,v 1.146 2004/03/09 05:05:41 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -38,6 +38,7 @@ static const ScanKeyword ScanKeywords[] = {
|
||||
{"after", AFTER},
|
||||
{"aggregate", AGGREGATE},
|
||||
{"all", ALL},
|
||||
{"also", ALSO},
|
||||
{"alter", ALTER},
|
||||
{"analyse", ANALYSE}, /* British spelling */
|
||||
{"analyze", ANALYZE},
|
||||
|
@ -34,19 +34,19 @@ create table rtest_system (sysname text, sysdesc text);
|
||||
create table rtest_interface (sysname text, ifname text);
|
||||
create table rtest_person (pname text, pdesc text);
|
||||
create table rtest_admin (pname text, sysname text);
|
||||
create rule rtest_sys_upd as on update to rtest_system do (
|
||||
create rule rtest_sys_upd as on update to rtest_system do also (
|
||||
update rtest_interface set sysname = new.sysname
|
||||
where sysname = old.sysname;
|
||||
update rtest_admin set sysname = new.sysname
|
||||
where sysname = old.sysname
|
||||
);
|
||||
create rule rtest_sys_del as on delete to rtest_system do (
|
||||
create rule rtest_sys_del as on delete to rtest_system do also (
|
||||
delete from rtest_interface where sysname = old.sysname;
|
||||
delete from rtest_admin where sysname = old.sysname;
|
||||
);
|
||||
create rule rtest_pers_upd as on update to rtest_person do
|
||||
create rule rtest_pers_upd as on update to rtest_person do also
|
||||
update rtest_admin set pname = new.pname where pname = old.pname;
|
||||
create rule rtest_pers_del as on delete to rtest_person do
|
||||
create rule rtest_pers_del as on delete to rtest_person do also
|
||||
delete from rtest_admin where pname = old.pname;
|
||||
--
|
||||
-- Tables and rules for the logging test
|
||||
|
@ -36,22 +36,22 @@ create table rtest_interface (sysname text, ifname text);
|
||||
create table rtest_person (pname text, pdesc text);
|
||||
create table rtest_admin (pname text, sysname text);
|
||||
|
||||
create rule rtest_sys_upd as on update to rtest_system do (
|
||||
create rule rtest_sys_upd as on update to rtest_system do also (
|
||||
update rtest_interface set sysname = new.sysname
|
||||
where sysname = old.sysname;
|
||||
update rtest_admin set sysname = new.sysname
|
||||
where sysname = old.sysname
|
||||
);
|
||||
|
||||
create rule rtest_sys_del as on delete to rtest_system do (
|
||||
create rule rtest_sys_del as on delete to rtest_system do also (
|
||||
delete from rtest_interface where sysname = old.sysname;
|
||||
delete from rtest_admin where sysname = old.sysname;
|
||||
);
|
||||
|
||||
create rule rtest_pers_upd as on update to rtest_person do
|
||||
create rule rtest_pers_upd as on update to rtest_person do also
|
||||
update rtest_admin set pname = new.pname where pname = old.pname;
|
||||
|
||||
create rule rtest_pers_del as on delete to rtest_person do
|
||||
create rule rtest_pers_del as on delete to rtest_person do also
|
||||
delete from rtest_admin where pname = old.pname;
|
||||
|
||||
--
|
||||
|
Reference in New Issue
Block a user