Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

alzabo::mysql(3pm) [debian man page]

Alzabo::MySQL(3pm)					User Contributed Perl Documentation					Alzabo::MySQL(3pm)

NAME
Alzabo::MySQL - Alzabo and MySQL DESCRIPTION
This documentation is about what special support Alzabo has for MySQL, as well as what is lacking. MySQL support is based on the 3.23.* release series, with some support for features that are starting to appear in the 4.0.* releases. Earlier versions of MySQL will probably work with Alzabo, though Alzabo cannot magically make these releases support new features like fulltext indexes. Indexes o Alzabo supports the ability to specify prefixes when adding an index. Prefixes are required when attempting to index any sort of text or blob column. o Alzabo supports the creation of fulltext indexes and their use in SELECT and WHERE clauses. This includes the ability to get back the score given for a match as part of a select, using the "function" or "select" methods of either table or schema objects. Reverse Engineering o When reverse engineering a schema, Alzabo knows that MySQL has "default defaults" for certain column types. For example, if a DATE column is specified as NOT NULL but is not assigned a default, MySQL gives this column a default of '0000-00-00'. Because Alzabo knows about this, it will ignore these defaults when reverse engineering an RDBMS. o Similarly, Alzabo knows that MySQL assigns default "lengths" to many column types. For example, if given INTEGER as a column type, MySQL will convert this to INTEGER(11) or INTEGER(10), depending on the version of MySQL being used. Again, Alzabo ignores these lengths when reverse engineering a schema. o All of this may lead to apparent inconsistencies when using the with the "Alzabo::Create::Schema->sync_backend" or "Alzabo::Cre- ate::Schema->sync_backend_sql" methods. If you are using this feature from the web based schema creator, you will see that even imme- diately after running the "sync_backend()" method, Alzabo may still think there are differences between the two schemas. This is not a problem, as running the SQL Alzabo generates will not actually change your database. Transactions Alzabo will try to use transactions whenever appropriate. Unfortunately, there is no way to determine whether or not a given table supports transactions so Alzabo simply calls DBI's "begin_work()" method, whether or not this will actually do anything. Constraints and Foreign Keys o Column constraints are treated as column attributes. o Foreign key constraints are not generated when generating SQL for a MySQL schema. This will probably change in the future. Table Types These can be specified as a table attribute. perl v5.8.8 2007-12-23 Alzabo::MySQL(3pm)

Check Out this Related Man Page

Alzabo::SQLMaker(3pm)					User Contributed Perl Documentation				     Alzabo::SQLMaker(3pm)

