@crvouga/mockingbird-service-postgres 3.4.1 → 3.6.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.
@@ -628,6 +628,9 @@ export interface CreateFunctionStmt {
628
628
  }
629
629
  export interface CreateTriggerStmt {
630
630
  readonly type: "create_trigger";
631
+ readonly constraint: boolean;
632
+ readonly deferrable: boolean;
633
+ readonly initiallyDeferred: boolean;
631
634
  readonly orReplace: boolean;
632
635
  readonly name: string;
633
636
  readonly timing: "before" | "after" | "instead_of";
@@ -787,6 +790,11 @@ export interface TransactionStmt {
787
790
  /** COMMIT/ROLLBACK AND CHAIN */
788
791
  readonly chain?: boolean;
789
792
  }
793
+ export interface SetConstraintsStmt {
794
+ readonly type: "set_constraints";
795
+ readonly names: string[][] | null;
796
+ readonly deferred: boolean;
797
+ }
790
798
  export interface SetStmt {
791
799
  readonly type: "set";
792
800
  readonly name: string;
@@ -861,4 +869,4 @@ export interface DoStmt {
861
869
  readonly language: string;
862
870
  readonly body: string;
863
871
  }
864
- export type Statement = SelectStmt | InsertStmt | UpdateStmt | DeleteStmt | CreateTableStmt | CreateTableAsStmt | CreateIndexStmt | CreateViewStmt | CreateSequenceStmt | AlterSequenceStmt | CreateSchemaStmt | CreateExtensionStmt | CreateEnumStmt | AlterEnumStmt | CreateDomainStmt | CreateFunctionStmt | CreateTriggerStmt | AlterTableStmt | AlterViewStmt | AlterIndexStmt | AlterSchemaStmt | DropStmt | TruncateStmt | RefreshMaterializedViewStmt | TransactionStmt | SetStmt | ShowStmt | ResetStmt | PrepareStmt | ExecuteStmt | DeallocateStmt | ExplainStmt | CopyStmt | CommentStmt | AnalyzeStmt | ReindexStmt | NoOpStmt | DoStmt;
872
+ export type Statement = SelectStmt | InsertStmt | UpdateStmt | DeleteStmt | CreateTableStmt | CreateTableAsStmt | CreateIndexStmt | CreateViewStmt | CreateSequenceStmt | AlterSequenceStmt | CreateSchemaStmt | CreateExtensionStmt | CreateEnumStmt | AlterEnumStmt | CreateDomainStmt | CreateFunctionStmt | CreateTriggerStmt | AlterTableStmt | AlterViewStmt | AlterIndexStmt | AlterSchemaStmt | DropStmt | TruncateStmt | RefreshMaterializedViewStmt | TransactionStmt | SetConstraintsStmt | SetStmt | ShowStmt | ResetStmt | PrepareStmt | ExecuteStmt | DeallocateStmt | ExplainStmt | CopyStmt | CommentStmt | AnalyzeStmt | ReindexStmt | NoOpStmt | DoStmt;
@@ -0,0 +1,4 @@
1
+ import type { TableData } from "../storage/database-state.js";
2
+ import type { Datum } from "../types/value.js";
3
+ import { RowScope } from "./relation.js";
4
+ export declare function triggerScope(table: TableData, newRow: Datum[] | null, oldRow: Datum[] | null): RowScope;
@@ -1,3 +1,5 @@
1
+ import type { SetConstraintsStmt } from "../ast/nodes.js";
2
+ import type { DatabaseState } from "../storage/database-state.js";
1
3
  import type { TableData, TriggerMeta } from "../storage/database-state.js";
2
4
  import type { Datum } from "../types/value.js";
3
5
  import type { ExecEnv } from "./relation.js";
@@ -14,3 +16,5 @@ export type TriggerExecutor = (env: ExecEnv, table: TableData, trigger: TriggerM
14
16
  export declare function setTriggerExecutor(e: TriggerExecutor): void;
15
17
  export declare function fireRowTriggers(env: ExecEnv, table: TableData, timing: "before" | "after" | "instead_of", event: TriggerEvent, oldRow: Datum[] | null, newRow: Datum[] | null): TriggerFireResult;
16
18
  export declare function hasRowTriggers(table: TableData, timing: "before" | "after" | "instead_of", event: TriggerEvent): boolean;
19
+ export declare function flushConstraintTriggers(state: DatabaseState, all?: boolean): void;
20
+ export declare function setConstraints(state: DatabaseState, stmt: SetConstraintsStmt): void;