Re: ecpg - GRANT bug

Поиск
Список
Период
Сортировка
От Lee Kindness
Тема Re: ecpg - GRANT bug
Дата
Msg-id 15307.64246.181899.392451@elsick.csl.co.uk
обсуждение исходный текст
Ответ на Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: ecpg - GRANT bug  (Lee Kindness <lkindness@csl.co.uk>)
Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: ecpg - GRANT bug  (Michael Meskes <meskes@postgresql.org>)
Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: ecpg - GRANT bug
Следующее
От: Lincoln Yeoh
Дата:
Сообщение: Re: Pre-forking backend