From: | "Inoue, Hiroshi" <h-inoue(at)dream(dot)email(dot)ne(dot)jp> |
---|---|
To: | fabriziomello(at)gmail(dot)com |
Cc: | pgsql-odbc(at)lists(dot)postgresql(dot)org |
Subject: | Re: Wrong column size using MIN/MAX without return result |
Date: | 2018-09-25 03:12:30 |
Message-ID: | d6fec2c3-7934-c5da-a167-0bf8482dad8a@dream.email.ne.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Hi,
On 2018/09/24 23:49, Fabrízio de Royes Mello wrote:
> 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.
SQL returns NULL for MIN/MAX functions without results.
regards,
Hiroshi Inoue
>
> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Clemens Ladisch | 2018-09-25 06:43:00 | Re: Wrong column size using MIN/MAX without return result |
Previous Message | Igor Korot | 2018-09-25 01:36:41 | Building programs with libpq |