Package ==

extends CGI::Session::Driver::DBI

=head1 NAME

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

=head1 SYNOPSIS

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

=head1 DESCRIPTION

CGI::Session::PostgreSQL is a L<CGI::Session|CGI::Session> driver to store session data in a PostgreSQL? table.

=head1 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 I argument. PostgreSQL?'s text type has problems when trying to hold a null character. (Known as C<"\0"> in Perl, not to be confused with SQL I). If you know there is no chance of ever having a null character in the serialized data, you can leave off the I attribute. Using a I column type and C<< ColumnType? => 'binary' >> is recommended when using L<Storable|CGI::Session::Serialize::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 L<CGI::Session::Driver::DBI|CGI::Session::Driver::DBI>, parent class.

Also see L, which exercises different method for dealing with binary data.

=head1 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.

=head1 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.

=head1 LICENSING

For additional support and licensing see L<CGI::Session|CGI::Session>

Topic revision: r2 - 2013-02-16 - TWikiContributor
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2002-2018 Emerging Threats.