diff --git a/sqlglot/expressions/json.py b/sqlglot/expressions/json.py index 8f006c49a8..63e0f65880 100644 --- a/sqlglot/expressions/json.py +++ b/sqlglot/expressions/json.py @@ -16,6 +16,7 @@ class JSONArray(Expression, Func): "return_type": False, "strict": False, } + is_var_len_args = True class JSONArrayAgg(Expression, AggFunc): diff --git a/tests/dialects/test_duckdb.py b/tests/dialects/test_duckdb.py index 2db3e56796..73f027e195 100644 --- a/tests/dialects/test_duckdb.py +++ b/tests/dialects/test_duckdb.py @@ -577,6 +577,13 @@ def test_duckdb(self): "snowflake": "SELECT TO_VARIANT(ARRAY_CONSTRUCT())", }, ) + self.validate_all( + "SELECT JSON_ARRAY('a', 'b', 'c', 'd', 'e')", + write={ + "duckdb": "SELECT JSON_ARRAY('a', 'b', 'c', 'd', 'e')", + "snowflake": "SELECT TO_VARIANT(ARRAY_CONSTRUCT('a', 'b', 'c', 'd', 'e'))", + }, + ) self.validate_identity( "SELECT col FROM t WHERE JSON_EXTRACT_STRING(col, '$.id') NOT IN ('b')", "SELECT col FROM t WHERE NOT (col ->> '$.id') IN ('b')",