public RexToLixTranslator rowTranslator() { final SqlConformance conformance = SqlConformanceEnum.DEFAULT; // TODO: get this from implementor return RexToLixTranslator.forAggregation(typeFactory, currentBlock(), new RexToLixTranslator.InputGetterImpl( Collections.singletonList( Pair.of((Expression) inParameter, inputPhysType))), conformance) .setNullable(currentNullables()); } };
public RexToLixTranslator rowTranslator() { final SqlConformance conformance = SqlConformanceEnum.DEFAULT; // TODO: get this from implementor return RexToLixTranslator.forAggregation(typeFactory, currentBlock(), new RexToLixTranslator.InputGetterImpl( Collections.singletonList( Pair.of((Expression) inParameter, inputPhysType))), conformance) .setNullable(currentNullables()); } };
public RexToLixTranslator rowTranslator() { return RexToLixTranslator.forAggregation(typeFactory, currentBlock(), new RexToLixTranslator.InputGetterImpl( Collections.singletonList( Pair.of((Expression) inParameter, inputPhysType))), implementor.getConformance()) .setNullable(currentNullables()); } };
public RexToLixTranslator rowTranslator() { return RexToLixTranslator.forAggregation(typeFactory, currentBlock(), new RexToLixTranslator.InputGetterImpl( Collections.singletonList( Pair.of(inParameter, inputPhysType))), implementor.getConformance()) .setNullable(currentNullables()); } };
public Result implement(EnumerableRelImplementor implementor, Prefer pref) { BlockBuilder bb = new BlockBuilder(); // Non-array user-specified types are not supported yet final JavaRowFormat format; if (getElementType() == null) { format = JavaRowFormat.ARRAY; } else if (rowType.getFieldCount() == 1 && isQueryable()) { format = JavaRowFormat.SCALAR; } else if (getElementType() instanceof Class && Object[].class.isAssignableFrom((Class) getElementType())) { format = JavaRowFormat.ARRAY; } else { format = JavaRowFormat.CUSTOM; } final PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), format, false); RexToLixTranslator t = RexToLixTranslator.forAggregation( (JavaTypeFactory) getCluster().getTypeFactory(), bb, null, implementor.getConformance()); t = t.setCorrelates(implementor.allCorrelateVariables); bb.add(Expressions.return_(null, t.translate(getCall()))); return implementor.result(physType, bb.toBlock()); }
public Result implement(EnumerableRelImplementor implementor, Prefer pref) { BlockBuilder bb = new BlockBuilder(); // Non-array user-specified types are not supported yet final JavaRowFormat format; if (getElementType() == null) { format = JavaRowFormat.ARRAY; } else if (rowType.getFieldCount() == 1 && isQueryable()) { format = JavaRowFormat.SCALAR; } else if (getElementType() instanceof Class && Object[].class.isAssignableFrom((Class) getElementType())) { format = JavaRowFormat.ARRAY; } else { format = JavaRowFormat.CUSTOM; } final PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), format, false); RexToLixTranslator t = RexToLixTranslator.forAggregation( (JavaTypeFactory) getCluster().getTypeFactory(), bb, null, implementor.getConformance()); t = t.setCorrelates(implementor.allCorrelateVariables); bb.add(Expressions.return_(null, t.translate(getCall()))); return implementor.result(physType, bb.toBlock()); }
RexToLixTranslator.forAggregation(typeFactory, builder4, inputGetter, implementor.getConformance());
RexToLixTranslator.forAggregation(typeFactory, builder4, inputGetter, implementor.getConformance());