prql
prql copied to clipboard
Unexpected result with s-string including UNNEST
trafficstars
What happened?
I was just being lazy and thought I'd try out a potentially more ergonomic way of writing some example data when I encountered the following unexpected output.
PRQL input
from s"SELECT UNNEST([0.1, 0.2, 0.3, 1, 2, 4])"
SQL output
WITH table_0 AS (
SELECT
UNNEST([0.1, 0.2, 0.3, 1, 2, 4])
)
SELECT
*
FROM
table_0
-- Generated by PRQL compiler version:0.11.3 (https://prql-lang.org)
Expected SQL output
WITH table_0 AS (
SELECT
UNNEST([0.1, 0.2, 0.3, 1, 2, 4])
)
SELECT
*
FROM
table_0
-- Generated by PRQL compiler version:0.11.3 (https://prql-lang.org)
MVCE confirmation
- [X] Minimal example
- [X] New issue
Anything else?
The SQL looks fine but the Query Results are surprising:
unnest(main.list_value(0.1, 0.2, 0.3, 1, 2, 4))
1 2 3 10 20 40
Compare this with the results from shell.duckdb.org:
duckdb> from unnest([0.1, 0.2, 0.3, 1, 2, 3]);
┌─────────────────────────────────────────┐
│ main.list_value(0.1, 0.2, 0.3, 1, 2, 3) │
╞═════════════════════════════════════════╡
│ 0.1 │
│ 0.2 │
│ 0.3 │
│ 1.0 │
│ 2.0 │
│ 3.0 │
└─────────────────────────────────────────┘
Looks like something in the web/js bindings because even the following produces the same results:
PRQL
from [{a=0.1}, {a=1}]
SQL
WITH table_0 AS (
SELECT
0.1 AS a
UNION
ALL
SELECT
1 AS a
)
SELECT
a
FROM
table_0
-- Generated by PRQL compiler version:0.11.3 (https://prql-lang.org)
Query Results
[
{"a": 1},
{"a": 10}
]
Yes, agree this seems like a JS bindings issue...