Mark Stosberg > CGI-Session-4.42 > CGI::Session::Driver::postgresql

Download:
CGI-Session-4.42.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  3
Open  4
View Bugs
Report a bug
Module Version: 4.38   Source  

NAME ^

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

SYNOPSIS ^

    use CGI::Session;
    $session = new CGI::Session("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 = new CGI::Session("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 = new CGI::Session('driver:pg', undef,
    {
        TableName=>'session',
        IdColName=>'my_id',
        DataColName=>'my_data',
        DataSource=>'dbi:pg:dbname=project',
    });

or

    $s = new CGI::Session('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