Added the pgvector extension - #3126
Conversation
|
|
SummaryCoverage spans core vector, half-vector, sparse-vector, and UUID operations, including arithmetic, distances, aggregates, conversions, reconnect behavior, and schema resolution. It also exercises boundary values, malformed and non-finite inputs, dimension mismatches, constrained columns and arrays, and database metadata behavior. Not safe to merge yet — PR-attributable high-severity failures allow dimension-constrained columns to store incorrectly sized values and lose their declared metadata, creating a risk of silently invalid data; a separate PR-attributable resolution issue also breaks unqualified vector distance calls in a common schema configuration. The missing foreign-key metadata is unrelated to this PR and is a flag for later rather than a merge decision driver. Tests run by ItoAdditional Findings DetailsThese findings are unrelated to the current changes but were observed during testing. 🟡 Foreign-key metadata is missing from schema queries
Evidence PackageTip Reply with @itoqa to send us feedback on this test run. |
zachmu
left a comment
There was a problem hiding this comment.
This seems fine overall except for a couple weird interface things and behaviors I've called out.
My main comment here is that there doesn't seem to be any thought to how this is going to integrate with dolt's existing vector index support, which we absolutely need to figure out before we lock in the storage format. Dolt's current implementation operates on JSON objects, I think more out of convenience than any real principled engineering decision. But before we release this we need to decide how these two halves of the product are going to work together. This means agreeing on a serialization format / encoding, either the current JSON one or a new set of ones supported natively on the Dolt side as well that map to []float and potentially a sparse encoding. You and @nicktobey should sort this out and come up with a plan. I don't think this makes sense to release until we figure out those elements of the plan that are difficult to change later, like encoding.
9cef722 to
9eda870
Compare
|
@Hydrocharged DOLT
|
Commit: SummaryThe run covers end-to-end vector functionality, including installation, storage, conversions, arithmetic, distance calculations, sparse and dense values, indexing, nearest-neighbor queries, transaction recovery, and persistence. It also exercises malformed and boundary inputs, invalid definitions, cleanup behavior, and schema/name-resolution edge cases, with broad happy-path and adversarial coverage. Merge with caution — an attributable medium-severity regression affects how unqualified types are selected when multiple schemas define the same name, causing valid queries to fail despite search-path ordering. An unrelated medium-severity extension-cleanup limitation remains a flag for later rather than a PR merge blocker. Tests run by ItoAdditional Findings DetailsThese findings are unrelated to the current changes but were observed during testing. 🟡 Extension cannot be dropped for a clean reinstall
Evidence PackageTip Reply with @itoqa to send us feedback on this test run. |
9eda870 to
cb73f26
Compare
Commit: SummaryCoverage spans core vector storage and arithmetic, type conversions, indexing and nearest-neighbor ordering, catalog and schema behavior, compatibility with shared SQL features, and safe handling of malformed or adversarial values. Overall, the exercised product behavior is healthy across normal workflows, edge cases, invalid input, and database integration paths. Safe to merge — the sole finding is an unrelated medium-severity metadata issue affecting declared dimensions for certain vector types, with no regression or new failure attributable to this PR. It is a flag for later rather than a merge blocker. Tests run by ItoAdditional Findings DetailsThese findings are unrelated to the current changes but were observed during testing. 🟡 Declared vector dimensions are lost
Evidence PackageTip Reply with @itoqa to send us feedback on this test run. |



This emulates a majority of the
pgvectorextension, with the major missing pieces being the special index types which we cannot support at this moment (HNSW and IVFFlat). This also includes a port of most of the tests from the actualpgvectorrepository. Implementing and testing this uncovered additional bugs which were fixed as well.