Skip to content

Commit

Permalink
fix LOGICAL_OR default value; add test for no rows
Browse files Browse the repository at this point in the history
  • Loading branch information
ohaibbq committed Apr 3, 2024
1 parent fe6e814 commit 808c3ec
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
2 changes: 1 addition & 1 deletion internal/function_window.go
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ func (f *WINDOW_LOGICAL_OR) Done(agg *WindowFuncAggregatedStatus) (Value, error)
}
}

return BoolValue(true), nil
return BoolValue(false), nil
}

type WINDOW_PERCENTILE_CONT struct {
Expand Down
43 changes: 42 additions & 1 deletion query_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -832,17 +832,58 @@ SELECT LOGICAL_AND(x) AS logical_or FROM toks`,
SELECT LOGICAL_OR(x) AS logical_or FROM toks`,
expectedRows: [][]interface{}{{false}},
},
{name: "logical_and default",
query: `SELECT LOGICAL_AND(a) OVER (ORDER BY b), a, b
FROM (
SELECT CAST(a AS BOOL) AS a, b FROM UNNEST([
STRUCT(False AS a, 1 AS b),
STRUCT(False AS a, 2 AS b),
STRUCT(false AS a, 3 AS b),
STRUCT(False AS a, 4 AS b)
])
);`,
expectedRows: [][]interface{}{
{false, false, int64(1)},
{false, false, int64(2)},
{false, false, int64(3)},
{false, false, int64(4)},
}},
{name: "logical_and no rows",
query: `SELECT LOGICAL_AND(a) OVER (ORDER BY a) FROM ( SELECT CAST(a AS BOOL) AS a FROM UNNEST([]) a );`,
expectedRows: make([][]interface{}, 0),
},
{
name: "logical_and with window",
query: `WITH toks AS ( SELECT true AS x UNION ALL SELECT false UNION ALL SELECT true)
SELECT LOGICAL_AND(x) OVER (ORDER BY x) FROM toks`,
expectedRows: [][]interface{}{{false}, {false}, {false}},
},

{name: "logical_or window default",
query: `SELECT LOGICAL_OR(a) OVER (ORDER BY b), a, b
FROM (
SELECT CAST(a AS BOOL) AS a, b FROM UNNEST([
STRUCT(False AS a, 1 AS b),
STRUCT(False AS a, 2 AS b),
STRUCT(True AS a, 3 AS b),
STRUCT(False AS a, 4 AS b)
])
);`,
expectedRows: [][]interface{}{
{false, false, int64(1)},
{false, false, int64(2)},
{true, true, int64(3)},
{true, false, int64(4)},
}},
{name: "logical_or window no rows",
query: `SELECT LOGICAL_OR(a) OVER (ORDER BY a) FROM ( SELECT CAST(a AS BOOL) AS a FROM UNNEST([]) a );`,
expectedRows: make([][]interface{}, 0),
},
{
name: "logical_or with window",
query: `WITH toks AS ( SELECT true AS x UNION ALL SELECT false UNION ALL SELECT true)
SELECT LOGICAL_OR(x) OVER (ORDER BY x) FROM toks`,
expectedRows: [][]interface{}{{true}, {true}, {true}},
expectedRows: [][]interface{}{{false}, {true}, {true}},
},
{
name: "max from int group",
Expand Down

0 comments on commit 808c3ec

Please sign in to comment.