2013-02-02 23:06:38 +01:00
|
|
|
--
|
|
|
|
-- Tests for psql features that aren't closely connected to any
|
|
|
|
-- specific server features
|
|
|
|
--
|
|
|
|
|
|
|
|
-- \gset
|
|
|
|
|
|
|
|
select 10 as test01, 20 as test02, 'Hello' as test03 \gset pref01_
|
|
|
|
|
|
|
|
\echo :pref01_test01 :pref01_test02 :pref01_test03
|
|
|
|
|
|
|
|
-- should fail: bad variable name
|
|
|
|
select 10 as "bad name"
|
|
|
|
\gset
|
|
|
|
|
|
|
|
-- multiple backslash commands in one line
|
|
|
|
select 1 as x, 2 as y \gset pref01_ \\ \echo :pref01_x
|
|
|
|
select 3 as x, 4 as y \gset pref01_ \echo :pref01_x \echo :pref01_y
|
|
|
|
select 5 as x, 6 as y \gset pref01_ \\ \g \echo :pref01_x :pref01_y
|
|
|
|
select 7 as x, 8 as y \g \gset pref01_ \echo :pref01_x :pref01_y
|
|
|
|
|
|
|
|
-- NULL should unset the variable
|
|
|
|
\set var2 xyz
|
|
|
|
select 1 as var1, NULL as var2, 3 as var3 \gset
|
|
|
|
\echo :var1 :var2 :var3
|
|
|
|
|
|
|
|
-- \gset requires just one tuple
|
|
|
|
select 10 as test01, 20 as test02 from generate_series(1,3) \gset
|
|
|
|
select 10 as test01, 20 as test02 from generate_series(1,0) \gset
|
|
|
|
|
|
|
|
-- \gset should work in FETCH_COUNT mode too
|
|
|
|
\set FETCH_COUNT 1
|
|
|
|
|
|
|
|
select 1 as x, 2 as y \gset pref01_ \\ \echo :pref01_x
|
|
|
|
select 3 as x, 4 as y \gset pref01_ \echo :pref01_x \echo :pref01_y
|
|
|
|
select 10 as test01, 20 as test02 from generate_series(1,3) \gset
|
|
|
|
select 10 as test01, 20 as test02 from generate_series(1,0) \gset
|
|
|
|
|
|
|
|
\unset FETCH_COUNT
|
2013-10-03 21:18:02 +02:00
|
|
|
|
|
|
|
-- show all pset options
|
|
|
|
\pset
|