public inbox for pgsql-odbc@postgresql.org  
help / color / mirror / Atom feed
From: Igor Korot <ikorot01@gmail.com>
To: Dave Cramer <davecramer@postgres.rocks>
Cc: PostgreSQL ODBC list <pgsql-odbc@postgresql.org>
Subject: Re: How to properly perform this?
Date: Sat, 7 Mar 2026 13:06:07 -0600
Message-ID: <CA+FnnTwB1GJX-ZnO+oAJw+z+rmDVcfK7Huprj7oOj3V88Y2ZUA@mail.gmail.com> (raw)
In-Reply-To: <CADK3HHJLCxp+5Q48CatYqg02hBJs0qs8DS=x=Pg5Nx64rD1F7g@mail.gmail.com>
References: <CA+FnnTx+VJi6o9Y8HHUxb89REdNOxBtz1AVkbvM=TGMF_xa=oA@mail.gmail.com>
	<CADK3HHJLCxp+5Q48CatYqg02hBJs0qs8DS=x=Pg5Nx64rD1F7g@mail.gmail.com>

Hi, Dave,
I think its just an empty column.

Is there a way to treat it as NULL?

P.S.: Sorry for top-posting.

On Sat, Mar 7, 2026 at 5:41 AM Dave Cramer <davecramer@postgres.rocks> wrote:
>
>
> Dave Cramer
> www.postgres.rocks
>
>
> On Sat, 7 Mar 2026 at 01:10, Igor Korot <ikorot01@gmail.com> wrote:
>>
>> Hi, ALL,
>> I'm trying to execute following query:
>>
>> draft=# SELECT c.relname AS name, ixs.tablespace, ARRAY(SELECT
>> a.attname FROM pg_attribute a WHERE a.attrelid = idx.indrelid AND
>> a.attnum = ANY(idx.indkey) AND a.attnum > 0 ORDER BY
>> array_position(idx.indkey, a.attnum) OFFSET idx.indnkeyatts) AS
>> included, c.reloptions AS storage FROM pg_index idx, pg_class c,
>> pg_namespace n, pg_class t, pg_indexes ixs WHERE ixs.indexname =
>> c.relname AND c.oid = idx.indexrelid AND t.oid = idx.indrelid AND
>> n.oid = c.relnamespace AND idx.indisprimary AND n.nspname = 'public'
>> AND t.relname = 'leagues';
>>      name     | tablespace | included | storage
>> --------------+------------+----------+---------
>>  leagues_pkey |            | {}       |
>> (1 row)
>>
>>
>> My code is as follows:
>>
>>             while( ( ret = SQLGetData( m_hstmt, 4, SQL_C_WCHAR,
>> index_param.get(), 255, &ind[3] ) ) != SQL_NO_DATA )
>>             {
>>                 if( ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO )
>>                 {
>>                     auto numBytes = ind[3];
>>                     if( ind[3] == SQL_NO_TOTAL )
>>                         numBytes = 255;
>>                     else if( ind[3] > 255 )
>>                         numBytes = 255;
>>                     str_to_uc_cpy( options, index_param.get() );
>>                 }
>>                 else
>>                 {
>>                     GetErrorMessage( errorMsg, STMT_ERROR  );
>>                     result = 1;
>>                 }
>>             }
>> Unfortunately it goes into the loop because apparently the driver or
>> the server keeps seeing the last column as having data and returns
>> SQL_SUCCESS.
>>
>> What is the proper way to resolve this?
>>
>> I'm using unixODBC with PostgreSQL 16.
>>
>> My odbc.ini looks like this:
>>
>> [code]
>> [postgres]
>> Driver=Postgres
>> Description=Postgres ODBC Driver
>> UserId=postgres
>> Password=XXX
>> Servername=localhost
>> Database=draft
>> Port=5432
>>
>> [/code]
>>
>>
>> What is the best way to proceed?
>
>
> is the last column empty or null?
>
> if not null then there is data there.
>
> Dave





reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-odbc@postgresql.org
  Cc: ikorot01@gmail.com, davecramer@postgres.rocks
  Subject: Re: How to properly perform this?
  In-Reply-To: <CA+FnnTwB1GJX-ZnO+oAJw+z+rmDVcfK7Huprj7oOj3V88Y2ZUA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox