Package org.apache.calcite.test
Interface SqlValidatorTestCase.Tester
-
- All Known Subinterfaces:
SqlTester
- All Known Implementing Classes:
AbstractSqlTester
,SqlOperatorBaseTest.TesterImpl
,SqlRuntimeTester
,SqlValidatorTester
- Enclosing class:
- SqlValidatorTestCase
public static interface SqlValidatorTestCase.Tester
Encapsulates differences between test environments, for example, which SQL parser or validator to use.It contains a mock schema with
EMP
andDEPT
tables, which can run without having to start up Farrago.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
assertExceptionIsThrown(java.lang.String sql, java.lang.String expectedMsgPattern)
Checks that a query is valid, or, if invalid, throws the right message at the right location.void
checkCharset(java.lang.String sql, java.nio.charset.Charset expectedCharset)
void
checkCollation(java.lang.String sql, java.lang.String expectedCollationName, org.apache.calcite.sql.SqlCollation.Coercibility expectedCoercibility)
void
checkColumnType(java.lang.String sql, java.lang.String expected)
Checks that a query returns one column of an expected type.void
checkFieldOrigin(java.lang.String sql, java.lang.String fieldOriginList)
Given a SQL query, returns a list of the origins of each result field.void
checkIntervalConv(java.lang.String sql, java.lang.String expected)
Checks if the interval value conversion to milliseconds is valid.void
checkResultType(java.lang.String sql, java.lang.String expected)
Checks that a query returns one column of an expected type.void
checkRewrite(org.apache.calcite.sql.validate.SqlValidator validator, java.lang.String query, java.lang.String expectedRewrite)
Checks that a query gets rewritten to an expected form.org.apache.calcite.rel.type.RelDataType
getColumnType(java.lang.String sql)
Returns the data type of the sole column of a SQL query.org.apache.calcite.sql.validate.SqlConformance
getConformance()
org.apache.calcite.sql.validate.SqlMonotonicity
getMonotonicity(java.lang.String sql)
Given a SQL query, returns the monotonicity of the first item in the SELECT clause.org.apache.calcite.rel.type.RelDataType
getResultType(java.lang.String sql)
Returns the data type of the row returned by a SQL query.org.apache.calcite.sql.validate.SqlValidator
getValidator()
org.apache.calcite.sql.SqlNode
parseAndValidate(org.apache.calcite.sql.validate.SqlValidator validator, java.lang.String sql)
org.apache.calcite.sql.SqlNode
parseQuery(java.lang.String sql)
-
-
-
Method Detail
-
parseQuery
org.apache.calcite.sql.SqlNode parseQuery(java.lang.String sql) throws org.apache.calcite.sql.parser.SqlParseException
- Throws:
org.apache.calcite.sql.parser.SqlParseException
-
parseAndValidate
org.apache.calcite.sql.SqlNode parseAndValidate(org.apache.calcite.sql.validate.SqlValidator validator, java.lang.String sql)
-
getValidator
org.apache.calcite.sql.validate.SqlValidator getValidator()
-
assertExceptionIsThrown
void assertExceptionIsThrown(java.lang.String sql, java.lang.String expectedMsgPattern)
Checks that a query is valid, or, if invalid, throws the right message at the right location.If
expectedMsgPattern
is null, the query must succeed.If
expectedMsgPattern
is not null, the query must fail, and give an error location of (expectedLine, expectedColumn) through (expectedEndLine, expectedEndColumn).- Parameters:
sql
- SQL statementexpectedMsgPattern
- If this parameter is null the query must be valid for the test to pass; If this parameter is not null the query must be malformed and the message given must match the pattern
-
getColumnType
org.apache.calcite.rel.type.RelDataType getColumnType(java.lang.String sql)
Returns the data type of the sole column of a SQL query.For example,
getResultType("VALUES (1")
returnsINTEGER
.Fails if query returns more than one column.
- See Also:
getResultType(String)
-
getResultType
org.apache.calcite.rel.type.RelDataType getResultType(java.lang.String sql)
Returns the data type of the row returned by a SQL query.For example,
getResultType("VALUES (1, 'foo')")
returnsRecordType(INTEGER EXPR$0, CHAR(3) EXPR#1)
.
-
checkCollation
void checkCollation(java.lang.String sql, java.lang.String expectedCollationName, org.apache.calcite.sql.SqlCollation.Coercibility expectedCoercibility)
-
checkCharset
void checkCharset(java.lang.String sql, java.nio.charset.Charset expectedCharset)
-
checkColumnType
void checkColumnType(java.lang.String sql, java.lang.String expected)
Checks that a query returns one column of an expected type. For example,checkType("VALUES (1 + 2)", "INTEGER NOT NULL")
.
-
checkFieldOrigin
void checkFieldOrigin(java.lang.String sql, java.lang.String fieldOriginList)
Given a SQL query, returns a list of the origins of each result field.- Parameters:
sql
- SQL queryfieldOriginList
- Field origin list, e.g. "{(CATALOG.SALES.EMP.EMPNO, null)}"
-
checkRewrite
void checkRewrite(org.apache.calcite.sql.validate.SqlValidator validator, java.lang.String query, java.lang.String expectedRewrite)
Checks that a query gets rewritten to an expected form.- Parameters:
validator
- validator to use; null for defaultquery
- query to testexpectedRewrite
- expected SQL text after rewrite and unparse
-
checkResultType
void checkResultType(java.lang.String sql, java.lang.String expected)
Checks that a query returns one column of an expected type. For example,checkType("select empno, name from emp""{EMPNO INTEGER NOT NULL, NAME VARCHAR(10) NOT NULL}")
.
-
checkIntervalConv
void checkIntervalConv(java.lang.String sql, java.lang.String expected)
Checks if the interval value conversion to milliseconds is valid. For example,checkIntervalConv(VALUES (INTERVAL '1' Minute), "60000")
.
-
getMonotonicity
org.apache.calcite.sql.validate.SqlMonotonicity getMonotonicity(java.lang.String sql)
Given a SQL query, returns the monotonicity of the first item in the SELECT clause.- Parameters:
sql
- SQL query- Returns:
- Monotonicity
-
getConformance
org.apache.calcite.sql.validate.SqlConformance getConformance()
-
-