com.mapd.calcite.parser.HeavyDBSqlOperatorTable.PCAProject.PCAProject |
( |
| ) |
|
|
inline |
boolean com.mapd.calcite.parser.HeavyDBSqlOperatorTable.PCAProject.checkOperandTypes |
( |
SqlCallBinding |
callBinding, |
|
|
boolean |
throwOnFailure |
|
) |
| |
|
inline |
Definition at line 832 of file HeavyDBSqlOperatorTable.java.
838 final SqlValidator validator = callBinding.getValidator();
840 final int num_operands = callBinding.getOperandCount();
841 if (num_operands < 3) {
842 throw new IllegalArgumentException(
843 "At least 3 arguments are required, the model name, one or more features, and the nth principal component to project to.");
845 for (
int operand_idx = 0; operand_idx < num_operands; operand_idx++) {
846 final SqlNode operand = callBinding.operand(operand_idx);
847 final SqlTypeName operand_type =
848 validator.getValidatedNodeType(operand).getSqlTypeName();
849 final SqlTypeFamily operand_type_family = operand_type.getFamily();
850 if (operand_idx == 0) {
851 if (!operand.isA(EnumSet.of(SqlKind.LITERAL))
852 || operand_type_family != SqlTypeFamily.CHARACTER) {
853 throw new IllegalArgumentException(
854 "First argument must be TEXT literal denoting the model name.");
856 }
else if (operand_idx < num_operands - 1) {
857 if (operand.isA(EnumSet.of(SqlKind.LITERAL))) {
858 throw new IllegalArgumentException(
"Literals are not supported as features.");
860 if (!(operand_type_family == SqlTypeFamily.NUMERIC
861 || operand_type_family == SqlTypeFamily.CHARACTER)) {
862 throw new IllegalArgumentException(
863 "Only TEXT and NUMERIC features are supported.");
865 }
else if (!operand.isA(EnumSet.of(SqlKind.LITERAL))
866 || !(operand_type_family == SqlTypeFamily.NUMERIC)
867 || !(operand_type.equals(SqlTypeName.INTEGER))) {
868 throw new IllegalArgumentException(
869 "Last argument to PCA_PROJECT expects integer literal dimension index.");
SqlOperandCountRange com.mapd.calcite.parser.HeavyDBSqlOperatorTable.PCAProject.getOperandCountRange |
( |
| ) |
|
|
inline |
RelDataType com.mapd.calcite.parser.HeavyDBSqlOperatorTable.PCAProject.inferReturnType |
( |
SqlOperatorBinding |
opBinding | ) |
|
|
inline |
Definition at line 820 of file HeavyDBSqlOperatorTable.java.
821 final RelDataTypeFactory typeFactory = opBinding.getTypeFactory();
822 return typeFactory.createTypeWithNullability(
823 typeFactory.createSqlType(SqlTypeName.DOUBLE),
true);
The documentation for this class was generated from the following file: