1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-22 23:02:54 +03:00

Fix hstore regression tests.

This was an oversight in commit b60653bc0b75b7f3b5dda0a2968a22129aafb2b2.

Also, fix a typo spotted by Thom Brown.
This commit is contained in:
Robert Haas 2011-11-08 08:07:21 -05:00
parent fbf99d2f16
commit bb1afb528a
3 changed files with 57 additions and 59 deletions

View File

@ -1,6 +1,4 @@
CREATE EXTENSION hstore; CREATE EXTENSION hstore;
WARNING: => is deprecated as an operator name
DETAIL: This name may be disallowed altogether in future versions of PostgreSQL.
set escape_string_warning=off; set escape_string_warning=off;
--hstore; --hstore;
select ''::hstore; select ''::hstore;
@ -708,45 +706,45 @@ select pg_column_size(''::hstore || 'aa=>1, b=>2'::hstore)
t t
(1 row) (1 row)
-- => -- hstore(text,text)
select 'a=>g, b=>c'::hstore || ( 'asd'=>'gf' ); select 'a=>g, b=>c'::hstore || hstore('asd', 'gf');
?column? ?column?
--------------------------------- ---------------------------------
"a"=>"g", "b"=>"c", "asd"=>"gf" "a"=>"g", "b"=>"c", "asd"=>"gf"
(1 row) (1 row)
select 'a=>g, b=>c'::hstore || ( 'b'=>'gf' ); select 'a=>g, b=>c'::hstore || hstore('b', 'gf');
?column? ?column?
--------------------- ---------------------
"a"=>"g", "b"=>"gf" "a"=>"g", "b"=>"gf"
(1 row) (1 row)
select 'a=>g, b=>c'::hstore || ( 'b'=>'NULL' ); select 'a=>g, b=>c'::hstore || hstore('b', 'NULL');
?column? ?column?
----------------------- -----------------------
"a"=>"g", "b"=>"NULL" "a"=>"g", "b"=>"NULL"
(1 row) (1 row)
select 'a=>g, b=>c'::hstore || ( 'b'=>NULL ); select 'a=>g, b=>c'::hstore || hstore('b', NULL);
?column? ?column?
--------------------- ---------------------
"a"=>"g", "b"=>NULL "a"=>"g", "b"=>NULL
(1 row) (1 row)
select ('a=>g, b=>c'::hstore || ( NULL=>'b' )) is null; select ('a=>g, b=>c'::hstore || hstore(NULL, 'b')) is null;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select pg_column_size(('b'=>'gf')) select pg_column_size(hstore('b', 'gf'))
= pg_column_size('b=>gf'::hstore); = pg_column_size('b=>gf'::hstore);
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select pg_column_size('a=>g, b=>c'::hstore || ('b'=>'gf')) select pg_column_size('a=>g, b=>c'::hstore || hstore('b', 'gf'))
= pg_column_size('a=>g, b=>gf'::hstore); = pg_column_size('a=>g, b=>gf'::hstore);
?column? ?column?
---------- ----------
@ -945,45 +943,45 @@ select pg_column_size(hstore(v))
t t
(1 row) (1 row)
select populate_record(v, ('c' => '3.45')) from testhstore1 v; select populate_record(v, hstore('c', '3.45')) from testhstore1 v;
populate_record populate_record
------------------ ------------------
(1,foo,3.45,3,0) (1,foo,3.45,3,0)
(1 row) (1 row)
select populate_record(v, ('d' => '3.45')) from testhstore1 v; select populate_record(v, hstore('d', '3.45')) from testhstore1 v;
populate_record populate_record
-------------------- --------------------
(1,foo,1.2,3.45,0) (1,foo,1.2,3.45,0)
(1 row) (1 row)
select populate_record(v, ('e' => '123')) from testhstore1 v; select populate_record(v, hstore('e', '123')) from testhstore1 v;
populate_record populate_record
------------------- -------------------
(1,foo,1.2,3,123) (1,foo,1.2,3,123)
(1 row) (1 row)
select populate_record(v, ('e' => null)) from testhstore1 v; select populate_record(v, hstore('e', null)) from testhstore1 v;
ERROR: domain hstestdom1 does not allow null values ERROR: domain hstestdom1 does not allow null values
select populate_record(v, ('c' => null)) from testhstore1 v; select populate_record(v, hstore('c', null)) from testhstore1 v;
populate_record populate_record
----------------- -----------------
(1,foo,,3,0) (1,foo,,3,0)
(1 row) (1 row)
select populate_record(v, ('b' => 'foo') || ('a' => '123')) from testhstore1 v; select populate_record(v, hstore('b', 'foo') || hstore('a', '123')) from testhstore1 v;
populate_record populate_record
------------------- -------------------
(123,foo,1.2,3,0) (123,foo,1.2,3,0)
(1 row) (1 row)
select populate_record(v, ('b' => 'foo') || ('e' => null)) from testhstore0 v; select populate_record(v, hstore('b', 'foo') || hstore('e', null)) from testhstore0 v;
populate_record populate_record
----------------- -----------------
(1,foo,1.2,3) (1,foo,1.2,3)
(1 row) (1 row)
select populate_record(v, ('b' => 'foo') || ('e' => null)) from testhstore1 v; select populate_record(v, hstore('b', 'foo') || hstore('e', null)) from testhstore1 v;
ERROR: domain hstestdom1 does not allow null values ERROR: domain hstestdom1 does not allow null values
select populate_record(v, '') from testhstore0 v; select populate_record(v, '') from testhstore0 v;
populate_record populate_record
@ -997,9 +995,9 @@ select populate_record(v, '') from testhstore1 v;
(1,foo,1.2,3,0) (1,foo,1.2,3,0)
(1 row) (1 row)
select populate_record(null::testhstore1, ('c' => '3.45') || ('a' => '123')); select populate_record(null::testhstore1, hstore('c', '3.45') || hstore('a', '123'));
ERROR: domain hstestdom1 does not allow null values ERROR: domain hstestdom1 does not allow null values
select populate_record(null::testhstore1, ('c' => '3.45') || ('e' => '123')); select populate_record(null::testhstore1, hstore('c', '3.45') || hstore('e', '123'));
populate_record populate_record
----------------- -----------------
(,,3.45,,123) (,,3.45,,123)
@ -1013,45 +1011,45 @@ select populate_record(null::testhstore0, '');
select populate_record(null::testhstore1, ''); select populate_record(null::testhstore1, '');
ERROR: domain hstestdom1 does not allow null values ERROR: domain hstestdom1 does not allow null values
select v #= ('c' => '3.45') from testhstore1 v; select v #= hstore('c', '3.45') from testhstore1 v;
?column? ?column?
------------------ ------------------
(1,foo,3.45,3,0) (1,foo,3.45,3,0)
(1 row) (1 row)
select v #= ('d' => '3.45') from testhstore1 v; select v #= hstore('d', '3.45') from testhstore1 v;
?column? ?column?
-------------------- --------------------
(1,foo,1.2,3.45,0) (1,foo,1.2,3.45,0)
(1 row) (1 row)
select v #= ('e' => '123') from testhstore1 v; select v #= hstore('e', '123') from testhstore1 v;
?column? ?column?
------------------- -------------------
(1,foo,1.2,3,123) (1,foo,1.2,3,123)
(1 row) (1 row)
select v #= ('c' => null) from testhstore1 v; select v #= hstore('c', null) from testhstore1 v;
?column? ?column?
-------------- --------------
(1,foo,,3,0) (1,foo,,3,0)
(1 row) (1 row)
select v #= ('e' => null) from testhstore0 v; select v #= hstore('e', null) from testhstore0 v;
?column? ?column?
--------------- ---------------
(1,foo,1.2,3) (1,foo,1.2,3)
(1 row) (1 row)
select v #= ('e' => null) from testhstore1 v; select v #= hstore('e', null) from testhstore1 v;
ERROR: domain hstestdom1 does not allow null values ERROR: domain hstestdom1 does not allow null values
select v #= (('b' => 'foo') || ('a' => '123')) from testhstore1 v; select v #= (hstore('b', 'foo') || hstore('a', '123')) from testhstore1 v;
?column? ?column?
------------------- -------------------
(123,foo,1.2,3,0) (123,foo,1.2,3,0)
(1 row) (1 row)
select v #= (('b' => 'foo') || ('e' => '123')) from testhstore1 v; select v #= (hstore('b', 'foo') || hstore('e', '123')) from testhstore1 v;
?column? ?column?
------------------- -------------------
(1,foo,1.2,3,123) (1,foo,1.2,3,123)
@ -1069,9 +1067,9 @@ select v #= hstore '' from testhstore1 v;
(1,foo,1.2,3,0) (1,foo,1.2,3,0)
(1 row) (1 row)
select null::testhstore1 #= (('c' => '3.45') || ('a' => '123')); select null::testhstore1 #= (hstore('c', '3.45') || hstore('a', '123'));
ERROR: domain hstestdom1 does not allow null values ERROR: domain hstestdom1 does not allow null values
select null::testhstore1 #= (('c' => '3.45') || ('e' => '123')); select null::testhstore1 #= (hstore('c', '3.45') || hstore('e', '123'));
?column? ?column?
--------------- ---------------
(,,3.45,,123) (,,3.45,,123)

