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, "<[email protected]>"

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.