@Test public void testStoredSubQuery2() { Query resolvedQuery = (Query) helpResolve("select x.e1 from (EXEC pm1.sq3('abc', 5)) as x"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "x" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "x.e1" }); //$NON-NLS-1$ }
@Test public void testPartiallyQualifiedGroup2() { metadata = RealMetadataFactory.example3(); String sql = "SELECT e1 FROM cat1.g2"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm1.cat1.g2" }); //$NON-NLS-1$ }
@Test public void testPartiallyQualifiedGroup5() { metadata = RealMetadataFactory.example3(); String sql = "SELECT e1 FROM cat2.g3"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm1.cat2.g3" }); //$NON-NLS-1$ }
@Test public void testPartiallyQualifiedGroup7() { metadata = RealMetadataFactory.example3(); String sql = "SELECT e1 FROM g4"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm3.g4" }); //$NON-NLS-1$ }
@Test public void testPartiallyQualifiedGroup3() { metadata = RealMetadataFactory.example3(); String sql = "SELECT e1 FROM cat1.cat2.cat3.g1"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm1.cat1.cat2.cat3.g1" }); //$NON-NLS-1$ }
@Test public void testPartiallyQualifiedGroup6() { metadata = RealMetadataFactory.example3(); String sql = "SELECT e1 FROM cat1.g1"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm2.cat1.g1" }); //$NON-NLS-1$ }
@Test public void testAliasedOrderBy() { Query resolvedQuery = (Query) helpResolve("SELECT pm1.g1.e1 as y FROM pm1.g1 ORDER BY y"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "y" }); //$NON-NLS-1$ }
@Test public void testSelectStarFromAliasedGroup() { Query resolvedQuery = (Query) helpResolve("SELECT * FROM pm1.g1 as x"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "x.e1", "x.e2", "x.e3", "x.e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ }
@Test public void testSelectStar() { Query resolvedQuery = (Query) helpResolve("SELECT * FROM pm1.g1"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ }
@Test public void testAliasedGroupWithVDB() { String sql = "SELECT e1 FROM example1.pm1.g1 AS x"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ assertEquals("Resolved string form was incorrect ", sql, resolvedQuery.toString()); //$NON-NLS-1$ }
@Test public void testFullyQualifiedSelectStar() { Query resolvedQuery = (Query) helpResolve("SELECT pm1.g1.* FROM pm1.g1"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ }
@Test public void testSelectGroupStarWhereSomeElementsAreNotSelectable() { Query resolvedQuery = (Query) helpResolve("SELECT pm1.g4.* FROM pm1.g4"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g4" }); //$NON-NLS-1$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g4.e1", "pm1.g4.e3" }, //$NON-NLS-1$ //$NON-NLS-2$ new String[] { "pm1.g4.e1", "pm1.g4.e3" } ); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testMultipleIdenticalElements() { Query resolvedQuery = (Query) helpResolve("SELECT e1, e1 FROM pm1.g1"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "pm1.g1.e1", "pm1.g1.e1" }); //$NON-NLS-1$ //$NON-NLS-2$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g1.e1", "pm1.g1.e1" }, //$NON-NLS-1$ //$NON-NLS-2$ new String[] { "pm1.g1.e1", "pm1.g1.e1" }); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testMultipleIdenticalElements2() { Query resolvedQuery = (Query) helpResolve("SELECT e1, pm1.g1.e1 FROM pm1.g1"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "pm1.g1.e1", "pm1.g1.e1" }); //$NON-NLS-1$ //$NON-NLS-2$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g1.e1", "pm1.g1.e1" }, //$NON-NLS-1$ //$NON-NLS-2$ new String[] { "pm1.g1.e1", "pm1.g1.e1" }); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testSelectCountStar() { Query resolvedQuery = (Query) helpResolve("SELECT count(*) FROM pm1.g1"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "expr1" }); //$NON-NLS-1$ helpCheckElements(resolvedQuery.getSelect(), new String[] { }, new String[] { } ); }
@Test public void testSelectExpressions() { Query resolvedQuery = (Query) helpResolve("SELECT e1, concat(e1, 's'), concat(e1, 's') as c FROM pm1.g1"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "pm1.g1.e1", "expr2", "c" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g1.e1", "pm1.g1.e1", "pm1.g1.e1" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ new String[] { "pm1.g1.e1", "pm1.g1.e1", "pm1.g1.e1" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ }
@Test public void testDifferentConstantsSameName() { Query resolvedQuery = (Query) helpResolve("SELECT 1 as x, 2 as x FROM pm1.g2"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "pm1.g2" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "x", "x" }); //$NON-NLS-1$ //$NON-NLS-2$ helpCheckElements(resolvedQuery.getSelect(), new String[] { }, new String[] { }); }
@Test public void testStoredSubQuery3() { Query resolvedQuery = (Query) helpResolve("select * from (EXEC pm1.sq2('abc')) as x"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "x" }); //$NON-NLS-1$ List<ElementSymbol> elements = (List<ElementSymbol>) ElementCollectorVisitor.getElements(resolvedQuery.getSelect(), false); ElementSymbol elem1 = elements.get(0); assertEquals("Did not get expected element", "x.e1", elem1.getName() ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("Did not get expected type", DataTypeManager.DefaultDataClasses.STRING, elem1.getType()); //$NON-NLS-1$ ElementSymbol elem2 = elements.get(1); assertEquals("Did not get expected element", "x.e2", elem2.getName() ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("Did not get expected type", DataTypeManager.DefaultDataClasses.INTEGER, elem2.getType()); //$NON-NLS-1$ }
@Test public void testElementSymbolForms() { String sql = "SELECT pm1.g1.e1, e2, pm1.g1.e3 AS a, e4 AS b FROM pm1.g1"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "pm1.g1.e1", "pm1.g1.e2", "a", "b" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ assertEquals("Resolved string form was incorrect ", sql, resolvedQuery.toString()); //$NON-NLS-1$ }
@Test public void testElementSymbolFormsWithAliasedGroup() { String sql = "SELECT x.e1, e2, x.e3 AS a, e4 AS b FROM pm1.g1 AS x"; //$NON-NLS-1$ Query resolvedQuery = (Query) helpResolve(sql); helpCheckFrom(resolvedQuery, new String[] { "pm1.g1" }); //$NON-NLS-1$ helpCheckSelect(resolvedQuery, new String[] { "x.e1", "x.e2", "a", "b" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ helpCheckElements(resolvedQuery.getSelect(), new String[] { "x.e1", "x.e2", "x.e3", "x.e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ new String[] { "pm1.g1.e1", "pm1.g1.e2", "pm1.g1.e3", "pm1.g1.e4" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ assertEquals("Resolved string form was incorrect ", sql, resolvedQuery.toString()); //$NON-NLS-1$ }