qubu 0.3.4 → 0.4.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 (56) hide show
  1. package/dist/codegen.d.mts +1 -1
  2. package/dist/codegen.mjs +1 -1
  3. package/dist/column-D-8OqGuV.mjs +328 -0
  4. package/dist/{table-llv9tsZ8.mjs → column-LV7oGQde.mjs} +9 -97
  5. package/dist/{complete-types-BdFqUfbb.d.mts → complete-types-BavBtv8J.d.mts} +1 -1
  6. package/dist/core.d.mts +1 -1
  7. package/dist/core.mjs +3 -3
  8. package/dist/ddl.d.mts +1 -1
  9. package/dist/ddl.mjs +3 -3
  10. package/dist/diff.d.mts +1 -1
  11. package/dist/drizzle-mysql.d.mts +2 -2
  12. package/dist/drizzle-mysql.mjs +2 -2
  13. package/dist/drizzle-postgres.d.mts +2 -2
  14. package/dist/drizzle-postgres.mjs +2 -2
  15. package/dist/drizzle-sqlite.d.mts +36 -3
  16. package/dist/drizzle-sqlite.mjs +30 -4
  17. package/dist/drizzle.d.mts +1 -1
  18. package/dist/{index-Dug5HnLB.d.mts → index-D3ZOwPT-.d.mts} +2 -2
  19. package/dist/{index-Ds7-mhJi.d.mts → index-DH0qV6aS.d.mts} +2 -2
  20. package/dist/index.d.mts +2 -2
  21. package/dist/index.mjs +64 -34
  22. package/dist/introspection.d.mts +2 -2
  23. package/dist/introspection.mjs +1 -1
  24. package/dist/migration.d.mts +2 -2
  25. package/dist/{mysql-DqkqXB6A.mjs → mysql-CKEKGnj4.mjs} +3 -3
  26. package/dist/mysql.d.mts +1 -1
  27. package/dist/{on-conflict-BxnxubMb.mjs → on-conflict-4MOBl51J.mjs} +4 -3
  28. package/dist/{postgres-DEBBeh52.mjs → postgres-BK2APkKP.mjs} +3 -2
  29. package/dist/postgres.d.mts +1 -1
  30. package/dist/postgres.mjs +3 -3
  31. package/dist/{registry-BufIskVN.mjs → registry-CXV8u7Pt.mjs} +3 -108
  32. package/dist/{relational-DCZrrNia.mjs → relational-DuQ9IHSb.mjs} +4 -4
  33. package/dist/{runtime-BTr-MTlo.mjs → runtime-Cn_Xgzta.mjs} +1 -1
  34. package/dist/schema.d.mts +2 -2
  35. package/dist/schema.mjs +6 -4
  36. package/dist/{serialize-PF1cfH2P.mjs → serialize-CFtYYAdk.mjs} +2 -2
  37. package/dist/{snapshot-CWPgzxNx.mjs → snapshot-DJpfmxhQ.mjs} +1 -1
  38. package/dist/snapshot.d.mts +3 -3
  39. package/dist/snapshot.mjs +4 -4
  40. package/dist/{source-DUoJVXmL.mjs → source-DGO3DRgg.mjs} +3 -3
  41. package/dist/{sqlite-BU6DBxef.mjs → sqlite-CrsK0Fza.mjs} +3 -3
  42. package/dist/sqlite.d.mts +1 -1
  43. package/dist/sqlite.mjs +1 -1
  44. package/dist/table-D6rcs8SB.mjs +96 -0
  45. package/dist/{types-BX0mckiU.d.mts → types-CSNJTYaM.d.mts} +1 -1
  46. package/dist/{types-H4vyCw8_.d.mts → types-DZsueVoI.d.mts} +1 -1
  47. package/dist/{types-4Q076HKo.d.mts → types-Deo_q43Y.d.mts} +1442 -916
  48. package/dist/{types-Cec0xzo4.mjs → types-g-vVvj1B.mjs} +4 -3
  49. package/dist/{value-BvilP0oz.mjs → value-b6OFZXVS.mjs} +1 -1
  50. package/dist/vite/ambient.d.ts +13 -61
  51. package/docs/dialects-and-execution.md +84 -34
  52. package/docs/guides/drizzle.md +27 -0
  53. package/docs/reference/supported-surface.md +7 -7
  54. package/package.json +1 -1
  55. package/dist/column-CXMxx8Hq.mjs +0 -118
  56. package/dist/naming-QVCOnSj2.mjs +0 -20
@@ -246,6 +246,54 @@ declare function sequence<const TParts extends readonly AnyFragment[]>(parts: TP
246
246
  declare function parenthesize<TPart extends AnyFragment>(part: TPart): Fragment<InheritedMetadata<TPart>>;
247
247
  declare function isFragment(value: unknown): value is AnyFragment;
248
248
  //#endregion
249
+ //#region src/result.d.ts
250
+ /** Portable result domains that can require driver-specific normalization. */
251
+ type DecodableResultType = 'boolean' | 'date' | 'timestamp' | 'json';
252
+ /** Context supplied while decoding one projected field. */
253
+ interface ResultDecodeContext {
254
+ readonly dialect: Dialect;
255
+ readonly field: string;
256
+ readonly rowIndex: number;
257
+ }
258
+ /** Convert one normalized driver value into its application representation. */
259
+ type ResultDecoder<T = unknown> = (value: unknown, context: ResultDecodeContext) => T;
260
+ /** Driver-specific decoders selected by a field's portable result domain. */
261
+ type ResultDecoders = Readonly<Partial<Record<DecodableResultType, ResultDecoder>>>;
262
+ /** Runtime description of one named result field. */
263
+ interface ResultField {
264
+ readonly name: string;
265
+ readonly type?: DecodableResultType;
266
+ readonly decoder?: ResultDecoder;
267
+ }
268
+ /** Runtime description of a query's named result row. */
269
+ interface ResultShape {
270
+ readonly fields: readonly ResultField[];
271
+ }
272
+ interface ResultValueMetadata {
273
+ readonly type?: DecodableResultType;
274
+ readonly decoder?: ResultDecoder;
275
+ }
276
+ declare const resultValueMetadata: unique symbol;
277
+ type ResultValueCarrier = {
278
+ readonly [resultValueMetadata]?: ResultValueMetadata;
279
+ };
280
+ /** Decode SQLite/MySQL-style boolean values while accepting native booleans. */
281
+ declare const booleanResultDecoder: ResultDecoder<boolean>;
282
+ /** Decode a SQL DATE string as a JavaScript Date at UTC midnight. */
283
+ declare const dateResultDecoder: ResultDecoder<Date>;
284
+ /** Decode a SQL/ISO timestamp string while accepting driver-created Dates. */
285
+ declare const timestampResultDecoder: ResultDecoder<Date>;
286
+ /** Decode a serialized JSON result. Use only when the adapter returns JSON text. */
287
+ declare const jsonTextResultDecoder: ResultDecoder;
288
+ /** Error raised when a projected driver value cannot be decoded. */
289
+ declare class ResultDecodingError extends TypeError {
290
+ readonly name = "ResultDecodingError";
291
+ readonly field: string;
292
+ readonly rowIndex: number;
293
+ readonly resultType?: DecodableResultType;
294
+ constructor(field: string, rowIndex: number, resultType: DecodableResultType | undefined);
295
+ }
296
+ //#endregion
249
297
  //#region src/expressions/types.d.ts
250
298
  type ExpressionKind = 'value' | 'column' | 'function' | 'operator' | 'sql' | 'subquery' | 'unsafe';
251
299
  /** Runtime/type-level proof that an expression is safe to use in schema SQL. */
@@ -253,7 +301,7 @@ declare const schemaExpressionBrand: unique symbol;
253
301
  interface SchemaExpressionBrand {
254
302
  readonly [schemaExpressionBrand]: true;
255
303
  }
256
- interface Expression<TMetadata = any, TKind extends ExpressionKind = ExpressionKind> extends Fragment<TMetadata> {
304
+ interface Expression<TMetadata = any, TKind extends ExpressionKind = ExpressionKind> extends Fragment<TMetadata>, ResultValueCarrier {
257
305
  readonly expressionKind: TKind;
258
306
  /** Internal runtime marker for query constructs rejected by schema SQL. */
259
307
  readonly expressionCategory?: 'aggregate' | 'window' | 'subquery';
@@ -275,13 +323,27 @@ type ExpressionSqlType<T> = SqlTypeOf<T>;
275
323
  declare function withDialectCapability<const TCapability extends DialectCapability, TExpression extends AnyExpression>(expression: TExpression, capability: TCapability): TExpression extends SchemaExpression<any, any> ? SchemaExpression<MetadataOf<TExpression> | RequiresCapabilityMeta<TCapability>, TExpression['expressionKind']> : Expression<MetadataOf<TExpression> | RequiresCapabilityMeta<TCapability>, TExpression['expressionKind']>;
276
324
  /** An expression whose result is known to be assignable to `TOutput`. */
277
325
  type ExpressionWithOutput<TOutput, TKind extends ExpressionKind = ExpressionKind> = Expression<ResultMeta<TOutput, unknown, AnySqlType> | RequiresSourceMeta<unknown> | NullableSourceMeta<unknown> | ExpressionMeta<unknown> | AggregateMeta<unknown> | RequiresCapabilityMeta | WindowMeta | SubqueryMeta, TKind>;
326
+ /** Sparse type-level configuration for a result-producing expression. */
327
+ interface ResultExpressionConfig {
328
+ readonly output?: unknown;
329
+ readonly children?: unknown;
330
+ readonly kind?: ExpressionKind;
331
+ readonly nullableFrom?: unknown;
332
+ readonly sqlType?: AnySqlType;
333
+ }
334
+ type ResultConfigValue<TConfig, TKey extends PropertyKey, TFallback> = TKey extends keyof TConfig ? TConfig[TKey] : TFallback;
335
+ type ResultConfigOutput<TConfig> = ResultConfigValue<TConfig, 'output', unknown>;
336
+ type ResultConfigChildren<TConfig> = ResultConfigValue<TConfig, 'children', never>;
337
+ type ResultConfigKind<TConfig> = Extract<ResultConfigValue<TConfig, 'kind', ExpressionKind>, ExpressionKind>;
338
+ type ResultConfigNullableFrom<TConfig> = ResultConfigValue<TConfig, 'nullableFrom', NullabilityOf<ResultConfigChildren<TConfig>>>;
339
+ type ResultConfigSqlType<TConfig> = Extract<ResultConfigValue<TConfig, 'sqlType', SqlUnknown>, AnySqlType>;
278
340
  /** Build an expression result while inheriting non-result metadata from children. */
279
- type ResultExpression<TOutput, TChildren = never, TKind extends ExpressionKind = ExpressionKind, TNullableFrom = NullabilityOf<TChildren>, TSqlType extends AnySqlType = SqlUnknown> = SchemaExpression<ResultMeta<TOutput, TNullableFrom, TSqlType> | ExpressionMeta<DependenciesOf<TChildren>> | InheritedMetadata<TChildren>, TKind>;
341
+ type ResultExpression<TConfig extends ResultExpressionConfig = {}> = SchemaExpression<ResultMeta<ResultConfigOutput<TConfig>, ResultConfigNullableFrom<TConfig>, ResultConfigSqlType<TConfig>> | ExpressionMeta<DependenciesOf<ResultConfigChildren<TConfig>>> | InheritedMetadata<ResultConfigChildren<TConfig>>, ResultConfigKind<TConfig>>;
280
342
  /** Build an aggregate result while recording which dependencies it consumes. */
281
- type AggregateResultExpression<TOutput, TChildren = never, TKind extends ExpressionKind = ExpressionKind, TNullableFrom = NullabilityOf<TChildren>, TSqlType extends AnySqlType = SqlUnknown> = Expression<ResultMeta<TOutput, TNullableFrom, TSqlType> | ExpressionMeta<DependenciesOf<TChildren>> | AggregateMeta<DependenciesOf<TChildren>> | InheritedMetadata<TChildren>, TKind>;
343
+ type AggregateResultExpression<TConfig extends ResultExpressionConfig = {}> = Expression<ResultMeta<ResultConfigOutput<TConfig>, ResultConfigNullableFrom<TConfig>, ResultConfigSqlType<TConfig>> | ExpressionMeta<DependenciesOf<ResultConfigChildren<TConfig>>> | AggregateMeta<DependenciesOf<ResultConfigChildren<TConfig>>> | InheritedMetadata<ResultConfigChildren<TConfig>>, ResultConfigKind<TConfig>>;
282
344
  /** A result expression that contains a query boundary. */
283
- type SubqueryResultExpression<TOutput, TChildren = never, TNullableFrom = NullabilityOf<TChildren>, TSqlType extends AnySqlType = SqlUnknown> = Expression<ResultMeta<TOutput, TNullableFrom, TSqlType> | ExpressionMeta<DependenciesOf<TChildren>> | InheritedMetadata<TChildren> | SubqueryMeta, 'subquery'>;
284
- declare function makeExpression<TMetadata = never, TKind extends ExpressionKind = ExpressionKind>(expressionKind: TKind, render: (context: RenderContext) => void, expressionCategory?: 'aggregate' | 'window' | 'subquery'): Expression<TMetadata, TKind>;
345
+ type SubqueryResultExpression<TConfig extends Omit<ResultExpressionConfig, 'kind'> = {}> = Expression<ResultMeta<ResultConfigOutput<TConfig>, ResultConfigNullableFrom<TConfig>, ResultConfigSqlType<TConfig>> | ExpressionMeta<DependenciesOf<ResultConfigChildren<TConfig>>> | InheritedMetadata<ResultConfigChildren<TConfig>> | SubqueryMeta, 'subquery'>;
346
+ declare function makeExpression<TMetadata = never, TKind extends ExpressionKind = ExpressionKind>(expressionKind: TKind, render: (context: RenderContext) => void, expressionCategory?: 'aggregate' | 'window' | 'subquery', result?: ResultValueMetadata): Expression<TMetadata, TKind>;
285
347
  /** Mark a query-only expression category without changing its SQL renderer. */
286
348
  declare function markExpressionCategory<TMetadata, TKind extends ExpressionKind>(expression: Expression<TMetadata, TKind>, category: 'aggregate' | 'window' | 'subquery'): Expression<TMetadata, TKind>;
287
349
  declare function isExpression(value: unknown): value is AnyExpression;
@@ -570,6 +632,8 @@ interface ColumnOptions {
570
632
  readonly sqlName?: string;
571
633
  /** Physical storage metadata for a custom column definition. */
572
634
  readonly storage?: ColumnStorage;
635
+ /** Override adapter decoding for values selected from this column. */
636
+ readonly decode?: ResultDecoder;
573
637
  /**
574
638
  * Raw SQL target that makes a custom definition reusable with cast().
575
639
  * The value is emitted verbatim and must come from trusted source code.
@@ -580,27 +644,77 @@ type BuiltInColumnOptions = Omit<ColumnOptions, 'castType' | 'storage'> & {
580
644
  readonly castType?: never;
581
645
  readonly storage?: never;
582
646
  };
583
- interface ColumnDefinition<TOutput = unknown, TNullable extends boolean = false, TInsert = TOutput, TUpdate = TInsert, THasDefault extends boolean = false, TGenerated extends boolean = false, TSqlType extends AnySqlType = SqlUnknown, TStorage extends ColumnStorage | undefined = undefined, TDefault extends ColumnDefault | undefined = ColumnDefault | undefined, TGeneratedColumn extends GeneratedColumnDescriptor | undefined = GeneratedColumnDescriptor | undefined, TIdentity extends IdentityDescriptor | undefined = IdentityDescriptor | undefined, TOnUpdate extends AnySchemaExpression | undefined = AnySchemaExpression | undefined> {
647
+ /** Sparse type-level configuration carried by a column definition. */
648
+ interface ColumnDefinitionConfig {
649
+ /** Application value selected from the column. Defaults to `unknown`. */
650
+ readonly output?: unknown;
651
+ /** Whether SQL `NULL` is permitted. Defaults to `false`. */
652
+ readonly nullable?: boolean;
653
+ /** Accepted insert value. Defaults to `output`. */
654
+ readonly insert?: unknown;
655
+ /** Accepted update value. Defaults to `insert`. */
656
+ readonly update?: unknown;
657
+ /** Whether an insert may omit the column. Defaults to `false`. */
658
+ readonly hasDefault?: boolean;
659
+ /** Whether the database generates the column. Defaults to `false`. */
660
+ readonly generated?: boolean;
661
+ /** SQL semantic domain. Defaults to {@link SqlUnknown}. */
662
+ readonly sqlType?: AnySqlType;
663
+ /** Physical storage metadata. Defaults to `undefined`. */
664
+ readonly storage?: ColumnStorage;
665
+ /** Complete default metadata. Defaults to `undefined`. */
666
+ readonly default?: ColumnDefault;
667
+ /** Complete generated-column metadata. Defaults to `undefined`. */
668
+ readonly generatedColumn?: GeneratedColumnDescriptor;
669
+ /** Identity metadata. Defaults to `undefined`. */
670
+ readonly identity?: IdentityDescriptor;
671
+ /** Deterministic `ON UPDATE` expression. Defaults to `undefined`. */
672
+ readonly onUpdate?: AnySchemaExpression;
673
+ }
674
+ type ConfigValue<TConfig, TKey extends PropertyKey, TFallback> = TKey extends keyof TConfig ? TConfig[TKey] : TFallback;
675
+ type ColumnConfigOutput<TConfig> = ConfigValue<TConfig, 'output', unknown>;
676
+ type ConfigBoolean<TConfig, TKey extends PropertyKey> = Extract<ConfigValue<TConfig, TKey, false>, boolean> extends (infer TValue) ? [TValue] extends [never] ? false : TValue : false;
677
+ type ColumnConfigNullable<TConfig> = ConfigBoolean<TConfig, 'nullable'>;
678
+ type ColumnConfigInsert<TConfig> = ConfigValue<TConfig, 'insert', ColumnConfigOutput<TConfig>>;
679
+ type ColumnConfigUpdate<TConfig> = ConfigValue<TConfig, 'update', ColumnConfigInsert<TConfig>>;
680
+ type ColumnConfigHasDefault<TConfig> = ConfigBoolean<TConfig, 'hasDefault'>;
681
+ type ColumnConfigGenerated<TConfig> = ConfigBoolean<TConfig, 'generated'>;
682
+ type ColumnConfigSqlType<TConfig> = Extract<ConfigValue<TConfig, 'sqlType', SqlUnknown>, AnySqlType> extends (infer TValue) ? [TValue] extends [never] ? SqlUnknown : TValue : SqlUnknown;
683
+ type ColumnConfigStorage<TConfig> = ConfigValue<TConfig, 'storage', undefined>;
684
+ type ColumnConfigDefault<TConfig> = ConfigValue<TConfig, 'default', undefined>;
685
+ type ColumnConfigGeneratedColumn<TConfig> = ConfigValue<TConfig, 'generatedColumn', undefined>;
686
+ type ColumnConfigIdentity<TConfig> = ConfigValue<TConfig, 'identity', undefined>;
687
+ type ColumnConfigOnUpdate<TConfig> = ConfigValue<TConfig, 'onUpdate', undefined>;
688
+ type SetColumnOutput<TConfig, TOutput> = Omit<TConfig, 'output' | 'insert' | 'update'> & {
689
+ readonly output: TOutput;
690
+ readonly insert: SameType<ColumnConfigInsert<TConfig>, ColumnConfigOutput<TConfig>> extends true ? TOutput : ColumnConfigInsert<TConfig>;
691
+ readonly update: SameType<ColumnConfigUpdate<TConfig>, ColumnConfigOutput<TConfig>> extends true ? TOutput : ColumnConfigUpdate<TConfig>;
692
+ };
693
+ interface ColumnDefinition<TConfig extends ColumnDefinitionConfig = {}> {
694
+ /** @internal Type-level configuration retained for inference. */
695
+ readonly __config?: TConfig;
584
696
  readonly definitionKind: 'column';
585
- readonly nullable: TNullable;
586
- readonly hasDefault: THasDefault;
587
- readonly generated: TGenerated;
697
+ readonly nullable: ColumnConfigNullable<TConfig>;
698
+ readonly hasDefault: ColumnConfigHasDefault<TConfig>;
699
+ readonly generated: ColumnConfigGenerated<TConfig>;
588
700
  /** Complete database default metadata, when known. */
589
- readonly default?: TDefault;
701
+ readonly default?: ColumnConfigDefault<TConfig>;
590
702
  /** Complete generated-column metadata, when known. */
591
- readonly generatedColumn?: TGeneratedColumn;
703
+ readonly generatedColumn?: ColumnConfigGeneratedColumn<TConfig>;
592
704
  /** Identity behavior is modeled separately from generated expressions. */
593
- readonly identity?: TIdentity;
705
+ readonly identity?: ColumnConfigIdentity<TConfig>;
594
706
  /** MySQL's optional parameter-free `ON UPDATE` expression. */
595
- readonly onUpdate?: TOnUpdate;
707
+ readonly onUpdate?: ColumnConfigOnUpdate<TConfig>;
596
708
  readonly sqlName?: string;
597
709
  /** Physical storage metadata, separate from the application and SQL types. */
598
- readonly storage?: TStorage;
710
+ readonly storage?: ColumnConfigStorage<TConfig>;
711
+ /** Runtime decoder used when this definition is projected. */
712
+ readonly resultDecoder?: ResultDecoder;
599
713
  /** Runtime CAST target when this definition can describe a cast result. */
600
714
  readonly castTarget?: CastTarget;
601
- readonly __output?: TOutput;
602
- readonly __insert?: TInsert;
603
- readonly __update?: TUpdate;
715
+ readonly __output?: ColumnConfigOutput<TConfig>;
716
+ readonly __insert?: ColumnConfigInsert<TConfig>;
717
+ readonly __update?: ColumnConfigUpdate<TConfig>;
604
718
  /**
605
719
  * Narrow the column's application type without changing its runtime
606
720
  * definition.
@@ -608,12 +722,12 @@ interface ColumnDefinition<TOutput = unknown, TNullable extends boolean = false,
608
722
  * @remarks Distinct insert or update types are preserved. This method does
609
723
  * not validate values or add a database constraint.
610
724
  */
611
- readonly $type: <const TType extends TOutput>() => ColumnDefinition<TType, TNullable, SameType<TInsert, TOutput> extends true ? TType : TInsert, SameType<TUpdate, TOutput> extends true ? TType : TUpdate, THasDefault, TGenerated, TSqlType, TStorage, TDefault, TGeneratedColumn, TIdentity, TOnUpdate> & (this extends {
725
+ readonly $type: <const TType extends ColumnConfigOutput<TConfig>>() => ColumnDefinition<SetColumnOutput<TConfig, TType>> & (this extends {
612
726
  readonly castTarget: infer TCastTarget extends CastTarget;
613
727
  } ? {
614
728
  readonly castTarget: TCastTarget;
615
729
  } : unknown);
616
- readonly __sqlType?: TSqlType;
730
+ readonly __sqlType?: ColumnConfigSqlType<TConfig>;
617
731
  }
618
732
  type Flag<T extends boolean | undefined> = T extends true ? true : false;
619
733
  type HasExplicitOption<TOptions, TKey extends PropertyKey> = TKey extends keyof TOptions ? {} extends Pick<TOptions, TKey> ? false : true : false;
@@ -637,48 +751,88 @@ type ColumnOnUpdateOption<TOptions extends ColumnOptions> = TOptions extends {
637
751
  } ? TOnUpdate : undefined;
638
752
  type IsAny$1<T> = 0 extends 1 & T ? true : false;
639
753
  type SameType<TLeft, TRight> = IsAny$1<TLeft> extends true ? IsAny$1<TRight> : IsAny$1<TRight> extends true ? false : [TLeft] extends [TRight] ? [TRight] extends [TLeft] ? true : false : false;
640
- type ColumnFromOptions<TOutput, TInsert, TUpdate, TOptions extends ColumnOptions, TSqlType extends AnySqlType = SqlUnknown> = ColumnDefinition<TOutput, Flag<TOptions['nullable']>, TInsert, TUpdate, ColumnHasDefaultOption<TOptions>, ColumnIsGeneratedOption<TOptions>, TSqlType, TOptions extends {
641
- readonly storage: infer TStorage;
642
- } ? TStorage extends ColumnStorage ? TStorage : undefined : undefined, ColumnDefaultOption<TOptions>, ColumnGeneratedOption<TOptions>, ColumnIdentityOption<TOptions>, ColumnOnUpdateOption<TOptions>> & (TOptions extends {
754
+ type Simplify$1<T> = { readonly [TKey in keyof T]: T[TKey]; };
755
+ type ColumnValueConfig<TOutput, TInsert, TUpdate> = {
756
+ readonly output: TOutput;
757
+ } & (SameType<TInsert, TOutput> extends true ? {} : {
758
+ readonly insert: TInsert;
759
+ }) & (SameType<TUpdate, TInsert> extends true ? {} : {
760
+ readonly update: TUpdate;
761
+ });
762
+ type TrueConfig<TKey extends PropertyKey, TValue> = TValue extends true ? { readonly [TField in TKey]: true; } : {};
763
+ type DefinedConfig<TKey extends PropertyKey, TValue> = [TValue] extends [undefined] ? {} : { readonly [TField in TKey]: TValue; };
764
+ type ColumnOptionConfig<TOptions extends ColumnOptions> = Simplify$1<TrueConfig<'nullable', Flag<TOptions['nullable']>> & TrueConfig<'hasDefault', ColumnHasDefaultOption<TOptions>> & TrueConfig<'generated', ColumnIsGeneratedOption<TOptions>> & DefinedConfig<'default', ColumnDefaultOption<TOptions>> & DefinedConfig<'generatedColumn', ColumnGeneratedOption<TOptions>> & DefinedConfig<'identity', ColumnIdentityOption<TOptions>> & DefinedConfig<'onUpdate', ColumnOnUpdateOption<TOptions>> & (TOptions extends {
765
+ readonly storage: infer TStorage extends ColumnStorage;
766
+ } ? {
767
+ readonly storage: TStorage;
768
+ } : {})>;
769
+ type BuiltInColumnDefinition<TOutput, TSqlType extends AnySqlType, TStorageType extends PortableStorageType, TCastType extends PortableCastType, TOptions extends BuiltInColumnOptions> = ColumnDefinition<Simplify$1<{
770
+ readonly output: TOutput;
771
+ readonly sqlType: TSqlType;
772
+ readonly storage: PortableColumnStorage<TStorageType>;
773
+ } & ColumnOptionConfig<TOptions>>> & {
774
+ readonly castTarget: PortableCastTarget<TCastType>;
775
+ };
776
+ type ColumnFromOptions<TOutput, TInsert, TUpdate, TOptions extends ColumnOptions, TSqlType extends AnySqlType = SqlUnknown> = ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
777
+ readonly sqlType: TSqlType;
778
+ } & ColumnOptionConfig<TOptions>>> & (TOptions extends {
643
779
  readonly castType: string;
644
780
  } ? {
645
781
  readonly castTarget: NamedCastTarget;
646
782
  } : unknown);
647
- type ColumnOutput<T> = T extends ColumnDefinition<infer TOutput, infer TNullable, any, any, any, any, any, any, any, any> ? TNullable extends true ? TOutput | null : TOutput : never;
648
- type ColumnInsertInput<T> = T extends ColumnDefinition<any, infer TNullable, infer TInsert, any, any, any, any, any, any, any, any> ? TNullable extends true ? TInsert | null : TInsert : never;
649
- type ColumnUpdateInput<T> = T extends ColumnDefinition<any, infer TNullable, any, infer TUpdate, any, any, any, any, any, any, any> ? TNullable extends true ? TUpdate | null : TUpdate : never;
650
- type ColumnHasDefault<T> = T extends ColumnDefinition<any, any, any, any, infer THasDefault, any, any, any, any, any, any> ? THasDefault : false;
651
- type ColumnIsGenerated<T> = T extends ColumnDefinition<any, any, any, any, any, infer TGenerated, any, any, any, any, any> ? TGenerated : false;
783
+ type ColumnOutput<T> = T extends {
784
+ readonly __output?: infer TOutput;
785
+ readonly nullable: infer TNullable;
786
+ } ? TNullable extends true ? TOutput | null : TOutput : never;
787
+ type ColumnInsertInput<T> = T extends {
788
+ readonly __insert?: infer TInsert;
789
+ readonly nullable: infer TNullable;
790
+ } ? TNullable extends true ? TInsert | null : TInsert : never;
791
+ type ColumnUpdateInput<T> = T extends {
792
+ readonly __update?: infer TUpdate;
793
+ readonly nullable: infer TNullable;
794
+ } ? TNullable extends true ? TUpdate | null : TUpdate : never;
795
+ type ColumnHasDefault<T> = T extends {
796
+ readonly hasDefault: infer THasDefault extends boolean;
797
+ } ? THasDefault : false;
798
+ type ColumnIsGenerated<T> = T extends {
799
+ readonly generated: infer TGenerated extends boolean;
800
+ } ? TGenerated : false;
652
801
  /** Extract complete default metadata from a column definition. */
653
- type ColumnDefaultOf<T> = T extends ColumnDefinition<any, any, any, any, any, any, any, any, infer TDefault, any, any> ? TDefault : undefined;
802
+ type ColumnDefaultOf<T> = T extends {
803
+ readonly default?: infer TDefault;
804
+ } ? TDefault : undefined;
654
805
  /** Extract complete generated-column metadata from a column definition. */
655
- type ColumnGeneratedOf<T> = T extends ColumnDefinition<any, any, any, any, any, any, any, any, any, infer TGenerated, any> ? TGenerated : undefined;
806
+ type ColumnGeneratedOf<T> = T extends {
807
+ readonly generatedColumn?: infer TGenerated;
808
+ } ? TGenerated : undefined;
656
809
  /** Extract identity metadata from a column definition. */
657
- type ColumnIdentityOf<T> = T extends ColumnDefinition<any, any, any, any, any, any, any, any, any, any, infer TIdentity> ? TIdentity : undefined;
810
+ type ColumnIdentityOf<T> = T extends {
811
+ readonly identity?: infer TIdentity;
812
+ } ? TIdentity : undefined;
658
813
  /** Extract a column's optional deterministic `ON UPDATE` expression. */
659
- type ColumnOnUpdateOf<T> = T extends ColumnDefinition<any, any, any, any, any, any, any, any, any, any, any, infer TOnUpdate> ? TOnUpdate : undefined;
814
+ type ColumnOnUpdateOf<T> = T extends {
815
+ readonly onUpdate?: infer TOnUpdate;
816
+ } ? TOnUpdate : undefined;
660
817
  /** Extract the SQL semantic domain declared by a column definition. */
661
- type ColumnSqlType<T> = T extends ColumnDefinition<any, any, any, any, any, any, infer TSqlType, any, any, any, any> ? TSqlType : SqlUnknown;
818
+ type ColumnSqlType<T> = T extends {
819
+ readonly __sqlType?: infer TSqlType extends AnySqlType;
820
+ } ? TSqlType : SqlUnknown;
662
821
  /** Whether a column definition explicitly permits SQL NULL values. */
663
- type ColumnIsNullable<T> = T extends ColumnDefinition<any, infer TNullable, any, any, any, any, any, any, any, any, any> ? TNullable : false;
822
+ type ColumnIsNullable<T> = T extends {
823
+ readonly nullable: infer TNullable extends boolean;
824
+ } ? TNullable : false;
664
825
  type FalseColumnOptions = {
665
826
  readonly nullable?: false;
666
827
  readonly hasDefault?: false;
667
828
  readonly generated?: false;
668
829
  readonly sqlName?: string;
830
+ readonly decode?: ResultDecoder;
669
831
  };
670
- type AnyColumnDefinition = ColumnDefinition<any, any, any, any, any, any, AnySqlType, any, any, any, any>;
832
+ type AnyColumnDefinition = ColumnDefinition<any>;
671
833
  type NamedCastColumn<TDefinition extends AnyColumnDefinition> = TDefinition & {
672
834
  readonly castTarget: NamedCastTarget;
673
835
  };
674
- type PortableCastColumn<TDefinition extends AnyColumnDefinition, TType extends PortableCastType> = TDefinition & {
675
- readonly castTarget: PortableCastTarget<TType>;
676
- };
677
- type StoredColumnDefinition<TDefinition extends AnyColumnDefinition, TStorage extends ColumnStorage> = TDefinition extends ColumnDefinition<infer TOutput, infer TNullable, infer TInsert, infer TUpdate, infer THasDefault, infer TGenerated, infer TSqlType, any, infer TDefault, infer TGeneratedColumn, infer TIdentity, infer TOnUpdate> ? ColumnDefinition<TOutput, TNullable, TInsert, TUpdate, THasDefault, TGenerated, TSqlType, TStorage, TDefault, TGeneratedColumn, TIdentity, Extract<TOnUpdate, AnySchemaExpression> | undefined> & (TDefinition extends {
678
- readonly castTarget: infer TCastTarget extends CastTarget;
679
- } ? {
680
- readonly castTarget: TCastTarget;
681
- } : unknown) : never;
682
836
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown, const TStorage extends ColumnStorage = ColumnStorage, const TOptions extends Omit<ColumnOptions, 'storage'> = Omit<ColumnOptions, 'storage'>>(options: TOptions & {
683
837
  readonly storage: TStorage;
684
838
  }): ColumnFromOptions<TOutput, TInsert, TUpdate, TOptions & {
@@ -686,56 +840,103 @@ declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert,
686
840
  }, TSqlType>;
687
841
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: FalseColumnOptions & {
688
842
  readonly castType: string;
689
- }): NamedCastColumn<ColumnDefinition<TOutput, false, TInsert, TUpdate, false, false, TSqlType>>;
843
+ }): NamedCastColumn<ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
844
+ readonly sqlType: TSqlType;
845
+ }>>>;
690
846
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
691
847
  readonly nullable: true;
692
848
  readonly hasDefault: true;
693
849
  readonly generated: true;
694
850
  readonly sqlName?: string;
695
- }): ColumnDefinition<TOutput, true, TInsert, TUpdate, true, true, TSqlType, undefined, ExternalDefaultDescriptor, ExternalGeneratedColumnDescriptor>;
851
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
852
+ readonly nullable: true;
853
+ readonly hasDefault: true;
854
+ readonly generated: true;
855
+ readonly sqlType: TSqlType;
856
+ readonly default: ExternalDefaultDescriptor;
857
+ readonly generatedColumn: ExternalGeneratedColumnDescriptor;
858
+ }>>;
696
859
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
697
860
  readonly nullable: true;
