@@ -530,10 +530,84 @@ SELECT pgv_get('vars', 'jNULL', NULL::jsonb);
530530
531531(1 row)
532532
533+ -- Array variables
534+ SELECT pgv_set('vars', 'arr1', '{1, 2, null}'::int[]);
535+ pgv_set
536+ ---------
537+
538+ (1 row)
539+
540+ SELECT pgv_set('vars', 'arr2', '{"bar", "balance", "active"}'::text[]);
541+ pgv_set
542+ ---------
543+
544+ (1 row)
545+
546+ SELECT pgv_set('vars2', 'j1', '{1, 2, null}'::int[]);
547+ ERROR: variable "j1" requires "jsonb" value
548+ SELECT pgv_get('vars', 'arr1', NULL::int[]);
549+ pgv_get
550+ ------------
551+ {1,2,NULL}
552+ (1 row)
553+
554+ SELECT pgv_get('vars', 'arr2', NULL::int[]);
555+ ERROR: variable "arr2" requires "text[]" value
556+ SELECT pgv_set('vars', 'arr1', '{"bar", "balance", "active"}'::text[]);
557+ ERROR: variable "arr1" requires "integer[]" value
558+ SELECT pgv_set('vars', 'arr1', '{3, 4, 5}'::int[]);
559+ pgv_set
560+ ---------
561+
562+ (1 row)
563+
564+ SELECT pgv_get('vars', 'arr1', NULL::int[]);
565+ pgv_get
566+ ---------
567+ {3,4,5}
568+ (1 row)
569+
570+ SELECT pgv_get('vars', 'arr3', NULL::int[]);
571+ ERROR: unrecognized variable "arr3"
572+ SELECT pgv_get('vars', 'arr3', NULL::int[], false);
573+ pgv_get
574+ ---------
575+
576+ (1 row)
577+
578+ SELECT pgv_exists('vars', 'arr3');
579+ pgv_exists
580+ ------------
581+ f
582+ (1 row)
583+
584+ SELECT pgv_exists('vars', 'arr1');
585+ pgv_exists
586+ ------------
587+ t
588+ (1 row)
589+
590+ SELECT pgv_get('vars2', 'j1', NULL::int[]);
591+ ERROR: variable "j1" requires "jsonb" value
592+ SELECT pgv_set('vars', 'arrNULL', NULL::int[]);
593+ pgv_set
594+ ---------
595+
596+ (1 row)
597+
598+ SELECT pgv_get('vars', 'arrNULL', NULL::int[]);
599+ pgv_get
600+ ---------
601+
602+ (1 row)
603+
533604-- Manipulate variables
534605SELECT * FROM pgv_list() order by package, name;
535606 package | name | is_transactional
536607---------+----------+------------------
608+ vars | arr1 | f
609+ vars | arr2 | f
610+ vars | arrNULL | f
537611 vars | d1 | f
538612 vars | d2 | f
539613 vars | dNULL | f
@@ -555,7 +629,7 @@ SELECT * FROM pgv_list() order by package, name;
555629 vars | tstzNULL | f
556630 vars2 | j1 | f
557631 vars2 | j2 | f
558- (21 rows)
632+ (24 rows)
559633
560634SELECT pgv_remove('vars', 'int3');
561635ERROR: unrecognized variable "int3"
@@ -590,6 +664,9 @@ SELECT pgv_exists('vars2');
590664SELECT * FROM pgv_list() order by package, name;
591665 package | name | is_transactional
592666---------+----------+------------------
667+ vars | arr1 | f
668+ vars | arr2 | f
669+ vars | arrNULL | f
593670 vars | d1 | f
594671 vars | d2 | f
595672 vars | dNULL | f
@@ -608,7 +685,7 @@ SELECT * FROM pgv_list() order by package, name;
608685 vars | tstz1 | f
609686 vars | tstz2 | f
610687 vars | tstzNULL | f
611- (18 rows)
688+ (21 rows)
612689
613690SELECT pgv_free();
614691 pgv_free
0 commit comments