| From: | pgsql-bugs(at)postgresql(dot)org | 
|---|---|
| To: | pgsql-bugs(at)postgresql(dot)org | 
| Subject: | Bug #513: union all changes char(3) column definition | 
| Date: | 2001-11-10 16:59:20 | 
| Message-ID: | 200111101659.fAAGxKX06044@postgresql.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs pgsql-hackers | 
Rae Stiening (stiening(at)cannon(dot)astro(dot)umass(dot)edu) reports a bug with a severity of 2
The lower the number the more severe it is.
Short Description
union all changes char(3) column definition
Long Description
Rae Stiening stiening(at)cannon(dot)astro(dot)umass(dot)edu 11/10/2001
This script demonstrates the incorrect restoration of a
table created by a union under postgresql version 7.1.3.
CHANGE
DROP
CREATE
INSERT 2468415409 1
INSERT 2468415410 1
VACUUM
CHANGE
DROP
SELECT
 rd_flg | cntr 
--------+------
 ABC    |    1
 DEF    |    2
(2 rows)
 rd_flg | cntr 
--------+------
 ABC    |    1
 DEF    |    2
 ABC    |    1
 DEF    |    2
(4 rows)
DROP
You are now connected as new user postgres.
CREATE
 rd_flg | cntr 
--------+------
 A      |    1
 D      |    2
 A      |    1
 D      |    2
(4 rows)
The column rd_flg has not been restored properly. Note that
the column definition has changed from char(3) to character
Sample Code
echo Rae Stiening  stiening(at)cannon(dot)astro(dot)umass(dot)edu 11/10/2001
echo This script demonstrates the incorrect restoration of a
echo   table created by a union under postgresql version 7.1.3.
psql -c    "revoke select on xyzzy from public" wsdb
psql -c    "drop table xyzzy" wsdb
psql -c    "create table xyzzy (rd_flg char(3),cntr integer)" wsdb
psql -c    "insert into xyzzy values('ABC',1)" wsdb
psql -c    "insert into xyzzy values('DEF',2)" wsdb
psql -c    "vacuum analyze xyzzy" wsdb
psql -c    "revoke select on zzxxyy from public" wsdb
psql -c    "drop table zzxxyy" wsdb
psql -c    "create table zzxxyy as
            select * from xyzzy
            union all
            select * from xyzzy" wsdb
psql -c    "select * from xyzzy" wsdb
psql -c    "select * from zzxxyy" wsdb
pg_dump -t zzxxyy wsdb > zzxxyy.tbl
psql -c    "drop table zzxxyy" wsdb
cat zzxxyy.tbl | psql wsdb
psql -c    "select * from zzxxyy" wsdb
echo The column rd_flg has not been restored properly.  Note that
echo    the column definition has changed from char'('3')' to character
No file was uploaded with this report
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2001-11-10 18:39:19 | Re: Bug #513: union all changes char(3) column definition | 
| Previous Message | parksik | 2001-11-10 14:29:25 | run-time error! | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jean-Michel POURE | 2001-11-10 17:29:56 | Diff/Patch integration -> SQL cvs clone | 
| Previous Message | Bruce Momjian | 2001-11-10 16:11:16 | Re: RelationFlushRelation() or RelationClearRelation() |