fix(postgres): preserve overloaded routine signatures
This commit is contained in:
1 parent
4b2a6c971a
commit
727290fa32
6 files changed
+36
-11
No files matched your search
@@ -527,24 +527,24 @@ async function handleSelectObject(obj: SchemaDiffObject) {
|
||||
try {
|
||||
// For "create" objects: source has it, target doesn't → fetch source DDL
|
||||
if (obj.operationType === "create" && !obj.sourceDdl) {
|
||||
const result = await api.getObjectSource(sourceConnectionId.value, sourceDatabase.value, sourceSchema.value, obj.name, objectType);
|
||||
const result = await api.getObjectSource(sourceConnectionId.value, sourceDatabase.value, sourceSchema.value, obj.name, objectType, obj.arguments);
|
||||
if (result?.source) obj.sourceDdl = result.source;
|
||||
}
|
||||
|
||||
// For "delete" objects: target has it, source doesn't → fetch target DDL
|
||||
if (obj.operationType === "delete" && !obj.targetDdl) {
|
||||
const result = await api.getObjectSource(targetConnectionId.value, targetDatabase.value, targetSchema.value, obj.name, objectType);
|
||||
const result = await api.getObjectSource(targetConnectionId.value, targetDatabase.value, targetSchema.value, obj.name, objectType, obj.arguments);
|
||||
if (result?.source) obj.targetDdl = result.source;
|
||||
}
|
||||
|
||||
// For "modify" objects: fetch whichever side is missing
|
||||
if (obj.operationType === "modify") {
|
||||
if (!obj.sourceDdl) {
|
||||
const result = await api.getObjectSource(sourceConnectionId.value, sourceDatabase.value, sourceSchema.value, obj.name, objectType);
|
||||
const result = await api.getObjectSource(sourceConnectionId.value, sourceDatabase.value, sourceSchema.value, obj.name, objectType, obj.arguments);
|
||||
if (result?.source) obj.sourceDdl = result.source;
|
||||
}
|
||||
if (!obj.targetDdl) {
|
||||
const result = await api.getObjectSource(targetConnectionId.value, targetDatabase.value, targetSchema.value, obj.name, objectType);
|
||||
const result = await api.getObjectSource(targetConnectionId.value, targetDatabase.value, targetSchema.value, obj.name, objectType, obj.arguments);
|
||||
if (result?.source) obj.targetDdl = result.source;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1031,7 +1031,7 @@ async function openSource(row: ObjectBrowserRow) {
|
||||
const database = props.database;
|
||||
const schema = row.schema || selectedSchema.value || database;
|
||||
try {
|
||||
const result = await api.getObjectSource(connectionId, database, schema, row.name, row.type as ObjectSourceKind);
|
||||
const result = await api.getObjectSource(connectionId, database, schema, row.name, row.type as ObjectSourceKind, row.signature ?? undefined);
|
||||
if (sidePanelGuard.isStale(epoch)) return;
|
||||
sourceCanEdit.value = result.editable !== false && !["SEQUENCE", "TRIGGER", "TYPE", "TYPE_BODY"].includes(row.type);
|
||||
const editable = sourceCanEdit.value
|
||||
@@ -1154,7 +1154,7 @@ async function confirmRename() {
|
||||
try {
|
||||
const schema = row.schema || selectedSchema.value || props.database;
|
||||
if (supportsSourceBackedRoutineRename(effectiveDatabaseType.value, row.type as ObjectSourceKind)) {
|
||||
const source = await api.getObjectSource(props.connection.id, props.database, schema, row.name, row.type as ObjectSourceKind);
|
||||
const source = await api.getObjectSource(props.connection.id, props.database, schema, row.name, row.type as ObjectSourceKind, row.signature ?? undefined);
|
||||
const statements = await buildRoutineRenameObjectSourceStatements({
|
||||
databaseType: effectiveDatabaseType.value,
|
||||
objectType: row.type as ObjectSourceKind,
|
||||
|
||||
Reference in new issue
Block a user