string concatenator || and NULL values

From: Roberto João Lopes Garcia <roberto(at)mha(dot)com(dot)br>
To: pgsql-bugs(at)postgresql(dot)org
Subject: string concatenator || and NULL values
Date: 2004-07-01 19:42:29
Message-ID: 5.2.0.9.0.20040701163833.00a83030@ftp.mha.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Roberto João Lopes Garcia
Your email address : roberto(at)mha(dot)com(dot)br

System Configuration
---------------------
Architecture (example: Intel Pentium) : Dual Intel Pentium III

Operating System (example: Linux 2.4.18) : 2.4.17

PostgreSQL version (example: PostgreSQL-7.4.1): PostgreSQL-7.4.1

Compiler used (example: gcc 2.95.2) : 2.95.3

Please enter a FULL description of your problem:
------------------------------------------------

When I use string concatenator || and there are fields of type date whith NULL values
the result is an enpty string. Please see example:

cd=# select version();
version
---------------------------------------------------------------
PostgreSQL 7.4.1 on i686-pc-linux-gnu, compiled by GCC 2.95.3
(1 registro)

cd=#
cd=# \d cd_rev
Tabela "public.cd_rev"
Coluna | Tipo | Modificadores
-----------+---------------+------------------
nr_proj | character(5) |
area | character(3) |
nm_arq | character(8) |
nr_rev | character(3) |
titulo | character(52) |
resp | character(10) |
aprov | character(10) |
data | character(10) |
sql_data | date |
rev_nr | smallint |
descricao | text | default ''::text
Índices:
"i_rev_unique" único, btree (nm_arq, nr_rev)
"i_rev_aprov" btree (aprov)
"i_rev_area" btree (area)
"i_rev_data" btree (data)
"i_rev_nm_arq" btree (nm_arq)
"i_rev_nr_proj" btree (nr_proj)
"i_rev_nr_rev" btree (nr_rev)
"i_rev_resp" btree (resp)
"i_rev_rev_nr" btree (rev_nr)
"i_rev_sql_data" btree (sql_data)

cd=# select nm_arq, nr_rev, data, sql_data from cd_rev where sql_data is null limit 5;
nm_arq | nr_rev | data | sql_data
----------+--------+------------+----------
C0004511 | 0 | /04/2001 |
C0004512 | 0 | /04/2001 |
C0004513 | 0 | /04/2001 |
C0004514 | 0 | /04/2001 |
C0004515 | 0 | /04/2001 |
(5 registros)

cd=#
cd=# select 'ERROR: ' || nm_arq || ' ' || nr_rev || ' ' || data as "WHITHOUT FIELD sql_data" from cd_rev where nm_arq='C0004511';
WHITHOUT FIELD sql_data
------------------------------
ERROR: C0004511 0 /04/2001
(1 registro)

cd=#
cd=#
cd=# select 'ERROR: ' || nm_arq || ' ' || nr_rev || ' ' || data || ' ' || sql_data as "WHITH FIELD sql_data" from cd_rev where nm_arq='C0004511';
WHITH FIELD sql_data
----------------------

(1 registro)

cd=#
cd=# select nm_arq, nr_rev, data, sql_data from cd_rev where sql_data is not null limit 5;
nm_arq | nr_rev | data | sql_data
----------+--------+------------+------------
A9909901 | 0 | 18/12/1997 | 1997-12-18
A9909901 | 1 | 24/04/1998 | 1998-04-24
A9909901 | 2 | 27/07/1998 | 1998-07-27
C0000003 | ERR | 09/05/2001 | 2001-05-09
C0000101 | 0 | 07/08/2000 | 2000-08-07
(5 registros)

cd=#
cd=#
cd=# select 'OK: ' || nm_arq || ' ' || nr_rev || ' ' || data || ' ' || sql_data as "WHITH FIELD sql_data" from cd_rev where nm_arq='C0000101';
WHITH FIELD sql_data
-----------------------------------------
OK: C0000101 0 07/08/2000 2000-08-07
(1 registro)

cd=#
cd=#

Any questions, please e-mail me

Roberto

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

This problem occur in any table whith NULL date type.

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message James Robinson 2004-07-01 19:42:45 Re: subselect on nonexistent column succeeds!!?!
Previous Message Stephan Szabo 2004-07-01 19:35:54 Re: subselect on nonexistent column succeeds!!?!