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