public class NewOptimizerOverridesTest extends GeneratedColumnsHelper
Test the complete plan overrides added by DERBY-6267.
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
MISSING_FUNCTION |
private static java.lang.String |
MISSING_INDEX |
private static java.lang.String |
MISSING_SCHEMA |
private static java.lang.String |
NOT_LEFT_DEEP |
private static java.lang.String |
UNSUPPORTED_PLAN_SHAPE |
private static java.lang.String |
WRONG_ROW_SOURCE_COUNT |
BAD_BEFORE_TRIGGER, BAD_CAST, BAD_FOREIGN_KEY_ACTION, CANT_CONTAIN_NULLS, CANT_MODIFY_IDENTITY, CANT_OVERRIDE_GENERATION_CLAUSE, CANT_REFERENCE_GENERATED_COLUMN, CASCADED_COLUMN_DROP_WARNING, COLUMN_OUT_OF_SCOPE, CONSTRAINT_DROPPED_WARNING, CONSTRAINT_VIOLATION, DUPLICATE_CLAUSE, FORBIDDEN_DROP_TRIGGER, FORBIDDEN_ORDERING_OPERATION, FOREIGN_KEY_VIOLATION, GRANT_REVOKE_NOT_ALLOWED, ILLEGAL_ADD_DEFAULT, ILLEGAL_AGG, ILLEGAL_AGGREGATE, ILLEGAL_COMPARISON, ILLEGAL_DUPLICATE, ILLEGAL_RENAME, ILLEGAL_STORAGE, ILLEGAL_UDT_CLASS, JAVA_EXCEPTION, LACK_COLUMN_PRIV, LACK_EXECUTE_PRIV, LACK_TABLE_PRIV, LACK_USAGE_PRIV, LANG_INVALID_USE_OF_DEFAULT, LEXICAL_ERROR, LOCK_TIMEOUT, MISSING_OBJECT, NEED_EXPLICIT_DATATYPE, NO_GENERIC_PERMISSION, NO_SELECT_OR_UPDATE_PERMISSION, NO_TABLE_PERMISSION, NON_EMPTY_SCHEMA, NONEXISTENT_OBJECT, NOT_IMPLEMENTED, NOT_NULL_NEEDS_DATATYPE, NOT_NULL_VIOLATION, OBJECT_DOES_NOT_EXIST, OPERATION_FORBIDDEN, REDUNDANT_CLAUSE, ROUTINE_CANT_ISSUE_SQL, ROUTINE_DEPENDS_ON_TYPE, STRING_TRUNCATION, SYNTAX_ERROR, TABLE_DEPENDS_ON_TYPE, TOO_MUCH_CONTENTION, TRIGGER_DROPPED_WARNING, UNSTABLE_RESULTS, VIEW_DEPENDENCY
DEFAULT_DB_DIR, DERBY_LOG, ERRORSTACKTRACEFILE
Constructor and Description |
---|
NewOptimizerOverridesTest(java.lang.String name)
Create a new instance.
|
Modifier and Type | Method and Description |
---|---|
(package private) static void |
assertPlanShape(java.sql.Connection conn,
java.lang.String query,
java.lang.String expectedPlanShape)
Assert that a query produces the expected plan shape
|
private static org.w3c.dom.Element |
getFirstElement(org.w3c.dom.Element parent,
java.lang.String tag)
Get first element by the give tag name
|
static org.w3c.dom.Document |
getLastQueryPlan(java.sql.Connection conn,
java.sql.ResultSet rs)
Get an xml-based picture of the plan chosen for the last query.
|
(package private) static java.lang.String |
printDocument(org.w3c.dom.Document doc)
Print a document to a string.
|
private boolean |
routineExists(java.sql.Connection conn,
java.lang.String functionName)
Return true if the SQL routine exists
|
protected void |
setUp() |
static junit.framework.Test |
suite()
Construct top level suite in this JUnit test
|
static java.lang.String |
summarize(org.w3c.dom.Document doc) |
private static void |
summarize(java.lang.StringBuilder buffer,
org.w3c.dom.Element element) |
private static void |
summarizeJoin(java.lang.StringBuilder buffer,
org.w3c.dom.Element element,
java.lang.String joinSymbol) |
private static void |
summarizeProjectRestrict(java.lang.StringBuilder buffer,
org.w3c.dom.Element projectRestrict) |
private static void |
summarizeSubqueries(java.lang.StringBuilder buffer,
org.w3c.dom.Element subqueryArray) |
private static void |
summarizeUnion(java.lang.StringBuilder buffer,
org.w3c.dom.Element union) |
private boolean |
tableExists(java.sql.Connection conn,
java.lang.String tableName)
Return true if the table exists
|
void |
test_01_basicSyntax()
Basic syntax.
|
void |
test_02_simpleSelects()
Verify that plan shapes can be overridden for simple selects.
|
void |
test_03_offsetFetch()
Verify plan overrides with FETCH/OFFSET clauses.
|
assertColumnTypes, assertDeterministic, expectExecutionWarning, expectExecutionWarnings, expectInsertRowError, expectNoWarning, expectUpdateRowError, fill, verifyRestrictedDrop, verifyRevokePrivilege
assertCallError, assertCheckTable, assertCommitError, assertCompileError, assertEquals, assertEquals, assertEquals, assertEquivalentDataType, assertErrorCode, assertGetIntError, assertNextError, assertPreparedStatementError, assertResults, assertResults, assertSQLExceptionEquals, assertSQLState, assertSQLState, assertStatementError, assertStatementError, assertStatementError, assertStatementError, assertStatementErrorUnordered, assertTableRowCount, assertUpdateCount, assertUpdateCount, assertWarning, chattyPrepare, chattyPrepareCall, checkAllConsistency, checkEstimatedRowCount, closeStatement, commit, createStatement, createStatement, createStatement, dropTable, dropTable, dropView, dropView, dumpRs, dumpRs, emptyStatementCache, executeQuery, expectCompilationError, expectCompilationError, expectExecutionError, getClientTransactionID, getConnection, getDatabaseProperty, getLastSQLException, goodStatement, goodUpdate, initializeConnection, openConnection, openDefaultConnection, openDefaultConnection, openDefaultConnection, openUserConnection, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, rollback, runBare, runBareOverridable, runScript, runScript, runSQLCommands, setAutoCommit, tearDown, usingDB2Client, usingDerbyNetClient, usingEmbedded
alarm, assertDirectoryDeleted, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertExecJavaCmdAsExpected, assertLaunchedJUnitTestMethod, assertLaunchedJUnitTestMethod, assertSameNullness, assertSecurityManager, assertThrowableEquals, currentDirectory, execJavaCmd, execJavaCmd, execJavaCmd, fail, getClassVersionMajor, getEmmaJar, getFailureFolder, getFilesWith, getJavaExecutableName, getSystemProperty, getTestConfiguration, getTestResource, hasInterruptibleIO, isCVM, isIBMJVM, isJ9Platform, isJava5, isJava7, isPhoneME, isPlatform, isSunJVM, isWindowsPlatform, newAssertionFailedError, openTestResource, println, printStackTrace, readProcessOutput, removeDirectory, removeDirectory, removeFiles, removeSystemProperty, runsWithEmma, runsWithJaCoCo, setSystemErr, setSystemOut, setSystemProperty, sleep, sleepAtLeastOneTick, traceit, vmAtLeast
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, run, runTest, setName, toString
private static final java.lang.String WRONG_ROW_SOURCE_COUNT
private static final java.lang.String NOT_LEFT_DEEP
private static final java.lang.String MISSING_INDEX
private static final java.lang.String MISSING_FUNCTION
private static final java.lang.String MISSING_SCHEMA
private static final java.lang.String UNSUPPORTED_PLAN_SHAPE
public NewOptimizerOverridesTest(java.lang.String name)
public static junit.framework.Test suite()
protected void setUp() throws java.lang.Exception
setUp
in class junit.framework.TestCase
java.lang.Exception
public void test_01_basicSyntax() throws java.lang.Exception
Basic syntax.
java.lang.Exception
public void test_02_simpleSelects() throws java.lang.Exception
Verify that plan shapes can be overridden for simple selects.
java.lang.Exception
public void test_03_offsetFetch() throws java.lang.Exception
Verify plan overrides with FETCH/OFFSET clauses. The override must be placed after the query expression and before the offset/fetch clause.
java.lang.Exception
private boolean routineExists(java.sql.Connection conn, java.lang.String functionName) throws java.lang.Exception
java.lang.Exception
private boolean tableExists(java.sql.Connection conn, java.lang.String tableName) throws java.lang.Exception
java.lang.Exception
static void assertPlanShape(java.sql.Connection conn, java.lang.String query, java.lang.String expectedPlanShape) throws java.lang.Exception
java.lang.Exception
public static org.w3c.dom.Document getLastQueryPlan(java.sql.Connection conn, java.sql.ResultSet rs) throws java.lang.Exception
java.lang.Exception
public static java.lang.String summarize(org.w3c.dom.Document doc) throws java.lang.Exception
java.lang.Exception
private static void summarize(java.lang.StringBuilder buffer, org.w3c.dom.Element element) throws java.lang.Exception
java.lang.Exception
private static void summarizeProjectRestrict(java.lang.StringBuilder buffer, org.w3c.dom.Element projectRestrict) throws java.lang.Exception
java.lang.Exception
private static void summarizeSubqueries(java.lang.StringBuilder buffer, org.w3c.dom.Element subqueryArray) throws java.lang.Exception
java.lang.Exception
private static void summarizeJoin(java.lang.StringBuilder buffer, org.w3c.dom.Element element, java.lang.String joinSymbol) throws java.lang.Exception
java.lang.Exception
private static void summarizeUnion(java.lang.StringBuilder buffer, org.w3c.dom.Element union) throws java.lang.Exception
java.lang.Exception
private static org.w3c.dom.Element getFirstElement(org.w3c.dom.Element parent, java.lang.String tag) throws java.lang.Exception
java.lang.Exception
static java.lang.String printDocument(org.w3c.dom.Document doc) throws java.lang.Exception
java.lang.Exception
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.