view release on metacpan or search on metacpan
lib/DBD/Safe.pm view on Meta::CPAN
database. If you are going to use DBIx::Connector you must explicitly call
C<< $conn->dbh >> to get a real dbh connection. And if you want to add some fault tolerance
in a tons of existed code, you must refactor all this code where you use database
connections.
DBD::Safe has a transparent interface. You just need to replace C<connect()> options
and after this you can use it as usual database handler.
=head1 METHODS
=over
lib/DBD/Safe.pm view on Meta::CPAN
=head1 BUGS AND CAVEATS
Connection is checked on each query. This can double your request execution time if all your requests are fast and network latency of your database is big enough.
Statement objects are not safe. Once you've prepared the statement, it won't reconnect to the database transparently.
There are no retries. If the request fails, it fails. This module just check that DB is alive *before* it tries to execute the statement. (Custom, per-query policies support is planned for the future releases).
=head1 SEE ALSO
view all matches for this distribution
view release on metacpan or search on metacpan
Recent versions used to set $xxx->err to -1 independent
of the error returned by Solid.
* SELECT statements not longer require a finish() between
execute() of the same sth.
* All binary columns (including BINARY and VARBINARY
types) may be used from perl in a transparent fashion.
* ping() not raising error even if RaiseError is set.
* DBD::Solid::Const not longer used inside Solid.pm
due to problems with mod_perl/embperl. SQL type values
are included in recent DBI modules.
* tests use now DBI_DSN/DBI_USER/DBI_PASS env vars.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/XBase.pm view on Meta::CPAN
1/1000 s). To get the fields, use the gmtime (or similar) Perl function.
If there is a memo field in the dbf file, the module tries to open
file with the same name but extension dbt, fpt or smt. It uses module
XBase::Memo(3) for this. It reads and writes this memo field
transparently (you do not know about it) and returns the data as
single scalar.
=head1 INDEX, LOCKS
B<New:> A support for ndx, ntx, mdx, idx and cdx index formats is
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBI/BabyConnect.pm view on Meta::CPAN
fails, by calling finish on the cursor, and by disconnecting the handle.
However DBI::BabyConnect objects are designed to be persisted and to be pooled
within an application. Programmers,
do not need to call any of the functions aforementioned because
DBI::BabyConnect will do that transparently for you. You use DBI::BabyConnect so that
you can work with an object whose connection is persisted to a data source, and
the object will do all clean up upon object destruction.
The following functions are provided so that if you chose to port an application that
uses DBI directly, you can easily make use of DBI::BabyConnect without making extensive changes
view all matches for this distribution
view release on metacpan or search on metacpan
[](https://travis-ci.org/perl5-dbi/DBI-Test)
## Description
This module aims at a transparent test suite for the DBI API
to be used from both sides of the API (DBI and DBD) to check
if the provided functionality is working and complete.
## Copying
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBD/Gofer.pm view on Meta::CPAN
=head1 DESCRIPTION
DBD::Gofer is a DBI database driver that forwards requests to another DBI
driver, usually in a separate process, often on a separate machine. It tries to
be as transparent as possible so it appears that you are using the remote
driver directly.
DBD::Gofer is very similar to DBD::Proxy. The major difference is that with
DBD::Gofer no state is maintained on the remote end. That means every
request contains all the information needed to create the required state. (So,
lib/DBD/Gofer.pm view on Meta::CPAN
The L<DBD::Gofer::Policy::Base> class is the base class for all the policy
packages and describes all the available policies.
Three policy packages are supplied with DBD::Gofer:
L<DBD::Gofer::Policy::pedantic> is most 'transparent' but slowest because it
makes more round-trips to the Gofer server.
L<DBD::Gofer::Policy::classic> is a reasonable compromise - it's the default policy.
L<DBD::Gofer::Policy::rush> is fastest, but may require code changes in your applications.
view all matches for this distribution
view release on metacpan or search on metacpan
=head1 DESCRIPTION
The purpose of DBIx::Browse is to handle the browsing of relational
tables.
DBIx::Browse transparently translates SELECTs, UPDATEs, DELETEs and INSERTs
from the desired "human view" to the values needed for the table. This is the
case when you have related tables (1 to n) where the detail table
has a reference (FOREIGN KEY) to a generic table (i.e. Customers and
Bills) with some index (tipically an integer).
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/BulkUtil.pm view on Meta::CPAN
=head1 UTILITY OBJECT METHODS
Methods that may be called on the utility object that is optionally returned
from the connect or connect_cached DBIX::BulkUtil class methods. These methods
provide convenience and/or make some operations between Oracle and Sybase
databases more transparent.
=over 4
=item now
lib/DBIx/BulkUtil.pm view on Meta::CPAN
you can pass in a cursor as an output parameter. When you pass in a
parameter ":cursor", we assume its an output parameter that will
hold a statement handle, so you can return a single result set in a
nearly "backwards compatible" way. But we don't handle "multiple" result
sets (yet), we don't deal with other output parameters, and so this
this method is not meant to be completely transparent for
all stored procedures.
=item sp_sth
Prepares and executes a stored procedure with arguments, and returns
view all matches for this distribution
view release on metacpan or search on metacpan
#
# DBIx::Chart - subclass of DBI to transparently provide
# charting capability
#
# History:
#
# 2005-01-26 D. Arnold
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/Async/SelectNormaliser.pm view on Meta::CPAN
B<Requires no upstream changes.> The transformation happens entirely in
DBIx::Class::Async before the attrs touch SQL::Abstract.
=item *
B<Is transparent to callers.> Application code that already uses the
canonical C<select>/C<as> form is unaffected. Callers who prefer the
C<-ident> form get intuitive, correct behaviour.
=item *
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/FilterColumn/Encrypt.pm view on Meta::CPAN
# in application code
$rs->create({ data => 'some secret' });
=head1 DESCRIPTION
This components transparently encrypts any value with the currently active key, or decrypts them with any known value. This is useful when needing read/write access to values that are too sensitive to store in plaintext, such as credentials for other...
To enable encryption, C<encrypt> must be a hash containing the key C<keys>, which shall be a hash mapping numberic identifiers to keys. An optional argument C<active_key> may be given which one will be used for encrypting, otherwise the key with the ...
=head1 AUTHOR
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/FrozenColumns.pm view on Meta::CPAN
This module allows you to store multiple columns in one. This is useful when
you want to store dynamic number of columns in database or you just don't know
what columns will be stored there. Or when you can't (or don't want) to alter
your tables in database.
Module allows you to transparently use this columns as if they were normal
columns in your table. With one obvious restriction: you cannot search rows in a
table and therefore you cannot add relationships using these columns (search is
needed to build reverse relationship).
Module handles its own dirty column management and will not update the parent
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/Helper/Row/ProxyResultSetMethod.pm view on Meta::CPAN
is the column that the data being retrieved is stored as in the ResultSet
method being proxied to. C<$resultset_method> is (duh) the ResultSet method
being proxied to.
If you did not call the C<with_*> method on your ResultSet, and call the
proxy method, it will transparently B<fallback> and do the call and fetch
the needed data. E.g.:
my $foo = $schema->resultset('Foo')->first; ## did not call with_friend_count
print $foo->friend_count; ## will produce desired result magically
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/I18NColumns.pm view on Meta::CPAN
=head1 DESCRIPTION
This module allows you to define columns that will store multiple values asociated to a language string and use it as normal columns. This is useful when you need to internationalize attributes of your DB entities.
This component will create a new resultset on your schema for each one that use it. The auto-created resultset will use the columns definition you give to add_i18n_columns() plus a FK and language columns. The i18n values of each language will reside...
Language will be propagated to relationships with result sources that also use this component.
=head1 METHODS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/ResultSource/MultipleTableInheritance.pm view on Meta::CPAN
"flavor"
"aroma"
..
Inherit from this package and you can make a resultset class from a view, but
that's more than a little bit misleading: the result is B<transparently
writable>.
This is accomplished through the use of stored procedures that map changes
written to the view to changes to the underlying concrete tables.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Class/ResultSet.pm view on Meta::CPAN
To create related objects, pass a hashref of related-object column values
B<keyed on the relationship name>. If the relationship is of type C<multi>
(L<DBIx::Class::Relationship/has_many>) - pass an arrayref of hashrefs.
The process will correctly identify columns holding foreign keys, and will
transparently populate them from the keys of the corresponding relation.
This can be applied recursively, and will work correctly for a structure
with an arbitrary depth and width, as long as the relationships actually
exists and the correct column data has been supplied.
Instead of hashrefs of plain related data (key/value pairs), you may
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/DataModel/Doc/Design.pod view on Meta::CPAN
L<class()|DBIx::DataModel::Doc::Reference/"Meta-source methods"> method
to retrieve the application subclass to which they are bound.
Metaclasses hold information about application classes,
and implement some of their methods. In most cases,
this is totally transparent to end users; however, users
can interact with metaclasses to get some information
about the available tables, associations, etc., or
even to change their behaviour.
The picture below shows relationships between application classes and
the meta-objects to which they are related (classes start with capital
lib/DBIx/DataModel/Doc/Design.pod view on Meta::CPAN
the changed columns, then the final value of C<column1> or
C<column2> is unpredictable.
To diminish the efficiency problem, some ORMs offer the possibility
to partition columns into several I<column groups>. The ORM layer
then transparently fetches the appropriate groups in several steps,
depending on which columns are requested from the client. However,
this might be another source of inefficiency, if the client
frequently needs one column from the first group and one from the
second group.
lib/DBIx/DataModel/Doc/Design.pod view on Meta::CPAN
which columns to transfer, because these can be specified separately at
each method call. Whenever efficiency is not an issue, one
can be lazy and specify nothing, in which case the SELECT columns will
default to "*". Actually, the schema
I<does not know about column names>, except for primary and
foreign keys, and therefore would be unable to transparently
decide which columns to retrieve. Consequently, objects from a
given class may be of I<variable size> :
my $objs_A = My::Table->select(-columns => [qw/c1 c2/],
-where => {name => {-like => "A%"}};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/DataStore.pm view on Meta::CPAN
=over
=item Hash and Array accessors
Each time you retrieve a record (aka "result row") from a query's result set,
the values for each column in that record can be transparently accessed through
hash keys (where the keys are the column names as defined by the original query)
or array indices (in the order the columns were defined by the query). Both
methods of accessing the record's values are available at all times (unlike the
standard DBI methods where you have to choose up front between using
C<fetchrow_array[ref]()> or C<fetchrow_hashref()>). Thus, something like the
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/EAV/ResultSet.pm view on Meta::CPAN
To create related entities, pass a hashref of related-object attribute values
B<keyed on the relationship name>. If the relationship is of type C<has_many>
or C<many_to_many> - pass an arrayref of hashrefs.
The process will correctly identify the relationship type and side, and will
transparently populate the L<entitiy_relationships table>.
This can be applied recursively, and will work correctly for a structure
with an arbitrary depth and width, as long as the relationships actually
exists and the correct data has been supplied.
Instead of hashrefs of plain related data (key/value pairs), you may
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/FullTextSearch.pm view on Meta::CPAN
=item file
To index files, use the frontend B<file>. Here the content of the document
is clearly the content of the file specified by the filename, so in
a call to index_document, only the name is needed -- the content of the
file is read by the DBIx::FullTextSearch transparently:
$fts->index_document('/usr/doc/FAQ/Linux-FAQ');
my @files = $fts->contains('penguin');
=item url
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/MoCo.pm view on Meta::CPAN
__PACKAGE__->mk_classdata($_) for
qw(cache_object default_cache_expiration icache_expiration
cache_null_object table cache_cols_only _db_object save_explicitly list_class);
## NOTE: INIT block does not work well under mod_perl or POE.
## Please set cache_object() explicitly if you want to use transparent caching.
# INIT {
# unless (defined __PACKAGE__->cache_object) {
# if (Cache::FastMmap->require) {
# my $file = File::Spec->catfile('/tmp', __PACKAGE__);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Poggy/DBI.pm view on Meta::CPAN
sub DESTROY {
my $self = shift;
unless (in_global_destruction) {
# ressurect DBH, bu pushing it back into the pool
# I know it's hackish, but I couldn't find good way to implement
# auto release that works transparently
my $state = $self->{private_poggy_state} || {};
if ( $state->{release_to} ) {
$self->SUPER::rollback() if delete $state->{txn};
return $state->{release_to}->release($self);
}
view all matches for this distribution
view release on metacpan or search on metacpan
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
# .15 First public release. Bad naming.
# .20 Fixed naming problems
# .30 Module is now more transparent, thanks to Michael G Schwern
# One less "To Do" left!
# 11-4-1999
# 1.0 Added ability to trace executes, chosen by an environment variable
# Added capability of saving everything to a log file
#
use DBI;
$dbh->printProfile();
=head1 DESCRIPTION
DBIx::Profile is a quick and easy, and mostly transparent, profiler
for scripts using DBI. It collects information on the query
level, and keeps track of first, failed, normal, and total amounts
(count, wall clock, cput time) for each function on the query.
NOTE: DBIx::Profile use Time::HiRes to clock the wall time and
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/QueryByName.pm view on Meta::CPAN
=head1 AUTOMATED RECOVERY
If a database connection gets interupted or closed, and the reason for
the interuption is that the database server is closing down or is not
reachable, DBIx::QueryByName will transparently try to reconnect to
the database until it succeeds and re-execute the query. Note that
this only works when you call a query by its name. Calls to C<query>,
C<begin_work>, C<commit>, C<rollback> are only aliases to the
corresponding DBI calls and will fail in the same way.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/RetryConnect.pm view on Meta::CPAN
};
=head1 DESCRIPTION
The DBIx::RetryConnect module arranges for failed DBI connection attempts to be
automatically and transparently retried for a period of time, with a growing
delay between each retry.
As far as the application is concerned there's no change in behaviour.
Either the connection succeeds at once, succeeds sometime later after one or
more retries, or fails after one or more retries. It isn't aware of the retries.
view all matches for this distribution
view release on metacpan or search on metacpan
make_extras/htmldoc.pl view on Meta::CPAN
input { margin: 2px; }
A.fred {
text-decoration: none;
}
A:link, A:visited {
background: transparent;
color: #006699;
}
TD {
margin: 0;
padding: 0;
make_extras/htmldoc.pl view on Meta::CPAN
color: inherit;
padding: 0.4ex 1ex;
text-align: left;
}
TH A:link, TH A:visited {
background: transparent;
color: black;
}
A.m:link, A.m:visited {
background: #006699;
color: white;
make_extras/htmldoc.pl view on Meta::CPAN
color: #ccffcc;
font: bold 10pt Arial,Helvetica,sans-serif;
text-decoration: none;
}
A.o:hover {
background: transparent;
color: #ff6600;
text-decoration: underline;
}
A.m:hover {
background: transparent;
color: #ff6600;
text-decoration: underline;
}
table.dlsip {
background: #dddddd;
make_extras/htmldoc.pl view on Meta::CPAN
color: black;
padding-top: 1em;
white-space: pre;
}
.pod H1 {
background: transparent;
color: #006699;
font-size: large;
}
.pod H2 {
background: transparent;
color: #006699;
font-size: medium;
}
.pod IMG {
vertical-align: top;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/Struct.pod view on Meta::CPAN
print $json->encode($user->TO_JSON({url => "http://site.com/login"}));
# {"url":"http://site.com/login","username":"cruks","id":1}
=head4 B<JSON> type support
Fields with datatype 'json' or 'jsonb' can be transparently used as perl-structures.
my $row = one_row(table => $id);
# table is like
# id | integer | not null default nextval('table_id_seq'::regclass)
# settings | jsonb |
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIx/ThinSQL.pm view on Meta::CPAN
DBIx::ThinSQL gives you access to aggregate expressions, joins, nested
selects, unions and database-side operator invocations. Transactional
support is provided via L<DBIx::Connector>. Security conscious coders
will be pleased to know that all user-supplied values are bound
properly using L<DBI> "bind_param()". Binding binary data is handled
transparently across different database types.
DBIx::ThinSQL offers a couple of very simple Create, Retrieve, Update
and Delete (CRUD) action methods. These are designed to get you up and
running quickly when your query data is already inside a hashref. The
methods are abstractions of the real API, but should still read as much
view all matches for this distribution
view release on metacpan or search on metacpan
t/11_optimize.t view on Meta::CPAN
$db->_get_self->_engine->storage->close( $db->_get_self );
##
# now for the tricky one -- try to store a new key while file is being
# optimized and locked by another process. filehandle should be invalidated,
# and automatically re-opened transparently. Cannot test on Win32, due to
# problems with fork()ing, flock()ing, etc. Win32 very bad.
##
SKIP: {
skip "Fork tests skipped until fh/filename question solved.", 4;
view all matches for this distribution