I have received a report that pl/plpgsql requires bison to compile.  I
have verified this is true, at least on BSD/OS 4.01, and since we enable
plpgsql compile by default, this requires bison for our standard build.

The issue appears to be contents of gram.tab.c, which is part of our
distribution, and contains at the top:

	
	/*  A Bison parser, made from gram.y
	 by  GNU Bison version 1.25
	  */
	
	#define YYBISON 1  /* Identify Bison output.  */
	
	#define K_ALIAS 258
	#define K_ASSIGN    259
	#define K_BEGIN 260
	#define K_CONSTANT  261
	#define K_DEBUG 262
	#define K_DECLARE   263
	#define K_DEFAULT   264
	#define K_DOTDOT    265
	#define K_ELSE  266
	#define K_END   267

and later on, the contents of gram.y tables.  The file appears to allow
for the passage of keywords, but is not done by flex/yacc combination. 
I did:
	
	yacc -d gram.y
	sed -e 's/yy/plpgsql_yy/g' -e 's/YY/PLPGSQL_YY/g' <y.tab.c >pl_gram.c
	sed -e 's/yy/plpgsql_yy/g' -e 's/YY/PLPGSQL_YY/g' <y.tab.h >pl.tab.h
	rm -f y.tab.c y.tab.h

but got errors like:
	
	scan.l: In function `plpgsql_yylex':
	scan.l:85: `K_ASSIGN' undeclared (first use this function)
	scan.l:85: (Each undeclared identifier is reported only once
	scan.l:85: for each function it appears in.)
	scan.l:87: `K_DOTDOT' undeclared (first use this function)
	scan.l:88: `K_ALIAS' undeclared (first use this function)

Jan, is this a known portability problem?


-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Fri, 6 Aug 1999 14:25:22 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
plpgsql requires bison
Bruce Momjian <maillist@candle.pha.pa.us> writes:
> I have received a report that pl/plpgsql requires bison to compile.  I
> have verified this is true, at least on BSD/OS 4.01, and since we enable
> plpgsql compile by default, this requires bison for our standard build.

This same problem was reported for HPUX a couple weeks ago (see thread
"[PORTS] HP-UX port" on 29 July).  I think that moving the #include of 
"pl_scan.c" down to the file trailer section, instead of having it in
the file header, would work.  Did not try it yet.

			regards, tom lane

Fri, 06 Aug 1999 18:24:26 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] plpgsql requires bison 
> Bruce Momjian <maillist@candle.pha.pa.us> writes:
> > I have received a report that pl/plpgsql requires bison to compile.  I
> > have verified this is true, at least on BSD/OS 4.01, and since we enable
> > plpgsql compile by default, this requires bison for our standard build.
> 
> This same problem was reported for HPUX a couple weeks ago (see thread
> "[PORTS] HP-UX port" on 29 July).  I think that moving the #include of 
> "pl_scan.c" down to the file trailer section, instead of having it in
> the file header, would work.  Did not try it yet.
> 
> 			regards, tom lane
> 
> 


Moving the #include down below the %} does not work.  Is there another
section.  I put it on line 49.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Fri, 6 Aug 1999 19:05:32 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] plpgsql requires bison
Bruce Momjian <maillist@candle.pha.pa.us> writes:
>> This same problem was reported for HPUX a couple weeks ago (see thread
>> "[PORTS] HP-UX port" on 29 July).  I think that moving the #include of 
>> "pl_scan.c" down to the file trailer section, instead of having it in
>> the file header, would work.  Did not try it yet.

> Moving the #include down below the %} does not work.  Is there another
> section.  I put it on line 49.

No, that'd be in the grammar proper.  I meant down in the trailing
miscellaneous-C-code section, say right after the %% divider at line
1081.  (If I were a yacc expert I'd know the names of these sections,
but I'm just a hacker...)

			regards, tom lane

Fri, 06 Aug 1999 23:36:10 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] plpgsql requires bison 
> Bruce Momjian <maillist@candle.pha.pa.us> writes:
> >> This same problem was reported for HPUX a couple weeks ago (see thread
> >> "[PORTS] HP-UX port" on 29 July).  I think that moving the #include of 
> >> "pl_scan.c" down to the file trailer section, instead of having it in
> >> the file header, would work.  Did not try it yet.
> 
> > Moving the #include down below the %} does not work.  Is there another
> > section.  I put it on line 49.
> 
> No, that'd be in the grammar proper.  I meant down in the trailing
> miscellaneous-C-code section, say right after the %% divider at line
> 1081.  (If I were a yacc expert I'd know the names of these sections,
> but I'm just a hacker...)

Thank you.  That did it.  Commit applied.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Sat, 7 Aug 1999 00:24:19 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: [HACKERS] plpgsql requires bison
Bruce Momjian wrote:

>
> I have received a report that pl/plpgsql requires bison to compile.  I
> have verified this is true, at least on BSD/OS 4.01, and since we enable
> plpgsql compile by default, this requires bison for our standard build.
>
> The issue appears to be contents of gram.tab.c, which is part of our
> distribution, and contains at the top:
>
> [...]
>
> Jan, is this a known portability problem?

    I  had expected portability problems with the PL/pgSQL parser
    and suggested to put prepared flex/bison  output  files  into
    our  distribution  as  we  do it for the main backend parser.
    Unfortunately I forgot about it.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#========================================= wieck@debis.com (Jan Wieck) #



Mon, 9 Aug 1999 12:30:30 +0200 (MET DST)
wieck@debis.com (Jan Wieck)
Re: plpgsql requires bison
> Bruce Momjian wrote:
> 
> >
> > I have received a report that pl/plpgsql requires bison to compile.  I
> > have verified this is true, at least on BSD/OS 4.01, and since we enable
> > plpgsql compile by default, this requires bison for our standard build.
> >
> > The issue appears to be contents of gram.tab.c, which is part of our
> > distribution, and contains at the top:
> >
> > [...]
> >
> > Jan, is this a known portability problem?
> 
>     I  had expected portability problems with the PL/pgSQL parser
>     and suggested to put prepared flex/bison  output  files  into
>     our  distribution  as  we  do it for the main backend parser.
>     Unfortunately I forgot about it.

OK, I have fixed the problem by testing to see if I am running Bison,
and doing the include in the proper place.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

Mon, 16 Aug 1999 16:12:58 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
Re: plpgsql requires bison