Skip to content

tp: scan dataframes without SQLite - #7165

Draft
LalitMaganti wants to merge 2 commits into
dev/lalitm/sql-lineagefrom
dev/lalitm/exec-dataframe-scan
Draft

tp: scan dataframes without SQLite#7165
LalitMaganti wants to merge 2 commits into
dev/lalitm/sql-lineagefrom
dev/lalitm/exec-dataframe-scan

Conversation

@LalitMaganti

@LalitMaganti LalitMaganti commented Aug 21, 2026

Copy link
Copy Markdown
Member

A query which only reads a dataframe gives SQLite nothing to do. The values
already have storage types and are laid out the way a batch needs them.

DataframeScan returns views over the dataframe's storage without copying.
Columns without one slot per row are expanded one batch at a time into a
reused buffer, so they still look dense to downstream operators.

The planner only takes this path for passthrough dataframes. Filtering,
joining, grouping, and expressions still go through SQLite.

@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch 2 times, most recently from 6354063 to ce88f4e Compare August 21, 2026 13:43
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch from ce88f4e to dc9f5a5 Compare August 21, 2026 13:52
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch from dc9f5a5 to cec7f13 Compare August 21, 2026 14:23
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch from cec7f13 to 2c2ca49 Compare August 21, 2026 15:12
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch 2 times, most recently from 300a805 to b34ba57 Compare August 25, 2026 13:54
@LalitMaganti
LalitMaganti changed the base branch from dev/lalitm/dataframe-operator-executor to dev/lalitm/sql-lineage August 25, 2026 14:21
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch from b34ba57 to 868c5e4 Compare August 25, 2026 14:21
@LalitMaganti LalitMaganti changed the title tp: read a dataframe's rows without going through SQL tp: scan dataframes without SQLite Aug 25, 2026
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch from 868c5e4 to 3939806 Compare August 25, 2026 14:59
A query which only reads a dataframe gives SQLite nothing to do. Read columns
from dataframe storage and return borrowed batch views instead.

Columns without one slot per row are expanded into a reusable batch-sized
buffer. The planner still sends filtered, joined, grouped, or computed queries
through SQLite.
Direct scans must only borrow stable finalized storage and must retain nullable ID values instead of treating every ID column as a non-null sequence.
@LalitMaganti
LalitMaganti force-pushed the dev/lalitm/exec-dataframe-scan branch from 3939806 to 29817f8 Compare August 25, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant