fix: correctly show default value for firebird

This commit is contained in:
Pavel
2025-05-22 16:48:11 +02:00
parent d4931890ae
commit 8ea7d3d5e8
3 changed files with 10 additions and 2 deletions

View File

@@ -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 => ({

View File

@@ -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,
};

View File

@@ -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