ecpg - GRANT bug - Mailing list pgsql-bugs

From Lee Kindness
Subject ecpg - GRANT bug
Date
Msg-id 15303.3372.751660.717784@elsick.csl.co.uk
Whole thread Raw
Responses Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: ecpg - GRANT bug  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
I've noticed general buggyness with ecpg on one of my source files for
a while now but it only got really annoying after setting up overnight
build on Linux (output corrupt code), Solaris (output correct code),
AIX (crashed) and HPUX (crashed).

After comparing the output from ecpg on Linux and Solaris the
following type of statement was the root of the crash:

 EXEC SQL GRANT ALL ON exampletable TO PUBLIC;

When the parser code was rebuilding the query to pass onto the server
it was trying to include an extra, non-existent, parameter...

The bug is present in 7.1.2, 7.1.3 and the current CVS sources. The
following patch (against CVS version) corrects this bug:

./interfaces/ecpg/preproc/preproc.y
*** ./interfaces/ecpg/preproc/preproc.y.orig    Fri Oct 12 16:22:05 2001
--- ./interfaces/ecpg/preproc/preproc.y    Fri Oct 12 16:22:09 2001
***************
*** 1693,1699 ****

  GrantStmt:  GRANT privileges ON opt_table relation_name_list TO grantee_list opt_with_grant
                  {
!                     $$ = cat_str(8, make_str("grant"), $2, make_str("on"), $4, $5, make_str("to"), $7);
                  }
          ;

--- 1693,1699 ----

  GrantStmt:  GRANT privileges ON opt_table relation_name_list TO grantee_list opt_with_grant
                  {
!                     $$ = cat_str(7, make_str("grant"), $2, make_str("on"), $4, $5, make_str("to"), $7);
                  }
          ;

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: initdb must have write access to /tmp
Next
From: pgsql-bugs@postgresql.org
Date:
Subject: Bug #480: problem with LIKE pattern matches involving % and \_