fix(xugu): enable safe row editing without primary keys

This commit is contained in:
Elias authored and GitHub committed 2026-09-07 22:44:30 +08:00
1 parent 39b2d2a6ac
commit 3e75be87eb
17 files changed
+236 -50

No files matched your search

@@ -1,7 +1,7 @@
import type { DatabaseType } from "@/types/database";
import { isSchemaAware, usesTreeSchemaMode } from "@/lib/database/databaseFeatureSupport";
export type SyntheticEditKey = "oracle-rowid" | "neo4j-element-id";
export type SyntheticEditKey = "oracle-rowid" | "xugu-rowid" | "neo4j-element-id";
export interface TableDataCapability {
insert: boolean;
@@ -158,6 +158,20 @@ const DATABASE_CAPABILITY_OVERRIDES: Partial<Record<DatabaseType, Partial<Databa
oracle: {
syntheticKey: "oracle-rowid",
},
xugu: {
// Xugu exposes a stable ROWID pseudo-column for base, partitioned and
// temporary tables. Keep this capability scoped to Xugu instead of
// broadening Oracle-compatible behavior for other drivers.
syntheticKey: "xugu-rowid",
tableData: {
insert: true,
updateRequiresPrimaryKey: false,
deleteRequiresPrimaryKey: false,
keylessRowPredicate: true,
requiresTransactionalTableForExistingRows: false,
transaction: true,
},
},
"oceanbase-oracle": {
syntheticKey: "oracle-rowid",
},