Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ docs/DatabaseCountResponse.md
docs/DatabaseDefaultSchemaDecl.md
docs/DatabaseDefaultTableDecl.md
docs/DatabaseDetailResponse.md
docs/DatabaseLineageResponse.md
docs/DatabaseSummary.md
docs/DatabasesApi.md
docs/DeleteDatabaseBatchResponse.md
Expand All @@ -58,6 +59,7 @@ docs/FinalizeUploadPart.md
docs/FinalizeUploadRequest.md
docs/FinalizeUploadResponse.md
docs/ForkDatabaseRequest.md
docs/ForkedFromInfo.md
docs/GetConnectionResponse.md
docs/GetDatabaseContextResponse.md
docs/GetResultResponse.md
Expand All @@ -72,6 +74,8 @@ docs/JobStatus.md
docs/JobStatusResponse.md
docs/JobType.md
docs/JobsApi.md
docs/LineageAncestorInfo.md
docs/LineageForkInfo.md
docs/ListConnectionsResponse.md
docs/ListDatabaseContextsResponse.md
docs/ListDatabasesResponse.md
Expand All @@ -87,6 +91,7 @@ docs/ListWorkspacesResponse.md
docs/LoadManagedTableRequest.md
docs/LoadManagedTableResponse.md
docs/ManagedSchemaResponse.md
docs/ManagedTableConstantPerKeyResponse.md
docs/ManagedTableResponse.md
docs/MintUploadPartsRequest.md
docs/MintUploadPartsResponse.md
Expand All @@ -113,6 +118,7 @@ docs/TemporalProfileDetail.md
docs/TextProfileDetail.md
docs/UpdateEmbeddingProviderRequest.md
docs/UpdateEmbeddingProviderResponse.md
docs/UpdateManagedTableRequest.md
docs/UpdateSavedQueryRequest.md
docs/UploadSessionResponse.md
docs/UploadsApi.md
Expand Down Expand Up @@ -187,6 +193,7 @@ hotdata/models/database_count_response.py
hotdata/models/database_default_schema_decl.py
hotdata/models/database_default_table_decl.py
hotdata/models/database_detail_response.py
hotdata/models/database_lineage_response.py
hotdata/models/database_summary.py
hotdata/models/delete_database_batch_response.py
hotdata/models/discovery_status.py
Expand All @@ -197,6 +204,7 @@ hotdata/models/finalize_upload_part.py
hotdata/models/finalize_upload_request.py
hotdata/models/finalize_upload_response.py
hotdata/models/fork_database_request.py
hotdata/models/forked_from_info.py
hotdata/models/get_connection_response.py
hotdata/models/get_database_context_response.py
hotdata/models/get_result_response.py
Expand All @@ -208,6 +216,8 @@ hotdata/models/job_result.py
hotdata/models/job_status.py
hotdata/models/job_status_response.py
hotdata/models/job_type.py
hotdata/models/lineage_ancestor_info.py
hotdata/models/lineage_fork_info.py
hotdata/models/list_connections_response.py
hotdata/models/list_database_contexts_response.py
hotdata/models/list_databases_response.py
Expand All @@ -223,6 +233,7 @@ hotdata/models/list_workspaces_response.py
hotdata/models/load_managed_table_request.py
hotdata/models/load_managed_table_response.py
hotdata/models/managed_schema_response.py
hotdata/models/managed_table_constant_per_key_response.py
hotdata/models/managed_table_response.py
hotdata/models/mint_upload_parts_request.py
hotdata/models/mint_upload_parts_response.py
Expand All @@ -245,6 +256,7 @@ hotdata/models/temporal_profile_detail.py
hotdata/models/text_profile_detail.py
hotdata/models/update_embedding_provider_request.py
hotdata/models/update_embedding_provider_response.py
hotdata/models/update_managed_table_request.py
hotdata/models/update_saved_query_request.py
hotdata/models/upload_session_response.py
hotdata/models/upsert_database_context_request.py
Expand Down Expand Up @@ -301,6 +313,7 @@ test/test_database_count_response.py
test/test_database_default_schema_decl.py
test/test_database_default_table_decl.py
test/test_database_detail_response.py
test/test_database_lineage_response.py
test/test_database_summary.py
test/test_databases_api.py
test/test_delete_database_batch_response.py
Expand All @@ -313,6 +326,7 @@ test/test_finalize_upload_part.py
test/test_finalize_upload_request.py
test/test_finalize_upload_response.py
test/test_fork_database_request.py
test/test_forked_from_info.py
test/test_get_connection_response.py
test/test_get_database_context_response.py
test/test_get_result_response.py
Expand All @@ -327,6 +341,8 @@ test/test_job_status.py
test/test_job_status_response.py
test/test_job_type.py
test/test_jobs_api.py
test/test_lineage_ancestor_info.py
test/test_lineage_fork_info.py
test/test_list_connections_response.py
test/test_list_database_contexts_response.py
test/test_list_databases_response.py
Expand All @@ -342,6 +358,7 @@ test/test_list_workspaces_response.py
test/test_load_managed_table_request.py
test/test_load_managed_table_response.py
test/test_managed_schema_response.py
test/test_managed_table_constant_per_key_response.py
test/test_managed_table_response.py
test/test_mint_upload_parts_request.py
test/test_mint_upload_parts_response.py
Expand All @@ -368,6 +385,7 @@ test/test_temporal_profile_detail.py
test/test_text_profile_detail.py
test/test_update_embedding_provider_request.py
test/test_update_embedding_provider_response.py
test/test_update_managed_table_request.py
test/test_update_saved_query_request.py
test/test_upload_session_response.py
test/test_uploads_api.py
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- feat(indexes): add vector_precision field to index operations

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This changelog does not record the removal of two public methods. ConnectionsApi.purge_connection_cache and ConnectionsApi.purge_table_cache are gone from hotdata/api/connections_api.py, along with their entries in docs/ConnectionsApi.md.

