From 70c887a16a1562f81331e3a4b2c0345e0c06cecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=97=E6=B4=8B?= Date: Thu, 7 Dec 2023 10:03:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=E8=BE=BE=E6=A2=A6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9F=A5=E8=AF=A2=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/internal/db/dbm/dialect_dm.go | 2 +- server/internal/db/dbm/metasql/dm_meta.sql | 27 +++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/server/internal/db/dbm/dialect_dm.go b/server/internal/db/dbm/dialect_dm.go index 029d694a..f76a7eed 100644 --- a/server/internal/db/dbm/dialect_dm.go +++ b/server/internal/db/dbm/dialect_dm.go @@ -136,7 +136,7 @@ func (pd *DMDialect) GetTableIndex(tableName string) ([]Index, error) { indexs = append(indexs, Index{ IndexName: re["indexName"].(string), ColumnName: anyx.ConvString(re["columnName"]), - IndexType: anyx.ConvString(re["IndexType"]), + IndexType: anyx.ConvString(re["indexType"]), IndexComment: anyx.ConvString(re["indexComment"]), NonUnique: anyx.ConvInt(re["nonUnique"]), SeqInIndex: anyx.ConvInt(re["seqInIndex"]), diff --git a/server/internal/db/dbm/metasql/dm_meta.sql b/server/internal/db/dbm/metasql/dm_meta.sql index 765df528..c7576d1e 100644 --- a/server/internal/db/dbm/metasql/dm_meta.sql +++ b/server/internal/db/dbm/metasql/dm_meta.sql @@ -15,19 +15,20 @@ where a.owner = (SELECT SF_GET_SCHEMA_NAME_BY_ID(CURRENT_SCHID)) and a.object_type = 'TABLE' --------------------------------------- --DM_INDEX_INFO 表索引信息 -SELECT - indexname AS "indexName", - 'BTREE' AS "IndexType", - case when indexdef like 'CREATE UNIQUE INDEX%%' then 0 else 1 end as "nonUnique", - obj_description(b.oid, 'pg_class') AS "indexComment", - indexdef AS "indexDef", - c.attname AS "columnName", - c.attnum AS "seqInIndex" -FROM pg_indexes a - join pg_class b on a.indexname = b.relname - join pg_attribute c on b.oid = c.attrelid -WHERE a.schemaname = (select current_schema()) - AND a.tablename = '%s'; +select + a.index_name as indexName, + a.index_type as indexType, + case when a.uniqueness = 'UNIQUE' then 1 else 0 end as nonUnique, + indexdef(b.object_id,1) as indexDef, + c.column_name as columnName, + c.column_position as seqInIndex, + '无' as indexComment +FROM DBA_INDEXES a + JOIN dba_objects b on a.owner = b.owner and b.object_name = a.index_name and b.object_type = 'INDEX' + JOIN DBA_IND_COLUMNS c on a.owner = c.table_owner and a.index_name = c.index_name and a.TABLE_NAME = c.table_name + +WHERE a.owner = (SELECT SF_GET_SCHEMA_NAME_BY_ID(CURRENT_SCHID)) and a.TABLE_NAME = '%s' +order by a.TABLE_NAME, a.index_name, c.column_position asc --------------------------------------- --DM_COLUMN_MA 表列信息 select a.table_name as tableName,