Skip to content

add list/array support for duckdb and postgresql - #142

Merged
liuzicheng1987 merged 4 commits into
munich-data-engineering:mainfrom
CathodeAnode:add-lists
Nov 5, 2026
Merged

liuzicheng1987 merged 4 commits into
munich-data-engineering:mainfrom
CathodeAnode:add-lists

Conversation

@CathodeAnode

Copy link
Copy Markdown
Contributor

Summary

Add native SQL collection support for std::vector fields in PostgreSQL and DuckDB.

PostgreSQL maps vectors to native arrays, while DuckDB maps them to native lists. Nested vectors and nullable collections or elements are supported.

Backends without native collection support reject models containing vectors at compile time when used through the typed API.

Tests

Added PostgreSQL and DuckDB tests covering:

  • Native collection schema generation.
  • Collection serialization and database round trips.
  • Nested collections.
  • Nullable collections and nullable elements.
  • Values requiring escaping, empty collections, and NULL elements.

@liuzicheng1987

Copy link
Copy Markdown
Collaborator

@CathodeAnode this looks like a pretty cool feature. Could you also update the documentation?

@liuzicheng1987

Copy link
Copy Markdown
Collaborator

@CathodeAnode something is up with the build pipeline. I will take a look at this tonight.

@CathodeAnode

Copy link
Copy Markdown
Contributor Author

I updated the documentation.

@liuzicheng1987

Copy link
Copy Markdown
Collaborator

@CathodeAnode could you just quickly merge the main branch? That should fix the test pipelines.

@CathodeAnode

Copy link
Copy Markdown
Contributor Author

I merged main into the branch.

@liuzicheng1987

Copy link
Copy Markdown
Collaborator

@CathodeAnode thanks for your contribution. I am merging.

@liuzicheng1987
liuzicheng1987 merged commit 138ee46 into munich-data-engineering:main Nov 5, 2026
28 checks passed
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.

2 participants