Package org.apache.derby.impl.tools.ij
Class utilMain
- java.lang.Object
-
- org.apache.derby.impl.tools.ij.utilMain
-
public class utilMain extends java.lang.ObjectThis class is utilities specific to the two ij Main's. This factoring enables sharing the functionality for single and dual connection ij runs.
-
-
Field Summary
Fields Modifier and Type Field Description static intBUFFEREDFILESIZE(package private) UCode_CharStreamcharStreamprivate StatementFinder[]commandGrabber(package private) ConnectionEnv[]connEnvprivate intcurrCEprivate booleanfileInputprivate booleanfirstRunprivate java.util.HashtableignoreErrorsprivate java.lang.StringijExceptionTraceValue of the system property ij.execptionTrace(package private) org.apache.derby.impl.tools.ij.ijijParser(package private) org.apache.derby.impl.tools.ij.ijTokenManagerijTokMgrprivate booleaninitialFileInput(package private) LocalizedResourcelangUtilprivate booleanmtUseprivate intnumConnections(package private) java.util.Stack<StatementFinder>oldGrabbersprivate LocalizedOutputoutprivate booleanshowErrorCodeTrue if to display the error code when displaying a SQLException.
-
Constructor Summary
Constructors Constructor Description utilMain(int numConnections, LocalizedOutput out)Set up the test to run with 'numConnections' connections/users.utilMain(int numConnections, LocalizedOutput out, boolean loadSystemProperties)Set up the test to run with 'numConnections' connections/users.utilMain(int numConnections, LocalizedOutput out, java.util.Hashtable ignoreErrors)Set up the test to run with 'numConnections' connections/users.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) ijResultabsolute(java.sql.ResultSet rs, int row)Position on the specified row of the specified ResultSet.(package private) ijResultafterLast(java.sql.ResultSet rs)Position after the last row of the specified ResultSet and return NULL to the user.(package private) ijResultbeforeFirst(java.sql.ResultSet rs)Position before the first row of the specified ResultSet and return NULL to the user.private voidcheckScrollableCursor(java.sql.ResultSet rs, java.lang.String operation)Check that the cursor is scrollable.private voidcleanupGo(LocalizedInput[] in)Perform cleanup after a script has been run.private voiddisplayResult(LocalizedOutput out, ijResult result, java.sql.Connection conn)private booleandoCatch(java.lang.String command)catch processing on failed commands.(package private) static voiddoPrompt(boolean newStatement, LocalizedOutput out, java.lang.String tag)REMIND: eventually this might be part of StatementFinder, used at each carriage return to show that it is still "live" when it is reading multi-line input.private voiddoTrace(java.lang.Throwable t)stack trace dumper(package private) ijResultfirst(java.sql.ResultSet rs)Position on the first row of the specified ResultSet and return that row to the user.(package private) intgetCurrentRowNumber(java.sql.ResultSet rs)Get the current row numbervoidgo(LocalizedInput[] in, LocalizedOutput out)run ij over the specified input, sending output to the specified output.intgoScript(java.sql.Connection conn, LocalizedInput in)Support to run a script.private voidhandleSQLException(LocalizedOutput out, java.sql.SQLException e)This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field.voidinitFromEnvironment()Initialize the connections from the environment.(package private) ijResultlast(java.sql.ResultSet rs)Position on the last row of the specified ResultSet and return that row to the user.(package private) voidnewInput(java.lang.String fileName)(package private) voidnewResourceInput(java.lang.String resourceName)(package private) ijResultprevious(java.sql.ResultSet rs)Position on the previous row of the specified ResultSet and return that row to the user.(package private) ijResultrelative(java.sql.ResultSet rs, int row)Move the cursor position by the specified amount.private intrunScriptGuts()Run the guts of the script.(package private) voidsetMtUse(boolean b)private voidsupportIJProperties(ConnectionEnv env)
-
-
-
Field Detail
-
commandGrabber
private StatementFinder[] commandGrabber
-
charStream
UCode_CharStream charStream
-
ijTokMgr
org.apache.derby.impl.tools.ij.ijTokenManager ijTokMgr
-
ijParser
org.apache.derby.impl.tools.ij.ij ijParser
-
connEnv
ConnectionEnv[] connEnv
-
currCE
private int currCE
-
numConnections
private final int numConnections
-
fileInput
private boolean fileInput
-
initialFileInput
private boolean initialFileInput
-
mtUse
private boolean mtUse
-
firstRun
private boolean firstRun
-
out
private LocalizedOutput out
-
ignoreErrors
private java.util.Hashtable ignoreErrors
-
showErrorCode
private final boolean showErrorCode
True if to display the error code when displaying a SQLException.
-
ijExceptionTrace
private final java.lang.String ijExceptionTrace
Value of the system property ij.execptionTrace
-
BUFFEREDFILESIZE
public static final int BUFFEREDFILESIZE
- See Also:
- Constant Field Values
-
oldGrabbers
java.util.Stack<StatementFinder> oldGrabbers
-
langUtil
LocalizedResource langUtil
-
-
Constructor Detail
-
utilMain
utilMain(int numConnections, LocalizedOutput out) throws ijFatalExceptionSet up the test to run with 'numConnections' connections/users.- Parameters:
numConnections- The number of connections/users to test.- Throws:
ijFatalException
-
utilMain
utilMain(int numConnections, LocalizedOutput out, boolean loadSystemProperties) throws ijFatalExceptionSet up the test to run with 'numConnections' connections/users. This overload allows the choice of whether the system properties will be used or not.- Parameters:
numConnections- The number of connections/users to test.- Throws:
ijFatalException
-
utilMain
public utilMain(int numConnections, LocalizedOutput out, java.util.Hashtable ignoreErrors) throws ijFatalExceptionSet up the test to run with 'numConnections' connections/users.- Parameters:
numConnections- The number of connections/users to test.ignoreErrors- A list of errors to ignore. If null, all errors are printed out and nothing is fatal. If non-null, if an error is hit and it is in this list, it is silently ignore. Otherwise, an ijFatalException is thrown. ignoreErrors is used for stress tests.- Throws:
ijFatalException
-
-
Method Detail
-
initFromEnvironment
public void initFromEnvironment()
Initialize the connections from the environment.
-
go
public void go(LocalizedInput[] in, LocalizedOutput out) throws ijFatalException
run ij over the specified input, sending output to the specified output. Any prior input and output will be lost.- Parameters:
in- source for input to ijout- sink for output from ij- Throws:
ijFatalException
-
goScript
public int goScript(java.sql.Connection conn, LocalizedInput in)Support to run a script. Performs minimal setup to set the passed in connection into the existing ij setup, ConnectionEnv.- Parameters:
conn-in-
-
supportIJProperties
private void supportIJProperties(ConnectionEnv env)
-
runScriptGuts
private int runScriptGuts()
Run the guts of the script. Split out to allow calling from the full ij and the minimal goScript.- Returns:
- The number of errors seen in the script.
-
cleanupGo
private void cleanupGo(LocalizedInput[] in)
Perform cleanup after a script has been run. Close the input streams if required and shutdown derby on an exit.- Parameters:
in-
-
displayResult
private void displayResult(LocalizedOutput out, ijResult result, java.sql.Connection conn) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
doCatch
private boolean doCatch(java.lang.String command)
catch processing on failed commands. This really ought to be in ij somehow, but it was easier to catch in Main.
-
handleSQLException
private void handleSQLException(LocalizedOutput out, java.sql.SQLException e) throws ijFatalException
This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field. If they are fatal, an ijFatalException is thrown. Lifted from ij/util.java:ShowSQLException- Throws:
ijFatalException
-
doTrace
private void doTrace(java.lang.Throwable t)
stack trace dumper
-
newInput
void newInput(java.lang.String fileName)
-
newResourceInput
void newResourceInput(java.lang.String resourceName)
-
doPrompt
static void doPrompt(boolean newStatement, LocalizedOutput out, java.lang.String tag)REMIND: eventually this might be part of StatementFinder, used at each carriage return to show that it is still "live" when it is reading multi-line input.
-
setMtUse
void setMtUse(boolean b)
-
checkScrollableCursor
private void checkScrollableCursor(java.sql.ResultSet rs, java.lang.String operation) throws ijException, java.sql.SQLExceptionCheck that the cursor is scrollable.- Parameters:
rs- the ResultSet to checkoperation- which operation this is checked for- Throws:
ijException- if the cursor isn't scrollablejava.sql.SQLException- if a database error occurs
-
absolute
ijResult absolute(java.sql.ResultSet rs, int row) throws java.sql.SQLException
Position on the specified row of the specified ResultSet.- Parameters:
rs- The specified ResultSet.row- The row # to move to. (Negative means from the end of the result set.)- Returns:
- NULL.
- Throws:
java.sql.SQLException- thrown on error. (absolute() not supported pre-JDBC2.0)
-
relative
ijResult relative(java.sql.ResultSet rs, int row) throws java.sql.SQLException
Move the cursor position by the specified amount.- Parameters:
rs- The specified ResultSet.row- The # of rows to move. (Negative means toward the beginning of the result set.)- Returns:
- NULL.
- Throws:
java.sql.SQLException- thrown on error. (relative() not supported pre-JDBC2.0)
-
beforeFirst
ijResult beforeFirst(java.sql.ResultSet rs) throws java.sql.SQLException
Position before the first row of the specified ResultSet and return NULL to the user.- Parameters:
rs- The specified ResultSet.- Returns:
- NULL.
- Throws:
java.sql.SQLException- thrown on error. (beforeFirst() not supported pre-JDBC2.0)
-
first
ijResult first(java.sql.ResultSet rs) throws java.sql.SQLException
Position on the first row of the specified ResultSet and return that row to the user.- Parameters:
rs- The specified ResultSet.- Returns:
- The first row of the ResultSet.
- Throws:
java.sql.SQLException- thrown on error. (first() not supported pre-JDBC2.0)
-
afterLast
ijResult afterLast(java.sql.ResultSet rs) throws java.sql.SQLException
Position after the last row of the specified ResultSet and return NULL to the user.- Parameters:
rs- The specified ResultSet.- Returns:
- NULL.
- Throws:
java.sql.SQLException- thrown on error. (afterLast() not supported pre-JDBC2.0)
-
last
ijResult last(java.sql.ResultSet rs) throws java.sql.SQLException
Position on the last row of the specified ResultSet and return that row to the user.- Parameters:
rs- The specified ResultSet.- Returns:
- The last row of the ResultSet.
- Throws:
java.sql.SQLException- thrown on error. (last() not supported pre-JDBC2.0)
-
previous
ijResult previous(java.sql.ResultSet rs) throws java.sql.SQLException
Position on the previous row of the specified ResultSet and return that row to the user.- Parameters:
rs- The specified ResultSet.- Returns:
- The previous row of the ResultSet.
- Throws:
java.sql.SQLException- thrown on error. (previous() not supported pre-JDBC2.0)
-
getCurrentRowNumber
int getCurrentRowNumber(java.sql.ResultSet rs) throws java.sql.SQLExceptionGet the current row number- Parameters:
rs- The specified ResultSet.- Returns:
- The current row number
- Throws:
java.sql.SQLException- thrown on error. (getRow() not supported pre-JDBC2.0)
-
-