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.
Files changed (536) hide show
  1. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/Cargo.lock +45 -2
  2. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/Cargo.toml +6 -1
  3. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/PKG-INFO +1 -1
  4. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/Cargo.toml +9 -4
  5. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/warehouse_names.rs +13 -0
  6. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/models.rs +4 -1
  7. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/exporter_commands.rs +4 -1
  8. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/loader_commands.rs +8 -0
  9. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/models.rs +7 -2
  10. sqlload_cli-0.4.0/crates/sqlload/src/file_store/main/delete_files.rs +25 -0
  11. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/mod.rs +2 -0
  12. sqlload_cli-0.4.0/crates/sqlload/src/file_store/main/probe_folder.rs +24 -0
  13. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/bounds.rs +98 -0
  14. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/loads.rs +8 -0
  15. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/markers.rs +45 -0
  16. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/mod.rs +10 -0
  17. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/parquet_files.rs +60 -0
  18. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/partitions.rs +106 -0
  19. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/shape.rs +40 -0
  20. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/spill.rs +21 -0
  21. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/split.rs +67 -0
  22. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/statistics.rs +90 -0
  23. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/_helpers/template.rs +41 -0
  24. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/constants.rs +47 -0
  25. {sqlload_cli-0.3.0/crates/sqlload/src/files_source → sqlload_cli-0.4.0/crates/sqlload/src/files_destination}/errors.rs +3 -3
  26. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/_partition_in_window.rs +24 -0
  27. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/check_window.rs +18 -0
  28. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/clear_pending.rs +14 -0
  29. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/close_writer.rs +28 -0
  30. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/cursor_maximum.rs +20 -0
  31. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/fit_live_types.rs +27 -0
  32. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/folder_conflict.rs +41 -0
  33. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/mark_pending.rs +20 -0
  34. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/mod.rs +18 -0
  35. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/newest_load_files.rs +32 -0
  36. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/open_writer.rs +40 -0
  37. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/output_problems.rs +69 -0
  38. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/partition_window.rs +50 -0
  39. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/plan_replaced_files.rs +43 -0
  40. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/read_table_state.rs +73 -0
  41. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/repair_table.rs +20 -0
  42. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/table_path.rs +59 -0
  43. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/write_notes.rs +17 -0
  44. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/main/write_rows.rs +89 -0
  45. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/mod.rs +10 -0
  46. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/models.rs +266 -0
  47. sqlload_cli-0.4.0/crates/sqlload/src/files_destination/tests.rs +36 -0
  48. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/mod.rs +3 -0
  49. {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
  50. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/parquet/mod.rs +2 -0
  51. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan/columns.rs +133 -0
  52. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/plan/encoding.rs +56 -0
  53. {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
  54. {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
  55. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/bytes_reader.rs +81 -0
  56. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/checks.rs +75 -0
  57. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/csv_reader.rs +172 -0
  58. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/csv_records.rs +166 -0
  59. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/inference.rs +97 -0
  60. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/json_reader.rs +106 -0
  61. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/json_records.rs +241 -0
  62. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/mod.rs +9 -0
  63. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/sample.rs +92 -0
  64. sqlload_cli-0.4.0/crates/sqlload/src/files_source/_helpers/text/text_reader.rs +113 -0
  65. sqlload_cli-0.4.0/crates/sqlload/src/files_source/constants.rs +38 -0
  66. sqlload_cli-0.4.0/crates/sqlload/src/files_source/errors.rs +17 -0
  67. sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/discover_files.rs +100 -0
  68. sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/footer_columns.rs +16 -0
  69. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/files_source/main/mod.rs +2 -0
  70. sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/read_files.rs +90 -0
  71. sqlload_cli-0.4.0/crates/sqlload/src/files_source/main/read_footers.rs +36 -0
  72. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/files_source/main/select_files.rs +1 -1
  73. sqlload_cli-0.4.0/crates/sqlload/src/files_source/models.rs +192 -0
  74. sqlload_cli-0.4.0/crates/sqlload/src/files_source/tests.rs +16 -0
  75. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/lib.rs +1 -0
  76. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/destination.rs +13 -0
  77. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/render.rs +80 -3
  78. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/resolve.rs +20 -8
  79. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/route.rs +4 -0
  80. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/sources.rs +87 -4
  81. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/specs.rs +7 -0
  82. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/table_plan.rs +31 -3
  83. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/window.rs +5 -1
  84. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/errors.rs +3 -0
  85. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_check_source.rs +34 -0
  86. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_check_target.rs +40 -0
  87. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_connect_target.rs +82 -0
  88. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_context.rs +73 -0
  89. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_repair.rs +52 -0
  90. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_schema.rs +60 -0
  91. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_files_window.rs +154 -0
  92. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_load_files.rs +82 -0
  93. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_plan_files.rs +130 -0
  94. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/_table_folder.rs +24 -0
  95. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/apply_project.rs +2 -2
  96. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/connect_targets.rs +19 -0
  97. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/debug_project.rs +53 -0
  98. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/load_project.rs +18 -5
  99. sqlload_cli-0.4.0/crates/sqlload/src/loader/main/mod.rs +16 -0
  100. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/plan_project.rs +57 -4
  101. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/main/render_plan.rs +1 -1
  102. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/models.rs +71 -3
  103. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/mod.rs +1 -0
  104. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/references.rs +59 -19
  105. sqlload_cli-0.4.0/crates/sqlload/src/project/_helpers/targets.rs +87 -0
  106. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/constants.rs +14 -1
  107. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/models.rs +54 -7
  108. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/_helpers/changes.rs +16 -6
  109. 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
  110. sqlload_cli-0.4.0/crates/sqlload/src/similar_names/_helpers/mod.rs +1 -0
  111. sqlload_cli-0.4.0/crates/sqlload/src/similar_names/constants.rs +2 -0
  112. sqlload_cli-0.4.0/crates/sqlload/src/similar_names/main/close_name.rs +21 -0
  113. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/similar_names/main/mod.rs +1 -0
  114. sqlload_cli-0.4.0/crates/sqlload/src/similar_names/main/nearest_name.rs +13 -0
  115. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/similar_names/mod.rs +5 -0
  116. sqlload_cli-0.4.0/crates/sqlload/src/similar_names/tests.rs +4 -0
  117. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/constants.rs +5 -0
  118. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/errors.rs +10 -0
  119. sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/escape_partition_value.rs +16 -0
  120. sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/mod.rs +5 -0
  121. sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/render_template.rs +39 -0
  122. sqlload_cli-0.4.0/crates/sqlload/src/store_paths/main/unescape_partition_value.rs +8 -0
  123. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/tests.rs +4 -0
  124. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/pyproject.toml +1 -1
  125. sqlload_cli-0.3.0/crates/sqlload/src/files_source/_helpers/columns.rs +0 -42
  126. sqlload_cli-0.3.0/crates/sqlload/src/files_source/constants.rs +0 -14
  127. sqlload_cli-0.3.0/crates/sqlload/src/files_source/main/discover_files.rs +0 -57
  128. sqlload_cli-0.3.0/crates/sqlload/src/files_source/main/read_files.rs +0 -44
  129. sqlload_cli-0.3.0/crates/sqlload/src/files_source/models.rs +0 -60
  130. sqlload_cli-0.3.0/crates/sqlload/src/files_source/tests.rs +0 -4
  131. sqlload_cli-0.3.0/crates/sqlload/src/loader/main/connect_targets.rs +0 -61
  132. sqlload_cli-0.3.0/crates/sqlload/src/loader/main/mod.rs +0 -5
  133. sqlload_cli-0.3.0/crates/sqlload/src/store_paths/main/mod.rs +0 -2
  134. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/README.md +0 -0
  135. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/LICENSE +0 -0
  136. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/README.md +0 -0
  137. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/_helpers/jwt.rs +0 -0
  138. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/_helpers/mod.rs +0 -0
  139. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/constants.rs +0 -0
  140. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/main/account_url.rs +0 -0
  141. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/main/mod.rs +0 -0
  142. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/mod.rs +0 -0
  143. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/auth/models.rs +0 -0
  144. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/_helpers/chunks.rs +0 -0
  145. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/_helpers/gzip.rs +0 -0
  146. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/_helpers/mod.rs +0 -0
  147. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/main/compress_chunks.rs +0 -0
  148. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/main/gzip_bytes.rs +0 -0
  149. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/main/mod.rs +0 -0
  150. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/mod.rs +0 -0
  151. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/models.rs +0 -0
  152. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/batching/tests.rs +0 -0
  153. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/destinations.rs +0 -0
  154. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/fit.rs +0 -0
  155. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/live_names.rs +0 -0
  156. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/mod.rs +0 -0
  157. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/names.rs +0 -0
  158. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/native.rs +0 -0
  159. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/suggest.rs +0 -0
  160. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/_helpers/syntax.rs +0 -0
  161. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/constants.rs +0 -0
  162. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/errors.rs +0 -0
  163. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/arrow_field.rs +0 -0
  164. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/live_type.rs +0 -0
  165. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/mod.rs +0 -0
  166. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/parse_type.rs +0 -0
  167. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/portable_type.rs +0 -0
  168. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/type_fit.rs +0 -0
  169. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/main/warehouse_type.rs +0 -0
  170. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/mod.rs +0 -0
  171. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/column_types/tests.rs +0 -0
  172. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/commands.rs +0 -0
  173. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/limits.rs +0 -0
  174. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/logging.rs +0 -0
  175. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/mod.rs +0 -0
  176. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/_helpers/signals.rs +0 -0
  177. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/main/mod.rs +0 -0
  178. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/main/run.rs +0 -0
  179. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/command/mod.rs +0 -0
  180. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/defaults.rs +0 -0
  181. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/interpolate.rs +0 -0
  182. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/mod.rs +0 -0
  183. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/patterns.rs +0 -0
  184. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/units.rs +0 -0
  185. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/_helpers/validate.rs +0 -0
  186. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/constants.rs +0 -0
  187. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/errors.rs +0 -0
  188. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/interpolate_toml.rs +0 -0
  189. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/load_config.rs +0 -0
  190. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/mod.rs +0 -0
  191. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/parse_config.rs +0 -0
  192. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/main/stream_settings.rs +0 -0
  193. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/mod.rs +0 -0
  194. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/models.rs +0 -0
  195. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/config/tests.rs +0 -0
  196. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/aws_credentials.rs +0 -0
  197. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/mod.rs +0 -0
  198. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/pending_loads.rs +0 -0
  199. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/stage.rs +0 -0
  200. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/stage_paths.rs +0 -0
  201. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/_helpers/streaming.rs +0 -0
  202. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/constants.rs +0 -0
  203. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/errors.rs +0 -0
  204. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/main/build_delivery.rs +0 -0
  205. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/main/mod.rs +0 -0
  206. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/mod.rs +0 -0
  207. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/models.rs +0 -0
  208. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/delivery/tests.rs +0 -0
  209. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/_helpers/blocking.rs +0 -0
  210. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/_helpers/mod.rs +0 -0
  211. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/constants.rs +0 -0
  212. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/errors.rs +0 -0
  213. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/append_batch.rs +0 -0
  214. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/describe_table.rs +0 -0
  215. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/execute_statements.rs +0 -0
  216. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/mod.rs +0 -0
  217. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/open_duckdb.rs +0 -0
  218. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/query_text.rs +0 -0
  219. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/main/query_texts.rs +0 -0
  220. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/mod.rs +0 -0
  221. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/duckdb_destination/models.rs +0 -0
  222. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/_helpers/fields.rs +0 -0
  223. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/_helpers/mod.rs +0 -0
  224. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/main/encode_row.rs +0 -0
  225. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/main/mod.rs +0 -0
  226. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/mod.rs +0 -0
  227. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/models.rs +0 -0
  228. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/envelope/tests.rs +0 -0
  229. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/_helpers/mod.rs +0 -0
  230. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/_helpers/stream_task.rs +0 -0
  231. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/_helpers/supervisor.rs +0 -0
  232. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/main/build_clients.rs +0 -0
  233. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/main/mod.rs +0 -0
  234. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/main/run_exporter.rs +0 -0
  235. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/mod.rs +0 -0
  236. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/exporter/models.rs +0 -0
  237. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/columns.rs +0 -0
  238. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/load_select.rs +0 -0
  239. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/mod.rs +0 -0
  240. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/_helpers/parquet.rs +0 -0
  241. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/constants.rs +0 -0
  242. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/copy_into.rs +0 -0
  243. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/encode_file.rs +0 -0
  244. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/file_extension.rs +0 -0
  245. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/main/mod.rs +0 -0
  246. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/mod.rs +0 -0
  247. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/models.rs +0 -0
  248. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_format/tests.rs +0 -0
  249. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/_helpers/keys.rs +0 -0
  250. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/_helpers/mod.rs +0 -0
  251. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/constants.rs +0 -0
  252. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/errors.rs +0 -0
  253. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/list_files.rs +0 -0
  254. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/open_folder.rs +0 -0
  255. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/read_file.rs +0 -0
  256. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/main/write_file.rs +0 -0
  257. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/mod.rs +0 -0
  258. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/file_store/models.rs +0 -0
  259. {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
  260. {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
  261. {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
  262. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/files_source/mod.rs +0 -0
  263. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/_helpers/counting.rs +0 -0
  264. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/_helpers/error_body.rs +0 -0
  265. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/_helpers/mod.rs +0 -0
  266. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/constants.rs +0 -0
  267. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/errors.rs +0 -0
  268. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/check_response.rs +0 -0
  269. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/http_client.rs +0 -0
  270. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/install_tls_provider.rs +0 -0
  271. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/main/mod.rs +0 -0
  272. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/mod.rs +0 -0
  273. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/http/models.rs +0 -0
  274. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/_helpers/client.rs +0 -0
  275. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/_helpers/mod.rs +0 -0
  276. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/constants.rs +0 -0
  277. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/build_consumer.rs +0 -0
  278. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/group_lag.rs +0 -0
  279. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/list_topics.rs +0 -0
  280. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/mod.rs +0 -0
  281. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/partitions_of.rs +0 -0
  282. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/prefetch_kbytes.rs +0 -0
  283. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/select_topics.rs +0 -0
  284. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/main/to_record.rs +0 -0
  285. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/mod.rs +0 -0
  286. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/models.rs +0 -0
  287. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/tests.rs +0 -0
  288. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/kafka/types.rs +0 -0
  289. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/clock.rs +0 -0
  290. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/mod.rs +0 -0
  291. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/_helpers/settings.rs +0 -0
  292. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/constants.rs +0 -0
  293. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/mod.rs +0 -0
  294. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/loader/tests.rs +0 -0
  295. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/main.rs +0 -0
  296. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/_helpers/column.rs +0 -0
  297. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/_helpers/mod.rs +0 -0
  298. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/main/mask_batch.rs +0 -0
  299. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/main/mod.rs +0 -0
  300. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/mod.rs +0 -0
  301. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/models.rs +0 -0
  302. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/masking/tests.rs +0 -0
  303. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/main/mod.rs +0 -0
  304. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/main/serve_metrics.rs +0 -0
  305. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/mod.rs +0 -0
  306. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/metrics/models.rs +0 -0
  307. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/identifiers.rs +0 -0
  308. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/mod.rs +0 -0
  309. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/patterns.rs +0 -0
  310. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/streams.rs +0 -0
  311. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/_helpers/tables.rs +0 -0
  312. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/constants.rs +0 -0
  313. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/mod.rs +0 -0
  314. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/qualify_stage.rs +0 -0
  315. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/quote_name.rs +0 -0
  316. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/resolve_streams.rs +0 -0
  317. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/resolve_tables.rs +0 -0
  318. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/main/shard_of.rs +0 -0
  319. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/mod.rs +0 -0
  320. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/models.rs +0 -0
  321. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/naming/tests.rs +0 -0
  322. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/compatibility.rs +0 -0
  323. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/ddl.rs +0 -0
  324. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/mod.rs +0 -0
  325. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/_helpers/objects.rs +0 -0
  326. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/constants.rs +0 -0
  327. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/errors.rs +0 -0
  328. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/apply_plan.rs +0 -0
  329. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/build_plan.rs +0 -0
  330. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/load_path.rs +0 -0
  331. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/mod.rs +0 -0
  332. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/main/read_existing.rs +0 -0
  333. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/mod.rs +0 -0
  334. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/models.rs +0 -0
  335. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/planning/tests.rs +0 -0
  336. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/builders.rs +0 -0
  337. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/catalog.rs +0 -0
  338. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/copy_decoder.rs +0 -0
  339. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/mod.rs +0 -0
  340. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/type_map.rs +0 -0
  341. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/_helpers/values.rs +0 -0
  342. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/constants.rs +0 -0
  343. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/errors.rs +0 -0
  344. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/connect_postgres.rs +0 -0
  345. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/copy_table.rs +0 -0
  346. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/mod.rs +0 -0
  347. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/plan_read.rs +0 -0
  348. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/main/read_catalog.rs +0 -0
  349. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/mod.rs +0 -0
  350. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/models.rs +0 -0
  351. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/postgres_source/tests.rs +0 -0
  352. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/defaults.rs +0 -0
  353. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/serde_values.rs +0 -0
  354. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/_helpers/unknown_keys.rs +0 -0
  355. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/errors.rs +0 -0
  356. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/main/is_project.rs +0 -0
  357. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/main/mod.rs +0 -0
  358. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/main/parse_project.rs +0 -0
  359. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/mod.rs +0 -0
  360. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/project/tests.rs +0 -0
  361. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/deliver.rs +0 -0
  362. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/mod.rs +0 -0
  363. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/stores.rs +0 -0
  364. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/_helpers/warehouse_source.rs +0 -0
  365. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/constants.rs +0 -0
  366. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/errors.rs +0 -0
  367. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/main/mod.rs +0 -0
  368. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/main/plan_route.rs +0 -0
  369. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/mod.rs +0 -0
  370. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/models.rs +0 -0
  371. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/routing/tests.rs +0 -0
  372. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/_helpers/mod.rs +0 -0
  373. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/constants.rs +0 -0
  374. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/main/metadata_columns.rs +0 -0
  375. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/main/mod.rs +0 -0
  376. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/main/plan_schema.rs +0 -0
  377. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/mod.rs +0 -0
  378. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/models.rs +0 -0
  379. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/schema_plan/tests.rs +0 -0
  380. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/_helpers/mod.rs +0 -0
  381. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/_helpers/parquet_file.rs +0 -0
  382. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/constants.rs +0 -0
  383. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/connect_snowflake.rs +0 -0
  384. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/copy_staged.rs +0 -0
  385. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/describe_table.rs +0 -0
  386. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/mod.rs +0 -0
  387. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/query_text.rs +0 -0
  388. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/query_texts.rs +0 -0
  389. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/remove_staged.rs +0 -0
  390. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/run_statements.rs +0 -0
  391. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/main/stage_parquet.rs +0 -0
  392. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/mod.rs +0 -0
  393. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/snowflake_destination/models.rs +0 -0
  394. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/mod.rs +0 -0
  395. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/requests.rs +0 -0
  396. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/results.rs +0 -0
  397. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/_helpers/run.rs +0 -0
  398. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/constants.rs +0 -0
  399. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/main/execute_script.rs +0 -0
  400. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/main/execute_sql.rs +0 -0
  401. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/main/mod.rs +0 -0
  402. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/mod.rs +0 -0
  403. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/sql_api/models.rs +0 -0
  404. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/encryption.rs +0 -0
  405. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/load_report.rs +0 -0
  406. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/mod.rs +0 -0
  407. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/pipe_request.rs +0 -0
  408. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/s3_errors.rs +0 -0
  409. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/signed_request.rs +0 -0
  410. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/sigv4.rs +0 -0
  411. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/_helpers/stage_response.rs +0 -0
  412. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/constants.rs +0 -0
  413. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/head_object.rs +0 -0
  414. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/insert_files.rs +0 -0
  415. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/insert_report.rs +0 -0
  416. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/load_history_scan.rs +0 -0
  417. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/mod.rs +0 -0
  418. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/put_object.rs +0 -0
  419. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/main/put_stage_file.rs +0 -0
  420. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/mod.rs +0 -0
  421. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/models.rs +0 -0
  422. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/stage_api/tests.rs +0 -0
  423. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/_helpers/channels.rs +0 -0
  424. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/_helpers/mod.rs +0 -0
  425. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/constants.rs +0 -0
  426. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/main/check_connections.rs +0 -0
  427. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/main/collect_status.rs +0 -0
  428. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/main/mod.rs +0 -0
  429. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/mod.rs +0 -0
  430. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/status/models.rs +0 -0
  431. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/escapes.rs +0 -0
  432. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/folder.rs +0 -0
  433. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/locations.rs +0 -0
  434. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/mod.rs +0 -0
  435. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/_helpers/segments.rs +0 -0
  436. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/main/hive_values.rs +0 -0
  437. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/main/resolve_location.rs +0 -0
  438. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/mod.rs +0 -0
  439. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/store_paths/models.rs +0 -0
  440. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/_helpers/mod.rs +0 -0
  441. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/_helpers/requests.rs +0 -0
  442. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/constants.rs +0 -0
  443. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/append_rows.rs +0 -0
  444. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/channel_statuses.rs +0 -0
  445. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/ingest_host.rs +0 -0
  446. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/mod.rs +0 -0
  447. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/main/open_channel.rs +0 -0
  448. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/mod.rs +0 -0
  449. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/streaming_api/models.rs +0 -0
  450. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/_helpers/civil.rs +0 -0
  451. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/_helpers/mod.rs +0 -0
  452. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/constants.rs +0 -0
  453. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/amz_date.rs +0 -0
  454. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/iso_utc.rs +0 -0
  455. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/mod.rs +0 -0
  456. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/now_ms.rs +0 -0
  457. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/main/utc_date.rs +0 -0
  458. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/time_text/mod.rs +0 -0
  459. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/identifiers.rs +0 -0
  460. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/mod.rs +0 -0
  461. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/promote.rs +0 -0
  462. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/rebuild.rs +0 -0
  463. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/_helpers/recreate.rs +0 -0
  464. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/constants.rs +0 -0
  465. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/alter_statements.rs +0 -0
  466. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/create_schema.rs +0 -0
  467. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/create_table.rs +0 -0
  468. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/cursor_bound.rs +0 -0
  469. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/cursor_query.rs +0 -0
  470. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/cursor_text.rs +0 -0
  471. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/display_name.rs +0 -0
  472. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/loaded_files_query.rs +0 -0
  473. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/mod.rs +0 -0
  474. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/qualified_name.rs +0 -0
  475. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/sql_literal.rs +0 -0
  476. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/staging_table.rs +0 -0
  477. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/stored_name.rs +0 -0
  478. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/swap_table.rs +0 -0
  479. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/main/write_statements.rs +0 -0
  480. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/mod.rs +0 -0
  481. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/models.rs +0 -0
  482. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload/src/write_sql/tests.rs +0 -0
  483. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/Cargo.toml +0 -0
  484. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/constants.rs +0 -0
  485. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/main/mod.rs +0 -0
  486. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/main/s3_config.rs +0 -0
  487. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/main/streaming_config.rs +0 -0
  488. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/mod.rs +0 -0
  489. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/configs/models.rs +0 -0
  490. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/loading.rs +0 -0
  491. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/mod.rs +0 -0
  492. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/objects.rs +0 -0
  493. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/routing.rs +0 -0
  494. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/statements.rs +0 -0
  495. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/_helpers/streaming.rs +0 -0
  496. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/constants.rs +0 -0
  497. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/main/mod.rs +0 -0
  498. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/main/start_fake_snowflake.rs +0 -0
  499. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/mod.rs +0 -0
  500. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/fake_snowflake/models.rs +0 -0
  501. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/constants.rs +0 -0
  502. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/mod.rs +0 -0
  503. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/read_metrics.rs +0 -0
  504. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/start_exporter.rs +0 -0
  505. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/start_stack.rs +0 -0
  506. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/stop_exporter.rs +0 -0
  507. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/wait_for_appends.rs +0 -0
  508. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/wait_for_commits.rs +0 -0
  509. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/main/wait_for_rows.rs +0 -0
  510. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/mod.rs +0 -0
  511. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/harness/models.rs +0 -0
  512. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/lib.rs +0 -0
  513. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/constants.rs +0 -0
  514. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/main/connect.rs +0 -0
  515. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/main/mod.rs +0 -0
  516. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/main/start_postgres.rs +0 -0
  517. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/mod.rs +0 -0
  518. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/postgres/models.rs +0 -0
  519. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/distinct_positions.rs +0 -0
  520. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/incompressible_values.rs +0 -0
  521. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/mod.rs +0 -0
  522. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/main/order_values.rs +0 -0
  523. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/records/mod.rs +0 -0
  524. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/constants.rs +0 -0
  525. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/committed_offsets.rs +0 -0
  526. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/mod.rs +0 -0
  527. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/produce_records.rs +0 -0
  528. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/main/start_redpanda.rs +0 -0
  529. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/mod.rs +0 -0
  530. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/redpanda/models.rs +0 -0
  531. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/constants.rs +0 -0
  532. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/main/create_bucket.rs +0 -0
  533. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/main/mod.rs +0 -0
  534. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/main/start_seaweedfs.rs +0 -0
  535. {sqlload_cli-0.3.0 → sqlload_cli-0.4.0}/crates/sqlload-testkit/src/seaweedfs/mod.rs +0 -0
  536. {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.3.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.3.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.3.0" # x-release-please-version
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"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlload-cli
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Classifier: Development Status :: 2 - Pre-Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: Apache Software License
@@ -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. Off by default: the bundled DuckDB takes many minutes to compile.
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.workspace = true
72
+ tokio = { workspace = true, features = ["io-util"] }
69
73
  tokio-postgres.workspace = true
70
- tokio-util.workspace = true
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
@@ -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
  }
@@ -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::Check => check(&config).await,
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,
@@ -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 connect to Kafka and Snowflake.
30
- Check,
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
+ }
@@ -1,4 +1,6 @@
1
+ pub mod delete_files;
1
2
  pub mod list_files;
2
3
  pub mod open_folder;
4
+ pub mod probe_folder;
3
5
  pub mod read_file;
4
6
  pub mod write_file;
@@ -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(&micros, 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
+ }