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
DBSchema::DBD(3) User Contributed Perl Documentation DBSchema::DBD(3)

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

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

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:

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.
Same as columns above, except return the listref for a single column. You can inherit from DBIx::DBSchema::DBD to provide this function.
Given an active DBI database handle, return the primary key for the specified table.
Deprecated method - see the indices 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.

Deprecated method - see the indices 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.

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:

(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 index and unique.

For backwards-compatibility with current drivers, the base DBIx::DBSchema::DBD class provides an indices method which uses the old index and unique methods to provide this data.

Returns the default database catalog for the DBI table_info command. Inheriting from DBIx::DBSchema::DBD will provide the default empty string.
Returns the default database schema for the DBI table_info command. Inheriting from DBIx::DBSchema::DBD will provide the default empty string.
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:

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.

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.

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.

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

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.

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

Copyright (c) 2000-2005 Ivan Kohler Copyright (c) 2007-2017 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.

DBIx::DBSchema, DBIx::DBSchema::DBD::mysql, DBIx::DBSchema::DBD::Pg, DBIx::DBSchema::Index, DBI, DBI::DBD, perllol, "HASHES OF LISTS" in perldsc

2022-09-07 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

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