NAME
Alzabo::SQLMaker - Alzabo base class for RDBMS drivers SYNOPSIS
use Alzabo::SQLMaker::MySQL; my $sql = Alzabo::SQLMaker::MySQL->new( driver => $driver_object ); # or better yet my $sql = $runtime_schema->sqlmaker; DESCRIPTION
This is the base class for all Alzabo::SQLMaker modules. To instantiate a driver call this class's "new" method. See "SUBCLASSING Alz- abo::SQLMaker" for information on how to make a driver for the RDBMS of your choice. METHODS
available Returns A list of names representing the available "Alzabo::SQLMaker" subclasses. Any one of these names would be appropriate as a parame- ter for the "Alzabo::SQLMaker->load()" method. load Load the specified subclass. This takes one parameter, the name of the RDBMS being used. Throws: "Alzabo::Exception::Eval" new This takes two parameters: * driver The driver object being used by the schema. * quote_identifiers A boolean value indicating whether or not identifiers should be quoted. This defaults to false. GENERATING SQL
This class can be used to generate SQL by calling methods that are the same as those used in SQL ("select()", "update()", etc.) in sequence, with the appropriate parameters. There are four entry point methods, "select()", "insert()", "update()", and "delete()". Attempting to call any other method without first calling one of these is an error. Entry Points These methods are called as class methods and return a new object. select ("Alzabo::Table" and/or "Alzabo::Column" objects) This begins a select. The columns to be selected are the column(s) passed in, and/or the columns of the table(s) passed in as arguments. Followed by: "from()" "** function" insert Followed by: "into()" update ("Alzabo::Table") Followed by: "set()" delete Followed by: "from()" Other Methods All of these methods return the object itself, making it possible to chain together method calls such as: Alzabo::SQLMaker->select($column)->from($table)->where($other_column, '>', 2); from ("Alzabo::Table" object, ...) The table(s) from which we are selecting data. Follows: "select()" "** function" "delete()" Followed by: "where()""> "order_by()" Throws: "Alzabo::Exception::SQL" where <see below> The first parameter to where must be an "Alzabo::Column" object or SQL function. The second is a comparison operator of some sort, given as a string. The third argument can be an "Alzabo::Column" object, a value (a number or string), or an "Alzabo::SQLMaker" object. The latter is treated as a subselect. Values given as parameters will be properly quoted and escaped. Some comparison operators allow additional parameters. The "BETWEEN" comparison operator requires a fourth argument. This must be either an "Alzabo::Column" object or a value. The "IN" and <NOT IN> operators allow any number of additional parameters, which may be "Alzabo::Column" objects, values, or "Alzabo::SQL- Maker" objects. Follows: "from()" Followed by: "and()" "or()" "order_by()" Throws: "Alzabo::Exception::SQL" and (same as "where") or (same as "where") These methods take the same parameters as the "where()""> method. Follows: "where()""> "and()" "or()" Followed by: "and()" "or()" "order_by()" Throws: "Alzabo::Exception::SQL" order_by ("Alzabo::Column" objects) Adds an "ORDER BY" clause to your SQL. Follows: "from()" "where()""> "and()" "or()" Followed by: "limit()" Throws: "Alzabo::Exception::SQL" limit ($max, optional $offset) Specifies a limit on the number of rows to be returned. The offset parameter is optional. Follows: "from()" "where()""> "and()" "or()" "order_by()" "Alzabo::Exception::SQL" into ("Alzabo::Table" object, optional "Alzabo::Column" objects) Used to specify what table an insert is into. If column objects are given then it is expected that values will only be given for that object. Otherwise, it assumed that all columns will be specified in the "values()" method. Follows: "insert()" Followed by: "values()" Throws: "Alzabo::Exception::SQL" values ("Alzabo::Column" object => $value, ...) This method expects to recive an structured like a hash where the keys are "Alzabo::Column" objects and the values are the value to be inserted into that column. Follows: "into()" Throws: "Alzabo::Exception::SQL" set ("Alzabo::Column" object => $value, ...) This method'a parameter are exactly like those given to the "values" method. Follows: "update()" Followed by: "where()""> Throws: "Alzabo::Exception::SQL" RETRIEVING SQL FROM THE OBJECT
sql This method can be called at any time, though obviously it will not return valid SQL unless called at a natural end point. In the future, an exception may be thrown if called when the SQL is not in a valid state. Returns the SQL generated so far as a string. bind Returns an array reference containing the parameters to be bound to the SQL statement. SUBCLASSING Alzabo::SQLMaker To create a subclass of "Alzabo::SQLMaker" for your particular RDBMS requires only that the virtual methods listed below be implemented. In addition, you may choose to override any of the other methods described in this documentation. For example, the MySQL subclass override the "_subselect()" method because MySQL cannot support sub-selects. Subclasses are also expected to offer for export various sets of functions matching SQL functions. See the "Alzabo::SQLMaker::MySQL" sub- class implementation for details. VIRTUAL METHODS
The following methods must be implemented by the subclass: limit See above for the definition of this method. get_limit This method may return "undef" even if the "limit()" method was called. Some RDBMS's have special SQL syntax for "LIMIT" clauses. For those that don't support this, the "Alzabo::Driver" module takes a "limit" parameter. The return value of this method can be passed in as that parameter. If the RDBMS does not support "LIMIT" clauses, the return value is an array reference containing two values, the maximum number of rows allowed and the row offset (the first row that should be used). If the RDBMS does support "LIMIT" clauses, then the return value is "undef". sqlmaker_id Returns the subclass's name. This should be something that can be passed to "Alzabo::SQLMaker->load()" as a parameter. AUTHOR
Dave Rolsky, <dave@urth.org> perl v5.8.8 2007-12-23 Alzabo::SQLMaker(3pm)
Man Page