fix(oracle): skip rowid for view data queries
This commit is contained in:
1 parent
7e7c4944e9
commit
223ecbec20
16 files changed
+78
-31
No files matched your search
@@ -33,7 +33,7 @@ export function useDataGridActions(activeTab: ComputedRef<QueryTab | undefined>)
|
||||
const effectiveDbType = effectiveDatabaseTypeForConnection(config);
|
||||
const tableMeta = tableMetaForDataTab(tab);
|
||||
const primaryKeys = tab.tableMeta ? tab.tableMeta.primaryKeys : (tableMeta?.primaryKeys ?? []);
|
||||
const useRowId = usesSyntheticRowIdKey(effectiveDbType, primaryKeys);
|
||||
const useRowId = usesSyntheticRowIdKey(effectiveDbType, primaryKeys, tableMeta?.tableType);
|
||||
return buildTableSelectSql({
|
||||
databaseType: effectiveDbType,
|
||||
schema: tableMeta?.schema,
|
||||
|
||||
@@ -14,6 +14,7 @@ export type NavigationTarget = {
|
||||
database: string;
|
||||
schema?: string;
|
||||
tableName: string;
|
||||
tableType?: string;
|
||||
columnName?: string;
|
||||
whereInput?: string;
|
||||
};
|
||||
@@ -55,13 +56,15 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
if (!config) throw new Error("Connection config not found");
|
||||
const effectiveDbType = effectiveDatabaseTypeForConnection(config);
|
||||
const querySchema = metadataSchemaForConnection(config, target.database, target.schema);
|
||||
const targetTableType = target.tableType ?? "TABLE";
|
||||
if (config.db_type === "neo4j") {
|
||||
const columns = await api.getColumns(target.connectionId, target.database, querySchema, target.tableName);
|
||||
const primaryKeys = editableRowIdentifierColumns(effectiveDbType, columns);
|
||||
const primaryKeys = editableRowIdentifierColumns(effectiveDbType, columns, undefined, targetTableType);
|
||||
const sql = await buildTableSelectSql({
|
||||
databaseType: effectiveDbType,
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: targetTableType,
|
||||
columns: columns.map((column) => column.name),
|
||||
primaryKeys,
|
||||
whereInput: target.whereInput,
|
||||
@@ -71,7 +74,7 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
queryStore.setTableMeta(tabId, {
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: "TABLE",
|
||||
tableType: targetTableType,
|
||||
columns,
|
||||
primaryKeys,
|
||||
});
|
||||
@@ -82,6 +85,7 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
databaseType: effectiveDbType,
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: targetTableType,
|
||||
whereInput: target.whereInput,
|
||||
limit: pageLimit,
|
||||
});
|
||||
@@ -89,7 +93,7 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
queryStore.setTableMeta(tabId, {
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: "TABLE",
|
||||
tableType: targetTableType,
|
||||
columns: [],
|
||||
primaryKeys: [],
|
||||
});
|
||||
@@ -106,6 +110,7 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
databaseType: effectiveDbType,
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: targetTableType,
|
||||
whereInput: target.whereInput,
|
||||
limit: 0,
|
||||
});
|
||||
@@ -115,12 +120,12 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
try {
|
||||
const columns = await api.getColumns(target.connectionId, target.database, querySchema, target.tableName);
|
||||
const indexes = await api.listIndexes(target.connectionId, target.database, querySchema, target.tableName).catch(() => []);
|
||||
const primaryKeys = editableRowIdentifierColumns(effectiveDbType, columns, indexes);
|
||||
const useRowId = usesSyntheticRowIdKey(effectiveDbType, primaryKeys);
|
||||
const primaryKeys = editableRowIdentifierColumns(effectiveDbType, columns, indexes, targetTableType);
|
||||
const useRowId = usesSyntheticRowIdKey(effectiveDbType, primaryKeys, targetTableType);
|
||||
queryStore.setTableMeta(tabId, {
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: "TABLE",
|
||||
tableType: targetTableType,
|
||||
columns,
|
||||
primaryKeys,
|
||||
});
|
||||
@@ -129,6 +134,7 @@ async function openTableTarget(target: NavigationTarget, options: { tableInfoTab
|
||||
databaseType: effectiveDbType,
|
||||
schema: target.schema,
|
||||
tableName: target.tableName,
|
||||
tableType: targetTableType,
|
||||
whereInput: target.whereInput,
|
||||
primaryKeys,
|
||||
columns: columns.map((column) => column.name),
|
||||
|
||||
Reference in new issue
Block a user