datafusion icon indicating copy to clipboard operation
datafusion copied to clipboard

Support prepared statement arguments in the LIMIT clause

Open WeCodingNow opened this issue 1 year ago • 3 comments

Is your feature request related to a problem or challenge?

DataFusion: v41.0.0

I want to be able to write the following query as a prepared statement:

PREPARE get_N_rand_ints_from_last_run(INT) AS
SELECT id
FROM
    "test"
WHERE run_id = 'foo'
ORDER BY random()
LIMIT $1

I get the following error message:

Error during planning: Unexpected expression in LIMIT clause

It is impossible, as as it seems that the LIMIT clause supports only constants in it https://github.com/apache/datafusion/blob/ac74cd3163e43563807a8c6e8e72bb058cb6f459/datafusion/sql/src/query.rs#L101-L114

Postgres does support using prepared statement's arguments in the LIMIT clause:

image

Describe the solution you'd like

Support using prepared statement arguments in the LIMIT clause

Describe alternatives you've considered

inapplicable

Additional context

No response

WeCodingNow avatar Sep 02 '24 14:09 WeCodingNow

I think it can be easily supported after #9821

jonahgao avatar Sep 03 '24 02:09 jonahgao

I think it can be easily supported after #9821

This issue refers to the PR https://github.com/apache/datafusion/pull/9815 that was closed due to inactivity; is there any way to make a similar PR?

WeCodingNow avatar Sep 03 '24 07:09 WeCodingNow

I think it can be easily supported after #9821

This issue refers to the PR #9815 that was closed due to inactivity; is there any way to make a similar PR?

I plan to work on it in the next few days.

jonahgao avatar Sep 03 '24 09:09 jonahgao