-- -- 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 10 20 Hello -- should fail: bad variable name select 10 as "bad name" \gset could not set variable "bad name" -- multiple backslash commands in one line select 1 as x, 2 as y \gset pref01_ \\ \echo :pref01_x 1 select 3 as x, 4 as y \gset pref01_ \echo :pref01_x \echo :pref01_y 3 4 select 5 as x, 6 as y \gset pref01_ \\ \g \echo :pref01_x :pref01_y x | y ---+--- 5 | 6 (1 row) 5 6 select 7 as x, 8 as y \g \gset pref01_ \echo :pref01_x :pref01_y x | y ---+--- 7 | 8 (1 row) 7 8 -- NULL should unset the variable \set var2 xyz select 1 as var1, NULL as var2, 3 as var3 \gset \echo :var1 :var2 :var3 1 :var2 3 -- \gset requires just one tuple select 10 as test01, 20 as test02 from generate_series(1,3) \gset more than one row returned for \gset select 10 as test01, 20 as test02 from generate_series(1,0) \gset no rows returned for \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 1 select 3 as x, 4 as y \gset pref01_ \echo :pref01_x \echo :pref01_y 3 4 select 10 as test01, 20 as test02 from generate_series(1,3) \gset more than one row returned for \gset select 10 as test01, 20 as test02 from generate_series(1,0) \gset no rows returned for \gset \unset FETCH_COUNT -- show all pset options \pset border 1 columns 0 expanded off fieldsep '|' fieldsep_zero off footer on format aligned linestyle ascii null '' numericlocale off pager 1 recordsep '\n' recordsep_zero off tableattr title tuples_only off