duckdb-lastra

May 11, 2026 · View on GitHub

DuckDB extension for reading Lastra columnar time series files.

Enables native SQL queries against .lastra files — including remote files via HTTP range requests.

Usage

-- Load extension
LOAD lastra;

-- Read a local file
SELECT * FROM 'data.lastra';

-- Or use the table function explicitly
SELECT * FROM read_lastra('data.lastra');

-- Temporal filter (row group pushdown)
SELECT * FROM 'daily_btc.lastra'
WHERE ts BETWEEN 1711152000000 AND 1711155600000;

-- Column selection
SELECT ts, close FROM 'ohlcv.lastra' LIMIT 100;

-- Validate the loaded extension version
SELECT lastra_version();

Supported codecs

CodecTypeDescription
DELTA_VARINTBIGINTTimestamps (delta-of-delta + zigzag varint)
ALPDOUBLEAdaptive lossless floating-point
GORILLADOUBLEXOR compression (Facebook VLDB 2015)
PONGODOUBLEDecimal-aware erasure + Gorilla XOR
RAWBIGINT/DOUBLEUncompressed
VARLENVARCHARVariable-length strings
VARLEN_ZSTDVARCHARZSTD-compressed strings

Build

make release    # clones DuckDB, builds extension
make test       # runs SQL tests

Requires: CMake 3.12+, C++17 compiler.

Architecture

The extension registers:

  • read_lastra(path) — table function that reads .lastra files
  • Replacement scan — FROM 'file.lastra' works without explicit function call

Row groups with per-group timestamp statistics enable predicate pushdown: row groups outside the query window are skipped entirely.

License

Apache-2.0