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.