diff options
| author | 2017-02-09 04:36:04 -0500 | |
|---|---|---|
| committer | 2017-02-09 04:36:04 -0500 | |
| commit | d9aa870e5d509cc7309ab82dd102a937ab58613a (patch) | |
| tree | d92d03d76b5c390b335f1cfd761f1a0b59ec8496 /SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp | |
| parent | 68ee4cbcbe424b95969c70346283a9f217f63825 (diff) | |
Imported Upstream version 3.1.1+dfsg1upstream/3.1.1+dfsg1
Diffstat (limited to 'SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp')
| -rw-r--r-- | SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp b/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp index 969ebad..2d6762e 100644 --- a/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp +++ b/SQLiteStudio3/Tests/SelectResolverTest/tst_selectresolvertest.cpp @@ -29,6 +29,7 @@ class SelectResolverTest : public QObject void testWithCommonTableExpression(); void testStarWithJoinAndError(); void test1(); + void testSubselectWithAlias(); }; SelectResolverTest::SelectResolverTest() @@ -42,28 +43,28 @@ void SelectResolverTest::testTableHash() SelectResolver::Table t1; t1.database = "d1"; t1.table = "t1"; - t1.alias = "a1"; + t1.tableAlias = "a1"; tables << t1; // different alias and database SelectResolver::Table t2; t2.database = "d2"; t2.table = "t1"; - t2.alias = QString::null; + t2.tableAlias = QString::null; tables << t2; // different database SelectResolver::Table t3; t3.database = "d2"; t3.table = "t1"; - t3.alias = "a1"; + t3.tableAlias = "a1"; tables << t3; // same as t3 SelectResolver::Table t4; t4.database = "d2"; t4.table = "t1"; - t4.alias = "a1"; + t4.tableAlias = "a1"; tables << t4; // all null @@ -78,21 +79,21 @@ void SelectResolverTest::testTableHash() SelectResolver::Table t7; t7.database = "x"; t7.table = "t1"; - t7.alias = "a1"; + t7.tableAlias = "a1"; tables << t7; // similar to t1, but different table SelectResolver::Table t8; t8.database = "d1"; t8.table = "x"; - t8.alias = "a1"; + t8.tableAlias = "a1"; tables << t8; // similar to t1, but different alias SelectResolver::Table t9; t9.database = "d1"; t9.table = "t1"; - t9.alias = "x"; + t9.tableAlias = "x"; tables << t9; QVERIFY(tables.size() == 7); @@ -222,6 +223,26 @@ void SelectResolverTest::test1() QVERIFY(coreColumns[1].column == "col2"); } +void SelectResolverTest::testSubselectWithAlias() +{ + QString sql = "SELECT * FROM (SELECT m.col1, m.col2, secm.col3 FROM test AS m LEFT OUTER JOIN test AS secm ON secm.col1 = m.col2) alias3;"; + SelectResolver resolver(db, sql); + Parser parser(db->getDialect()); + QVERIFY(parser.parse(sql)); + + QList<QList<SelectResolver::Column> > columns = resolver.resolve(parser.getQueries().first().dynamicCast<SqliteSelect>().data()); + QList<SelectResolver::Column> coreColumns = columns.first(); + QVERIFY(coreColumns[0].tableAlias == "alias3"); + QVERIFY(coreColumns[1].tableAlias == "alias3"); + QVERIFY(coreColumns[2].tableAlias == "alias3"); + QVERIFY(coreColumns[0].oldTableAliases.size() == 1); + QVERIFY(coreColumns[1].oldTableAliases.size() == 1); + QVERIFY(coreColumns[2].oldTableAliases.size() == 1); + QVERIFY(coreColumns[0].oldTableAliases.first() == "m"); + QVERIFY(coreColumns[1].oldTableAliases.first() == "m"); + QVERIFY(coreColumns[2].oldTableAliases.first() == "secm"); +} + void SelectResolverTest::initTestCase() { initKeywords(); |