698
861
  readonly hasDefault: true;
699
862
  readonly generated?: false;
700
863
  readonly sqlName?: string;
701
- }): ColumnDefinition<TOutput, true, TInsert, TUpdate, true, false, TSqlType, undefined, ExternalDefaultDescriptor>;
864
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
865
+ readonly nullable: true;
866
+ readonly hasDefault: true;
867
+ readonly sqlType: TSqlType;
868
+ readonly default: ExternalDefaultDescriptor;
869
+ }>>;
702
870
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
703
871
  readonly nullable: true;
704
872
  readonly hasDefault?: false;
705
873
  readonly generated: true;
706
874
  readonly sqlName?: string;
707
- }): ColumnDefinition<TOutput, true, TInsert, TUpdate, false, true, TSqlType, undefined, undefined, ExternalGeneratedColumnDescriptor>;
875
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
876
+ readonly nullable: true;
877
+ readonly generated: true;
878
+ readonly sqlType: TSqlType;
879
+ readonly generatedColumn: ExternalGeneratedColumnDescriptor;
880
+ }>>;
708
881
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
709
882
  readonly nullable: true;
710
883
  readonly hasDefault?: false;
711
884
  readonly generated?: false;
712
885
  readonly sqlName?: string;
713
- }): ColumnDefinition<TOutput, true, TInsert, TUpdate, false, false, TSqlType>;
886
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
887
+ readonly nullable: true;
888
+ readonly sqlType: TSqlType;
889
+ }>>;
714
890
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
715
891
  readonly nullable?: false;
716
892
  readonly hasDefault: true;
717
893
  readonly generated: true;
718
894
  readonly sqlName?: string;
719
- }): ColumnDefinition<TOutput, false, TInsert, TUpdate, true, true, TSqlType, undefined, ExternalDefaultDescriptor, ExternalGeneratedColumnDescriptor>;
895
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
896
+ readonly hasDefault: true;
897
+ readonly generated: true;
898
+ readonly sqlType: TSqlType;
899
+ readonly default: ExternalDefaultDescriptor;
900
+ readonly generatedColumn: ExternalGeneratedColumnDescriptor;
901
+ }>>;
720
902
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
721
903
  readonly nullable?: false;
722
904
  readonly hasDefault: true;
723
905
  readonly generated?: false;
724
906
  readonly sqlName?: string;
725
- }): ColumnDefinition<TOutput, false, TInsert, TUpdate, true, false, TSqlType, undefined, ExternalDefaultDescriptor>;
907
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
908
+ readonly hasDefault: true;
909
+ readonly sqlType: TSqlType;
910
+ readonly default: ExternalDefaultDescriptor;
911
+ }>>;
726
912
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options: {
727
913
  readonly nullable?: false;
728
914
  readonly hasDefault?: false;
729
915
  readonly generated: true;
730
916
  readonly sqlName?: string;
731
- }): ColumnDefinition<TOutput, false, TInsert, TUpdate, false, true, TSqlType, undefined, undefined, ExternalGeneratedColumnDescriptor>;
732
- declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options?: FalseColumnOptions): ColumnDefinition<TOutput, false, TInsert, TUpdate, false, false, TSqlType>;
917
+ }): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
918
+ readonly generated: true;
919
+ readonly sqlType: TSqlType;
920
+ readonly generatedColumn: ExternalGeneratedColumnDescriptor;
921
+ }>>;
922
+ declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown>(options?: FalseColumnOptions): ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
923
+ readonly sqlType: TSqlType;
924
+ }>>;
733
925
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, TSqlType extends AnySqlType = SqlUnknown, const TOptions extends ColumnOptions = {}>(options?: TOptions): ColumnFromOptions<TOutput, TInsert, TUpdate, TOptions, TSqlType>;
734
926
  declare function column<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, const TOptions extends ColumnOptions = {}, TSqlType extends AnySqlType = SqlUnknown>(options?: TOptions): ColumnFromOptions<TOutput, TInsert, TUpdate, TOptions, TSqlType>;
927
+ /** Resolve the runtime result metadata carried by a column definition. */
928
+ declare function columnResultValue(definition: {
929
+ readonly storage?: ColumnStorage;
930
+ readonly resultDecoder?: ResultDecoder;
931
+ }): ResultValueMetadata | undefined;
735
932
  type NativeColumnOptions = Omit<ColumnOptions, 'storage'> & {
736
933
  readonly storage?: never;
737
934
  };
