feat: Add Apache Doris 4.0 vector database connector - #1
Open
tomz-alt wants to merge 4 commits into
Open
Conversation
tomz-alt
force-pushed
the
feat/doris-connector
branch
from
January 12, 2026 07:38
15b2894 to
be15045
Compare
Add native support for Apache Doris (and VeloDB Cloud) as a target with: - Vector indexes (HNSW, IVF) with L2 distance and inner product metrics - Full-text search with inverted indexes - Stream Load for bulk data ingestion - Schema evolution modes (extend/strict) - Retry logic with exponential backoff for transient errors - Query helpers (connect_async, build_vector_search_query) Test coverage: - 67 unit tests - 60 integration tests (verified against VeloDB Cloud) Documentation and example included.
tomz-alt
force-pushed
the
feat/doris-connector
branch
from
January 13, 2026 00:52
be15045 to
4a47bd9
Compare
- Implement JSON fallback for vectors without fixed dimension (like Postgres/Qdrant) - Add aiohttp to optional dependencies in pyproject.toml - Make schema_change_timeout and index_build_timeout configurable - Fix flaky test_remove_index_from_existing_table with retry loop - Clean up redundant unit tests - Add timeout config propagation unit test
- Fix type annotation in test_doris_integration.py (rename shadowed variable) - Add return type annotation to get_doris_config() in example - Remove unused imports from test_doris_integration.py
tomz-alt
pushed a commit
that referenced
this pull request
Feb 11, 2026
feat: boilerplate and lifespan/Env for cocoindex v1
tomz-alt
pushed a commit
that referenced
this pull request
Jun 22, 2026
…io#1999) Resolves the spec's §4.2 observability gap: previously, orphan-delete failures during a normal update's commit phase (when a parent's `process()` no longer declared a child it had declared on a prior run) hit the framework's default `error!` log instead of routing through the parent's user-installed exception handler chain. Only `App.drop()` (a Delete-mode root with a raising on_error) propagated descendant failures; `coco.mount`-mounted parents had no observability. Symmetric with `ComponentDeleteContext::on_error`: - `ComponentBuildContext` gains an `on_error: Option<OnError>` field. - `ComponentProcessingAction::new_build` and `new_processor_context_for_build` accept it. - `Component::mount` stores its `on_error` argument on the child's Build context (in addition to passing it to `run_in_background`) — one handler, two surfaces. - `LiveComponentController::update_full` and `run_op`'s `Op::Update` branch mirror the same pattern for the live-component dispatch path. - `App::update` (root), `Component::use_mount` (foreground), and `mount_inner_live`'s synthetic parent context pass `None` — the prior log+swallow default is preserved where intentional. `launch_child_component_gc` switches from `delete_action_on_error()` to the new unified `processing_action_on_error()`, so it cascades the parent's on_error regardless of mode. `delete_action_on_error()` stays as the Delete-only accessor used by `Component::delete`'s spawned task (a Build context's on_error is meant for cascades, not for invoking on the build's own failure — that flows through `run_in_background`'s `on_error` argument directly). Adds `test_orphan_delete_failure_routes_through_parent_handler` in test_exception_handlers.py: parent mounts child A on update #1, doesn't mount A on update #2, sink fails during the orphan delete. Verifies the handler fires exactly once (mount_kind="mount"). Toggling `launch_child_component_gc` back to `delete_action_on_error()` confirms the test fails without this change. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.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
Adds native support for Apache Doris (and VeloDB Cloud) as a CocoIndex target, enabling vector similarity search and full-text search capabilities.
Features
Vector Index Support
mandef_constructionparameterslistsparameterFull-Text Search
unicode,english,chineseData Ingestion
batch_size(default: 10,000 rows)Schema Management
Reliability
max_retries,retry_base_delay,retry_max_delayQuery Helpers
connect_async()- Async MySQL connection helper with proper cleanupbuild_vector_search_query()- SQL builder for vector similarity searchTest Coverage
Integration tests verified against VeloDB Cloud.
Documentation
docs/docs/targets/doris.mdExample
New
examples/text_embedding_doris/following the same pattern astext_embedding_lancedb:Requirements
aiohttp,aiomysqlBreaking Changes
None - this is a new target connector.