prql icon indicating copy to clipboard operation
prql copied to clipboard

Unexpected result with s-string including UNNEST

Open snth opened this issue 1 year ago • 2 comments
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 │
└─────────────────────────────────────────┘

snth avatar Apr 12 '24 20:04 snth

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}
]

snth avatar Apr 12 '24 20:04 snth

Yes, agree this seems like a JS bindings issue...

max-sixty avatar May 30 '24 16:05 max-sixty