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_DEPENDENCYDEFAULT_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, verifyRevokePrivilegeassertCallError, 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, usingEmbeddedalarm, 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, isJava8, isPhoneME, isPlatform, isSunJVM, isWindowsPlatform, newAssertionFailedError, openTestResource, println, printStackTrace, readProcessOutput, removeDirectory, removeDirectory, removeFiles, removeSystemProperty, runsWithEmma, runsWithJaCoCo, setSystemErr, setSystemOut, setSystemProperty, sleep, sleepAtLeastOneTick, traceit, vmAtLeastassertEquals, 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, toStringprivate 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.TestCasejava.lang.Exceptionpublic void test_01_basicSyntax()
throws java.lang.Exception
Basic syntax.
java.lang.Exceptionpublic void test_02_simpleSelects()
throws java.lang.Exception
Verify that plan shapes can be overridden for simple selects.
java.lang.Exceptionpublic 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.Exceptionprivate boolean routineExists(java.sql.Connection conn,
java.lang.String functionName)
throws java.lang.Exception
java.lang.Exceptionprivate boolean tableExists(java.sql.Connection conn,
java.lang.String tableName)
throws java.lang.Exception
java.lang.Exceptionstatic void assertPlanShape(java.sql.Connection conn,
java.lang.String query,
java.lang.String expectedPlanShape)
throws java.lang.Exception
java.lang.Exceptionpublic static org.w3c.dom.Document getLastQueryPlan(java.sql.Connection conn,
java.sql.ResultSet rs)
throws java.lang.Exception
java.lang.Exceptionpublic static java.lang.String summarize(org.w3c.dom.Document doc)
throws java.lang.Exception
java.lang.Exceptionprivate static void summarize(java.lang.StringBuilder buffer,
org.w3c.dom.Element element)
throws java.lang.Exception
java.lang.Exceptionprivate static void summarizeProjectRestrict(java.lang.StringBuilder buffer,
org.w3c.dom.Element projectRestrict)
throws java.lang.Exception
java.lang.Exceptionprivate static void summarizeSubqueries(java.lang.StringBuilder buffer,
org.w3c.dom.Element subqueryArray)
throws java.lang.Exception
java.lang.Exceptionprivate static void summarizeJoin(java.lang.StringBuilder buffer,
org.w3c.dom.Element element,
java.lang.String joinSymbol)
throws java.lang.Exception
java.lang.Exceptionprivate static void summarizeUnion(java.lang.StringBuilder buffer,
org.w3c.dom.Element union)
throws java.lang.Exception
java.lang.Exceptionprivate static org.w3c.dom.Element getFirstElement(org.w3c.dom.Element parent,
java.lang.String tag)
throws java.lang.Exception
java.lang.Exceptionstatic java.lang.String printDocument(org.w3c.dom.Document doc)
throws java.lang.Exception
java.lang.ExceptionApache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.