org.apache.calcite.adapter.enumerable.EnumerableInterpretable Java Examples
The following examples show how to use
org.apache.calcite.adapter.enumerable.EnumerableInterpretable.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HiveEnumerableInterpretable.java From marble with Apache License 2.0 | 6 votes |
static Bindable getBindable(ClassDeclaration expr, String s, int fieldCount) throws CompileException, IOException { ICompilerFactory compilerFactory; try { compilerFactory = CompilerFactoryFactory.getDefaultCompilerFactory(); } catch (Exception e) { throw new IllegalStateException( "Unable to instantiate java compiler", e); } IClassBodyEvaluator cbe = compilerFactory.newClassBodyEvaluator(); cbe.setClassName(expr.name); cbe.setExtendedClass(Utilities.class); cbe.setImplementedInterfaces( fieldCount == 1 ? new Class[]{Bindable.class, Typed.class} : new Class[]{ArrayBindable.class}); cbe.setParentClassLoader(EnumerableInterpretable.class.getClassLoader()); if (CalcitePrepareImpl.DEBUG) { // Add line numbers to the generated janino class cbe.setDebuggingInformation(true, true, true); } return (Bindable) cbe.createInstance(new StringReader(s)); }
Example #2
Source File: TableEnv.java From marble with Apache License 2.0 | 4 votes |
protected Bindable toBindable(EnumerableRel rel) { return EnumerableInterpretable.toBindable(Maps.newHashMap(), null, rel, EnumerableRel.Prefer.ARRAY); }
Example #3
Source File: CalcitePrepareImpl.java From calcite with Apache License 2.0 | 4 votes |
@Override protected PreparedResult implement(RelRoot root) { Hook.PLAN_BEFORE_IMPLEMENTATION.run(root); RelDataType resultType = root.rel.getRowType(); boolean isDml = root.kind.belongsTo(SqlKind.DML); final Bindable bindable; if (resultConvention == BindableConvention.INSTANCE) { bindable = Interpreters.bindable(root.rel); } else { EnumerableRel enumerable = (EnumerableRel) root.rel; if (!root.isRefTrivial()) { final List<RexNode> projects = new ArrayList<>(); final RexBuilder rexBuilder = enumerable.getCluster().getRexBuilder(); for (int field : Pair.left(root.fields)) { projects.add(rexBuilder.makeInputRef(enumerable, field)); } RexProgram program = RexProgram.create(enumerable.getRowType(), projects, null, root.validatedRowType, rexBuilder); enumerable = EnumerableCalc.create(enumerable, program); } try { CatalogReader.THREAD_LOCAL.set(catalogReader); final SqlConformance conformance = context.config().conformance(); internalParameters.put("_conformance", conformance); bindable = EnumerableInterpretable.toBindable(internalParameters, context.spark(), enumerable, prefer); } finally { CatalogReader.THREAD_LOCAL.remove(); } } if (timingTracer != null) { timingTracer.traceTime("end codegen"); } if (timingTracer != null) { timingTracer.traceTime("end compilation"); } return new PreparedResultImpl( resultType, parameterRowType, fieldOrigins, root.collation.getFieldCollations().isEmpty() ? ImmutableList.of() : ImmutableList.of(root.collation), root.rel, mapTableModOp(isDml, root.kind), isDml) { public String getCode() { throw new UnsupportedOperationException(); } public Bindable getBindable(Meta.CursorFactory cursorFactory) { return bindable; } public Type getElementType() { return ((Typed) bindable).getElementType(); } }; }