Re: PL/pgSQL CURSOR support - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: PL/pgSQL CURSOR support |
Date | |
Msg-id | 200105302009.f4UK97N20959@candle.pha.pa.us Whole thread Raw |
In response to | Re: PL/pgSQL CURSOR support (Jan Wieck <JanWieck@Yahoo.com>) |
Responses |
Re: PL/pgSQL CURSOR support
|
List | pgsql-hackers |
> DECLARE <name> CURSOR IS <select_stmt> is the Oracle PL/SQL > syntax. Since PL/pgSQL was written from the start with one > eye on portability from/to Oracle, I'd like to stick with > that. > > It's relatively simple to just substitute all PLpgSQL (and > other case combos) occurences by something else, then replace > the gram.y and scan.l files with whatever you want and voila, > you come up with another procedural language as compatible as > possible to your formerly preferred database. There is no > reason other than that we'll have more PL handlers to > support, why we shouldn't have two or three different > procedural SQL dialects. All can coexist and only those used > in your DB schema will get loaded. OK, how about this patch that allows both FOR and IS. Seems like a good idea, and we can document FOR. Also, I don't see any documentation on the new plpgsql cursor support. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 Index: src/pl/plpgsql/src/gram.y =================================================================== RCS file: /home/projects/pgsql/cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v retrieving revision 1.19 diff -c -r1.19 gram.y *** src/pl/plpgsql/src/gram.y 2001/05/21 14:22:18 1.19 --- src/pl/plpgsql/src/gram.y 2001/05/30 20:05:03 *************** *** 355,361 **** { plpgsql_ns_rename($2, $4); } ! | decl_varname K_CURSOR decl_cursor_args K_IS K_SELECT decl_cursor_query { PLpgSQL_var *new; PLpgSQL_expr *curname_def; --- 355,361 ---- { plpgsql_ns_rename($2, $4); } ! | decl_varname K_CURSOR decl_cursor_args decl_is_from K_SELECT decl_cursor_query { PLpgSQL_var *new; PLpgSQL_expr *curname_def; *************** *** 499,505 **** plpgsql_ns_push(NULL); } ; ! decl_aliasitem : T_WORD { --- 499,507 ---- plpgsql_ns_push(NULL); } ; ! ! decl_is_from : K_IS | ! K_FOR; decl_aliasitem : T_WORD {
pgsql-hackers by date: