Re: [SQL] Getting datatype before SELECT

From: James Olin Oden <joden(at)lee(dot)k12(dot)nc(dot)us>
To: Bob Smither <smither(at)C-C-I(dot)Com>
Cc: Glenn Sullivan <glenn(dot)sullivan(at)nmr(dot)varian(dot)com>, pgsql-sql(at)hub(dot)org
Subject: Re: [SQL] Getting datatype before SELECT
Date: 1998-09-30 11:40:38
Message-ID: 81Sep29.063022edt.35713@gateway.lee.k12.nc.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


> Not at all sure how to do this from C, but from perl I do something like
> this:
>
> $temp = `psql -d databasename -c "\\d tablename"`
>
> The item between the `s is executed and the result returned to the
> variable. $temp now has the full structure of the table and can be parsed
> to extract the column names and types. The double \\ is needed to prevent
> perl from thinking that \d is a meta character (I think).
>
> The output of the command between the `s could also be redirected to a
> file.

In C he could do essentially the same thing. One approach is to use system as
so:

system("psql -d databasename -c \"\\d tablename\" -o /tmp/somefile");

And then he could open the file /tmp/somefile and parse his way through it.
Also, he can do the what perl does to create pipes (perl is written in C) and
essentially do the same thing as you are doing. I personally would go with
the temp file, using my proccess id to as part of the tempfile name to make it
unique to my process, but it should not be to much work to make the proper
system calls to do the piping...james

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Bryan White 1998-09-30 13:19:40 Re: [SQL] Getting datatype before SELECT
Previous Message Bob Smither 1998-09-30 02:30:43 Re: [SQL] Getting datatype before SELECT