ECPG: Automatic Storage allocation for NULL-pointing output variables - Mailing list pgsql-interfaces

From Christof Petig
Subject ECPG: Automatic Storage allocation for NULL-pointing output variables
Date
Msg-id 3BD6A5B4.BA37DFED@petig-baender.de
Whole thread Raw
Responses Re: ECPG: Automatic Storage allocation for NULL-pointing output variables  (Michael Meskes <meskes@postgresql.org>)
List pgsql-interfaces
Hi there,

I'm looking for an alternative to statically sized character arrays
within ECPG.

E.g. exec sql select relname into :VAR from pg_classes;

It should (!) be possible to obtain this by using pointers which are
initialized to NULL.

It is possible for   integer *var=0;       reading an arbitrary number of integers into a malloced array
and   char *var=0;       reading one arbitrary length string into a malloced character
array

Works perfectly.

But ecpg does not accept   char **var=0;

Is there any way to specify arbitrary strings of any length ?

The code (execute.c:435) has also support for varchar - but how to
declare such a variable length varchar?

And the code (execute.c:432) multiplies the number of tuples with the
longest string. But how to use this code in real life?

Looks like dead code to me (hopefully I'm wrong)

Yours   Christof

PS: I'm willing to implement char**
(allocate tuples*sizeof(char*) + sum(length(tuple[n])+1) bytes,fill the array with pointers,fill the space behind the
arraywith the actual data.This means just one free get's it all.But this code cannot be portable!)
 






pgsql-interfaces by date:

Previous
From: darcy@druid.net (D'Arcy J.M. Cain)
Date:
Subject: Re: Python interface and Money?
Next
From: "nitinpdhavale"
Date:
Subject: variable length arrays (fields)