Skip to content

panic: lag window function negates i64::MIN offset during execution #22223

@Dandandan

Description

@Dandandan

Describe the bug

lag panics during execution when given i64::MIN as the offset. The execution path negates the stored negative shift offset.

To Reproduce

SELECT lag(x, -9223372036854775808) OVER (ORDER BY x)
FROM (VALUES (1)) AS t(x);

Actual behavior

thread 'main' panicked at datafusion/functions-window/src/lead_lag.rs:520:57:
attempt to negate with overflow

Expected behavior

Return an execution error for an invalid offset, not a panic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions