Обсуждение: BUG #5812: ecpg problem with array of varchar when using dimension name with length > 12

Поиск
Список
Период
Сортировка

BUG #5812: ecpg problem with array of varchar when using dimension name with length > 12

От
"Jean-Baptiste Veslin"
Дата:
The following bug has been logged online:

Bug reference:      5812
Logged by:          Jean-Baptiste Veslin
Email address:      jean-baptiste.veslin@meteo.fr
PostgreSQL version: 9.0.1
Operating system:   linux CentOS 5.4
Description:        ecpg problem with array of varchar when using dimension
name with length > 12
Details:

When using a variable to give dimension of an array of varchar, ecpg
products a coredump if the the variable name is longer than 12.

Exemple, this doesn't work because length of MAX_COL_IN_IND is 14 :

#define MAX_COL_IN_IND 10 #perhaps in an include file
(...)
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR col_name[MAX_COL_IN_IND][26];
EXEC SQL END DECLARE SECTION;

This problem seems to be because of the static declaration "char dim[14L]"
in ecpg.trailer

I think it wouldn't be very difficult to calculate the dimension of "dim"
dynamically (strlen(dimension) + 2)

Re: BUG #5812: ecpg problem with array of varchar when using dimension name with length > 12

От
Michael Meskes
Дата:
On Tue, Jan 04, 2011 at 02:44:25PM +0000, Jean-Baptiste Veslin wrote:
> Description:        ecpg problem with array of varchar when using dimension
> name with length > 12
> ...
> This problem seems to be because of the static declaration "char dim[14L]"
> in ecpg.trailer
>
> I think it wouldn't be very difficult to calculate the dimension of "dim"
> dynamically (strlen(dimension) + 2)

Thanks for spotting this, I have no idea why this fixed size limit is in there
anyway. I will remove it.

Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
Jabber: michael.meskes at googlemail dot com
VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL