The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::Session::Driver::Pg - A persistent session manager

Synopsis

See Data::Session for details.

Description

Data::Session::Driver::Pg allows Data::Session to manipulate sessions via DBD::Pg.

To use this module do both of these:

o Specify a driver of type Pg, as Data::Session -> new(type => 'driver:Pg ...')
o Specify a database handle as Data::Session -> new(dbh => $dbh) or a data source as Data::Session -> new(data_source => $string)

Case-sensitive Options

See "Case-sensitive Options" in Data::Session for important information.

Method: new()

Creates a new object of type Data::Session::Driver::Pg.

new() takes a hash of key/value pairs, some of which might mandatory. Further, some combinations might be mandatory.

The keys are listed here in alphabetical order.

They are lower-case because they are (also) method names, meaning they can be called to set or get the value at any time.

o data_col_name => $string

Specifes the name of the column in the sessions table which holds the session data.

This key is normally passed in as Data::Session -> new(data_col_name => $string).

Default: 'a_session'.

This key is optional.

o data_source => $string

Specifies the data source (as used by DBI -> connect($data_source, $username, $password, $data_source_attr) ) to obtain a database handle.

This key is normally passed in as Data::Session -> new(data_source => $string).

Default: ''.

This key is optional, as long as a value is supplied for 'dbh'.

o data_source_attr => $hashref

Specifies the attributes (as used by DBI -> connect($data_source, $username, $password, $data_source_attr) ) to obtain a database handle.

This key is normally passed in as Data::Session -> new(data_source_attr => $hashref).

Default: {AutoCommit => 1, PrintError => 0, RaiseError => 1}.

This key is optional.

o dbh => $dbh

Specifies the database handle to use to access the sessions table.

This key is normally passed in as Data::Session -> new(dbh => $dbh).

If not specified, this module will use the values of these keys to obtain a database handle:

o data_source
o data_source_attr
o username
o password

Default: ''.

This key is optional.

o host => $string

Not used.

o id_col_name => $string

Specifes the name of the column in the sessions table which holds the session id.

This key is normally passed in as Data::Session -> new(id_col_name => $string).

Default: 'id'.

This key is optional.

o password => $string

Specifies the password (as used by DBI -> connect($data_source, $username, $password, $data_source_attr) ) to obtain a database handle.

This key is normally passed in as Data::Session -> new(password => $string).

Default: ''.

This key is optional.

o pg_bytea => $boolean

Specifies (if pg_bytea => 1) that the a_session column in the sessions table is of type bytea.

This key is normally passed in as Data::Session -> new(pg_bytea => $boolean).

If both 'pg_bytea' and 'pg_text' are set to 1, 'pg_text' is forced to be 0.

If both 'pg_bytea' and 'pg_text' are set to 0, 'pg_bytea' is forced to be 1.

o pg_text => $boolean

Specifies (if pg_text => 1) that the a_session column in the sessions table is of type text.

This key is normally passed in as Data::Session -> new(pg_text => $boolean).

o port => $string

Not used.

o socket => $string

Not used.

o table_name => $string

Specifes the name of the sessions table.

This key is normally passed in as Data::Session -> new(table_name => $string).

Default: 'sessions'.

This key is optional.

o username => $string

Specifies the username (as used by DBI -> connect($data_source, $username, $password, $data_source_attr) ) to obtain a database handle.

This key is normally passed in as Data::Session -> new(username => $string).

Default: ''.

This key is optional.

o verbose => $integer

Print to STDERR more or less information.

This key is normally passed in as Data::Session -> new(verbose => $integer).

Typical values are 0, 1 and 2.

This key is optional.

Method: remove($id)

Deletes from storage the session identified by $id, or dies if it can't.

Returns 1.

Method: retrieve($id)

Retrieve from storage the session identified by $id, or dies if it can't.

Returns the session.

This is a frozen session. This value must be thawed by calling the appropriate serialization driver's thaw() method.

Data::Session calls the right thaw() automatically.

Method: store($id => $data)

Writes to storage the session identified by $id, together with its data $data, or dies if it can't.

$dbh -> selectall_arrayref is used, and the table is not locked.

Returns 1.

Method: traverse()

Retrieves all ids from the sessions table, and for each id calls the supplied subroutine with the id as the only parameter.

Returns 1.

Support

Log a bug on RT: https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Session.

Author

Data::Session was written by Ron Savage <ron@savage.net.au> in 2010.

Home page: http://savage.net.au/index.html.

Copyright

Australian copyright (c) 2010, Ron Savage.

        All Programs of mine are 'OSI Certified Open Source Software';
        you can redistribute them and/or modify them under the terms of
        The Artistic License, a copy of which is available at:
        http://www.opensource.org/licenses/index.html