Tabnine Logo
RelDataTypeFactory.leastRestrictive
Code IndexAdd Tabnine to your IDE (free)

How to use
leastRestrictive
method
in
org.apache.calcite.rel.type.RelDataTypeFactory

Best Java code snippets using org.apache.calcite.rel.type.RelDataTypeFactory.leastRestrictive (Showing top 20 results out of 315)

origin: apache/hive

/**
 * Adds explicit casts if Calcite's type system could not resolve the CASE branches to a common type.
 *
 * Calcite is more stricter than hive w.r.t type conversions.
 * If a CASE has branches with string/int/boolean branch types; there is no common type.
 */
private List<RexNode> adjustCaseBranchTypes(List<RexNode> nodes, RelDataType retType) {
 List<RelDataType> branchTypes = new ArrayList<>();
 for (int i = 0; i < nodes.size(); i++) {
  if (i % 2 == 1 || i == nodes.size() - 1) {
   branchTypes.add(nodes.get(i).getType());
  }
 }
 RelDataType commonType = cluster.getTypeFactory().leastRestrictive(branchTypes);
 if (commonType != null) {
  // conversion is possible; not changes are neccessary
  return nodes;
 }
 List<RexNode> newNodes = new ArrayList<>();
 for (int i = 0; i < nodes.size(); i++) {
  RexNode node = nodes.get(i);
  if (i % 2 == 1 || i == nodes.size() - 1) {
   newNodes.add(cluster.getRexBuilder().makeCast(retType, node));
  } else {
   newNodes.add(node);
  }
 }
 return newNodes;
}
origin: apache/flink

return typeFactory.leastRestrictive(rowTypes);
origin: apache/hive

private RexNode getTypeSafePred(RelOptCluster cluster, RexNode rex, RelDataType rType) {
 RexNode typeSafeRex = rex;
 if ((typeSafeRex instanceof RexCall) && HiveCalciteUtil.isComparisonOp((RexCall) typeSafeRex)) {
  RexBuilder rb = cluster.getRexBuilder();
  List<RexNode> fixedPredElems = new ArrayList<RexNode>();
  RelDataType commonType = cluster.getTypeFactory().leastRestrictive(
    RexUtil.types(((RexCall) rex).getOperands()));
  for (RexNode rn : ((RexCall) rex).getOperands()) {
   fixedPredElems.add(rb.ensureType(commonType, rn, true));
  }
  typeSafeRex = rb.makeCall(((RexCall) typeSafeRex).getOperator(), fixedPredElems);
 }
 return typeSafeRex;
}
origin: apache/hive

public static RexNode getTypeSafePred(RelOptCluster cluster, RexNode rex, RelDataType rType) {
 RexNode typeSafeRex = rex;
 if ((typeSafeRex instanceof RexCall) && HiveCalciteUtil.isComparisonOp((RexCall) typeSafeRex)) {
  RexBuilder rb = cluster.getRexBuilder();
  List<RexNode> fixedPredElems = new ArrayList<RexNode>();
  RelDataType commonType = cluster.getTypeFactory().leastRestrictive(
    RexUtil.types(((RexCall) rex).getOperands()));
  for (RexNode rn : ((RexCall) rex).getOperands()) {
   fixedPredElems.add(rb.ensureType(commonType, rn, true));
  }
  typeSafeRex = rb.makeCall(((RexCall) typeSafeRex).getOperator(), fixedPredElems);
 }
 return typeSafeRex;
}
origin: apache/drill

public static RexNode getTypeSafePred(RelOptCluster cluster, RexNode rex, RelDataType rType) {
 RexNode typeSafeRex = rex;
 if ((typeSafeRex instanceof RexCall) && HiveCalciteUtil.isComparisonOp((RexCall) typeSafeRex)) {
  RexBuilder rb = cluster.getRexBuilder();
  List<RexNode> fixedPredElems = new ArrayList<RexNode>();
  RelDataType commonType = cluster.getTypeFactory().leastRestrictive(
    RexUtil.types(((RexCall) rex).getOperands()));
  for (RexNode rn : ((RexCall) rex).getOperands()) {
   fixedPredElems.add(rb.ensureType(commonType, rn, true));
  }
  typeSafeRex = rb.makeCall(((RexCall) typeSafeRex).getOperator(), fixedPredElems);
 }
 return typeSafeRex;
}
origin: apache/drill

