Re: [SQL] 2 Aktions in a Rule - Mailing list pgsql-sql

From Thomas Mack
Subject Re: [SQL] 2 Aktions in a Rule
Date
Msg-id 199910051458.QAA25194@infbsdb1.idb.cs.tu-bs.de
Whole thread Raw
List pgsql-sql
>
>Florian Makesch <F.Makesch@sbe-zeta.de> writes:
>> I hope someone can help me. I Want 2 Aktions executeed in a Rule like:
>> CREATE RULE auftraege_neu_delete AS ON delete 
>>     TO auftraege_neu DO  
>>         (DELETE FROM auftraege_neu_positionen
>>         WHERE auftraege_neu_positionen.auftragsnr   = OLD.auftragsnr;
>>     DELETE FROM auftraege_neu_zubehoer
>>         WHERE auftraege_neu_zubehoer.auftragsnr     = OLD.auftragsnr;);
>> but I get a Parser Error:
>> ERROR: parser: parse error at or near ""
>> This is in PostgreSQL 6.5.2
>> Has anyone the correct syntax?
>
>There's nothing wrong with that syntax AFAICS.  Furthermore, my copy
>of Postgres takes it just fine (both 6.5.2 and current sources).
>
>I suspect you compiled with a buggy version of yacc or bison.  Postgres'
>grammar is large and complex enough that it tends to expose problems
>in vendor-supplied yaccs :-(.  Try getting a recent GNU bison (let's
>see ... I have 1.25 installed here, it's probably not the latest)
>and rebuilding.
>
Maybe...:

---------------------------------------------------------------------------
mack@infbsdb1 ~/ingres/ib/bin 385 > psql ib
Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL
[PostgreSQL 6.5.1 on sparc-sun-solaris2.6, compiled by gcc egcs-2.91.66]
  type \? for help on slash commands  type \q to quit  type \g or terminate with semicolon to execute queryYou are
currentlyconnected to the database: ib
 

ib=> create table auftraege_neu(auftragsnr int4);
CREATE
ib=> create table auftraege_neu_positionen(auftragsnr int4);
CREATE
ib=> create table auftraege_neu_zubehoer(auftragsnr int4);
CREATE
ib=>  CREATE RULE auftraege_neu_delete AS ON delete 
ib->      TO auftraege_neu DO  
ib->        (DELETE FROM auftraege_neu_positionen
ib->            WHERE auftraege_neu_positionen.auftragsnr   = OLD.auftragsnr;
ib->        DELETE FROM auftraege_neu_zubehoer
ib->            WHERE auftraege_neu_zubehoer.auftragsnr     = OLD.auftragsnr;);
CREATE
ib=> \q
mack@infbsdb1 ~/ingres/ib/bin 386 > bison --version
GNU Bison version 1.25
mack@infbsdb1 ~/ingres/ib/bin 387 > yacc --version
yacc: Command not found.
mack@infbsdb1 ~/ingres/ib/bin 388 > 
---------------------------------------------------------------------------


Thomas Mack
TU Braunschweig, Abt. Informationssysteme


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [SQL] 2 Aktions in a Rule
Next
From: "Mitch Vincent"
Date:
Subject: Reasonable