bf2343b7e4
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Has been cancelled
Java Checkstyle / java-checkstyle (push) Has been cancelled
Maven Collate Tests / maven-collate-ci (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Has been cancelled
Publish Package to Maven Central Repository / publish-maven-packages (push) Has been cancelled
OpenMetadata Service Unit Tests / Detect Changes (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Has been cancelled
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Has been cancelled
46 lines
3.2 KiB
SQL
46 lines
3.2 KiB
SQL
-- IntakeForm entity table: per-entity-type governance-required-field configuration
|
|
CREATE TABLE IF NOT EXISTS intake_form_entity (
|
|
id varchar(36) GENERATED ALWAYS AS (json_unquote(json_extract(`json`,'$.id'))) STORED NOT NULL,
|
|
name varchar(256) GENERATED ALWAYS AS (json_unquote(json_extract(`json`,'$.name'))) VIRTUAL NOT NULL,
|
|
fqnHash varchar(256) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
|
entityType varchar(64) GENERATED ALWAYS AS (json_unquote(json_extract(`json`,'$.entityType'))) VIRTUAL NOT NULL,
|
|
json json NOT NULL,
|
|
updatedAt bigint UNSIGNED GENERATED ALWAYS AS (json_unquote(json_extract(`json`,'$.updatedAt'))) VIRTUAL NOT NULL,
|
|
updatedBy varchar(256) GENERATED ALWAYS AS (json_unquote(json_extract(`json`,'$.updatedBy'))) VIRTUAL NOT NULL,
|
|
deleted TINYINT(1) GENERATED ALWAYS AS (IF(json_extract(json,'$.deleted') = TRUE, 1, 0)) VIRTUAL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY fqnHash (fqnHash),
|
|
UNIQUE KEY intake_form_entity_type_unique (entityType)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
-- Backfill the per-entity `name` index on entity tables that were created without
|
|
-- one. The distributed reindex paginates every entity type with
|
|
-- `... ORDER BY name, id LIMIT 1 OFFSET :n` (EntityRepository.getCursorAtOffset);
|
|
-- without a leading-`name` index that ORDER BY is a filesort that can exhaust sort
|
|
-- memory (ER_OUT_OF_SORTMEMORY, "Out of sort memory, consider increasing server sort
|
|
-- buffer size") on large tables. `<table>_name_index(name)` (InnoDB appends the PK
|
|
-- `id`) lets the cursor query run index-only instead. Covers entity tables that exist
|
|
-- as of 1.13.1; tables introduced later get the index in their own migration.
|
|
CREATE INDEX directory_entity_name_index ON directory_entity (name);
|
|
CREATE INDEX drive_service_entity_name_index ON drive_service_entity (name);
|
|
CREATE INDEX file_entity_name_index ON file_entity (name);
|
|
CREATE INDEX spreadsheet_entity_name_index ON spreadsheet_entity (name);
|
|
CREATE INDEX worksheet_entity_name_index ON worksheet_entity (name);
|
|
-- learning_resource_entity is intentionally omitted: its `name` is varchar(3072),
|
|
-- which exceeds MySQL's 3072-byte index key limit (utf8mb4), and the table is small
|
|
-- enough that the reindex cursor sort is not a concern.
|
|
|
|
-- Additional pre-1.13.1 entity tables the block above missed. On MySQL these had only a
|
|
-- `(deleted, name, id)` composite — whose leading `deleted` column cannot serve the unfiltered
|
|
-- reindex `ORDER BY name, id` — or no name index at all (their Postgres counterparts were
|
|
-- indexed, but the MySQL migrations diverged). security_service_entity is omitted: it already
|
|
-- has a `UNIQUE (name)` constraint that orders by name.
|
|
CREATE INDEX api_collection_entity_name_index ON api_collection_entity (name);
|
|
CREATE INDEX api_endpoint_entity_name_index ON api_endpoint_entity (name);
|
|
CREATE INDEX api_service_entity_name_index ON api_service_entity (name);
|
|
CREATE INDEX data_product_entity_name_index ON data_product_entity (name);
|
|
CREATE INDEX domain_entity_name_index ON domain_entity (name);
|
|
CREATE INDEX search_index_entity_name_index ON search_index_entity (name);
|
|
CREATE INDEX search_service_entity_name_index ON search_service_entity (name);
|
|
CREATE INDEX stored_procedure_entity_name_index ON stored_procedure_entity (name);
|