Repository navigation
feat(plugin-qdrant): add a Qdrant driver over the REST API - #3972
Merged
Merged
Conversation
datlechin
enabled auto-merge (squash)
November 1, 2026 09:10
DatabaseTypeTests: allKnownTypes is 35 once StarRocks (main) and Qdrant (this branch) are both in it.
# Conflicts: # apple/Packages/TableProCore/Sources/TableProConnectionLibrary/SQLDDLFallbackPolicy.swift # apple/Packages/TableProCore/Sources/TableProCoreTypes/DatabaseType.swift # apple/Packages/TableProCore/Sources/TableProSQLGrammar/SQLLexicalProfile.swift # apple/Packages/TableProCore/Tests/TableProModelsTests/DatabaseTypeTests.swift # apple/TablePro/Core/Plugins/PluginMetadataRegistry+RegistryDefaults.swift # apple/TablePro/Core/Services/Execution/ExternalStatementGate.swift # apple/TablePro/Core/Utilities/SQL/QueryClassifier.swift # apple/TablePro/Models/Connection/DatabaseType.swift # apple/TableProTests/Core/Execution/ExternalStatementGatePrivateRequestTests.swift # apple/TableProTests/Core/Plugins/PluginMetadataRegistryTypeCountTests.swift # apple/TableProTests/Core/Services/Query/AllTablesListingTests.swift # apple/TableProTests/Core/Utilities/SQL/QueryClassifierHardeningTests.swift # apple/TableProTests/Models/Query/QueryTabBaseQueryTests.swift # apple/TableProTests/Views/Main/QueryParameterDetectionTests.swift
… and TLS Measured against Qdrant 1.20.0 (apple/scripts/probes/check-qdrant.sh).
… check the server purpose under Verify CA
… filters, snapshot routes by position
…results by their points
…sort lists on the first page
…d search, drop cursors after outside changes
…s match nothing on non-text columns
…ched cursors, suppress the default sort
…ndex, compare vectors in the insert check
…the raw-filter name
# Conflicts: # apple/Packages/TableProCore/Package.swift # apple/TablePro/Core/Plugins/PluginMetadataRegistry+RegistryDefaults.swift # apple/TablePro/Core/Utilities/SQL/CatalogChangeClassifier.swift # apple/TableProTests/Core/Plugins/PluginMetadataRegistryTypeCountTests.swift # apple/project.yml
datlechin
added a commit
that referenced
this pull request
Nov 2, 2026
* fix(security): tier SQL with one classifier for macOS and iOS Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-7WQZ7IBV. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-85FM8CNF. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-BO7086MJ. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-DXB5GXHF. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-RSL7CZQC. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-TUTSEW23. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-VEO0AP8A. Advisory: GHSA-3x6q-h487-r38w * fix(linux-grid): stop column moves at the row numbers, keep the focus in view and announce them (#3985) * feat(linux-sidebar): list functions, procedures, sequences and triggers (#3969) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * feat(plugin-influxdb): add an InfluxDB 2 and 3 driver over HTTP (#3976) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * feat(plugin-qdrant): add a Qdrant driver over the REST API (#3972) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * feat(display-format): decode Protobuf schemas and Schema Registry values (#3979) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * refactor(core): move the Linux core crates into a shared core workspace (#3986) * fix(security): import TableProSQLGrammar where the Flux classifier reads its tiers * docs(core): record the bindings, grid data, plugin ABI and SQL Server decisions (#3987) * fix(licensing): call the paid plan Pro, as the site and server now do (#3989) * fix(parsing): stop malformed replies and files from crashing, hanging or filling memory (#3991) --------- Co-authored-by: Nguyễn Nam Long <j2teamnnl@gmail.com>
datlechin
added a commit
that referenced
this pull request
Nov 2, 2026
* fix(security): tier SQL with one classifier for macOS and iOS Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-7WQZ7IBV. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-85FM8CNF. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-BO7086MJ. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-DXB5GXHF. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-RSL7CZQC. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-TUTSEW23. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-VEO0AP8A. Advisory: GHSA-3x6q-h487-r38w * fix(security): run external statements as approved and read only in the engine Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-AK0DTFEV. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-2N5FN7X4. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-A6ENWH1O. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-AWAVHFV6. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-DRI3Z3MD. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-G0F69IT6. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-KIUNV39X. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-KYD5T4TJ. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-LG65P706. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-P5IW81B3. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-PCUF2R3V. Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-UHVIMOF0. Advisory: GHSA-3xf7-86qj-4546 * fix(l10n): add the iOS strings the MongoDB and ClickHouse refusals use * fix(linux-clickhouse): hold user SQL and read-only connections to readonly=1 readonly=2 still let INSERT INTO FUNCTION file() write a file on the server (measured on 26.8). Advisory: GHSA-3xf7-86qj-4546 * feat(plugin-influxdb): add an InfluxDB 2 and 3 driver over HTTP (#3976) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * feat(plugin-qdrant): add a Qdrant driver over the REST API (#3972) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * feat(display-format): decode Protobuf schemas and Schema Registry values (#3979) Co-authored-by: Ngo Quoc Dat <datlechin@gmail.com> * refactor(core): move the Linux core crates into a shared core workspace (#3986) * fix(security): import TableProSQLGrammar where the Flux classifier reads its tiers * fix(security): import TableProSQLGrammar where the gates read the shared classifier's tier * docs(core): record the bindings, grid data, plugin ABI and SQL Server decisions (#3987) * fix(licensing): call the paid plan Pro, as the site and server now do (#3989) * fix(parsing): stop malformed replies and files from crashing, hanging or filling memory (#3991) --------- Co-authored-by: Nguyễn Nam Long <j2teamnnl@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
QdrantDriverPluginover Qdrant's REST API, with its wire code in the PluginKit-free productTableProQdrantCore.6333, an API key sent asapi-key, SSH tunnel, and SSL modes. Verify CA checks the chain to the chosen CA and that the certificate is a server's; Verify Identity also checks the hostname, against the system trust store when no CA is chosen (Qdrant Cloud). A client certificate and key are sent for mutual TLS.idfirst and read-only, payload fields, then one column per vector (vector,vector.<name>), typedvector(<size>),multivectororsparse_vector. Nested index paths such asmetadata.sourceare listed as indexes, not columns.json, and its text shows quoted, so a value saves back as the type it had.iddescending, vectors, several sort columns, a field without a range index and a field holding lists are refused with a message. The app's default sort is suppressed.42finds"42",42and42.0. IS NULL isis_empty, IS EMPTY adds"", CONTAINS ismatch.texton any field.generateRowWrites, typed by the column types the grid read:update_filterthat matches no point, plus a lookup that refuses a taken id and a check after the write. Qdrant 1.15 or later is required, since older nodes overwrite.score.QueryClassifieruses the core's parser and route table, so the gate and the driver read the same request./collections/{name}/facetis a read, snapshot routes are matched by position, and a payload overwrite, the cluster route and the aliases route rank as destructive, since they delete through the body.typesenseRequestLinesplit on a space only, soDELETE<tab>/v1/schema/Xranked as a write on Weaviate.apple/scripts/probes/check-qdrant.shruns the core against a live node.Docs: TableProApp/docs#151
Test plan
swift test --filter TableProQdrantCoreTests: 55 cases.TableProTLSClientIdentityTestsandTableProTrinoCoreTestspass.QueryClassifierNonSqlTests(Qdrant tiers, facet, tab and split-body cases for Qdrant and Weaviate),DataWriteExecutorLookupTests(taken key),ExternalStatementGatePrivateRequestTestsand the parameterized suites that list Qdrant: 118 cases pass.apple/scripts/probes/check-qdrant.shagainstqdrant/qdrant1.20.0: 50 checks pass, including an insert that loses a race, paging after another client's delete, and a datetime sort.update_filtermeasured on 1.13.6, 1.14.1, 1.15.5, 1.16.3 and 1.20.0.QdrantDriverPlugin,TrinoDriverPluginandWeaviateDriverPluginschemes build.Fixes #3600