Skip to content
This repository was archived by the owner on Jul 11, 2026. It is now read-only.

Add Zarr v3 support#2

Merged
d33bs merged 14 commits into
mainfrom
fixes
Mar 29, 2026
Merged

Add Zarr v3 support#2
d33bs merged 14 commits into
mainfrom
fixes

Conversation

@d33bs

@d33bs d33bs commented Mar 27, 2026

Copy link
Copy Markdown
Member

No description provided.

@coderabbitai

coderabbitai Bot commented Mar 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 266 files, which is 116 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 997c8cad-2bcf-40d0-b973-3bd3391779ff

📥 Commits

Reviewing files that changed from the base of the PR and between aee7ca6 and 8a46614.

📒 Files selected for processing (266)
  • .coderabbit.yaml
  • .github/workflows/MainDistributionPipeline.yml
  • .github/workflows/PublishExtensionRepository.yml
  • .gitignore
  • ARCHITECTURE.md
  • Makefile
  • README.md
  • ROADMAP.md
  • scripts/create_sample_zarr.py
  • src/include/zarr_metadata.hpp
  • src/zarr_metadata.cpp
  • test/README.md
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/0/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/1/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/0/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/1/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/c/1/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/0/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/0/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/1/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/0/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/1/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/c/1/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/1/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/0/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/1/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/0/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/1/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/c/1/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/2/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/6001240_labels.zarr/ro-crate-metadata.json
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/0/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/1/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/2/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/10/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/11/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/12/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/13/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/14/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/15/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/16/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/17/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/18/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/19/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/2/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/20/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/21/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/22/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/23/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/3/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/4/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/5/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/6/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/7/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/8/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/c/0/9/0/0
  • test/data/idr0062A/6001240_labels.zarr/labels/0/3/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/labels/0/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/labels/zarr.json
  • test/data/idr0062A/6001240_labels.zarr/zarr.json
  • test/data/simple_v3.zarr/fortran_v3/c/0/0
  • test/data/simple_v3.zarr/fortran_v3/zarr.json
  • test/data/simple_v3.zarr/mask_v3/0.0
  • test/data/simple_v3.zarr/mask_v3/0.1
  • test/data/simple_v3.zarr/mask_v3/zarr.json
  • test/data/simple_v3.zarr/temperature_v3/c/0/0
  • test/data/simple_v3.zarr/temperature_v3/c/1/0
  • test/data/simple_v3.zarr/temperature_v3/zarr.json
  • test/data/simple_v3.zarr/zarr.json
  • test/python_smoke.py
  • test/sql/duckdb_zarr.test

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@d33bs
d33bs marked this pull request as ready for review March 27, 2026 21:04
@d33bs
d33bs requested a review from Copilot March 27, 2026 21:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Zarr v3 support to the DuckDB Zarr extension, including local v3 metadata discovery and expanded test coverage with v3 fixtures and an OME-Zarr v3 sample store.

Changes:

  • Extend table functions to support explicit version overrides (auto/v2/v3) and add v3-focused test coverage.
  • Add new v3 fixtures (simple_v3.zarr) plus a real-world OME-Zarr v3 fixture (idr0062A/6001240_labels.zarr) and update fixture generation.
  • Add a Python smoke test runner + documentation and Makefile target for running it.

Reviewed changes

Copilot reviewed 25 out of 263 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/include/zarr_metadata.hpp Switches table function registrations to TableFunctionSet to support overloads (e.g., version override args).
src/zarr_metadata.cpp Implements TableFunctionSet overloads for the Zarr functions (seen via context search).
test/sql/duckdb_zarr.test Adds SQLLogic tests for v3 discovery, chunk enumeration, and cell scans (including sharded OME-Zarr v3 fixture).
scripts/create_sample_zarr.py Adds generator for the simple_v3.zarr fixture.
test/python_smoke.py Adds a Python-side smoke test that loads the extension and queries v2/v3 fixtures (optionally IDR fixture).
test/data/simple_v3.zarr/** Adds a small Zarr v3 fixture store and chunk payloads.
test/data/idr0062A/6001240_labels.zarr/** Adds a larger real-world OME-Zarr v3 fixture including sharded/Blosc data.
README.md / test/README.md / ARCHITECTURE.md / ROADMAP.md Updates docs to reflect v3 support, limitations, and how to run the Python smoke example.
Makefile Adds test_python_example target to run the Python smoke script.
.gitignore Ignores decompressed extension artifacts and release asset patterns.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/python_smoke.py
Comment thread test/python_smoke.py Outdated
@d33bs

d33bs commented Mar 28, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Mar 28, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 26 out of 264 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/README.md Outdated
@d33bs
d33bs merged commit a4113ed into main Mar 29, 2026
13 checks passed
@d33bs
d33bs deleted the fixes branch March 29, 2026 04:29
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants