CGI::Session::Driver::UsergContributed PerlCGI::Session::Driver::postgresql(3)NAMECGI::Session::Driver::postgresql - PostgreSQL driver for CGI::Session
SYNOPSIS
use CGI::Session;
$session = CGI::Session->new("driver:PostgreSQL", undef, {Handle=>$dbh});
DESCRIPTION
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.
COPYRIGHT
Copyright (C) 2002 Cosimo Streppone. All rights reserved. This library
is free software and can be modified and distributed under the same
terms as Perl itself.
AUTHORS
Cosimo Streppone <cosimo@cpan.org>, heavily based on the
CGI::Session::MySQL driver by Sherzod Ruzmetov, original author of
CGI::Session.
Matt LeBlanc contributed significant updates for the 4.0 release.
LICENSING
For additional support and licensing see CGI::Session
perl v5.18.22011-07-1CGI::Session::Driver::postgresql(3)