CGI::Session::Driver::postgresql3pm
Postgresql driver for cgi::session
Usage
use CGI::Session;$session = CGI::Session->new("driver:PostgreSQL", undef, {Handle=>$dbh});
Overview
CGI::Session::PostgreSQL is a CGI::Session driver to store session data in a PostgreSQL table.
Storage
Before you can use any DBI-based session drivers you need to make sure compatible database table is created for CGI::Session to work with. Following command will produce minimal requirements in most SQL databases:
CREATE TABLE sessions (id CHAR(32) NOT NULL PRIMARY KEY,a_session BYTEA NOT NULL);
and within your code use:
use CGI::Session;$session = CGI::Session->new("driver:PostgreSQL", undef, {Handle=>$dbh, ColumnType=>"binary"});
Please note the ColumnType argument. PostgreSQL's text type has problems when trying to hold a null character. (Known as "\0" in Perl, not to be confused with SQL NULL). If you know there is no chance of ever having a null character in the serialized data, you can leave off the ColumnType attribute. Using a BYTEA column type and "ColumnType => 'binary'" is recommended when using Storable as the serializer or if there's any possibility that a null value will appear in any of the serialized data.
To use different column names, change the 'create table' statement, and then simply do this:
$s = CGI::Session->new('driver:pg', undef,{TableName=>'session',IdColName=>'my_id',DataColName=>'my_data',DataSource=>'dbi:pg:dbname=project',});
or
$s = CGI::Session->new('driver:pg', undef,{TableName=>'session',IdColName=>'my_id',DataColName=>'my_data',Handle=>$dbh,});
For more details see CGI::Session::Driver::DBI, parent class.
Also see sqlite driver, which exercises different method for dealing with binary data.
Licensing
For additional support and licensing see CGI::Session
Releases
11 releases since Debian 4.0 (Etch); the text changed 7 times.