mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-24 23:26:00 +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 functionParametersResults = await this.analyserQuery(sql.functionParameters, ['functions']);
|
||||||
const proceduresResults = await this.analyserQuery(sql.procedures, ['procedures']);
|
const proceduresResults = await this.analyserQuery(sql.procedures, ['procedures']);
|
||||||
const procedureParametersResults = await this.analyserQuery(sql.procedureParameters, ['procedures']);
|
const procedureParametersResults = await this.analyserQuery(sql.procedureParameters, ['procedures']);
|
||||||
|
const viewsResults = await this.analyserQuery(sql.views, ['views']);
|
||||||
|
|
||||||
const columns = columnsResult.rows?.map(column => ({
|
const columns = columnsResult.rows?.map(column => ({
|
||||||
...column,
|
...column,
|
||||||
@@ -87,7 +88,15 @@ class Analyser extends DatabaseAnalyser {
|
|||||||
foreignKeys: DatabaseAnalyser.extractForeignKeys(table, foreignKeys),
|
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 {
|
return {
|
||||||
|
views,
|
||||||
tables,
|
tables,
|
||||||
triggers,
|
triggers,
|
||||||
functions,
|
functions,
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ const functions = require('./functions');
|
|||||||
const functionParameters = require('./functionParameters');
|
const functionParameters = require('./functionParameters');
|
||||||
const procedures = require('./procedures');
|
const procedures = require('./procedures');
|
||||||
const procedureParameters = require('./procedureParameters');
|
const procedureParameters = require('./procedureParameters');
|
||||||
|
const views = require('./views');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
version,
|
version,
|
||||||
columns,
|
columns,
|
||||||
|
views,
|
||||||
tables,
|
tables,
|
||||||
triggers,
|
triggers,
|
||||||
primaryKeys,
|
primaryKeys,
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ FROM
|
|||||||
RDB$RELATIONS
|
RDB$RELATIONS
|
||||||
WHERE
|
WHERE
|
||||||
RDB$SYSTEM_FLAG = 0 -- only user-defined tables
|
RDB$SYSTEM_FLAG = 0 -- only user-defined tables
|
||||||
|
AND
|
||||||
|
RDB$RELATION_TYPE = 0 -- only tables (not views, etc.)
|
||||||
AND
|
AND
|
||||||
('tables:' || TRIM(RDB$RELATION_NAME)) =OBJECT_ID_CONDITION
|
('tables:' || TRIM(RDB$RELATION_NAME)) =OBJECT_ID_CONDITION
|
||||||
ORDER BY
|
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