// Generated by scripts/generate_duckdb_fixtures.js. Do not edit by hand.
///|
pub let fixture_cases : Array[FixtureCase] = [
{
name: "basic select",
sql: "select 1 as a, NULL as b, 'duck' as c",
columns: ["a", "b", "c"],
rows: [["1", "", "duck"]],
nulls: [[false, true, false]],
},
{
name: "multi row values",
sql: "select * from (values (1, 'alpha'), (2, NULL), (3, 'gamma')) as t(id, label)",
columns: ["id", "label"],
rows: [["1", "alpha"], ["2", ""], ["3", "gamma"]],
nulls: [[false, false], [false, true], [false, false]],
},
{
name: "boolean and double",
sql: "select true as ok, false as no, 3.5 as pi",
columns: ["ok", "no", "pi"],
rows: [["true", "false", "3.5"]],
nulls: [[false, false, false]],
},
{
name: "bigint extremes",
sql: "select cast(9223372036854775807 as BIGINT) as max_bigint, cast(-9223372036854775808 as BIGINT) as min_bigint",
columns: ["max_bigint", "min_bigint"],
rows: [["9223372036854775807", "-9223372036854775808"]],
nulls: [[false, false]],
},
{
name: "simple aggregate",
sql: "select count(*) as total, sum(i) as sum from (values (1), (2), (3)) as t(i)",
columns: ["total", "sum"],
rows: [["3", "6"]],
nulls: [[false, false]],
},
{
name: "date literal",
sql: "select DATE '2024-06-03' as dt",
columns: ["dt"],
rows: [["2024-06-03"]],
nulls: [[false]],
},
{
name: "time literal",
sql: "select TIME '12:34:56.789' as tm",
columns: ["tm"],
rows: [["12:34:56.789"]],
nulls: [[false]],
},
{
name: "timestamp literal",
sql: "select TIMESTAMP '2024-06-03 12:34:56.789' as ts",
columns: ["ts"],
rows: [["2024-06-03 12:34:56.789"]],
nulls: [[false]],
},
{
name: "epoch date arithmetic",
sql: "select CAST('1970-01-01'::DATE - INTERVAL '1 day' AS DATE) as epoch_minus_day, CAST('1970-01-01'::DATE + INTERVAL '1 day' AS DATE) as epoch_plus_day",
columns: ["epoch_minus_day", "epoch_plus_day"],
rows: [["1969-12-31", "1970-01-02"]],
nulls: [[false, false]],
},
{
name: "decimal positive",
sql: "select CAST(123.456 AS DECIMAL(10,3)) as dec",
columns: ["dec"],
rows: [["123.456"]],
nulls: [[false]],
},
{
name: "decimal negative",
sql: "select CAST(-999999.99 AS DECIMAL(9,2)) as neg_dec",
columns: ["neg_dec"],
rows: [["-999999.99"]],
nulls: [[false]],
},
{
name: "smallint extremes",
sql: "select CAST(32767 AS SMALLINT) as max_smallint, CAST(-32768 AS SMALLINT) as min_smallint",
columns: ["max_smallint", "min_smallint"],
rows: [["32767", "-32768"]],
nulls: [[false, false]],
},
{
name: "tinyint range",
sql: "select CAST(127 AS TINYINT) as max_tinyint, CAST(-128 AS TINYINT) as min_tinyint",
columns: ["max_tinyint", "min_tinyint"],
rows: [["127", "-128"]],
nulls: [[false, false]],
},
{
name: "integer extremes",
sql: "select CAST(2147483647 AS INTEGER) as max_int, CAST(-2147483648 AS INTEGER) as min_int",
columns: ["max_int", "min_int"],
rows: [["2147483647", "-2147483648"]],
nulls: [[false, false]],
},
{
name: "string escapes",
sql: "select 'string with ''quotes''' as quoted, 'back\\\\slash' as backslash",
columns: ["quoted", "backslash"],
rows: [["string with 'quotes'", "back\\\\slash"]],
nulls: [[false, false]],
},
{
name: "string whitespace",
sql: "select 'multi\nline' as newline, 'tab\there' as tab",
columns: ["newline", "tab"],
rows: [["multi\nline", "tab\there"]],
nulls: [[false, false]],
},
{
name: "empty strings",
sql: "select '' as empty_string, ' ' as spaces",
columns: ["empty_string", "spaces"],
rows: [["", " "]],
nulls: [[false, false]],
},
{
name: "single null",
sql: "select NULL as only_null",
columns: ["only_null"],
rows: [[""]],
nulls: [[true]],
},
{
name: "multiple nulls",
sql: "select NULL as a, NULL as b, NULL as c",
columns: ["a", "b", "c"],
rows: [["", "", ""]],
nulls: [[true, true, true]],
},
{
name: "mixed nulls",
sql: "select 1 as col1, NULL as col2, 2 as col3, NULL as col4, 3 as col5",
columns: ["col1", "col2", "col3", "col4", "col5"],
rows: [["1", "", "2", "", "3"]],
nulls: [[false, true, false, true, false]],
},
{
name: "range function",
sql: "select * from range(5)",
columns: ["range"],
rows: [["0"], ["1"], ["2"], ["3"], ["4"]],
nulls: [[false], [false], [false], [false], [false]],
},
{
name: "range with expression",
sql: "select range, range * 2 as double_i from range(3)",
columns: ["range", "double_i"],
rows: [["0", "0"], ["1", "2"], ["2", "4"]],
nulls: [[false, false], [false, false], [false, false]],
},
{
name: "range with modulo",
sql: "select range, range % 2 = 0 as is_even from range(4)",
columns: ["range", "is_even"],
rows: [["0", "true"], ["1", "false"], ["2", "true"], ["3", "false"]],
nulls: [[false, false], [false, false], [false, false], [false, false]],
},
{
name: "multiple aggregates",
sql: "select COUNT(*) as cnt, MIN(i) as min_val, MAX(i) as max_val, AVG(i) as avg_val from (values (1), (5), (10)) as t(i)",
columns: ["cnt", "min_val", "max_val", "avg_val"],
rows: [["3", "1", "10", "5.333333333333333"]],
nulls: [[false, false, false, false]],
},
{
name: "sum aggregate",
sql: "select SUM(i) as total from (values (1), (2), (3), (4), (5)) as t(i)",
columns: ["total"],
rows: [["15"]],
nulls: [[false]],
},
{
name: "boolean logic",
sql: "select true and false as and_result, true or false as or_result, not true as not_result",
columns: ["and_result", "or_result", "not_result"],
rows: [["false", "true", "false"]],
nulls: [[false, false, false]],
},
{
name: "comparison boolean",
sql: "select i > 2 as greater_than from (values (1), (2), (3)) as t(i)",
columns: ["greater_than"],
rows: [["false"], ["false"], ["true"]],
nulls: [[false], [false], [false]],
},
{
name: "cast str to int",
sql: "select CAST('42' AS INTEGER) as str_to_int, CAST(3.14 AS VARCHAR) as dbl_to_str",
columns: ["str_to_int", "dbl_to_str"],
rows: [["42", "3.14"]],
nulls: [[false, false]],
},
{
name: "cast null types",
sql: "select CAST(NULL AS VARCHAR) as null_varchar, CAST(NULL AS INTEGER) as null_int",
columns: ["null_varchar", "null_int"],
rows: [["", ""]],
nulls: [[true, true]],
},
{
name: "float special values",
sql: "select 'NaN'::DOUBLE as nan_val, 'Infinity'::DOUBLE as inf_val, '-Infinity'::DOUBLE as neg_inf_val",
columns: ["nan_val", "inf_val", "neg_inf_val"],
rows: [["nan", "inf", "-inf"]],
nulls: [[false, false, false]],
},
{
name: "double precision",
sql: "select 3.14159265359 as pi, 2.71828182846 as e, 1.41421356237 as sqrt2",
columns: ["pi", "e", "sqrt2"],
rows: [["3.14159265359", "2.71828182846", "1.41421356237"]],
nulls: [[false, false, false]],
},
{
name: "null in values",
sql: "select * from (values (1, NULL), (NULL, 2), (3, 3)) as t(a, b)",
columns: ["a", "b"],
rows: [["1", ""], ["", "2"], ["3", "3"]],
nulls: [[false, true], [true, false], [false, false]],
},
{
name: "case expression",
sql: "select i, case when i < 2 then 'small' when i < 4 then 'medium' else 'large' end as size from (values (1), (2), (3), (4), (5)) as t(i)",
columns: ["i", "size"],
rows: [
["1", "small"],
["2", "medium"],
["3", "medium"],
["4", "large"],
["5", "large"],
],
nulls: [
[false, false],
[false, false],
[false, false],
[false, false],
[false, false],
],
},
{
name: "string concatenation",
sql: "select 'hello' || ' ' || 'world' as greeting",
columns: ["greeting"],
rows: [["hello world"]],
nulls: [[false]],
},
{
name: "coalesce function",
sql: "select coalesce(NULL, 'first') as a, coalesce(NULL, NULL, 'fallback') as b, coalesce('value', 'fallback') as c",
columns: ["a", "b", "c"],
rows: [["first", "fallback", "value"]],
nulls: [[false, false, false]],
},
]