private RexNode getTypeSafePred(RelOptCluster cluster, RexNode rex, RelDataType rType) {
 RexNode typeSafeRex = rex;
 if ((typeSafeRex instanceof RexCall) && HiveCalciteUtil.isComparisonOp((RexCall) typeSafeRex)) {
  RexBuilder rb = cluster.getRexBuilder();
  List<RexNode> fixedPredElems = new ArrayList<RexNode>();
  RelDataType commonType = cluster.getTypeFactory().leastRestrictive(
    RexUtil.types(((RexCall) rex).getOperands()));
  for (RexNode rn : ((RexCall) rex).getOperands()) {
   fixedPredElems.add(rb.ensureType(commonType, rn, true));
  }
  typeSafeRex = rb.makeCall(((RexCall) typeSafeRex).getOperator(), fixedPredElems);
 }
 return typeSafeRex;
}
origin: apache/hive

final String name =
  fieldName.e != null ? fieldName.e : "expr$" + fieldName.i;
final RelDataType type = cluster.getTypeFactory().leastRestrictive(
  new AbstractList<RelDataType>() {
   public RelDataType get(int index) {
origin: apache/drill

final String name =
    fieldName.e != null ? fieldName.e : "expr$" + fieldName.i;
final RelDataType type = cluster.getTypeFactory().leastRestrictive(
    new AbstractList<RelDataType>() {
     public RelDataType get(int index) {
origin: apache/flink

final int c = col;
final RelDataType type =
  typeFactory.leastRestrictive(
    new AbstractList<RelDataType>() {
      public RelDataType get(int row) {
origin: Qihoo360/Quicksql

private RelDataType getComponentType(
  RelDataTypeFactory typeFactory,
  List<RelDataType> argTypes) {
 return typeFactory.leastRestrictive(argTypes);
}
origin: org.apache.calcite/calcite-core

protected RelDataType getComponentType(
  RelDataTypeFactory typeFactory,
  List<RelDataType> argTypes) {
 return typeFactory.leastRestrictive(argTypes);
}
origin: org.apache.calcite/calcite-core

private RelDataType getComponentType(
  RelDataTypeFactory typeFactory,
  List<RelDataType> argTypes) {
 return typeFactory.leastRestrictive(argTypes);
}
origin: Qihoo360/Quicksql

protected RelDataType getComponentType(
  RelDataTypeFactory typeFactory,
  List<RelDataType> argTypes) {
 return typeFactory.leastRestrictive(argTypes);
}
origin: Qihoo360/Quicksql

private RelDataType inferTypeFromOperands(
  RelDataTypeFactory typeFactory,
  List<RelDataType> argTypes) {
 assert (argTypes.size() % 2) == 1 : "odd number of arguments expected: "
   + argTypes.size();
 assert argTypes.size() > 1 : argTypes.size();
 List<RelDataType> thenTypes = new ArrayList<>();
 for (int j = 1; j < (argTypes.size() - 1); j += 2) {
  thenTypes.add(argTypes.get(j));
 }
 thenTypes.add(Iterables.getLast(argTypes));
 return typeFactory.leastRestrictive(thenTypes);
}
origin: org.apache.calcite/calcite-core

private RelDataType inferTypeFromOperands(
  RelDataTypeFactory typeFactory,
  List<RelDataType> argTypes) {
 assert (argTypes.size() % 2) == 1 : "odd number of arguments expected: "
   + argTypes.size();
 assert argTypes.size() > 1 : argTypes.size();
 List<RelDataType> thenTypes = new ArrayList<>();
 for (int j = 1; j < (argTypes.size() - 1); j += 2) {
  thenTypes.add(argTypes.get(j));
 }
 thenTypes.add(Iterables.getLast(argTypes));
 return typeFactory.leastRestrictive(thenTypes);
}
origin: Qihoo360/Quicksql

 private Pair<RelDataType, RelDataType> getComponentTypes(
   RelDataTypeFactory typeFactory,
   List<RelDataType> argTypes) {
  return Pair.of(
    typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 0)),
    typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 1)));
 }
}
origin: org.apache.calcite/calcite-core

 private Pair<RelDataType, RelDataType> getComponentTypes(
   RelDataTypeFactory typeFactory,
   List<RelDataType> argTypes) {
  return Pair.of(
    typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 0)),
    typeFactory.leastRestrictive(Util.quotientList(argTypes, 2, 1)));
 }
}
origin: Qihoo360/Quicksql

@Override protected RelDataType deriveRowType() {
 final List<RelDataType> inputRowTypes =
   Lists.transform(inputs, RelNode::getRowType);
 final RelDataType rowType =
   getCluster().getTypeFactory().leastRestrictive(inputRowTypes);
 if (rowType == null) {
  throw new IllegalArgumentException("Cannot compute compatible row type "
    + "for arguments to set op: "
    + Util.sepList(inputRowTypes, ", "));
 }
 return rowType;
}
origin: org.apache.calcite/calcite-core

@Override protected RelDataType deriveRowType() {
 final List<RelDataType> inputRowTypes =
   Lists.transform(inputs, RelNode::getRowType);
 final RelDataType rowType =
   getCluster().getTypeFactory().leastRestrictive(inputRowTypes);
 if (rowType == null) {
  throw new IllegalArgumentException("Cannot compute compatible row type "
    + "for arguments to set op: "
    + Util.sepList(inputRowTypes, ", "));
 }
 return rowType;
}
origin: com.alibaba.blink/flink-table

  @Override
  public RelDataType inferReturnType(SqlOperatorBinding opBinding) {
    int nOperands = opBinding.getOperandCount();
    List<RelDataType> types = new ArrayList<>();
    for (int i = startTypeIdx; i < nOperands; i++) {
      RelDataType type = opBinding.getOperandType(i);
      if (SqlTypeUtil.isNumeric(type)) {
        types.add(type);
      } else {
        return opBinding.getOperandType(defaultTypeIdx);
      }
    }
    return opBinding.getTypeFactory().leastRestrictive(types);
  }
}
org.apache.calcite.rel.typeRelDataTypeFactoryleastRestrictive

