private Split getLocalQuerySplit(Session session, TableLayoutHandle handle) { SplitSource splitSource = localQueryRunner.getSplitManager().getSplits(session, handle, UNGROUPED_SCHEDULING); List<Split> splits = new ArrayList<>(); while (!splitSource.isFinished()) { splits.addAll(getNextBatch(splitSource)); } checkArgument(splits.size() == 1, "Expected only one split for a local query, but got %s splits", splits.size()); return splits.get(0); }
public RuleTester(List<Plugin> plugins, Map<String, String> sessionProperties, Optional<Integer> nodeCountForStats) { Session.SessionBuilder sessionBuilder = testSessionBuilder() .setCatalog(CATALOG_ID) .setSchema("tiny") .setSystemProperty("task_concurrency", "1"); // these tests don't handle exchanges from local parallel for (Map.Entry<String, String> entry : sessionProperties.entrySet()) { sessionBuilder.setSystemProperty(entry.getKey(), entry.getValue()); } session = sessionBuilder.build(); queryRunner = nodeCountForStats .map(nodeCount -> LocalQueryRunner.queryRunnerWithFakeNodeCountForStats(session, nodeCount)) .orElseGet(() -> new LocalQueryRunner(session)); queryRunner.createCatalog(session.getCatalog().get(), new TpchConnectorFactory(1), ImmutableMap.of()); plugins.stream().forEach(queryRunner::installPlugin); this.metadata = queryRunner.getMetadata(); this.transactionManager = queryRunner.getTransactionManager(); this.splitManager = queryRunner.getSplitManager(); this.pageSourceManager = queryRunner.getPageSourceManager(); this.accessControl = queryRunner.getAccessControl(); this.sqlParser = queryRunner.getSqlParser(); }
private Split getLocalQuerySplit(Session session, TableLayoutHandle handle) { SplitSource splitSource = localQueryRunner.getSplitManager().getSplits(session, handle, UNGROUPED_SCHEDULING); List<Split> splits = new ArrayList<>(); while (!splitSource.isFinished()) { splits.addAll(getNextBatch(splitSource)); } checkArgument(splits.size() == 1, "Expected only one split for a local query, but got %s splits", splits.size()); return splits.get(0); }