diff --git a/apps/desktop/src/components/objects/ObjectBrowser.vue b/apps/desktop/src/components/objects/ObjectBrowser.vue index f450506811..225cda15cc 100644 --- a/apps/desktop/src/components/objects/ObjectBrowser.vue +++ b/apps/desktop/src/components/objects/ObjectBrowser.vue @@ -167,7 +167,12 @@ const canOpenDiagram = computed(() => !!props.database && supportsSchemaDiagram( const canOpenTableImport = computed(() => !!props.database && supportsTableImport(props.connection.db_type)); const supportsTruncateTable = computed(() => supportsTableTruncate(props.connection.db_type)); const sourceDialect = computed<"mysql" | "postgres" | "sqlserver">(() => { - if (props.connection.db_type === "postgres" || props.connection.db_type === "gaussdb") return "postgres"; + if ( + props.connection.db_type === "postgres" || + props.connection.db_type === "gaussdb" || + props.connection.db_type === "opengauss" + ) + return "postgres"; if (props.connection.db_type === "sqlserver") return "sqlserver"; return "mysql"; }); @@ -178,6 +183,9 @@ const sourceFormatDialect = computed(() => { case "sqlite": case "sqlserver": return props.connection.db_type; + case "gaussdb": + case "opengauss": + return "postgres"; default: return "generic"; } diff --git a/apps/desktop/src/components/structure/TableStructureEditor.vue b/apps/desktop/src/components/structure/TableStructureEditor.vue index 62f7ba36f2..e8b1c07b3a 100644 --- a/apps/desktop/src/components/structure/TableStructureEditor.vue +++ b/apps/desktop/src/components/structure/TableStructureEditor.vue @@ -284,6 +284,7 @@ function onIndexColResize(e: MouseEvent, col: number) { const connection = computed(() => (props.connectionId ? store.getConfig(props.connectionId) : undefined)); const databaseType = computed(() => connection.value?.db_type); const structureCapabilities = computed(() => getTableStructureCapabilities(databaseType.value)); +const structureDialect = computed(() => structureCapabilities.value.dialect); const isTableCommentDisabled = computed(() => !structureCapabilities.value.comment); const dataTypeOptions = computed(() => getDataTypeOptions(databaseType.value)); @@ -295,12 +296,23 @@ const indexTypesByDb: Record = { sqlite: ["BTREE"], }; const indexTypeOptions = computed(() => - structureCapabilities.value.indexType ? (indexTypesByDb[databaseType.value ?? ""] ?? []) : [], + structureCapabilities.value.indexType ? (indexTypesByDb[structureDialect.value] ?? []) : [], ); +function isPostgresIdentityType(dbType: string | undefined): boolean { + return ( + dbType === "postgres" || + dbType === "gaussdb" || + dbType === "opengauss" || + dbType === "highgo" || + dbType === "vastbase" || + dbType === "kingbase" + ); +} + const showExtendedProperties = computed(() => { const dt = databaseType.value; - return dt === "mysql" || dt === "postgres" || dt === "sqlserver"; + return dt === "mysql" || isPostgresIdentityType(dt) || dt === "sqlserver"; }); const extendedPropertiesColumnIndex = 8; const visibleColWidths = computed(() => @@ -1010,7 +1022,7 @@ watch(
-