Adamg/remove map fn limit - #8766
Conversation
112e14e to
a684568
Compare
882dc6e to
eaff866
Compare
b0b6794 to
da0d99c
Compare
3b330f4 to
bf8ba8a
Compare
7015650 to
26a82c5
Compare
f1ba9b0 to
01e195e
Compare
e8926b6 to
302e5ac
Compare
302e5ac to
c78c784
Compare
c78c784 to
4b9c142
Compare
Polar Signals Profiling ResultsLatest Run
Previous Runs (10)
Powered by Polar Signals Cloud |
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.049x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.001x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.928x ➖, 2↑ 0↓)
duckdb / parquet / ns (1.008x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -46.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.199x ❌, 0↑ 5↓)
datafusion / parquet / ns (1.036x ➖, 1↑ 2↓)
duckdb / vortex-file-compressed / ns (0.987x ➖, 1↑ 0↓)
duckdb / parquet / ns (0.987x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -42.8% overall, 55↑ 146↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.989x ➖, 1↑ 1↓)
datafusion / parquet / ns (0.991x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.992x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.995x ➖, 1↑ 1↓)
File Size Changes (9 files changed, -44.0% overall, 0↑ 9↓)
Totals:
|
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed / ns (0.934x ➖, 4↑ 0↓)
duckdb / parquet / ns (0.998x ➖, 0↑ 0↓)
File Size Changes (2 files changed, -32.3% overall, 0↑ 2↓)
Totals:
|
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 1.130x ❌ datafusion / vortex-file-compressed / ns (1.130x ❌, 1↑ 4↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.044x ➖, 0↑ 3↓)
datafusion / parquet / ns (1.006x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed / ns (1.017x ➖, 0↑ 1↓)
duckdb / parquet / ns (0.998x ➖, 0↑ 0↓)
File Size Changes (9 files changed, -43.9% overall, 0↑ 9↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.026x ➖, 0↑ 11↓)
datafusion / parquet / ns (1.004x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.983x ➖, 6↑ 3↓)
duckdb / parquet / ns (0.994x ➖, 7↑ 2↓)
File Size Changes (25 files changed, -43.5% overall, 0↑ 25↓)
Totals:
|
Benchmarks: FineWeb S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.084x ➖, 0↑ 1↓)
datafusion / parquet / ns (1.026x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.971x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.775x ➖, 1↑ 0↓)
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.060x ➖, 0↑ 8↓)
datafusion / parquet / ns (0.986x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed / ns (1.010x ➖, 1↑ 5↓)
duckdb / parquet / ns (0.995x ➖, 1↑ 0↓)
File Size Changes (101 files changed, -39.2% overall, 0↑ 101↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.012x ➖, 1↑ 0↓)
datafusion / parquet / ns (1.073x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed / ns (0.884x ➖, 3↑ 0↓)
duckdb / parquet / ns (0.964x ➖, 0↑ 0↓)
|
|
This PR has been marked as stale because it has been open for 14 days with no activity. Please comment or remove the stale label if you wish to keep it active, otherwise it will be closed in 7 days |
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Rationale for this change
Reviving #7565.
Scans previously rejected the combination of a filter and a limit, so
SELECT ... WHERE ... LIMIT nread and decoded every matching row and relied on the engine to throw rows away. The blocker was
structural: the
ScanBuilder::mapAPI threaded a generic result type through the entire scan stack,which made shared limit accounting across splits and partitions awkward to express.
What changes are included in this PR?
This PR makes two key simplifications to the Scan/ScanBuilder API:
mapAPI that allows executing work as part of the decode/filter work that the scan does. Aside from removing this somewhat complex API, it also removes the generic type boundary on the scan, which makes stuff like the limit work much easier.What APIs are changed? Are there any user-facing changes?
Scan,ScanBuilderandRepeatedScannow don't have a generic bound.ScanBuilder::mapandScanBuilder::buildare removed