738
- type NativeColumnFromOptions<TOutput, TInsert, TUpdate, TOptions extends NativeColumnOptions, TSqlType extends AnySqlType, TDialect extends string, TDeclaration extends string> = ColumnDefinition<TOutput, Flag<TOptions['nullable']>, TInsert, TUpdate, ColumnHasDefaultOption<TOptions>, ColumnIsGeneratedOption<TOptions>, TSqlType, NativeColumnStorage<TDialect, TDeclaration>, ColumnDefaultOption<TOptions>, ColumnGeneratedOption<TOptions>, ColumnIdentityOption<TOptions>, ColumnOnUpdateOption<TOptions>> & (TOptions extends {
935
+ type NativeColumnFromOptions<TOutput, TInsert, TUpdate, TOptions extends NativeColumnOptions, TSqlType extends AnySqlType, TDialect extends string, TDeclaration extends string> = ColumnDefinition<Simplify$1<ColumnValueConfig<TOutput, TInsert, TUpdate> & {
936
+ readonly sqlType: TSqlType;
937
+ } & ColumnOptionConfig<TOptions> & {
938
+ readonly storage: NativeColumnStorage<TDialect, TDeclaration>;
939
+ }>> & (TOptions extends {
739
940
  readonly castType: string;
740
941
  } ? {
741
942
  readonly castTarget: NamedCastTarget;
@@ -744,21 +945,23 @@ type NativeColumnFromOptions<TOutput, TInsert, TUpdate, TOptions extends NativeC
744
945
  declare function nativeColumn<TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, const TOptions extends NativeColumnOptions = {}, TSqlType extends AnySqlType = SqlUnknown, const TDialect extends string = string, const TDeclaration extends string = string>(storage: NativeColumnStorage<TDialect, TDeclaration>, options?: TOptions): NativeColumnFromOptions<TOutput, TInsert, TUpdate, TOptions, TSqlType, TDialect, TDeclaration>;
745
946
  /** Create a dialect-native column from an adapter name and exact declaration. */
746
947
  declare function nativeColumn<const TDialect extends string, const TDeclaration extends string, TOutput = unknown, TInsert = TOutput, TUpdate = TInsert, const TOptions extends NativeColumnOptions = {}, TSqlType extends AnySqlType = SqlUnknown>(dialect: TDialect, type: TDeclaration, options?: TOptions): NativeColumnFromOptions<TOutput, TInsert, TUpdate, TOptions, TSqlType, TDialect, TDeclaration>;
747
- declare function nullable<TOutput, TNullable extends boolean, TInsert, TUpdate, THasDefault extends boolean, TGenerated extends boolean, TSqlType extends AnySqlType, TStorage extends ColumnStorage | undefined, TDefault extends ColumnDefault | undefined, TGeneratedColumn extends GeneratedColumnDescriptor | undefined, TIdentity extends IdentityDescriptor | undefined, TOnUpdate extends AnySchemaExpression | undefined>(definition: ColumnDefinition<TOutput, TNullable, TInsert, TUpdate, THasDefault, TGenerated, TSqlType, TStorage, TDefault, TGeneratedColumn, TIdentity, TOnUpdate>): ColumnDefinition<TOutput, true, TInsert, TUpdate, THasDefault, TGenerated, TSqlType, TStorage, TDefault, TGeneratedColumn, TIdentity, TOnUpdate>;
748
- declare function integer<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<number, number, number, TOptions, SqlInteger>, "integer">, PortableColumnStorage<"integer">>;
749
- declare function numeric<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<number, number, number, TOptions, SqlDecimal>, "decimal">, PortableColumnStorage<"numeric">>;
750
- declare function text<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<string, string, string, TOptions, SqlText>, "text">, PortableColumnStorage<"text">>;
751
- declare function boolean<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<boolean, boolean, boolean, TOptions, SqlBoolean>, "boolean">, PortableColumnStorage<"boolean">>;
752
- declare function date<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<Date, Date, Date, TOptions, SqlDate>, "date">, PortableColumnStorage<"date">>;
753
- declare function timestamp<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<Date, Date, Date, TOptions, SqlTimestamp>, "timestamp">, PortableColumnStorage<"timestamp">>;
754
- declare function uuid<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<string, string, string, TOptions, SqlUuid>, "uuid">, PortableColumnStorage<"uuid">>;
755
- declare function json<TOutput = unknown, const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<TOutput, TOutput, TOutput, TOptions, SqlJson<TOutput>>, "json">, PortableColumnStorage<"json">>;
756
- declare function bigint<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<bigint, bigint, bigint, TOptions, SqlBigInt>, "bigint">, PortableColumnStorage<"bigint">>;
757
- declare function binary<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): StoredColumnDefinition<PortableCastColumn<ColumnFromOptions<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, TOptions, SqlBinary>, "binary">, PortableColumnStorage<"binary">>;
948
+ declare function nullable<TConfig extends ColumnDefinitionConfig>(definition: ColumnDefinition<TConfig>): ColumnDefinition<Simplify$1<Omit<TConfig, "nullable"> & {
949
+ readonly nullable: true;
950
+ }>>;
951
+ declare function integer<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<number, SqlInteger, 'integer', 'integer', TOptions>;
952
+ declare function numeric<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<number, SqlDecimal, 'numeric', 'decimal', TOptions>;
953
+ declare function text<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<string, SqlText, 'text', 'text', TOptions>;
954
+ declare function boolean<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<boolean, SqlBoolean, 'boolean', 'boolean', TOptions>;
955
+ declare function date<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<Date, SqlDate, 'date', 'date', TOptions>;
956
+ declare function timestamp<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<Date, SqlTimestamp, 'timestamp', 'timestamp', TOptions>;
957
+ declare function uuid<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<string, SqlUuid, 'uuid', 'uuid', TOptions>;
958
+ declare function json<TOutput = unknown, const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<TOutput, SqlJson<TOutput>, 'json', 'json', TOptions>;
959
+ declare function bigint<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<bigint, SqlBigInt, 'bigint', 'bigint', TOptions>;
960
+ declare function binary<const TOptions extends BuiltInColumnOptions = {}>(options?: TOptions): BuiltInColumnDefinition<Uint8Array, SqlBinary, 'binary', 'binary', TOptions>;
758
961
  //#endregion
759
962
  //#region src/schema/column-nullability.d.ts
760
963
  declare const declaredColumnNullability: unique symbol;
761
- /** @internal */
964
+ /** Compile-time nullability retained by a column from its table declaration. */
762
965
  type DeclaredColumnNullability<TNullable extends boolean> = {
763
966
  readonly [declaredColumnNullability]: TNullable;
764
967
  };
@@ -1057,7 +1260,7 @@ declare function render<TQuery extends AnyFragment>(query: TQuery & RenderCapabi
1057
1260
  declare function render<TQuery extends AnyFragment, TCapabilities extends DialectCapability>(query: TQuery & RenderCapabilityValidation<TQuery, TCapabilities>, options: RenderOptions<TCapabilities> | Dialect<TCapabilities>): RenderedQuery;
1058
1261
  //#endregion
1059
1262
  //#region src/execution.d.ts
1060
- type StreamableQuery<TRow extends object = Record<string, unknown>> = Query<TRow, any, any, any> & {
1263
+ type StreamableQuery<TRow extends object = Record<string, unknown>> = QueryWithRow<TRow> & {
1061
1264
  readonly queryKind: 'select' | 'set';
1062
1265
  };
1063
1266
  /** Rendering policy and cancellation input accepted by query execution. */
@@ -1077,7 +1280,7 @@ type ExplainMutationOptions = Omit<ExplainOptions, 'analyze'> & {
1077
1280
  readonly analyze?: never;
1078
1281
  };
1079
1282
  /** Select read-only or plan-only EXPLAIN options from the query kind. */
1080
- type ExplainOptionsFor<TQuery extends Query<any, any, any, any>> = TQuery['queryKind'] extends 'select' | 'set' ? ExplainReadOptions : ExplainMutationOptions;
1283
+ type ExplainOptionsFor<TQuery extends AnyQuery> = TQuery['queryKind'] extends 'select' | 'set' ? ExplainReadOptions : ExplainMutationOptions;
1081
1284
  /** Controls the lifecycle of one adapter-owned transaction. */
1082
1285
  interface TransactionOptions {
1083
1286
  /** Passed to the adapter for transaction begin, commit, and rollback. */
@@ -1089,6 +1292,8 @@ interface ExecutionRequest {
1089
1292
  readonly statement: RenderedQuery;
1090
1293
  /** The source query kind, available without parsing rendered SQL. */
1091
1294
  readonly queryKind: QueryKind;
1295
+ /** Named logical fields used by Qubu after the adapter returns raw rows. */
1296
+ readonly resultShape: ResultShape;
1092
1297
  /** Present when the caller supplied an abort signal to {@link execute} or {@link stream}. */
1093
1298
  readonly signal?: AbortSignal;
1094
1299
  }
@@ -1110,6 +1315,14 @@ interface ExecutionResult<TRow extends object = Record<string, unknown>> {
1110
1315
  /** An insert identifier reported by the driver, including generated IDs. */
1111
1316
  readonly insertId?: string | number | bigint;
1112
1317
  }
1318
+ /** Driver-normalized rows and mutation facts returned to Qubu by an adapter. */
1319
+ interface AdapterExecutionResult {
1320
+ /** Object rows keyed by the query's rendered result aliases. */
1321
+ readonly rows: readonly Readonly<Record<string, unknown>>[];
1322
+ readonly affectedRows?: number | bigint;
1323
+ readonly changedRows?: number | bigint;
1324
+ readonly insertId?: string | number | bigint;
1325
+ }
1113
1326
  /** Adapter-decoded vendor plan rows returned by an EXPLAIN request. */
1114
1327
  interface ExplainResult<TPlanRow extends object = Record<string, unknown>> {
1115
1328
  /** Opaque plan rows in the shape selected by the application adapter. */
@@ -1118,14 +1331,17 @@ interface ExplainResult<TPlanRow extends object = Record<string, unknown>> {
1118
1331
  /**
1119
1332
  * The driver-facing boundary. `request.statement.parameters` contains raw
1120
1333
  * application values in placeholder order; the adapter binds and encodes them
1121
- * for its driver. Connection pooling, transactions, retries, and row decoding
1122
- * remain adapter concerns.
1334
+ * for its driver. Connection pooling, transactions, retries, and proprietary
1335
+ * driver-row normalization remain adapter concerns. Qubu applies the adapter's
1336
+ * registered logical result decoders afterward.
1123
1337
  */
1124
1338
  interface QueryAdapter {
1125
1339
  /** Default rendering policy for queries sent through this adapter. */
1126
1340
  readonly dialect: Dialect;
1341
+ /** Driver-specific conversions for portable logical result domains. */
1342
+ readonly decoders?: ResultDecoders;
1127
1343
  /** Execute one request and normalize the driver's result fields. */
1128
- execute<TRow extends object>(request: ExecutionRequest): Promise<ExecutionResult<TRow>>;
1344
+ execute(request: ExecutionRequest): Promise<AdapterExecutionResult>;
1129
1345
  }
1130
1346
  /**
1131
1347
  * An opt-in adapter capability for typed, adapter-decoded EXPLAIN results.
@@ -1147,8 +1363,8 @@ type ExplainPlanRow<TAdapter extends ExplainableQueryAdapter> = TAdapter extends
1147
1363
  * fails, or observes an aborted request signal.
1148
1364
  */
1149
1365
  interface StreamingQueryAdapter extends QueryAdapter {
1150
- /** Return a typed, adapter-owned stream for one SELECT or set query. */
1151
- stream<TRow extends object>(request: ExecutionRequest): AsyncIterable<TRow>;
1366
+ /** Return an adapter-owned object-row stream for one SELECT or set query. */
1367
+ stream(request: ExecutionRequest): AsyncIterable<Readonly<Record<string, unknown>>>;
1152
1368
  }
1153
1369
  type QueryExecutor = QueryAdapter;
1154
1370
  /**
@@ -1166,14 +1382,14 @@ interface QubuClient<TAdapter extends QueryAdapter = QueryAdapter> {
1166
1382
  /** The adapter supplied to {@link qubu}. */
1167
1383
  readonly adapter: TAdapter;
1168
1384
  /** Execute a query and keep the adapter's structured mutation facts. */
1169
- execute<TRow extends object>(query: Query<TRow, any, any, any>, options?: ExecutionOptions): Promise<ExecutionResult<TRow>>;
1385
+ execute<TRow extends object>(query: QueryWithRow<TRow>, options?: ExecutionOptions): Promise<ExecutionResult<TRow>>;
1170
1386
  /** Execute a query and return only its decoded rows. */
1171
- rows<TRow extends object>(query: Query<TRow, any, any, any>, options?: ExecutionOptions): Promise<readonly TRow[]>;
1387
+ rows<TRow extends object>(query: QueryWithRow<TRow>, options?: ExecutionOptions): Promise<readonly TRow[]>;
1172
1388
  }
1173
1389
  /** A bound client whose adapter also decodes vendor-specific EXPLAIN rows. */
1174
1390
  interface QubuExplainableClient<TAdapter extends ExplainableQueryAdapter = ExplainableQueryAdapter> extends QubuClient<TAdapter> {
1175
1391
  /** Explain a query without executing it and return adapter-owned plan rows. */
1176
- explain<TQuery extends Query<any, any, any, any>>(query: TQuery, options?: ExplainOptionsFor<TQuery>): Promise<ExplainResult<ExplainPlanRow<TAdapter>>>;
1392
+ explain<TQuery extends AnyQuery>(query: TQuery, options?: ExplainOptionsFor<TQuery>): Promise<ExplainResult<ExplainPlanRow<TAdapter>>>;
1177
1393
  }
1178
1394
  /** A bound client whose adapter also supports typed read-query streams. */
1179
1395
  interface QubuStreamingClient<TAdapter extends StreamingQueryAdapter = StreamingQueryAdapter> extends QubuClient<TAdapter> {
@@ -1222,17 +1438,17 @@ interface DriverValueEncoder<TDriverValue = unknown> {
1222
1438
  *
1223
1439
  * Driver errors are not caught or translated.
1224
1440
  */
1225
- declare function execute<TRow extends object>(query: Query<TRow, any, any, any>, adapter: QueryAdapter, options?: ExecutionOptions): Promise<ExecutionResult<TRow>>;
1226
- declare function execute<TRow extends object>(adapter: QueryAdapter, query: Query<TRow, any, any, any>, options?: ExecutionOptions): Promise<ExecutionResult<TRow>>;
1441
+ declare function execute<TRow extends object>(query: QueryWithRow<TRow>, adapter: QueryAdapter, options?: ExecutionOptions): Promise<ExecutionResult<TRow>>;
1442
+ declare function execute<TRow extends object>(adapter: QueryAdapter, query: QueryWithRow<TRow>, options?: ExecutionOptions): Promise<ExecutionResult<TRow>>;
1227
1443
  /** Execute a query and return its decoded rows without mutation facts. */
1228
- declare function executeRows<TRow extends object>(query: Query<TRow, any, any, any>, adapter: QueryAdapter, options?: ExecutionOptions): Promise<readonly TRow[]>;
1229
- declare function executeRows<TRow extends object>(adapter: QueryAdapter, query: Query<TRow, any, any, any>, options?: ExecutionOptions): Promise<readonly TRow[]>;
1444
+ declare function executeRows<TRow extends object>(query: QueryWithRow<TRow>, adapter: QueryAdapter, options?: ExecutionOptions): Promise<readonly TRow[]>;
1445
+ declare function executeRows<TRow extends object>(adapter: QueryAdapter, query: QueryWithRow<TRow>, options?: ExecutionOptions): Promise<readonly TRow[]>;
1230
1446
  /**
1231
1447
  * Render a query as a dialect-specific EXPLAIN request and return the
1232
1448
  * adapter-decoded vendor plan rows. EXPLAIN never calls QueryAdapter.execute.
1233
1449
  */
1234
- declare function explain<TQuery extends Query<any, any, any, any>, TAdapter extends ExplainableQueryAdapter>(query: TQuery, adapter: TAdapter, options?: ExplainOptionsFor<TQuery>): Promise<ExplainResult<ExplainPlanRow<TAdapter>>>;
1235
- declare function explain<TQuery extends Query<any, any, any, any>, TAdapter extends ExplainableQueryAdapter>(adapter: TAdapter, query: TQuery, options?: ExplainOptionsFor<TQuery>): Promise<ExplainResult<ExplainPlanRow<TAdapter>>>;
1450
+ declare function explain<TQuery extends AnyQuery, TAdapter extends ExplainableQueryAdapter>(query: TQuery, adapter: TAdapter, options?: ExplainOptionsFor<TQuery>): Promise<ExplainResult<ExplainPlanRow<TAdapter>>>;
1451
+ declare function explain<TQuery extends AnyQuery, TAdapter extends ExplainableQueryAdapter>(adapter: TAdapter, query: TQuery, options?: ExplainOptionsFor<TQuery>): Promise<ExplainResult<ExplainPlanRow<TAdapter>>>;
1236
1452
  /**
1237
1453
  * Render a SELECT or set-operation query and return the adapter-owned row
1238
1454
  * stream. Mutations, including mutations with RETURNING, must use execute().
@@ -1241,24 +1457,49 @@ declare function stream<TRow extends object>(query: StreamableQuery<TRow>, adapt
1241
1457
  declare function stream<TRow extends object>(adapter: StreamingQueryAdapter, query: StreamableQuery<TRow>, options?: ExecutionOptions): AsyncIterable<TRow>;
1242
1458
  //#endregion
1243
1459
  //#region src/expressions/cast.d.ts
1244
- type CastDefinition = ColumnDefinition<any, false, any, any, false, false, AnySqlType, any, any, any> & {
1460
+ type CastDefinition = ColumnDefinition<any> & {
1461
+ readonly nullable: false;
1245
1462
  readonly castTarget: CastTarget;
1246
1463
  };
1247
1464
  /**
1248
1465
  * Cast to a built-in or custom column definition while deriving both result
1249
1466
  * types from that definition. Operand nullability and source facts survive.
1250
1467
  */
1251
- declare function cast<TDefinition extends CastDefinition, TExpression extends AnyExpression>(expression: TExpression, definition: TDefinition): ResultExpression<ColumnOutput<TDefinition>, TExpression, 'operator', NullabilityOf<TExpression>, ColumnSqlType<TDefinition>>;
1468
+ declare function cast<TDefinition extends CastDefinition, TExpression extends AnyExpression>(expression: TExpression, definition: TDefinition): ResultExpression<{
1469
+ readonly output: ColumnOutput<TDefinition>;
1470
+ readonly children: TExpression;
1471
+ readonly kind: 'operator';
1472
+ readonly nullableFrom: NullabilityOf<TExpression>;
1473
+ readonly sqlType: ColumnSqlType<TDefinition>;
1474
+ }>;
1252
1475
  /** Cast using a type name supplied by the caller or an adapter. */
1253
- declare function cast<T, TSqlType extends AnySqlType = SqlUnknown, TExpression extends AnyExpression = AnyExpression, const TType extends string = string>(expression: TExpression, typeName: TType): ResultExpression<T, TExpression, 'operator', NullabilityOf<TExpression>, TSqlType>;
1476
+ declare function cast<T, TSqlType extends AnySqlType = SqlUnknown, TExpression extends AnyExpression = AnyExpression, const TType extends string = string>(expression: TExpression, typeName: TType): ResultExpression<{
1477
+ readonly output: T;
1478
+ readonly children: TExpression;
1479
+ readonly kind: 'operator';
1480
+ readonly nullableFrom: NullabilityOf<TExpression>;
1481
+ readonly sqlType: TSqlType;
1482
+ }>;
1254
1483
  /** Create a cast whose JS output and SQL result domain are declared up front. */
1255
- declare function typedCast<T, TSqlType extends AnySqlType>(): <TExpression extends AnyExpression, const TType extends string>(expression: TExpression, typeName: TType) => ResultExpression<T, TExpression, "operator", (MetadataOf<TExpression> extends (infer T_1) ? T_1 extends MetadataOf<TExpression> ? T_1 extends {
1256
- readonly kind: "result";
1257
- } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TExpression> extends (infer T_3) ? T_3 extends MetadataOf<TExpression> ? T_3 extends {
1258
- readonly kind: "result";
1259
- } ? T_3 : never : never : never) ? T_2 extends {
1260
- readonly nullableFrom: infer TSource;
1261
- } ? TSource : never : never : never, TSqlType>;
1484
+ declare function typedCast<T, TSqlType extends AnySqlType>(): <TExpression extends AnyExpression, const TType extends string>(expression: TExpression, typeName: TType) => ResultExpression<{
1485
+ readonly output: T;
1486
+ readonly children: TExpression;
1487
+ readonly kind: "operator";
1488
+ readonly nullableFrom: (MetadataOf<TExpression> extends (infer T_1) ? T_1 extends MetadataOf<TExpression> ? T_1 extends {
1489
+ readonly kind: "result";
1490
+ } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TExpression> extends (infer T_3) ? T_3 extends MetadataOf<TExpression> ? T_3 extends {
1491
+ readonly kind: "result";
1492
+ } ? T_3 : never : never : never) ? T_2 extends {
1493
+ readonly nullableFrom: infer TSource;
1494
+ } ? TSource : never : never : never;
1495
+ readonly sqlType: TSqlType;
1496
+ }>;
1497
+ //#endregion
1498
+ //#region src/expressions/map-result.d.ts
1499
+ type MappedOutput<TOutput, TExpression> = TOutput | Extract<ExpressionOutput<TExpression>, null>;
1500
+ type MappedResultMetadata<TOutput, TExpression> = ResultMeta<MappedOutput<TOutput, TExpression>, NullabilityOf<TExpression>, SqlTypeOf<TExpression>> | ExpressionMeta<DependenciesOf<TExpression>> | InheritedMetadata<TExpression>;
1501
+ /** Attach an application decoder to an expression without changing its SQL. */
1502
+ declare function mapResult<TOutput, TExpression extends AnyExpression>(expression: TExpression, decoder: ResultDecoder<TOutput>): TExpression extends AnySchemaExpression ? SchemaExpression<MappedResultMetadata<TOutput, TExpression>, TExpression['expressionKind']> : Expression<MappedResultMetadata<TOutput, TExpression>, TExpression['expressionKind']>;
1262
1503
  //#endregion
1263
1504
  //#region src/expressions/value.d.ts
1264
1505
  interface ValueExpression<T = unknown, TSqlType extends AnySqlType = SqlUnknown> extends SchemaExpression<ResultMeta<T, never, TSqlType> | ExpressionMeta<never>, 'value'> {
@@ -1283,19 +1524,50 @@ type OperandNullability<T> = T extends Fragment<any> ? NullabilityOf<T> : never;
1283
1524
  type IsNullOperand<T> = T extends null ? true : T extends ValueExpression<infer TValue> ? [TValue] extends [null] ? true : false : false;
1284
1525
  //#endregion
1285
1526
  //#region src/expressions/operators/comparison/null.d.ts
1286
- declare function isNull<TExpression extends AnyExpression>(expression: TExpression): ResultExpression<boolean, TExpression, 'operator', never, SqlBoolean>;
1287
- declare function isNotNull<TExpression extends AnyExpression>(expression: TExpression): ResultExpression<boolean, TExpression, 'operator', never, SqlBoolean>;
1288
- declare function isTrue<TExpression extends ExpressionWithOutput<boolean>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlBoolean>): ResultExpression<boolean, TExpression, "operator", never, SqlBoolean>;
1527
+ type NonNullBooleanResult<TExpression> = ResultExpression<{
1528
+ readonly output: boolean;
1529
+ readonly children: TExpression;
1530
+ readonly kind: 'operator';
1531
+ readonly nullableFrom: never;
1532
+ readonly sqlType: SqlBoolean;
1533
+ }>;
1534
+ declare function isNull<TExpression extends AnyExpression>(expression: TExpression): NonNullBooleanResult<TExpression>;
1535
+ declare function isNotNull<TExpression extends AnyExpression>(expression: TExpression): NonNullBooleanResult<TExpression>;
1536
+ declare function isTrue<TExpression extends ExpressionWithOutput<boolean>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlBoolean>): NonNullBooleanResult<TExpression>;
1289
1537
  //#endregion
1290
1538
  //#region src/expressions/operators/comparison/range.d.ts
1291
1539
  type BetweenValidation<TExpression, TLower, TUpper> = SqlOrderValidation<ExpressionSqlType<TExpression>, OperandSqlType<TLower, ExpressionSqlType<TExpression>>> & SqlOrderValidation<ExpressionSqlType<TExpression>, OperandSqlType<TUpper, ExpressionSqlType<TExpression>>>;
1292
1540
  type ListValidation<TExpression, TValues extends readonly unknown[]> = TValues extends readonly [infer THead, ...infer TTail] ? SqlEqualityValidation<ExpressionSqlType<TExpression>, OperandSqlType<THead, ExpressionSqlType<TExpression>>> & ListValidation<TExpression, TTail> : unknown;
1293
- declare function between<T, TExpression extends ExpressionWithOutput<T>, L extends Operand<NoInfer<T>>, H extends Operand<NoInfer<T>>>(expression: TExpression & BetweenValidation<TExpression, L, H>, lower: L, upper: H): ResultExpression<boolean, TExpression | L | H, "operator", NullabilityOf<TExpression | L | H>, SqlBoolean>;
1294
- declare function inList<T, TExpression extends ExpressionWithOutput<T>, const TValues extends readonly Operand<NoInfer<T>>[]>(expression: TExpression & ListValidation<TExpression, TValues>, values: TValues): ResultExpression<boolean, TExpression | TValues[number], "operator", NullabilityOf<TExpression | TValues[number]>, SqlBoolean>;
1295
- declare function notIn<T, TExpression extends ExpressionWithOutput<T>, const TValues extends readonly Operand<NoInfer<T>>[]>(expression: TExpression & ListValidation<TExpression, TValues>, values: TValues): ResultExpression<boolean, TExpression | TValues[number], "operator", NullabilityOf<TExpression | TValues[number]>, SqlBoolean>;
1541
+ declare function between<T, TExpression extends ExpressionWithOutput<T>, L extends Operand<NoInfer<T>>, H extends Operand<NoInfer<T>>>(expression: TExpression & BetweenValidation<TExpression, L, H>, lower: L, upper: H): ResultExpression<{
1542
+ readonly output: boolean;
1543
+ readonly children: TExpression | L | H;
1544
+ readonly kind: "operator";
1545
+ readonly nullableFrom: NullabilityOf<TExpression | L | H>;
1546
+ readonly sqlType: SqlBoolean;
1547
+ }>;
1548
+ declare function inList<T, TExpression extends ExpressionWithOutput<T>, const TValues extends readonly Operand<NoInfer<T>>[]>(expression: TExpression & ListValidation<TExpression, TValues>, values: TValues): ResultExpression<{
1549
+ readonly output: boolean;
1550
+ readonly children: TExpression | TValues[number];
1551
+ readonly kind: "operator";
1552
+ readonly nullableFrom: NullabilityOf<TExpression | TValues[number]>;
1553
+ readonly sqlType: SqlBoolean;
1554
+ }>;
1555
+ declare function notIn<T, TExpression extends ExpressionWithOutput<T>, const TValues extends readonly Operand<NoInfer<T>>[]>(expression: TExpression & ListValidation<TExpression, TValues>, values: TValues): ResultExpression<{
1556
+ readonly output: boolean;
1557
+ readonly children: TExpression | TValues[number];
1558
+ readonly kind: "operator";
1559
+ readonly nullableFrom: NullabilityOf<TExpression | TValues[number]>;
1560
+ readonly sqlType: SqlBoolean;
1561
+ }>;
1296
1562
  //#endregion
1297
1563
  //#region src/expressions/operators/comparison/relational.d.ts
1298
- type ComparisonResult<TLeft, R, TOperator extends string> = ResultExpression<boolean, TLeft | R, 'operator', TOperator extends 'IS DISTINCT FROM' | 'IS NOT DISTINCT FROM' ? never : TOperator extends '=' | '<>' ? IsNullOperand<R> extends true ? never : NullabilityOf<TLeft> | OperandNullability<R> : NullabilityOf<TLeft> | OperandNullability<R>, SqlBoolean>;
1564
+ type ComparisonResult<TLeft, R, TOperator extends string> = ResultExpression<{
1565
+ readonly output: boolean;
1566
+ readonly children: TLeft | R;
1567
+ readonly kind: 'operator';
1568
+ readonly nullableFrom: TOperator extends 'IS DISTINCT FROM' | 'IS NOT DISTINCT FROM' ? never : TOperator extends '=' | '<>' ? IsNullOperand<R> extends true ? never : NullabilityOf<TLeft> | OperandNullability<R> : NullabilityOf<TLeft> | OperandNullability<R>;
1569
+ readonly sqlType: SqlBoolean;
1570
+ }>;
1299
1571
  /** SQL-domain validation selected by a comparison operator family. */
1300
1572
  type ComparisonValidation<TLeft, TRight, TOperator extends string> = TOperator extends 'LIKE' | 'NOT LIKE' | 'ILIKE' ? SqlCapabilityValidation<ExpressionSqlType<TLeft>, SqlTextLike> & SqlCapabilityValidation<OperandSqlType<TRight, ExpressionSqlType<TLeft>>, SqlTextLike> : TOperator extends '<' | '<=' | '>' | '>=' ? SqlOrderValidation<ExpressionSqlType<TLeft>, OperandSqlType<TRight, ExpressionSqlType<TLeft>>> : SqlEqualityValidation<ExpressionSqlType<TLeft>, OperandSqlType<TRight, ExpressionSqlType<TLeft>>>;
1301
1573
  declare function eq<T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ComparisonValidation<TLeft, R, '='>, right: R): ComparisonResult<TLeft & SqlEqualityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
@@ -1438,16 +1710,37 @@ declare function scalar<TQuery extends AnyQuery>(query: TQuery): Expression<Resu
1438
1710
  //#region src/expressions/operators/comparison/subquery.d.ts
1439
1711
  type IsUnion<T, TWhole = T> = T extends unknown ? [TWhole] extends [T] ? false : true : never;
1440
1712
  type InQueryValidation<TExpression, TQuery> = [keyof QueryRow<TQuery>] extends [never] ? QueryTypeValidation<'invalid-subquery', 'in-query.projection', 'Select exactly one field in the IN subquery.'> : true extends IsUnion<keyof QueryRow<TQuery>> ? QueryTypeValidation<'invalid-subquery', 'in-query.projection', 'Select exactly one field in the IN subquery.'> : SingleColumn<QueryRow<TQuery>> extends ExpressionOutput<TExpression> ? SqlEqualityValidation<ExpressionSqlType<TExpression>, SingleColumn<QuerySqlTypeMap<TQuery>>> : QueryTypeValidation<'incompatible-sql-equality', 'in-query.operands', 'Select a subquery field from the same SQL equality group as the expression.', SingleColumn<QueryRow<TQuery>>>;
1441
- declare function inQuery<TExpression extends AnyExpression, TQuery extends Query<any, any, any>>(expression: TExpression & InQueryValidation<TExpression, TQuery>, query: TQuery): SubqueryResultExpression<boolean, TExpression | TQuery, never, SqlBoolean>;
1442
- declare function exists<TQuery extends Query<any, any, any>>(query: TQuery): SubqueryResultExpression<boolean, TQuery, never, SqlBoolean>;
1443
- declare function notExists<TQuery extends Query<any, any, any>>(query: TQuery): SubqueryResultExpression<boolean, TQuery, never, SqlBoolean>;
1713
+ declare function inQuery<TExpression extends AnyExpression, TQuery extends AnyQuery>(expression: TExpression & InQueryValidation<TExpression, TQuery>, query: TQuery): SubqueryResultExpression<{
1714
+ readonly output: boolean;
1715
+ readonly children: TExpression | TQuery;
1716
+ readonly nullableFrom: never;
1717
+ readonly sqlType: SqlBoolean;
1718
+ }>;
1719
+ declare function exists<TQuery extends AnyQuery>(query: TQuery): SubqueryResultExpression<{
1720
+ readonly output: boolean;
1721
+ readonly children: TQuery;
1722
+ readonly nullableFrom: never;
1723
+ readonly sqlType: SqlBoolean;
1724
+ }>;
1725
+ declare function notExists<TQuery extends AnyQuery>(query: TQuery): SubqueryResultExpression<{
1726
+ readonly output: boolean;
1727
+ readonly children: TQuery;
1728
+ readonly nullableFrom: never;
1729
+ readonly sqlType: SqlBoolean;
1730
+ }>;
1444
1731
  //#endregion
1445
1732
  //#region src/expressions/operators/comparison/types.d.ts
1446
1733
  type BooleanExpression<TMetadata = never, TKind extends ExpressionKind = ExpressionKind> = Expression<ResultMeta<boolean, unknown, AnySqlType> | TMetadata, TKind>;
1447
1734
  //#endregion
1448
1735
  //#region src/expressions/case.d.ts
1449
1736
  type CaseSqlType<TThen, TElse> = TThen extends Fragment<any> ? SqlTypeOf<TThen> : TElse extends Fragment<any> ? SqlTypeOf<TElse> : SqlUnknown;
1450
- declare function caseWhen<T, TCondition extends BooleanExpression<any>, TThen extends Operand<T>, TElse extends Operand<T>>(condition: TCondition & SqlCapabilityValidation<ExpressionSqlType<TCondition>, SqlBoolean>, thenValue: TThen & SqlEqualityValidation<OperandSqlType<TThen, CaseSqlType<TThen, TElse>>, OperandSqlType<TElse, CaseSqlType<TThen, TElse>>>, elseValue: TElse): ResultExpression<T, TCondition | TThen | TElse, "operator", OperandNullability<TThen> | OperandNullability<TElse>, CaseSqlType<TThen, TElse>>;
1737
+ declare function caseWhen<T, TCondition extends BooleanExpression<any>, TThen extends Operand<T>, TElse extends Operand<T>>(condition: TCondition & SqlCapabilityValidation<ExpressionSqlType<TCondition>, SqlBoolean>, thenValue: TThen & SqlEqualityValidation<OperandSqlType<TThen, CaseSqlType<TThen, TElse>>, OperandSqlType<TElse, CaseSqlType<TThen, TElse>>>, elseValue: TElse): ResultExpression<{
1738
+ readonly output: T;
1739
+ readonly children: TCondition | TThen | TElse;
1740
+ readonly kind: "operator";
1741
+ readonly nullableFrom: OperandNullability<TThen> | OperandNullability<TElse>;
1742
+ readonly sqlType: CaseSqlType<TThen, TElse>;
1743
+ }>;
1451
1744
  //#endregion
1452
1745
  //#region src/expressions/sql.d.ts
1453
1746
  type SqlChild<TValues extends readonly unknown[]> = Extract<TValues[number], AnyFragment>;
@@ -1481,13 +1774,54 @@ interface SqlTag extends TypedSqlTag<unknown, SqlUnknown> {
1481
1774
  declare const sql: SqlTag;
1482
1775
  //#endregion
1483
1776
  //#region src/expressions/functions/aggregate.d.ts
1484
- declare function count(): AggregateResultExpression<number, never, 'function', never, SqlInteger>;
1485
- declare function count<TExpression extends AnyExpression>(expression: TExpression): AggregateResultExpression<number, TExpression, 'function', never, SqlInteger>;
1486
- declare function countDistinct<TExpression extends AnyExpression>(expression: TExpression): AggregateResultExpression<number, TExpression, "function", never, SqlInteger>;
1487
- declare function sum<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlNumericLike>): AggregateResultExpression<ExpressionOutput<TExpression>, TExpression, "function", NullabilityOf<TExpression>, ExpressionSqlType<TExpression>>;
1488
- declare function avg<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlNumericLike>): AggregateResultExpression<number, TExpression, "function", NullabilityOf<TExpression>, SqlDecimal>;
1489
- declare function min<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlOrderable>): AggregateResultExpression<ExpressionOutput<TExpression>, TExpression, "function", NullabilityOf<TExpression>, ExpressionSqlType<TExpression>>;
1490
- declare function max<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlOrderable>): AggregateResultExpression<ExpressionOutput<TExpression>, TExpression, "function", NullabilityOf<TExpression>, ExpressionSqlType<TExpression>>;
1777
+ declare function count(): AggregateResultExpression<{
1778
+ readonly output: number;
1779
+ readonly kind: 'function';
1780
+ readonly nullableFrom: never;
1781
+ readonly sqlType: SqlInteger;
1782
+ }>;
1783
+ declare function count<TExpression extends AnyExpression>(expression: TExpression): AggregateResultExpression<{
1784
+ readonly output: number;
1785
+ readonly children: TExpression;
1786
+ readonly kind: 'function';
1787
+ readonly nullableFrom: never;
1788
+ readonly sqlType: SqlInteger;
1789
+ }>;
1790
+ declare function countDistinct<TExpression extends AnyExpression>(expression: TExpression): AggregateResultExpression<{
1791
+ readonly output: number;
1792
+ readonly children: TExpression;
1793
+ readonly kind: "function";
1794
+ readonly nullableFrom: never;
1795
+ readonly sqlType: SqlInteger;
1796
+ }>;
1797
+ declare function sum<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlNumericLike>): AggregateResultExpression<{
1798
+ readonly output: ExpressionOutput<TExpression>;
1799
+ readonly children: TExpression;
1800
+ readonly kind: "function";
1801
+ readonly nullableFrom: NullabilityOf<TExpression>;
1802
+ readonly sqlType: ExpressionSqlType<TExpression>;
1803
+ }>;
1804
+ declare function avg<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlNumericLike>): AggregateResultExpression<{
1805
+ readonly output: number;
1806
+ readonly children: TExpression;
1807
+ readonly kind: "function";
1808
+ readonly nullableFrom: NullabilityOf<TExpression>;
1809
+ readonly sqlType: SqlDecimal;
1810
+ }>;
1811
+ declare function min<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlOrderable>): AggregateResultExpression<{
1812
+ readonly output: ExpressionOutput<TExpression>;
1813
+ readonly children: TExpression;
1814
+ readonly kind: "function";
1815
+ readonly nullableFrom: NullabilityOf<TExpression>;
1816
+ readonly sqlType: ExpressionSqlType<TExpression>;
1817
+ }>;
1818
+ declare function max<T, TExpression extends ExpressionWithOutput<T>>(expression: TExpression & SqlCapabilityValidation<ExpressionSqlType<TExpression>, SqlOrderable>): AggregateResultExpression<{
1819
+ readonly output: ExpressionOutput<TExpression>;
1820
+ readonly children: TExpression;
1821
+ readonly kind: "function";
1822
+ readonly nullableFrom: NullabilityOf<TExpression>;
1823
+ readonly sqlType: ExpressionSqlType<TExpression>;
1824
+ }>;
1491
1825
  //#endregion
1492
1826
  //#region src/expressions/functions/call.d.ts
1493
1827
  declare function call<TOutput = unknown, const TName extends string = string, const TArguments extends readonly unknown[] = readonly unknown[], TNullableFrom = NullabilityOf<TArguments[number]>, TSqlType extends AnySqlType = SqlUnknown>(name: TName, ...args: TArguments): Expression<ResultMeta<TOutput, TNullableFrom, TSqlType> | ExpressionMeta<DependenciesOf<TArguments[number]>> | InheritedMetadata<TArguments[number]>, "function">;
@@ -1597,761 +1931,791 @@ declare function jsonExists<TDocument extends AnyExpression, TPath extends JsonP
1597
1931
  //#endregion
1598
1932
  //#region src/expressions/operators/arithmetic.d.ts
1599
1933
  type ArithmeticValidation<TLeft, TRight> = SqlCapabilityValidation<ExpressionSqlType<TLeft>, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<TRight, ExpressionSqlType<TLeft>>, SqlNumericLike> & SqlOrderValidation<ExpressionSqlType<TLeft>, OperandSqlType<TRight, ExpressionSqlType<TLeft>>>;
1600
- declare const add: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<unknown, R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
1601
- readonly kind: "result";
1602
- } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
1603
- readonly kind: "result";
1604
- } ? T_3 : never : never : never) ? T_2 extends {
1605
- readonly sqlType: infer TSqlType extends AnySqlType;
1606
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
1607
- readonly kind: "result";
1608
- } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
1609
- readonly kind: "result";
1610
- } ? T_6 : never : never : never) ? T_5 extends {
1611
- readonly sqlType: infer TSqlType extends AnySqlType;
1612
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
1613
- readonly kind: "result";
1614
- } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
1615
- readonly kind: "result";
1616
- } ? T_9 : never : never : never) ? T_8 extends {
1617
- readonly sqlType: infer TSqlType extends AnySqlType;
1618
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
1619
- readonly kind: "result";
1620
- } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
1621
- readonly kind: "result";
1622
- } ? T_12 : never : never : never) ? T_11 extends {
1623
- readonly sqlType: infer TSqlType extends AnySqlType;
1624
- } ? TSqlType : SqlUnknown : never : never>>), "operator", NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
1625
- readonly kind: "result";
1626
- } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
1627
- readonly kind: "result";
1628
- } ? T_15 : never : never : never) ? T_14 extends {
1629
- readonly sqlType: infer TSqlType extends AnySqlType;
1630
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
1631
- readonly kind: "result";
1632
- } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
1633
- readonly kind: "result";
1634
- } ? T_18 : never : never : never) ? T_17 extends {
1635
- readonly sqlType: infer TSqlType extends AnySqlType;
1636
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
1637
- readonly kind: "result";
1638
- } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
1639
- readonly kind: "result";
1640
- } ? T_21 : never : never : never) ? T_20 extends {
1641
- readonly sqlType: infer TSqlType extends AnySqlType;
1642
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
1643
- readonly kind: "result";
1644
- } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
1645
- readonly kind: "result";
1646
- } ? T_24 : never : never : never) ? T_23 extends {
1647
- readonly sqlType: infer TSqlType extends AnySqlType;
1648
- } ? TSqlType : SqlUnknown : never : never>>)>, (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
1649
- readonly kind: "result";
1650
- } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
1651
- readonly kind: "result";
1652
- } ? T_27 : never : never : never) ? T_26 extends {
1653
- readonly sqlType: infer TSqlType extends AnySqlType;
1654
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
1655
- readonly kind: "result";
1656
- } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
1657
- readonly kind: "result";
1658
- } ? T_30 : never : never : never) ? T_29 extends {
1659
- readonly sqlType: infer TSqlType extends AnySqlType;
1660
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
1661
- readonly kind: "result";
1662
- } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
1663
- readonly kind: "result";
1664
- } ? T_33 : never : never : never) ? T_32 extends {
1665
- readonly sqlType: infer TSqlType extends AnySqlType;
1666
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
1667
- readonly kind: "result";
1668
- } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
1669
- readonly kind: "result";
1670
- } ? T_36 : never : never : never) ? T_35 extends {
1671
- readonly sqlType: infer TSqlType extends AnySqlType;
1672
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
1673
- readonly kind: "result";
1674
- } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
1675
- readonly kind: "result";
1676
- } ? T_40 : never : never : never) ? T_39 extends {
1677
- readonly sqlType: infer TSqlType extends AnySqlType;
1678
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
1679
- readonly kind: "result";
1680
- } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
1681
- readonly kind: "result";
1682
- } ? T_43 : never : never : never) ? T_42 extends {
1683
- readonly sqlType: infer TSqlType extends AnySqlType;
1684
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
1685
- readonly kind: "result";
1686
- } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
1687
- readonly kind: "result";
1688
- } ? T_46 : never : never : never) ? T_45 extends {
1689
- readonly sqlType: infer TSqlType extends AnySqlType;
1690
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
1691
- readonly kind: "result";
1692
- } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
1693
- readonly kind: "result";
1694
- } ? T_49 : never : never : never) ? T_48 extends {
1695
- readonly sqlType: infer TSqlType extends AnySqlType;
1696
- } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
1697
- readonly kind: "result";
1698
- } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
1699
- readonly kind: "result";
1700
- } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
1701
- readonly kind: "result";
1702
- } ? T_53 : never : never : never) ? T_52 extends {
1703
- readonly sqlType: infer TSqlType extends AnySqlType;
1704
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
1705
- readonly kind: "result";
1706
- } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
1707
- readonly kind: "result";
1708
- } ? T_56 : never : never : never) ? T_55 extends {
1709
- readonly sqlType: infer TSqlType extends AnySqlType;
1710
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
1711
- readonly kind: "result";
1712
- } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
1713
- readonly kind: "result";
1714
- } ? T_59 : never : never : never) ? T_58 extends {
1715
- readonly sqlType: infer TSqlType extends AnySqlType;
1716
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
1717
- readonly kind: "result";
1718
- } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
1719
- readonly kind: "result";
1720
- } ? T_62 : never : never : never) ? T_61 extends {
1721
- readonly sqlType: infer TSqlType extends AnySqlType;
1722
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
1723
- readonly kind: "result";
1724
- } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
1725
- readonly kind: "result";
1726
- } ? T_66 : never : never : never) ? T_65 extends {
1727
- readonly sqlType: infer TSqlType extends AnySqlType;
1728
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
1729
- readonly kind: "result";
1730
- } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
1731
- readonly kind: "result";
1732
- } ? T_69 : never : never : never) ? T_68 extends {
1733
- readonly sqlType: infer TSqlType extends AnySqlType;
1734
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
1735
- readonly kind: "result";
1736
- } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
1737
- readonly kind: "result";
1738
- } ? T_72 : never : never : never) ? T_71 extends {
1739
- readonly sqlType: infer TSqlType extends AnySqlType;
1740
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
1741
- readonly kind: "result";
1742
- } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
1743
- readonly kind: "result";
1744
- } ? T_75 : never : never : never) ? T_74 extends {
1745
- readonly sqlType: infer TSqlType extends AnySqlType;
1746
- } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
1747
- readonly kind: "result";
1748
- } ? T_63 : never : never : never) ? T_50 extends {
1749
- readonly sqlType: infer TSqlType extends AnySqlType;
1750
- } ? TSqlType : SqlUnknown : never : never>;
1751
- declare const subtract: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<unknown, R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
1752
- readonly kind: "result";
1753
- } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
1754
- readonly kind: "result";
1755
- } ? T_3 : never : never : never) ? T_2 extends {
1756
- readonly sqlType: infer TSqlType extends AnySqlType;
1757
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
1758
- readonly kind: "result";
1759
- } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
1760
- readonly kind: "result";
1761
- } ? T_6 : never : never : never) ? T_5 extends {
1762
- readonly sqlType: infer TSqlType extends AnySqlType;
1763
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
1764
- readonly kind: "result";
1765
- } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
1766
- readonly kind: "result";
1767
- } ? T_9 : never : never : never) ? T_8 extends {
1768
- readonly sqlType: infer TSqlType extends AnySqlType;
1769
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
1770
- readonly kind: "result";
1771
- } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
1772
- readonly kind: "result";
1773
- } ? T_12 : never : never : never) ? T_11 extends {
1774
- readonly sqlType: infer TSqlType extends AnySqlType;
1775
- } ? TSqlType : SqlUnknown : never : never>>), "operator", NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
1776
- readonly kind: "result";
1777
- } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
1778
- readonly kind: "result";
1779
- } ? T_15 : never : never : never) ? T_14 extends {
1780
- readonly sqlType: infer TSqlType extends AnySqlType;
1781
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
1782
- readonly kind: "result";
1783
- } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
1784
- readonly kind: "result";
1785
- } ? T_18 : never : never : never) ? T_17 extends {
1786
- readonly sqlType: infer TSqlType extends AnySqlType;
1787
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
1788
- readonly kind: "result";
1789
- } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
1790
- readonly kind: "result";
1791
- } ? T_21 : never : never : never) ? T_20 extends {
1792
- readonly sqlType: infer TSqlType extends AnySqlType;
1793
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
1794
- readonly kind: "result";
1795
- } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
1796
- readonly kind: "result";
1797
- } ? T_24 : never : never : never) ? T_23 extends {
1798
- readonly sqlType: infer TSqlType extends AnySqlType;
1799
- } ? TSqlType : SqlUnknown : never : never>>)>, (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
1800
- readonly kind: "result";
1801
- } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
1802
- readonly kind: "result";
1803
- } ? T_27 : never : never : never) ? T_26 extends {
1804
- readonly sqlType: infer TSqlType extends AnySqlType;
1805
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
1806
- readonly kind: "result";
1807
- } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
1808
- readonly kind: "result";
1809
- } ? T_30 : never : never : never) ? T_29 extends {
1810
- readonly sqlType: infer TSqlType extends AnySqlType;
1811
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
1812
- readonly kind: "result";
1813
- } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
1814
- readonly kind: "result";
1815
- } ? T_33 : never : never : never) ? T_32 extends {
1816
- readonly sqlType: infer TSqlType extends AnySqlType;
1817
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
1818
- readonly kind: "result";
1819
- } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
1820
- readonly kind: "result";
1821
- } ? T_36 : never : never : never) ? T_35 extends {
1822
- readonly sqlType: infer TSqlType extends AnySqlType;
1823
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
1824
- readonly kind: "result";
1825
- } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
1826
- readonly kind: "result";
1827
- } ? T_40 : never : never : never) ? T_39 extends {
1828
- readonly sqlType: infer TSqlType extends AnySqlType;
1829
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
1830
- readonly kind: "result";
1831
- } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
1832
- readonly kind: "result";
1833
- } ? T_43 : never : never : never) ? T_42 extends {
1834
- readonly sqlType: infer TSqlType extends AnySqlType;
1835
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
1836
- readonly kind: "result";
1837
- } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
1838
- readonly kind: "result";
1839
- } ? T_46 : never : never : never) ? T_45 extends {
1840
- readonly sqlType: infer TSqlType extends AnySqlType;
1841
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
1842
- readonly kind: "result";
1843
- } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
1844
- readonly kind: "result";
1845
- } ? T_49 : never : never : never) ? T_48 extends {
1846
- readonly sqlType: infer TSqlType extends AnySqlType;
1847
- } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
1848
- readonly kind: "result";
1849
- } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
1850
- readonly kind: "result";
1851
- } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
1852
- readonly kind: "result";
1853
- } ? T_53 : never : never : never) ? T_52 extends {
1854
- readonly sqlType: infer TSqlType extends AnySqlType;
1855
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
1856
- readonly kind: "result";
1857
- } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
1858
- readonly kind: "result";
1859
- } ? T_56 : never : never : never) ? T_55 extends {
1860
- readonly sqlType: infer TSqlType extends AnySqlType;
1861
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
1862
- readonly kind: "result";
1863
- } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
1864
- readonly kind: "result";
1865
- } ? T_59 : never : never : never) ? T_58 extends {
1866
- readonly sqlType: infer TSqlType extends AnySqlType;
1867
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
1868
- readonly kind: "result";
1869
- } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
1870
- readonly kind: "result";
1871
- } ? T_62 : never : never : never) ? T_61 extends {
1872
- readonly sqlType: infer TSqlType extends AnySqlType;
1873
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
1874
- readonly kind: "result";
1875
- } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
1876
- readonly kind: "result";
1877
- } ? T_66 : never : never : never) ? T_65 extends {
1878
- readonly sqlType: infer TSqlType extends AnySqlType;
1879
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
1880
- readonly kind: "result";
1881
- } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
1882
- readonly kind: "result";
1883
- } ? T_69 : never : never : never) ? T_68 extends {
1884
- readonly sqlType: infer TSqlType extends AnySqlType;
1885
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
1886
- readonly kind: "result";
1887
- } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
1888
- readonly kind: "result";
1889
- } ? T_72 : never : never : never) ? T_71 extends {
1890
- readonly sqlType: infer TSqlType extends AnySqlType;
1891
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
1892
- readonly kind: "result";
1893
- } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
1894
- readonly kind: "result";
1895
- } ? T_75 : never : never : never) ? T_74 extends {
1896
- readonly sqlType: infer TSqlType extends AnySqlType;
1897
- } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
1898
- readonly kind: "result";
1899
- } ? T_63 : never : never : never) ? T_50 extends {
1900
- readonly sqlType: infer TSqlType extends AnySqlType;
1901
- } ? TSqlType : SqlUnknown : never : never>;
1902
- declare const multiply: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<unknown, R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
1903
- readonly kind: "result";
1904
- } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
1905
- readonly kind: "result";
1906
- } ? T_3 : never : never : never) ? T_2 extends {
1907
- readonly sqlType: infer TSqlType extends AnySqlType;
1908
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
1909
- readonly kind: "result";
1910
- } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
1911
- readonly kind: "result";
1912
- } ? T_6 : never : never : never) ? T_5 extends {
1913
- readonly sqlType: infer TSqlType extends AnySqlType;
1914
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
1915
- readonly kind: "result";
1916
- } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
1917
- readonly kind: "result";
1918
- } ? T_9 : never : never : never) ? T_8 extends {
1919
- readonly sqlType: infer TSqlType extends AnySqlType;
1920
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
1921
- readonly kind: "result";
1922
- } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
1923
- readonly kind: "result";
1924
- } ? T_12 : never : never : never) ? T_11 extends {
1925
- readonly sqlType: infer TSqlType extends AnySqlType;
1926
- } ? TSqlType : SqlUnknown : never : never>>), "operator", NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
1927
- readonly kind: "result";
1928
- } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
1929
- readonly kind: "result";
1930
- } ? T_15 : never : never : never) ? T_14 extends {
1931
- readonly sqlType: infer TSqlType extends AnySqlType;
1932
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
1933
- readonly kind: "result";
1934
- } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
1935
- readonly kind: "result";
1936
- } ? T_18 : never : never : never) ? T_17 extends {
1937
- readonly sqlType: infer TSqlType extends AnySqlType;
1938
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
1939
- readonly kind: "result";
1940
- } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
1941
- readonly kind: "result";
1942
- } ? T_21 : never : never : never) ? T_20 extends {
1943
- readonly sqlType: infer TSqlType extends AnySqlType;
1944
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
1945
- readonly kind: "result";
1946
- } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
1947
- readonly kind: "result";
1948
- } ? T_24 : never : never : never) ? T_23 extends {
1949
- readonly sqlType: infer TSqlType extends AnySqlType;
1950
- } ? TSqlType : SqlUnknown : never : never>>)>, (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
1951
- readonly kind: "result";
1952
- } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
1953
- readonly kind: "result";
1954
- } ? T_27 : never : never : never) ? T_26 extends {
1955
- readonly sqlType: infer TSqlType extends AnySqlType;
1956
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
1957
- readonly kind: "result";
1958
- } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
1959
- readonly kind: "result";
1960
- } ? T_30 : never : never : never) ? T_29 extends {
1961
- readonly sqlType: infer TSqlType extends AnySqlType;
1962
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
1963
- readonly kind: "result";
1964
- } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
1965
- readonly kind: "result";
1966
- } ? T_33 : never : never : never) ? T_32 extends {
1967
- readonly sqlType: infer TSqlType extends AnySqlType;
1968
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
1969
- readonly kind: "result";
1970
- } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
1971
- readonly kind: "result";
1972
- } ? T_36 : never : never : never) ? T_35 extends {
1973
- readonly sqlType: infer TSqlType extends AnySqlType;
1974
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
1975
- readonly kind: "result";
1976
- } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
1977
- readonly kind: "result";
1978
- } ? T_40 : never : never : never) ? T_39 extends {
1979
- readonly sqlType: infer TSqlType extends AnySqlType;
1980
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
1981
- readonly kind: "result";
1982
- } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
1983
- readonly kind: "result";
1984
- } ? T_43 : never : never : never) ? T_42 extends {
1985
- readonly sqlType: infer TSqlType extends AnySqlType;
1986
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
1987
- readonly kind: "result";
1988
- } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
1989
- readonly kind: "result";
1990
- } ? T_46 : never : never : never) ? T_45 extends {
1991
- readonly sqlType: infer TSqlType extends AnySqlType;
1992
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
1993
- readonly kind: "result";
1994
- } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
1995
- readonly kind: "result";
1996
- } ? T_49 : never : never : never) ? T_48 extends {
1997
- readonly sqlType: infer TSqlType extends AnySqlType;
1998
- } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
1999
- readonly kind: "result";
2000
- } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2001
- readonly kind: "result";
2002
- } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2003
- readonly kind: "result";
2004
- } ? T_53 : never : never : never) ? T_52 extends {
2005
- readonly sqlType: infer TSqlType extends AnySqlType;
2006
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2007
- readonly kind: "result";
2008
- } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2009
- readonly kind: "result";
2010
- } ? T_56 : never : never : never) ? T_55 extends {
2011
- readonly sqlType: infer TSqlType extends AnySqlType;
2012
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2013
- readonly kind: "result";
2014
- } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2015
- readonly kind: "result";
2016
- } ? T_59 : never : never : never) ? T_58 extends {
2017
- readonly sqlType: infer TSqlType extends AnySqlType;
2018
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2019
- readonly kind: "result";
2020
- } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2021
- readonly kind: "result";
2022
- } ? T_62 : never : never : never) ? T_61 extends {
2023
- readonly sqlType: infer TSqlType extends AnySqlType;
2024
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2025
- readonly kind: "result";
2026
- } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2027
- readonly kind: "result";
2028
- } ? T_66 : never : never : never) ? T_65 extends {
2029
- readonly sqlType: infer TSqlType extends AnySqlType;
2030
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2031
- readonly kind: "result";
2032
- } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2033
- readonly kind: "result";
2034
- } ? T_69 : never : never : never) ? T_68 extends {
2035
- readonly sqlType: infer TSqlType extends AnySqlType;
2036
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2037
- readonly kind: "result";
2038
- } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2039
- readonly kind: "result";
2040
- } ? T_72 : never : never : never) ? T_71 extends {
2041
- readonly sqlType: infer TSqlType extends AnySqlType;
2042
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2043
- readonly kind: "result";
2044
- } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2045
- readonly kind: "result";
2046
- } ? T_75 : never : never : never) ? T_74 extends {
2047
- readonly sqlType: infer TSqlType extends AnySqlType;
2048
- } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2049
- readonly kind: "result";
2050
- } ? T_63 : never : never : never) ? T_50 extends {
2051
- readonly sqlType: infer TSqlType extends AnySqlType;
2052
- } ? TSqlType : SqlUnknown : never : never>;
2053
- declare const divide: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<unknown, R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
2054
- readonly kind: "result";
2055
- } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
2056
- readonly kind: "result";
2057
- } ? T_3 : never : never : never) ? T_2 extends {
2058
- readonly sqlType: infer TSqlType extends AnySqlType;
2059
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
2060
- readonly kind: "result";
2061
- } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
2062
- readonly kind: "result";
2063
- } ? T_6 : never : never : never) ? T_5 extends {
2064
- readonly sqlType: infer TSqlType extends AnySqlType;
2065
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
2066
- readonly kind: "result";
2067
- } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
2068
- readonly kind: "result";
2069
- } ? T_9 : never : never : never) ? T_8 extends {
2070
- readonly sqlType: infer TSqlType extends AnySqlType;
2071
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
2072
- readonly kind: "result";
2073
- } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
2074
- readonly kind: "result";
2075
- } ? T_12 : never : never : never) ? T_11 extends {
2076
- readonly sqlType: infer TSqlType extends AnySqlType;
2077
- } ? TSqlType : SqlUnknown : never : never>>), "operator", NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
2078
- readonly kind: "result";
2079
- } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
2080
- readonly kind: "result";
2081
- } ? T_15 : never : never : never) ? T_14 extends {
2082
- readonly sqlType: infer TSqlType extends AnySqlType;
2083
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
2084
- readonly kind: "result";
2085
- } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
2086
- readonly kind: "result";
2087
- } ? T_18 : never : never : never) ? T_17 extends {
2088
- readonly sqlType: infer TSqlType extends AnySqlType;
2089
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
2090
- readonly kind: "result";
2091
- } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
2092
- readonly kind: "result";
2093
- } ? T_21 : never : never : never) ? T_20 extends {
2094
- readonly sqlType: infer TSqlType extends AnySqlType;
2095
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
2096
- readonly kind: "result";
2097
- } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
2098
- readonly kind: "result";
2099
- } ? T_24 : never : never : never) ? T_23 extends {
2100
- readonly sqlType: infer TSqlType extends AnySqlType;
2101
- } ? TSqlType : SqlUnknown : never : never>>)>, (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
2102
- readonly kind: "result";
2103
- } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
2104
- readonly kind: "result";
2105
- } ? T_27 : never : never : never) ? T_26 extends {
2106
- readonly sqlType: infer TSqlType extends AnySqlType;
2107
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
2108
- readonly kind: "result";
2109
- } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
2110
- readonly kind: "result";
2111
- } ? T_30 : never : never : never) ? T_29 extends {
2112
- readonly sqlType: infer TSqlType extends AnySqlType;
2113
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2114
- readonly kind: "result";
2115
- } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2116
- readonly kind: "result";
2117
- } ? T_33 : never : never : never) ? T_32 extends {
2118
- readonly sqlType: infer TSqlType extends AnySqlType;
2119
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2120
- readonly kind: "result";
2121
- } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2122
- readonly kind: "result";
2123
- } ? T_36 : never : never : never) ? T_35 extends {
2124
- readonly sqlType: infer TSqlType extends AnySqlType;
2125
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2126
- readonly kind: "result";
2127
- } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2128
- readonly kind: "result";
2129
- } ? T_40 : never : never : never) ? T_39 extends {
2130
- readonly sqlType: infer TSqlType extends AnySqlType;
2131
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2132
- readonly kind: "result";
2133
- } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2134
- readonly kind: "result";
2135
- } ? T_43 : never : never : never) ? T_42 extends {
2136
- readonly sqlType: infer TSqlType extends AnySqlType;
2137
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2138
- readonly kind: "result";
2139
- } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2140
- readonly kind: "result";
2141
- } ? T_46 : never : never : never) ? T_45 extends {
2142
- readonly sqlType: infer TSqlType extends AnySqlType;
2143
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2144
- readonly kind: "result";
2145
- } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2146
- readonly kind: "result";
2147
- } ? T_49 : never : never : never) ? T_48 extends {
2148
- readonly sqlType: infer TSqlType extends AnySqlType;
2149
- } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2150
- readonly kind: "result";
2151
- } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2152
- readonly kind: "result";
2153
- } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2154
- readonly kind: "result";
2155
- } ? T_53 : never : never : never) ? T_52 extends {
2156
- readonly sqlType: infer TSqlType extends AnySqlType;
2157
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2158
- readonly kind: "result";
2159
- } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2160
- readonly kind: "result";
2161
- } ? T_56 : never : never : never) ? T_55 extends {
2162
- readonly sqlType: infer TSqlType extends AnySqlType;
2163
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2164
- readonly kind: "result";
2165
- } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2166
- readonly kind: "result";
2167
- } ? T_59 : never : never : never) ? T_58 extends {
2168
- readonly sqlType: infer TSqlType extends AnySqlType;
2169
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2170
- readonly kind: "result";
2171
- } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2172
- readonly kind: "result";
2173
- } ? T_62 : never : never : never) ? T_61 extends {
2174
- readonly sqlType: infer TSqlType extends AnySqlType;
2175
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2176
- readonly kind: "result";
2177
- } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2178
- readonly kind: "result";
2179
- } ? T_66 : never : never : never) ? T_65 extends {
2180
- readonly sqlType: infer TSqlType extends AnySqlType;
2181
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2182
- readonly kind: "result";
2183
- } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2184
- readonly kind: "result";
2185
- } ? T_69 : never : never : never) ? T_68 extends {
2186
- readonly sqlType: infer TSqlType extends AnySqlType;
2187
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2188
- readonly kind: "result";
2189
- } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2190
- readonly kind: "result";
2191
- } ? T_72 : never : never : never) ? T_71 extends {
2192
- readonly sqlType: infer TSqlType extends AnySqlType;
2193
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2194
- readonly kind: "result";
2195
- } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2196
- readonly kind: "result";
2197
- } ? T_75 : never : never : never) ? T_74 extends {
2198
- readonly sqlType: infer TSqlType extends AnySqlType;
2199
- } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2200
- readonly kind: "result";
2201
- } ? T_63 : never : never : never) ? T_50 extends {
2202
- readonly sqlType: infer TSqlType extends AnySqlType;
2203
- } ? TSqlType : SqlUnknown : never : never>;
2204
- declare const modulo: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<unknown, R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
2205
- readonly kind: "result";
2206
- } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
2207
- readonly kind: "result";
2208
- } ? T_3 : never : never : never) ? T_2 extends {
2209
- readonly sqlType: infer TSqlType extends AnySqlType;
2210
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
2211
- readonly kind: "result";
2212
- } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
2213
- readonly kind: "result";
2214
- } ? T_6 : never : never : never) ? T_5 extends {
2215
- readonly sqlType: infer TSqlType extends AnySqlType;
2216
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
2217
- readonly kind: "result";
2218
- } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
2219
- readonly kind: "result";
2220
- } ? T_9 : never : never : never) ? T_8 extends {
2221
- readonly sqlType: infer TSqlType extends AnySqlType;
2222
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
2223
- readonly kind: "result";
2224
- } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
2225
- readonly kind: "result";
2226
- } ? T_12 : never : never : never) ? T_11 extends {
2227
- readonly sqlType: infer TSqlType extends AnySqlType;
2228
- } ? TSqlType : SqlUnknown : never : never>>), "operator", NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
2229
- readonly kind: "result";
2230
- } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
2231
- readonly kind: "result";
2232
- } ? T_15 : never : never : never) ? T_14 extends {
2233
- readonly sqlType: infer TSqlType extends AnySqlType;
2234
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
2235
- readonly kind: "result";
2236
- } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
2237
- readonly kind: "result";
2238
- } ? T_18 : never : never : never) ? T_17 extends {
2239
- readonly sqlType: infer TSqlType extends AnySqlType;
2240
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
2241
- readonly kind: "result";
2242
- } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
2243
- readonly kind: "result";
2244
- } ? T_21 : never : never : never) ? T_20 extends {
2245
- readonly sqlType: infer TSqlType extends AnySqlType;
2246
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
2247
- readonly kind: "result";
2248
- } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
2249
- readonly kind: "result";
2250
- } ? T_24 : never : never : never) ? T_23 extends {
2251
- readonly sqlType: infer TSqlType extends AnySqlType;
2252
- } ? TSqlType : SqlUnknown : never : never>>)>, (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
2253
- readonly kind: "result";
2254
- } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
2255
- readonly kind: "result";
2256
- } ? T_27 : never : never : never) ? T_26 extends {
2257
- readonly sqlType: infer TSqlType extends AnySqlType;
2258
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
2259
- readonly kind: "result";
2260
- } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
2261
- readonly kind: "result";
2262
- } ? T_30 : never : never : never) ? T_29 extends {
2263
- readonly sqlType: infer TSqlType extends AnySqlType;
2264
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2265
- readonly kind: "result";
2266
- } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2267
- readonly kind: "result";
2268
- } ? T_33 : never : never : never) ? T_32 extends {
2269
- readonly sqlType: infer TSqlType extends AnySqlType;
2270
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2271
- readonly kind: "result";
2272
- } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2273
- readonly kind: "result";
2274
- } ? T_36 : never : never : never) ? T_35 extends {
2275
- readonly sqlType: infer TSqlType extends AnySqlType;
2276
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2277
- readonly kind: "result";
2278
- } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2279
- readonly kind: "result";
2280
- } ? T_40 : never : never : never) ? T_39 extends {
2281
- readonly sqlType: infer TSqlType extends AnySqlType;
2282
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2283
- readonly kind: "result";
2284
- } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2285
- readonly kind: "result";
2286
- } ? T_43 : never : never : never) ? T_42 extends {
2287
- readonly sqlType: infer TSqlType extends AnySqlType;
2288
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2289
- readonly kind: "result";
2290
- } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2291
- readonly kind: "result";
2292
- } ? T_46 : never : never : never) ? T_45 extends {
2293
- readonly sqlType: infer TSqlType extends AnySqlType;
2294
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2295
- readonly kind: "result";
2296
- } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2297
- readonly kind: "result";
2298
- } ? T_49 : never : never : never) ? T_48 extends {
2299
- readonly sqlType: infer TSqlType extends AnySqlType;
2300
- } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2301
- readonly kind: "result";
2302
- } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2303
- readonly kind: "result";
2304
- } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2305
- readonly kind: "result";
2306
- } ? T_53 : never : never : never) ? T_52 extends {
2307
- readonly sqlType: infer TSqlType extends AnySqlType;
2308
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2309
- readonly kind: "result";
2310
- } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2311
- readonly kind: "result";
2312
- } ? T_56 : never : never : never) ? T_55 extends {
2313
- readonly sqlType: infer TSqlType extends AnySqlType;
2314
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2315
- readonly kind: "result";
2316
- } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2317
- readonly kind: "result";
2318
- } ? T_59 : never : never : never) ? T_58 extends {
2319
- readonly sqlType: infer TSqlType extends AnySqlType;
2320
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2321
- readonly kind: "result";
2322
- } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2323
- readonly kind: "result";
2324
- } ? T_62 : never : never : never) ? T_61 extends {
2325
- readonly sqlType: infer TSqlType extends AnySqlType;
2326
- } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2327
- readonly kind: "result";
2328
- } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2329
- readonly kind: "result";
2330
- } ? T_66 : never : never : never) ? T_65 extends {
2331
- readonly sqlType: infer TSqlType extends AnySqlType;
2332
- } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2333
- readonly kind: "result";
2334
- } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2335
- readonly kind: "result";
2336
- } ? T_69 : never : never : never) ? T_68 extends {
2337
- readonly sqlType: infer TSqlType extends AnySqlType;
2338
- } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2339
- readonly kind: "result";
2340
- } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2341
- readonly kind: "result";
2342
- } ? T_72 : never : never : never) ? T_71 extends {
2343
- readonly sqlType: infer TSqlType extends AnySqlType;
2344
- } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2345
- readonly kind: "result";
2346
- } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2347
- readonly kind: "result";
2348
- } ? T_75 : never : never : never) ? T_74 extends {
2349
- readonly sqlType: infer TSqlType extends AnySqlType;
2350
- } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2351
- readonly kind: "result";
2352
- } ? T_63 : never : never : never) ? T_50 extends {
2353
- readonly sqlType: infer TSqlType extends AnySqlType;
2354
- } ? TSqlType : SqlUnknown : never : never>;
1934
+ declare const add: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<{
1935
+ readonly output: unknown;
1936
+ readonly children: R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
1937
+ readonly kind: "result";
1938
+ } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
1939
+ readonly kind: "result";
1940
+ } ? T_3 : never : never : never) ? T_2 extends {
1941
+ readonly sqlType: infer TSqlType extends AnySqlType;
1942
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
1943
+ readonly kind: "result";
1944
+ } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
1945
+ readonly kind: "result";
1946
+ } ? T_6 : never : never : never) ? T_5 extends {
1947
+ readonly sqlType: infer TSqlType extends AnySqlType;
1948
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
1949
+ readonly kind: "result";
1950
+ } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
1951
+ readonly kind: "result";
1952
+ } ? T_9 : never : never : never) ? T_8 extends {
1953
+ readonly sqlType: infer TSqlType extends AnySqlType;
1954
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
1955
+ readonly kind: "result";
1956
+ } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
1957
+ readonly kind: "result";
1958
+ } ? T_12 : never : never : never) ? T_11 extends {
1959
+ readonly sqlType: infer TSqlType extends AnySqlType;
1960
+ } ? TSqlType : SqlUnknown : never : never>>);
1961
+ readonly kind: "operator";
1962
+ readonly nullableFrom: NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
1963
+ readonly kind: "result";
1964
+ } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
1965
+ readonly kind: "result";
1966
+ } ? T_15 : never : never : never) ? T_14 extends {
1967
+ readonly sqlType: infer TSqlType extends AnySqlType;
1968
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
1969
+ readonly kind: "result";
1970
+ } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
1971
+ readonly kind: "result";
1972
+ } ? T_18 : never : never : never) ? T_17 extends {
1973
+ readonly sqlType: infer TSqlType extends AnySqlType;
1974
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
1975
+ readonly kind: "result";
1976
+ } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
1977
+ readonly kind: "result";
1978
+ } ? T_21 : never : never : never) ? T_20 extends {
1979
+ readonly sqlType: infer TSqlType extends AnySqlType;
1980
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
1981
+ readonly kind: "result";
1982
+ } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
1983
+ readonly kind: "result";
1984
+ } ? T_24 : never : never : never) ? T_23 extends {
1985
+ readonly sqlType: infer TSqlType extends AnySqlType;
1986
+ } ? TSqlType : SqlUnknown : never : never>>)>;
1987
+ readonly sqlType: (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
1988
+ readonly kind: "result";
1989
+ } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
1990
+ readonly kind: "result";
1991
+ } ? T_27 : never : never : never) ? T_26 extends {
1992
+ readonly sqlType: infer TSqlType extends AnySqlType;
1993
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
1994
+ readonly kind: "result";
1995
+ } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
1996
+ readonly kind: "result";
1997
+ } ? T_30 : never : never : never) ? T_29 extends {
1998
+ readonly sqlType: infer TSqlType extends AnySqlType;
1999
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2000
+ readonly kind: "result";
2001
+ } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2002
+ readonly kind: "result";
2003
+ } ? T_33 : never : never : never) ? T_32 extends {
2004
+ readonly sqlType: infer TSqlType extends AnySqlType;
2005
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2006
+ readonly kind: "result";
2007
+ } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2008
+ readonly kind: "result";
2009
+ } ? T_36 : never : never : never) ? T_35 extends {
2010
+ readonly sqlType: infer TSqlType extends AnySqlType;
2011
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2012
+ readonly kind: "result";
2013
+ } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2014
+ readonly kind: "result";
2015
+ } ? T_40 : never : never : never) ? T_39 extends {
2016
+ readonly sqlType: infer TSqlType extends AnySqlType;
2017
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2018
+ readonly kind: "result";
2019
+ } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2020
+ readonly kind: "result";
2021
+ } ? T_43 : never : never : never) ? T_42 extends {
2022
+ readonly sqlType: infer TSqlType extends AnySqlType;
2023
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2024
+ readonly kind: "result";
2025
+ } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2026
+ readonly kind: "result";
2027
+ } ? T_46 : never : never : never) ? T_45 extends {
2028
+ readonly sqlType: infer TSqlType extends AnySqlType;
2029
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2030
+ readonly kind: "result";
2031
+ } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2032
+ readonly kind: "result";
2033
+ } ? T_49 : never : never : never) ? T_48 extends {
2034
+ readonly sqlType: infer TSqlType extends AnySqlType;
2035
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2036
+ readonly kind: "result";
2037
+ } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2038
+ readonly kind: "result";
2039
+ } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2040
+ readonly kind: "result";
2041
+ } ? T_53 : never : never : never) ? T_52 extends {
2042
+ readonly sqlType: infer TSqlType extends AnySqlType;
2043
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2044
+ readonly kind: "result";
2045
+ } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2046
+ readonly kind: "result";
2047
+ } ? T_56 : never : never : never) ? T_55 extends {
2048
+ readonly sqlType: infer TSqlType extends AnySqlType;
2049
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2050
+ readonly kind: "result";
2051
+ } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2052
+ readonly kind: "result";
2053
+ } ? T_59 : never : never : never) ? T_58 extends {
2054
+ readonly sqlType: infer TSqlType extends AnySqlType;
2055
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2056
+ readonly kind: "result";
2057
+ } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2058
+ readonly kind: "result";
2059
+ } ? T_62 : never : never : never) ? T_61 extends {
2060
+ readonly sqlType: infer TSqlType extends AnySqlType;
2061
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2062
+ readonly kind: "result";
2063
+ } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2064
+ readonly kind: "result";
2065
+ } ? T_66 : never : never : never) ? T_65 extends {
2066
+ readonly sqlType: infer TSqlType extends AnySqlType;
2067
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2068
+ readonly kind: "result";
2069
+ } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2070
+ readonly kind: "result";
2071
+ } ? T_69 : never : never : never) ? T_68 extends {
2072
+ readonly sqlType: infer TSqlType extends AnySqlType;
2073
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2074
+ readonly kind: "result";
2075
+ } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2076
+ readonly kind: "result";
2077
+ } ? T_72 : never : never : never) ? T_71 extends {
2078
+ readonly sqlType: infer TSqlType extends AnySqlType;
2079
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2080
+ readonly kind: "result";
2081
+ } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2082
+ readonly kind: "result";
2083
+ } ? T_75 : never : never : never) ? T_74 extends {
2084
+ readonly sqlType: infer TSqlType extends AnySqlType;
2085
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2086
+ readonly kind: "result";
2087
+ } ? T_63 : never : never : never) ? T_50 extends {
2088
+ readonly sqlType: infer TSqlType extends AnySqlType;
2089
+ } ? TSqlType : SqlUnknown : never : never;
2090
+ }>;
2091
+ declare const subtract: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<{
2092
+ readonly output: unknown;
2093
+ readonly children: R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
2094
+ readonly kind: "result";
2095
+ } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
2096
+ readonly kind: "result";
2097
+ } ? T_3 : never : never : never) ? T_2 extends {
2098
+ readonly sqlType: infer TSqlType extends AnySqlType;
2099
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
2100
+ readonly kind: "result";
2101
+ } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
2102
+ readonly kind: "result";
2103
+ } ? T_6 : never : never : never) ? T_5 extends {
2104
+ readonly sqlType: infer TSqlType extends AnySqlType;
2105
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
2106
+ readonly kind: "result";
2107
+ } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
2108
+ readonly kind: "result";
2109
+ } ? T_9 : never : never : never) ? T_8 extends {
2110
+ readonly sqlType: infer TSqlType extends AnySqlType;
2111
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
2112
+ readonly kind: "result";
2113
+ } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
2114
+ readonly kind: "result";
2115
+ } ? T_12 : never : never : never) ? T_11 extends {
2116
+ readonly sqlType: infer TSqlType extends AnySqlType;
2117
+ } ? TSqlType : SqlUnknown : never : never>>);
2118
+ readonly kind: "operator";
2119
+ readonly nullableFrom: NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
2120
+ readonly kind: "result";
2121
+ } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
2122
+ readonly kind: "result";
2123
+ } ? T_15 : never : never : never) ? T_14 extends {
2124
+ readonly sqlType: infer TSqlType extends AnySqlType;
2125
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
2126
+ readonly kind: "result";
2127
+ } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
2128
+ readonly kind: "result";
2129
+ } ? T_18 : never : never : never) ? T_17 extends {
2130
+ readonly sqlType: infer TSqlType extends AnySqlType;
2131
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
2132
+ readonly kind: "result";
2133
+ } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
2134
+ readonly kind: "result";
2135
+ } ? T_21 : never : never : never) ? T_20 extends {
2136
+ readonly sqlType: infer TSqlType extends AnySqlType;
2137
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
2138
+ readonly kind: "result";
2139
+ } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
2140
+ readonly kind: "result";
2141
+ } ? T_24 : never : never : never) ? T_23 extends {
2142
+ readonly sqlType: infer TSqlType extends AnySqlType;
2143
+ } ? TSqlType : SqlUnknown : never : never>>)>;
2144
+ readonly sqlType: (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
2145
+ readonly kind: "result";
2146
+ } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
2147
+ readonly kind: "result";
2148
+ } ? T_27 : never : never : never) ? T_26 extends {
2149
+ readonly sqlType: infer TSqlType extends AnySqlType;
2150
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
2151
+ readonly kind: "result";
2152
+ } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
2153
+ readonly kind: "result";
2154
+ } ? T_30 : never : never : never) ? T_29 extends {
2155
+ readonly sqlType: infer TSqlType extends AnySqlType;
2156
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2157
+ readonly kind: "result";
2158
+ } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2159
+ readonly kind: "result";
2160
+ } ? T_33 : never : never : never) ? T_32 extends {
2161
+ readonly sqlType: infer TSqlType extends AnySqlType;
2162
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2163
+ readonly kind: "result";
2164
+ } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2165
+ readonly kind: "result";
2166
+ } ? T_36 : never : never : never) ? T_35 extends {
2167
+ readonly sqlType: infer TSqlType extends AnySqlType;
2168
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2169
+ readonly kind: "result";
2170
+ } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2171
+ readonly kind: "result";
2172
+ } ? T_40 : never : never : never) ? T_39 extends {
2173
+ readonly sqlType: infer TSqlType extends AnySqlType;
2174
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2175
+ readonly kind: "result";
2176
+ } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2177
+ readonly kind: "result";
2178
+ } ? T_43 : never : never : never) ? T_42 extends {
2179
+ readonly sqlType: infer TSqlType extends AnySqlType;
2180
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2181
+ readonly kind: "result";
2182
+ } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2183
+ readonly kind: "result";
2184
+ } ? T_46 : never : never : never) ? T_45 extends {
2185
+ readonly sqlType: infer TSqlType extends AnySqlType;
2186
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2187
+ readonly kind: "result";
2188
+ } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2189
+ readonly kind: "result";
2190
+ } ? T_49 : never : never : never) ? T_48 extends {
2191
+ readonly sqlType: infer TSqlType extends AnySqlType;
2192
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2193
+ readonly kind: "result";
2194
+ } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2195
+ readonly kind: "result";
2196
+ } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2197
+ readonly kind: "result";
2198
+ } ? T_53 : never : never : never) ? T_52 extends {
2199
+ readonly sqlType: infer TSqlType extends AnySqlType;
2200
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2201
+ readonly kind: "result";
2202
+ } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2203
+ readonly kind: "result";
2204
+ } ? T_56 : never : never : never) ? T_55 extends {
2205
+ readonly sqlType: infer TSqlType extends AnySqlType;
2206
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2207
+ readonly kind: "result";
2208
+ } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2209
+ readonly kind: "result";
2210
+ } ? T_59 : never : never : never) ? T_58 extends {
2211
+ readonly sqlType: infer TSqlType extends AnySqlType;
2212
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2213
+ readonly kind: "result";
2214
+ } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2215
+ readonly kind: "result";
2216
+ } ? T_62 : never : never : never) ? T_61 extends {
2217
+ readonly sqlType: infer TSqlType extends AnySqlType;
2218
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2219
+ readonly kind: "result";
2220
+ } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2221
+ readonly kind: "result";
2222
+ } ? T_66 : never : never : never) ? T_65 extends {
2223
+ readonly sqlType: infer TSqlType extends AnySqlType;
2224
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2225
+ readonly kind: "result";
2226
+ } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2227
+ readonly kind: "result";
2228
+ } ? T_69 : never : never : never) ? T_68 extends {
2229
+ readonly sqlType: infer TSqlType extends AnySqlType;
2230
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2231
+ readonly kind: "result";
2232
+ } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2233
+ readonly kind: "result";
2234
+ } ? T_72 : never : never : never) ? T_71 extends {
2235
+ readonly sqlType: infer TSqlType extends AnySqlType;
2236
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2237
+ readonly kind: "result";
2238
+ } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2239
+ readonly kind: "result";
2240
+ } ? T_75 : never : never : never) ? T_74 extends {
2241
+ readonly sqlType: infer TSqlType extends AnySqlType;
2242
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2243
+ readonly kind: "result";
2244
+ } ? T_63 : never : never : never) ? T_50 extends {
2245
+ readonly sqlType: infer TSqlType extends AnySqlType;
2246
+ } ? TSqlType : SqlUnknown : never : never;
2247
+ }>;
2248
+ declare const multiply: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<{
2249
+ readonly output: unknown;
2250
+ readonly children: R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
2251
+ readonly kind: "result";
2252
+ } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
2253
+ readonly kind: "result";
2254
+ } ? T_3 : never : never : never) ? T_2 extends {
2255
+ readonly sqlType: infer TSqlType extends AnySqlType;
2256
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
2257
+ readonly kind: "result";
2258
+ } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
2259
+ readonly kind: "result";
2260
+ } ? T_6 : never : never : never) ? T_5 extends {
2261
+ readonly sqlType: infer TSqlType extends AnySqlType;
2262
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
2263
+ readonly kind: "result";
2264
+ } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
2265
+ readonly kind: "result";
2266
+ } ? T_9 : never : never : never) ? T_8 extends {
2267
+ readonly sqlType: infer TSqlType extends AnySqlType;
2268
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
2269
+ readonly kind: "result";
2270
+ } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
2271
+ readonly kind: "result";
2272
+ } ? T_12 : never : never : never) ? T_11 extends {
2273
+ readonly sqlType: infer TSqlType extends AnySqlType;
2274
+ } ? TSqlType : SqlUnknown : never : never>>);
2275
+ readonly kind: "operator";
2276
+ readonly nullableFrom: NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
2277
+ readonly kind: "result";
2278
+ } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
2279
+ readonly kind: "result";
2280
+ } ? T_15 : never : never : never) ? T_14 extends {
2281
+ readonly sqlType: infer TSqlType extends AnySqlType;
2282
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
2283
+ readonly kind: "result";
2284
+ } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
2285
+ readonly kind: "result";
2286
+ } ? T_18 : never : never : never) ? T_17 extends {
2287
+ readonly sqlType: infer TSqlType extends AnySqlType;
2288
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
2289
+ readonly kind: "result";
2290
+ } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
2291
+ readonly kind: "result";
2292
+ } ? T_21 : never : never : never) ? T_20 extends {
2293
+ readonly sqlType: infer TSqlType extends AnySqlType;
2294
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
2295
+ readonly kind: "result";
2296
+ } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
2297
+ readonly kind: "result";
2298
+ } ? T_24 : never : never : never) ? T_23 extends {
2299
+ readonly sqlType: infer TSqlType extends AnySqlType;
2300
+ } ? TSqlType : SqlUnknown : never : never>>)>;
2301
+ readonly sqlType: (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
2302
+ readonly kind: "result";
2303
+ } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
2304
+ readonly kind: "result";
2305
+ } ? T_27 : never : never : never) ? T_26 extends {
2306
+ readonly sqlType: infer TSqlType extends AnySqlType;
2307
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
2308
+ readonly kind: "result";
2309
+ } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
2310
+ readonly kind: "result";
2311
+ } ? T_30 : never : never : never) ? T_29 extends {
2312
+ readonly sqlType: infer TSqlType extends AnySqlType;
2313
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2314
+ readonly kind: "result";
2315
+ } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2316
+ readonly kind: "result";
2317
+ } ? T_33 : never : never : never) ? T_32 extends {
2318
+ readonly sqlType: infer TSqlType extends AnySqlType;
2319
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2320
+ readonly kind: "result";
2321
+ } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2322
+ readonly kind: "result";
2323
+ } ? T_36 : never : never : never) ? T_35 extends {
2324
+ readonly sqlType: infer TSqlType extends AnySqlType;
2325
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2326
+ readonly kind: "result";
2327
+ } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2328
+ readonly kind: "result";
2329
+ } ? T_40 : never : never : never) ? T_39 extends {
2330
+ readonly sqlType: infer TSqlType extends AnySqlType;
2331
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2332
+ readonly kind: "result";
2333
+ } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2334
+ readonly kind: "result";
2335
+ } ? T_43 : never : never : never) ? T_42 extends {
2336
+ readonly sqlType: infer TSqlType extends AnySqlType;
2337
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2338
+ readonly kind: "result";
2339
+ } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2340
+ readonly kind: "result";
2341
+ } ? T_46 : never : never : never) ? T_45 extends {
2342
+ readonly sqlType: infer TSqlType extends AnySqlType;
2343
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2344
+ readonly kind: "result";
2345
+ } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2346
+ readonly kind: "result";
2347
+ } ? T_49 : never : never : never) ? T_48 extends {
2348
+ readonly sqlType: infer TSqlType extends AnySqlType;
2349
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2350
+ readonly kind: "result";
2351
+ } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2352
+ readonly kind: "result";
2353
+ } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2354
+ readonly kind: "result";
2355
+ } ? T_53 : never : never : never) ? T_52 extends {
2356
+ readonly sqlType: infer TSqlType extends AnySqlType;
2357
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2358
+ readonly kind: "result";
2359
+ } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2360
+ readonly kind: "result";
2361
+ } ? T_56 : never : never : never) ? T_55 extends {
2362
+ readonly sqlType: infer TSqlType extends AnySqlType;
2363
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2364
+ readonly kind: "result";
2365
+ } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2366
+ readonly kind: "result";
2367
+ } ? T_59 : never : never : never) ? T_58 extends {
2368
+ readonly sqlType: infer TSqlType extends AnySqlType;
2369
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2370
+ readonly kind: "result";
2371
+ } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2372
+ readonly kind: "result";
2373
+ } ? T_62 : never : never : never) ? T_61 extends {
2374
+ readonly sqlType: infer TSqlType extends AnySqlType;
2375
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2376
+ readonly kind: "result";
2377
+ } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2378
+ readonly kind: "result";
2379
+ } ? T_66 : never : never : never) ? T_65 extends {
2380
+ readonly sqlType: infer TSqlType extends AnySqlType;
2381
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2382
+ readonly kind: "result";
2383
+ } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2384
+ readonly kind: "result";
2385
+ } ? T_69 : never : never : never) ? T_68 extends {
2386
+ readonly sqlType: infer TSqlType extends AnySqlType;
2387
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2388
+ readonly kind: "result";
2389
+ } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2390
+ readonly kind: "result";
2391
+ } ? T_72 : never : never : never) ? T_71 extends {
2392
+ readonly sqlType: infer TSqlType extends AnySqlType;
2393
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2394
+ readonly kind: "result";
2395
+ } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2396
+ readonly kind: "result";
2397
+ } ? T_75 : never : never : never) ? T_74 extends {
2398
+ readonly sqlType: infer TSqlType extends AnySqlType;
2399
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2400
+ readonly kind: "result";
2401
+ } ? T_63 : never : never : never) ? T_50 extends {
2402
+ readonly sqlType: infer TSqlType extends AnySqlType;
2403
+ } ? TSqlType : SqlUnknown : never : never;
2404
+ }>;
2405
+ declare const divide: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<{
2406
+ readonly output: unknown;
2407
+ readonly children: R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
2408
+ readonly kind: "result";
2409
+ } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
2410
+ readonly kind: "result";
2411
+ } ? T_3 : never : never : never) ? T_2 extends {
2412
+ readonly sqlType: infer TSqlType extends AnySqlType;
2413
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
2414
+ readonly kind: "result";
2415
+ } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
2416
+ readonly kind: "result";
2417
+ } ? T_6 : never : never : never) ? T_5 extends {
2418
+ readonly sqlType: infer TSqlType extends AnySqlType;
2419
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
2420
+ readonly kind: "result";
2421
+ } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
2422
+ readonly kind: "result";
2423
+ } ? T_9 : never : never : never) ? T_8 extends {
2424
+ readonly sqlType: infer TSqlType extends AnySqlType;
2425
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
2426
+ readonly kind: "result";
2427
+ } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
2428
+ readonly kind: "result";
2429
+ } ? T_12 : never : never : never) ? T_11 extends {
2430
+ readonly sqlType: infer TSqlType extends AnySqlType;
2431
+ } ? TSqlType : SqlUnknown : never : never>>);
2432
+ readonly kind: "operator";
2433
+ readonly nullableFrom: NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
2434
+ readonly kind: "result";
2435
+ } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
2436
+ readonly kind: "result";
2437
+ } ? T_15 : never : never : never) ? T_14 extends {
2438
+ readonly sqlType: infer TSqlType extends AnySqlType;
2439
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
2440
+ readonly kind: "result";
2441
+ } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
2442
+ readonly kind: "result";
2443
+ } ? T_18 : never : never : never) ? T_17 extends {
2444
+ readonly sqlType: infer TSqlType extends AnySqlType;
2445
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
2446
+ readonly kind: "result";
2447
+ } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
2448
+ readonly kind: "result";
2449
+ } ? T_21 : never : never : never) ? T_20 extends {
2450
+ readonly sqlType: infer TSqlType extends AnySqlType;
2451
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
2452
+ readonly kind: "result";
2453
+ } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
2454
+ readonly kind: "result";
2455
+ } ? T_24 : never : never : never) ? T_23 extends {
2456
+ readonly sqlType: infer TSqlType extends AnySqlType;
2457
+ } ? TSqlType : SqlUnknown : never : never>>)>;
2458
+ readonly sqlType: (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
2459
+ readonly kind: "result";
2460
+ } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
2461
+ readonly kind: "result";
2462
+ } ? T_27 : never : never : never) ? T_26 extends {
2463
+ readonly sqlType: infer TSqlType extends AnySqlType;
2464
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
2465
+ readonly kind: "result";
2466
+ } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
2467
+ readonly kind: "result";
2468
+ } ? T_30 : never : never : never) ? T_29 extends {
2469
+ readonly sqlType: infer TSqlType extends AnySqlType;
2470
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2471
+ readonly kind: "result";
2472
+ } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2473
+ readonly kind: "result";
2474
+ } ? T_33 : never : never : never) ? T_32 extends {
2475
+ readonly sqlType: infer TSqlType extends AnySqlType;
2476
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2477
+ readonly kind: "result";
2478
+ } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2479
+ readonly kind: "result";
2480
+ } ? T_36 : never : never : never) ? T_35 extends {
2481
+ readonly sqlType: infer TSqlType extends AnySqlType;
2482
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2483
+ readonly kind: "result";
2484
+ } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2485
+ readonly kind: "result";
2486
+ } ? T_40 : never : never : never) ? T_39 extends {
2487
+ readonly sqlType: infer TSqlType extends AnySqlType;
2488
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2489
+ readonly kind: "result";
2490
+ } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2491
+ readonly kind: "result";
2492
+ } ? T_43 : never : never : never) ? T_42 extends {
2493
+ readonly sqlType: infer TSqlType extends AnySqlType;
2494
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2495
+ readonly kind: "result";
2496
+ } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2497
+ readonly kind: "result";
2498
+ } ? T_46 : never : never : never) ? T_45 extends {
2499
+ readonly sqlType: infer TSqlType extends AnySqlType;
2500
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2501
+ readonly kind: "result";
2502
+ } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2503
+ readonly kind: "result";
2504
+ } ? T_49 : never : never : never) ? T_48 extends {
2505
+ readonly sqlType: infer TSqlType extends AnySqlType;
2506
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2507
+ readonly kind: "result";
2508
+ } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2509
+ readonly kind: "result";
2510
+ } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2511
+ readonly kind: "result";
2512
+ } ? T_53 : never : never : never) ? T_52 extends {
2513
+ readonly sqlType: infer TSqlType extends AnySqlType;
2514
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2515
+ readonly kind: "result";
2516
+ } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2517
+ readonly kind: "result";
2518
+ } ? T_56 : never : never : never) ? T_55 extends {
2519
+ readonly sqlType: infer TSqlType extends AnySqlType;
2520
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2521
+ readonly kind: "result";
2522
+ } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2523
+ readonly kind: "result";
2524
+ } ? T_59 : never : never : never) ? T_58 extends {
2525
+ readonly sqlType: infer TSqlType extends AnySqlType;
2526
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2527
+ readonly kind: "result";
2528
+ } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2529
+ readonly kind: "result";
2530
+ } ? T_62 : never : never : never) ? T_61 extends {
2531
+ readonly sqlType: infer TSqlType extends AnySqlType;
2532
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2533
+ readonly kind: "result";
2534
+ } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2535
+ readonly kind: "result";
2536
+ } ? T_66 : never : never : never) ? T_65 extends {
2537
+ readonly sqlType: infer TSqlType extends AnySqlType;
2538
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2539
+ readonly kind: "result";
2540
+ } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2541
+ readonly kind: "result";
2542
+ } ? T_69 : never : never : never) ? T_68 extends {
2543
+ readonly sqlType: infer TSqlType extends AnySqlType;
2544
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2545
+ readonly kind: "result";
2546
+ } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2547
+ readonly kind: "result";
2548
+ } ? T_72 : never : never : never) ? T_71 extends {
2549
+ readonly sqlType: infer TSqlType extends AnySqlType;
2550
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2551
+ readonly kind: "result";
2552
+ } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2553
+ readonly kind: "result";
2554
+ } ? T_75 : never : never : never) ? T_74 extends {
2555
+ readonly sqlType: infer TSqlType extends AnySqlType;
2556
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2557
+ readonly kind: "result";
2558
+ } ? T_63 : never : never : never) ? T_50 extends {
2559
+ readonly sqlType: infer TSqlType extends AnySqlType;
2560
+ } ? TSqlType : SqlUnknown : never : never;
2561
+ }>;
2562
+ declare const modulo: <T, TLeft extends ExpressionWithOutput<T>, R extends Operand<NoInfer<T>>>(left: TLeft & ArithmeticValidation<TLeft, R>, right: R) => ResultExpression<{
2563
+ readonly output: unknown;
2564
+ readonly children: R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_1) ? T_1 extends MetadataOf<TLeft> ? T_1 extends {
2565
+ readonly kind: "result";
2566
+ } ? T_1 : never : never : never) extends (infer T_2) ? T_2 extends (MetadataOf<TLeft> extends (infer T_3) ? T_3 extends MetadataOf<TLeft> ? T_3 extends {
2567
+ readonly kind: "result";
2568
+ } ? T_3 : never : never : never) ? T_2 extends {
2569
+ readonly sqlType: infer TSqlType extends AnySqlType;
2570
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_4) ? T_4 extends MetadataOf<TLeft> ? T_4 extends {
2571
+ readonly kind: "result";
2572
+ } ? T_4 : never : never : never) extends (infer T_5) ? T_5 extends (MetadataOf<TLeft> extends (infer T_6) ? T_6 extends MetadataOf<TLeft> ? T_6 extends {
2573
+ readonly kind: "result";
2574
+ } ? T_6 : never : never : never) ? T_5 extends {
2575
+ readonly sqlType: infer TSqlType extends AnySqlType;
2576
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_7) ? T_7 extends MetadataOf<TLeft> ? T_7 extends {
2577
+ readonly kind: "result";
2578
+ } ? T_7 : never : never : never) extends (infer T_8) ? T_8 extends (MetadataOf<TLeft> extends (infer T_9) ? T_9 extends MetadataOf<TLeft> ? T_9 extends {
2579
+ readonly kind: "result";
2580
+ } ? T_9 : never : never : never) ? T_8 extends {
2581
+ readonly sqlType: infer TSqlType extends AnySqlType;
2582
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_10) ? T_10 extends MetadataOf<TLeft> ? T_10 extends {
2583
+ readonly kind: "result";
2584
+ } ? T_10 : never : never : never) extends (infer T_11) ? T_11 extends (MetadataOf<TLeft> extends (infer T_12) ? T_12 extends MetadataOf<TLeft> ? T_12 extends {
2585
+ readonly kind: "result";
2586
+ } ? T_12 : never : never : never) ? T_11 extends {
2587
+ readonly sqlType: infer TSqlType extends AnySqlType;
2588
+ } ? TSqlType : SqlUnknown : never : never>>);
2589
+ readonly kind: "operator";
2590
+ readonly nullableFrom: NullabilityOf<R | (TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_13) ? T_13 extends MetadataOf<TLeft> ? T_13 extends {
2591
+ readonly kind: "result";
2592
+ } ? T_13 : never : never : never) extends (infer T_14) ? T_14 extends (MetadataOf<TLeft> extends (infer T_15) ? T_15 extends MetadataOf<TLeft> ? T_15 extends {
2593
+ readonly kind: "result";
2594
+ } ? T_15 : never : never : never) ? T_14 extends {
2595
+ readonly sqlType: infer TSqlType extends AnySqlType;
2596
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_16) ? T_16 extends MetadataOf<TLeft> ? T_16 extends {
2597
+ readonly kind: "result";
2598
+ } ? T_16 : never : never : never) extends (infer T_17) ? T_17 extends (MetadataOf<TLeft> extends (infer T_18) ? T_18 extends MetadataOf<TLeft> ? T_18 extends {
2599
+ readonly kind: "result";
2600
+ } ? T_18 : never : never : never) ? T_17 extends {
2601
+ readonly sqlType: infer TSqlType extends AnySqlType;
2602
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_19) ? T_19 extends MetadataOf<TLeft> ? T_19 extends {
2603
+ readonly kind: "result";
2604
+ } ? T_19 : never : never : never) extends (infer T_20) ? T_20 extends (MetadataOf<TLeft> extends (infer T_21) ? T_21 extends MetadataOf<TLeft> ? T_21 extends {
2605
+ readonly kind: "result";
2606
+ } ? T_21 : never : never : never) ? T_20 extends {
2607
+ readonly sqlType: infer TSqlType extends AnySqlType;
2608
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_22) ? T_22 extends MetadataOf<TLeft> ? T_22 extends {
2609
+ readonly kind: "result";
2610
+ } ? T_22 : never : never : never) extends (infer T_23) ? T_23 extends (MetadataOf<TLeft> extends (infer T_24) ? T_24 extends MetadataOf<TLeft> ? T_24 extends {
2611
+ readonly kind: "result";
2612
+ } ? T_24 : never : never : never) ? T_23 extends {
2613
+ readonly sqlType: infer TSqlType extends AnySqlType;
2614
+ } ? TSqlType : SqlUnknown : never : never>>)>;
2615
+ readonly sqlType: (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_25) ? T_25 extends MetadataOf<TLeft> ? T_25 extends {
2616
+ readonly kind: "result";
2617
+ } ? T_25 : never : never : never) extends (infer T_26) ? T_26 extends (MetadataOf<TLeft> extends (infer T_27) ? T_27 extends MetadataOf<TLeft> ? T_27 extends {
2618
+ readonly kind: "result";
2619
+ } ? T_27 : never : never : never) ? T_26 extends {
2620
+ readonly sqlType: infer TSqlType extends AnySqlType;
2621
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_28) ? T_28 extends MetadataOf<TLeft> ? T_28 extends {
2622
+ readonly kind: "result";
2623
+ } ? T_28 : never : never : never) extends (infer T_29) ? T_29 extends (MetadataOf<TLeft> extends (infer T_30) ? T_30 extends MetadataOf<TLeft> ? T_30 extends {
2624
+ readonly kind: "result";
2625
+ } ? T_30 : never : never : never) ? T_29 extends {
2626
+ readonly sqlType: infer TSqlType extends AnySqlType;
2627
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_31) ? T_31 extends MetadataOf<TLeft> ? T_31 extends {
2628
+ readonly kind: "result";
2629
+ } ? T_31 : never : never : never) extends (infer T_32) ? T_32 extends (MetadataOf<TLeft> extends (infer T_33) ? T_33 extends MetadataOf<TLeft> ? T_33 extends {
2630
+ readonly kind: "result";
2631
+ } ? T_33 : never : never : never) ? T_32 extends {
2632
+ readonly sqlType: infer TSqlType extends AnySqlType;
2633
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_34) ? T_34 extends MetadataOf<TLeft> ? T_34 extends {
2634
+ readonly kind: "result";
2635
+ } ? T_34 : never : never : never) extends (infer T_35) ? T_35 extends (MetadataOf<TLeft> extends (infer T_36) ? T_36 extends MetadataOf<TLeft> ? T_36 extends {
2636
+ readonly kind: "result";
2637
+ } ? T_36 : never : never : never) ? T_35 extends {
2638
+ readonly sqlType: infer TSqlType extends AnySqlType;
2639
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_37) ? T_37 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_38) ? T_38 extends MetadataOf<TLeft> ? T_38 extends {
2640
+ readonly kind: "result";
2641
+ } ? T_38 : never : never : never) extends (infer T_39) ? T_39 extends (MetadataOf<TLeft> extends (infer T_40) ? T_40 extends MetadataOf<TLeft> ? T_40 extends {
2642
+ readonly kind: "result";
2643
+ } ? T_40 : never : never : never) ? T_39 extends {
2644
+ readonly sqlType: infer TSqlType extends AnySqlType;
2645
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_41) ? T_41 extends MetadataOf<TLeft> ? T_41 extends {
2646
+ readonly kind: "result";
2647
+ } ? T_41 : never : never : never) extends (infer T_42) ? T_42 extends (MetadataOf<TLeft> extends (infer T_43) ? T_43 extends MetadataOf<TLeft> ? T_43 extends {
2648
+ readonly kind: "result";
2649
+ } ? T_43 : never : never : never) ? T_42 extends {
2650
+ readonly sqlType: infer TSqlType extends AnySqlType;
2651
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_44) ? T_44 extends MetadataOf<TLeft> ? T_44 extends {
2652
+ readonly kind: "result";
2653
+ } ? T_44 : never : never : never) extends (infer T_45) ? T_45 extends (MetadataOf<TLeft> extends (infer T_46) ? T_46 extends MetadataOf<TLeft> ? T_46 extends {
2654
+ readonly kind: "result";
2655
+ } ? T_46 : never : never : never) ? T_45 extends {
2656
+ readonly sqlType: infer TSqlType extends AnySqlType;
2657
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_47) ? T_47 extends MetadataOf<TLeft> ? T_47 extends {
2658
+ readonly kind: "result";
2659
+ } ? T_47 : never : never : never) extends (infer T_48) ? T_48 extends (MetadataOf<TLeft> extends (infer T_49) ? T_49 extends MetadataOf<TLeft> ? T_49 extends {
2660
+ readonly kind: "result";
2661
+ } ? T_49 : never : never : never) ? T_48 extends {
2662
+ readonly sqlType: infer TSqlType extends AnySqlType;
2663
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_37 extends {
2664
+ readonly kind: "result";
2665
+ } ? T_37 : never : never : never) extends (infer T_50) ? T_50 extends (MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_51) ? T_51 extends MetadataOf<TLeft> ? T_51 extends {
2666
+ readonly kind: "result";
2667
+ } ? T_51 : never : never : never) extends (infer T_52) ? T_52 extends (MetadataOf<TLeft> extends (infer T_53) ? T_53 extends MetadataOf<TLeft> ? T_53 extends {
2668
+ readonly kind: "result";
2669
+ } ? T_53 : never : never : never) ? T_52 extends {
2670
+ readonly sqlType: infer TSqlType extends AnySqlType;
2671
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_54) ? T_54 extends MetadataOf<TLeft> ? T_54 extends {
2672
+ readonly kind: "result";
2673
+ } ? T_54 : never : never : never) extends (infer T_55) ? T_55 extends (MetadataOf<TLeft> extends (infer T_56) ? T_56 extends MetadataOf<TLeft> ? T_56 extends {
2674
+ readonly kind: "result";
2675
+ } ? T_56 : never : never : never) ? T_55 extends {
2676
+ readonly sqlType: infer TSqlType extends AnySqlType;
2677
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_57) ? T_57 extends MetadataOf<TLeft> ? T_57 extends {
2678
+ readonly kind: "result";
2679
+ } ? T_57 : never : never : never) extends (infer T_58) ? T_58 extends (MetadataOf<TLeft> extends (infer T_59) ? T_59 extends MetadataOf<TLeft> ? T_59 extends {
2680
+ readonly kind: "result";
2681
+ } ? T_59 : never : never : never) ? T_58 extends {
2682
+ readonly sqlType: infer TSqlType extends AnySqlType;
2683
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_60) ? T_60 extends MetadataOf<TLeft> ? T_60 extends {
2684
+ readonly kind: "result";
2685
+ } ? T_60 : never : never : never) extends (infer T_61) ? T_61 extends (MetadataOf<TLeft> extends (infer T_62) ? T_62 extends MetadataOf<TLeft> ? T_62 extends {
2686
+ readonly kind: "result";
2687
+ } ? T_62 : never : never : never) ? T_61 extends {
2688
+ readonly sqlType: infer TSqlType extends AnySqlType;
2689
+ } ? TSqlType : SqlUnknown : never : never>>> extends (infer T_63) ? T_63 extends MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T_64) ? T_64 extends MetadataOf<TLeft> ? T_64 extends {
2690
+ readonly kind: "result";
2691
+ } ? T_64 : never : never : never) extends (infer T_65) ? T_65 extends (MetadataOf<TLeft> extends (infer T_66) ? T_66 extends MetadataOf<TLeft> ? T_66 extends {
2692
+ readonly kind: "result";
2693
+ } ? T_66 : never : never : never) ? T_65 extends {
2694
+ readonly sqlType: infer TSqlType extends AnySqlType;
2695
+ } ? TSqlType : SqlUnknown : never : never, SqlNumericLike> & SqlCapabilityValidation<OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_67) ? T_67 extends MetadataOf<TLeft> ? T_67 extends {
2696
+ readonly kind: "result";
2697
+ } ? T_67 : never : never : never) extends (infer T_68) ? T_68 extends (MetadataOf<TLeft> extends (infer T_69) ? T_69 extends MetadataOf<TLeft> ? T_69 extends {
2698
+ readonly kind: "result";
2699
+ } ? T_69 : never : never : never) ? T_68 extends {
2700
+ readonly sqlType: infer TSqlType extends AnySqlType;
2701
+ } ? TSqlType : SqlUnknown : never : never>, SqlNumericLike> & SqlOrderValidation<(MetadataOf<TLeft> extends (infer T_70) ? T_70 extends MetadataOf<TLeft> ? T_70 extends {
2702
+ readonly kind: "result";
2703
+ } ? T_70 : never : never : never) extends (infer T_71) ? T_71 extends (MetadataOf<TLeft> extends (infer T_72) ? T_72 extends MetadataOf<TLeft> ? T_72 extends {
2704
+ readonly kind: "result";
2705
+ } ? T_72 : never : never : never) ? T_71 extends {
2706
+ readonly sqlType: infer TSqlType extends AnySqlType;
2707
+ } ? TSqlType : SqlUnknown : never : never, OperandSqlType<R, (MetadataOf<TLeft> extends (infer T_73) ? T_73 extends MetadataOf<TLeft> ? T_73 extends {
2708
+ readonly kind: "result";
2709
+ } ? T_73 : never : never : never) extends (infer T_74) ? T_74 extends (MetadataOf<TLeft> extends (infer T_75) ? T_75 extends MetadataOf<TLeft> ? T_75 extends {
2710
+ readonly kind: "result";
2711
+ } ? T_75 : never : never : never) ? T_74 extends {
2712
+ readonly sqlType: infer TSqlType extends AnySqlType;
2713
+ } ? TSqlType : SqlUnknown : never : never>>> ? T_63 extends {
2714
+ readonly kind: "result";
2715
+ } ? T_63 : never : never : never) ? T_50 extends {
2716
+ readonly sqlType: infer TSqlType extends AnySqlType;
2717
+ } ? TSqlType : SqlUnknown : never : never;
2718
+ }>;
2355
2719
  //#endregion
