common.destination.utils
verify_schema_capabilities
def verify_schema_capabilities(schema: Schema,
capabilities: DestinationCapabilitiesContext,
destination_type: str,
warnings: bool = True) -> List[Exception]
Verifies load_tables
that have all hints filled by job client before loading against capabilities.
Returns a list of exceptions representing critical problems with the schema.
It will log warnings by default. It is up to the caller to eventually raise exception
- Checks all table and column name lengths against destination capabilities and raises on too long identifiers
- Checks if schema has collisions due to case sensitivity of the identifiers
column_type_to_str
def column_type_to_str(column: TColumnType) -> str
Converts column type to db-like type string
resolve_merge_strategy
@with_config
def resolve_merge_strategy(
tables: TSchemaTables,
table: TTableSchema,
destination_capabilities: Optional[
DestinationCapabilitiesContext] = ConfigValue
) -> Optional[TLoaderMergeStrategy]
Resolve merge strategy for a table, possibly resolving the 'x-merge-strategy from a table chain. strategies selector in destination_capabilities
is used if present. If table
does not contain strategy hint, a default value will be used which is the first.
destination_capabilities
are injected from context if not explicitly passed.
Returns None if table write disposition is not merge