effect-qb 0.20.0 → 0.22.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 (58) hide show
  1. package/dist/index.js +663 -261
  2. package/dist/mysql.js +2840 -492
  3. package/dist/postgres/metadata.js +113 -14
  4. package/dist/postgres.js +2596 -285
  5. package/dist/sqlite.js +2783 -450
  6. package/dist/standard.js +663 -261
  7. package/package.json +2 -3
  8. package/src/internal/analytics.ts +264 -0
  9. package/src/internal/coercion/errors.d.ts +1 -1
  10. package/src/internal/coercion/errors.ts +1 -1
  11. package/src/internal/custom-sql-renderer.ts +20 -0
  12. package/src/internal/dialect-numeric.ts +332 -0
  13. package/src/internal/dialect-renderers/mysql.ts +68 -13
  14. package/src/internal/dialect-renderers/postgres.ts +83 -13
  15. package/src/internal/dialect-renderers/sqlite.ts +57 -13
  16. package/src/internal/dynamic.ts +131 -0
  17. package/src/internal/executor.ts +198 -7
  18. package/src/internal/expression-ast.ts +62 -1
  19. package/src/internal/fragment.ts +120 -0
  20. package/src/internal/function-constraints.ts +105 -0
  21. package/src/internal/grouping-key.ts +26 -0
  22. package/src/internal/numeric.ts +204 -0
  23. package/src/internal/query.ts +13 -1
  24. package/src/internal/runtime/normalize.ts +5 -2
  25. package/src/internal/runtime/schema.ts +2 -1
  26. package/src/internal/standard-dsl.ts +43 -20
  27. package/src/internal/window-frame.ts +30 -0
  28. package/src/internal/window-renderer.ts +25 -0
  29. package/src/mysql/executor.ts +126 -45
  30. package/src/mysql/function/aggregate.ts +87 -1
  31. package/src/mysql/function/index.ts +5 -2
  32. package/src/mysql/function/numeric.ts +185 -0
  33. package/src/mysql/function/temporal.ts +6 -6
  34. package/src/mysql/function/window.ts +12 -0
  35. package/src/mysql/internal/dsl.ts +38 -20
  36. package/src/mysql.ts +2 -0
  37. package/src/postgres/executor.ts +111 -45
  38. package/src/postgres/function/aggregate.ts +124 -1
  39. package/src/postgres/function/core.ts +2 -1
  40. package/src/postgres/function/index.ts +19 -1
  41. package/src/postgres/function/numeric.ts +246 -0
  42. package/src/postgres/function/window.ts +12 -0
  43. package/src/postgres/internal/dsl.ts +38 -20
  44. package/src/sqlite/executor.ts +96 -45
  45. package/src/sqlite/function/aggregate.ts +90 -1
  46. package/src/sqlite/function/index.ts +5 -2
  47. package/src/sqlite/function/numeric.ts +139 -0
  48. package/src/sqlite/function/window.ts +12 -0
  49. package/src/sqlite/internal/dsl.ts +38 -20
  50. package/src/sqlite.ts +2 -0
  51. package/src/standard/function/core.ts +8 -1
  52. package/src/standard/function/index.ts +18 -11
  53. package/src/standard/function/string.ts +1 -1
  54. package/src/standard/function/window.ts +10 -1
  55. package/src/standard/query.ts +19 -7
  56. package/src/standard/type.ts +16 -0
  57. package/src/standard.ts +4 -0
  58. package/src/standard/function/temporal.ts +0 -78
@@ -1,78 +0,0 @@
1
- import type * as Schema from "effect/Schema"
2
-
3
- import type * as Expression from "../../internal/scalar.js"
4
- import type * as ExpressionAst from "../../internal/expression-ast.js"
5
- import { makeExpression } from "../../internal/query.js"
6
- import {
7
- InstantStringSchema,
8
- LocalDateStringSchema,
9
- LocalDateTimeStringSchema,
10
- LocalTimeStringSchema,
11
- type InstantString,
12
- type LocalDateString,
13
- type LocalDateTimeString,
14
- type LocalTimeString
15
- } from "../../internal/runtime/value.js"
16
- import { standardDatatypes } from "../datatypes/index.js"
17
-
18
- type TemporalExpression<
19
- Runtime,
20
- Db extends Expression.DbType.Any,
21
- Name extends string
22
- > = Expression.Scalar<
23
- Runtime,
24
- Db,
25
- "never",
26
- "standard",
27
- "scalar",
28
- never
29
- > & {
30
- readonly [ExpressionAst.TypeId]: ExpressionAst.FunctionCallNode<Name, readonly []>
31
- }
32
-
33
- const makeTemporal = <
34
- Runtime,
35
- Db extends Expression.DbType.Any,
36
- Name extends string
37
- >(
38
- name: Name,
39
- dbType: Db,
40
- runtimeSchema: Schema.Schema<Runtime>
41
- ): TemporalExpression<Runtime, Db, Name> =>
42
- makeExpression({
43
- runtime: undefined as unknown as Runtime,
44
- dbType,
45
- runtimeSchema,
46
- nullability: "never",
47
- dialect: "standard",
48
- kind: "scalar",
49
- dependencies: {}
50
- }, {
51
- kind: "function",
52
- name,
53
- args: []
54
- }) as TemporalExpression<Runtime, Db, Name>
55
-
56
- /** Standard current instant. */
57
- export const now = (): TemporalExpression<InstantString, ReturnType<typeof standardDatatypes.timestamp>, "now"> =>
58
- makeTemporal("now", standardDatatypes.timestamp(), InstantStringSchema)
59
-
60
- /** Standard current date. */
61
- export const currentDate = (): TemporalExpression<LocalDateString, ReturnType<typeof standardDatatypes.date>, "current_date"> =>
62
- makeTemporal("current_date", standardDatatypes.date(), LocalDateStringSchema)
63
-
64
- /** Standard current time. */
65
- export const currentTime = (): TemporalExpression<LocalTimeString, ReturnType<typeof standardDatatypes.time>, "current_time"> =>
66
- makeTemporal("current_time", standardDatatypes.time(), LocalTimeStringSchema)
67
-
68
- /** Standard current timestamp. */
69
- export const currentTimestamp = (): TemporalExpression<LocalDateTimeString, ReturnType<typeof standardDatatypes.timestamp>, "current_timestamp"> =>
70
- makeTemporal("current_timestamp", standardDatatypes.timestamp(), LocalDateTimeStringSchema)
71
-
72
- /** Standard local time. */
73
- export const localTime = (): TemporalExpression<LocalTimeString, ReturnType<typeof standardDatatypes.time>, "localtime"> =>
74
- makeTemporal("localtime", standardDatatypes.time(), LocalTimeStringSchema)
75
-
76
- /** Standard local timestamp. */
77
- export const localTimestamp = (): TemporalExpression<LocalDateTimeString, ReturnType<typeof standardDatatypes.timestamp>, "localtimestamp"> =>
78
- makeTemporal("localtimestamp", standardDatatypes.timestamp(), LocalDateTimeStringSchema)