mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 07:56:01 +00:00
45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
module.exports = `
|
|
SELECT DISTINCT
|
|
CAST(TRIM(rf.rdb$relation_name) AS VARCHAR(255)) AS "tableName",
|
|
CAST(TRIM(rf.rdb$field_name) AS VARCHAR(255)) AS "columnName",
|
|
CASE rf.rdb$null_flag WHEN 1 THEN TRUE ELSE FALSE END AS "notNull",
|
|
CASE
|
|
WHEN EXISTS (
|
|
SELECT 1
|
|
FROM rdb$relation_constraints rc
|
|
JOIN rdb$index_segments idx ON rc.rdb$index_name = idx.rdb$index_name
|
|
WHERE rc.rdb$relation_name = rf.rdb$relation_name
|
|
AND idx.rdb$field_name = rf.rdb$field_name
|
|
AND rc.rdb$constraint_type = 'PRIMARY KEY'
|
|
) THEN TRUE
|
|
ELSE FALSE
|
|
END AS "isPrimaryKey",
|
|
f.rdb$field_type AS "dataTypeCode",
|
|
f.rdb$field_precision AS "precision",
|
|
f.rdb$field_scale AS "scale",
|
|
f.rdb$field_length / 4 AS "length",
|
|
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
|
|
ELSE FALSE
|
|
END AS "isUnsigned",
|
|
CAST(TRIM(rf.rdb$relation_name) AS VARCHAR(255)) AS "pureName"
|
|
FROM
|
|
rdb$relation_fields rf
|
|
JOIN
|
|
rdb$relations r ON rf.rdb$relation_name = r.rdb$relation_name
|
|
LEFT JOIN
|
|
rdb$fields f ON rf.rdb$field_source = f.rdb$field_name
|
|
LEFT JOIN
|
|
rdb$character_sets cs ON f.rdb$character_set_id = cs.rdb$character_set_id
|
|
LEFT JOIN
|
|
rdb$collations co ON f.rdb$collation_id = co.rdb$collation_id
|
|
WHERE
|
|
r.rdb$system_flag = 0
|
|
AND
|
|
('columns:' || CAST(TRIM(rf.rdb$field_name) AS VARCHAR(255))) =OBJECT_ID_CONDITION
|
|
ORDER BY
|
|
"tableName", rf.rdb$field_position;
|
|
`;
|