create OR REPLACE rule bug - Mailing list pgsql-bugs

From Mikael Carneholm
Subject create OR REPLACE rule bug
Date
Msg-id 7F10D26ECFA1FB458B89C5B4B0D72C2B0881FF@sesrv12.wirelesscar.com
Whole thread Raw
Responses Re: create OR REPLACE rule bug  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
I believe this is a bug:

-- OR REPLACE present
create or replace rule "mastertab_jan05_update" as
on update to mastertab where
   (NEW.datecol < '20050101' or NEW.datecol >=3D '20050201')
   and
   (OLD.datecol >=3D '20050101' and OLD.datecol < '20050201')
do instead (
   -- multiple commands
   delete from mastertab_jan05 where id =3D OLD.id;
   insert into mastertab (id, datecol) values (OLD.id, NEW.datecol);
);

=3D> ERROR:  syntax error at end of input at character 255


-- OR REPLACE not present
create rule "mastertab_jan05_update" as
on update to mastertab where
   (NEW.datecol < '20050101' or NEW.datecol >=3D '20050201')
   and
   (OLD.datecol >=3D '20050101' and OLD.datecol < '20050201')
do instead (
   -- multiple commands
   delete from mastertab_jan05 where id =3D OLD.id;
   insert into mastertab (id, datecol) values (OLD.id, NEW.datecol);
);

=3D> Query OK, 0 rows affected (0,00 sec)


-- OR REPLACE present
create or replace rule "mastertab_jan05_update" as
on update to mastertab where
   (NEW.datecol < '20050101' or NEW.datecol >=3D '20050201')
   and
   (OLD.datecol >=3D '20050101' and OLD.datecol < '20050201')
do instead (
   -- single command, no semicolon
   delete from mastertab_jan05 where id =3D OLD.id=20
);

=3D> Query OK, 0 rows affected (0,00 sec)


-- OR REPLACE present
create or replace rule "mastertab_jan05_update" as
on update to mastertab where
   (NEW.datecol < '20050101' or NEW.datecol >=3D '20050201')
   and
   (OLD.datecol >=3D '20050101' and OLD.datecol < '20050201')
do instead (
   -- single command, semicolon present
   delete from mastertab_jan05 where id =3D OLD.id;
);

=3D> ERROR:  syntax error at end of input at character 255


Ie, the "OR REPLACE" token is broken in that is doesn't work with multiple =
commands (semicolons?)


/Mikael

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: attislocal value changed with the dump
Next
From: "Mikael Carneholm"
Date:
Subject: Re: create OR REPLACE rule bug