protected WrapMap(Function0<Map<Wrapped<K>, V>> mapProvider, EqualityComparer<K> comparer) { this.map = mapProvider.apply(); this.comparer = comparer; }
public T current() { return rowBuilder.apply(); }
public T current() { return rowBuilder.apply(); }
public Function2<TKey, LazySource<TSource>, TResult> resultSelector( Function2<TKey, TOrigAccumulate, TResult> resultSelector) { return (groupByKey, lazySource) -> { final TOrigAccumulate accumulator = accumulatorInitializer.apply(); for (SourceSorter<TOrigAccumulate, TSource, TSortKey> acc : sourceSorters) { acc.sortAndAccumulate(lazySource, accumulator); } return resultSelector.apply(groupByKey, accumulator); }; }
public Function1<LazySource<TSource>, TResult> singleGroupResultSelector( Function1<TOrigAccumulate, TResult> resultSelector) { return lazySource -> { final TOrigAccumulate accumulator = accumulatorInitializer.apply(); for (SourceSorter<TOrigAccumulate, TSource, TSortKey> acc : sourceSorters) { acc.sortAndAccumulate(lazySource, accumulator); } return resultSelector.apply(accumulator); }; }
<T> CalcitePrepare.CalciteSignature<T> parseQuery( CalcitePrepare.Query<T> query, CalcitePrepare.Context prepareContext, long maxRowCount) { CalcitePrepare.Dummy.push(prepareContext); try { final CalcitePrepare prepare = prepareFactory.apply(); return prepare.prepareSql(prepareContext, query, Object[].class, maxRowCount); } finally { CalcitePrepare.Dummy.pop(prepareContext); } }
<T> CalcitePrepare.CalciteSignature<T> parseQuery( CalcitePrepare.Query<T> query, CalcitePrepare.Context prepareContext, long maxRowCount) { CalcitePrepare.Dummy.push(prepareContext); try { final CalcitePrepare prepare = prepareFactory.apply(); return prepare.prepareSql(prepareContext, query, Object[].class, maxRowCount); } finally { CalcitePrepare.Dummy.pop(prepareContext); } }
/** Analyzes a view. For use within Calcite only. */ public static CalcitePrepare.AnalyzeViewResult analyzeView( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String viewSql, List<String> viewPath, boolean fail) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, viewPath, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.analyzeView(context, viewSql, fail); } finally { CalcitePrepare.Dummy.pop(context); } }
protected <T> CalcitePrepare.CalciteSignature<T> prepare( Queryable<T> queryable) { final CalciteConnectionImpl calciteConnection = getConnection(); final CalcitePrepare prepare = calciteConnection.prepareFactory.apply(); final CalciteServerStatement serverStatement; try { serverStatement = calciteConnection.server.getStatement(handle); } catch (NoSuchStatementException e) { throw new AssertionError("invalid statement", e); } final CalcitePrepare.Context prepareContext = serverStatement.createPrepareContext(); return prepare.prepareQueryable(prepareContext, queryable); }
protected <T> CalcitePrepare.CalciteSignature<T> prepare( Queryable<T> queryable) { final CalciteConnectionImpl calciteConnection = getConnection(); final CalcitePrepare prepare = calciteConnection.prepareFactory.apply(); final CalciteServerStatement serverStatement; try { serverStatement = calciteConnection.server.getStatement(handle); } catch (NoSuchStatementException e) { throw new AssertionError("invalid statement", e); } final CalcitePrepare.Context prepareContext = serverStatement.createPrepareContext(); return prepare.prepareQueryable(prepareContext, queryable); }
/** Parses and validates a SQL query and converts to relational algebra. For * use within Calcite only. */ public static CalcitePrepare.ConvertResult convert( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.convert(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Analyzes a view. For use within Calcite only. */ public static CalcitePrepare.AnalyzeViewResult analyzeView( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String viewSql, List<String> viewPath, boolean fail) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, viewPath, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.analyzeView(context, viewSql, fail); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Parses and validates a SQL query. For use within Calcite only. */ public static CalcitePrepare.ParseResult parse( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.parse(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Parses and validates a SQL query. For use within Calcite only. */ public static CalcitePrepare.ParseResult parse( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.parse(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Parses and validates a SQL query and converts to relational algebra. For * use within Calcite only. */ public static CalcitePrepare.ConvertResult convert( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.convert(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
private static <TSource, TKey, TAccumulate, TResult> Enumerable<TResult> groupBy_( final Map<TKey, TAccumulate> map, Enumerable<TSource> enumerable, Function1<TSource, TKey> keySelector, Function0<TAccumulate> accumulatorInitializer, Function2<TAccumulate, TSource, TAccumulate> accumulatorAdder, final Function2<TKey, TAccumulate, TResult> resultSelector) { try (Enumerator<TSource> os = enumerable.enumerator()) { while (os.moveNext()) { TSource o = os.current(); TKey key = keySelector.apply(o); TAccumulate accumulator = map.get(key); if (accumulator == null) { accumulator = accumulatorInitializer.apply(); accumulator = accumulatorAdder.apply(accumulator, o); map.put(key, accumulator); } else { TAccumulate accumulator0 = accumulator; accumulator = accumulatorAdder.apply(accumulator, o); if (accumulator != accumulator0) { map.put(key, accumulator); } } } } return new LookupResultEnumerable<>(map, resultSelector); }
private static <TSource, TKey, TAccumulate, TResult> Enumerable<TResult> groupByMultiple_( final Map<TKey, TAccumulate> map, Enumerable<TSource> enumerable, List<Function1<TSource, TKey>> keySelectors, Function0<TAccumulate> accumulatorInitializer, Function2<TAccumulate, TSource, TAccumulate> accumulatorAdder, final Function2<TKey, TAccumulate, TResult> resultSelector) { try (Enumerator<TSource> os = enumerable.enumerator()) { while (os.moveNext()) { for (Function1<TSource, TKey> keySelector : keySelectors) { TSource o = os.current(); TKey key = keySelector.apply(o); TAccumulate accumulator = map.get(key); if (accumulator == null) { accumulator = accumulatorInitializer.apply(); accumulator = accumulatorAdder.apply(accumulator, o); map.put(key, accumulator); } else { TAccumulate accumulator0 = accumulator; accumulator = accumulatorAdder.apply(accumulator, o); if (accumulator != accumulator0) { map.put(key, accumulator); } } } } } return new LookupResultEnumerable<>(map, resultSelector); }
/** Prepares a SQL query for execution. For use within Calcite only. */ public static CalcitePrepare.CalciteSignature<Object> prepare( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql, final ImmutableMap<CalciteConnectionProperty, String> map) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, map); CalcitePrepare.Dummy.push(context); try { return prepare.prepareSql(context, CalcitePrepare.Query.of(sql), Object[].class, -1); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Prepares a SQL query for execution. For use within Calcite only. */ public static CalcitePrepare.CalciteSignature<Object> prepare( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql, final ImmutableMap<CalciteConnectionProperty, String> map) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, map); CalcitePrepare.Dummy.push(context); try { return prepare.prepareSql(context, CalcitePrepare.Query.of(sql), Object[].class, -1); } finally { CalcitePrepare.Dummy.pop(context); } }
for (final Pair<Function0<List<Integer>>, String> pair : factories) { new Benchmark("add 10m values, " + pair.right, statistician -> { final List<Integer> list = pair.left.apply(); long start = System.currentTimeMillis(); for (int i = 0; i < 10000000; i++) { final List<Integer> list = pair.left.apply(); list.addAll(Collections.nCopies(10000000, 1)); long start = System.currentTimeMillis(); final List<Integer> list = pair.left.apply(); list.addAll(Collections.nCopies(size.left, 1)); long start = System.currentTimeMillis(); final List<Integer> list = pair.left.apply(); list.addAll(Collections.nCopies(size.left, 1)); final int probeCount = size.left / 1000; + " values, delete 10%, insert 20%, get 1%, using " + pair.right, statistician -> { final List<Integer> list = pair.left.apply(); final int probeCount = size.left / 100; long start = System.currentTimeMillis();