Class SQLRConnection

java.lang.Object
com.firstworks.sqlrelay.SQLRConnection

public class SQLRConnection extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    long
    connection is used internally, it's just public to make the JNI wrapper work faster.
  • Constructor Summary

    Constructors
    Constructor
    Description
    SQLRConnection(String server, short port, String socket, String user, String password, int retrytime, int tries)
    Initiates a connection to "server" on "port" or to the unix "socket" on the local machine and auths with "user" and "password".
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Instructs the database to wait for the client to tell it when to commit.
    boolean
    Instructs the database to perform a commit after every successful query.
    boolean
    Begins a transaction.
    Returns a string representing the bind variable format used by the database.
    Returns the version of the sqlrelay client software.
    boolean
    Commits a transaction.
    Returns the host name of the database
    Returns the ip address of the database
    Returns the version of the database
    void
    Turns debugging off.
    void
    Causes verbose debugging information to be sent to standard output.
    void
    Disconnects and ends the session if it hasn't been ended already.
    void
    Disables encryption.
    void
    enableKerberos(String service, String mech, String flags)
    Enables Kerberos authentication and encryption.
    void
    enableTls(String version, String cert, String password, String ciphers, String validate, String ca, short depth)
    Enables TLS/SSL encryption, and optionally authentication.
    void
    Ends the session.
    If an operation failed and generated an error, the error message is available here.
    long
    If an operation failed and generated an error, the error number is available here.
    boolean
    Returns true if auto-commit is currently on, false otherwise.
    boolean
    Returns true if at-signs (@) are considered to be valid bind variable delimiters.
    boolean
    Returns true if colons (:) are considered to be valid bind variable delimiters.
    boolean
    Returns true if dollar signs ($) are considered to be valid bind variable delimiters.
    boolean
    Returns true if question marks (?) are considered to be valid bind variable delimiters.
    Returns the string that was set by setClientInfo().
    short
    Returns the inet port that the connection is communicating over.
    Returns the unix socket that the connection is communicating over.
    int
    Gets the server connect timeout in microseconds.
    int
    Gets the server connect timeout in seconds.
    Returns the catalog that is currently in use.
    Returns the database that is currently in use.
    Returns the schema that is currently in use.
    Returns the user that sqlrelay is currently logged in to the database as, or null if no user could be determined or if an error occurred.
    Returns the value of the specified database "feature".
    boolean
    Returns true if the backend database equates "database" with "schema", and false if it equates "database" with "catalog".
    boolean
    Returns false if debugging is off and true if debugging is on.
    Returns the database-specific default isolation level, or null if an error occurred.
     
    Returns the database's native transaction model.
    boolean
    Returns true if the session is currently inside a transaction, false otherwise.
    Returns the database-specific isolation level, "unknown" if the isolation level is unknown, or null if an error occurred.
    getIsolationLevel(int format)
     
    long
    Returns the value of the autoincrement column for the last insert
    int
    Gets the response timeout in microseconds.
    int
    Gets the response timeout in seconds.
    Returns the current transaction model.
    Returns the type of database: oracle, postgresql, mysql, etc.
    Returns a string representing the format of the sequence nextval command used in the database.
    boolean
    Returns true if the database is up and false if it's down.
    boolean
    resumeSession(short port, String socket)
    Resumes a session previously left open using suspendSession().
    boolean
    Rolls back a transaction.
    boolean
    Sets the current catalog to "catalog"
    boolean
    Sets the current database to "database".
    boolean
    Sets the current schema to "schema"
    Returns the version of the sqlrelay server software.
    void
    Sets which delimiters are used to identify bind variables in countBindVariables() and validateBinds().
    boolean
    setClientInfo(String clientinfo)
    Allows you to set a string that will be passed to the server and ultimately included in server-side logging along with queries that were run by this instance of the client.
    void
    setConnectTimeout(int timeoutsec, int timeoutusec)
    Sets the server connect timeout in seconds and microseconds.
    boolean
    setDebugFile(String debugfile)
    Allows you to specify a file to write debug to.
    boolean
    setIsolationLevel(String isolationlevel)
    Sets the transaction isolation level to "isolationlevel".
    boolean
    setIsolationLevel(String isolationlevel, int format)
     
    void
    setResponseTimeout(int timeoutsec, int timeoutusec)
    Sets the response timeout (for queries, commits, rollbacks, pings, etc.) in seconds and microseconds.
    boolean
    Sets the current transaction model to "txmodel" which should be one of: * native - the database's native transaction model * none - no transactions * "implicit" * in a transaction when the session begins * commit/rollback implicitly starts a new transcaction * autocommit on/off take effect immediately * "explicit" * not in a transaction when the session begins * begin required to start a new transaction * commit/rollback does not start a new transcaction * autocommit on/off take effect immediately * "explicit-deferred" * not in a transaction when the session begins * begin required to start a new transaction * commit/rollback does not start a new transcaction * while in a begin-initiated transaction, autocommit on takes effect at next commit/rollback (deferred) * while in an autocommit-off-initiated transaction, autocommit on takes effect immediately * "explicit-error" * not in a transaction when the session begins * begin required to start a new transaction * commit/rollback does not start a new transcaction * while in a transaction, autocommit on/off throw error Returns true on success and false on failure.
    boolean
    Disconnects this connection from the current session but leaves the session open so that another connection can connect to it using resumeSession().

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • connection

      public long connection
      connection is used internally, it's just public to make the JNI wrapper work faster.
  • Constructor Details

    • SQLRConnection

      public SQLRConnection(String server, short port, String socket, String user, String password, int retrytime, int tries)
      Initiates a connection to "server" on "port" or to the unix "socket" on the local machine and auths with "user" and "password". Failed connections will be retried for "tries" times, waiting "retrytime" seconds between each try. If "tries" is 0 then retries will continue forever. If "retrytime" is 0 then retries will be attempted on a default interval. If "server" is a comma-separated list of hosts, then an attempt will be made to connect to each until the attempt succeeds, or there are no more hosts left to try. If the "socket" parameter is neither NULL nor "" then an attempt will be made to connect through it before attempting to connect to "server" on "port". If it is NULL or "" then no attempt will be made to connect through the socket.
  • Method Details

    • delete

      public void delete()
      Disconnects and ends the session if it hasn't been ended already.
    • setConnectTimeout

      public void setConnectTimeout(int timeoutsec, int timeoutusec)
      Sets the server connect timeout in seconds and microseconds. Setting either parameter to -1 disables the timeout. You can also set this timeout using the SQLR_CLIENT_CONNECT_TIMEOUT environment variable.
    • getConnectTimeoutSeconds

      public int getConnectTimeoutSeconds()
      Gets the server connect timeout in seconds.
    • getConnectTimeoutMicroseconds

      public int getConnectTimeoutMicroseconds()
      Gets the server connect timeout in microseconds.
    • setResponseTimeout

      public void setResponseTimeout(int timeoutsec, int timeoutusec)
      Sets the response timeout (for queries, commits, rollbacks, pings, etc.) in seconds and microseconds. Setting either parameter to -1 disables the timeout. You can also set this timeout using the SQLR_CLIENT_RESPONSE_TIMEOUT environment variable.
    • getResponseTimeoutSeconds

      public int getResponseTimeoutSeconds()
      Gets the response timeout in seconds.
    • getResponseTimeoutMicroseconds

      public int getResponseTimeoutMicroseconds()
      Gets the response timeout in microseconds.
    • setBindVariableDelimiters

      public void setBindVariableDelimiters(String delimiters)
      Sets which delimiters are used to identify bind variables in countBindVariables() and validateBinds(). Valid delimiters include ?,:,@, and $. Defaults to "?:@$"
    • getBindVariableDelimiterQuestionMarkSupported

      public boolean getBindVariableDelimiterQuestionMarkSupported()
      Returns true if question marks (?) are considered to be valid bind variable delimiters.
    • getBindVariableDelimiterColonSupported

      public boolean getBindVariableDelimiterColonSupported()
      Returns true if colons (:) are considered to be valid bind variable delimiters.
    • getBindVariableDelimiterAtSignSupported

      public boolean getBindVariableDelimiterAtSignSupported()
      Returns true if at-signs (@) are considered to be valid bind variable delimiters.
    • getBindVariableDelimiterDollarSignSupported

      public boolean getBindVariableDelimiterDollarSignSupported()
      Returns true if dollar signs ($) are considered to be valid bind variable delimiters.
    • enableKerberos

      public void enableKerberos(String service, String mech, String flags)
      Enables Kerberos authentication and encryption. "service" indicates the Kerberos service name of the SQL Relay server. If left empty or NULL then the service name "sqlrelay" will be used. "sqlrelay" is the default service name of the SQL Relay server. Note that on Windows platforms the service name must be fully qualified, including the host and realm name. For example: "sqlrelay/sqlrserver.firstworks.com@AD.FIRSTWORKS.COM". "mech" indicates the specific Kerberos mechanism to use. On Linux/Unix platforms, this should be a string representation of the mechnaism's OID, such as: { 1 2 840 113554 1 2 2 } On Windows platforms, this should be a string like: Kerberos If left empty or NULL then the default mechanism will be used. Only set this if you know that you have a good reason to. "flags" indicates what Kerberos flags to use. Multiple flags may be specified, separated by commas. If left empty or NULL then a defalt set of flags will be used. Only set this if you know that you have a good reason to. Valid flags include: * GSS_C_MUTUAL_FLAG * GSS_C_REPLAY_FLAG * GSS_C_SEQUENCE_FLAG * GSS_C_CONF_FLAG * GSS_C_INTEG_FLAG For a full list of flags, consult the GSSAPI documentation, though note that only the flags listed above are supported on Windows.
    • enableTls

      public void enableTls(String version, String cert, String password, String ciphers, String validate, String ca, short depth)
      Enables TLS/SSL encryption, and optionally authentication. "version" specifies the TLS/SSL protocol version that the client will attempt to use. Valid values include SSL2, SSL3, TLS1, TLS1.1, TLS1.2 or any more recent version of TLS, as supported by and enabled in the underlying TLS/SSL library. If left blank or empty then the highest supported version will be negotiated. "cert" is the file name of the certificate chain file to send to the SQL Relay server. This is only necessary if the SQL Relay server is configured to authenticate and authorize clients by certificate. If "cert" contains a password-protected private key, then "password" may be supplied to access it. If the private key is not password-protected, then this argument is ignored, and may be left empty or NULL. "ciphers" is a list of ciphers to allow. Ciphers may be separated by spaces, commas, or colons. If "ciphers" is empty or NULL then a default set is used. Only set this if you know that you have a good reason to. For a list of valid ciphers on Linux/Unix platforms, see: man ciphers For a list of valid ciphers on Windows platforms, see: https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549%28v=vs.85%29.aspx On Windows platforms, the ciphers (alg_id's) should omit CALG_ and may be given with underscores or dashes. For example: 3DES_112 "validate" indicates whether to validate the SQL Relay's server certificate, and may be set to one of the following: "no" - Don't validate the server's certificate. "ca" - Validate that the server's certificate was signed by a trusted certificate authority. "ca+host" - Perform "ca" validation and also validate that one of the subject altenate names (or the common name if no SANs are present) in the certificate matches the host parameter. (Falls back to "ca" validation when a unix socket is used.) "ca+domain" - Perform "ca" validation and also validate that the domain name of one of the subject alternate names (or the common name if no SANs are present) in the certificate matches the domain name of the host parameter. (Falls back to "ca" validation when a unix socket is used.) "ca" is the location of a certificate authority file to use, in addition to the system's root certificates, when validating the SQL Relay server's certificate. This is useful if the SQL Relay server's certificate is self-signed. On Windows, "ca" must be a file name. On non-Windows systems, "ca" can be either a file or directory name. If it is a directory name, then all certificate authority files found in that directory will be used. If it a file name, then only that file will be used. Note that the supported "cert" and "ca" file formats may vary between platforms. A variety of file formats are generally supported on Linux/Unix platfoms (.pem, .pfx, etc.) but only the .pfx format is currently supported on Windows.
    • disableEncryption

      public void disableEncryption()
      Disables encryption.
    • endSession

      public void endSession()
      Ends the session.
    • suspendSession

      public boolean suspendSession()
      Disconnects this connection from the current session but leaves the session open so that another connection can connect to it using resumeSession().
    • getConnectionPort

      public short getConnectionPort()
      Returns the inet port that the connection is communicating over. This parameter may be passed to another connection for use in the resumeSession() method. Note: The value this method returns is only valid after a call to suspendSession().
    • getConnectionSocket

      public String getConnectionSocket()
      Returns the unix socket that the connection is communicating over. This parameter may be passed to another connection for use in the resumeSession() method. Note: The value this method returns is only valid after a call to suspendSession().
    • resumeSession

      public boolean resumeSession(short port, String socket)
      Resumes a session previously left open using suspendSession(). Returns true on success and false on failure.
    • ping

      public boolean ping()
      Returns true if the database is up and false if it's down.
    • identify

      public String identify()
      Returns the type of database: oracle, postgresql, mysql, etc.
    • dbVersion

      public String dbVersion()
      Returns the version of the database
    • dbHostName

      public String dbHostName()
      Returns the host name of the database
    • dbIpAddress

      public String dbIpAddress()
      Returns the ip address of the database
    • serverVersion

      public String serverVersion()
      Returns the version of the sqlrelay server software.
    • clientVersion

      public String clientVersion()
      Returns the version of the sqlrelay client software.
    • bindFormat

      public String bindFormat()
      Returns a string representing the bind variable format used by the database. For example: ? - database uses a ? to represent a bind variable * - database uses a @ followed by any characters to represent a bind variable $1 - database uses a $ followed by a number to represent a bind variable :* - database uses a : followed by any characters to represent a bind variable
    • nextvalFormat

      public String nextvalFormat()
      Returns a string representing the format of the sequence nextval command used in the database. The format will contain a %s in place of the sequence name. For example: (nextval for %s) next value for %s nextval('%s') %s.nextval Returns an empty string if the database does not support sequences.
    • selectDatabase

      public boolean selectDatabase(String database)
      Sets the current database to "database". May set the current catalog or schema, depending on whether the backend database equates "database" with catalog or schema. See getDatabaseIsSchema().
    • getCurrentDatabase

      public String getCurrentDatabase()
      Returns the database that is currently in use. May return the current catalog or schema, depending on whether the backend database equates "database" with catalog or schema. See getDatabaseIsSchema().
    • getDatabaseIsSchema

      public boolean getDatabaseIsSchema()
      Returns true if the backend database equates "database" with "schema", and false if it equates "database" with "catalog".
    • selectCatalog

      public boolean selectCatalog(String catalog)
      Sets the current catalog to "catalog"
    • getCurrentCatalog

      public String getCurrentCatalog()
      Returns the catalog that is currently in use.
    • selectSchema

      public boolean selectSchema(String schema)
      Sets the current schema to "schema"
    • getCurrentSchema

      public String getCurrentSchema()
      Returns the schema that is currently in use.
    • getCurrentUser

      public String getCurrentUser()
      Returns the user that sqlrelay is currently logged in to the database as, or null if no user could be determined or if an error occurred.
    • getLastInsertId

      public long getLastInsertId()
      Returns the value of the autoincrement column for the last insert
    • autoCommitOn

      public boolean autoCommitOn()
      Instructs the database to perform a commit after every successful query.
    • autoCommitOff

      public boolean autoCommitOff()
      Instructs the database to wait for the client to tell it when to commit.
    • getAutoCommit

      public boolean getAutoCommit()
      Returns true if auto-commit is currently on, false otherwise.
    • begin

      public boolean begin()
      Begins a transaction. Returns true if the begin succeeded, false if it failed. If the database automatically begins a new transaction when a commit or rollback is issued then this doesn't do anything unless SQL Relay is faking transaction blocks.
    • commit

      public boolean commit()
      Commits a transaction. Returns true if the commit succeeded, false if it failed.
    • rollback

      public boolean rollback()
      Rolls back a transaction. Returns true if the rollback succeeded, false if it failed.
    • getInTransaction

      public boolean getInTransaction()
      Returns true if the session is currently inside a transaction, false otherwise.
    • getDefaultTransactionModel

      public String getDefaultTransactionModel()
      Returns the database's native transaction model. See setTranscationModel() for a list of potential return values. Returns null if an error occurred.
    • setTransactionModel

      public boolean setTransactionModel(String txmodel)
      Sets the current transaction model to "txmodel" which should be one of: * native - the database's native transaction model * none - no transactions * "implicit" * in a transaction when the session begins * commit/rollback implicitly starts a new transcaction * autocommit on/off take effect immediately * "explicit" * not in a transaction when the session begins * begin required to start a new transaction * commit/rollback does not start a new transcaction * autocommit on/off take effect immediately * "explicit-deferred" * not in a transaction when the session begins * begin required to start a new transaction * commit/rollback does not start a new transcaction * while in a begin-initiated transaction, autocommit on takes effect at next commit/rollback (deferred) * while in an autocommit-off-initiated transaction, autocommit on takes effect immediately * "explicit-error" * not in a transaction when the session begins * begin required to start a new transaction * commit/rollback does not start a new transcaction * while in a transaction, autocommit on/off throw error Returns true on success and false on failure.
    • getTransactionModel

      public String getTransactionModel()
      Returns the current transaction model. See setTranscationModel() for a list of potential return values. Returns null if an error occurred.
    • getDefaultIsolationLevel

      public String getDefaultIsolationLevel()
      Returns the database-specific default isolation level, or null if an error occurred.
    • setIsolationLevel

      public boolean setIsolationLevel(String isolationlevel)
      Sets the transaction isolation level to "isolationlevel". The string is the database-specific (native) name and is matched case-insensitively. Valid isolation levels include: For PostgreSQL: * READ UNCOMMITTED * READ COMMITTED (default) * REPEATABLE READ * SERIALIZABLE For MySQL/MariaDB: * READ-UNCOMMITTED * READ-COMMITTED * REPEATABLE-READ (default) * SERIALIZABLE For Oracle: * READ COMMITTED (default) * SERIALIZABLE For DB2: * UR (uncommitted read) * CS (cursor stability, default) * RS (read stability) * RR (repeatable read) For MS SQL Server (via FreeTDS): * READ UNCOMMITTED * READ COMMITTED (default) * REPEATABLE READ * SERIALIZABLE * SNAPSHOT For SAP ASE (Sybase): * 0 (read uncommitted) * 1 (read committed, default) * 2 (repeatable read) * 3 (serializable) For Informix: * dirty read * committed read (default) * cursor stability * repeatable read For Firebird: * read committed (default) * read committed no record version * read consistency * snapshot * snapshot table stability For SQLite: * 0 (serializable, default) * 1 (read uncommitted) For ODBC: * SQL_TXN_READ_UNCOMMITTED * SQL_TXN_READ_COMMITTED * SQL_TXN_REPEATABLE_READ * SQL_TXN_SERIALIZABLE (whether a given level is actually supported depends on the underlying ODBC driver and target database). The generic ODBC backend also accepts the database-specific native names listed above for any of the other backends, as well as the JDBC TRANSACTION_* names, and maps them to the closest of the four ODBC levels above. For other databases, the string is passed through to the backend as the argument to "set transaction isolation level". Returns true if setting the isolation level succeeded, false if it failed.
    • getIsolationLevel

      public String getIsolationLevel()
      Returns the database-specific isolation level, "unknown" if the isolation level is unknown, or null if an error occurred.
    • getDatabaseFeature

      public String getDatabaseFeature(String feature)
      Returns the value of the specified database "feature". Valid features include: * aggregate_functions * list - ALL,AVG,COUNT,DISTINCT,MAX,MIN,SUM * all_procedures_are_callable * true/false * all_tables_are_selectable * true/false * alter_domain_clauses * list - ADD_DOMAIN_CONSTRAINT,ADD_DOMAIN_DEFAULT,... * alter_table_operations * list - ADD_COLUMN,DROP_COLUMN * ansi92_sql_levels * list - ENTRY_LEVEL,FULL,INTERMEDIATE * auto_commit_failure_closes_all_result_sets * true/false * batch_operations * list - SELECT_EXPLICIT,ROW_COUNT_EXPLICIT,SELECT_PROC,... * batch_row_counts * list - PROCEDURES,EXPLICIT,ROLLED_UP * catalog_separator * string * catalog_term * string * catalog_usage * list - DATA_MANIPULATION,INDEX_DEFINITIONS,... * collation_seq * string * create_assertion_clauses * list - CREATE_ASSERTION,CONSTRAINT_INITIALLY_DEFERRED,... * create_character_set_clauses * list - CREATE_CHARACTER_SET,COLLATE_CLAUSE,... * create_collation_clauses * list - CREATE_COLLATION * create_domain_clauses * list - CREATE_DOMAIN,CONSTRAINT_NAME_DEFINITION,... * create_schema_clauses * list - CREATE_SCHEMA,AUTHORIZATION,DEFAULT_CHARACTER_SET * create_table_clauses * list - CREATE_TABLE,TABLE_CONSTRAINT,... * create_translation_clauses * list - CREATE_TRANSLATION * create_view_clauses * list - CREATE_VIEW,CHECK_OPTION,CASCADED,LOCAL * data_definition_transaction_behavior * list - CAUSES_COMMIT,IGNORED_IN_TRANSACTIONS * ddl_index_operations * list - CREATE_INDEX,DROP_INDEX * string * default_result_set_holdability * string * deletes_are_detected * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * does_max_row_size_include_blobs * true/false * drop_assertion_clauses * list - DROP_ASSERTION * drop_character_set_clauses * list - DROP_CHARACTER_SET * drop_collation_clauses * list - DROP_COLLATION * drop_domain_clauses * list - DROP_DOMAIN,CASCADE,RESTRICT * drop_schema_clauses * list - DROP_SCHEMA,CASCADE,RESTRICT * drop_table_clauses * list - DROP_TABLE,CASCADE,RESTRICT * drop_translation_clauses * list - DROP_TRANSLATION * drop_view_clauses * list - DROP_VIEW,CASCADE,RESTRICT * extra_name_characters * string * foreign_key_delete_rules * list - CASCADE,NO_ACTION,SET_DEFAULT,SET_NULL * foreign_key_update_rules * list - CASCADE,NO_ACTION,SET_DEFAULT,SET_NULL * forward_only_cursor_attributes * list - NEXT,ABSOLUTE,RELATIVE,BOOKMARK,... * generated_key_always_returned * true/false * grant_clauses * list - DELETE_TABLE,INSERT_COLUMN,INSERT_TABLE,... * group_by_clauses * list - BASIC,BEYOND_SELECT,UNRELATED * identifier_case_storage * list - LOWER,MIXED,SENSITIVE,UPPER * identifier_quote_string * string * index_keywords * list - ASC,DESC * info_schema_views * list - ASSERTIONS,CHARACTER_SETS,CHECK_CONSTRAINTS,... * insert_operations * list - INSERT_LITERALS,INSERT_SEARCHED,SELECT_INTO * inserts_are_detected * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * is_catalog_at_start * true/false * isolation_levels * list - READ_UNCOMMITTED,READ_COMMITTED,... * local_file_usage * list - LOCAL_FILE_PER_TABLE,LOCAL_FILES * locators_update_copy * true/false * lock_types * list - NO_CHANGE,EXCLUSIVE,UNLOCK * max_binary_literal_length * number * max_catalog_name_length * number * max_char_literal_length * number * max_column_name_length * number * max_columns_in_group_by * number * max_columns_in_index * number * max_columns_in_order_by * number * max_columns_in_select * number * max_columns_in_table * number * max_connections * number * max_cursor_name_length * number * max_identifier_length * number * max_index_length * number * max_procedure_name_length * number * max_row_size * number * max_schema_name_length * number * max_statement_length * number * max_statements * number * max_table_name_length * number * max_tables_in_select * number * max_user_name_length * number * need_long_data_length * true/false * null_plus_non_null_is_null * true/false * null_sort_order * list - AT_END,AT_START,HIGH,LOW * numeric_functions * list - ABS,ACOS,ASIN,ATAN,ATAN2,CEILING,COS,COT,... * open_cursors_across * list - COMMIT,ROLLBACK * open_statements_across * list - COMMIT,ROLLBACK * others_deletes_are_visible * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * others_inserts_are_visible * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * others_updates_are_visible * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * outer_joins * list - BASIC,FULL,LIMITED * own_deletes_are_visible * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * own_inserts_are_visible * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * own_updates_are_visible * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * predicates * list - BETWEEN,COMPARISON,EXISTS,IN,ISNOTNULL,ISNULL,... * procedure_term * string * quoted_identifier_case_storage * list - LOWER,MIXED,SENSITIVE,UPPER * relational_join_operators * list - CORRESPONDING_CLAUSE,CROSS_JOIN,EXCEPT_JOIN,... * result_set_concurrencies * list - FORWARD_ONLY/READ_ONLY,FORWARD_ONLY/UPDATABLE,... * result_set_holdabilities * list - CLOSE_CURSORS_AT_COMMIT,HOLD_CURSORS_OVER_COMMIT * result_set_types * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * revoke_clauses * list - CASCADE,DELETE_TABLE,GRANT_OPTION_FOR,... * row_id_lifetime * string * row_value_constructor_expressions * list - VALUE_EXPRESSION,NULL,DEFAULT,ROW_SUBQUERY * schema_term * string * schema_usage * list - DATA_MANIPULATION,INDEX_DEFINITIONS,... * scroll_concurrencies * list - READ_ONLY,LOCK,OPT_ROWVER,OPT_VALUES * search_string_escape * string * sql_grammar_levels * list - CORE,EXTENDED,MINIMUM * sql_keywords * list - ACCESS,ADD,ALTER,AUDIT,CLUSTER,COLUMN,COMMENT,... * sql_state_type * number * static_cursor_attributes * list - NEXT,ABSOLUTE,RELATIVE,BOOKMARK,... * stored_programs * list - FUNCTIONS,PROCEDURES * string_functions * list - CONCAT,INSERT,LEFT,LTRIM,LENGTH,LOCATE,LCASE,... * subquery_usage * list - COMPARISONS,EXISTS,INS,QUANTIFIEDS * supports_batch_updates * true/false * supports_column_aliasing * true/false * supports_convert * true/false * supports_correlated_subqueries * true/false * supports_describe_parameter * true/false * supports_expressions_in_order_by * true/false * supports_get_generated_keys * true/false * supports_integrity_enhancement_facility * true/false * supports_like_escape_clause * true/false * supports_multiple_result_sets * true/false * supports_multiple_transactions * true/false * supports_named_parameters * true/false * supports_non_nullable_columns * true/false * supports_order_by_unrelated * true/false * supports_savepoints * true/false * supports_select_for_update * true/false * supports_transactions * true/false * system_functions * list - USER,DBNAME,IFNULL * table_correlation_names * list - BASIC,DIFFERENT * table_term * string * time_date_add_intervals * list - FRAC_SECOND,SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,... * time_date_diff_intervals * list - FRAC_SECOND,SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,... * time_date_functions * list - NOW,CURDATE,DAYOFMONTH,DAYOFWEEK,DAYOFYEAR,... * time_date_literals * list - DATE,TIME,TIMESTAMP,INTERVAL_YEAR,... * transaction_ddl_dml * list - DDL_AND_DML,DML_ONLY * union_clauses * list - UNION,UNION_ALL * updates_are_detected * list - FORWARD_ONLY,SCROLL_INSENSITIVE,SCROLL_SENSITIVE * value_expressions * list - CASE,CAST,COALESCE,NULLIF * where_current_of_operations * list - DELETE,UPDATE Returns the value of the feature as a string, or null if an error occurred or an invalid feature was requested.
    • errorMessage

      public String errorMessage()
      If an operation failed and generated an error, the error message is available here. If there is no error then this method returns NULL.
    • errorNumber

      public long errorNumber()
      If an operation failed and generated an error, the error number is available here. If there is no error then this method returns 0.
    • debugOn

      public void debugOn()
      Causes verbose debugging information to be sent to standard output. Another way to do this is to start a query with "-- debug\n". Yet another way is to set the environment variable SQLR_CLIENT_DEBUG to "ON"
    • debugOff

      public void debugOff()
      Turns debugging off.
    • getDebug

      public boolean getDebug()
      Returns false if debugging is off and true if debugging is on.
    • setDebugFile

      public boolean setDebugFile(String debugfile)
      Allows you to specify a file to write debug to. Setting "filename" to NULL or an empty string causes debug to be written to standard output (the default).
    • setClientInfo

      public boolean setClientInfo(String clientinfo)
      Allows you to set a string that will be passed to the server and ultimately included in server-side logging along with queries that were run by this instance of the client.
    • getClientInfo

      public String getClientInfo()
      Returns the string that was set by setClientInfo().
    • getDefaultIsolationLevel

      public String getDefaultIsolationLevel(int format)
    • setIsolationLevel

      public boolean setIsolationLevel(String isolationlevel, int format)
    • getIsolationLevel

      public String getIsolationLevel(int format)