2356
2720
  //#region src/query/clauses/types.d.ts
2357
2721
  type ClausePlacement = 'before-select' | 'after-select';
@@ -2430,11 +2794,23 @@ type OmissionValidation<TParts extends readonly SelectPart[]> = [InvalidOmittedC
2430
2794
  //#region src/expressions/operators/logic.d.ts
2431
2795
  type BooleanOperand = BooleanExpression<any> | Omit$1;
2432
2796
  type PresentConditions<TConditions extends readonly BooleanOperand[]> = Exclude<TConditions[number], Omit$1>;
2433
- type BooleanComposition<TConditions extends readonly BooleanOperand[]> = [PresentConditions<TConditions>] extends [never] ? Omit$1 : ResultExpression<boolean, PresentConditions<TConditions>, 'operator', NullabilityOf<PresentConditions<TConditions>>, SqlBoolean> | (Omit$1 extends TConditions[number] ? Omit$1 : never);
2797
+ type BooleanComposition<TConditions extends readonly BooleanOperand[]> = [PresentConditions<TConditions>] extends [never] ? Omit$1 : ResultExpression<{
2798
+ readonly output: boolean;
2799
+ readonly children: PresentConditions<TConditions>;
2800
+ readonly kind: 'operator';
2801
+ readonly nullableFrom: NullabilityOf<PresentConditions<TConditions>>;
2802
+ readonly sqlType: SqlBoolean;
2803
+ }> | (Omit$1 extends TConditions[number] ? Omit$1 : never);
2434
2804
  type BooleanConditionsValidation<TConditions extends readonly unknown[]> = TConditions extends readonly [infer THead, ...infer TTail] ? (THead extends Omit$1 ? unknown : SqlCapabilityValidation<ExpressionSqlType<THead>, SqlBoolean>) & BooleanConditionsValidation<TTail> : unknown;
2435
2805
  declare function and<const TConditions extends readonly BooleanOperand[]>(...conditions: TConditions & BooleanConditionsValidation<TConditions>): BooleanComposition<TConditions>;
2436
2806
  declare function or<const TConditions extends readonly BooleanOperand[]>(...conditions: TConditions & BooleanConditionsValidation<TConditions>): BooleanComposition<TConditions>;
2437
- declare function not<TCondition extends BooleanExpression<any>>(condition: TCondition & SqlCapabilityValidation<ExpressionSqlType<TCondition>, SqlBoolean>): ResultExpression<boolean, TCondition, "operator", NullabilityOf<TCondition>, SqlBoolean>;
2807
+ declare function not<TCondition extends BooleanExpression<any>>(condition: TCondition & SqlCapabilityValidation<ExpressionSqlType<TCondition>, SqlBoolean>): ResultExpression<{
2808
+ readonly output: boolean;
2809
+ readonly children: TCondition;
2810
+ readonly kind: "operator";
2811
+ readonly nullableFrom: NullabilityOf<TCondition>;
2812
+ readonly sqlType: SqlBoolean;
2813
+ }>;
2438
2814
  //#endregion
2439
2815
  //#region src/schema/alias.d.ts
2440
2816
  type SourceIndexes$1<T> = T extends {
@@ -2445,7 +2821,13 @@ type AliasIdentity<TBase, TAlias extends string> = {
2445
2821
  readonly alias: TAlias;
2446
2822
  readonly base: TBase;
2447
2823
  };
2448
- type AliasedSource<TBase extends Source<any, any, any, any, any>, TAlias extends string> = Source<AliasIdentity<SourceIdentity<TBase>, TAlias>, SourceRow<TBase>, RequiresOuterMetadataOf<TBase> | CapabilityMetadataOf<TBase>, SourceSqlTypeMap<TBase>, SourceConstraints<TBase>> & {
2824
+ type AliasedSource<TBase extends Source<any>, TAlias extends string> = Source<{
2825
+ readonly identity: AliasIdentity<SourceIdentity<TBase>, TAlias>;
2826
+ readonly row: SourceRow<TBase>;
2827
+ readonly metadata: RequiresOuterMetadataOf<TBase> | CapabilityMetadataOf<TBase>;
2828
+ readonly sqlTypes: SourceSqlTypeMap<TBase>;
2829
+ readonly constraints: SourceConstraints<TBase>;
2830
+ }> & {
2449
2831
  readonly alias: TAlias;
2450
2832
  readonly base: TBase;
2451
2833
  readonly columns: SourceColumns<SourceRow<TBase>, AliasIdentity<SourceIdentity<TBase>, TAlias>, SourceSqlTypeMap<TBase>>;
@@ -2456,18 +2838,33 @@ type QueryAliasIdentity<TAlias extends string> = {
2456
2838
  readonly sourceKind: 'query-alias';
2457
2839
  readonly alias: TAlias;
2458
2840
  };
2459
- type QuerySource<TRow extends object, TAlias extends string, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>> = Source<QueryAliasIdentity<TAlias>, TRow, TMetadata, TSqlTypes> & {
2841
+ type QuerySource<TRow extends object, TAlias extends string, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>> = Source<{
2842
+ readonly identity: QueryAliasIdentity<TAlias>;
2843
+ readonly row: TRow;
2844
+ readonly metadata: TMetadata;
2845
+ readonly sqlTypes: TSqlTypes;
2846
+ }> & {
2460
2847
  readonly alias: TAlias;
2461
- readonly query: Query<TRow, any, TMetadata, TSqlTypes>;
2848
+ readonly query: Query$1<{
2849
+ readonly row: TRow;
2850
+ readonly cardinality: any;
2851
+ readonly metadata: TMetadata;
2852
+ readonly sqlTypes: TSqlTypes;
2853
+ }>;
2462
2854
  readonly columns: SourceColumns<TRow, QueryAliasIdentity<TAlias>, TSqlTypes>;
2463
2855
  } & SourceColumns<TRow, QueryAliasIdentity<TAlias>, TSqlTypes>;
2464
- declare function alias<TBase extends Source<any, any, any, any, any>, const TAlias extends string>(source: TBase, name: TAlias): AliasedSource<TBase, TAlias>;
2856
+ declare function alias<TBase extends Source<any>, const TAlias extends string>(source: TBase, name: TAlias): AliasedSource<TBase, TAlias>;
2465
2857
  declare function alias<TQuery extends AnyQuery, const TAlias extends string>(query: TQuery, name: TAlias): QuerySource<QueryRow<TQuery>, TAlias, RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>, QuerySqlTypeMap<TQuery>>;
2466
2858
  type LateralIdentity<TAlias extends string> = {
2467
2859
  readonly sourceKind: 'lateral';
2468
2860
  readonly alias: TAlias;
2469
2861
  };
2470
- type LateralSource<TQuery extends AnyQuery, TAlias extends string> = Source<LateralIdentity<TAlias>, QueryRow<TQuery>, RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>, QuerySqlTypeMap<TQuery>> & {
2862
+ type LateralSource<TQuery extends AnyQuery, TAlias extends string> = Source<{
2863
+ readonly identity: LateralIdentity<TAlias>;
2864
+ readonly row: QueryRow<TQuery>;
2865
+ readonly metadata: RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>;
2866
+ readonly sqlTypes: QuerySqlTypeMap<TQuery>;
2867
+ }> & {
2471
2868
  readonly alias: TAlias;
2472
2869
  readonly query: TQuery;
2473
2870
  readonly columns: SourceColumns<QueryRow<TQuery>, LateralIdentity<TAlias>, QuerySqlTypeMap<TQuery>>;
@@ -2745,53 +3142,83 @@ interface FromClause<TSources extends readonly AnySource[] = readonly AnySource[
2745
3142
  readonly sources: TSources;
2746
3143
  }
2747
3144
  declare function from<const TSources extends readonly [AnySource, ...AnySource[]]>(...sources: TSources): FromClause<TSources, RequiresOuterMetadataOf<TSources[number]> | CapabilityMetadataOf<TSources[number]>>;
2748
- type FromSource<T> = T extends FromClause<infer TSources> ? TSources[number] extends (infer TSource) ? TSource extends Source<any, any, any, any, any> ? [SourceProvision<TSource>] extends [never] ? never : TSource : never : never : never;
3145
+ type FromSource<T> = T extends FromClause<infer TSources> ? TSources[number] extends (infer TSource) ? TSource extends Source<any> ? [SourceProvision<TSource>] extends [never] ? never : TSource : never : never : never;
2749
3146
  type FromScope<T> = T extends FromClause<infer TSources> ? ProvidedSourceIdentity<TSources[number]> : never;
2750
3147
  //#endregion
2751
3148
  //#region src/query/set.d.ts
2752
3149
  type SetOperator = 'UNION' | 'UNION ALL' | 'INTERSECT' | 'EXCEPT';
2753
- interface SetQuery<TRow extends object = Record<string, unknown>, TCardinality extends QueryCardinality = QueryCardinality, TMetadata = never, TSqlTypes = UnknownSourceSqlTypes<TRow>> extends Query<TRow, TCardinality, TMetadata, TSqlTypes> {
3150
+ interface SetQuery<TConfig extends QueryConfig = {}> extends Query<TConfig> {
2754
3151
  readonly queryKind: 'set';
2755
3152
  }
2756
3153
  type SetSqlCompatibilityFailures<TLeft, TRight> = { [K in keyof QuerySqlTypeMap<TLeft>]: K extends keyof QuerySqlTypeMap<TRight> ? SqlEqualityCompatible<QuerySqlTypeMap<TLeft>[K], QuerySqlTypeMap<TRight>[K]> extends true ? never : K : K; }[keyof QuerySqlTypeMap<TLeft>];
2757
3154
  type SetSqlValidation<TLeft, TRight> = [SetSqlCompatibilityFailures<TLeft, TRight>] extends [never] ? unknown : QueryTypeValidation<'incompatible-set-domain', 'set-operation.columns', 'Make corresponding set-operation fields use compatible SQL domains.', SetSqlCompatibilityFailures<TLeft, TRight>>;
2758
- declare function union<TLeft extends Query<any, any, any, any>, TRight extends Query<QueryRow<TLeft>, any, any, any>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>, any, CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>, QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>>;
2759
- declare function unionAll<TLeft extends Query<any, any, any, any>, TRight extends Query<QueryRow<TLeft>, any, any, any>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>, any, CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>, QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>>;
2760
- declare function intersect<TLeft extends Query<any, any, any, any>, TRight extends Query<QueryRow<TLeft>, any, any, any>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>, any, CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>, QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>>;
2761
- declare function except<TLeft extends Query<any, any, any, any>, TRight extends Query<QueryRow<TLeft>, any, any, any>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>, any, CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>, QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>>;
3155
+ declare function union<TLeft extends AnyQuery, TRight extends QueryWithRow<QueryRow<TLeft>>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<{
3156
+ readonly row: QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>;
3157
+ readonly cardinality: any;
3158
+ readonly metadata: CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>;
3159
+ readonly sqlTypes: QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>;
3160
+ }>;
3161
+ declare function unionAll<TLeft extends AnyQuery, TRight extends QueryWithRow<QueryRow<TLeft>>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<{
3162
+ readonly row: QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>;
3163
+ readonly cardinality: any;
3164
+ readonly metadata: CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>;
3165
+ readonly sqlTypes: QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>;
3166
+ }>;
3167
+ declare function intersect<TLeft extends AnyQuery, TRight extends QueryWithRow<QueryRow<TLeft>>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<{
3168
+ readonly row: QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>;
3169
+ readonly cardinality: any;
3170
+ readonly metadata: CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>;
3171
+ readonly sqlTypes: QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>;
3172
+ }>;
3173
+ declare function except<TLeft extends AnyQuery, TRight extends QueryWithRow<QueryRow<TLeft>>>(left: TLeft & SetSqlValidation<TLeft, TRight>, right: TRight): SetQuery<{
3174
+ readonly row: QueryRow<TLeft & SetSqlValidation<TLeft, TRight>>;
3175
+ readonly cardinality: any;
3176
+ readonly metadata: CapabilityMetadataOf<TRight | (TLeft & SetSqlValidation<TLeft, TRight>)>;
3177
+ readonly sqlTypes: QuerySqlTypeMap<TLeft & SetSqlValidation<TLeft, TRight>>;
3178
+ }>;
2762
3179
  //#endregion
2763
3180
  //#region src/query/clauses/with.d.ts
2764
3181
  type CteIdentity<TName extends string> = {
2765
3182
  readonly sourceKind: 'cte';
2766
3183
  readonly name: TName;
2767
3184
  };
2768
- type CteSource<TName extends string, TRow extends object, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>> = Source<CteIdentity<TName>, TRow, TMetadata, TSqlTypes> & {
3185
+ type CteSource<TName extends string, TRow extends object, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>> = Source<{
3186
+ readonly identity: CteIdentity<TName>;
3187
+ readonly row: TRow;
3188
+ readonly metadata: TMetadata;
3189
+ readonly sqlTypes: TSqlTypes;
3190
+ }> & {
2769
3191
  readonly cteName: TName;
2770
- readonly query: Query<TRow, any, TMetadata, TSqlTypes>;
3192
+ readonly query: Query$1<{
3193
+ readonly row: TRow;
3194
+ readonly cardinality: any;
3195
+ readonly metadata: TMetadata;
3196
+ readonly sqlTypes: TSqlTypes;
3197
+ }>;
2771
3198
  readonly columns: SourceColumns<TRow, CteIdentity<TName>, TSqlTypes>;
2772
3199
  } & SourceColumns<TRow, CteIdentity<TName>, TSqlTypes>;
2773
- type CteMetadata<TQuery extends Query<any, any, any, any>> = RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>;
3200
+ type CteMetadata<TQuery extends AnyQuery> = RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>;
2774
3201
  type IsUnknown<T> = unknown extends T ? [keyof T] extends [never] ? true : false : false;
2775
3202
  type RecursiveMemberFieldFailures<TAnchor, TMember> = Exclude<keyof QueryRow<TAnchor>, keyof QueryRow<TMember>> | Exclude<keyof QueryRow<TMember>, keyof QueryRow<TAnchor>> | { [K in keyof QueryRow<TAnchor> & keyof QueryRow<TMember>]: [IsUnknown<QueryRow<TMember>[K]>] extends [true] ? never : [IsUnknown<QueryRow<TAnchor>[K]>] extends [true] ? never : [QueryRow<TMember>[K]] extends [QueryRow<TAnchor>[K]] ? never : K; }[keyof QueryRow<TAnchor> & keyof QueryRow<TMember>];
2776
3203
  type RecursiveMemberShapeValidation<TAnchor, TMember> = [RecursiveMemberFieldFailures<TAnchor, TMember>] extends [never] ? unknown : QueryTypeValidation<'incompatible-set-domain', 'recursive-cte.member', 'The recursive member must expose the anchor fields with compatible application types.', RecursiveMemberFieldFailures<TAnchor, TMember>>;
2777
3204
  type RecursiveMemberValidation<TAnchor, TMember> = RecursiveMemberShapeValidation<TAnchor, TMember> & SetSqlValidation<TAnchor, TMember>;
2778
- type RecursiveCteSelf<TName extends string, TAnchor extends SelectQuery<any, any, any, any>> = CteSource<TName, QueryRow<TAnchor>, CteMetadata<TAnchor>, QuerySqlTypeMap<TAnchor>>;
3205
+ type RecursiveCteSelf<TName extends string, TAnchor extends SelectQuery<any>> = CteSource<TName, QueryRow<TAnchor>, CteMetadata<TAnchor>, QuerySqlTypeMap<TAnchor>>;
2779
3206
  /** The typed source returned by {@link recursiveCte}. */
2780
- type RecursiveCteSource<TName extends string, TAnchor extends SelectQuery<any, any, any, any>, TMember extends SelectQuery<any, any, any, any>> = CteSource<TName, QueryRow<TAnchor>, CteMetadata<TAnchor | TMember>, QuerySqlTypeMap<TAnchor>>;
2781
- type AnyCteSource = Source<any, any, any, any, any> & {
3207
+ type RecursiveCteSource<TName extends string, TAnchor extends SelectQuery<any>, TMember extends SelectQuery<any>> = CteSource<TName, QueryRow<TAnchor>, CteMetadata<TAnchor | TMember>, QuerySqlTypeMap<TAnchor>>;
3208
+ type AnyCteSource = Source<any> & {
2782
3209
  readonly cteName: string;
2783
- readonly query: Query<any, any, any> & {
3210
+ readonly query: AnyQuery & {
2784
3211
  readonly recursive?: boolean;
2785
3212
  };
2786
3213
  readonly columns: Record<string, unknown>;
2787
3214
  };
2788
- declare function cte<const TName extends string, TQuery extends Query<any, any, any>>(name: TName, query: TQuery): CteSource<TName, QueryRow<TQuery>, RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>, QuerySqlTypeMap<TQuery>>;
3215
+ declare function cte<const TName extends string, TQuery extends AnyQuery>(name: TName, query: TQuery): CteSource<TName, QueryRow<TQuery>, RequiresOuterMetadataOf<TQuery> | CapabilityMetadataOf<TQuery>, QuerySqlTypeMap<TQuery>>;
2789
3216
  /**
2790
3217
  * Define a typed recursive `WITH` source from an anchor and one recursive
2791
3218
  * member. The callback receives a forward reference that must be introduced
2792
3219
  * through the member query's normal FROM or JOIN scope.
2793
3220
  */
2794
- declare function recursiveCte<const TName extends string, TAnchor extends SelectQuery<any, any, any, any>, TMember extends SelectQuery<any, any, any, any>>(name: TName, anchor: TAnchor, member: ((self: RecursiveCteSelf<TName, TAnchor>) => TMember) & ((self: RecursiveCteSelf<TName, TAnchor>) => TMember & RecursiveMemberValidation<NoInfer<TAnchor>, NoInfer<TMember>>)): RecursiveCteSource<TName, TAnchor, TMember>;
3221
+ declare function recursiveCte<const TName extends string, TAnchor extends SelectQuery<any>, TMember extends SelectQuery<any>>(name: TName, anchor: TAnchor, member: ((self: RecursiveCteSelf<TName, TAnchor>) => TMember) & ((self: RecursiveCteSelf<TName, TAnchor>) => TMember & RecursiveMemberValidation<NoInfer<TAnchor>, NoInfer<TMember>>)): RecursiveCteSource<TName, TAnchor, TMember>;
2795
3222
  interface WithClause<TMetadata = never> extends SelectClause<TMetadata> {
2796
3223
  readonly clauseKind: 'with';
2797
3224
  readonly ctes: readonly AnyCteSource[];
@@ -2799,7 +3226,7 @@ interface WithClause<TMetadata = never> extends SelectClause<TMetadata> {
2799
3226
  declare function withCte<const TCtes extends readonly AnyCteSource[]>(...ctes: TCtes): WithClause<RequiresOuterMetadataOf<TCtes[number]> | CapabilityMetadataOf<TCtes[number]>>;
2800
3227
  //#endregion
2801
3228
  //#region src/query/select/types.d.ts
2802
- interface SelectQuery<TRow extends object = Record<string, unknown>, TCardinality extends QueryCardinality = QueryCardinality, TMetadata = never, TSqlTypes = UnknownSourceSqlTypes<TRow>> extends Query<TRow, TCardinality, TMetadata, TSqlTypes> {
3229
+ interface SelectQuery<TConfig extends QueryConfig = {}> extends Query$1<TConfig> {
2803
3230
  readonly queryKind: 'select';
2804
3231
  }
2805
3232
  type ExactlyOneSafeClause = DistinctClause | OrderByClause<any> | RowLockClause | WithClause;
@@ -2857,7 +3284,12 @@ type GroupingValidation<TSelection, TClauses extends readonly AnySelectClause[]>
2857
3284
  //#endregion
2858
3285
  //#region src/query/select.d.ts
2859
3286
  type SelectMetadata<TSelection, TClauses extends readonly AnySelectClause[]> = ([RequiredOuterScope<TSelection, TClauses>] extends [never] ? never : RequiresOuterSourceMeta<RequiredOuterScope<TSelection, TClauses>>) | CapabilityMetadataOf<SelectionItems<TSelection> | TClauses[number]>;
2860
- declare function select<const TSelection extends Selection, const TParts extends readonly SelectPart[], TClauses extends readonly AnySelectClause[] = PresentClauses<TParts>>(selection: TSelection, ...parts: TParts & OmissionValidation<TParts> & ScopeValidation<TSelection, TClauses> & GroupingValidation<TSelection, TClauses>): SelectQuery<SelectionOutput<TSelection, NullableSources<TClauses>>, SelectCardinality<TParts>, SelectMetadata<TSelection, TClauses>, SelectionSqlTypes<TSelection, SelectionOutput<TSelection, NullableSources<TClauses>>>>;
3287
+ declare function select<const TSelection extends Selection, const TParts extends readonly SelectPart[], TClauses extends readonly AnySelectClause[] = PresentClauses<TParts>>(selection: TSelection, ...parts: TParts & OmissionValidation<TParts> & ScopeValidation<TSelection, TClauses> & GroupingValidation<TSelection, TClauses>): SelectQuery<{
3288
+ readonly row: SelectionOutput<TSelection, NullableSources<TClauses>>;
3289
+ readonly cardinality: SelectCardinality<TParts>;
3290
+ readonly metadata: SelectMetadata<TSelection, TClauses>;
3291
+ readonly sqlTypes: SelectionSqlTypes<TSelection, SelectionOutput<TSelection, NullableSources<TClauses>>>;
3292
+ }>;
2861
3293
  //#endregion
2862
3294
  //#region src/query/clauses/correlate.d.ts
2863
3295
  /**
@@ -2876,6 +3308,7 @@ interface ReturningClause<TSelection extends Selection = Selection> extends Frag
2876
3308
  readonly clauseKind: 'returning';
2877
3309
  readonly selection: TSelection;
2878
3310
  readonly row: SelectionOutput<TSelection>;
3311
+ readonly resultShape: ResultShape;
2879
3312
  }
2880
3313
  type ReturningRow<T> = [T] extends [ReturningClause<infer TSelection>] ? SelectionOutput<TSelection> : Record<string, never>;
2881
3314
  /** SQL semantic domains retained by a mutation RETURNING projection. */
@@ -2884,8 +3317,19 @@ declare function returning<const TSelection extends Selection>(selection: TSelec
2884
3317
  //#endregion
2885
3318
  //#region src/query/mutation/types.d.ts
2886
3319
  type MutationKind = 'insert' | 'update' | 'delete';
2887
- interface MutationQuery<TRow extends object = Record<string, unknown>, TKind extends MutationKind = MutationKind, TMetadata = never, TSqlTypes = UnknownSourceSqlTypes<TRow>> extends Query<TRow, 'many', TMetadata, TSqlTypes> {
2888
- readonly queryKind: TKind;
3320
+ interface MutationQueryConfig extends Omit<QueryConfig, 'cardinality'> {
3321
+ readonly kind?: MutationKind;
3322
+ }
3323
+ type MutationConfigValue<TConfig, TKey extends PropertyKey, TFallback> = TKey extends keyof TConfig ? TConfig[TKey] : TFallback;
3324
+ type MutationConfigRow<TConfig> = Extract<MutationConfigValue<TConfig, 'row', Record<string, unknown>>, object>;
3325
+ type MutationConfigKind<TConfig> = Extract<MutationConfigValue<TConfig, 'kind', MutationKind>, MutationKind>;
3326
+ interface MutationQuery<TConfig extends MutationQueryConfig = {}> extends Query$1<{
3327
+ readonly row: MutationConfigRow<TConfig>;
3328
+ readonly cardinality: 'many';
3329
+ readonly metadata: MutationConfigValue<TConfig, 'metadata', never>;
3330
+ readonly sqlTypes: MutationConfigValue<TConfig, 'sqlTypes', UnknownSourceSqlTypes<MutationConfigRow<TConfig>>>;
3331
+ }> {
3332
+ readonly queryKind: MutationConfigKind<TConfig>;
2889
3333
  }
2890
3334
  type MutationCapabilityMetadata<T> = CapabilityMetadataOf<T>;
2891
3335
  interface AllowAllClause extends Fragment<never> {
@@ -2908,14 +3352,23 @@ type UpdateAssignmentValue<T> = T | ExpressionWithOutput<T> | Omit$1;
2908
3352
  type UpdateAssignments<TTable extends AnyTable> = { -readonly [K in keyof TableUpdateInput<TTable['definitions']>]?: UpdateAssignmentValue<TableUpdateInput<TTable['definitions']>[K]>; };
2909
3353
  type InvalidUpdateAssignments<TTable extends AnyTable, TAssignments> = TAssignments extends UpdateAssignments<TTable> ? Exclude<keyof TAssignments, keyof UpdateAssignments<TTable>> extends never ? unknown : QueryTypeValidation<'invalid-update', 'update.assignments', 'Use only columns declared by the update table.', Exclude<keyof TAssignments, keyof UpdateAssignments<TTable>>> : QueryTypeValidation<'invalid-update', 'update.assignments', 'Provide values or expressions matching the update table columns.', TAssignments>;
2910
3354
  type AssignmentScopeValidation<TTable extends AnyTable, TAssignments> = [Exclude<RequiresOf<TAssignments extends object ? TAssignments[keyof TAssignments] : never>, SourceIdentity<TTable>>] extends [never] ? unknown : QueryTypeValidation<'missing-source', 'update.assignments', 'Use expressions scoped to the update table.', Exclude<RequiresOf<TAssignments extends object ? TAssignments[keyof TAssignments] : never>, SourceIdentity<TTable>>>;
2911
- declare function update<const TTable extends AnyTable, const TAssignments extends object, const TClauses extends readonly MutationClause[]>(table: TTable, assignments: TAssignments & InvalidUpdateAssignments<TTable, TAssignments> & AssignmentScopeValidation<TTable, TAssignments>, ...clauses: TClauses & MutationScopeValidation<TTable, TClauses> & MutationSafetyValidation<TClauses>): MutationQuery<MutationRow<TClauses>, 'update', MutationCapabilityMetadata<TClauses[number] | (TAssignments extends object ? TAssignments[keyof TAssignments] : never)>, MutationSqlTypes<TClauses>>;
3355
+ declare function update<const TTable extends AnyTable, const TAssignments extends object, const TClauses extends readonly MutationClause[]>(table: TTable, assignments: TAssignments & InvalidUpdateAssignments<TTable, TAssignments> & AssignmentScopeValidation<TTable, TAssignments>, ...clauses: TClauses & MutationScopeValidation<TTable, TClauses> & MutationSafetyValidation<TClauses>): MutationQuery<{
3356
+ readonly row: MutationRow<TClauses>;
3357
+ readonly kind: 'update';
3358
+ readonly metadata: MutationCapabilityMetadata<TClauses[number] | (TAssignments extends object ? TAssignments[keyof TAssignments] : never)>;
3359
+ readonly sqlTypes: MutationSqlTypes<TClauses>;
3360
+ }>;
2912
3361
  //#endregion
2913
3362
  //#region src/query/mutation/on-conflict.d.ts
2914
3363
  type ExcludedIdentity<TTableIdentity> = {
2915
3364
  readonly sourceKind: 'excluded';
2916
3365
  readonly table: TTableIdentity;
2917
3366
  };
2918
- type ExcludedSource<TTable extends AnyTable> = Source<ExcludedIdentity<SourceIdentity<TTable>>, SourceRow<TTable>, never, ExcludedSqlTypes<TTable>> & SourceColumns<SourceRow<TTable>, ExcludedIdentity<SourceIdentity<TTable>>, ExcludedSqlTypes<TTable>>;
3367
+ type ExcludedSource<TTable extends AnyTable> = Source<{
3368
+ readonly identity: ExcludedIdentity<SourceIdentity<TTable>>;
3369
+ readonly row: SourceRow<TTable>;
3370
+ readonly sqlTypes: ExcludedSqlTypes<TTable>;
3371
+ }> & SourceColumns<SourceRow<TTable>, ExcludedIdentity<SourceIdentity<TTable>>, ExcludedSqlTypes<TTable>>;
2919
3372
  type ExcludedSqlTypes<TTable extends AnyTable> = SourceSqlTypeMap<TTable> & SourceSqlTypes<SourceRow<TTable>>;
2920
3373
  /** Columns from the proposed INSERT row, available inside DO UPDATE. */
2921
3374
  declare function excluded<const TTable extends AnyTable>(table: TTable): ExcludedSource<TTable>;
@@ -2961,12 +3414,12 @@ interface DefaultValuesSource {
2961
3414
  readonly insertKind: 'default-values';
2962
3415
  }
2963
3416
  declare function defaultValues(): DefaultValuesSource;
2964
- interface InsertSelectSource<TQuery extends Query<any, any, any> = Query<any, any, any>, TColumns extends readonly string[] = readonly string[]> {
3417
+ interface InsertSelectSource<TQuery extends AnyQuery = AnyQuery, TColumns extends readonly string[] = readonly string[]> {
2965
3418
  readonly insertKind: 'select';
2966
3419
  readonly query: TQuery;
2967
3420
  readonly columns: TColumns;
2968
3421
  }
2969
- declare function insertSelect<TQuery extends Query<any, any, any>, const TColumns extends readonly [string, ...string[]]>(query: TQuery, columns: TColumns): InsertSelectSource<TQuery, TColumns>;
3422
+ declare function insertSelect<TQuery extends AnyQuery, const TColumns extends readonly [string, ...string[]]>(query: TQuery, columns: TColumns): InsertSelectSource<TQuery, TColumns>;
2970
3423
  type InsertSource = ValuesSource<any> | DefaultValuesSource | InsertSelectSource<any, any>;
2971
3424
  type InsertSourceCapabilityMetadata<TSource extends InsertSource> = TSource extends InsertSelectSource<infer TQuery, any> ? CapabilityMetadataOf<TQuery> : never;
2972
3425
  type InsertRow<TTable extends AnyTable> = TableInsertInput<TTable['definitions']>;
@@ -2976,10 +3429,20 @@ type ValidInsertSource<TTable extends AnyTable, TSource extends InsertSource> =
2976
3429
  } ? K : never; }[keyof TTable['definitions']]> extends never ? unknown : QueryTypeValidation<'invalid-insert', 'insert.default-values', 'Provide values for required columns or define defaults for them.', Exclude<keyof TTable['definitions'], { [K in keyof TTable['definitions']]-?: ColumnIsGenerated<TTable['definitions'][K]> extends true ? K : TTable['definitions'][K] extends {
2977
3430
  hasDefault: true;
2978
3431
  } ? K : never; }[keyof TTable['definitions']]>> : TSource extends InsertSelectSource<any, infer TColumns> ? Exclude<TColumns[number], keyof TTable['definitions']> extends never ? Exclude<{ [K in keyof TTable['definitions']]-?: ColumnIsGenerated<TTable['definitions'][K]> extends true ? never : ColumnHasDefault<TTable['definitions'][K]> extends true ? never : K; }[keyof TTable['definitions']], TColumns[number]> extends never ? unknown : QueryTypeValidation<'invalid-insert', 'insert.select.columns', 'Include every required insert column in the target list.', Exclude<{ [K in keyof TTable['definitions']]-?: ColumnIsGenerated<TTable['definitions'][K]> extends true ? never : ColumnHasDefault<TTable['definitions'][K]> extends true ? never : K; }[keyof TTable['definitions']], TColumns[number]>> : QueryTypeValidation<'invalid-insert', 'insert.select.columns', 'Use only columns declared by the insert table.', Exclude<TColumns[number], keyof TTable['definitions']>> : never;
2979
- declare function insertInto<const TTable extends AnyTable, const TSource extends InsertSource, const TClauses extends readonly InsertClause[]>(table: TTable, source: TSource & ValidInsertSource<TTable, TSource>, ...clauses: TClauses & MutationScopeValidation<TTable, TClauses>): MutationQuery<MutationRow<TClauses>, 'insert', MutationCapabilityMetadata<TClauses[number]> | InsertSourceCapabilityMetadata<TSource>, MutationSqlTypes<TClauses>>;
3432
+ declare function insertInto<const TTable extends AnyTable, const TSource extends InsertSource, const TClauses extends readonly InsertClause[]>(table: TTable, source: TSource & ValidInsertSource<TTable, TSource>, ...clauses: TClauses & MutationScopeValidation<TTable, TClauses>): MutationQuery<{
3433
+ readonly row: MutationRow<TClauses>;
3434
+ readonly kind: 'insert';
3435
+ readonly metadata: MutationCapabilityMetadata<TClauses[number]> | InsertSourceCapabilityMetadata<TSource>;
3436
+ readonly sqlTypes: MutationSqlTypes<TClauses>;
3437
+ }>;
2980
3438
  //#endregion
2981
3439
  //#region src/query/mutation/delete.d.ts
2982
- declare function deleteFrom<const TTable extends AnyTable, const TClauses extends readonly MutationClause[]>(table: TTable, ...clauses: TClauses & MutationScopeValidation<TTable, TClauses> & MutationSafetyValidation<TClauses>): MutationQuery<MutationRow<TClauses>, 'delete', MutationCapabilityMetadata<TClauses[number]>, MutationSqlTypes<TClauses>>;
3440
+ declare function deleteFrom<const TTable extends AnyTable, const TClauses extends readonly MutationClause[]>(table: TTable, ...clauses: TClauses & MutationScopeValidation<TTable, TClauses> & MutationSafetyValidation<TClauses>): MutationQuery<{
3441
+ readonly row: MutationRow<TClauses>;
3442
+ readonly kind: 'delete';
3443
+ readonly metadata: MutationCapabilityMetadata<TClauses[number]>;
3444
+ readonly sqlTypes: MutationSqlTypes<TClauses>;
3445
+ }>;
2983
3446
  //#endregion
2984
3447
  //#region src/query/clauses/order-by.d.ts
2985
3448
  type OrderDirection = 'ASC' | 'DESC';
@@ -3096,8 +3559,8 @@ type IndexTermsValidation<TTerms extends readonly IndexTerm[]> = [InvalidIndexTe
3096
3559
  declare function index<const TTerms extends readonly [IndexTerm, ...IndexTerm[]], const TOptions extends IndexOptions<any> = {}>(terms: TTerms & IndexTermsValidation<NoInfer<TTerms>>, options?: TOptions): TableIndex<TTerms, TOptions>;
3097
3560
  //#endregion
3098
3561
  //#region src/schema/table.d.ts
3099
- type TableDefinitions = Record<string, ColumnDefinition<any, any, any, any, any, any, any, any, any, any, any>>;
3100
- type AnyTable = Source<any, any, any, any, any> & {
3562
+ type TableDefinitions = Record<string, ColumnDefinition<any>>;
3563
+ type AnyTable = Source<any> & {
3101
3564
  readonly tableName: string;
3102
3565
  readonly definitions: TableDefinitions;
3103
3566
  /** Application field keys mapped to physical SQL column names. */
@@ -3115,7 +3578,12 @@ type TableIdentity<TName extends string> = {
3115
3578
  readonly tableName: TName;
3116
3579
  };
3117
3580
  type TableColumns<TDefinitions extends TableDefinitions, TIdentity> = { readonly [K in keyof TDefinitions]: SourceColumns<TableRow<TDefinitions>, TIdentity, TableSqlTypes<TDefinitions>>[K] & DeclaredColumnNullability<ColumnIsNullable<TDefinitions[K]>>; };
3118
- type Table<TName extends string = string, TDefinitions extends TableDefinitions = TableDefinitions, TConstraints extends SourceConstraintsRecord = {}, TIndexes extends SourceIndexesRecord = {}> = Source<TableIdentity<TName>, TableRow<TDefinitions>, never, TableSqlTypes<TDefinitions>, TConstraints> & {
3581
+ type Table<TName extends string = string, TDefinitions extends TableDefinitions = TableDefinitions, TConstraints extends SourceConstraintsRecord = {}, TIndexes extends SourceIndexesRecord = {}> = Source<{
3582
+ readonly identity: TableIdentity<TName>;
3583
+ readonly row: TableRow<TDefinitions>;
3584
+ readonly sqlTypes: TableSqlTypes<TDefinitions>;
3585
+ readonly constraints: TConstraints;
3586
+ }> & {
3119
3587
  readonly tableName: TName;
3120
3588
  readonly definitions: TDefinitions;
3121
3589
  /** Application field keys mapped to physical SQL column names. */
@@ -3182,26 +3650,47 @@ type SourceSqlTypes<TRow extends object> = { readonly [K in keyof TRow]: AnySqlT
3182
3650
  /** A source SQL-domain map used when no stronger metadata was declared. */
3183
3651
  type UnknownSourceSqlTypes<TRow extends object> = { readonly [K in keyof TRow]: SqlUnknown; };
3184
3652
  type SourceColumns<TRow extends object, TIdentity, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>> = { readonly [K in keyof TRow]: K extends string ? ColumnReference<K, ResultMeta<Required<TRow>[K], TIdentity, TSqlTypes[K]> | RequiresSourceMeta<TIdentity> | ExpressionMeta<ColumnDependency<TIdentity, K>>> : never; };
3185
- interface Source<TIdentity = unknown, TRow extends object = Record<string, unknown>, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>, TConstraints extends SourceConstraintsRecord = {}> extends Fragment<ResultMeta<readonly TRow[]> | ProvidesSourceMeta<TIdentity, TRow> | TMetadata> {
3653
+ /** Sparse type-level configuration carried by a relational source. */
3654
+ interface SourceConfig {
3655
+ readonly identity?: unknown;
3656
+ readonly row?: object;
3657
+ readonly metadata?: unknown;
3658
+ readonly sqlTypes?: unknown;
3659
+ readonly constraints?: SourceConstraintsRecord;
3660
+ }
3661
+ type SourceConfigValue<TConfig, TKey extends PropertyKey, TFallback> = TKey extends keyof TConfig ? TConfig[TKey] : TFallback;
3662
+ type SourceConfigIdentity<TConfig> = SourceConfigValue<TConfig, 'identity', unknown>;
3663
+ type SourceConfigRow<TConfig> = Extract<SourceConfigValue<TConfig, 'row', Record<string, unknown>>, object>;
3664
+ type SourceConfigMetadata<TConfig> = SourceConfigValue<TConfig, 'metadata', never>;
3665
+ type SourceConfigSqlTypes<TConfig> = Extract<SourceConfigValue<TConfig, 'sqlTypes', UnknownSourceSqlTypes<SourceConfigRow<TConfig>>>, SourceSqlTypes<SourceConfigRow<TConfig>>>;
3666
+ type SourceConfigConstraints<TConfig> = Extract<SourceConfigValue<TConfig, 'constraints', {}>, SourceConstraintsRecord>;
3667
+ interface Source<TConfig extends SourceConfig = {}> extends Fragment<ResultMeta<readonly SourceConfigRow<TConfig>[]> | ProvidesSourceMeta<SourceConfigIdentity<TConfig>, SourceConfigRow<TConfig>> | SourceConfigMetadata<TConfig>> {
3668
+ /** @internal Type-level configuration retained for inference. */
3669
+ readonly __sourceConfig?: TConfig;
3670
+ /** @internal SQL domains retained for inference. */
3671
+ readonly __sqlTypes?: SourceConfigSqlTypes<TConfig>;
3186
3672
  readonly sourceKind: SourceKind;
3187
- readonly [sourceIdentity]: TIdentity;
3673
+ readonly [sourceIdentity]: SourceConfigIdentity<TConfig>;
3188
3674
  readonly reference: Fragment<never>;
3189
- readonly columns: SourceColumns<TRow, TIdentity, TSqlTypes>;
3190
- readonly constraints: TConstraints;
3675
+ readonly columns: SourceColumns<SourceConfigRow<TConfig>, SourceConfigIdentity<TConfig>, SourceConfigSqlTypes<TConfig>>;
3676
+ readonly constraints: SourceConfigConstraints<TConfig>;
3191
3677
  }
3192
- type AnySource = Source<any, any, any, any, any>;
3678
+ type AnySource = Source<any>;
3193
3679
  /** The source-provision fact carried by a source-producing fragment. */
3194
3680
  type SourceProvision<T> = Extract<MetadataOf<T>, {
3195
3681
  readonly kind: 'provides-source';
3196
3682
  }>;
3197
3683
  type ProvidedSourceIdentity<T> = SourceProvision<T> extends ProvidesSourceMeta<infer TIdentity, any> ? TIdentity : never;
3198
3684
  type ProvidedSourceRow<T> = SourceProvision<T> extends ProvidesSourceMeta<any, infer TRow> ? TRow : never;
3199
- type SourceIdentity<T> = T extends Source<infer TIdentity, any, any, any, any> ? TIdentity : never;
3200
- type SourceRow<T> = T extends Source<any, infer TRow, any, any, any> ? TRow : never;
3685
+ type SourceIdentity<T> = T extends {
3686
+ readonly [sourceIdentity]: infer TIdentity;
3687
+ } ? TIdentity : never;
3688
+ type SourceRow<T> = Extract<ProvidedSourceRow<T>, object>;
3201
3689
  /** Extract the field-to-SQL-domain map retained by a source. */
3202
3690
  type SourceSqlTypeMap<T> = T extends {
3203
- readonly definitions: infer TDefinitions extends TableDefinitions;
3204
- } ? TableSqlTypes<TDefinitions> : T extends Source<any, infer TRow, any, infer TSqlTypes, any> ? TSqlTypes & SourceSqlTypes<TRow> : never;
3691
+ readonly __sqlTypes?: infer TSqlTypes;
3692
+ readonly [sourceIdentity]: unknown;
3693
+ } ? TSqlTypes & SourceSqlTypes<SourceRow<T>> : never;
3205
3694
  /** Structured schema constraints declared for a source. */
3206
3695
  type SourceConstraints<T> = T extends {
3207
3696
  readonly constraints: infer TConstraints extends SourceConstraintsRecord;
@@ -3217,12 +3706,22 @@ interface CustomSourceOptions<TIdentity, TDefinitions extends TableDefinitions>
3217
3706
  readonly columns: TDefinitions;
3218
3707
  readonly sourceKind?: SourceKind;
3219
3708
  }
3220
- type CustomSource<TIdentity, TDefinitions extends TableDefinitions> = Source<TIdentity, TableRow<TDefinitions>, never, TableSqlTypes<TDefinitions>> & {
3709
+ type CustomSource<TIdentity, TDefinitions extends TableDefinitions> = Source<{
3710
+ readonly identity: TIdentity;
3711
+ readonly row: TableRow<TDefinitions>;
3712
+ readonly sqlTypes: TableSqlTypes<TDefinitions>;
3713
+ }> & {
3221
3714
  readonly identity: TIdentity;
3222
3715
  readonly definitions: TDefinitions;
3223
3716
  readonly columns: SourceColumns<TableRow<TDefinitions>, TIdentity, TableSqlTypes<TDefinitions>>;
3224
3717
  } & SourceColumns<TableRow<TDefinitions>, TIdentity, TableSqlTypes<TDefinitions>>;
3225
- declare function createSource<TIdentity, TRow extends object, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>, TConstraints extends SourceConstraintsRecord = {}>(sourceKind: SourceKind, render: RenderFunction, reference: Fragment<never>, constraints?: TConstraints): Source<TIdentity, TRow, TMetadata, TSqlTypes, TConstraints>;
3718
+ declare function createSource<TIdentity, TRow extends object, TMetadata = never, TSqlTypes extends SourceSqlTypes<TRow> = UnknownSourceSqlTypes<TRow>, TConstraints extends SourceConstraintsRecord = {}>(sourceKind: SourceKind, render: RenderFunction, reference: Fragment<never>, constraints?: TConstraints): Source<{
3719
+ readonly identity: TIdentity;
3720
+ readonly row: TRow;
3721
+ readonly metadata: TMetadata;
3722
+ readonly sqlTypes: TSqlTypes;
3723
+ readonly constraints: TConstraints;
3724
+ }>;
3226
3725
  /**
3227
3726
  * Create a typed source-producing fragment for a custom FROM relation such as
3228
3727
  * a table-valued function. The renderer owns the relation syntax and may bind
@@ -3239,16 +3738,43 @@ declare function exposeColumns(target: object, columns: Record<string, unknown>)
3239
3738
  //#region src/query/types.d.ts
3240
3739
  type Row = Record<string, unknown>;
3241
3740
  type QueryKind = 'select' | 'set' | 'insert' | 'update' | 'delete';
3242
- interface Query<TRow extends object = Row, TCardinality extends QueryCardinality = QueryCardinality, TMetadata = never, TSqlTypes = SourceSqlTypes<TRow>> extends Fragment<ResultMeta<readonly TRow[]> | CardinalityMeta<TCardinality> | TMetadata> {
3741
+ /** Sparse type-level configuration carried by a query. */
3742
+ interface QueryConfig {
3743
+ readonly row?: object;
3744
+ readonly cardinality?: QueryCardinality;
3745
+ readonly metadata?: unknown;
3746
+ readonly sqlTypes?: unknown;
3747
+ }
3748
+ type QueryConfigValue<TConfig, TKey extends PropertyKey, TFallback> = TKey extends keyof TConfig ? TConfig[TKey] : TFallback;
3749
+ type QueryConfigRow<TConfig> = Extract<QueryConfigValue<TConfig, 'row', Row>, object>;
3750
+ type QueryConfigCardinality<TConfig> = Extract<QueryConfigValue<TConfig, 'cardinality', QueryCardinality>, QueryCardinality>;
3751
+ type QueryConfigMetadata<TConfig> = QueryConfigValue<TConfig, 'metadata', never>;
3752
+ type QueryConfigSqlTypes<TConfig> = QueryConfigValue<TConfig, 'sqlTypes', SourceSqlTypes<QueryConfigRow<TConfig>>>;
3753
+ interface Query$1<TConfig extends QueryConfig = {}> extends Fragment<ResultMeta<readonly QueryConfigRow<TConfig>[]> | CardinalityMeta<QueryConfigCardinality<TConfig>> | QueryConfigMetadata<TConfig>> {
3754
+ /** @internal Type-level configuration retained for inference. */
3755
+ readonly __queryConfig?: TConfig;
3243
3756
  readonly queryKind: QueryKind;
3244
- readonly row: TRow;
3757
+ readonly row: QueryConfigRow<TConfig>;
3758
+ /** Runtime metadata used to decode named result fields. */
3759
+ readonly resultShape: ResultShape;
3245
3760
  /** Type-only SQL domains of the named query projection. */
3246
- readonly sqlTypes?: TSqlTypes;
3761
+ readonly sqlTypes?: QueryConfigSqlTypes<TConfig>;
3247
3762
  }
3248
- type AnyQuery = Query<any, any, any, any>;
3249
- type QueryRow<T> = T extends Query<infer TRow, any, any, any> ? TRow : never;
3763
+ type AnyQuery = Query$1<any>;
3764
+ type QueryWithRow<TRow extends object> = Query$1<{
3765
+ readonly row: TRow;
3766
+ readonly cardinality: any;
3767
+ readonly metadata: any;
3768
+ readonly sqlTypes: any;
3769
+ }>;
3770
+ type QueryRow<T> = T extends {
3771
+ readonly row: infer TRow extends object;
3772
+ } ? TRow : never;
3250
3773
  /** Extract the field-to-SQL-domain map retained by a named query projection. */
3251
- type QuerySqlTypeMap<T> = T extends Query<infer TRow, any, any, infer TSqlTypes> ? TSqlTypes & SourceSqlTypes<TRow> : never;
3774
+ type QuerySqlTypeMap<T> = T extends {
3775
+ readonly row: infer TRow extends object;
3776
+ readonly sqlTypes?: infer TSqlTypes;
3777
+ } ? TSqlTypes & SourceSqlTypes<TRow> : never;
3252
3778
  //#endregion
3253
3779
  //#region src/core/dialect.d.ts
3254
3780
  /** Capabilities whose syntax must be explicitly supported by a dialect. */
@@ -3633,4 +4159,4 @@ type SchemaSnapshotInput = SchemaSnapshot | Readonly<Record<string, unknown>>;
3633
4159
  /** Expose the schema generic in tooling declarations without widening APIs. */
3634
4160
  type AnySchema = Schema<any>;
3635
4161
  //#endregion
3636
- export { PaginationKind as $, ExplainReadOptions as $a, ColumnReference as $c, lower as $i, SubqueryMeta as $l, RequiredOuterScope as $n, SourceConstraint as $o, SchemaOptions as $r, boolean as $s, SqliteIndexExtension as $t, SnapshotStorage as A, between as Aa, ResolvedColumnBehavior as Ac, offset as Ai, HasSubquery as Al, UpdateAssignments as An, QueryValidationError as Ao, SelectionSqlTypes as Ar, ColumnStorageDeclarationOf as As, createSource as At, CastTarget as B, asValue as Ba, SchemaDialectName as Bc, subtract as Bi, ProvidesOuterSourceMeta as Bl, MutationSqlTypes as Bn, ConstraintTiming as Bo, SchemaRenderContext as Br, NativeStorage as Bs, TableMetadataCallback as Bt, SnapshotIndexTerm as C, isDistinctFrom as Ca, GeneratedColumnMode as Cc, omit as Ci, ExpressionMeta as Cl, ExcludedSource as Cn, qubu as Co, leftJoin as Cr, ColumnIsGenerated as Cs, SourceIdentity as Ct, SqlTypeSatisfies as Cu, SnapshotLiteral as D, lte as Da, IdentityGeneration as Dc, rowLock as Di, GroupingKeysOf as Dl, excluded as Dn, RenderedQuery as Do, Selection as Dr, ColumnOutput as Ds, SourceSqlTypeMap as Dt, SnapshotKeyConstraint as E, lt as Ea, IdentityDialectExtension as Ec, RowLockOptions as Ei, GroupingDependenciesOf as El, doUpdate as En, RenderOptions as Eo, groupBy as Er, ColumnOptions as Es, SourceRow as Et, neutralSnapshotDialect as F, isTrue as Fa, externalGeneratedColumn as Fc, SelectClause as Fi, NullabilityOf as Fl, MutationQuery as Fn, CatalogCheckSql as Fo, RenderedSchemaExpression as Fr, ColumnStorageType as Fs, Table as Ft, DialectJson as G, DriverValueEncoder as Ga, assertSchemaDialectSupport as Gc, jsonPath as Gi, RequiresCapabilityMeta as Gl, returning as Gn, ForeignKeyOptions as Go, normalizeSchemaSql as Gr, PortableStorageType as Gs, table as Gt, DialectCapability as H, value as Ha, SchemaMetadataValidationError as Hc, jsonBoolean as Hi, QueryCardinality as Hl, ReturningClause as Hn, FieldLikeOptions as Ho, UnsafeSchemaSqlExpression as Hr, PortableColumnStorage as Hs, TableRow as Ht, schemaSnapshotDialectVersion as I, Operand as Ia, generatedColumn as Ic, add as Ii, NullableSourceMeta as Il, MutationReturning as In, CheckConstraint as Io, SchemaExpressionError as Ir, ColumnStorageTypeOf as Is, TableColumns as It, DialectRowLocking as J, ExecutionResult as Ja, generatedSchemaObjectName as Jc, over as Ji, RequiresOuterOf as Jl, AvailableOuterScope as Jn, KeyConstraint as Jo, schemaExpression as Jr, StorageDialectOf as Js, IndexTerm as Jt, DialectOptions as K, ExecutionOptions as Ka, dialectMismatchDiagnostic as Kc, jsonText as Ki, RequiresOf as Kl, correlate as Kn, ForeignKeyTarget as Ko, renderSchemaExpression as Kr, StorageDeclarationOf as Ks, IndexDialectExtension as Kt, schemaSnapshotFormat as L, OperandNullability as La, identityColumn as Lc, divide as Li, NullableSourcesOf as Ll, MutationReturningClause as Ln, CheckConstraintOptions as Lo, SchemaExpressionErrorCode as Lr, ColumnUpdateInput as Ls, TableDefinitions as Lt, SnapshotTable as M, notIn as Ma, SqliteIdentityExtension as Mc, distinct as Mi, InheritedMetadata as Ml, AllowAllClause as Mn, QueryValidationIssue as Mo, SchemaDialect as Mr, ColumnStorageDialectOf as Ms, exposeColumns as Mt, SnapshotUniqueConstraint as N, isNotNull as Na, canonicalLiteral as Nc, AnySelectClause as Ni, InheritedMetadataOf as Nl, MutationClause as Nn, AnyKeyColumn as No, SchemaDialectHooks as Nr, ColumnStorageKindOf as Ns, sourceIdentity as Nt, SnapshotNamingPolicy as O, ne as Oa, LiteralDefaultDescriptor as Oc, fetchFirst as Oi, GroupingMeta as Ol, onConflict as On, render as Oo, SelectionObject as Or, ColumnSqlType as Os, SourceSqlTypes as Ot, SnapshotValidationContext as P, isNull as Pa, externalDefault as Pc, ClausePlacement as Pi, MetadataOf as Pl, MutationKind as Pn, CatalogCheckExpression as Po, createSchemaDialect as Pr, ColumnStorageOf as Ps, AnyTable as Pt, NamedCastTarget as Q, ExplainPlanRow as Qa, ColumnDependency as Qc, concat as Qi, SqlTypeOf as Ql, MissingScope as Qn, ReferentialAction as Qo, SchemaNamingPolicy as Qr, binary as Qs, SourceIndexesRecord as Qt, schemaSnapshotNamingPolicyVersion as R, OperandSqlType as Ra, resolveColumnBehavior as Rc, modulo as Ri, OutputOf as Rl, MutationRow as Rn, ConstraintDialectExtension as Ro, SchemaExpressionInput as Rr, DialectNativeStorage as Rs, TableIdentity as Rt, SnapshotIndex as S, gte as Sa, GeneratedColumnDescriptor as Sc, SelectPart as Si, DependenciesOf as Sl, DoUpdateAction as Sn, explain as So, innerJoin as Sr, ColumnInsertInput as Ss, SourceConstraints as St, SqlTimestamp as Su, SnapshotJsonValue as T, like as Ta, IdentityDescriptor as Tc, RowLockClause as Ti, FragmentMeta as Tl, doNothing as Tn, RenderCapabilityValidation as To, rightJoin as Tr, ColumnOnUpdateOf as Ts, SourceProvision as Tt, SqlUuid as Tu, DialectCastTypes as U, cast as Ua, SchemaObjectIdentity as Uc, jsonExists as Ui, RenderContext as Ul, ReturningRow as Un, ForeignKeyConstraint as Uo, defineSchemaExpression as Ur, PortableStorage as Us, TableSqlTypes as Ut, Dialect as V, typedValue as Va, SchemaMetadataDiagnostic as Vc, JsonPath as Vi, ProvidesSourceMeta as Vl, allowAll as Vn, FieldLike as Vo, SchemaRenderOptions as Vr, NativeStorageDescriptor as Vs, TableOptions as Vt, DialectExplain as W, typedCast as Wa, SchemaObjectNameOptions as Wc, jsonNumber as Wi, RenderFunction as Wl, ReturningSqlTypes as Wn, ForeignKeyMatch as Wo, isUnsafeSchemaSql as Wr, PortableStorageDescriptor as Ws, TableUpdateInput as Wt, ExplainRenderOptions as X, ExplainOptions as Xa, materializeSchemaObjectIdentity as Xc, rowNumber as Xi, RequiresSourceMeta as Xl, ClauseScope as Xn, MysqlConstraintExtension as Xo, Schema as Xr, StorageTypeOf as Xs, PostgresIndexExtension as Xt, ExplainFormat as Y, ExplainMutationOptions as Ya, isValidSchemaObjectName as Yc, rank as Yi, RequiresOuterSourceMeta as Yl, AvailableScope as Yn, KeyConstraintOptions as Yo, unsafeSchemaSql as Yr, StorageOf as Ys, MysqlIndexExtension as Yt, JsonScalarKind as Z, ExplainOptionsFor as Za, materializeSchemaObjectRecord as Zc, coalesce as Zi, ResultMeta as Zl, GroupingValidation as Zn, PostgresConstraintExtension as Zo, SchemaDiagnostic as Zr, bigint as Zs, SourceIndex as Zt, SnapshotExpressionContext as _, notExists as _a, DefaultDescriptor as _c, and as _i, AnyFragment as _l, insertSelect as _n, StreamingTransactionalQueryAdapter as _o, FromScope as _r, ColumnDefinition as _s, CustomSourceOptions as _t, SqlOrderCompatible as _u, SnapshotBigInt as a, count as aa, nativeStorage as ac, defaultSchemaNamingPolicy as ai, ExpressionNullability as al, desc as an, QubuExplainableStreamingTransactionalClient as ao, RecursiveCteSource as ar, UniqueConstraintOptions as as, SchemaLiteralRenderer as at, sequence as au, SnapshotGeneratedColumn as b, eq as ba, ExternalDefaultDescriptor as bc, Omit$1 as bi, CardinalityMeta as bl, ConflictTarget as bn, execute as bo, crossJoin as br, ColumnHasDefault as bs, Source as bt, SqlText as bu, SnapshotConstraint as c, min as ca, portableStorage as cc, schemaNamingPolicyVersion as ci, ExpressionSqlType as cl, order as cn, QubuStreamingExplainableClient as co, recursiveCte as cr, catalogForeignKey as cs, resolveCastTarget as ct, SqlBinary as cu, SnapshotDefault as d, SqlTag as da, uuid as dc, LateralIdentity as di, isExpression as dl, DefaultValuesSource as dn, QubuTransaction as do, SetQuery as dr, primaryKey as ds, QueryKind as dt, SqlDecimal as du, upper as ea, column as ec, SchemaTableEntry as ei, expressionFragment as el, TableIndex as en, ExplainRequest as eo, RequiredScope as er, SourceConstraintsRecord as es, PaginationPart as et, VisibleDependenciesOf as eu, SnapshotDiagnostic as f, TypedSqlTag as fa, CanonicalLiteral as fc, LateralSource as fi, makeExpression as fl, InsertSelectSource as fn, QubuTransactionalClient as fo, except as fr, references as fs, QueryRow as ft, SqlEqualityComparable as fu, SnapshotExpression as g, inQuery as ga, ColumnDefaultInput as gc, lateral as gi, AggregateMeta as gl, insertInto as gn, StreamingQueryAdapter as go, FromClause as gr, ColumnDefaultOf as gs, CustomSource as gt, SqlNumericLike as gu, SnapshotDialectExtension as h, exists as ha, ColumnDefault as hc, alias as hi, AggregateDependenciesOf as hl, defaultValues as hn, StreamableQuery as ho, unionAll as hr, validateConstraintDialect as hs, AnySource as ht, SqlJson as hu, SchemaSnapshotInput as i, avg as ia, nativeColumn as ic, SchemaValidationError as ii, ExpressionKind as il, asc as in, QubuExplainableClient as io, CteSource as ir, UniqueConstraint as is, RowLockWaitPolicy as it, parenthesize as iu, SnapshotStorageContext as j, inList as ja, SchemaLiteralValue as jc, having as ji, HasWindow as jl, update as jn, QueryValidationErrorCode as jo, all as jr, ColumnStorageDescriptor as js, customSource as jt, SnapshotSpecialNumber as k, notLike as ka, MysqlIdentityExtension as kc, fetchNext as ki, HasAggregate as kl, UpdateAssignmentValue as kn, QueryTypeValidation as ko, SelectionOutput as kr, ColumnStorage as ks, UnknownSourceSqlTypes as kt, SnapshotCreateResult as l, sum as la, text as lc, AliasIdentity as li, ExpressionWithOutput as ll, orderBy as ln, QubuStreamingTransaction as lo, withCte as lr, check as ls, AnyQuery as lt, SqlBoolean as lu, SnapshotDialect as m, caseWhen as ma, ColumnBehaviorErrorCode as mc, QuerySource as mi, withDialectCapability as ml, ValuesSource as mn, QueryExecutor as mo, union as mr, uniqueConstraint as ms, Row as mt, SqlInteger as mu, SchemaSnapshot as n, schemaCall as na, integer as nc, SchemaTableRecord as ni, AnySchemaExpression as nl, validateIndexDialect as nn, ExplainableQueryAdapter as no, SelectCardinality as nr, SqliteConstraintExtension as ns, PortableCastType as nt, fragment as nu, SnapshotCheckConstraint as o, countDistinct as oa, nullable as oc, generatedTableName as oi, ExpressionOutput as ol, nullsFirst as on, QubuExplainableTransactionalClient as oo, WithClause as or, UniqueNullSemantics as os, assertDialectCapability as ot, AnySqlType as ou, SnapshotDiagnosticCode as p, sql as pa, ColumnBehaviorError as pc, QueryAliasIdentity as pi, markExpressionCategory as pl, InsertSource as pn, QueryAdapter as po, intersect as pr, unique as ps, QuerySqlTypeMap as pt, SqlEqualityCompatible as pu, DialectPagination as q, ExecutionRequest as qa, freezeSchemaMetadata as qc, denseRank as qi, RequiresOuterMetadataOf as ql, select as qn, ForeignKeyTargetInput as qo, renderSchemaSql as qr, StorageDescriptor as qs, IndexOptions as qt, SchemaSnapshotAdapter as r, typedCall as ra, json as rc, SchemaTableRegistry as ri, Expression as rl, OrderTerm as rn, QubuClient as ro, SelectQuery as rr, TableLike as rs, RowLockMode as rt, isFragment as ru, SnapshotColumn as s, max as sa, numeric as sc, schema as si, ExpressionRequires as sl, nullsLast as sn, QubuStreamingClient as so, cte as sr, catalogCheck as ss, createDialect as st, SqlBigInt as su, AnySchema as t, call as ta, date as tc, SchemaTableNames as ti, AnyExpression as tl, index as tn, ExplainResult as to, ScopeValidation as tr, SourceLike as ts, PortableCastTarget as tt, WindowMeta as tu, SnapshotDecodeResult as u, SqlFragment as ua, timestamp as uc, AliasedSource as ui, SchemaExpression as ul, deleteFrom as un, QubuStreamingTransactionalClient as uo, SetOperator as ur, foreignKey as us, Query as ut, SqlDate as uu, SnapshotExtensionContext as v, scalar as va, ExpressionDefaultDescriptor as vc, not as vi, CapabilitiesOf as vl, values as vn, TransactionOptions as vo, FromSource as vr, ColumnFromOptions as vs, ProvidedSourceIdentity as vt, SqlOrderable as vu, SnapshotIndexTermExpression as w, isNotDistinctFrom as wa, GeneratedDescriptor as wc, where as wi, Fragment as wl, OnConflictClause as wn, stream as wo, naturalJoin as wr, ColumnIsNullable as ws, SourceKind as wt, SqlUnknown as wu, SnapshotIdentity as x, gt as xa, ExternalGeneratedColumnDescriptor as xc, OmittableSelectClause as xi, CardinalityOf as xl, DoNothingAction as xn, executeRows as xo, fullJoin as xr, ColumnIdentityOf as xs, SourceColumns as xt, SqlTextLike as xu, SnapshotForeignKey as y, ComparisonValidation as ya, ExpressionGeneratedColumnDescriptor as yc, or as yi, CapabilityMetadataOf as yl, ConflictAction as yn, TransactionalQueryAdapter as yo, from as yr, ColumnGeneratedOf as ys, ProvidedSourceRow as yt, SqlSemanticType as yu, schemaSnapshotVersion as z, SqlCapabilityValidation as za, SchemaDialectExtension as zc, multiply as zi, ProvidesOuterOf as zl, MutationScopeValidation as zn, ConstraintOptions as zo, SchemaExpressionMode as zr, NativeColumnStorage as zs, TableInsertInput as zt };
4162
+ export { PaginationKind as $, ExecutionRequest as $a, SchemaObjectNameOptions as $c, rank as $i, InheritedMetadata as $l, AvailableScope as $n, ForeignKeyTargetInput as $o, unsafeSchemaSql as $r, PortableStorageType as $s, PostgresIndexExtension as $t, SnapshotStorage as A, lt as Aa, ExternalGeneratedColumnDescriptor as Ac, RowLockOptions as Ai, ResultField as Al, excluded as An, stream as Ao, groupBy as Ar, ColumnInsertInput as As, SourceSqlTypeMap as At, SqlBoolean as Au, CastTarget as B, Operand as Ba, SchemaLiteralValue as Bc, add as Bi, CapabilityMetadataOf as Bl, MutationReturning as Bn, CatalogCheckExpression as Bo, SchemaExpressionError as Br, ColumnStorageDialectOf as Bs, TableDefinitions as Bt, SqlSemanticType as Bu, SnapshotIndexTerm as C, ComparisonValidation as Ca, ColumnBehaviorErrorCode as Cc, or as Ci, markExpressionCategory as Cl, ConflictTarget as Cn, StreamingTransactionalQueryAdapter as Co, from as Cr, ColumnDefaultOf as Cs, SourceColumns as Ct, fragment as Cu, SnapshotLiteral as D, isDistinctFrom as Da, ExpressionDefaultDescriptor as Dc, omit as Di, ResultDecoder as Dl, OnConflictClause as Dn, executeRows as Do, leftJoin as Dr, ColumnGeneratedOf as Ds, SourceKind as Dt, AnySqlType as Du, SnapshotKeyConstraint as E, gte as Ea, DefaultDescriptor as Ec, SelectPart as Ei, ResultDecodeContext as El, ExcludedSource as En, execute as Eo, innerJoin as Er, ColumnFromOptions as Es, SourceIdentity as Et, sequence as Eu, neutralSnapshotDialect as F, inList as Fa, IdentityDialectExtension as Fc, having as Fi, timestampResultDecoder as Fl, AllowAllClause as Fn, QueryTypeValidation as Fo, all as Fr, ColumnOutput as Fs, exposeColumns as Ft, SqlInteger as Fu, DialectJson as G, typedValue as Ga, generatedColumn as Gc, JsonPath as Gi, Fragment as Gl, allowAll as Gn, ConstraintOptions as Go, SchemaRenderOptions as Gr, ColumnUpdateInput as Gs, TableRow as Gt, SqlUnknown as Gu, DialectCapability as H, OperandSqlType as Ha, canonicalLiteral as Hc, modulo as Hi, CardinalityOf as Hl, MutationRow as Hn, CheckConstraint as Ho, SchemaExpressionInput as Hr, ColumnStorageOf as Hs, TableInsertInput as Ht, SqlTextLike as Hu, schemaSnapshotDialectVersion as I, notIn as Ia, IdentityGeneration as Ic, distinct as Ii, AggregateDependenciesOf as Il, MutationClause as In, QueryValidationError as Io, SchemaDialect as Ir, ColumnSqlType as Is, sourceIdentity as It, SqlJson as Iu, DialectRowLocking as J, cast as Ja, SchemaDialectExtension as Jc, jsonNumber as Ji, GroupingKeysOf as Jl, ReturningSqlTypes as Jn, FieldLikeOptions as Jo, isUnsafeSchemaSql as Jr, NativeStorage as Js, table as Jt, DialectOptions as K, value as Ka, identityColumn as Kc, jsonBoolean as Ki, FragmentMeta as Kl, ReturningClause as Kn, ConstraintTiming as Ko, UnsafeSchemaSqlExpression as Kr, DialectNativeStorage as Ks, TableSqlTypes as Kt, SqlUuid as Ku, schemaSnapshotFormat as L, isNotNull as La, LiteralDefaultDescriptor as Lc, AnySelectClause as Li, AggregateMeta as Ll, MutationKind as Ln, QueryValidationErrorCode as Lo, SchemaDialectHooks as Lr, ColumnStorage as Ls, AnyTable as Lt, SqlNumericLike as Lu, SnapshotTable as M, ne as Ma, GeneratedColumnMode as Mc, fetchFirst as Mi, booleanResultDecoder as Ml, UpdateAssignmentValue as Mn, RenderOptions as Mo, SelectionObject as Mr, ColumnIsNullable as Ms, UnknownSourceSqlTypes as Mt, SqlDecimal as Mu, SnapshotUniqueConstraint as N, notLike as Na, GeneratedDescriptor as Nc, fetchNext as Ni, dateResultDecoder as Nl, UpdateAssignments as Nn, RenderedQuery as No, SelectionOutput as Nr, ColumnOnUpdateOf as Ns, createSource as Nt, SqlEqualityComparable as Nu, SnapshotNamingPolicy as O, isNotDistinctFrom as Oa, ExpressionGeneratedColumnDescriptor as Oc, where as Oi, ResultDecoders as Ol, doNothing as On, explain as Oo, naturalJoin as Or, ColumnHasDefault as Os, SourceProvision as Ot, SqlBigInt as Ou, SnapshotValidationContext as P, between as Pa, IdentityDescriptor as Pc, offset as Pi, jsonTextResultDecoder as Pl, update as Pn, render as Po, SelectionSqlTypes as Pr, ColumnOptions as Ps, customSource as Pt, SqlEqualityCompatible as Pu, NamedCastTarget as Q, ExecutionOptions as Qa, SchemaObjectIdentity as Qc, over as Qi, HasWindow as Ql, AvailableOuterScope as Qn, ForeignKeyTarget as Qo, schemaExpression as Qr, PortableStorageDescriptor as Qs, MysqlIndexExtension as Qt, schemaSnapshotNamingPolicyVersion as R, isNull as Ra, MysqlIdentityExtension as Rc, ClausePlacement as Ri, AnyFragment as Rl, MutationQuery as Rn, QueryValidationIssue as Ro, createSchemaDialect as Rr, ColumnStorageDeclarationOf as Rs, Table as Rt, SqlOrderCompatible as Ru, SnapshotIndex as S, scalar as Sa, ColumnBehaviorError as Sc, not as Si, makeExpression as Sl, ConflictAction as Sn, StreamingQueryAdapter as So, FromSource as Sr, DeclaredColumnNullability as Ss, Source as St, WindowMeta as Su, SnapshotJsonValue as T, gt as Ta, ColumnDefaultInput as Tc, OmittableSelectClause as Ti, DecodableResultType as Tl, DoUpdateAction as Tn, TransactionalQueryAdapter as To, fullJoin as Tr, ColumnDefinitionConfig as Ts, SourceConstraints as Tt, parenthesize as Tu, DialectCastTypes as U, SqlCapabilityValidation as Ua, externalDefault as Uc, multiply as Ui, DependenciesOf as Ul, MutationScopeValidation as Un, CheckConstraintOptions as Uo, SchemaExpressionMode as Ur, ColumnStorageType as Us, TableMetadataCallback as Ut, SqlTimestamp as Uu, Dialect as V, OperandNullability as Va, SqliteIdentityExtension as Vc, divide as Vi, CardinalityMeta as Vl, MutationReturningClause as Vn, CatalogCheckSql as Vo, SchemaExpressionErrorCode as Vr, ColumnStorageKindOf as Vs, TableIdentity as Vt, SqlText as Vu, DialectExplain as W, asValue as Wa, externalGeneratedColumn as Wc, subtract as Wi, ExpressionMeta as Wl, MutationSqlTypes as Wn, ConstraintDialectExtension as Wo, SchemaRenderContext as Wr, ColumnStorageTypeOf as Ws, TableOptions as Wt, SqlTypeSatisfies as Wu, ExplainRenderOptions as X, AdapterExecutionResult as Xa, SchemaMetadataDiagnostic as Xc, jsonText as Xi, HasAggregate as Xl, correlate as Xn, ForeignKeyMatch as Xo, renderSchemaExpression as Xr, PortableColumnStorage as Xs, IndexOptions as Xt, ExplainFormat as Y, typedCast as Ya, SchemaDialectName as Yc, jsonPath as Yi, GroupingMeta as Yl, returning as Yn, ForeignKeyConstraint as Yo, normalizeSchemaSql as Yr, NativeStorageDescriptor as Ys, IndexDialectExtension as Yt, JsonScalarKind as Z, DriverValueEncoder as Za, SchemaMetadataValidationError as Zc, denseRank as Zi, HasSubquery as Zl, select as Zn, ForeignKeyOptions as Zo, renderSchemaSql as Zr, PortableStorage as Zs, IndexTerm as Zt, SnapshotExpressionContext as _, sql as _a, portableStorage as _c, QueryAliasIdentity as _i, ExpressionSqlType as _l, ValuesSource as _n, QubuTransaction as _o, intersect as _r, primaryKey as _s, AnySource as _t, RequiresSourceMeta as _u, SnapshotBigInt as a, call as aa, bigint as ac, SchemaTableNames as ai, materializeSchemaObjectIdentity as al, validateIndexDialect as an, ExplainReadOptions as ao, ScopeValidation as ar, SourceConstraint as as, SchemaLiteralRenderer as at, OutputOf as au, SnapshotGeneratedColumn as b, inQuery as ba, uuid as bc, lateral as bi, SchemaExpressionBrand as bl, insertSelect as bn, QueryExecutor as bo, FromClause as br, uniqueConstraint as bs, ProvidedSourceIdentity as bt, SubqueryMeta as bu, SnapshotConstraint as c, avg as ca, column as cc, SchemaValidationError as ci, ColumnReference as cl, desc as cn, ExplainableQueryAdapter as co, CteSource as cr, SqliteConstraintExtension as cs, resolveCastTarget as ct, ProvidesSourceMeta as cu, SnapshotDefault as d, max as da, integer as dc, schema as di, AnySchemaExpression as dl, order as dn, QubuExplainableStreamingTransactionalClient as do, cte as dr, UniqueConstraintOptions as ds, QueryConfig as dt, RenderFunction as du, rowNumber as ea, StorageDeclarationOf as ec, Schema as ei, assertSchemaDialectSupport as el, SourceIndex as en, ExecutionResult as eo, ClauseScope as er, KeyConstraint as es, PaginationPart as et, InheritedMetadataOf as eu, SnapshotDiagnostic as f, min as fa, json as fc, schemaNamingPolicyVersion as fi, Expression as fl, orderBy as fn, QubuExplainableTransactionalClient as fo, recursiveCte as fr, UniqueNullSemantics as fs, QueryKind as ft, RequiresCapabilityMeta as fu, SnapshotExpression as g, TypedSqlTag as ga, numeric as gc, LateralSource as gi, ExpressionRequires as gl, InsertSource as gn, QubuStreamingTransactionalClient as go, except as gr, foreignKey as gs, Row as gt, RequiresOuterSourceMeta as gu, SnapshotDialectExtension as h, SqlTag as ha, nullable as hc, LateralIdentity as hi, ExpressionOutput as hl, InsertSelectSource as hn, QubuStreamingTransaction as ho, SetQuery as hr, check as hs, QueryWithRow as ht, RequiresOuterOf as hu, SchemaSnapshotInput as i, upper as ia, StorageTypeOf as ic, SchemaTableEntry as ii, isValidSchemaObjectName as il, index as in, ExplainPlanRow as io, RequiredScope as ir, ReferentialAction as is, RowLockWaitPolicy as it, NullableSourcesOf as iu, SnapshotStorageContext as j, lte as ja, GeneratedColumnDescriptor as jc, rowLock as ji, ResultShape as jl, onConflict as jn, RenderCapabilityValidation as jo, Selection as jr, ColumnIsGenerated as js, SourceSqlTypes as jt, SqlDate as ju, SnapshotSpecialNumber as k, like as ka, ExternalDefaultDescriptor as kc, RowLockClause as ki, ResultDecodingError as kl, doUpdate as kn, qubu as ko, rightJoin as kr, ColumnIdentityOf as ks, SourceRow as kt, SqlBinary as ku, SnapshotCreateResult as l, count as la, columnResultValue as lc, defaultSchemaNamingPolicy as li, expressionFragment as ll, nullsFirst as ln, QubuClient as lo, RecursiveCteSource as lr, TableLike as ls, AnyQuery as lt, QueryCardinality as lu, SnapshotDialect as m, SqlFragment as ma, nativeStorage as mc, AliasedSource as mi, ExpressionNullability as ml, DefaultValuesSource as mn, QubuStreamingExplainableClient as mo, SetOperator as mr, catalogForeignKey as ms, QuerySqlTypeMap as mt, RequiresOuterMetadataOf as mu, SchemaSnapshot as n, concat as na, StorageDialectOf as nc, SchemaNamingPolicy as ni, freezeSchemaMetadata as nl, SqliteIndexExtension as nn, ExplainOptions as no, MissingScope as nr, MysqlConstraintExtension as ns, PortableCastType as nt, NullabilityOf as nu, SnapshotCheckConstraint as o, schemaCall as oa, binary as oc, SchemaTableRecord as oi, materializeSchemaObjectRecord as ol, OrderTerm as on, ExplainRequest as oo, SelectCardinality as or, SourceConstraintsRecord as os, assertDialectCapability as ot, ProvidesOuterOf as ou, SnapshotDiagnosticCode as p, sum as pa, nativeColumn as pc, AliasIdentity as pi, ExpressionKind as pl, deleteFrom as pn, QubuStreamingClient as po, withCte as pr, catalogCheck as ps, QueryRow as pt, RequiresOf as pu, DialectPagination as q, mapResult as qa, resolveColumnBehavior as qc, jsonExists as qi, GroupingDependenciesOf as ql, ReturningRow as qn, FieldLike as qo, defineSchemaExpression as qr, NativeColumnStorage as qs, TableUpdateInput as qt, SchemaSnapshotAdapter as r, lower as ra, StorageOf as rc, SchemaOptions as ri, generatedSchemaObjectName as rl, TableIndex as rn, ExplainOptionsFor as ro, RequiredOuterScope as rr, PostgresConstraintExtension as rs, RowLockMode as rt, NullableSourceMeta as ru, SnapshotColumn as s, typedCall as sa, boolean as sc, SchemaTableRegistry as si, ColumnDependency as sl, asc as sn, ExplainResult as so, SelectQuery as sr, SourceLike as ss, createDialect as st, ProvidesOuterSourceMeta as su, AnySchema as t, coalesce as ta, StorageDescriptor as tc, SchemaDiagnostic as ti, dialectMismatchDiagnostic as tl, SourceIndexesRecord as tn, ExplainMutationOptions as to, GroupingValidation as tr, KeyConstraintOptions as ts, PortableCastTarget as tt, MetadataOf as tu, SnapshotDecodeResult as u, countDistinct as ua, date as uc, generatedTableName as ui, AnyExpression as ul, nullsLast as un, QubuExplainableClient as uo, WithClause as ur, UniqueConstraint as us, Query$1 as ut, RenderContext as uu, SnapshotExtensionContext as v, caseWhen as va, text as vc, QuerySource as vi, ExpressionWithOutput as vl, defaultValues as vn, QubuTransactionalClient as vo, union as vr, references as vs, CustomSource as vt, ResultMeta as vu, SnapshotIndexTermExpression as w, eq as wa, ColumnDefault as wc, Omit$1 as wi, withDialectCapability as wl, DoNothingAction as wn, TransactionOptions as wo, crossJoin as wr, ColumnDefinition as ws, SourceConfig as wt, isFragment as wu, SnapshotIdentity as x, notExists as xa, CanonicalLiteral as xc, and as xi, isExpression as xl, values as xn, StreamableQuery as xo, FromScope as xr, validateConstraintDialect as xs, ProvidedSourceRow as xt, VisibleDependenciesOf as xu, SnapshotForeignKey as y, exists as ya, timestamp as yc, alias as yi, SchemaExpression as yl, insertInto as yn, QueryAdapter as yo, unionAll as yr, unique as ys, CustomSourceOptions as yt, SqlTypeOf as yu, schemaSnapshotVersion as z, isTrue as za, ResolvedColumnBehavior as zc, SelectClause as zi, CapabilitiesOf as zl, MutationQueryConfig as zn, AnyKeyColumn as zo, RenderedSchemaExpression as zr, ColumnStorageDescriptor as zs, TableColumns as zt, SqlOrderable as zu };