From c508313e4b3f913e15736f0f36db037a63bae2a9 Mon Sep 17 00:00:00 2001
From: Kaitmazian Maksim <m.kaitmazian@picodata.io>
Date: Thu, 20 Jun 2024 14:00:04 +0300
Subject: [PATCH] fix: support list param values in SET command

---
 sbroad-core/src/frontend/sql/ir/tests.rs | 5 +++++
 sbroad-core/src/frontend/sql/query.pest  | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/sbroad-core/src/frontend/sql/ir/tests.rs b/sbroad-core/src/frontend/sql/ir/tests.rs
index e9273244e..2137d5c3b 100644
--- a/sbroad-core/src/frontend/sql/ir/tests.rs
+++ b/sbroad-core/src/frontend/sql/ir/tests.rs
@@ -3568,6 +3568,11 @@ fn front_mock_set_param_transaction() {
         r#"set local time zone local"#,
         r#"set time zone -3"#,
         r#"set time zone 'value'"#,
+        r#"SET search_path TO my_schema, public;"#,
+        r#"SET datestyle TO postgres, dmy;"#,
+        r#"SET TIME ZONE 'PST8PDT';"#,
+        r#"SET TIME ZONE 'Europe/Rome';"#,
+        r#"SET param To list, 'of', 4, valuez;"#,
         r#"set transaction snapshot 'snapshot-string'"#,
         r#"set transaction read write"#,
         r#"set transaction read only"#,
diff --git a/sbroad-core/src/frontend/sql/query.pest b/sbroad-core/src/frontend/sql/query.pest
index 014ed49ef..3b12d6c23 100644
--- a/sbroad-core/src/frontend/sql/query.pest
+++ b/sbroad-core/src/frontend/sql/query.pest
@@ -127,7 +127,7 @@ DDL = _{ CreateTable | DropTable | CreateIndex | DropIndex
             ScopeSession  = { ^"session" }
             ScopeLocal    = { ^"local" }
         ConfParam = { NamedParam | TimeZoneParam }
-            NamedParam    = { Identifier ~ (^"to" | "=") ~ NamedParamValue }
+            NamedParam    = { Identifier ~ (^"to" | "=") ~ (NamedParamValue ~ ("," ~ NamedParamValue)*) }
                 NamedParamValue = { ParamValueDefault | SingleQuotedString | Identifier | Double | Decimal | Integer }
             TimeZoneParam = { ^"time" ~ ^"zone" ~ TimeZoneParamValue }
                 TimeZoneParamValue = { NamedParamValue | ParamValueLocal }
-- 
GitLab