Re: [SQL] Getting datatype before SELECT

From: "Bryan White" <bryan(at)arcamax(dot)com>
To: "James Olin Oden" <joden(at)lee(dot)k12(dot)nc(dot)us>, "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 13:19:40
Message-ID: 001401bdec74$fb55af20$a3f0f6ce@bryan.arcamax.com
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

Is that not what popen/pclose are for. i.e
FILE *f = popen("psql -d databasename -c \"\\d tablename\"","r");
...
pclose(f);

Browse pgsql-sql by date

  From Date Subject
Next Message herouth maoz 1998-09-30 22:21:28 Re: [SQL] Getting datatype before SELECT
Previous Message James Olin Oden 1998-09-30 11:40:38 Re: [SQL] Getting datatype before SELECT