RE: [SQL] Getting datatype before SELECT

Поиск
Список
Период
Сортировка
От Jackson, DeJuan
Тема RE: [SQL] Getting datatype before SELECT
Дата
Msg-id F10BB1FAF801D111829B0060971D839F440DB3@cpsmail
обсуждение исходный текст
Ответы RE: [SQL] Getting datatype before SELECT  (Herouth Maoz <herouth@oumail.openu.ac.il>)
Список pgsql-sql
> On Tue, 29 Sep 1998, Glenn Sullivan wrote:
>
> > In my C code which communicates with the Postgres database,
> > I have the need to determine the datatype of a column, before
> > I have done a SELECT command.  I have the name of the column,
> > but I cannot seem to figure out how to get the datatype information
> > until after I have done a SELECT.  Then I can call  PQfnumber() and
> > PQftype() to get the type.  Does anyone know how to do this?
>
> In addition to looking up the name of the column, you can use a
> general
> approach, which is also good in case the select is using an EXPRESSION
> rather than a column name (e.g. SELECT salary/1000 FROM emp).
>
> The approach is to work on your query, and replace its where clause
> (or
> add one if it doesn't have one) with boolean literal 'false'. This
> means
> that the query will not return any tuples, nor take much toll on the
> database, but the parser will parse it and give you back all the
> necessary
> type information.
>
> So, if you want to issue the following query:
>
> SELECT field1, ( field2 * 13 )
> FROM table
> WHERE field1>1000 AND (( field2 % 4 ) = 3 );
>
> And you want to check the types and lengths first, first issue the
> query:
>
> SELECT field1, ( field2 * 13 )
> FROM table
> WHERE 'false'::bool;
>
> You can use PQftype() etc. on the result, and only then issue the real
> query, and use the information you gathered in this "dummy" pass.
>
> Herouth
>
How does this work with joins?
    -DEJ

В списке pgsql-sql по дате отправления:

Предыдущее
От: herouth maoz
Дата:
Сообщение: Re: [SQL] Getting datatype before SELECT
Следующее
От: Glenn Sullivan
Дата:
Сообщение: Re: [SQL] Getting datatype before SELECT