diff --git a/plugins/dbgate-plugin-firebird/src/backend/Analyser.js b/plugins/dbgate-plugin-firebird/src/backend/Analyser.js index ebfd8ffb7..4e73578fc 100644 --- a/plugins/dbgate-plugin-firebird/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-firebird/src/backend/Analyser.js @@ -1,6 +1,6 @@ const _ = require('lodash'); const sql = require('./sql'); -const { getDataTypeString, getTriggerTiming, getTriggerEventType } = require('./helpers'); +const { getDataTypeString, getTriggerTiming, getTriggerEventType, getFormattedDefaultValue } = require('./helpers'); const { DatabaseAnalyser } = require('dbgate-tools'); @@ -23,6 +23,7 @@ class Analyser extends DatabaseAnalyser { const columns = columnsResult.rows?.map(column => ({ ...column, dataType: getDataTypeString(column), + defaultValue: getFormattedDefaultValue(column.defaultValue), })); const triggers = triggersResult.rows?.map(i => ({ diff --git a/plugins/dbgate-plugin-firebird/src/backend/helpers.js b/plugins/dbgate-plugin-firebird/src/backend/helpers.js index 2eecf501d..0c2d9589c 100644 --- a/plugins/dbgate-plugin-firebird/src/backend/helpers.js +++ b/plugins/dbgate-plugin-firebird/src/backend/helpers.js @@ -75,8 +75,15 @@ function getTriggerTiming(triggerType) { return eventMap[triggerType]?.triggerTiming || null; } +function getFormattedDefaultValue(defaultValue) { + if (defaultValue === null) return null; + + return defaultValue.replace(/^default\s*/i, ''); +} + module.exports = { getDataTypeString, getTriggerEventType, getTriggerTiming, + getFormattedDefaultValue, }; diff --git a/plugins/dbgate-plugin-firebird/src/backend/sql/columns.js b/plugins/dbgate-plugin-firebird/src/backend/sql/columns.js index eafcbc342..521151460 100644 --- a/plugins/dbgate-plugin-firebird/src/backend/sql/columns.js +++ b/plugins/dbgate-plugin-firebird/src/backend/sql/columns.js @@ -18,7 +18,7 @@ SELECT DISTINCT f.rdb$field_precision AS "precision", f.rdb$field_scale AS "scale", f.rdb$field_length AS "length", - CAST(TRIM(rf.rdb$default_value) AS VARCHAR(255)) AS "defaultValue", + CAST(TRIM(rf.RDB$DEFAULT_SOURCE) AS VARCHAR(255)) AS "defaultValue", CAST(TRIM(rf.rdb$description) AS VARCHAR(255)) AS "columnComment", CASE WHEN f.rdb$field_type IN (8, 9, 16) AND f.rdb$field_scale < 0 THEN TRUE