sqlload-cli 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/Cargo.lock +45 -2
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/Cargo.toml +6 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/PKG-INFO +1 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/Cargo.toml +9 -4
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/warehouse_names.rs +13 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/models.rs +4 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/exporter_commands.rs +4 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/loader_commands.rs +8 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/models.rs +7 -2
- sqlload_cli-0.4.0/crates/sqlload/src/file_store/main/delete_files.rs +25 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/mod.rs +2 -0
- sqlload_cli-0.4.0/crates/sqlload/src/file_store/main/probe_folder.rs +24 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/bounds.rs +98 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/loads.rs +8 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/markers.rs +45 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/mod.rs +10 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/parquet_files.rs +60 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/partitions.rs +106 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/shape.rs +40 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/spill.rs +21 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/split.rs +67 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/statistics.rs +90 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/template.rs +41 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/constants.rs +47 -0
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source → sqlload_cli-0.4.0/crates/sqlload/src/files_destination}/errors.rs +3 -3
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/_partition_in_window.rs +24 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/check_window.rs +18 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/clear_pending.rs +14 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/close_writer.rs +28 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/cursor_maximum.rs +20 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/fit_live_types.rs +27 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/folder_conflict.rs +41 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/mark_pending.rs +20 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/mod.rs +18 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/newest_load_files.rs +32 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/open_writer.rs +40 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/output_problems.rs +69 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/partition_window.rs +50 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/plan_replaced_files.rs +43 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/read_table_state.rs +73 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/repair_table.rs +20 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/table_path.rs +59 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/write_notes.rs +17 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/write_rows.rs +89 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/mod.rs +10 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/models.rs +266 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_destination/tests.rs +36 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/mod.rs +3 -0
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers → sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/parquet}/footers.rs +1 -1
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/parquet/mod.rs +2 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan/columns.rs +133 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan/encoding.rs +56 -0
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers → sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan}/mod.rs +1 -2
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers → sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan}/shape.rs +24 -9
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/bytes_reader.rs +81 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/checks.rs +75 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/csv_reader.rs +172 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/csv_records.rs +166 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/inference.rs +97 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/json_reader.rs +106 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/json_records.rs +241 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/mod.rs +9 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/sample.rs +92 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/text_reader.rs +113 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/constants.rs +38 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/errors.rs +17 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/discover_files.rs +100 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/footer_columns.rs +16 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/files_source/main/mod.rs +2 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/read_files.rs +90 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/read_footers.rs +36 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/files_source/main/select_files.rs +1 -1
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/models.rs +192 -0
- sqlload_cli-0.4.0/crates/sqlload/src/files_source/tests.rs +16 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/lib.rs +1 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/destination.rs +13 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/render.rs +80 -3
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/resolve.rs +20 -8
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/route.rs +4 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/sources.rs +87 -4
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/specs.rs +7 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/table_plan.rs +31 -3
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/window.rs +5 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/errors.rs +3 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_check_source.rs +34 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_check_target.rs +40 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_connect_target.rs +82 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_context.rs +73 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_repair.rs +52 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_schema.rs +60 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_window.rs +154 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_load_files.rs +82 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_plan_files.rs +130 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_table_folder.rs +24 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/apply_project.rs +2 -2
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/connect_targets.rs +19 -0
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/debug_project.rs +53 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/load_project.rs +18 -5
- sqlload_cli-0.4.0/crates/sqlload/src/loader/main/mod.rs +16 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/plan_project.rs +57 -4
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/render_plan.rs +1 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/models.rs +71 -3
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/mod.rs +1 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/references.rs +59 -19
- sqlload_cli-0.4.0/crates/sqlload/src/project/_helpers/targets.rs +87 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/constants.rs +14 -1
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/models.rs +54 -7
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/_helpers/changes.rs +16 -6
- sqlload_cli-0.3.0/crates/sqlload/src/similar_names/main/nearest_name.rs → sqlload_cli-0.4.0/crates/sqlload/src/similar_names/_helpers/distance.rs +1 -13
- sqlload_cli-0.4.0/crates/sqlload/src/similar_names/_helpers/mod.rs +1 -0
- sqlload_cli-0.4.0/crates/sqlload/src/similar_names/constants.rs +2 -0
- sqlload_cli-0.4.0/crates/sqlload/src/similar_names/main/close_name.rs +21 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/similar_names/main/mod.rs +1 -0
- sqlload_cli-0.4.0/crates/sqlload/src/similar_names/main/nearest_name.rs +13 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/similar_names/mod.rs +5 -0
- sqlload_cli-0.4.0/crates/sqlload/src/similar_names/tests.rs +4 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/constants.rs +5 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/errors.rs +10 -0
- sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/escape_partition_value.rs +16 -0
- sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/mod.rs +5 -0
- sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/render_template.rs +39 -0
- sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/unescape_partition_value.rs +8 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/tests.rs +4 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/pyproject.toml +1 -1
- sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers/columns.rs +0 -42
- sqlload_cli-0.3.0/crates/sqlload/src/files_source/constants.rs +0 -14
- sqlload_cli-0.3.0/crates/sqlload/src/files_source/main/discover_files.rs +0 -57
- sqlload_cli-0.3.0/crates/sqlload/src/files_source/main/read_files.rs +0 -44
- sqlload_cli-0.3.0/crates/sqlload/src/files_source/models.rs +0 -60
- sqlload_cli-0.3.0/crates/sqlload/src/files_source/tests.rs +0 -4
- sqlload_cli-0.3.0/crates/sqlload/src/loader/main/connect_targets.rs +0 -61
- sqlload_cli-0.3.0/crates/sqlload/src/loader/main/mod.rs +0 -5
- sqlload_cli-0.3.0/crates/sqlload/src/store_paths/main/mod.rs +0 -2
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/README.md +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/LICENSE +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/README.md +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/_helpers/jwt.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/main/account_url.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/_helpers/chunks.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/_helpers/gzip.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/main/compress_chunks.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/main/gzip_bytes.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/destinations.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/fit.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/live_names.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/names.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/native.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/suggest.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/syntax.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/arrow_field.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/live_type.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/parse_type.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/portable_type.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/type_fit.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/warehouse_type.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/commands.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/limits.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/logging.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/signals.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/main/run.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/defaults.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/interpolate.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/patterns.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/units.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/validate.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/interpolate_toml.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/load_config.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/parse_config.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/stream_settings.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/aws_credentials.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/pending_loads.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/stage.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/stage_paths.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/streaming.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/main/build_delivery.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/_helpers/blocking.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/append_batch.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/describe_table.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/execute_statements.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/open_duckdb.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/query_text.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/query_texts.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/_helpers/fields.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/main/encode_row.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/_helpers/stream_task.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/_helpers/supervisor.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/main/build_clients.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/main/run_exporter.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/columns.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/load_select.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/parquet.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/copy_into.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/encode_file.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/file_extension.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/_helpers/keys.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/list_files.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/open_folder.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/read_file.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/write_file.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/models.rs +0 -0
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers → sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/parquet}/object_reader.rs +0 -0
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers → sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan}/partitions.rs +0 -0
- {sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers → sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan}/window.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/files_source/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/_helpers/counting.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/_helpers/error_body.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/check_response.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/http_client.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/install_tls_provider.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/_helpers/client.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/build_consumer.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/group_lag.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/list_topics.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/partitions_of.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/prefetch_kbytes.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/select_topics.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/to_record.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/types.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/clock.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/settings.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/main.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/_helpers/column.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/main/mask_batch.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/main/serve_metrics.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/identifiers.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/patterns.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/streams.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/tables.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/qualify_stage.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/quote_name.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/resolve_streams.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/resolve_tables.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/shard_of.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/compatibility.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/ddl.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/objects.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/apply_plan.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/build_plan.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/load_path.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/read_existing.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/builders.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/catalog.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/copy_decoder.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/type_map.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/values.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/connect_postgres.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/copy_table.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/plan_read.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/read_catalog.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/defaults.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/serde_values.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/unknown_keys.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/main/is_project.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/main/parse_project.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/deliver.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/stores.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/warehouse_source.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/main/plan_route.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/main/metadata_columns.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/main/plan_schema.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/_helpers/parquet_file.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/connect_snowflake.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/copy_staged.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/describe_table.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/query_text.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/query_texts.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/remove_staged.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/run_statements.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/stage_parquet.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/requests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/results.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/run.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/main/execute_script.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/main/execute_sql.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/encryption.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/load_report.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/pipe_request.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/s3_errors.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/signed_request.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/sigv4.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/stage_response.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/head_object.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/insert_files.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/insert_report.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/load_history_scan.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/put_object.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/put_stage_file.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/_helpers/channels.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/main/check_connections.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/main/collect_status.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/escapes.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/folder.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/locations.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/segments.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/main/hive_values.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/main/resolve_location.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/_helpers/requests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/append_rows.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/channel_statuses.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/ingest_host.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/open_channel.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/_helpers/civil.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/amz_date.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/iso_utc.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/now_ms.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/utc_date.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/identifiers.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/promote.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/rebuild.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/recreate.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/alter_statements.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/create_schema.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/create_table.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/cursor_bound.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/cursor_query.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/cursor_text.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/display_name.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/loaded_files_query.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/qualified_name.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/sql_literal.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/staging_table.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/stored_name.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/swap_table.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/write_statements.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/tests.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/Cargo.toml +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/main/s3_config.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/main/streaming_config.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/loading.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/objects.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/routing.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/statements.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/streaming.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/main/start_fake_snowflake.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/read_metrics.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/start_exporter.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/start_stack.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/stop_exporter.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/wait_for_appends.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/wait_for_commits.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/wait_for_rows.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/lib.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/main/connect.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/main/start_postgres.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/distinct_positions.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/incompressible_values.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/order_values.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/committed_offsets.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/produce_records.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/start_redpanda.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/models.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/constants.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/main/create_bucket.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/main/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/main/start_seaweedfs.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/mod.rs +0 -0
- {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/models.rs +0 -0
|
@@ -204,6 +204,21 @@ dependencies = [
|
|
|
204
204
|
"arrow-schema",
|
|
205
205
|
]
|
|
206
206
|
|
|
207
|
+
[[package]]
|
|
208
|
+
name = "arrow-csv"
|
|
209
|
+
version = "60.1.0"
|
|
210
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
211
|
+
checksum = "e4572af05fadde76a063139805c089d0915b7eb64ed5bef14456c6e458a80b28"
|
|
212
|
+
dependencies = [
|
|
213
|
+
"arrow-array",
|
|
214
|
+
"arrow-cast",
|
|
215
|
+
"arrow-schema",
|
|
216
|
+
"chrono",
|
|
217
|
+
"csv",
|
|
218
|
+
"csv-core",
|
|
219
|
+
"regex",
|
|
220
|
+
]
|
|
221
|
+
|
|
207
222
|
[[package]]
|
|
208
223
|
name = "arrow-data"
|
|
209
224
|
version = "60.1.0"
|
|
@@ -745,6 +760,8 @@ dependencies = [
|
|
|
745
760
|
"compression-core",
|
|
746
761
|
"flate2",
|
|
747
762
|
"memchr",
|
|
763
|
+
"zstd",
|
|
764
|
+
"zstd-safe",
|
|
748
765
|
]
|
|
749
766
|
|
|
750
767
|
[[package]]
|
|
@@ -875,6 +892,27 @@ dependencies = [
|
|
|
875
892
|
"hybrid-array",
|
|
876
893
|
]
|
|
877
894
|
|
|
895
|
+
[[package]]
|
|
896
|
+
name = "csv"
|
|
897
|
+
version = "1.4.0"
|
|
898
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
899
|
+
checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938"
|
|
900
|
+
dependencies = [
|
|
901
|
+
"csv-core",
|
|
902
|
+
"itoa",
|
|
903
|
+
"ryu",
|
|
904
|
+
"serde_core",
|
|
905
|
+
]
|
|
906
|
+
|
|
907
|
+
[[package]]
|
|
908
|
+
name = "csv-core"
|
|
909
|
+
version = "0.1.13"
|
|
910
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
911
|
+
checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782"
|
|
912
|
+
dependencies = [
|
|
913
|
+
"memchr",
|
|
914
|
+
]
|
|
915
|
+
|
|
878
916
|
[[package]]
|
|
879
917
|
name = "ctutils"
|
|
880
918
|
version = "0.4.8"
|
|
@@ -3670,18 +3708,22 @@ dependencies = [
|
|
|
3670
3708
|
|
|
3671
3709
|
[[package]]
|
|
3672
3710
|
name = "sqlload"
|
|
3673
|
-
version = "0.
|
|
3711
|
+
version = "0.4.0"
|
|
3674
3712
|
dependencies = [
|
|
3675
3713
|
"aes",
|
|
3676
3714
|
"arrow-array",
|
|
3677
3715
|
"arrow-cast",
|
|
3716
|
+
"arrow-csv",
|
|
3678
3717
|
"arrow-schema",
|
|
3718
|
+
"arrow-select",
|
|
3719
|
+
"async-compression",
|
|
3679
3720
|
"axum",
|
|
3680
3721
|
"base64 0.22.1",
|
|
3681
3722
|
"bytes",
|
|
3682
3723
|
"chrono",
|
|
3683
3724
|
"chrono-tz",
|
|
3684
3725
|
"clap",
|
|
3726
|
+
"csv-core",
|
|
3685
3727
|
"duckdb",
|
|
3686
3728
|
"flate2",
|
|
3687
3729
|
"futures-util",
|
|
@@ -3714,11 +3756,12 @@ dependencies = [
|
|
|
3714
3756
|
"tracing",
|
|
3715
3757
|
"tracing-subscriber",
|
|
3716
3758
|
"uuid",
|
|
3759
|
+
"zstd",
|
|
3717
3760
|
]
|
|
3718
3761
|
|
|
3719
3762
|
[[package]]
|
|
3720
3763
|
name = "sqlload-testkit"
|
|
3721
|
-
version = "0.
|
|
3764
|
+
version = "0.4.0"
|
|
3722
3765
|
dependencies = [
|
|
3723
3766
|
"axum",
|
|
3724
3767
|
"bytes",
|
|
@@ -3,7 +3,7 @@ members = ["crates/sqlload", "crates/sqlload-testkit"]
|
|
|
3
3
|
resolver = "2"
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.4.0" # x-release-please-version
|
|
7
7
|
edition = "2024"
|
|
8
8
|
license = "Apache-2.0"
|
|
9
9
|
publish = false
|
|
@@ -14,7 +14,10 @@ rust-version = "1.95"
|
|
|
14
14
|
aes = "0.8"
|
|
15
15
|
arrow-array = "60"
|
|
16
16
|
arrow-cast = "60"
|
|
17
|
+
arrow-csv = "60"
|
|
17
18
|
arrow-schema = "60"
|
|
19
|
+
arrow-select = "60"
|
|
20
|
+
async-compression = { version = "0.4", features = ["tokio", "gzip", "zstd"] }
|
|
18
21
|
axum = { version = "0.8", default-features = false, features = ["http1", "tokio"] }
|
|
19
22
|
base64 = "0.22"
|
|
20
23
|
bytes = "1"
|
|
@@ -22,6 +25,7 @@ chrono = { version = "0.4", default-features = false, features = ["std"] }
|
|
|
22
25
|
chrono-tz = { version = "0.10", default-features = false }
|
|
23
26
|
duckdb = { version = "1.20000", features = ["bundled", "appender-arrow"] }
|
|
24
27
|
clap = { version = "4", features = ["derive", "env"] }
|
|
28
|
+
csv-core = "0.1"
|
|
25
29
|
flate2 = "1"
|
|
26
30
|
futures-util = { version = "0.3", default-features = false, features = ["std"] }
|
|
27
31
|
getrandom = "0.3"
|
|
@@ -56,6 +60,7 @@ tower-service = "0.3"
|
|
|
56
60
|
tracing = "0.1"
|
|
57
61
|
tracing-subscriber = { version = "0.3", features = ["fmt", "json", "env-filter"] }
|
|
58
62
|
uuid = { version = "1", features = ["v4"] }
|
|
63
|
+
zstd = "0.14"
|
|
59
64
|
|
|
60
65
|
[workspace.lints.rust]
|
|
61
66
|
unsafe_code = "forbid"
|
|
@@ -19,7 +19,7 @@ required-features = ["cli"]
|
|
|
19
19
|
doc = false
|
|
20
20
|
|
|
21
21
|
[features]
|
|
22
|
-
default = ["cli"]
|
|
22
|
+
default = ["cli", "duckdb"]
|
|
23
23
|
# The `sqlload` executable and its command-line parsing.
|
|
24
24
|
cli = ["dep:clap", "dep:rlimit", "dep:tracing-subscriber"]
|
|
25
25
|
# TLS and SASL support in the bundled librdkafka.
|
|
@@ -29,20 +29,24 @@ ssl-vendored = ["rdkafka/ssl-vendored"]
|
|
|
29
29
|
sasl = ["rdkafka/sasl"]
|
|
30
30
|
# Select the Docker-backed integration tests (`make test-containers`).
|
|
31
31
|
container-tests = []
|
|
32
|
-
# DuckDB as a loader destination
|
|
32
|
+
# DuckDB as a loader destination, compiled from the bundled source (cached in CI after the first build).
|
|
33
33
|
duckdb = ["dep:duckdb"]
|
|
34
34
|
|
|
35
35
|
[dependencies]
|
|
36
36
|
aes.workspace = true
|
|
37
37
|
arrow-array = { workspace = true, features = ["chrono-tz"] }
|
|
38
38
|
arrow-cast.workspace = true
|
|
39
|
+
arrow-csv.workspace = true
|
|
39
40
|
arrow-schema.workspace = true
|
|
41
|
+
arrow-select.workspace = true
|
|
42
|
+
async-compression.workspace = true
|
|
40
43
|
axum.workspace = true
|
|
41
44
|
base64.workspace = true
|
|
42
45
|
bytes.workspace = true
|
|
43
46
|
chrono.workspace = true
|
|
44
47
|
chrono-tz.workspace = true
|
|
45
48
|
clap = { workspace = true, optional = true }
|
|
49
|
+
csv-core.workspace = true
|
|
46
50
|
duckdb = { workspace = true, optional = true }
|
|
47
51
|
flate2.workspace = true
|
|
48
52
|
futures-util.workspace = true
|
|
@@ -65,9 +69,9 @@ serde.workspace = true
|
|
|
65
69
|
serde_json.workspace = true
|
|
66
70
|
sha2.workspace = true
|
|
67
71
|
thiserror.workspace = true
|
|
68
|
-
tokio
|
|
72
|
+
tokio = { workspace = true, features = ["io-util"] }
|
|
69
73
|
tokio-postgres.workspace = true
|
|
70
|
-
tokio-util
|
|
74
|
+
tokio-util = { workspace = true, features = ["io"] }
|
|
71
75
|
toml.workspace = true
|
|
72
76
|
tower-layer.workspace = true
|
|
73
77
|
tower-service.workspace = true
|
|
@@ -83,6 +87,7 @@ serde_json.workspace = true
|
|
|
83
87
|
sqlload-testkit.workspace = true
|
|
84
88
|
tokio.workspace = true
|
|
85
89
|
tokio-util.workspace = true
|
|
90
|
+
zstd.workspace = true
|
|
86
91
|
|
|
87
92
|
[lints]
|
|
88
93
|
workspace = true
|
{sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/warehouse_names.rs
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
use crate::column_types::constants::{
|
|
2
2
|
BIGQUERY_NUMERIC_MAX_INTEGER_DIGITS, BIGQUERY_NUMERIC_MAX_SCALE, SQL_SERVER_MAX_NVARCHAR_LENGTH,
|
|
3
3
|
};
|
|
4
|
+
use crate::column_types::main::arrow_field::arrow_field;
|
|
4
5
|
use crate::column_types::models::{ColumnType, Warehouse, WarehouseType};
|
|
5
6
|
|
|
6
7
|
const UUID_AS_TEXT: &str = "stored as text";
|
|
@@ -208,6 +209,17 @@ pub(crate) fn sqlite(column_type: &ColumnType) -> WarehouseType {
|
|
|
208
209
|
}
|
|
209
210
|
}
|
|
210
211
|
|
|
212
|
+
/// Parquet files, spelled as the Arrow type the files store; a `native` type has none.
|
|
213
|
+
pub(crate) fn parquet(column_type: &ColumnType) -> WarehouseType {
|
|
214
|
+
match arrow_field("", column_type) {
|
|
215
|
+
Some(field) => exact(field.data_type().to_string()),
|
|
216
|
+
None => lossy(
|
|
217
|
+
column_type.to_string(),
|
|
218
|
+
"a native type has no Arrow type, so Parquet files cannot hold it",
|
|
219
|
+
),
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
211
223
|
/// The mapping for `warehouse`.
|
|
212
224
|
pub(crate) fn for_warehouse(warehouse: Warehouse) -> fn(&ColumnType) -> WarehouseType {
|
|
213
225
|
match warehouse {
|
|
@@ -219,5 +231,6 @@ pub(crate) fn for_warehouse(warehouse: Warehouse) -> fn(&ColumnType) -> Warehous
|
|
|
219
231
|
Warehouse::ClickHouse => clickhouse,
|
|
220
232
|
Warehouse::SqlServer => sql_server,
|
|
221
233
|
Warehouse::Sqlite => sqlite,
|
|
234
|
+
Warehouse::Parquet => parquet,
|
|
222
235
|
}
|
|
223
236
|
}
|
|
@@ -46,7 +46,7 @@ impl std::fmt::Display for ColumnType {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
/// An engine SQLLoad reads from or writes to; every engine sqlbuild has an adapter for.
|
|
49
|
+
/// An engine SQLLoad reads from or writes to; every engine sqlbuild has an adapter for, plus Parquet files.
|
|
50
50
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
|
51
51
|
pub enum Warehouse {
|
|
52
52
|
Snowflake,
|
|
@@ -58,6 +58,8 @@ pub enum Warehouse {
|
|
|
58
58
|
ClickHouse,
|
|
59
59
|
SqlServer,
|
|
60
60
|
Sqlite,
|
|
61
|
+
/// Parquet files in an object store or directory: no SQL dialect, columns are Arrow types.
|
|
62
|
+
Parquet,
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
impl std::fmt::Display for Warehouse {
|
|
@@ -72,6 +74,7 @@ impl std::fmt::Display for Warehouse {
|
|
|
72
74
|
Self::ClickHouse => "ClickHouse",
|
|
73
75
|
Self::SqlServer => "SQL Server",
|
|
74
76
|
Self::Sqlite => "SQLite",
|
|
77
|
+
Self::Parquet => "Parquet files",
|
|
75
78
|
})
|
|
76
79
|
}
|
|
77
80
|
}
|
{sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/exporter_commands.rs
RENAMED
|
@@ -16,7 +16,10 @@ pub(crate) async fn run_exporter_command(
|
|
|
16
16
|
return Err("table selection and loader flags apply to loader projects; this file is an exporter configuration".to_owned());
|
|
17
17
|
}
|
|
18
18
|
match command {
|
|
19
|
-
Command::
|
|
19
|
+
Command::Debug {
|
|
20
|
+
no_connection: true,
|
|
21
|
+
} => Ok(vec!["ok config".to_owned()]),
|
|
22
|
+
Command::Debug { .. } => check(&config).await,
|
|
20
23
|
Command::Plan(_) => plan(&config).await,
|
|
21
24
|
Command::Tables { topics_file } => tables(&config, topics_file.as_deref()).await,
|
|
22
25
|
Command::Apply(_) => apply(&config).await,
|
{sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/loader_commands.rs
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
use crate::command::models::{Command, LoaderArgs};
|
|
2
2
|
use crate::loader::main::apply_project::apply_project;
|
|
3
3
|
use crate::loader::main::connect_targets::connect_targets;
|
|
4
|
+
use crate::loader::main::debug_project::debug_project;
|
|
4
5
|
use crate::loader::main::load_project::load_project;
|
|
5
6
|
use crate::loader::main::plan_project::plan_project;
|
|
6
7
|
use crate::loader::main::render_plan::render_plan;
|
|
@@ -61,6 +62,13 @@ fn timestamp_problem(text: &str) -> Option<String> {
|
|
|
61
62
|
/// Run a loader command against the project in `text`.
|
|
62
63
|
pub(crate) async fn run_loader(text: &str, command: Command) -> Result<Vec<String>, String> {
|
|
63
64
|
let project = parse_project(text, &environment_variable).map_err(|error| error.to_string())?;
|
|
65
|
+
if let Command::Debug { no_connection } = command {
|
|
66
|
+
let (lines, ok) = debug_project(&project, !no_connection).await;
|
|
67
|
+
return match ok {
|
|
68
|
+
true => Ok(lines),
|
|
69
|
+
false => Err(lines.join("\n")),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
64
72
|
let destinations = connect_targets(&project)
|
|
65
73
|
.await
|
|
66
74
|
.map_err(|error| error.to_string())?;
|
|
@@ -26,8 +26,13 @@ pub struct Cli {
|
|
|
26
26
|
/// The subcommands.
|
|
27
27
|
#[derive(Debug, Subcommand)]
|
|
28
28
|
pub enum Command {
|
|
29
|
-
/// Validate the configuration and
|
|
30
|
-
|
|
29
|
+
/// Validate the configuration and test every connection (`check` is an old name for it).
|
|
30
|
+
#[command(alias = "check")]
|
|
31
|
+
Debug {
|
|
32
|
+
/// Only validate the configuration; connect to nothing.
|
|
33
|
+
#[arg(long)]
|
|
34
|
+
no_connection: bool,
|
|
35
|
+
},
|
|
31
36
|
/// Show what `apply` and `load` would do (exporter: each topic's table and objects).
|
|
32
37
|
Plan(LoaderArgs),
|
|
33
38
|
/// Print `topic<TAB>table<TAB>stream<TAB>group` per topic (`-` when skipped), without Snowflake.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//! Delete files.
|
|
2
|
+
|
|
3
|
+
use object_store::ObjectStoreExt;
|
|
4
|
+
|
|
5
|
+
use crate::file_store::_helpers::keys::object_path;
|
|
6
|
+
use crate::file_store::errors::StoreError;
|
|
7
|
+
use crate::file_store::models::OpenFolder;
|
|
8
|
+
|
|
9
|
+
/// Delete each of `relative_keys` under `folder`; a file already gone is not an error.
|
|
10
|
+
pub async fn delete_files(folder: &OpenFolder, relative_keys: &[String]) -> Result<(), StoreError> {
|
|
11
|
+
for relative_key in relative_keys {
|
|
12
|
+
let failed = |source: object_store::Error| StoreError::Object {
|
|
13
|
+
action: "cannot delete",
|
|
14
|
+
key: relative_key.clone(),
|
|
15
|
+
source,
|
|
16
|
+
};
|
|
17
|
+
let path =
|
|
18
|
+
object_path(&format!("{}{relative_key}", folder.location.prefix)).map_err(failed)?;
|
|
19
|
+
match folder.store.delete(&path).await {
|
|
20
|
+
Ok(()) | Err(object_store::Error::NotFound { .. }) => {}
|
|
21
|
+
Err(error) => return Err(failed(error)),
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
Ok(())
|
|
25
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//! Check that a folder can be listed.
|
|
2
|
+
|
|
3
|
+
use crate::file_store::_helpers::keys::object_path;
|
|
4
|
+
use crate::file_store::errors::StoreError;
|
|
5
|
+
use crate::file_store::models::OpenFolder;
|
|
6
|
+
|
|
7
|
+
/// The number of files and folders directly under `folder`, from one listing request.
|
|
8
|
+
pub async fn probe_folder(folder: &OpenFolder) -> Result<usize, StoreError> {
|
|
9
|
+
let failed = |source: object_store::Error| StoreError::Object {
|
|
10
|
+
action: "cannot list",
|
|
11
|
+
key: folder.location.to_string(),
|
|
12
|
+
source,
|
|
13
|
+
};
|
|
14
|
+
let prefix = match folder.location.prefix.is_empty() {
|
|
15
|
+
true => None,
|
|
16
|
+
false => Some(object_path(&folder.location.prefix).map_err(failed)?),
|
|
17
|
+
};
|
|
18
|
+
let listed = folder
|
|
19
|
+
.store
|
|
20
|
+
.list_with_delimiter(prefix.as_ref())
|
|
21
|
+
.await
|
|
22
|
+
.map_err(failed)?;
|
|
23
|
+
Ok(listed.objects.len() + listed.common_prefixes.len())
|
|
24
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
use std::time::Duration;
|
|
2
|
+
|
|
3
|
+
use chrono::{Days, NaiveDateTime};
|
|
4
|
+
|
|
5
|
+
use crate::column_types::models::ColumnType;
|
|
6
|
+
use crate::files_destination::constants::{MIDNIGHT, UTC_SUFFIX};
|
|
7
|
+
use crate::files_destination::models::PartitionBy;
|
|
8
|
+
use crate::write_sql::constants::CURSOR_TIMESTAMP_FORMAT;
|
|
9
|
+
use crate::write_sql::main::cursor_bound::cursor_bound;
|
|
10
|
+
use crate::write_sql::models::CursorValue;
|
|
11
|
+
|
|
12
|
+
fn zone(cursor_type: &ColumnType) -> &'static str {
|
|
13
|
+
match cursor_type {
|
|
14
|
+
ColumnType::TimestampTz => UTC_SUFFIX,
|
|
15
|
+
_ => "",
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
fn is_timestamp(cursor_type: &ColumnType) -> bool {
|
|
20
|
+
matches!(
|
|
21
|
+
cursor_type,
|
|
22
|
+
ColumnType::TimestampTz | ColumnType::TimestampNtz
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
fn timestamp(bound: &str) -> Result<NaiveDateTime, String> {
|
|
27
|
+
NaiveDateTime::parse_from_str(bound.trim_end_matches(UTC_SUFFIX), "%Y-%m-%d %H:%M:%S%.f")
|
|
28
|
+
.map_err(|_| format!("cursor bound {bound:?} is not a timestamp"))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/// The cursor value partition `value` starts at: its first instant for a timestamp cursor by date.
|
|
32
|
+
pub(crate) fn partition_start(value: &str, by: PartitionBy, cursor_type: &ColumnType) -> String {
|
|
33
|
+
match (by, is_timestamp(cursor_type)) {
|
|
34
|
+
(PartitionBy::Date, true) => format!("{value} {MIDNIGHT}{}", zone(cursor_type)),
|
|
35
|
+
_ => value.to_owned(),
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/// `bound` moved back by `lookback`; only timestamp and date cursors take a lookback.
|
|
40
|
+
pub(crate) fn minus_lookback(
|
|
41
|
+
bound: String,
|
|
42
|
+
cursor_type: &ColumnType,
|
|
43
|
+
lookback: Option<Duration>,
|
|
44
|
+
) -> Result<String, String> {
|
|
45
|
+
let Some(lookback) = lookback else {
|
|
46
|
+
return Ok(bound);
|
|
47
|
+
};
|
|
48
|
+
match cursor_type {
|
|
49
|
+
ColumnType::Date => cursor_bound(&bound, CursorValue::Date, Some(lookback)),
|
|
50
|
+
ColumnType::TimestampTz | ColumnType::TimestampNtz => {
|
|
51
|
+
let micros = timestamp(&bound)?.and_utc().timestamp_micros().to_string();
|
|
52
|
+
let zoned = *cursor_type == ColumnType::TimestampTz;
|
|
53
|
+
cursor_bound(µs, CursorValue::EpochMicros { zoned }, Some(lookback))
|
|
54
|
+
}
|
|
55
|
+
other => Err(format!(
|
|
56
|
+
"lookback needs a timestamp or date cursor, but the cursor is {other}"
|
|
57
|
+
)),
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/// `bound` moved down to the start of its partition, so whole partitions are read.
|
|
62
|
+
pub(crate) fn align_down(
|
|
63
|
+
bound: &str,
|
|
64
|
+
by: PartitionBy,
|
|
65
|
+
cursor_type: &ColumnType,
|
|
66
|
+
) -> Result<String, String> {
|
|
67
|
+
match (by, is_timestamp(cursor_type)) {
|
|
68
|
+
(PartitionBy::Date, true) => {
|
|
69
|
+
let date = timestamp(bound)?.date().format("%Y-%m-%d").to_string();
|
|
70
|
+
Ok(partition_start(&date, by, cursor_type))
|
|
71
|
+
}
|
|
72
|
+
_ => Ok(bound.to_owned()),
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/// `bound` (exclusive) moved up to the start of the next partition unless it already starts one.
|
|
77
|
+
pub(crate) fn align_up(
|
|
78
|
+
bound: &str,
|
|
79
|
+
by: PartitionBy,
|
|
80
|
+
cursor_type: &ColumnType,
|
|
81
|
+
) -> Result<String, String> {
|
|
82
|
+
let (PartitionBy::Date, true) = (by, is_timestamp(cursor_type)) else {
|
|
83
|
+
return Ok(bound.to_owned());
|
|
84
|
+
};
|
|
85
|
+
let time = timestamp(bound)?;
|
|
86
|
+
let start = time.date().and_time(chrono::NaiveTime::MIN);
|
|
87
|
+
let aligned = match time == start {
|
|
88
|
+
true => start,
|
|
89
|
+
false => start
|
|
90
|
+
.checked_add_days(Days::new(1))
|
|
91
|
+
.ok_or_else(|| format!("cursor bound {bound:?} is out of range"))?,
|
|
92
|
+
};
|
|
93
|
+
Ok(format!(
|
|
94
|
+
"{}{}",
|
|
95
|
+
aligned.format(CURSOR_TIMESTAMP_FORMAT),
|
|
96
|
+
zone(cursor_type)
|
|
97
|
+
))
|
|
98
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
use crate::files_destination::constants::PART_PREFIX;
|
|
2
|
+
|
|
3
|
+
/// The load id in a written file's key (`.../part-<load id>-<n>.parquet`), if the file name has that shape.
|
|
4
|
+
pub(crate) fn load_id_of(key: &str) -> Option<&str> {
|
|
5
|
+
let name = key.rsplit_once('/').map_or(key, |(_, name)| name);
|
|
6
|
+
let (load_id, _) = name.strip_prefix(PART_PREFIX)?.rsplit_once('-')?;
|
|
7
|
+
(!load_id.is_empty()).then_some(load_id)
|
|
8
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
use crate::file_store::models::OpenFolder;
|
|
2
|
+
use crate::files_destination::constants::{PENDING_FOLDER, PENDING_REPLACING, PENDING_WRITING};
|
|
3
|
+
use crate::files_destination::models::PendingPhase;
|
|
4
|
+
use crate::store_paths::models::Location;
|
|
5
|
+
|
|
6
|
+
/// The folder of a table's pending markers, in the same store.
|
|
7
|
+
pub(crate) fn pending_folder(folder: &OpenFolder) -> OpenFolder {
|
|
8
|
+
OpenFolder {
|
|
9
|
+
store: folder.store.clone(),
|
|
10
|
+
location: Location {
|
|
11
|
+
store: folder.location.store.clone(),
|
|
12
|
+
prefix: format!("{}{PENDING_FOLDER}", folder.location.prefix),
|
|
13
|
+
},
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/// A marker's text: the phase, then one key per line.
|
|
18
|
+
pub(crate) fn marker_text(phase: PendingPhase, keys: &[String]) -> String {
|
|
19
|
+
let first = match phase {
|
|
20
|
+
PendingPhase::Writing => PENDING_WRITING,
|
|
21
|
+
PendingPhase::Replacing => PENDING_REPLACING,
|
|
22
|
+
};
|
|
23
|
+
let mut lines = vec![first.to_owned()];
|
|
24
|
+
lines.extend(keys.iter().cloned());
|
|
25
|
+
lines.join("\n")
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// The phase and keys a marker's text records.
|
|
29
|
+
pub(crate) fn parse_marker(text: &str) -> Result<(PendingPhase, Vec<String>), String> {
|
|
30
|
+
let mut lines = text.lines();
|
|
31
|
+
let phase = match lines.next() {
|
|
32
|
+
Some(PENDING_WRITING) => PendingPhase::Writing,
|
|
33
|
+
Some(PENDING_REPLACING) => PendingPhase::Replacing,
|
|
34
|
+
other => {
|
|
35
|
+
return Err(format!(
|
|
36
|
+
"a pending marker starts with {other:?}, not {PENDING_WRITING:?} or {PENDING_REPLACING:?}"
|
|
37
|
+
));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
let keys: Vec<String> = lines
|
|
41
|
+
.filter(|line| !line.is_empty())
|
|
42
|
+
.map(str::to_owned)
|
|
43
|
+
.collect();
|
|
44
|
+
Ok((phase, keys))
|
|
45
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
pub(crate) mod bounds;
|
|
2
|
+
pub(crate) mod loads;
|
|
3
|
+
pub(crate) mod markers;
|
|
4
|
+
pub(crate) mod parquet_files;
|
|
5
|
+
pub(crate) mod partitions;
|
|
6
|
+
pub(crate) mod shape;
|
|
7
|
+
pub(crate) mod spill;
|
|
8
|
+
pub(crate) mod split;
|
|
9
|
+
pub(crate) mod statistics;
|
|
10
|
+
pub(crate) mod template;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
use arrow_schema::SchemaRef;
|
|
2
|
+
use bytes::Bytes;
|
|
3
|
+
use parquet::arrow::ArrowWriter;
|
|
4
|
+
use parquet::basic::{Compression, ZstdLevel};
|
|
5
|
+
use parquet::file::properties::WriterProperties;
|
|
6
|
+
|
|
7
|
+
use crate::file_store::main::write_file::write_file;
|
|
8
|
+
use crate::file_store::models::OpenFolder;
|
|
9
|
+
use crate::files_destination::constants::{OPEN_FILE_OVERHEAD_BYTES, PARQUET_SUFFIX, PART_PREFIX};
|
|
10
|
+
use crate::files_destination::errors::FilesDestinationError;
|
|
11
|
+
use crate::files_destination::models::{FilesWriter, OpenFile};
|
|
12
|
+
|
|
13
|
+
/// An empty zstd Parquet file in memory with the table's schema; statistics are never truncated, so maximums are exact.
|
|
14
|
+
pub(crate) fn new_file(schema: &SchemaRef) -> Result<OpenFile, String> {
|
|
15
|
+
let properties = WriterProperties::builder()
|
|
16
|
+
.set_compression(Compression::ZSTD(ZstdLevel::default()))
|
|
17
|
+
.set_statistics_truncate_length(None)
|
|
18
|
+
.set_column_index_truncate_length(None)
|
|
19
|
+
.build();
|
|
20
|
+
ArrowWriter::try_new(Vec::new(), schema.clone(), Some(properties))
|
|
21
|
+
.map(|writer| OpenFile { writer, rows: 0 })
|
|
22
|
+
.map_err(|error| error.to_string())
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/// The bytes an open file holds in memory: written, still buffered, and the writer's own overhead.
|
|
26
|
+
pub(crate) fn open_bytes(file: &OpenFile) -> usize {
|
|
27
|
+
file.writer.bytes_written()
|
|
28
|
+
+ file
|
|
29
|
+
.writer
|
|
30
|
+
.in_progress_size()
|
|
31
|
+
.max(file.writer.memory_size())
|
|
32
|
+
+ OPEN_FILE_OVERHEAD_BYTES
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/// The key of the writer's next file in partition `value`: `<partition folder>/part-<load id>-<n>.parquet`.
|
|
36
|
+
pub(crate) fn next_key(writer: &FilesWriter, value: &str) -> String {
|
|
37
|
+
let folder = match &writer.partition {
|
|
38
|
+
Some(partition) => format!("{}/", partition.name(value)),
|
|
39
|
+
None => String::new(),
|
|
40
|
+
};
|
|
41
|
+
format!(
|
|
42
|
+
"{folder}{PART_PREFIX}{}-{}{PARQUET_SUFFIX}",
|
|
43
|
+
writer.load_id,
|
|
44
|
+
writer.written.len()
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/// Finish `file` and put it at `key` in one write, so readers see it only once complete.
|
|
49
|
+
pub(crate) async fn store_file(
|
|
50
|
+
folder: &OpenFolder,
|
|
51
|
+
key: &str,
|
|
52
|
+
file: OpenFile,
|
|
53
|
+
) -> Result<(), FilesDestinationError> {
|
|
54
|
+
let failed = |error: parquet::errors::ParquetError| FilesDestinationError::Write {
|
|
55
|
+
key: key.to_owned(),
|
|
56
|
+
reason: error.to_string(),
|
|
57
|
+
};
|
|
58
|
+
let bytes = file.writer.into_inner().map_err(failed)?;
|
|
59
|
+
Ok(write_file(folder, key, Bytes::from(bytes)).await?)
|
|
60
|
+
}
|