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

Public Member Functions

 RegexpReplace ()
 
SqlCall createCall (@Nullable SqlLiteral functionQualifier, SqlParserPos pos,@Nullable SqlNode...operands)
 
RelDataType inferReturnType (SqlOperatorBinding opBinding)
 

Static Private Member Functions

static java.util.List
< SqlTypeFamily > 
getSignatureFamilies ()
 

Detailed Description

Definition at line 1289 of file HeavyDBSqlOperatorTable.java.

Constructor & Destructor Documentation

com.mapd.calcite.parser.HeavyDBSqlOperatorTable.RegexpReplace.RegexpReplace ( )
inline

Definition at line 1290 of file HeavyDBSqlOperatorTable.java.

References heavydb.dtypes.STRING.

1290  {
1291  super("REGEXP_REPLACE",
1292  SqlKind.OTHER_FUNCTION,
1293  null,
1294  null,
1295  OperandTypes.family(getSignatureFamilies()),
1297  }
tuple STRING
Definition: dtypes.py:31

Member Function Documentation

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

Definition at line 1312 of file HeavyDBSqlOperatorTable.java.

1314  {
1315  assert functionQualifier == null;
1316  final int num_operands = operands.length;
1317  if (num_operands < 2 || num_operands > 6) {
1318  throw new IllegalArgumentException(
1319  "Invalid operand count " + Arrays.toString(operands));
1320  }
1321  SqlNode[] new_operands = new SqlNode[6];
1322  // operand string
1323  new_operands[0] = operands[0];
1324  // pattern
1325  new_operands[1] = operands[1];
1326  // replacement
1327  if (num_operands < 3 || operands[2] == null) {
1328  new_operands[2] = SqlLiteral.createCharString("", pos);
1329  } else {
1330  new_operands[2] = operands[2];
1331  }
1332  // position
1333  if (num_operands < 4 || operands[3] == null) {
1334  new_operands[3] = SqlLiteral.createExactNumeric("1", pos);
1335  } else {
1336  new_operands[3] = operands[3];
1337  }
1338  // occurrence
1339  if (num_operands < 5 || operands[4] == null) {
1340  new_operands[4] = SqlLiteral.createExactNumeric("0", pos);
1341  } else {
1342  new_operands[4] = operands[4];
1343  }
1344  // parameters
1345  if (num_operands < 6 || operands[5] == null) {
1346  new_operands[5] = SqlLiteral.createCharString("c", pos);
1347  } else {
1348  new_operands[5] = operands[5];
1349  }
1350  return super.createCall(functionQualifier, pos, new_operands);
1351  }
static java.util.List<SqlTypeFamily> com.mapd.calcite.parser.HeavyDBSqlOperatorTable.RegexpReplace.getSignatureFamilies ( )
inlinestaticprivate

Definition at line 1299 of file HeavyDBSqlOperatorTable.java.

References heavydb.dtypes.STRING.

1299  {
1300  java.util.ArrayList<SqlTypeFamily> families =
1301  new java.util.ArrayList<SqlTypeFamily>();
1302  families.add(SqlTypeFamily.STRING);
1303  families.add(SqlTypeFamily.STRING);
1304  families.add(SqlTypeFamily.STRING);
1305  families.add(SqlTypeFamily.INTEGER);
1306  families.add(SqlTypeFamily.INTEGER);
1307  families.add(SqlTypeFamily.STRING);
1308  return families;
1309  }
tuple STRING
Definition: dtypes.py:31
RelDataType com.mapd.calcite.parser.HeavyDBSqlOperatorTable.RegexpReplace.inferReturnType ( SqlOperatorBinding  opBinding)
inline

Definition at line 1354 of file HeavyDBSqlOperatorTable.java.

1354  {
1355  return opBinding.getOperandType(0);
1356  }

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