NAME
SQLRelay::Connection - Perl API for SQL Relay
SYNOPSIS
use SQLRelay::Connection;
use SQLRelay::Cursor;
my $sc=SQLRelay::Connection->new("testhost",9000,"",
"testuser","testpassword",0,1);
my $ss=SQLRelay::Cursor->new($sc);
$ss->sendQuery("select table_name from user_tables");
$sc->endSession();
for (my $i=0; $i<$ss->rowCount(); $i++) {
print $ss->getField($i,"table_name"), "\n";
}
DESCRIPTION
SQLRelay::Connection
new(server, port, socket, user, password, retrytime, 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.
DESTROY();
# Disconnects and ends the session if
# it hasn't been ended already.
setConnectTimeout(timeoutsec, 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();
# Gets the server connect timeout in seconds.
getConnectTimeoutMicroseconds();
# Gets the server connect timeout in microseconds.
setResponseTimeout(timeoutsec, 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();
# Gets the response timeout in seconds.
getResponseTimeoutMicroseconds();
# Gets the response timeout in microseconds.
setBindVariableDelimiters(delimiters);
# Sets which delimiters are used to identify bind variables
# in countBindVariables() and validateBinds(). Valid
# delimiters include ?,:,@, and $. Defaults to "?:@$"
getBindVariableDelimiterQuestionMarkSupported();
# Returns true if question marks (?) are considered to be
# valid bind variable delimiters.
getBindVariableDelimiterColonSupported();
# Returns true if colons (:) are considered to be
# valid bind variable delimiters.
getBindVariableDelimiterAtSignSupported();
# Returns true if at-signs (@) are considered to be
# valid bind variable delimiters.
getBindVariableDelimiterDollarSignSupported();
# Returns true if dollar signs ($) are considered to be
# valid bind variable delimiters.
enableKerberos(service, mech, 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(version, cert, password, ciphers, validate, ca, 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();
# Disables encryption.
endSession();
# Ends the session.
suspendSession();
# Disconnects this connection from the current
# session but leaves the session open so
# that another connection can connect to it
# using resumeSession().
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();
# 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(port,socket);
# Resumes a session previously left open
# using suspendSession().
# Returns true on success and false on failure.
ping();
# Returns true if the database is up and false
# if it's down.
identify();
# Returns the type of database:
# oracle, postgresql, mysql, etc.
dbVersion();
# Returns the version of the database
dbHostName();
# Returns the host name of the database
dbIpAddress();
# Returns the ip address of the database
serverVersion();
# Returns the version of the sqlrelay server software.
clientVersion();
# Returns the version of the sqlrelay client software.
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();
# 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(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();
# 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();
# Returns true if the backend database equates
# "database" with "schema", and false if it
# equates "database" with "catalog".
selectCatalog(catalog);
# Sets the current catalog to "catalog"
getCurrentCatalog();
# Returns the catalog that is currently in use.
selectSchema(schema);
# Sets the current schema to "schema"
getCurrentSchema();
# Returns the schema that is currently in use.
getCurrentUser();
# Returns the user that sqlrelay is currently
# logged in to the database as, or undef if
# no user could be determined or if an error
# occurred.
getLastInsertId();
# Returns the value of the autoincrement
# column for the last insert
autoCommitOn();
# Instructs the database to perform a commit
# after every successful query.
autoCommitOff();
# Instructs the database to wait for the
# client to tell it when to commit.
getAutoCommit();
# Returns true if auto-commit is currently on,
# false otherwise.
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();
# Commits a transaction. Returns true if the commit
# succeeded, false if it failed.
rollback();
# Rolls back a transaction. Returns true if the rollback
# succeeded, false if it failed.
getInTransaction();
# Returns true if the session is currently inside a
# transaction, false otherwise.
getDefaultTransactionModel();
# Returns the database's native transaction model. See
# setTranscationModel() for a list of potential return
# values. Returns undef if an error occurred.
setTransactionModel(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();
# Returns the current transaction model. See
# setTranscationModel() for a list of potential return
# values. Returns undef if an error occurred.
getDefaultIsolationLevel();
# Returns the database-specific default isolation level,
# or undef if an error occurred.
setIsolationLevel(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();
# Returns the database-specific isolation level,
# "unknown" if the isolation level is unknown, or undef
# if an error occurred.
getDatabaseFeature(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,ROW_COUNT_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 undef if
# an error occurred or an invalid feature was requested.
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();
# 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();
# 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();
# Turns debugging off.
getDebug();
# Returns false if debugging is off and true
# if debugging is on.
setDebugFile(filename);
# 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(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();
# Returns the string that was set by setClientInfo().
AUTHOR
David Muse
david.muse@firstworks.com