Re: ecpg - GRANT bug - Mailing list pgsql-hackers
| From | Lee Kindness |
|---|---|
| Subject | Re: ecpg - GRANT bug |
| Date | |
| Msg-id | 15307.64246.181899.392451@elsick.csl.co.uk Whole thread Raw |
| In response to | Re: ecpg - GRANT bug (Bruce Momjian <pgman@candle.pha.pa.us>) |
| Responses |
Re: ecpg - GRANT bug
Re: ecpg - GRANT bug Re: ecpg - GRANT bug Re: ecpg - GRANT bug |
| List | pgsql-hackers |
Bruce Momjian writes:> Lee Kindness writes:> > In which case a number of other cases should be weeded out of> >
parser.yand passed onto the backend:> > [ snip ]> > Let me known if you want a patch for these cases too.> Sure, send
themon over.
Patch below, it changes:
1. A number of mmerror(ET_ERROR) to mmerror(ET_NOTICE), passing on the (currently) unsupported options to the backend
withwarning.
2. Standardises warning messages in such cases.
3. Corrects typo in passing of 'CREATE FUNCTION/INOUT' parameter.
Patch:
? interfaces/ecpg/preproc/ecpg
Index: interfaces/ecpg/preproc/preproc.y
===================================================================
RCS file: /projects/cvsroot/pgsql/src/interfaces/ecpg/preproc/preproc.y,v
retrieving revision 1.161
diff -c -r1.161 preproc.y
*** interfaces/ecpg/preproc/preproc.y 2001/10/15 20:15:09 1.161
--- interfaces/ecpg/preproc/preproc.y 2001/10/16 09:15:53
***************
*** 1074,1084 **** | LOCAL TEMPORARY { $$ = make_str("local temporary"); } | LOCAL TEMP { $$
=make_str("local temp"); } | GLOBAL TEMPORARY {
! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported");
$$= make_str("global temporary"); } | GLOBAL TEMP {
! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported");
$$= make_str("global temp"); } | /*EMPTY*/ { $$ = EMPTY; }
--- 1074,1084 ---- | LOCAL TEMPORARY { $$ = make_str("local temporary"); } | LOCAL TEMP { $$
=make_str("local temp"); } | GLOBAL TEMPORARY {
! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMPORARY will be passed to
backend"); $$ = make_str("global temporary"); } | GLOBAL TEMP
{
! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMP will be passed to backend");
$$ = make_str("global temp"); } | /*EMPTY*/ { $$ = EMPTY; }
***************
*** 1103,1110 **** { if (strlen($4) > 0) {
! sprintf(errortext, "CREATE TABLE/COLLATE %s not yet implemented; clause ignored", $4);
! mmerror(ET_NOTICE, errortext); } $$ = cat_str(4, $1,
$2,$3, $4); }
--- 1103,1110 ---- { if (strlen($4) > 0) {
! sprintf(errortext, "Currently unsupported CREATE TABLE/COLLATE %s will be passed to
backend",$4);
! mmerror(ET_NOTICE, errortext); } $$ = cat_str(4, $1,
$2,$3, $4); }
***************
*** 1219,1225 **** } | MATCH PARTIAL {
! mmerror(ET_NOTICE, "FOREIGN KEY/MATCH PARTIAL not yet implemented"); $$ = make_str("match
partial"); } | /*EMPTY*/
--- 1219,1225 ---- } | MATCH PARTIAL {
! mmerror(ET_NOTICE, "Currently unsupported FOREIGN KEY/MATCH PARTIAL will be passed to backend");
$$ = make_str("match partial"); } | /*EMPTY*/
***************
*** 1614,1620 **** | BACKWARD { $$ = make_str("backward"); } | RELATIVE { $$ =
make_str("relative");} | ABSOLUTE {
! mmerror(ET_NOTICE, "FETCH/ABSOLUTE not supported, backend will use RELATIVE");
$$ = make_str("absolute"); } ;
--- 1614,1620 ---- | BACKWARD { $$ = make_str("backward"); } | RELATIVE { $$ =
make_str("relative");} | ABSOLUTE {
! mmerror(ET_NOTICE, "Currently unsupported FETCH/ABSOLUTE will be passed to backend, backend will
useRELATIVE"); $$ = make_str("absolute"); } ;
***************
*** 1769,1775 **** | grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); } ;
! opt_with_grant: WITH GRANT OPTION { $$ = make_str("with grant option"); } | /*EMPTY*/ { $$ = EMPTY; }
;
--- 1769,1779 ---- | grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); } ;
! opt_with_grant: WITH GRANT OPTION
! {
! mmerror(ET_NOTICE, "Currently unsupported GRANT/WITH GRANT OPTION will be passed to backend");
! $$ = make_str("with grant option");
! } | /*EMPTY*/ { $$ = EMPTY; } ;
***************
*** 1919,1932 **** opt_arg: IN { $$ = make_str("in"); } | OUT {
! mmerror(ET_ERROR, "CREATE FUNCTION/OUT parameters are not supported"); $$ = make_str("out");
} | INOUT {
! mmerror(ET_ERROR, "CREATE FUNCTION/INOUT parameters are not supported");
! $$ = make_str("oinut"); } ;
--- 1923,1936 ---- opt_arg: IN { $$ = make_str("in"); } | OUT {
! mmerror(ET_NOTICE, "Currently unsupported CREATE FUNCTION/OUT will be passed to backend"); $$ =
make_str("out"); } | INOUT {
! mmerror(ET_NOTICE, "Currently unsupported CREATE FUNCTION/INOUT will be passed to backend");
! $$ = make_str("inout"); } ;
***************
*** 2164,2170 **** opt_chain: AND NO CHAIN { $$ = make_str("and no chain"); } | AND CHAIN {
! mmerror(ET_ERROR, "COMMIT/CHAIN not yet supported"); $$ = make_str("and chain");
}
--- 2168,2174 ---- opt_chain: AND NO CHAIN { $$ = make_str("and no chain"); } | AND CHAIN {
! mmerror(ET_NOTICE, "Currently unsupported COMMIT/CHAIN will be passed to backend");
$$ = make_str("and chain"); }
***************
*** 2609,2620 **** } | GLOBAL TEMPORARY opt_table relation_name
{
! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); $$ =
cat_str(3,make_str("global temporary"), $3, $4); } | GLOBAL TEMP
opt_tablerelation_name {
! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); $$ =
cat_str(3,make_str("global temp"), $3, $4); } | TABLE relation_name
--- 2613,2624 ---- } | GLOBAL TEMPORARY opt_table relation_name
{
! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMPORARY will be passed to backend");
$$ = cat_str(3, make_str("global temporary"), $3, $4); } |
GLOBALTEMP opt_table relation_name {
! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMP will be passed to backend");
$$ = cat_str(3, make_str("global temp"), $3, $4); } | TABLE
relation_name
pgsql-hackers by date: