Search in sources :

Example 21 with SqlValidator

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.validate.SqlValidator in project calcite by apache.

the class SqlTesterImpl method checkFails.

public void checkFails(String expression, String expectedError, boolean runtime) {
    if (runtime) {
        // We need to test that the expression fails at runtime.
        // Ironically, that means that it must succeed at prepare time.
        SqlValidator validator = getValidator();
        final String sql = buildQuery(expression);
        SqlNode n = parseAndValidate(validator, sql);
        assertNotNull(n);
    } else {
        checkQueryFails(buildQuery(expression), expectedError);
    }
}
Also used : SqlValidator(org.apache.calcite.sql.validate.SqlValidator) SqlNode(org.apache.calcite.sql.SqlNode)

Example 22 with SqlValidator

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.validate.SqlValidator in project calcite by apache.

the class SqlTesterImpl method assertExceptionIsThrown.

public void assertExceptionIsThrown(String sql, String expectedMsgPattern) {
    SqlValidator validator;
    SqlNode sqlNode;
    SqlParserUtil.StringAndPos sap = SqlParserUtil.findPos(sql);
    try {
        sqlNode = parseQuery(sap.sql);
        validator = getValidator();
    } catch (SqlParseException e) {
        String errMessage = e.getMessage();
        if (expectedMsgPattern == null) {
            throw new RuntimeException("Error while parsing query:" + sap.sql, e);
        } else if (errMessage == null || !errMessage.matches(expectedMsgPattern)) {
            throw new RuntimeException("Error did not match expected [" + expectedMsgPattern + "] while parsing query [" + sap.sql + "]", e);
        }
        return;
    } catch (Throwable e) {
        throw new RuntimeException("Error while parsing query: " + sap.sql, e);
    }
    Throwable thrown = null;
    try {
        validator.validate(sqlNode);
    } catch (Throwable ex) {
        thrown = ex;
    }
    SqlValidatorTestCase.checkEx(thrown, expectedMsgPattern, sap);
}
Also used : SqlParserUtil(org.apache.calcite.sql.parser.SqlParserUtil) SqlParseException(org.apache.calcite.sql.parser.SqlParseException) SqlValidator(org.apache.calcite.sql.validate.SqlValidator) SqlNode(org.apache.calcite.sql.SqlNode)

Example 23 with SqlValidator

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.validate.SqlValidator in project calcite by apache.

the class SqlTesterImpl method check.

public void check(String query, TypeChecker typeChecker, ParameterChecker parameterChecker, ResultChecker resultChecker) {
    if (typeChecker == null) {
        // Parse and validate. There should be no errors.
        Util.discard(getResultType(query));
    } else {
        // Parse and validate. There should be no errors.
        // There must be 1 column. Get its type.
        RelDataType actualType = getColumnType(query);
        // Check result type.
        typeChecker.checkType(actualType);
    }
    SqlValidator validator = getValidator();
    SqlNode n = parseAndValidate(validator, query);
    final RelDataType parameterRowType = validator.getParameterRowType(n);
    parameterChecker.checkParameters(parameterRowType);
}
Also used : SqlValidator(org.apache.calcite.sql.validate.SqlValidator) RelDataType(org.apache.calcite.rel.type.RelDataType) SqlNode(org.apache.calcite.sql.SqlNode)

Example 24 with SqlValidator

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.validate.SqlValidator in project calcite by apache.

the class SqlTesterImpl method checkMonotonic.

public void checkMonotonic(String query, SqlMonotonicity expectedMonotonicity) {
    SqlValidator validator = getValidator();
    SqlNode n = parseAndValidate(validator, query);
    final RelDataType rowType = validator.getValidatedNodeType(n);
    final SqlValidatorNamespace selectNamespace = validator.getNamespace(n);
    final String field0 = rowType.getFieldList().get(0).getName();
    final SqlMonotonicity monotonicity = selectNamespace.getMonotonicity(field0);
    assertThat(monotonicity, equalTo(expectedMonotonicity));
}
Also used : SqlValidator(org.apache.calcite.sql.validate.SqlValidator) SqlMonotonicity(org.apache.calcite.sql.validate.SqlMonotonicity) RelDataType(org.apache.calcite.rel.type.RelDataType) SqlValidatorNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace) SqlNode(org.apache.calcite.sql.SqlNode)

Example 25 with SqlValidator

use of org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.validate.SqlValidator in project calcite by apache.

the class SqlTesterImpl method getMonotonicity.

public SqlMonotonicity getMonotonicity(String sql) {
    final SqlValidator validator = getValidator();
    final SqlNode node = parseAndValidate(validator, sql);
    final SqlSelect select = (SqlSelect) node;
    final SqlNode selectItem0 = select.getSelectList().get(0);
    final SqlValidatorScope scope = validator.getSelectScope(select);
    return selectItem0.getMonotonicity(scope);
}
Also used : SqlValidatorScope(org.apache.calcite.sql.validate.SqlValidatorScope) SqlSelect(org.apache.calcite.sql.SqlSelect) SqlValidator(org.apache.calcite.sql.validate.SqlValidator) SqlNode(org.apache.calcite.sql.SqlNode)

Aggregations

SqlValidator (org.apache.calcite.sql.validate.SqlValidator)31 SqlNode (org.apache.calcite.sql.SqlNode)17 Test (org.junit.Test)11 RelDataType (org.apache.calcite.rel.type.RelDataType)8 RelDataTypeField (org.apache.calcite.rel.type.RelDataTypeField)4 SqlValidatorScope (org.apache.calcite.sql.validate.SqlValidatorScope)4 ImmutableList (com.google.common.collect.ImmutableList)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 RelDataTypeFactory (org.apache.calcite.rel.type.RelDataTypeFactory)3 SqlCall (org.apache.calcite.sql.SqlCall)3 SqlParseException (org.apache.calcite.sql.parser.SqlParseException)3 JavaTypeFactory (org.apache.calcite.adapter.java.JavaTypeFactory)2 RelRoot (org.apache.calcite.rel.RelRoot)2 SqlIdentifier (org.apache.calcite.sql.SqlIdentifier)2 SqlIntervalLiteral (org.apache.calcite.sql.SqlIntervalLiteral)2 SqlSelect (org.apache.calcite.sql.SqlSelect)2 SqlParser (org.apache.calcite.sql.parser.SqlParser)2 RESOURCE (com.hazelcast.jet.sql.impl.parse.ParserResource.RESOURCE)1 HazelcastTable (com.hazelcast.jet.sql.impl.schema.HazelcastTable)1