delta-io / delta

An open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs
https://delta.io
Apache License 2.0
6.92k stars 1.58k forks source link

[Kernel][Expressions] Make the default expression handler evaluation lazy #2541

Open allisonport-db opened 3 months ago

allisonport-db commented 3 months ago

Feature request

Which Delta project/connector is this regarding?

Overview

The expression handler should short-circuit on logical operators. This requires making all expression evaluation lazy since evaluation needs to be on a per-row basis.

First step: Convert all comparators (e.g. =, > etc) to be lazy. Rough idea on how to do that is:

Willingness to contribute

The Delta Lake Community encourages new feature contributions. Would you or another member of your organization be willing to contribute an implementation of this feature?

zzl-7 commented 1 month ago

FYI , I am working on this right now per recommendation from https://github.com/delta-io/delta/pull/2830#issuecomment-2032311536 Will submit a PR in a few days Thanks :)

zzl-7 commented 4 weeks ago

Hi @vkorukanti I added lazy evaluation support for comparator expressions https://github.com/delta-io/delta/pull/2853 I have some question on the behavior of null comparison, if you have time can you take a look Thank you