public BaseIndexInfo<RecordTable<?>> planQuery(Query query, Criteria condition, CommandContext context) { BaseIndexInfo<RecordTable<?>> info = new BaseIndexInfo<RecordTable<?>>(this, Collections.EMPTY_LIST, condition, null, false); if (!info.getValueSet().isEmpty()) { info.sortValueSet(OrderBy.ASC, context.getBufferManager().getOptions().getDefaultNullOrder()); } return info; }
void addSet(int i, Object match, Collection<Constant> values) { if (!valueSet.isEmpty()) { return; } if (i == 0) { for (Constant constant : values) { List<Object> value = new ArrayList<Object>(table.getPkLength()); Object value2 = constant.getValue(); buildSearchRow(i, match, value2, value); valueSet.add(value); } lower = null; upper = null; } }
public SimpleIterator<T> processQuery(final VDBMetaData vdb, NavigableMap<String, ?> map, BaseIndexInfo<?> ii, final CommandContext commandContext) { final Criteria crit = ii.getCoveredCriteria(); final ArrayList<Object> rowBuffer = new ArrayList<Object>(1); if (!ii.getValueSet().isEmpty()) { final List<List<Object>> vals = ii.getValueSet(); final SortedMap<String, ?> fMap = map; return new SimpleIterator<T>() { if (ii.getLower() != null) { if (ii.getUpper() != null) { map = map.subMap((String) ii.getLower().get(0), true, (String) ii.getUpper().get(0), true); } else { map = map.tailMap((String) ii.getLower().get(0), true); } else if (ii.getUpper() != null) { map = map.headMap((String) ii.getUpper().get(0), true);
continue; this.addCondition(i, matchResult, (Constant)cc.getRightExpression(), cc.getOperator()); critIter.remove(); } else if (criteria instanceof IsNullCriteria) { this.addCondition(i, matchResult, new Constant(null), CompareCriteria.EQ); critIter.remove(); } else if (criteria instanceof MatchCriteria) { int index = Arrays.binarySearch(Evaluator.REGEX_RESERVED, character); if (index >= 0 && pattern.length() > 0) { getRegexPrefix(pattern, escapeChar, prefix, j, character); break; this.addCondition(i, matchResult, new Constant(prefix.toString()), CompareCriteria.GE); if (matchCriteria.getLeftExpression() instanceof Function && table.supportsOrdering(i, matchCriteria.getLeftExpression())) { this.addCondition(i, matchResult, new Constant(prefix.substring(0, prefix.length() -1) + (char) (Character.toLowerCase(prefix.charAt(prefix.length()-1))+1)), CompareCriteria.LE); } else { this.addCondition(i, matchResult, new Constant(prefix.substring(0, prefix.length() -1) + (char) (prefix.charAt(prefix.length()-1)+1)), CompareCriteria.LE); this.addSet(i, matchResult, values); critIter.remove();
@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; }
public void sortValueSet(boolean direction, NullOrder nullOrder) { int size = getValueSet().get(0).size(); int[] sortOn = new int[size]; for (int i = 0; i <sortOn.length; i++) { sortOn[i] = i; } Collections.sort(getValueSet(), new ListNestedSortComparator(sortOn, direction).defaultNullOrder(nullOrder)); }
continue; this.addCondition(i, matchResult, (Constant)cc.getRightExpression(), cc.getOperator()); critIter.remove(); } else if (criteria instanceof IsNullCriteria) { this.addCondition(i, matchResult, new Constant(null), CompareCriteria.EQ); critIter.remove(); } else if (criteria instanceof MatchCriteria) { int index = Arrays.binarySearch(Evaluator.REGEX_RESERVED, character); if (index >= 0 && pattern.length() > 0) { getRegexPrefix(pattern, escapeChar, prefix, j, character); break; this.addCondition(i, matchResult, new Constant(prefix.toString()), CompareCriteria.GE); if (matchCriteria.getLeftExpression() instanceof Function && table.supportsOrdering(i, matchCriteria.getLeftExpression())) { this.addCondition(i, matchResult, new Constant(prefix.substring(0, prefix.length() -1) + (char) (Character.toLowerCase(prefix.charAt(prefix.length()-1))+1)), CompareCriteria.LE); } else { this.addCondition(i, matchResult, new Constant(prefix.substring(0, prefix.length() -1) + (char) (prefix.charAt(prefix.length()-1)+1)), CompareCriteria.LE); this.addSet(i, matchResult, values); critIter.remove();
@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; }
public void sortValueSet(boolean direction, NullOrder nullOrder) { int size = getValueSet().get(0).size(); int[] sortOn = new int[size]; for (int i = 0; i <sortOn.length; i++) { sortOn[i] = i; } Collections.sort(getValueSet(), new ListNestedSortComparator(sortOn, direction).defaultNullOrder(nullOrder)); }
public SimpleIterator<T> processQuery(final VDBMetaData vdb, NavigableMap<String, ?> map, BaseIndexInfo<?> ii, final CommandContext commandContext) { final Criteria crit = ii.getCoveredCriteria(); final ArrayList<Object> rowBuffer = new ArrayList<Object>(1); if (!ii.getValueSet().isEmpty()) { final List<List<Object>> vals = ii.getValueSet(); final SortedMap<String, ?> fMap = map; return new SimpleIterator<T>() { if (ii.getLower() != null) { if (ii.getUpper() != null) { map = map.subMap((String) ii.getLower().get(0), true, (String) ii.getUpper().get(0), true); } else { map = map.tailMap((String) ii.getLower().get(0), true); } else if (ii.getUpper() != null) { map = map.headMap((String) ii.getUpper().get(0), true);
public BaseIndexInfo<RecordTable<?>> planQuery(Query query, Criteria condition, CommandContext context) { BaseIndexInfo<RecordTable<?>> info = new BaseIndexInfo<RecordTable<?>>(this, Collections.EMPTY_LIST, condition, null, false); if (!info.getValueSet().isEmpty()) { info.sortValueSet(OrderBy.ASC, context.getBufferManager().getOptions().getDefaultNullOrder()); } return info; }
continue; this.addCondition(i, matchResult, (Constant)cc.getRightExpression(), cc.getOperator()); critIter.remove(); } else if (criteria instanceof IsNullCriteria) { this.addCondition(i, matchResult, new Constant(null), CompareCriteria.EQ); critIter.remove(); } else if (criteria instanceof MatchCriteria) { int index = Arrays.binarySearch(Evaluator.REGEX_RESERVED, character); if (index >= 0 && pattern.length() > 0) { getRegexPrefix(pattern, escapeChar, prefix, j, character); break; this.addCondition(i, matchResult, new Constant(prefix.toString()), CompareCriteria.GE); if (matchCriteria.getLeftExpression() instanceof Function && table.supportsOrdering(i, matchCriteria.getLeftExpression())) { this.addCondition(i, matchResult, new Constant(prefix.substring(0, prefix.length() -1) + (char) (Character.toLowerCase(prefix.charAt(prefix.length()-1))+1)), CompareCriteria.LE); } else { this.addCondition(i, matchResult, new Constant(prefix.substring(0, prefix.length() -1) + (char) (prefix.charAt(prefix.length()-1)+1)), CompareCriteria.LE); this.addSet(i, matchResult, values); critIter.remove();
@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; }
void addSet(int i, Object match, Collection<Constant> values) { if (!valueSet.isEmpty()) { return; } if (i == 0) { for (Constant constant : values) { List<Object> value = new ArrayList<Object>(table.getPkLength()); Object value2 = constant.getValue(); buildSearchRow(i, match, value2, value); valueSet.add(value); } lower = null; upper = null; } }
public void sortValueSet(boolean direction, NullOrder nullOrder) { int size = getValueSet().get(0).size(); int[] sortOn = new int[size]; for (int i = 0; i <sortOn.length; i++) { sortOn[i] = i; } Collections.sort(getValueSet(), new ListNestedSortComparator(sortOn, direction).defaultNullOrder(nullOrder)); }
public SimpleIterator<T> processQuery(final VDBMetaData vdb, NavigableMap<String, ?> map, BaseIndexInfo<?> ii, final CommandContext commandContext) { final Criteria crit = ii.getCoveredCriteria(); final ArrayList<Object> rowBuffer = new ArrayList<Object>(1); if (!ii.getValueSet().isEmpty()) { final List<List<Object>> vals = ii.getValueSet(); final SortedMap<String, ?> fMap = map; return new SimpleIterator<T>() { if (ii.getLower() != null) { if (ii.getUpper() != null) { map = map.subMap((String) ii.getLower().get(0), true, (String) ii.getUpper().get(0), true); } else { map = map.tailMap((String) ii.getLower().get(0), true); } else if (ii.getUpper() != null) { map = map.headMap((String) ii.getUpper().get(0), true);
public BaseIndexInfo<RecordTable<?>> planQuery(Query query, Criteria condition, CommandContext context) { BaseIndexInfo<RecordTable<?>> info = new BaseIndexInfo<RecordTable<?>>(this, Collections.EMPTY_LIST, condition, null, false); if (!info.getValueSet().isEmpty()) { info.sortValueSet(OrderBy.ASC, context.getBufferManager().getOptions().getDefaultNullOrder()); } return info; }
@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); }
void addSet(int i, Object match, Collection<Constant> values) { if (!valueSet.isEmpty()) { return; } if (i == 0) { for (Constant constant : values) { List<Object> value = new ArrayList<Object>(table.getPkLength()); Object value2 = constant.getValue(); buildSearchRow(i, match, value2, value); valueSet.add(value); } lower = null; upper = null; } }
@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); }