effect-qb 0.16.0 → 0.17.0

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 (75) hide show
  1. package/dist/mysql.js +1661 -591
  2. package/dist/postgres/metadata.js +1930 -135
  3. package/dist/postgres.js +7808 -6718
  4. package/dist/sqlite.js +8360 -0
  5. package/package.json +6 -1
  6. package/src/internal/derived-table.ts +29 -3
  7. package/src/internal/dialect.ts +2 -0
  8. package/src/internal/dsl-mutation-runtime.ts +173 -4
  9. package/src/internal/dsl-plan-runtime.ts +165 -20
  10. package/src/internal/dsl-query-runtime.ts +60 -6
  11. package/src/internal/dsl-transaction-ddl-runtime.ts +72 -2
  12. package/src/internal/executor.ts +47 -9
  13. package/src/internal/expression-ast.ts +3 -2
  14. package/src/internal/grouping-key.ts +141 -1
  15. package/src/internal/implication-runtime.ts +2 -1
  16. package/src/internal/json/types.ts +155 -40
  17. package/src/internal/predicate/context.ts +14 -1
  18. package/src/internal/predicate/key.ts +19 -2
  19. package/src/internal/predicate/runtime.ts +27 -3
  20. package/src/internal/query.ts +252 -30
  21. package/src/internal/renderer.ts +35 -2
  22. package/src/internal/runtime/driver-value-mapping.ts +58 -0
  23. package/src/internal/runtime/normalize.ts +62 -38
  24. package/src/internal/runtime/schema.ts +5 -3
  25. package/src/internal/runtime/value.ts +153 -30
  26. package/src/internal/table-options.ts +108 -1
  27. package/src/internal/table.ts +87 -29
  28. package/src/mysql/column.ts +18 -2
  29. package/src/mysql/datatypes/index.ts +21 -0
  30. package/src/mysql/errors/catalog.ts +5 -5
  31. package/src/mysql/errors/normalize.ts +2 -2
  32. package/src/mysql/internal/dsl.ts +736 -218
  33. package/src/mysql/internal/renderer.ts +2 -1
  34. package/src/mysql/internal/sql-expression-renderer.ts +486 -130
  35. package/src/mysql/query.ts +9 -2
  36. package/src/mysql/table.ts +38 -12
  37. package/src/postgres/column.ts +4 -2
  38. package/src/postgres/errors/normalize.ts +2 -2
  39. package/src/postgres/executor.ts +48 -5
  40. package/src/postgres/function/core.ts +19 -1
  41. package/src/postgres/internal/dsl.ts +683 -240
  42. package/src/postgres/internal/renderer.ts +2 -1
  43. package/src/postgres/internal/schema-ddl.ts +2 -1
  44. package/src/postgres/internal/schema-model.ts +6 -3
  45. package/src/postgres/internal/sql-expression-renderer.ts +420 -91
  46. package/src/postgres/json.ts +57 -17
  47. package/src/postgres/query.ts +9 -2
  48. package/src/postgres/schema-management.ts +91 -4
  49. package/src/postgres/schema.ts +1 -1
  50. package/src/postgres/table.ts +189 -53
  51. package/src/sqlite/column.ts +128 -0
  52. package/src/sqlite/datatypes/index.ts +79 -0
  53. package/src/sqlite/datatypes/spec.ts +98 -0
  54. package/src/sqlite/errors/catalog.ts +103 -0
  55. package/src/sqlite/errors/fields.ts +19 -0
  56. package/src/sqlite/errors/index.ts +19 -0
  57. package/src/sqlite/errors/normalize.ts +229 -0
  58. package/src/sqlite/errors/requirements.ts +71 -0
  59. package/src/sqlite/errors/types.ts +29 -0
  60. package/src/sqlite/executor.ts +227 -0
  61. package/src/sqlite/function/aggregate.ts +2 -0
  62. package/src/sqlite/function/core.ts +2 -0
  63. package/src/sqlite/function/index.ts +19 -0
  64. package/src/sqlite/function/string.ts +2 -0
  65. package/src/sqlite/function/temporal.ts +100 -0
  66. package/src/sqlite/function/window.ts +2 -0
  67. package/src/sqlite/internal/dialect.ts +37 -0
  68. package/src/sqlite/internal/dsl.ts +6926 -0
  69. package/src/sqlite/internal/renderer.ts +47 -0
  70. package/src/sqlite/internal/sql-expression-renderer.ts +1821 -0
  71. package/src/sqlite/json.ts +2 -0
  72. package/src/sqlite/query.ts +196 -0
  73. package/src/sqlite/renderer.ts +24 -0
  74. package/src/sqlite/table.ts +183 -0
  75. package/src/sqlite.ts +22 -0
@@ -33,7 +33,8 @@ export const renderPostgresPlan = <PlanValue extends Query.Plan.Any>(
33
33
  params: [],
34
34
  valueMappings: options.valueMappings,
35
35
  ctes: [],
36
- cteNames: new Set<string>()
36
+ cteNames: new Set<string>(),
37
+ cteSources: new Map<string, unknown>()
37
38
  }
38
39
  const rendered = renderQueryAst(
39
40
  Query.getAst(plan as Query.Plan.Any) as any,
@@ -42,7 +42,8 @@ export const renderDdlExpressionSql = (expression: DdlExpressionLike): string =>
42
42
  : renderExpression(expression as Expression.Any, {
43
43
  params: [],
44
44
  ctes: [],
45
- cteNames: new Set()
45
+ cteNames: new Set(),
46
+ cteSources: new Map()
46
47
  }, inlineLiteralDialect)
47
48
 
48
49
  const stripRedundantOuterParens = (value: string): string => {
@@ -121,17 +121,17 @@ export const fromDiscoveredValues = (values: ReadonlyArray<unknown>): SchemaMode
121
121
  const enums = new Map<string, EnumModel>()
122
122
  for (const value of values) {
123
123
  if (isEnumDefinition(value)) {
124
- enums.set(enumKey(value.schemaName, value.name), toEnumModel(value))
124
+ enums.set(modelIdentityKey(value.schemaName, value.name), toEnumModel(value))
125
125
  } else if (isTableDefinition(value)) {
126
126
  for (const enumModel of enumModelsOfTable(value)) {
127
- const key = enumKey(enumModel.schemaName, enumModel.name)
127
+ const key = modelIdentityKey(enumModel.schemaName, enumModel.name)
128
128
  const existing = enums.get(key)
129
129
  if (existing === undefined) {
130
130
  enums.set(key, enumModel)
131
131
  continue
132
132
  }
133
133
  if (JSON.stringify(existing.values) !== JSON.stringify(enumModel.values)) {
134
- throw new Error(`Conflicting enum definitions discovered for '${key}'`)
134
+ throw new Error(`Conflicting enum definitions discovered for '${enumKey(enumModel.schemaName, enumModel.name)}'`)
135
135
  }
136
136
  }
137
137
  }
@@ -148,3 +148,6 @@ export const tableKey = (schemaName: string | undefined, name: string): string =
148
148
 
149
149
  export const enumKey = (schemaName: string | undefined, name: string): string =>
150
150
  `${schemaName ?? "public"}.${name}`
151
+
152
+ const modelIdentityKey = (schemaName: string | undefined, name: string): string =>
153
+ JSON.stringify([schemaName ?? "public", name])