feat(oracle): support safe trigger structure editing
This commit is contained in:
1 parent
0a5fbb6f8c
commit
fdaef62518
5 files changed
+44
-16
No files matched your search
@@ -1,8 +1,10 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
canEditStructuredTriggerDraft,
|
||||
combineDataTypeForDatabase,
|
||||
combineDataTypeForDatabaseWithLengthUnit,
|
||||
createColumnDrafts,
|
||||
createTriggerDrafts,
|
||||
dataTypeLengthInputValue,
|
||||
dataTypeLengthUnitValue,
|
||||
DATA_TYPE_OPTIONS,
|
||||
@@ -24,6 +26,25 @@ import {
|
||||
} from "@/lib/table/tableStructureEditorState";
|
||||
|
||||
describe("tableStructureEditorState", () => {
|
||||
it("keeps existing Oracle trigger drafts read-only until full source editing is available", () => {
|
||||
const [existing] = createTriggerDrafts([{ name: "ORDERS_AUDIT", timing: "AFTER EACH ROW", event: "INSERT OR UPDATE", statement: "BEGIN NULL; END;" }]);
|
||||
if (!existing) throw new Error("expected an existing trigger draft");
|
||||
|
||||
expect(canEditStructuredTriggerDraft("oracle", existing)).toBe(false);
|
||||
expect(canEditStructuredTriggerDraft(undefined, existing)).toBe(false);
|
||||
expect(canEditStructuredTriggerDraft("mysql", existing)).toBe(true);
|
||||
expect(
|
||||
canEditStructuredTriggerDraft("oracle", {
|
||||
id: "new:trigger",
|
||||
name: "ORDERS_AUDIT",
|
||||
timing: "AFTER EACH ROW",
|
||||
event: "INSERT",
|
||||
statement: "BEGIN NULL; END;",
|
||||
markedForDrop: false,
|
||||
}),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("hydrates Kingbase type parameters returned separately from the data type", () => {
|
||||
const columns = createColumnDrafts(
|
||||
[
|
||||
|
||||
@@ -816,6 +816,10 @@ export function createTriggerDrafts(triggers: TriggerInfo[]): EditableStructureT
|
||||
}));
|
||||
}
|
||||
|
||||
export function canEditStructuredTriggerDraft(databaseType: DatabaseType | undefined, trigger: EditableStructureTrigger): boolean {
|
||||
return !trigger.original || (databaseType !== undefined && databaseType !== "oracle");
|
||||
}
|
||||
|
||||
export function toColumnNames(columns: string[]): string {
|
||||
return columns.join(", ");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user