verifies merge strategies using selector (adapter) to allow delta/iceberg table exceptions
adds PreparedTableSchema which is required by all Job Clients to make sure prepared schema are used (typechecker now ensures that). Also slight changes to interfaces in reference so it is clear which type of schema is used
verify_schema must be called explicitly
prepare_load_table does not need as_staging flag. it was anyway not used consistently. and was needed only to generate SQL on Athena
(breaking/obscure) if primary key was used in nested table, linking was not created in relational.py. now linking is skipped when nested row is fitted into table that is not nested (does not have a parent). a rare case of someone that does not want dlt linking
is_nested_table is used to tell if table is nested. nested table has a parent hint. which is used only for this
allows to update table schemas from tables and table diffs
deprecates is_force_iceberg
shortens temp table names in sql jobs
moves type mappers to capabilities
unifies column props and hints, adds dict of known props
Description
towards #1713
PreparedTableSchema
which is required by all Job Clients to make sure prepared schema are used (typechecker now ensures that). Also slight changes to interfaces in reference so it is clear which type of schema is usedverify_schema
must be called explicitlyprepare_load_table
does not need as_staging flag. it was anyway not used consistently. and was needed only to generate SQL on Athenadlt
linkingis_nested_table
is used to tell if table is nested. nested table has aparent
hint. which is used only for this