From 2e1d982b9f7332d0ee3e5b0837d207d88affd552 Mon Sep 17 00:00:00 2001 From: dimgigov Date: Sun, 17 May 2026 03:50:43 +0300 Subject: [PATCH] fix(executor): include arguments in aggregate column names Issue #6: getSelectColumns() produced count() for count(*) and max() for max(id). Now uses exprToSql() on funcArgs to generate consistent names matching the actual SQL expression. Before: columns: @[count()], rows: @[{count(*): 2}] After: columns: @[count(*)], rows: @[{count(*): 2}] --- src/barabadb/query/executor.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/barabadb/query/executor.nim b/src/barabadb/query/executor.nim index b055a1b..82c5feb 100644 --- a/src/barabadb/query/executor.nim +++ b/src/barabadb/query/executor.nim @@ -2678,7 +2678,10 @@ proc getSelectColumns(stmt: Node): seq[string] = elif e.kind == nkPath and e.pathParts.len > 0: result.add(e.pathParts[^1]) elif e.kind == nkFuncCall: - result.add(e.funcName & "()") + var aliasArgs: seq[string] = @[] + for arg in e.funcArgs: + aliasArgs.add(exprToSql(arg)) + result.add(e.funcName & "(" & aliasArgs.join(", ") & ")") elif e.kind == nkStar: result.add("*") else: