DBIx::SQLEngine::Driver::Mysql - Support DBD::mysql
DBI Wrapper: Adds methods to a DBI database handle.
my $sqldb = DBIx::SQLEngine->new( 'dbi:mysql:test' );
Portability Subclasses: Uses driver's idioms or emulation.
$hash_ary = $sqldb->fetch_select( table => 'students' limit => 5, offset => 10 );
This package provides a subclass of DBIx::SQLEngine which compensates for MySQL's idiosyncrasies.
You do not need to use this package directly; when you connect to a database, the SQLEngine object is automatically re-blessed in to the appropriate subclass.
For more information about the underlying driver class, see DBD::Mysql.
This driver uses the DatabaseFlavors trait in order to accomodate variations between different versions of MySQL. For more information, see DBIx::SQLEngine::Driver::Trait::DatabaseFlavors.
$sqldb->default_dbms_flavor() : "V3_0"
By default, it is assumed that we're talking to an early version of MySQL 3.0, without transactions, unions, or stored procedures.
$sqldb->detect_dbms_flavor() : $flavor_name
Attempts to determine which version of MySQL we're connected to based on the results of are_transactions_supported() and detect_union_supported().
If you want to take advantage of any advanced features that may be available, first call select_detect_dbms_flavor().
The following subclasses provide support for particular versions of MySQL:
This is the earliest version we have a subclass for. Default. No transactions, union selects, or stored procedures.
This is the first version with support for transactions. No union selects, or stored procedures.
This is the first version with support for unions in select statements. No stored procedures.
The version is still in development. It will be the first version to support stored procedures.
Adds support for SQL select limit clause.
$sqldb->do_insert_with_sequence( $sequence_name, %sql_clauses ) : $row_count
Implemented using _seq_do_insert_postfetch and seq_fetch_current.
$sqldb->seq_fetch_current( ) : $current_value
Implemented using MySQL's "select LAST_INSERT_ID()". Note that this doesn't fetch the current sequence value for a given table, since it doesn't respect the table and field arguments, but merely returns the last sequencial value created during this session.
$sqldb->sql_detect_table ( $tablename ) : %sql_select_clauses
Implemented using MySQL's "select * from $tablename limit 1".
$sqldb->dbms_create_column_types () : %column_type_codes
Implemented using MySQL's blob and auto_increment types.
$sqldb->dbms_create_column_text_long_type () : $col_type_str
Implemented using MySQL's blob type.
$sqldb->recoverable_query_exceptions() : @common_error_messages
Provides a list of error messages which represent common communication failures or other incidental errors.
See DBIx::SQLEngine for the overall interface and developer documentation.
See DBIx::SQLEngine::Docs::ReadMe for general information about this distribution, including installation and license information.