NAME
HTML::FormEngine::DBSQL::PGSQL - PostgreSQL driver for FormEngine::DBSQL
REQUIREMENTS
You need to execute the following command in your PostgreSQL database:
CREATE VIEW "column_info" AS SELECT relname, attname, atttypmod, attnotnull, typname, adsrc, description FROM ((((pg_class LEFT JOIN pg_attribute ON ((pg_class.relfilenode = pg_attribute.attrelid))) LEFT JOIN pg_type ON ((atttypid = pg_type.oid))) LEFT JOIN pg_attrdef ON (((attrelid = pg_attrdef.adrelid) AND (attnum = pg_attrdef.adnum)))) LEFT JOIN pg_description ON (((attrelid = pg_description.objoid) AND (attnum = pg_description.objsubid)))) WHERE (((((((attname <> 'tableoid'::name) AND (attname <> 'oid'::name)) AND (attname <> 'ctid'::name)) AND (attname <> 'xmax'::name)) AND (attname <> 'xmin'::name)) AND (attname <> 'cmax'::name)) AND (attname <> 'cmin'::name)) ORDER BY attnum;
This will create a view called column_info, it is needed to extract information about the table columns.
_dbsql_initialize_child
This method is called for every child of FormEngine::DBSQL. A DBMS driver has to load the datatype handler configuration from its Config.pm here!
get_tbl_struct ( TABLENAME, ARRAYREF, HASHREF )
This method is called by the dbsql_conf
method of FormEngine::DBSQL to get information about the columns of the specified database table. Every DBMS driver has to implement it!
The ARRAYREF points to the list of fieldnames, the HASHREF points to a hash which keys are fieldnames too, these fieldnames must be ignored.
This method must return a reference to an array which must contain an hash reference for every column, except those in the committed HASHREF. These referenced hashes must support the following information:
name - the columns name
notnull - 1 if the column has the NOT NULL attribute, 0 if not
dtyp - the name of the columns datatype
default - the columns default value
description - the columns comment
The hash might also support DBMS specific information which then is only used by the DBMS specific datatype handlers. For PostgreSQL this is:
dtypmod - datatype modification information, this is used by PostgreSQLs string handler.