private void validateOrderBy(Select obj) { Collection<ColumnReference> whereColumns = CollectorVisitor.collectElements(obj.getWhere()); for (SortSpecification sort:obj.getOrderBy().getSortSpecifications()) { boolean matched = false; for (ColumnReference where:whereColumns) { ColumnReference col = (ColumnReference)sort.getExpression(); if (col.getName().equals(where.getName())) { matched = true; } } if (!matched) { this.exceptions.add(new TranslatorException(SimpleDBPlugin.Event.TEIID24005, SimpleDBPlugin.Util.gs(SimpleDBPlugin.Event.TEIID24005))); break; } } }
public void testGetWhere() throws Exception { assertNotNull(example(true).getWhere()); }
@Override public void visit(Select obj) { visitNodes(obj.getFrom()); this.conditionFragments.add(obj.getWhere()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); visitNodes(obj.getDerivedColumns()); }
public void visit(Select obj) { buffer.append(SELECT).append(Tokens.SPACE); if (obj.getFrom() != null && !obj.getFrom().isEmpty()) { NamedTable table = ((NamedTable)obj.getFrom().get(0)); this.worksheetTitle = table.getName(); if (table.getMetadataObject().getNameInSource() != null) { this.worksheetTitle = table.getMetadataObject().getNameInSource(); } } append(obj.getDerivedColumns()); if (obj.getWhere() != null) { buffer.append(Tokens.SPACE).append(WHERE).append(Tokens.SPACE); append(obj.getWhere()); } if (obj.getGroupBy() != null) { buffer.append(Tokens.SPACE); append(obj.getGroupBy()); } if (obj.getOrderBy() != null) { buffer.append(Tokens.SPACE); append(obj.getOrderBy()); } if (obj.getLimit() != null) { if (obj.getLimit().getRowOffset() > 0) { offsetValue = obj.getLimit().getRowOffset(); } limitValue = obj.getLimit().getRowLimit(); } }
Condition c = select.getWhere(); List<Condition> conditions = LanguageUtil.separateCriteriaByAnd(c); Map<String, List<Comparison>> tables = new HashMap<String, List<Comparison>>();
public void testGetWhere() throws Exception { assertNotNull(example().getProjectedQuery().getWhere()); }
super.visitNodes(query.getFrom()); Condition condition = query.getWhere(); if (this.implicitCondition != null) { if (condition != null) {
searchStringList = getSearchFilterFromWhereClause(query.getWhere(), searchStringList); StringBuilder filterBuilder = new StringBuilder(); for (String string : searchStringList) {
@Override public void visit(Select obj) { visitNodes(obj.getDerivedColumns()); visitNodes(obj.getFrom()); visitNode(obj.getWhere()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); }
@Test public void testBindings() throws Exception { BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities(); caps.setCapabilitySupport(Capability.DEPENDENT_JOIN_BINDINGS, true); ProcessorPlan plan = TestOptimizer.helpPlan("select pm1.g1.e1, pm1.g1.e2, pm2.g1.e2 FROM pm1.g1, /*+ makedep */ pm2.g1 where (pm1.g1.e1 = pm2.g1.e1)", TestOptimizer.example1(), //$NON-NLS-1$ new String[] { "SELECT g_0.e1 AS c_0, g_0.e2 AS c_1 FROM pm1.g1 AS g_0 ORDER BY c_0", "SELECT g_0.e1 AS c_0, g_0.e2 AS c_1 FROM pm2.g1 AS g_0 WHERE g_0.e1 IN (<dependent values>) ORDER BY c_0" }, new DefaultCapabilitiesFinder(caps), TestOptimizer.ComparisonMode.EXACT_COMMAND_STRING ); //$NON-NLS-1$ //$NON-NLS-2$ List<?>[] expected = new List<?>[] { Arrays.asList(new Object[] { "a", 1, 2 }), //$NON-NLS-1$ }; HardcodedDataManager dataManager = new HardcodedDataManager(RealMetadataFactory.example1Cached()); dataManager.addData("SELECT g_0.e1 AS c_0, g_0.e2 AS c_1 FROM g1 AS g_0 ORDER BY c_0", new List<?>[] {Arrays.asList("a", 1)}); dataManager.addData("SELECT g_0.e1 AS c_0, g_0.e2 AS c_1 FROM g1 AS g_0 WHERE g_0.e1 = 'a' ORDER BY c_0", new List<?>[] {Arrays.asList("a", 2)}); TestProcessor.helpProcess(plan, dataManager, expected); Select select = (Select)dataManager.getPushdownCommands().get(1); assertTrue(((Literal)((Comparison)select.getWhere()).getRightExpression()).isBindEligible()); }
public void visit(Select obj) { visitNode(obj.getWith()); visitNodes(obj.getDerivedColumns()); visitNodes(obj.getFrom()); visitNode(obj.getWhere()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); }
assertEquals(2, vals.size()); if (supportsArrayType) { Comparison comp = (Comparison) s.getWhere(); Parameter p = (Parameter)((Array)comp.getRightExpression()).getExpressions().get(0); assertEquals(0, p.getValueIndex());
/** * only a single join predicate is supported, so move up conditions if possible */ private void moveCondition(Select select, TableReference tableReference) { if (!(tableReference instanceof Join)) { return; } Join join = (Join)tableReference; if (join.getJoinType() != JoinType.INNER_JOIN) { return; } while (join.getCondition() instanceof AndOr) { AndOr andOr = (AndOr) join.getCondition(); if (andOr.getOperator() == AndOr.Operator.OR) { break; } Condition c = andOr.getLeftCondition(); select.setWhere(LanguageUtil.combineCriteria(select.getWhere(), c, getLanguageFactory())); join.setCondition(andOr.getRightCondition()); } moveCondition(select, join.getLeftItem()); moveCondition(select, join.getRightItem()); } }