public TupleSource processQuery(Query query, final VDBMetaData vdb, final TransformationMetadata metadata, final CommandContext cc) throws QueryMetadataException, TeiidComponentException { return new ExtractionTupleSource(query.getCriteria(), createIterator(vdb, metadata, cc), cc, vdb, metadata, this); }
public TupleSource processQuery(Query query, final VDBMetaData vdb, final TransformationMetadata metadata, final CommandContext cc) throws QueryMetadataException, TeiidComponentException { return new ExtractionTupleSource(query.getCriteria(), createIterator(vdb, metadata, cc), cc, vdb, metadata, this); }
public TupleSource processQuery(Query query, final VDBMetaData vdb, final TransformationMetadata metadata, final CommandContext cc) throws QueryMetadataException, TeiidComponentException { return new ExtractionTupleSource(query.getCriteria(), createIterator(vdb, metadata, cc), cc, vdb, metadata, this); }
@Override public BaseIndexInfo<RecordTable<?>> planQuery(Query query, Criteria condition, CommandContext context) { BaseIndexInfo<RecordTable<?>> ii = schemaTable.planQuery(query, query.getCriteria(), context); ii.next = super.planQuery(query, ii.getNonCoveredCriteria(), context); return ii; }
@Override public BaseIndexInfo<RecordTable<?>> planQuery(Query query, Criteria condition, CommandContext context) { BaseIndexInfo<RecordTable<?>> ii = schemaTable.planQuery(query, query.getCriteria(), context); ii.next = super.planQuery(query, ii.getNonCoveredCriteria(), context); return ii; }
@Override public BaseIndexInfo<RecordTable<?>> planQuery(Query query, Criteria condition, CommandContext context) { BaseIndexInfo<RecordTable<?>> ii = schemaTable.planQuery(query, query.getCriteria(), context); ii.next = super.planQuery(query, ii.getNonCoveredCriteria(), context); return ii; }
@Override public TupleSource processQuery(Query query, VDBMetaData vdb, TransformationMetadata metadata, CommandContext cc) { BaseIndexInfo<?> ii = baseTable.planQuery(query, query.getCriteria(), cc); final SimpleIterator<T> iter = baseTable.processQuery(vdb, metadata.getMetadataStore(), ii, metadata, cc); return new ExtractionTupleSource<T>(ii.getNonCoveredCriteria(), iter, cc, vdb, metadata, this); }
@Override public TupleSource processQuery(Query query, VDBMetaData vdb, TransformationMetadata metadata, CommandContext cc) { BaseIndexInfo<?> ii = baseTable.planQuery(query, query.getCriteria(), cc); final SimpleIterator<T> iter = baseTable.processQuery(vdb, metadata.getMetadataStore(), ii, metadata, cc); return new ExtractionTupleSource<T>(ii.getNonCoveredCriteria(), iter, cc, vdb, metadata, this); }
@Override public TupleSource processQuery(Query query, VDBMetaData vdb, TransformationMetadata metadata, CommandContext cc) { BaseIndexInfo<?> ii = baseTable.planQuery(query, query.getCriteria(), cc); final SimpleIterator<T> iter = baseTable.processQuery(vdb, metadata.getMetadataStore(), ii, metadata, cc); return new ExtractionTupleSource<T>(ii.getNonCoveredCriteria(), iter, cc, vdb, metadata, this); }
@Test public void testUnlimitedIn() throws Exception { HardcodedDataManager dataManager = helpTestDependentJoin(true); Command c = dataManager.getCommandHistory().get(dataManager.getCommandHistory().size()-1); //it's expected that the pushed predicate will be marked as all constants assertTrue(((SetCriteria)((Query)c).getCriteria()).isAllConstants()); }
@Override protected TupleSource createTupleSource() throws TeiidComponentException, TeiidProcessingException { TempTableStore tts = contextStore; TempTable tt = tts.getOrCreateTempTable(tableName, query, bufferManager, true, false, context, group); if (context.getDataObjects() != null) { Object id = RelationalPlanner.getTrackableGroup(group, context.getMetadata()); if (id != null) { context.accessedDataObject(id); } } return tt.createTupleSource(query.getProjectedSymbols(), query.getCriteria(), query.getOrderBy()); } };
@Test public void testDeepNesting() throws Exception { String sql = "select * from bqt1.smalla where exists (select intnum from bqt1.smalla x where smalla.intnum = x.intnum and exists (select intnum from bqt1.smalla where exists (select intnum from bqt1.smalla x where smalla.intnum = x.intnum)))"; Command command = TestResolver.helpResolve(sql, RealMetadataFactory.exampleBQTCached()); command = QueryRewriter.rewrite(command, RealMetadataFactory.exampleBQTCached(), null); command = ((ExistsCriteria)((Query)command).getCriteria()).getCommand(); LinkedList<Reference> correlatedReferences = new LinkedList<Reference>(); GroupSymbol gs = new GroupSymbol("bqt1.smalla"); ResolverUtil.resolveGroup(gs, RealMetadataFactory.exampleBQTCached()); CorrelatedReferenceCollectorVisitor.collectReferences(command, Arrays.asList(gs), correlatedReferences, RealMetadataFactory.exampleBQTCached()); assertEquals(1, correlatedReferences.size()); }
@Test public void testNationCharString2() throws Exception { Query query = (Query) QueryParser.getQueryParser().parseCommand("SELECT DISTINCT TABLE_QUALIFIER, NULL AS TABLE_OWNER, NULL AS TABLE_NAME, NULL AS TABLE_TYPE, NULL AS REMARKS FROM ATIODBCSYSTEM.OA_TABLES WHERE TABLE_QUALIFIER LIKE N'%' ESCAPE '\\' ORDER BY TABLE_QUALIFIER "); //$NON-NLS-1$ MatchCriteria matchCrit = (MatchCriteria) query.getCriteria(); Constant c = (Constant) matchCrit.getRightExpression(); assertEquals(c, new Constant("%")); //$NON-NLS-1$ }
@Test public void testOpen_Defect16059_2() throws Exception { Query query = (Query)TestResolver.helpResolve("SELECT e1, e2 FROM pm1.g1 WHERE e2 = 5 AND ? IS NOT NULL", RealMetadataFactory.example1Cached()); //$NON-NLS-1$ IsNullCriteria nullCrit = (IsNullCriteria)((CompoundCriteria)query.getCriteria()).getCriteria(1); nullCrit.setExpression(new Constant(null)); helpTestOpen(query, null, false); }
@Test public void testOpen_Defect16059() throws Exception { Query query = (Query)TestResolver.helpResolve("SELECT e1, e2 FROM pm1.g1 WHERE e2 = 5 AND ? IS NULL", RealMetadataFactory.example1Cached()); //$NON-NLS-1$ IsNullCriteria nullCrit = (IsNullCriteria)((CompoundCriteria)query.getCriteria()).getCriteria(1); nullCrit.setExpression(new Constant(null)); helpTestOpen(query, "SELECT e1, e2 FROM pm1.g1 WHERE e2 = 5", true); //$NON-NLS-1$ }
@Test public void testCharCompareString() { TransformationMetadata tm = RealMetadataFactory.exampleBQTCached().getDesignTimeMetadata(); tm.setWidenComparisonToString(false); Command c = helpResolve("select * from bqt1.smalla where bqt1.smalla.charValue = 'a'", tm); Query q = (Query)c; assertTrue(((CompareCriteria)q.getCriteria()).getLeftExpression() instanceof ElementSymbol); }
@Test public void testNonAutoConversionOfLiteralIntegerToShort2() throws Exception { // parse Query command = (Query) QueryParser.getQueryParser().parseCommand("SELECT intkey FROM bqt1.smalla WHERE 5 = shortvalue"); //$NON-NLS-1$ // resolve QueryResolver.resolveCommand(command, RealMetadataFactory.exampleBQTCached()); // Check whether an implicit conversion was added on the correct side CompareCriteria crit = (CompareCriteria) command.getCriteria(); assertEquals(DataTypeManager.DefaultDataClasses.SHORT, crit.getLeftExpression().getType()); assertEquals("Sql is incorrect after resolving", "SELECT intkey FROM bqt1.smalla WHERE 5 = shortvalue", command.toString()); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testNonAutoConversionOfLiteralIntegerToShort() throws Exception { // parse Query command = (Query) QueryParser.getQueryParser().parseCommand("SELECT intkey FROM bqt1.smalla WHERE shortvalue = 5"); //$NON-NLS-1$ // resolve QueryResolver.resolveCommand(command, RealMetadataFactory.exampleBQTCached()); // Check whether an implicit conversion was added on the correct side CompareCriteria crit = (CompareCriteria) command.getCriteria(); assertEquals(DataTypeManager.DefaultDataClasses.SHORT, crit.getRightExpression().getType()); assertEquals("Sql is incorrect after resolving", "SELECT intkey FROM bqt1.smalla WHERE shortvalue = 5", command.toString()); //$NON-NLS-1$ //$NON-NLS-2$ }
public void visit(Query obj) { preVisitVisitor(obj); visitNodes(obj.getWith()); visitNode(obj.getSelect()); visitNode(obj.getInto()); visitNode(obj.getFrom()); visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(RaiseStatement obj) {
public void visit(Query obj) { preVisitVisitor(obj); visitNodes(obj.getWith()); visitNode(obj.getSelect()); visitNode(obj.getInto()); visitNode(obj.getFrom()); visitNode(obj.getCriteria()); visitNode(obj.getGroupBy()); visitNode(obj.getHaving()); visitNode(obj.getOrderBy()); visitNode(obj.getLimit()); visitNode(obj.getOption()); postVisitVisitor(obj); } public void visit(RaiseStatement obj) {