Provided by: libanyevent-dbd-pg-perl_0.03-6_all bug

NAME

       AnyEvent::DBD::Pg - AnyEvent interface to DBD::Pg's async interface

SYNOPSIS

               use AnyEvent::DBD::Pg;

               my $adb = AnyEvent::DBD::Pg->new('dbi:Pg:dbname=test', user => 'pass', {
                       pg_enable_utf8 => 1,
                       pg_server_prepare => 0,
                       quote_char => '"',
                       name_sep => ".",
               }, debug => 1);

               $adb->queue_size( 4 );
               $adb->debug( 1 );

               $adb->connect;

               $adb->selectcol_arrayref("select pg_sleep( 0.1 ), 1", { Columns => [ 1 ] }, sub {
                       my $rc = shift or return warn;
                       my $res = shift;
                       warn "Got <$adb->{qd}> = $rc / @{$res}";
                       $adb->selectrow_hashref("select data,* from tx limit 2", {}, sub {
                               my $rc = shift or return warn;
                               warn "Got $adb->{qd} = $rc [@_]";
                       });
               });

               $adb->execute("update tx set data = data;",sub {
                       my $rc = shift or return warn;
                       warn "Got exec: $rc";
                       #my $st = shift;
                       #$st->finish;
               });

               $adb->execute("select from 1",sub {
                       shift or return warn;
                       warn "Got $adb->{qd} = @_";
               });

               $adb->selectrow_array("select pg_sleep( 0.1 ), 2", {}, sub {
                       shift or return warn;
                       warn "Got $adb->{qd} = [@_]";
                       $adb->selectrow_hashref("select * from tx limit 1", {}, sub {
                               warn "Got $adb->{qd} = [@_]";
                               $adb->execute("select * from tx", sub {
                                       my $rc = shift or return warn;
                                       my $st = shift;
                                       while(my $row = $st->fetchrow_hashref) { warn "$row->{id}"; }
                                       $st->finish;
                                       exit;
                               });
                       });
               });
               AE::cv->recv;

METHODS

       connect()
           Establish connection to database

       selectrow_array( $query, [\%args], $cb->( $rc, ... ))
           Execute PG_ASYNC prepare, than push result of "fetchrow_array" into callback

       selectrow_arrayref( $query, [\%args], $cb->( $rc, \@row ))
           Execute PG_ASYNC prepare, than push result of "fetchrow_arrayref" into callback

       selectrow_hashref( $query, [\%args], $cb->( $rc, \%row ))
           Execute PG_ASYNC prepare, than push result of "fetchrow_hashref" into callback

       selectall_arrayref( $query, [\%args], $cb->( $rc, \@rows ))
           Execute PG_ASYNC prepare, than push result of "fetchall_arrayref" into callback

       selectall_hashref( $query, [\%args], $cb->( $rc, \@rows ))
           Execute PG_ASYNC prepare, than push result of "fetchall_hashref" into callback

       selectcol_arrayref( $query, { Columns => [...], ... }, $cb->( $rc, \@rows ))
           Execute PG_ASYNC prepare, than push result of "fetchall_hashref($args{Columns})" into
           callback

       execute( $query, [\%args], $cb->( $rc, $sth ))
           Execute PG_ASYNC prepare, than invoke callback, pushing resulting sth to it.

           Please, note: result already passed as first argument

AUTHOR

       Mons Anderson, "<mons@cpan.org>"

LICENSE AND COPYRIGHT

       Copyright 2010 Mons Anderson.

       This program is free software; you can redistribute it and/or modify it under the terms of
       either: the GNU General Public License as published by the Free Software Foundation; or
       the Artistic License.