nested hstore
[hstore.git] / expected / types.out
1 SELECT '"foo"=>true'::hstore;
2   hstore  
3 ----------
4  "foo"=>t
5 (1 row)
6
7 SELECT 'foo=>true'::hstore;
8   hstore  
9 ----------
10  "foo"=>t
11 (1 row)
12
13 SELECT '"true"=>true'::hstore;
14   hstore   
15 -----------
16  "true"=>t
17 (1 row)
18
19 SELECT 'true=>true'::hstore;
20   hstore   
21 -----------
22  "true"=>t
23 (1 row)
24
25 SELECT '"t"=>true'::hstore;
26  hstore 
27 --------
28  "t"=>t
29 (1 row)
30
31 SELECT 't=>true'::hstore;
32  hstore 
33 --------
34  "t"=>t
35 (1 row)
36
37 SELECT '"false"=>true'::hstore;
38    hstore   
39 ------------
40  "false"=>t
41 (1 row)
42
43 SELECT 'false=>true'::hstore;
44    hstore   
45 ------------
46  "false"=>t
47 (1 row)
48
49 SELECT '"f"=>true'::hstore;
50  hstore 
51 --------
52  "f"=>t
53 (1 row)
54
55 SELECT 'f=>true'::hstore;
56  hstore 
57 --------
58  "f"=>t
59 (1 row)
60
61 SELECT '"foo"=>false'::hstore;
62   hstore  
63 ----------
64  "foo"=>f
65 (1 row)
66
67 SELECT 'foo=>false'::hstore;
68   hstore  
69 ----------
70  "foo"=>f
71 (1 row)
72
73 SELECT '"false"=>false'::hstore;
74    hstore   
75 ------------
76  "false"=>f
77 (1 row)
78
79 SELECT 'false=>false'::hstore;
80    hstore   
81 ------------
82  "false"=>f
83 (1 row)
84
85 SELECT '"t"=>false'::hstore;
86  hstore 
87 --------
88  "t"=>f
89 (1 row)
90
91 SELECT 't=>false'::hstore;
92  hstore 
93 --------
94  "t"=>f
95 (1 row)
96
97 SELECT '"false"=>false'::hstore;
98    hstore   
99 ------------
100  "false"=>f
101 (1 row)
102
103 SELECT 'false=>false'::hstore;
104    hstore   
105 ------------
106  "false"=>f
107 (1 row)
108
109 SELECT '"f"=>false'::hstore;
110  hstore 
111 --------
112  "f"=>f
113 (1 row)
114
115 SELECT 'f=>false'::hstore;
116  hstore 
117 --------
118  "f"=>f
119 (1 row)
120
121 SELECT '"1"=>x'::hstore;
122   hstore  
123 ----------
124  "1"=>"x"
125 (1 row)
126
127 SELECT '1=>x'::hstore;
128   hstore  
129 ----------
130  "1"=>"x"
131 (1 row)
132
133 SELECT 'foo=>1'::hstore;
134   hstore  
135 ----------
136  "foo"=>1
137 (1 row)
138
139 SELECT 'foo=>1.'::hstore;
140   hstore  
141 ----------
142  "foo"=>1
143 (1 row)
144
145 SELECT 'foo=>1.0'::hstore;
146    hstore   
147 ------------
148  "foo"=>1.0
149 (1 row)
150
151 SELECT 'foo=>1.01'::hstore;
152    hstore    
153 -------------
154  "foo"=>1.01
155 (1 row)
156
157 SELECT 'foo=>1.01e'::hstore;
158      hstore     
159 ----------------
160  "foo"=>"1.01e"
161 (1 row)
162
163 SELECT 'foo=>1.01e1'::hstore;
164    hstore    
165 -------------
166  "foo"=>10.1
167 (1 row)
168
169 SELECT 'foo=>1.01e+1'::hstore;
170    hstore    
171 -------------
172  "foo"=>10.1
173 (1 row)
174
175 SELECT 'foo=>1.01e-1'::hstore;
176     hstore    
177 --------------
178  "foo"=>0.101
179 (1 row)
180
181 SELECT 'foo=>.1'::hstore;
182    hstore   
183 ------------
184  "foo"=>0.1
185 (1 row)
186
187 SELECT 'foo=>.1e'::hstore;
188     hstore    
189 --------------
190  "foo"=>".1e"
191 (1 row)
192
193 SELECT 'foo=>.1e1'::hstore;
194   hstore  
195 ----------
196  "foo"=>1
197 (1 row)
198
199 SELECT 'foo=>.1e+1'::hstore;
200   hstore  
201 ----------
202  "foo"=>1
203 (1 row)
204
205 SELECT 'foo=>.1e-1'::hstore;
206    hstore    
207 -------------
208  "foo"=>0.01
209 (1 row)
210
211 SELECT 'foo=>0.1e-1'::hstore;
212    hstore    
213 -------------
214  "foo"=>0.01
215 (1 row)
216
217 SELECT 'foo=>00.1e-1'::hstore;
218    hstore    
219 -------------
220  "foo"=>0.01
221 (1 row)
222
223 SELECT 'foo=>+1'::hstore;
224   hstore  
225 ----------
226  "foo"=>1
227 (1 row)
228
229 SELECT 'foo=>+1.'::hstore;
230   hstore  
231 ----------
232  "foo"=>1
233 (1 row)
234
235 SELECT 'foo=>+1.0'::hstore;
236    hstore   
237 ------------
238  "foo"=>1.0
239 (1 row)
240
241 SELECT 'foo=>+1.01'::hstore;
242    hstore    
243 -------------
244  "foo"=>1.01
245 (1 row)
246
247 SELECT 'foo=>+1.01e'::hstore;
248      hstore      
249 -----------------
250  "foo"=>"+1.01e"
251 (1 row)
252
253 SELECT 'foo=>+1.01e1'::hstore;
254    hstore    
255 -------------
256  "foo"=>10.1
257 (1 row)
258
259 SELECT 'foo=>+1.01e+1'::hstore;
260    hstore    
261 -------------
262  "foo"=>10.1
263 (1 row)
264
265 SELECT 'foo=>+1.01e-1'::hstore;
266     hstore    
267 --------------
268  "foo"=>0.101
269 (1 row)
270
271 SELECT 'foo=>+.1'::hstore;
272    hstore   
273 ------------
274  "foo"=>0.1
275 (1 row)
276
277 SELECT 'foo=>+.1e'::hstore;
278     hstore     
279 ---------------
280  "foo"=>"+.1e"
281 (1 row)
282
283 SELECT 'foo=>+.1e1'::hstore;
284   hstore  
285 ----------
286  "foo"=>1
287 (1 row)
288
289 SELECT 'foo=>+.1e+1'::hstore;
290   hstore  
291 ----------
292  "foo"=>1
293 (1 row)
294
295 SELECT 'foo=>+.1e-1'::hstore;
296    hstore    
297 -------------
298  "foo"=>0.01
299 (1 row)
300
301 SELECT 'foo=>-1'::hstore;
302   hstore   
303 -----------
304  "foo"=>-1
305 (1 row)
306
307 SELECT 'foo=>-1.'::hstore;
308   hstore   
309 -----------
310  "foo"=>-1
311 (1 row)
312
313 SELECT 'foo=>-1.0'::hstore;
314    hstore    
315 -------------
316  "foo"=>-1.0
317 (1 row)
318
319 SELECT 'foo=>-1.01'::hstore;
320     hstore    
321 --------------
322  "foo"=>-1.01
323 (1 row)
324
325 SELECT 'foo=>-1.01e'::hstore;
326      hstore      
327 -----------------
328  "foo"=>"-1.01e"
329 (1 row)
330
331 SELECT 'foo=>-1.01e1'::hstore;
332     hstore    
333 --------------
334  "foo"=>-10.1
335 (1 row)
336
337 SELECT 'foo=>-1.01e+1'::hstore;
338     hstore    
339 --------------
340  "foo"=>-10.1
341 (1 row)
342
343 SELECT 'foo=>-1.01e-1'::hstore;
344     hstore     
345 ---------------
346  "foo"=>-0.101
347 (1 row)
348
349 SELECT 'foo=>-.1'::hstore;
350    hstore    
351 -------------
352  "foo"=>-0.1
353 (1 row)
354
355 SELECT 'foo=>-.1e'::hstore;
356     hstore     
357 ---------------
358  "foo"=>"-.1e"
359 (1 row)
360
361 SELECT 'foo=>-.1e1'::hstore;
362   hstore   
363 -----------
364  "foo"=>-1
365 (1 row)
366
367 SELECT 'foo=>-.1e+1'::hstore;
368   hstore   
369 -----------
370  "foo"=>-1
371 (1 row)
372
373 SELECT 'foo=>-.1e-1'::hstore;
374     hstore    
375 --------------
376  "foo"=>-0.01
377 (1 row)
378
379 SELECT 'foo=>1e2000'::hstore;
380      hstore      
381 -----------------
382  "foo"=>"1e2000"
383 (1 row)
384
385 SELECT 'foo=>1e12, bar=>x'::hstore ^> 'foo';
386    ?column?    
387 ---------------
388  1000000000000
389 (1 row)
390
391 SELECT 'foo=>1e12, bar=>x'::hstore ^> 'bar';
392  ?column? 
393 ----------
394          
395 (1 row)
396
397 SELECT 'foo=>1e12, bar=>x'::hstore ^> 0;
398  ?column? 
399 ----------
400          
401 (1 row)
402
403 SELECT 'foo=>1e12, bar=>x'::hstore ^> 1;
404    ?column?    
405 ---------------
406  1000000000000
407 (1 row)
408
409 SELECT '[foo, 1e12, bar, x]'::hstore ^> 'foo';
410  ?column? 
411 ----------
412          
413 (1 row)
414
415 SELECT '[foo, 1e12, bar, x]'::hstore ^> 'bar';
416  ?column? 
417 ----------
418          
419 (1 row)
420
421 SELECT '[foo, 1e12, bar, x]'::hstore ^> 0;
422  ?column? 
423 ----------
424          
425 (1 row)
426
427 SELECT '[foo, 1e12, bar, x]'::hstore ^> 1;
428    ?column?    
429 ---------------
430  1000000000000
431 (1 row)
432
433 SELECT 'foo=>{x, 1e-12}'::hstore #^> '{foo, 0}';
434  ?column? 
435 ----------
436          
437 (1 row)
438
439 SELECT 'foo=>{x, 1e-12}'::hstore #^> '{foo, 1}';
440     ?column?    
441 ----------------
442  0.000000000001
443 (1 row)
444
445 SELECT 'foo=>t, bar=>x'::hstore ?> 'foo';
446  ?column? 
447 ----------
448  t
449 (1 row)
450
451 SELECT 'foo=>t, bar=>x'::hstore ?> 'bar';
452  ?column? 
453 ----------
454  
455 (1 row)
456
457 SELECT 'foo=>t, bar=>x'::hstore ?> 0;
458  ?column? 
459 ----------
460  
461 (1 row)
462
463 SELECT 'foo=>t, bar=>x'::hstore ?> 1;
464  ?column? 
465 ----------
466  t
467 (1 row)
468
469 SELECT '[foo, t, bar, x]'::hstore ?> 'foo';
470  ?column? 
471 ----------
472  
473 (1 row)
474
475 SELECT '[foo, t, bar, x]'::hstore ?> 'bar';
476  ?column? 
477 ----------
478  
479 (1 row)
480
481 SELECT '[foo, t, bar, x]'::hstore ?> 0;
482  ?column? 
483 ----------
484  
485 (1 row)
486
487 SELECT '[foo, t, bar, x]'::hstore ?> 1;
488  ?column? 
489 ----------
490  t
491 (1 row)
492
493 SELECT 'foo=>{x, t}'::hstore #?> '{foo, 0}';
494  ?column? 
495 ----------
496  
497 (1 row)
498
499 SELECT 'foo=>{x, t}'::hstore #?> '{foo, 1}';
500  ?column? 
501 ----------
502  t
503 (1 row)
504
505 SELECT 'foo=>f, bar=>x'::hstore ?> 'foo';
506  ?column? 
507 ----------
508  f
509 (1 row)
510
511 SELECT 'foo=>f, bar=>x'::hstore ?> 'bar';
512  ?column? 
513 ----------
514  
515 (1 row)
516
517 SELECT 'foo=>f, bar=>x'::hstore ?> 0;
518  ?column? 
519 ----------
520  
521 (1 row)
522
523 SELECT 'foo=>f, bar=>x'::hstore ?> 1;
524  ?column? 
525 ----------
526  f
527 (1 row)
528
529 SELECT '[foo, f, bar, x]'::hstore ?> 'foo';
530  ?column? 
531 ----------
532  
533 (1 row)
534
535 SELECT '[foo, f, bar, x]'::hstore ?> 'bar';
536  ?column? 
537 ----------
538  
539 (1 row)
540
541 SELECT '[foo, f, bar, x]'::hstore ?> 0;
542  ?column? 
543 ----------
544  
545 (1 row)
546
547 SELECT '[foo, f, bar, x]'::hstore ?> 1;
548  ?column? 
549 ----------
550  f
551 (1 row)
552
553 SELECT 'foo=>{x, f}'::hstore #?> '{foo, 0}';
554  ?column? 
555 ----------
556  
557 (1 row)
558
559 SELECT 'foo=>{x, f}'::hstore #?> '{foo, 1}';
560  ?column? 
561 ----------
562  f
563 (1 row)
564
565 SELECT hstore_typeof('a=>b') AS hash;
566  hash 
567 ------
568  hash
569 (1 row)
570
571 SELECT hstore_typeof('{a=>b}') AS hash;
572  hash 
573 ------
574  hash
575 (1 row)
576
577 SELECT hstore_typeof('{a, b}') AS array;
578  array 
579 -------
580  array
581 (1 row)
582
583 SELECT hstore_typeof('{{a=>b}}') AS array;
584  array 
585 -------
586  array
587 (1 row)
588
589 SELECT hstore_typeof('[a, b]') AS array;
590  array 
591 -------
592  array
593 (1 row)
594
595 SELECT hstore_typeof('') AS "NULL";
596  NULL 
597 ------
598  
599 (1 row)
600
601 SELECT hstore_typeof('NULL') AS "null";
602  null 
603 ------
604  null
605 (1 row)
606
607 SELECT hstore_typeof('1.0') AS numeric;
608  numeric 
609 ---------
610  numeric
611 (1 row)
612
613 SELECT hstore_typeof('t') AS bool;
614  bool 
615 ------
616  bool
617 (1 row)
618
619 SELECT hstore_typeof('f') AS bool;
620  bool 
621 ------
622  bool
623 (1 row)
624
625 SELECT hstore('xxx', 't'::bool);
626   hstore  
627 ----------
628  "xxx"=>t
629 (1 row)
630
631 SELECT hstore('xxx', 'f'::bool);
632   hstore  
633 ----------
634  "xxx"=>f
635 (1 row)
636
637 SELECT hstore('xxx', 3.14);
638    hstore    
639 -------------
640  "xxx"=>3.14
641 (1 row)
642
643 SELECT hstore('xxx', 3.14::numeric);
644    hstore    
645 -------------
646  "xxx"=>3.14
647 (1 row)
648
649 SELECT hstore('xxx', '3.14'::numeric);
650    hstore    
651 -------------
652  "xxx"=>3.14
653 (1 row)
654
655 SELECT hstore(NULL);
656  hstore 
657 --------
658  
659 (1 row)
660
661 SELECT hstore('NULL');
662  hstore 
663 --------
664  NULL
665 (1 row)
666
667 SELECT hstore('t'::bool) AS "true", hstore('f'::bool) AS "false";
668  true | false 
669 ------+-------
670  t    | f
671 (1 row)
672
673 SELECT hstore(3.14), hstore(3.14::numeric), hstore('3.14'::numeric);
674  hstore | hstore | hstore 
675 --------+--------+--------
676  3.14   | 3.14   | 3.14
677 (1 row)
678
679 SELECT hstore('xxx', 'foo=>t, bar=>3.14, zzz=>xxx'::hstore);
680                     hstore                    
681 ----------------------------------------------
682  "xxx"=>{"bar"=>3.14, "foo"=>t, "zzz"=>"xxx"}
683 (1 row)
684
685 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::int2[]);
686      array_to_hstore     
687 -------------------------
688  [[1, 1, 4], [23, 3, 5]]
689 (1 row)
690
691 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::int4[]);
692      array_to_hstore     
693 -------------------------
694  [[1, 1, 4], [23, 3, 5]]
695 (1 row)
696
697 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::int8[]);
698      array_to_hstore     
699 -------------------------
700  [[1, 1, 4], [23, 3, 5]]
701 (1 row)
702
703 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::float4[]);
704      array_to_hstore     
705 -------------------------
706  [[1, 1, 4], [23, 3, 5]]
707 (1 row)
708
709 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::float8[]);
710      array_to_hstore     
711 -------------------------
712  [[1, 1, 4], [23, 3, 5]]
713 (1 row)
714
715 SELECT array_to_hstore('{{1,1,f},{f,t,NULL}}'::bool[]);
716       array_to_hstore      
717 ---------------------------
718  [[t, t, f], [f, t, NULL]]
719 (1 row)
720
721 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::text[]);
722            array_to_hstore           
723 -------------------------------------
724  [["1", "1", "4"], ["23", "3", "5"]]
725 (1 row)
726
727 SELECT array_to_hstore('{{1,1,4},{23,3,5}}'::varchar[]);
728            array_to_hstore           
729 -------------------------------------
730  [["1", "1", "4"], ["23", "3", "5"]]
731 (1 row)
732
733 SELECT array_to_hstore('{{{1,11},{1,1},{4,41}},{{23,231},{3,31},{5,51}}}'::int4[]);
734                        array_to_hstore                       
735 -------------------------------------------------------------
736  [[[1, 11], [1, 1], [4, 41], [23, 231]], [[3, 31], [5, 51]]]
737 (1 row)
738
739 SELECT hstore('array', array_to_hstore('{{{1,11},{1,1},{4,41}},{{23,231},{3,31},{5,51}}}'::int4[]));
740                                 hstore                                
741 ----------------------------------------------------------------------
742  "array"=>[[[1, 11], [1, 1], [4, 41], [23, 231]], [[3, 31], [5, 51]]]
743 (1 row)
744
745 SELECT 'a=>"00012333", b=>"12233", c=>00012333, d=>12233'::hstore;
746                         hstore                         
747 -------------------------------------------------------
748  "a"=>"00012333", "b"=>"12233", "c"=>12333, "d"=>12233
749 (1 row)
750
751 SELECT hstore_to_json('a=>"00012333", b=>"12233", c=>00012333, d=>12233'::hstore);
752                      hstore_to_json                      
753 ---------------------------------------------------------
754  {"a": "00012333", "b": "12233", "c": 12333, "d": 12233}
755 (1 row)
756
757 SELECT hstore_to_json_loose('a=>"00012333", b=>"12233", c=>00012333, d=>12233'::hstore);
758                  hstore_to_json_loose                  
759 -------------------------------------------------------
760  {"a": "00012333", "b": 12233, "c": 12333, "d": 12233}
761 (1 row)
762