Add a **Breaking:** bullet for both methods under the existing ### Removed section, matching the entries at CHANGELOG.md:12-20.

Failure scenario: a user upgrades to the next release and calls connections_api.purge_connection_cache(connection_id). Python raises AttributeError. The changelog announces no removal, so the user has no way to learn that the endpoint retired or what replaces it.

- chore(databases): clarify fork naming behavior

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nit: this PR adds four public methods that no changelog entry names (not blocking). The new methods are DatabasesApi.get_database_lineage, DatabasesApi.lookup_database_by_name, DatabasesApi.set_database_table_constant_per_key, and ConnectionsApi.set_managed_table_constant_per_key. Six new models arrive with them.

Add an ### Added section listing the four methods. Consequence: users reading the release notes do not discover the new endpoints.

- docs: adopt "instant database" / "instant catalog" terminology in hand-written
prose. Documentation only — all public API symbols (`ManagedTableResponse`,
Expand Down
1 change: 1 addition & 0 deletions docs/AddManagedTableDecl.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ One table declaration inside an add-schema request body.

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**constant_per_key** | **List[str]** | Columns whose value is determined by this table's `key`: for every uploaded row, every stored row sharing its key holds the same value of these columns. Declaring this lets a keyed mutation (`delete`, `update`, `upsert`) restrict its search for prior versions to the values the upload carries, which prunes far harder than the key alone when the key's own file statistics are weak. Omit (the default) for the unrestricted search. **Correctness-affecting, not a hint.** If the assertion is false, a mutation supersedes one version of a key and appends beside another, silently duplicating it. Declare it only where the invariant is established. | [optional]
**key** | **List[str]** | Columns that uniquely identify a row, enabling the key-based load modes (`delete`, `update`, `upsert`) on this table: those loads match rows by these columns' values. Omit (the default) to declare no key; the table can still be loaded with `replace` and `append`, but key-based modes are then rejected. | [optional]
**name** | **str** | |
**partition_by** | [**List[TablePartitionKey]**](TablePartitionKey.md) | Partition keys for this table, applied in order. Omit for no partitioning. Declared when the table is created and fixed thereafter. | [optional]
Expand Down
1 change: 1 addition & 0 deletions docs/AddManagedTableRequest.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Request body for adding a table to an existing schema: `POST /v1/connections/{id

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**constant_per_key** | **List[str]** | Columns whose value is determined by this table's `key`: for every uploaded row, every stored row sharing its key holds the same value of these columns. Declaring this lets a keyed mutation (`delete`, `update`, `upsert`) restrict its search for prior versions to the values the upload carries, which prunes far harder than the key alone when the key's own file statistics are weak. Omit (the default) for the unrestricted search. **Correctness-affecting, not a hint.** If the assertion is false, a mutation supersedes one version of a key and appends beside another, silently duplicating it. Declare it only where the invariant is established. | [optional]
**key** | **List[str]** | Columns that uniquely identify a row, enabling the key-based load modes (`delete`, `update`, `upsert`) on this table: those loads match rows by these columns' values. Omit (the default) to declare no key; the table can still be loaded with `replace` and `append`, but key-based modes are then rejected. | [optional]
**name** | **str** | |
**partition_by** | [**List[TablePartitionKey]**](TablePartitionKey.md) | Partition keys for this table, applied in order. Omit for no partitioning. Declared when the table is created and fixed thereafter. | [optional]
Expand Down
2 changes: 1 addition & 1 deletion docs/BulkCreateDatabasesRequest.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Name | Type | Description | Notes
**default_schema** | **str** | Schema that unqualified table names resolve to inside each database. | [optional]
**expires_at** | **str** | When the created databases expire. Accepts an RFC 3339 timestamp or a relative duration such as `24h`, `90m`, or `7d`. | [optional]
**idempotency_key** | **str** | Repeat this value to retry a request safely. A retry carrying a key that was already used returns the original batch — the same `batch_id` and the same databases — instead of creating a second set. The key identifies the request, not its contents: reusing a key with a different `count` or template returns the original batch unchanged rather than reporting a mismatch. Use a fresh key per distinct request. | [optional]
**name_template** | **str** | Optional display-label pattern for each database. `{index}` is replaced with the database's zero-based position — for example `tenant-{index}` produces `tenant-0`, `tenant-1`, and so on. When omitted, each database is labelled from its own ID. Labels are not identifiers and are not required to be unique. | [optional]
**name_template** | **str** | Optional display-label pattern for each database. Must contain `{index}`, which is replaced with the database's zero-based position, padded with leading zeros to the width of the batch's largest index — with a `count` of 100, `tenant-{index}` produces `tenant-00` through `tenant-99`. A pattern without `{index}` is rejected, since every database in the batch would be given the same label. Each label also carries a suffix identifying the batch, so repeating the same pattern on a later call does not reuse labels from this one. When omitted, each database is labelled from its own ID. | [optional]
**schemas** | [**List[DatabaseDefaultSchemaDecl]**](DatabaseDefaultSchemaDecl.md) | Schemas and tables to declare on every database in the batch, in the same shape a single create accepts. The declaration applies identically to each database, so a batch of 10,000 declaring one table yields 10,000 databases that each hold that table and are ready to load — with no follow-up call per database. Omitted or empty means each database starts with no tables. | [optional]

## Example
Expand Down
Loading
Loading