diff --git a/plugins/dbgate-plugin-mysql/src/backend/Analyser.js b/plugins/dbgate-plugin-mysql/src/backend/Analyser.js index 0e4565568..afb88f78a 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-mysql/src/backend/Analyser.js @@ -184,7 +184,7 @@ class Analyser extends DatabaseAnalyser { columns: indexes.rows .filter(col => col.tableName == idx.tableName && col.constraintName == idx.constraintName) .map(col => ({ - ..._.pick(col, ['columnName']), + ..._.pick(col, ['columnName', 'isDescending']), })), })), diff --git a/plugins/dbgate-plugin-mysql/src/backend/sql/indexes.js b/plugins/dbgate-plugin-mysql/src/backend/sql/indexes.js index caaea2cb9..1dc49b195 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/sql/indexes.js +++ b/plugins/dbgate-plugin-mysql/src/backend/sql/indexes.js @@ -4,7 +4,11 @@ module.exports = ` TABLE_NAME AS tableName, COLUMN_NAME AS columnName, INDEX_TYPE AS indexType, - NON_UNIQUE AS nonUnique + NON_UNIQUE AS nonUnique, + CASE COLLATION + WHEN 'D' THEN 1 + ELSE 0 + END AS isDescending FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '#DATABASE#' AND TABLE_NAME =OBJECT_ID_CONDITION AND INDEX_NAME != 'PRIMARY' ORDER BY SEQ_IN_INDEX