OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
com.mapd.calcite.parser.HeavyDBSqlOperatorTable.LeftRightTrim Class Reference
+ Inheritance diagram for com.mapd.calcite.parser.HeavyDBSqlOperatorTable.LeftRightTrim:
+ Collaboration diagram for com.mapd.calcite.parser.HeavyDBSqlOperatorTable.LeftRightTrim:

Public Member Functions

 LeftRightTrim (final String name, final SqlKind kind)
 
SqlCall createCall (@Nullable SqlLiteral functionQualifier, SqlParserPos pos,@Nullable SqlNode...operands)
 
boolean requiresCreate (List< SqlNode > operands)
 

Detailed Description

Definition at line 1037 of file HeavyDBSqlOperatorTable.java.

Constructor & Destructor Documentation

com.mapd.calcite.parser.HeavyDBSqlOperatorTable.LeftRightTrim.LeftRightTrim ( final String  name,
final SqlKind  kind 
)
inline

Definition at line 1038 of file HeavyDBSqlOperatorTable.java.

1038  {
1039  super(name,
1040  kind,
1041  ReturnTypes.ARG0.andThen(SqlTypeTransforms.TO_NULLABLE)
1042  .andThen(SqlTypeTransforms.TO_VARYING),
1043  null,
1044  OperandTypes.and(
1045  OperandTypes.family(SqlTypeFamily.STRING, SqlTypeFamily.STRING),
1046  new SameOperandTypeChecker(2) {
1047  @Override
1048  protected List<Integer> getOperandList(int operandCount) {
1049  return ImmutableList.of(0, 1);
1050  }
1051  }),
1052  SqlFunctionCategory.STRING);
1053  }
string name
Definition: setup.in.py:72

Member Function Documentation

SqlCall com.mapd.calcite.parser.HeavyDBSqlOperatorTable.LeftRightTrim.createCall ( @Nullable SqlLiteral  functionQualifier,
SqlParserPos  pos,
@Nullable SqlNode...  operands 
)
inline

Definition at line 1056 of file HeavyDBSqlOperatorTable.java.

1058  {
1059  assert functionQualifier == null;
1060  switch (operands.length) {
1061  case 1:
1062  operands = new SqlNode[] {operands[0], SqlLiteral.createCharString(" ", pos)};
1063  break;
1064  case 2:
1065  if (operands[1] == null) {
1066  operands[1] = SqlLiteral.createCharString(" ", pos);
1067  }
1068  operands = new SqlNode[] {operands[0], operands[1]};
1069  break;
1070  default:
1071  throw new IllegalArgumentException(
1072  "Invalid operand count " + Arrays.toString(operands));
1073  }
1074  return super.createCall(functionQualifier, pos, operands);
1075  }
boolean com.mapd.calcite.parser.HeavyDBSqlOperatorTable.LeftRightTrim.requiresCreate ( List< SqlNode >  operands)
inline

Definition at line 1078 of file HeavyDBSqlOperatorTable.java.

1078  {
1079  // if there is only 1 Operand, the code will be creating 'defaults'
1080  return (operands.size() == 1);
1081  }

The documentation for this class was generated from the following file: