diff options
author | Joe Conway | 2004-08-11 00:49:35 +0000 |
---|---|---|
committer | Joe Conway | 2004-08-11 00:49:35 +0000 |
commit | bc8a1fc282005f6da9ff7650eadc65b160077e43 (patch) | |
tree | aa557e7317735b2b9385c30d7fe8b5ae68e75730 /contrib/tablefunc/expected | |
parent | 7d3b7db8da4132459e92a869833fe481be2ebca2 (diff) |
Hashed crosstab was dying with an SPI_finish error when the source SQL
produced no rows. Now it returns 0 rows instead. Adjusted regression
test for this case.
Diffstat (limited to 'contrib/tablefunc/expected')
-rw-r--r-- | contrib/tablefunc/expected/tablefunc.out | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/contrib/tablefunc/expected/tablefunc.out b/contrib/tablefunc/expected/tablefunc.out index 281de5d2663..d8f4c30a5dc 100644 --- a/contrib/tablefunc/expected/tablefunc.out +++ b/contrib/tablefunc/expected/tablefunc.out @@ -127,7 +127,7 @@ SELECT * FROM crosstab('SELECT rowid, attribute, val FROM ct where rowclass = '' -- hash based crosstab -- create table cth(id serial, rowid text, rowdt timestamp, attribute text, val text); -NOTICE: CREATE TABLE will create implicit sequence "cth_id_seq" for "serial" column "cth.id" +NOTICE: CREATE TABLE will create implicit sequence "cth_id_seq" for serial column "cth.id" insert into cth values(DEFAULT,'test1','01 March 2003','temperature','42'); insert into cth values(DEFAULT,'test1','01 March 2003','test_result','PASS'); -- the next line is intentionally left commented and is therefore a "missing" attribute @@ -193,6 +193,24 @@ SELECT * FROM crosstab( 'SELECT DISTINCT rowdt, attribute FROM cth ORDER BY 2') AS c(rowid text, rowdt timestamp, temperature int4, test_result text, test_startdate timestamp, volts float8); ERROR: provided "categories" SQL must return 1 column of at least one row +-- if source query returns zero rows, get zero rows returned +SELECT * FROM crosstab( + 'SELECT rowid, rowdt, attribute, val FROM cth WHERE false ORDER BY 1', + 'SELECT DISTINCT attribute FROM cth ORDER BY 1') +AS c(rowid text, rowdt timestamp, temperature text, test_result text, test_startdate text, volts text); + rowid | rowdt | temperature | test_result | test_startdate | volts +-------+-------+-------------+-------------+----------------+------- +(0 rows) + +-- if source query returns zero rows, get zero rows returned even if category query generates no rows +SELECT * FROM crosstab( + 'SELECT rowid, rowdt, attribute, val FROM cth WHERE false ORDER BY 1', + 'SELECT DISTINCT attribute FROM cth WHERE false ORDER BY 1') +AS c(rowid text, rowdt timestamp, temperature text, test_result text, test_startdate text, volts text); + rowid | rowdt | temperature | test_result | test_startdate | volts +-------+-------+-------------+-------------+----------------+------- +(0 rows) + -- -- connectby -- |