-
-
01 Feb 2019 12:06:34 UTC
- Distribution: Mojo-Pg-Che
- Module version: 0.853
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (2)
- Testers (175 / 0 / 0)
- Kwalitee
Bus factor: 1- % Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (13.47KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
++ed by:1 non-PAUSE userand 1 contributors- ÐÐ¸Ñ Ð°Ð¸Ð» Че (Mikhail Che) <mche[-at-]cpan.org>
- Dependencies
- Mojo::Pg
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- Mojo::Pg::Che
- NAME
- DESCRIPTION
- VERSION
- SYNOPSIS
- Non-blocking query
- METHODS
- Params for quering methods
- SEE ALSO
- AUTHOR
- BUGS / CONTRIBUTING
- COPYRIGHT
Доброго всем
Mojo::Pg::Che
¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !
NAME
Mojo::Pg::Che - mix of parent Mojo::Pg and DBI.pm
DESCRIPTION
See Mojo::Pg
VERSION
Version 0.853
SYNOPSIS
use Mojo::Pg::Che; my $pg = Mojo::Pg::Che->connect("dbname=test;", "postgres", 'pg-pwd', \%attrs, max_connections=>10); # or my $pg = Mojo::Pg::Che->new ->dsn("DBI:Pg:dbname=test;") ->username("postgres") ->password('pg--pw') ->options(\%attrs) ->connect(); # or my $pg = Mojo::Pg::Che->new('pg://postgres@/test'); # or my $pg = Mojo::Pg::Che->new()->connect(...); # Bloking query my $result = $pg->query('select ...', undef, @bind); # Non-blocking query my $result = $pg->query('select ...', {Async => 1, ...}, @bind); # Cached query my $result = $pg->query('select ...', {Cached => 1, ...}, @bind); # prepare sth my $sth = $pg->prepare('select ...'); # cached async sth my $sth = $pg->prepare_cached('select ...', {Async => 1,},); # Non-blocking query for async sth $pg->query($sth, undef, @bind, sub {my ($db, $err, $result) = @_; ...}); Mojo::IOLoop->start unless Mojo::IOLoop->is_running; # Result non-blocking query for async sth my $ref_cb = $pg->query($sth, {Async => 1,}, @bind,); Mojo::IOLoop->start unless Mojo::IOLoop->is_running; # Mojo::Pg::Results style my res = $$ref_cb->()->hash; # same DBI style my $res = $$ref_cb->()->fetchrow_hashref; # Mojo::Pg style my $now = $pg->db->query('select now() as now')->hash->{now}; $pg->db->query('select pg_sleep(?::int), now() as now', undef, 2, $cb); # DBI style my $now = $pg->selectrow_hashref('select now() as now')->{now}; my $now = $pg->db->selectrow_hashref('select now() as now')->{now}; my $now = $pg->selectrow_array('select now() as now');
Transaction syntax
eval { my $tx = $pg->begin; $tx->query('insert into foo (name) values (?)', 'bar'); $tx->do('insert into foo (name) values (?)', 'baz'); $tx->commit; }; die $@ if $@; my $db = $pg->db; $db->begin; $db->do('insert into foo (name) values (?)', 'bazzzz'); $db->rollback; $db->begin; $db->query('insert into foo (name) values (?)', 'barrr'); $db->commit;
Non-blocking query
my @results; my $cb = sub { my ($db, $err, $results) = @_; die $err if $err; push @results, $results; }; $pg->query('select ?::date as d, pg_sleep(?::int)', undef, ("2016-06-$_", 1), $cb) for 17..23; Mojo::IOLoop->start unless Mojo::IOLoop->is_running; like($_->hash->{d}, qr/2016-06-\d+/, 'correct async query') for @results;
METHODS
All methods from parent module Mojo::Pg are inherits and implements the following new ones.
connect
DBI-style of new object instance. See DBI#connect
db
Overriden method of Mojo::Pg#db. Because can first input param - DBI database handler (when prepared statement used).
prepare
Prepare and return DBI statement handler for query string.
prepare_cached
Prepare and return DBI cached statement handler for query string.
query
Like Mojo::Pg::Database#query but input params - Mojo::Pg::Che#Params-for-quering-methods
Blocking query without attr Async or callback.
Non-blocking query with attr Async or callback.
select
Same method
query
.selectrow_array
DBI style quering. See DBI#selectrow_array. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
selectrow_arrayref
DBI style quering. See DBI#selectrow_arrayref. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
selectrow_hashref
DBI style quering. See DBI#selectrow_hashref. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
selectall_arrayref
DBI style quering. See DBI#selectall_arrayref. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
selectall_hashref
DBI style quering. See DBI#selectall_hashref. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
selectcol_arrayref
DBI style quering. See DBI#selectcol_arrayref. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
do
DBI style quering. See DBI#do. Blocking | non-blocking. Input params - Mojo::Pg::Che#Params-for-quering-methods.
begin
Start transaction and return new Mojo::Pg::Che::Database object which attr
{tx}
is a Mojo::Pg::Transaction object. Sinonyms are:->tx
and->begin_work
.Params for quering methods
The methods
query
,select...
,do
has next ordered input params:String query | statement handler object
Hashref attrs (optional)
Array of bind values (optional)
Last param - callback/coderef for non-blocking (optional)
SEE ALSO
AUTHOR
Михаил Че (Mikhail Che),
<mche[-at-]cpan.org>
BUGS / CONTRIBUTING
Please report any bugs or feature requests at https://github.com/mche/Mojo-Pg-Che/issues. Pull requests also welcome.
COPYRIGHT
Copyright 2016+ Mikhail Che.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install Mojo::Pg::Che, copy and paste the appropriate command in to your terminal.
cpanm Mojo::Pg::Che
perl -MCPAN -e shell install Mojo::Pg::Che
For more information on module installation, please visit the detailed CPAN module installation guide.