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.Object
This 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 int
BUFFEREDFILESIZE
(package private) UCode_CharStream
charStream
private StatementFinder[]
commandGrabber
(package private) ConnectionEnv[]
connEnv
private int
currCE
private boolean
fileInput
private boolean
firstRun
private java.util.Hashtable
ignoreErrors
private java.lang.String
ijExceptionTrace
Value of the system property ij.execptionTrace(package private) org.apache.derby.impl.tools.ij.ij
ijParser
(package private) org.apache.derby.impl.tools.ij.ijTokenManager
ijTokMgr
private boolean
initialFileInput
(package private) LocalizedResource
langUtil
private boolean
mtUse
private int
numConnections
(package private) java.util.Stack<StatementFinder>
oldGrabbers
private LocalizedOutput
out
private boolean
showErrorCode
True 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) ijResult
absolute(java.sql.ResultSet rs, int row)
Position on the specified row of the specified ResultSet.(package private) ijResult
afterLast(java.sql.ResultSet rs)
Position after the last row of the specified ResultSet and return NULL to the user.(package private) ijResult
beforeFirst(java.sql.ResultSet rs)
Position before the first row of the specified ResultSet and return NULL to the user.private void
checkScrollableCursor(java.sql.ResultSet rs, java.lang.String operation)
Check that the cursor is scrollable.private void
cleanupGo(LocalizedInput[] in)
Perform cleanup after a script has been run.private void
displayResult(LocalizedOutput out, ijResult result, java.sql.Connection conn)
private boolean
doCatch(java.lang.String command)
catch processing on failed commands.(package private) 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.private void
doTrace(java.lang.Throwable t)
stack trace dumper(package private) ijResult
first(java.sql.ResultSet rs)
Position on the first row of the specified ResultSet and return that row to the user.(package private) int
getCurrentRowNumber(java.sql.ResultSet rs)
Get the current row numbervoid
go(LocalizedInput[] in, LocalizedOutput out)
run ij over the specified input, sending output to the specified output.int
goScript(java.sql.Connection conn, LocalizedInput in)
Support to run a script.private void
handleSQLException(LocalizedOutput out, java.sql.SQLException e)
This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field.void
initFromEnvironment()
Initialize the connections from the environment.(package private) ijResult
last(java.sql.ResultSet rs)
Position on the last row of the specified ResultSet and return that row to the user.(package private) void
newInput(java.lang.String fileName)
(package private) void
newResourceInput(java.lang.String resourceName)
(package private) ijResult
previous(java.sql.ResultSet rs)
Position on the previous row of the specified ResultSet and return that row to the user.(package private) ijResult
relative(java.sql.ResultSet rs, int row)
Move the cursor position by the specified amount.private int
runScriptGuts()
Run the guts of the script.(package private) void
setMtUse(boolean b)
private void
supportIJProperties(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 ijFatalException
Set 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 ijFatalException
Set 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 ijFatalException
Set 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.SQLException
Check 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.SQLException
Get 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)
-
-