mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 09:13:58 +00:00
oracle view fix
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
const { testWrapper } = require('../tools');
|
const { testWrapper } = require('../tools');
|
||||||
const engines = require('../engines');
|
const engines = require('../engines');
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const { formatQueryWithoutParams } = require('dbgate-tools');
|
const { formatQueryWithoutParams, runCommandOnDriver } = require('dbgate-tools');
|
||||||
|
|
||||||
const initSql = ['CREATE TABLE t1 (id int primary key)', 'CREATE TABLE t2 (id int primary key)'];
|
const initSql = ['CREATE TABLE ~t1 (~id int primary key)', 'CREATE TABLE ~t2 (~id int primary key)'];
|
||||||
|
|
||||||
function flatSource() {
|
function flatSource() {
|
||||||
return _.flatten(
|
return _.flatten(
|
||||||
@@ -35,9 +35,9 @@ describe('Object analyse', () => {
|
|||||||
test.each(flatSource())(
|
test.each(flatSource())(
|
||||||
'Full analysis - %s - %s',
|
'Full analysis - %s - %s',
|
||||||
testWrapper(async (conn, driver, type, object, engine) => {
|
testWrapper(async (conn, driver, type, object, engine) => {
|
||||||
for (const sql of initSql) await driver.query(conn, sql, { discardResult: true });
|
for (const sql of initSql) await runCommandOnDriver(conn, driver, sql);
|
||||||
|
|
||||||
await driver.query(conn, formatQueryWithoutParams(driver, object.create1), { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.create1);
|
||||||
const structure = await driver.analyseFull(conn);
|
const structure = await driver.analyseFull(conn);
|
||||||
|
|
||||||
expect(structure[type].length).toEqual(1);
|
expect(structure[type].length).toEqual(1);
|
||||||
@@ -48,11 +48,11 @@ describe('Object analyse', () => {
|
|||||||
test.each(flatSource())(
|
test.each(flatSource())(
|
||||||
'Incremental analysis - add - %s - %s',
|
'Incremental analysis - add - %s - %s',
|
||||||
testWrapper(async (conn, driver, type, object, engine) => {
|
testWrapper(async (conn, driver, type, object, engine) => {
|
||||||
for (const sql of initSql) await driver.query(conn, sql, { discardResult: true });
|
for (const sql of initSql) await runCommandOnDriver(conn, driver, sql);
|
||||||
|
|
||||||
await driver.query(conn, object.create2, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.create2);
|
||||||
const structure1 = await driver.analyseFull(conn);
|
const structure1 = await driver.analyseFull(conn);
|
||||||
await driver.query(conn, object.create1, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.create1);
|
||||||
const structure2 = await driver.analyseIncremental(conn, structure1);
|
const structure2 = await driver.analyseIncremental(conn, structure1);
|
||||||
|
|
||||||
expect(structure2[type].length).toEqual(2);
|
expect(structure2[type].length).toEqual(2);
|
||||||
@@ -63,12 +63,12 @@ describe('Object analyse', () => {
|
|||||||
test.each(flatSource())(
|
test.each(flatSource())(
|
||||||
'Incremental analysis - drop - %s - %s',
|
'Incremental analysis - drop - %s - %s',
|
||||||
testWrapper(async (conn, driver, type, object, engine) => {
|
testWrapper(async (conn, driver, type, object, engine) => {
|
||||||
for (const sql of initSql) await driver.query(conn, sql, { discardResult: true });
|
for (const sql of initSql) await runCommandOnDriver(conn, driver, sql);
|
||||||
|
|
||||||
await driver.query(conn, object.create1, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.create1);
|
||||||
await driver.query(conn, object.create2, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.create2);
|
||||||
const structure1 = await driver.analyseFull(conn);
|
const structure1 = await driver.analyseFull(conn);
|
||||||
await driver.query(conn, object.drop2, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.drop2);
|
||||||
const structure2 = await driver.analyseIncremental(conn, structure1);
|
const structure2 = await driver.analyseIncremental(conn, structure1);
|
||||||
|
|
||||||
expect(structure2[type].length).toEqual(1);
|
expect(structure2[type].length).toEqual(1);
|
||||||
@@ -79,15 +79,15 @@ describe('Object analyse', () => {
|
|||||||
test.each(flatSource())(
|
test.each(flatSource())(
|
||||||
'Create SQL - add - %s - %s',
|
'Create SQL - add - %s - %s',
|
||||||
testWrapper(async (conn, driver, type, object, engine) => {
|
testWrapper(async (conn, driver, type, object, engine) => {
|
||||||
for (const sql of initSql) await driver.query(conn, sql, { discardResult: true });
|
for (const sql of initSql) await runCommandOnDriver(conn, driver, sql);
|
||||||
|
|
||||||
await driver.query(conn, object.create1, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.create1);
|
||||||
const structure1 = await driver.analyseFull(conn);
|
const structure1 = await driver.analyseFull(conn);
|
||||||
await driver.query(conn, object.drop1, { discardResult: true });
|
await runCommandOnDriver(conn, driver, object.drop1);
|
||||||
const structure2 = await driver.analyseIncremental(conn, structure1);
|
const structure2 = await driver.analyseIncremental(conn, structure1);
|
||||||
expect(structure2[type].length).toEqual(0);
|
expect(structure2[type].length).toEqual(0);
|
||||||
|
|
||||||
await driver.script(conn, structure1[type][0].createSql);
|
await runCommandOnDriver(conn, driver, structure1[type][0].createSql);
|
||||||
|
|
||||||
const structure3 = await driver.analyseIncremental(conn, structure2);
|
const structure3 = await driver.analyseIncremental(conn, structure2);
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
const views = {
|
const views = {
|
||||||
type: 'views',
|
type: 'views',
|
||||||
create1: 'CREATE VIEW obj1 AS SELECT id FROM t1',
|
create1: 'CREATE VIEW ~obj1 AS SELECT ~id FROM ~t1',
|
||||||
create2: 'CREATE VIEW obj2 AS SELECT id FROM t2',
|
create2: 'CREATE VIEW ~obj2 AS SELECT ~id FROM ~t2',
|
||||||
drop1: 'DROP VIEW obj1',
|
drop1: 'DROP VIEW ~obj1',
|
||||||
drop2: 'DROP VIEW obj2',
|
drop2: 'DROP VIEW ~obj2',
|
||||||
};
|
};
|
||||||
const matviews = {
|
const matviews = {
|
||||||
type: 'matviews',
|
type: 'matviews',
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from (select
|
|||||||
view_name as "pure_name",
|
view_name as "pure_name",
|
||||||
text as "create_sql"
|
text as "create_sql"
|
||||||
from all_views av
|
from all_views av
|
||||||
where owner = 'C##test' and text is not null
|
where owner = '$owner' and text is not null
|
||||||
) avv
|
) avv
|
||||||
where 'views:' || "pure_name" is not null
|
where 'views:' || "pure_name" is not null
|
||||||
`;
|
`;
|
||||||
|
|||||||
Reference in New Issue
Block a user