CGI::Session::Driver::postgresql - PostgreSQL driver for CGI::Session


CGI-Session documentation  | view source Contained in the CGI-Session distribution.

Index


NAME

Top

CGI::Session::Driver::postgresql - PostgreSQL driver for CGI::Session

SYNOPSIS

Top

    use CGI::Session;
    $session = CGI::Session->new("driver:PostgreSQL", undef, {Handle=>$dbh});

DESCRIPTION

Top

CGI::Session::PostgreSQL is a CGI::Session driver to store session data in a PostgreSQL table.

STORAGE

Top

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

Top

AUTHORS

Top

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

Top

For additional support and licensing see CGI::Session


CGI-Session documentation  | view source Contained in the CGI-Session distribution.