pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jürgen Cappel <email@juergen-cappel.de>
To: pgsql-interfaces <pgsql-interfaces@postgresql.org>
Subject: Re: ECPG Segfault and variable usage question.
Date: Tue, 17 Feb 2004 21:15:20 +0100
Message-ID: <JEEKIPNAKJNCFLMOBKHGGEEIDCAA.email@juergen-cappel.de> (raw)

Hello Michael,

some more info: the segmentation fault still occurs under Linux (SuSE 8.0)
with today's snapshot. No options used, just the filename as the only arg.
I tried it on Solaris 8 today where it compiles fine. It works on Linux
when I change the variable name from "var" to "myvar" or add a variable in
the DECLARE section, but that can't be the solution. Any idea on how to
find the problem ?

Oh, BTW: the expression   :myarray[index[10]]   compiles OK as of
pgc.l version 1.125 2004/02/15  Thanks for your help !

Jürgen



-----Ursprüngliche Nachricht-----
Von: pgsql-interfaces-owner@postgresql.org
[mailto:pgsql-interfaces-owner@postgresql.org]Im Auftrag von Michael
Meskes
Gesendet: Sonntag, 15. Februar 2004 14:42
An: Jürgen Cappel
Cc: pgsql-interfaces
Betreff: Re: [INTERFACES] ECPG Segfault and variable usage question.


On Thu, Feb 12, 2004 at 08:00:12PM +0100, Jürgen Cappel wrote:
> this is a code snippet that causes ECPG to segfault. It's quite tricky

I took this code as a.pgc and ran 'ecpg a.pgc' without any problem. Do
you use any special options for ecpg?

> Stack trace was obtained using a snapshot from about 2 weeks ago, ECPG
from
> the 7.4.1 release segfaults also.

Hmm, my 7.4.1 version also compiles this snippet cleanly.

> Another problem that's giving me headaches trying to find a workaround for
> is the following use of variables as data sources in INSERT/UPDATE
> statements:
>
> 	:myarray[index[10]]
>
> Any comments, suggestions, hints ?   Thanks a lot,

Could you please try if the following patch helps you?

--- /home/postgres/pgsql-ecpg/preproc/pgc.l	2003-12-29 14:53:04.000000000
+0100
+++ pgc.l	2004-02-15 14:38:43.000000000 +0100
@@ -183,7 +183,7 @@

 identifier		{ident_start}{ident_cont}*

-array			({ident_cont}|{whitespace}|[\+\-\*\%\/\(\)])*
+array			({ident_cont}|{whitespace}|[\[\]\+\-\*\%\/\(\)])*
 typecast		"::"

 /*

This will make it into CVS soon.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend




view thread (7+ messages)  latest in thread

Message-ID: <JEEKIPNAKJNCFLMOBKHGGEEIDCAA.email@juergen-cappel.de>
Permalink:  ../JEEKIPNAKJNCFLMOBKHGGEEIDCAA.email@juergen-cappel.de/
Also on:    postgresql.org/message-id/JEEKIPNAKJNCFLMOBKHGGEEIDCAA.email@juergen-cappel.de

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: email@juergen-cappel.de
  Subject: Re: ECPG Segfault and variable usage question.
  In-Reply-To: <JEEKIPNAKJNCFLMOBKHGGEEIDCAA.email@juergen-cappel.de>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox