private void runSQL(final String sql) throws ExecutionSetupException { final DrillSqlWorker sqlWorker = new DrillSqlWorker(queryContext); final Pointer<String> textPlan = new Pointer<>(); final PhysicalPlan plan = sqlWorker.getPlan(sql, textPlan); queryManager.setPlanText(textPlan.value); runPhysicalPlan(plan); }
private void runSQL(String sql) { try { DrillSqlWorker sqlWorker = new DrillSqlWorker(context); PhysicalPlan plan = sqlWorker.getPlan(sql); runPhysicalPlan(plan); } catch (Exception e) { fail("Failure while parsing sql.", e); } }
protected void testSqlPlan(String sqlCommands) throws Exception { String[] sqlStrings = sqlCommands.split(";"); final DistributedCache cache = new LocalCache(); cache.run(); final SystemOptionManager opt = new SystemOptionManager(cache); opt.init(); final OptionManager sess = new SessionOptionManager(opt); new NonStrictExpectations() { { dbContext.getMetrics(); result = new MetricRegistry(); dbContext.getAllocator(); result = new TopLevelAllocator(); dbContext.getConfig(); result = config; dbContext.getOptionManager(); result = opt; dbContext.getCache(); result = cache; } }; final StoragePluginRegistry registry = new StoragePluginRegistry(dbContext); registry.init(); final FunctionImplementationRegistry functionRegistry = new FunctionImplementationRegistry(config); final SchemaPlus root = Frameworks.createRootSchema(false); registry.getSchemaFactory().registerSchemas(new UserSession(null, null, null), root); new NonStrictExpectations() { { context.getNewDefaultSchema(); result = root; context.getStorage(); result = registry; context.getFunctionRegistry(); result = functionRegistry; context.getSession(); result = new UserSession(null, null, null); context.getCurrentEndpoint(); result = DrillbitEndpoint.getDefaultInstance(); context.getActiveEndpoints(); result = ImmutableList.of(DrillbitEndpoint.getDefaultInstance()); context.getPlannerSettings(); result = new PlannerSettings(sess); context.getOptions(); result = sess; context.getConfig(); result = config; context.getCache(); result = cache; } }; for (String sql : sqlStrings) { if (sql.trim().isEmpty()) continue; DrillSqlWorker worker = new DrillSqlWorker(context); PhysicalPlan p = worker.getPlan(sql); } }