From 7619af66b7d2ccf79e1e1a375f30daa0773d5798 Mon Sep 17 00:00:00 2001 From: Brennan Lamey Date: Tue, 18 Feb 2025 09:55:40 -0600 Subject: [PATCH] storing these changes for later --- node/engine/interpreter/interpreter_test.go | 16 ++++++++++++++++ node/engine/parse/antlr.go | 5 +++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/node/engine/interpreter/interpreter_test.go b/node/engine/interpreter/interpreter_test.go index 3dc5a3450..e08d63f8d 100644 --- a/node/engine/interpreter/interpreter_test.go +++ b/node/engine/interpreter/interpreter_test.go @@ -3196,3 +3196,19 @@ func newInterp(t *testing.T, tx sql.DB) *ThreadSafeInterpreter { return interp } + +func Test_EmptyArray(t *testing.T) { + db := newTestDB(t, nil, nil) + + ctx := context.Background() + tx, err := db.BeginTx(ctx) + require.NoError(t, err) + defer tx.Rollback(ctx) // always rollback + + interp := setupTestInterp(t, tx, nil, false) + + err = interp.Execute(newEngineCtx(defaultCaller), tx, `SELECT ARRAY[]::TEXT[];`, nil, func(r *common.Row) error { + return nil + }) + require.NoError(t, err) +} diff --git a/node/engine/parse/antlr.go b/node/engine/parse/antlr.go index faa3a7e17..c7fd22a66 100644 --- a/node/engine/parse/antlr.go +++ b/node/engine/parse/antlr.go @@ -1786,8 +1786,9 @@ func (s *schemaVisitor) VisitUnary_sql_expr(ctx *gen.Unary_sql_exprContext) any } func (s *schemaVisitor) VisitMake_array_sql_expr(ctx *gen.Make_array_sql_exprContext) any { - e := &ExpressionMakeArray{ - Values: ctx.Sql_expr_list().Accept(s).([]Expression), + e := &ExpressionMakeArray{} + if ctx.Sql_expr_list() != nil { + e.Values = ctx.Sql_expr_list().Accept(s).([]Expression) } if ctx.Type_cast() != nil {