Wrong column size using MIN/MAX without return result

From: Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com>
To: pgsql-odbc(at)lists(dot)postgresql(dot)org
Subject: Wrong column size using MIN/MAX without return result
Date: 2018-09-24 14:49:35
Message-ID: CAFcNs+o499EnwGaFBzeNHAyPrjQ7QdJVudE34TtnaLMT_2HAyw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hi all,

We've experiencing an issue using the driver version 10.03.0000 under
unixODBC 2.3.1 environment.

When we use MIN/MAX functions in a query returning CHAR without results,
the column size is wrong. Seems if we use any function that return "text
types" without returning tuples the column size is wrong.

Below there are some self contained testcases:

** SQL testcase 1 (ERROR):

SQL> DROP TABLE IF EXISTS T1;
SQL> CREATE TABLE T1 ( FLD char(10) NOT NULL DEFAULT ' ' );
SQL> INSERT INTO T1 VALUES('1');
SQL> INSERT INTO T1 VALUES('22');
SQL> INSERT INTO T1 VALUES('333');
SQL> SELECT MAX(FLD) AS OK FROM T1;
+-----------+
| ok |
+-----------+
| 333 |
+-----------+
SQLRowCount returns 1
1 rows fetched
SQL> SELECT MAX(FLD) AS ERROR FROM T1 WHERE 1 = 0;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| error

|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|

|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
SQLRowCount returns 1
1 rows fetched

** SQL testcase 2 (ERROR):
SQL> DROP TABLE IF EXISTS T1;
SQL> CREATE TABLE T1 ( FLD char(10) NOT NULL DEFAULT ' ' );
SQL> INSERT INTO T1 VALUES('1');
SQL> INSERT INTO T1 VALUES('22');
SQL> INSERT INTO T1 VALUES('333');
SQL> SELECT SUBSTR(FLD,1,5) AS OK FROM T1 WHERE FLD = '333';
+----+
| ok |
+----+
| 333|
+----+
SQLRowCount returns 1
1 rows fetched
SQL> SELECT SUBSTR(FLD,1,5) AS ERROR FROM T1 WHERE 1 = 0;
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| error

|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
SQLRowCount returns 0

** SQL testcase 3 (OK):
SQL> DROP TABLE IF EXISTS T1;
SQL> CREATE TABLE T1 ( FLD char(10) NOT NULL DEFAULT ' ' );
SQL> INSERT INTO T1 VALUES('1');
SQL> INSERT INTO T1 VALUES('22');
SQL> INSERT INTO T1 VALUES('333');
SQL> SELECT FLD AS OK FROM T1 WHERE FLD = '333';
+-----------+
| ok |
+-----------+
| 333 |
+-----------+
SQLRowCount returns 1
1 rows fetched
SQL> SELECT FLD AS ERROR FROM T1 WHERE 1 = 0;
+-----------+
| error |
+-----------+
+-----------+
SQLRowCount returns 0

There are some config to fix this weird behaviour?

Regards,

--
Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Daniel Cory 2018-09-24 23:39:24 Use of undocumented functions
Previous Message Tom Lane 2018-09-19 16:02:37 Re: Building libpq independently of server