Javadoc

Returns the most general of a set of types (that is, one type to which they can all be cast), or null if conversion is not possible. The result may be a new type that is less restrictive than any of the input types, e.g. leastRestrictive(INT, NUMERIC(3, 2)) could be NUMERIC(12, 2).

Popular methods of RelDataTypeFactory

  • createSqlType
    Creates a SQL type with precision and scale.
  • createTypeWithNullability
    Creates a type that is the same as another type but with possibly different nullability. The output
  • createStructType
    Creates a type that represents a structured collection of fields, given lists of the names and types
  • builder
    Creates a org.apache.calcite.rel.type.RelDataTypeFactory.FieldInfoBuilder. But since FieldInfoBuilde
  • createMapType
    Creates a map type. Maps are unordered collections of key/value pairs.
  • getTypeSystem
    Returns the type system.
  • createArrayType
    Creates an array type. Arrays are ordered collections of elements.
  • createJavaType
    Creates a type that corresponds to a Java class.
  • createSqlIntervalType
    Creates a SQL interval type.
  • createTypeWithCharsetAndCollation
    Creates a type that is the same as another type but with possibly different charset or collation. Fo
  • createMultisetType
    Creates a multiset type. Multisets are unordered collections of elements.
  • copyType
    Duplicates a type, making a deep copy. Normally, this is a no-op, since canonical type objects are r
  • createMultisetType,
  • copyType,
  • createUnknownType,
  • getDefaultCharset,
  • createJoinType,
  • useDoubleMultiplication

Popular in Java

  • Reactive rest calls using spring rest template
  • onRequestPermissionsResult (Fragment)
  • getExternalFilesDir (Context)
  • notifyDataSetChanged (ArrayAdapter)
  • Pointer (com.sun.jna)
    An abstraction for a native pointer data type. A Pointer instance represents, on the Java side, a na
  • Manifest (java.util.jar)
    The Manifest class is used to obtain attribute information for a JarFile and its entries.
  • Filter (javax.servlet)
    A filter is an object that performs filtering tasks on either the request to a resource (a servlet o
  • JFrame (javax.swing)
  • Loader (org.hibernate.loader)
    Abstract superclass of object loading (and querying) strategies. This class implements useful common
  • Scheduler (org.quartz)
    This is the main interface of a Quartz Scheduler. A Scheduler maintains a registry of org.quartz.Job
  • Top 12 Jupyter Notebook extensions
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now