View File

@ -1,4 +1,4 @@
/* contrib/hstore/hstore-1.0-1.1.sql */ /* contrib/hstore/hstore--1.0--1.1.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION -- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "ALTER EXTENSION hstore UPDATE TO '1.1'" to load this file. \quit \echo Use "ALTER EXTENSION hstore UPDATE TO '1.1'" to load this file. \quit

View File

@ -152,15 +152,15 @@ select pg_column_size('aa=>1, b=>2'::hstore || ''::hstore)
select pg_column_size(''::hstore || 'aa=>1, b=>2'::hstore) select pg_column_size(''::hstore || 'aa=>1, b=>2'::hstore)
= pg_column_size('aa=>1, b=>2'::hstore); = pg_column_size('aa=>1, b=>2'::hstore);
-- => -- hstore(text,text)
select 'a=>g, b=>c'::hstore || ( 'asd'=>'gf' ); select 'a=>g, b=>c'::hstore || hstore('asd', 'gf');
select 'a=>g, b=>c'::hstore || ( 'b'=>'gf' ); select 'a=>g, b=>c'::hstore || hstore('b', 'gf');
select 'a=>g, b=>c'::hstore || ( 'b'=>'NULL' ); select 'a=>g, b=>c'::hstore || hstore('b', 'NULL');
select 'a=>g, b=>c'::hstore || ( 'b'=>NULL ); select 'a=>g, b=>c'::hstore || hstore('b', NULL);
select ('a=>g, b=>c'::hstore || ( NULL=>'b' )) is null; select ('a=>g, b=>c'::hstore || hstore(NULL, 'b')) is null;
select pg_column_size(('b'=>'gf')) select pg_column_size(hstore('b', 'gf'))
= pg_column_size('b=>gf'::hstore); = pg_column_size('b=>gf'::hstore);
select pg_column_size('a=>g, b=>c'::hstore || ('b'=>'gf')) select pg_column_size('a=>g, b=>c'::hstore || hstore('b', 'gf'))
= pg_column_size('a=>g, b=>gf'::hstore); = pg_column_size('a=>g, b=>gf'::hstore);
-- slice() -- slice()
@ -215,32 +215,32 @@ select hstore(null::testhstore1);
select pg_column_size(hstore(v)) select pg_column_size(hstore(v))
= pg_column_size('a=>1, b=>"foo", c=>"1.2", d=>"3", e=>"0"'::hstore) = pg_column_size('a=>1, b=>"foo", c=>"1.2", d=>"3", e=>"0"'::hstore)
from testhstore1 v; from testhstore1 v;
select populate_record(v, ('c' => '3.45')) from testhstore1 v; select populate_record(v, hstore('c', '3.45')) from testhstore1 v;
select populate_record(v, ('d' => '3.45')) from testhstore1 v; select populate_record(v, hstore('d', '3.45')) from testhstore1 v;
select populate_record(v, ('e' => '123')) from testhstore1 v; select populate_record(v, hstore('e', '123')) from testhstore1 v;
select populate_record(v, ('e' => null)) from testhstore1 v; select populate_record(v, hstore('e', null)) from testhstore1 v;
select populate_record(v, ('c' => null)) from testhstore1 v; select populate_record(v, hstore('c', null)) from testhstore1 v;
select populate_record(v, ('b' => 'foo') || ('a' => '123')) from testhstore1 v; select populate_record(v, hstore('b', 'foo') || hstore('a', '123')) from testhstore1 v;
select populate_record(v, ('b' => 'foo') || ('e' => null)) from testhstore0 v; select populate_record(v, hstore('b', 'foo') || hstore('e', null)) from testhstore0 v;
select populate_record(v, ('b' => 'foo') || ('e' => null)) from testhstore1 v; select populate_record(v, hstore('b', 'foo') || hstore('e', null)) from testhstore1 v;
select populate_record(v, '') from testhstore0 v; select populate_record(v, '') from testhstore0 v;
select populate_record(v, '') from testhstore1 v; select populate_record(v, '') from testhstore1 v;
select populate_record(null::testhstore1, ('c' => '3.45') || ('a' => '123')); select populate_record(null::testhstore1, hstore('c', '3.45') || hstore('a', '123'));
select populate_record(null::testhstore1, ('c' => '3.45') || ('e' => '123')); select populate_record(null::testhstore1, hstore('c', '3.45') || hstore('e', '123'));
select populate_record(null::testhstore0, ''); select populate_record(null::testhstore0, '');
select populate_record(null::testhstore1, ''); select populate_record(null::testhstore1, '');
select v #= ('c' => '3.45') from testhstore1 v; select v #= hstore('c', '3.45') from testhstore1 v;
select v #= ('d' => '3.45') from testhstore1 v; select v #= hstore('d', '3.45') from testhstore1 v;
select v #= ('e' => '123') from testhstore1 v; select v #= hstore('e', '123') from testhstore1 v;
select v #= ('c' => null) from testhstore1 v; select v #= hstore('c', null) from testhstore1 v;
select v #= ('e' => null) from testhstore0 v; select v #= hstore('e', null) from testhstore0 v;
select v #= ('e' => null) from testhstore1 v; select v #= hstore('e', null) from testhstore1 v;
select v #= (('b' => 'foo') || ('a' => '123')) from testhstore1 v; select v #= (hstore('b', 'foo') || hstore('a', '123')) from testhstore1 v;
select v #= (('b' => 'foo') || ('e' => '123')) from testhstore1 v; select v #= (hstore('b', 'foo') || hstore('e', '123')) from testhstore1 v;
select v #= hstore '' from testhstore0 v; select v #= hstore '' from testhstore0 v;
select v #= hstore '' from testhstore1 v; select v #= hstore '' from testhstore1 v;
select null::testhstore1 #= (('c' => '3.45') || ('a' => '123')); select null::testhstore1 #= (hstore('c', '3.45') || hstore('a', '123'));
select null::testhstore1 #= (('c' => '3.45') || ('e' => '123')); select null::testhstore1 #= (hstore('c', '3.45') || hstore('e', '123'));
select null::testhstore0 #= hstore ''; select null::testhstore0 #= hstore '';
select null::testhstore1 #= hstore ''; select null::testhstore1 #= hstore '';
select v #= h from testhstore1 v, (values (hstore 'a=>123',1),('b=>foo,c=>3.21',2),('a=>null',3),('e=>123',4),('f=>blah',5)) x(h,i) order by i; select v #= h from testhstore1 v, (values (hstore 'a=>123',1),('b=>foo,c=>3.21',2),('a=>null',3),('e=>123',4),('f=>blah',5)) x(h,i) order by i;