NAME
Net::Async::PostgreSQL - support for the PostgreSQL wire protocol
VERSION
version 0.007
SYNOPSIS
# Simple queries are performed similar to DBI:
$dbh
->
do
(
q{insert into something (x,y,z) values (1,2,3)}
);
# These can also use bind variables:
$dbh
->
do
(
q{insert into something (x,y,z) values (?,?,?)}
,
undef
, 1,2,3);
# Prepared statements work the same as DBI by default
my
$sth
=
$dbh
->prepare(
q{select * from table where name = ?}
);
$sth
->bind_param(1,
'test'
);
$sth
->execute;
# ... but have async_ versions for passing handlers:
my
$sth
=
$dbh
->async_prepare(
sql
=>
q{select * from table where name = ?}
,
on_error
=>
sub
{
warn
"failed"
}
);
$sth
->async_execute(
on_bind_request
=>
sub
{
return
@param
;
},
on_header
=>
sub
{ ... },
on_row
=>
sub
{ ... },
on_error
=>
sub
{ ... },
on_complete
=>
sub
{ ... },
);
# And there's a helper method for doing regular queries:
$dbh
->run_query(
sql
=>
q{select * from something where id = ?}
,
parameters
=> [1],
on_row
=>
sub
{
warn
"Had "
.
$_
[1]->{} },
on_error
=>
sub
{
warn
"Error encountered"
},
on_complete
=>
sub
{
warn
"all done"
}
);
DESCRIPTION
The interface is provided by Net::Async::DBI, which attempts to offer something close to DBI but with support for event-based request handling.
See Protocol::PostgreSQL for more details.
METHODS
configure
Apply callbacks and other parameters, preparing state for event loop start.
on_connection_established
Prepare and activate a new transport.
on_starttls
Upgrade the underlying stream to use TLS.
connect
on_read
Handle read requests by passing full packets back to the protocol handler.
do
terminate
Sends the Terminate message to the database server and closes the connection for a clean shutdown.
SEE ALSO
DBI - the real database interface
DBD::Gofer - proxy request support for DBI
AUTHOR
Tom Molesworth <cpan@entitymodel.com>
LICENSE
Copyright Tom Molesworth 2011. Licensed under the same terms as Perl itself.