GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  DBIX::DBSCHEMA::DBD (3)

.ds Aq ’

NAME

DBIx::DBSchema::DBD - DBIx::DBSchema Driver Writer’s Guide and Base Class

CONTENTS

SYNOPSIS



  perldoc DBIx::DBSchema::DBD

  package DBIx::DBSchema::DBD::FooBase
  use DBIx::DBSchema::DBD;
  @ISA = qw(DBIx::DBSchema::DBD);



DESCRIPTION

Drivers should be named DBIx::DBSchema::DBD::DatabaseName, where DatabaseName is the same as the DBD:: driver for this database. Drivers should implement the following class methods:
columns CLASS DBI_DBH TABLE Given an active DBI database handle, return a listref of listrefs (see perllol), each containing six elements: column name, column type, nullability, column length, column default, and a field reserved for driver-specific use.
column CLASS DBI_DBH TABLE COLUMN Same as <B>columnsB> above, except return the listref for a single column. You can inherit from DBIx::DBSchema::DBD to provide this function.
primary_key CLASS DBI_DBH TABLE Given an active DBI database handle, return the primary key for the specified table.
unique CLASS DBI_DBH TABLE Deprecated method - see the <B>indicesB> method for new drivers.

Given an active DBI database handle, return a hashref of unique indices. The keys of the hashref are index names, and the values are arrayrefs which point a list of column names for each. See HASHES OF LISTS in perldsc and DBIx::DBSchema::Index.

index CLASS DBI_DBH TABLE Deprecated method - see the <B>indicesB> method for new drivers.

Given an active DBI database handle, return a hashref of (non-unique) indices. The keys of the hashref are index names, and the values are arrayrefs which point a list of column names for each. See HASHES OF LISTS in perldsc and DBIx::DBSchema::Index.

indices CLASS DBI_DBH TABLE Given an active DBI database handle, return a hashref of all indices, both unique and non-unique. The keys of the hashref are index names, and the values are again hashrefs with the following keys:
name - Index name (redundant)
using - Optional index method
unique - Boolean indicating whether or not this is a unique index
columns - List reference of column names (or expressions)

(See FS::DBIx::DBSchema::Index)

New drivers are advised to implement this method, and existing drivers are advised to (eventually) provide this method instead of <B>indexB> and <B>uniqueB>.

For backwards-compatibility with current drivers, the base DBIx::DBSchema::DBD class provides an <B>indicesB> method which uses the old <B>indexB> and <B>uniqueB> methods to provide this data.

default_db_catalog Returns the default database catalog for the DBI table_info command. Inheriting from DBIx::DBSchema::DBD will provide the default empty string.
default_db_schema Returns the default database schema for the DBI table_info command. Inheriting from DBIx::DBSchema::DBD will provide the default empty string.
constraints CLASS DBI_DBH TABLE Given an active DBI database handle, return the constraints (currently, foreign keys) for the specified table, as a list of hash references.

Each hash reference has the following keys:
constraint - contraint name
columns - List refrence of column names
table - Foreign taable name
references - List reference of column names in foreign table
match -
on_delete -
on_update -

column_callback DBH TABLE_NAME COLUMN_OBJ Optional callback for driver-specific overrides to SQL column definitions.

Should return a hash reference, empty for no action, or with one or more of the following keys defined:

effective_type - Optional type override used during column creation.

explicit_null - Set true to have the column definition declare NULL columns explicitly

effective_default - Optional default override used during column creation.

effective_local - Optional local override used during column creation.

add_column_callback DBH TABLE_NAME COLUMN_OBJ Optional callback for additional SQL statments to be called when adding columns to an existing table.

Should return a hash reference, empty for no action, or with one or more of the following keys defined:

effective_type - Optional type override used during column creation.

effective_null - Optional nullability override used during column creation.

sql_after - Array reference of SQL statements to be executed after the column is added.

alter_column_callback DBH TABLE_NAME OLD_COLUMN_OBJ NEW_COLUMN_OBJ Optional callback for overriding the SQL statments to be called when altering columns to an existing table.

Should return a hash reference, empty for no action, or with one or more of the following keys defined:

sql_alter - Alter SQL statement(s) for changing everything about a column. Specifying this overrides processing of individual changes (type, nullability, default, etc.).

sql_alter_type - Alter SQL statement(s) for changing type and length (there is no default).

sql_alter_null - Alter SQL statement(s) for changing nullability to be used instead of the default.

column_value_needs_quoting COLUMN_OBJ Optional callback for determining if a column’s default value require quoting. Returns true if it does, false otherwise.

TYPE MAPPING

You can define a %typemap array for your driver to map standard data types to database-specific types. For example, the MySQL TIMESTAMP field has non-standard auto-updating semantics; the MySQL DATETIME type is what other databases and the ODBC standard call TIMESTAMP, so one of the entries in the MySQL %typemap is:



  TIMESTAMP => DATETIME,



Another example is the Pg %typemap which maps the standard types BLOB and LONG VARBINARY to the Pg-specific BYTEA:



  BLOB => BYTEA,
  LONG VARBINARY => BYTEA,



Make sure you use all uppercase-keys.

AUTHOR

Ivan Kohler <ivan-dbix-dbschema@420.am>

COPYRIGHT

Copyright (c) 2000-2005 Ivan Kohler Copyright (c) 2007-2013 Freeside Internet Services, Inc. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

BUGS

SEE ALSO

DBIx::DBSchema, DBIx::DBSchema::DBD::mysql, DBIx::DBSchema::DBD::Pg, DBIx::DBSchema::Index, DBI, DBI::DBD, perllol, HASHES OF LISTS in perldsc
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 DBSCHEMA::DBD (3) 2013-11-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.