@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); }
@Override public TupleSource processQuery(Query query, VDBMetaData vdb, final TransformationMetadata metadata, final CommandContext cc) { BaseIndexInfo<?> ii = baseTable.planQuery(query, query.getCriteria(), cc); final SimpleIterator<P> iter = baseTable.processQuery(vdb, metadata.getMetadataStore(), ii, metadata, cc); while (ii.next != null) { ii = ii.next; } return new ExtractionTupleSource<T>(ii.getNonCoveredCriteria(), new ExpandingSimpleIterator<P, T>(iter) { SimpleIteratorWrapper<T> wrapper = new SimpleIteratorWrapper<T>(null) { @Override protected boolean isValid(T result) { return ChildRecordExtractionTable.this.isValid(result, cc); } }; protected RecordTable.SimpleIterator<T> getChildIterator(P parent) { Collection<? extends T> children = getChildren(parent, cc); if (children.isEmpty()) { return RecordTable.emptyIterator(); } wrapper.setIterator(children.iterator()); return wrapper; } }, cc, vdb, metadata, this); }
@Override public TupleSource processQuery(Query query, VDBMetaData vdb, final TransformationMetadata metadata, final CommandContext cc) { BaseIndexInfo<?> ii = baseTable.planQuery(query, query.getCriteria(), cc); final SimpleIterator<P> iter = baseTable.processQuery(vdb, metadata.getMetadataStore(), ii, metadata, cc); while (ii.next != null) { ii = ii.next; } return new ExtractionTupleSource<T>(ii.getNonCoveredCriteria(), new ExpandingSimpleIterator<P, T>(iter) { SimpleIteratorWrapper<T> wrapper = new SimpleIteratorWrapper<T>(null) { @Override protected boolean isValid(T result) { return ChildRecordExtractionTable.this.isValid(result, cc); } }; protected RecordTable.SimpleIterator<T> getChildIterator(P parent) { Collection<? extends T> children = getChildren(parent, cc); if (children.isEmpty()) { return RecordTable.emptyIterator(); } wrapper.setIterator(children.iterator()); return wrapper; } }, cc, vdb, metadata, this); }
@Override public TupleSource processQuery(Query query, VDBMetaData vdb, final TransformationMetadata metadata, final CommandContext cc) { BaseIndexInfo<?> ii = baseTable.planQuery(query, query.getCriteria(), cc); final SimpleIterator<P> iter = baseTable.processQuery(vdb, metadata.getMetadataStore(), ii, metadata, cc); while (ii.next != null) { ii = ii.next; } return new ExtractionTupleSource<T>(ii.getNonCoveredCriteria(), new ExpandingSimpleIterator<P, T>(iter) { SimpleIteratorWrapper<T> wrapper = new SimpleIteratorWrapper<T>(null) { @Override protected boolean isValid(T result) { return ChildRecordExtractionTable.this.isValid(result, cc); } }; protected RecordTable.SimpleIterator<T> getChildIterator(P parent) { Collection<? extends T> children = getChildren(parent, cc); if (children.isEmpty()) { return RecordTable.emptyIterator(); } wrapper.setIterator(children.iterator()); return wrapper; } }, cc, vdb, metadata, this); }