mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 07:56:01 +00:00
feat: add views to firebird
This commit is contained in:
@@ -25,6 +25,7 @@ class Analyser extends DatabaseAnalyser {
|
||||
const functionParametersResults = await this.analyserQuery(sql.functionParameters, ['functions']);
|
||||
const proceduresResults = await this.analyserQuery(sql.procedures, ['procedures']);
|
||||
const procedureParametersResults = await this.analyserQuery(sql.procedureParameters, ['procedures']);
|
||||
const viewsResults = await this.analyserQuery(sql.views, ['views']);
|
||||
|
||||
const columns = columnsResult.rows?.map(column => ({
|
||||
...column,
|
||||
@@ -87,7 +88,15 @@ class Analyser extends DatabaseAnalyser {
|
||||
foreignKeys: DatabaseAnalyser.extractForeignKeys(table, foreignKeys),
|
||||
})) ?? [];
|
||||
|
||||
const views =
|
||||
viewsResults.rows?.map(view => ({
|
||||
...view,
|
||||
objectId: `views:${view.pureName}`,
|
||||
columns: columns.filter(column => column.tableName === view.pureName),
|
||||
})) ?? [];
|
||||
|
||||
return {
|
||||
views,
|
||||
tables,
|
||||
triggers,
|
||||
functions,
|
||||
|
||||
@@ -8,10 +8,12 @@ const functions = require('./functions');
|
||||
const functionParameters = require('./functionParameters');
|
||||
const procedures = require('./procedures');
|
||||
const procedureParameters = require('./procedureParameters');
|
||||
const views = require('./views');
|
||||
|
||||
module.exports = {
|
||||
version,
|
||||
columns,
|
||||
views,
|
||||
tables,
|
||||
triggers,
|
||||
primaryKeys,
|
||||
|
||||
@@ -6,6 +6,8 @@ FROM
|
||||
RDB$RELATIONS
|
||||
WHERE
|
||||
RDB$SYSTEM_FLAG = 0 -- only user-defined tables
|
||||
AND
|
||||
RDB$RELATION_TYPE = 0 -- only tables (not views, etc.)
|
||||
AND
|
||||
('tables:' || TRIM(RDB$RELATION_NAME)) =OBJECT_ID_CONDITION
|
||||
ORDER BY
|
||||
|
||||
14
plugins/dbgate-plugin-firebird/src/backend/sql/views.js
Normal file
14
plugins/dbgate-plugin-firebird/src/backend/sql/views.js
Normal file
@@ -0,0 +1,14 @@
|
||||
module.exports = `SELECT
|
||||
TRIM(RDB$RELATION_NAME) AS "pureName",
|
||||
RDB$DESCRIPTION AS "objectComment",
|
||||
RDB$FORMAT AS "objectTypeField"
|
||||
FROM
|
||||
RDB$RELATIONS
|
||||
WHERE
|
||||
RDB$SYSTEM_FLAG = 0 -- only user-defined tables
|
||||
AND
|
||||
RDB$RELATION_TYPE = 1 -- only views (not tables, etc.)
|
||||
AND
|
||||
('tables:' || TRIM(RDB$RELATION_NAME)) =OBJECT_ID_CONDITION
|
||||
ORDER BY
|
||||
"pureName";`;
|
||||
Reference in New Issue
Block a user