From 1952387a0e23ad54e2ddc66b4e71598aad517ffc Mon Sep 17 00:00:00 2001 From: Simen Strand Date: Thu, 23 Jul 2026 12:13:16 +0200 Subject: [PATCH] Fix Redshift parenthesized single-column SORTKEY Signed-off-by: Simen Strand --- sqlmesh/core/engine_adapter/redshift.py | 7 ++++++- tests/core/engine_adapter/test_redshift.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sqlmesh/core/engine_adapter/redshift.py b/sqlmesh/core/engine_adapter/redshift.py index 39453f0cd2..22dc2f9dbc 100644 --- a/sqlmesh/core/engine_adapter/redshift.py +++ b/sqlmesh/core/engine_adapter/redshift.py @@ -295,7 +295,12 @@ def _to_identifier_if_string(expression: exp.Expr) -> exp.Expr: sortkey = table_properties.get("SORTKEY") if sortkey: - sortkey_expressions = sortkey.expressions if sortkey.expressions else [sortkey] + if isinstance(sortkey, (exp.Tuple, exp.Array)): + sortkey_expressions = sortkey.expressions + elif isinstance(sortkey, exp.Paren): + sortkey_expressions = [sortkey.unnest()] + else: + sortkey_expressions = [sortkey] properties.append( exp.SortKeyProperty( this=[ diff --git a/tests/core/engine_adapter/test_redshift.py b/tests/core/engine_adapter/test_redshift.py index ddd2c7c2c8..490fd6102a 100644 --- a/tests/core/engine_adapter/test_redshift.py +++ b/tests/core/engine_adapter/test_redshift.py @@ -167,7 +167,7 @@ def test_create_table_physical_properties_from_model_definition( physical_properties ( diststyle = key, distkey = "id_file", - sortkey = "batch_time" + sortkey = ("batch_time") ) ); SELECT id_file::INT, batch_time::TIMESTAMP;