org.h2.command
Class Command

java.lang.Object
  extended by org.h2.command.Command
All Implemented Interfaces:
CommandInterface
Direct Known Subclasses:
CommandContainer, CommandList

public abstract class Command
extends java.lang.Object
implements CommandInterface

Represents a SQL statement. This object is only used on the server side.


Field Summary
protected  Session session
          The session.
protected  long startTime
          The last start time.
protected  Trace trace
          The trace module.
 
Fields inherited from interface org.h2.command.CommandInterface
ALTER_INDEX_RENAME, ALTER_SCHEMA_RENAME, ALTER_SEQUENCE, ALTER_TABLE_ADD_COLUMN, ALTER_TABLE_ADD_CONSTRAINT_CHECK, ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY, ALTER_TABLE_ADD_CONSTRAINT_REFERENTIAL, ALTER_TABLE_ADD_CONSTRAINT_UNIQUE, ALTER_TABLE_ALTER_COLUMN_CHANGE_TYPE, ALTER_TABLE_ALTER_COLUMN_DEFAULT, ALTER_TABLE_ALTER_COLUMN_NOT_NULL, ALTER_TABLE_ALTER_COLUMN_NULL, ALTER_TABLE_ALTER_COLUMN_RENAME, ALTER_TABLE_ALTER_COLUMN_SELECTIVITY, ALTER_TABLE_DROP_COLUMN, ALTER_TABLE_DROP_CONSTRAINT, ALTER_TABLE_RENAME, ALTER_TABLE_SET_REFERENTIAL_INTEGRITY, ALTER_USER_ADMIN, ALTER_USER_RENAME, ALTER_USER_SET_PASSWORD, ALTER_VIEW, ANALYZE, BACKUP, BEGIN, CALL, CHECKPOINT, CHECKPOINT_SYNC, COMMENT, COMMIT, COMMIT_TRANSACTION, CREATE_AGGREGATE, CREATE_ALIAS, CREATE_CONSTANT, CREATE_DOMAIN, CREATE_INDEX, CREATE_LINKED_TABLE, CREATE_ROLE, CREATE_SCHEMA, CREATE_SEQUENCE, CREATE_TABLE, CREATE_TRIGGER, CREATE_USER, CREATE_VIEW, DEALLOCATE, DELETE, DROP_AGGREGATE, DROP_ALIAS, DROP_ALL_OBJECTS, DROP_CONSTANT, DROP_DOMAIN, DROP_INDEX, DROP_ROLE, DROP_SCHEMA, DROP_SEQUENCE, DROP_TABLE, DROP_TRIGGER, DROP_USER, DROP_VIEW, EXECUTE, EXPLAIN, GRANT, INSERT, MERGE, NO_OPERATION, PREPARE, PREPARE_COMMIT, REVOKE, ROLLBACK, ROLLBACK_TO_SAVEPOINT, ROLLBACK_TRANSACTION, RUNSCRIPT, SAVEPOINT, SCRIPT, SELECT, SET, SET_AUTOCOMMIT_FALSE, SET_AUTOCOMMIT_TRUE, SHUTDOWN, SHUTDOWN_COMPACT, SHUTDOWN_DEFRAG, SHUTDOWN_IMMEDIATELY, TRUNCATE_TABLE, UNKNOWN, UPDATE
 
Constructor Summary
Command(Parser parser, java.lang.String sql)
           
 
Method Summary
 void cancel()
          Cancel the statement if it is still processing.
 void checkCanceled()
          Check if this command has been canceled, and throw an exception if yes.
 void close()
          Close the statement.
 ResultInterface executeQuery(int maxrows, boolean scrollable)
          Execute a query and return the result.
 int executeUpdate()
          Execute the statement
 ResultInterface getMetaData()
          Get an empty result set containing the meta data of the result.
abstract  java.util.ArrayList<? extends ParameterInterface> getParameters()
          Get the list of parameters.
 boolean isCacheable()
           
abstract  boolean isQuery()
          Check if this command is a query.
abstract  boolean isReadOnly()
          Check if this command is read only.
abstract  boolean isTransactional()
          Check if this command is transactional.
 ResultInterface query(int maxrows)
          Execute a query statement, if this is possible.
abstract  ResultInterface queryMeta()
          Get an empty result set containing the meta data.
 java.lang.String toString()
           
 int update()
          Execute an updating statement, if this is possible.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.h2.command.CommandInterface
getCommandType
 

Field Detail

session

protected final Session session
The session.


trace

protected final Trace trace
The trace module.


startTime

protected long startTime
The last start time.

Constructor Detail

Command

public Command(Parser parser,
               java.lang.String sql)
Method Detail

isTransactional

public abstract boolean isTransactional()
Check if this command is transactional. If it is not, then it forces the current transaction to commit.

Returns:
true if it is

isQuery

public abstract boolean isQuery()
Check if this command is a query.

Specified by:
isQuery in interface CommandInterface
Returns:
true if it is

getParameters

public abstract java.util.ArrayList<? extends ParameterInterface> getParameters()
Get the list of parameters.

Specified by:
getParameters in interface CommandInterface
Returns:
the list of parameters

isReadOnly

public abstract boolean isReadOnly()
Check if this command is read only.

Returns:
true if it is

queryMeta

public abstract ResultInterface queryMeta()
Get an empty result set containing the meta data.

Returns:
an empty result set

update

public int update()
Execute an updating statement, if this is possible.

Returns:
the update count
Throws:
java.sql.SQLException - if the command is not an updating statement

query

public ResultInterface query(int maxrows)
Execute a query statement, if this is possible.

Parameters:
maxrows - the maximum number of rows returned
Returns:
the local result set
Throws:
java.sql.SQLException - if the command is not a query

getMetaData

public final ResultInterface getMetaData()
Description copied from interface: CommandInterface
Get an empty result set containing the meta data of the result.

Specified by:
getMetaData in interface CommandInterface
Returns:
the empty result

executeQuery

public ResultInterface executeQuery(int maxrows,
                                    boolean scrollable)
Execute a query and return the result. This method prepares everything and calls query(int) finally.

Specified by:
executeQuery in interface CommandInterface
Parameters:
maxrows - the maximum number of rows to return
scrollable - if the result set must be scrollable (ignored)
Returns:
the result set

checkCanceled

public void checkCanceled()
Check if this command has been canceled, and throw an exception if yes.

Throws:
java.sql.SQLException - if the statement has been canceled

executeUpdate

public int executeUpdate()
Description copied from interface: CommandInterface
Execute the statement

Specified by:
executeUpdate in interface CommandInterface
Returns:
the update count

close

public void close()
Description copied from interface: CommandInterface
Close the statement.

Specified by:
close in interface CommandInterface

cancel

public void cancel()
Description copied from interface: CommandInterface
Cancel the statement if it is still processing.

Specified by:
cancel in interface CommandInterface

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

isCacheable

public boolean isCacheable()