PostgreSQL: Inserting NULL values adds empty string.

From: "Venkatesan, Sekhar" <sekhar(dot)venkatesan(at)emc(dot)com>
To: "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org>, "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org>
Subject: PostgreSQL: Inserting NULL values adds empty string.
Date: 2016-02-14 13:13:13
Message-ID: F84DE43FDACD4C45AA84E2DA016FAE2F1C66716D@MX105CL01.corp.emc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc pgsql-sql

Hi Folks,

I am using PostgreSQL 9.4 odbc driver to talk to 9.4 postgreSQL server.
I see that when inserting NULL values into DB is adding empty string in the database only in windows.
The same insert is adding NULL values into database when linux odbc driver is used to connect to linux database.
Is there any configuration in odbc driver end or in server to retain the null values or is it a bug?
If it is not and is an expected behavior, how to fix it in the application?

Thanks,
Sekhar

-----Original Message-----
From: Venkatesan, Sekhar
Sent: Friday, January 29, 2016 10:04 AM
To: 'Joshua D. Drake'; 'pgsql-odbc(at)postgresql(dot)org'
Subject: RE: [ODBC] PostgreSQL: Autocommit through windows odbc driver doesnt work!!!

HI Joshua,

I perform the following set of operations to set autocommit in postgreSQL through ODBC in windows.
SQLSetConnectAttr(hDbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER) SQL_AUTOCOMMIT_ON, 0)

ret = SQLDriverConnect(_hdbc, NULL, (SQLCHAR*) dsn.GetChars(), SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);

This doesn't enable autocommit. If I call SQLSetConnectAttr after SQLDriverConnect, autocommit is set.
Any issue with this sequence? I assume It should be possible to set SQL_ATTR_AUTOCOMMIT before establishing connection.
Can you please confirm on this behavior?

Thanks,
Sekhar

-----Original Message-----
From: Joshua D. Drake [mailto:jd(at)commandprompt(dot)com]
Sent: Thursday, January 28, 2016 11:14 PM
To: Venkatesan, Sekhar; pgsql-odbc(at)postgresql(dot)org
Subject: Re: [ODBC] PostgreSQL: Autocommit through windows odbc driver doesnt work!!!

On 01/28/2016 08:53 AM, Venkatesan, Sekhar wrote:

> Is the above issue fixed? Also in my use-case, I want to enable
> autocommit at odbc driver level but even that doesn't work.
>
> The same application works in Linux OS when unix odbc driver is used.
> This seems to be specific to windows driver.
>
> Please shed some light on this. Do ask me further question if you have any.
>

By default PostgreSQL "autocommits". If it isn't in your case, your driver is starting a transaction and not committing it.

Sincerely,

JD

--
Command Prompt, Inc. http://the.postgres.company/
+1-503-667-4564
PostgreSQL Centered full stack support, consulting and development.

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Adrian Klaver 2016-02-14 16:48:47 Re: [ODBC] PostgreSQL: Inserting NULL values adds empty string.
Previous Message sorin.turda 2016-02-13 16:12:32 BUG #13956: ODBC driver has a memory leak with TIMESTAMP(0)

Browse pgsql-sql by date

  From Date Subject
Next Message Adrian Klaver 2016-02-14 16:48:47 Re: [ODBC] PostgreSQL: Inserting NULL values adds empty string.
Previous Message Shashank Dutt Jha 2016-02-11 06:11:13 Re: inserting json content from a file into table column