[interchange] Add new database configuration attribute PREQUERY.
Jon Jensen
interchange-cvs at icdevgroup.org
Tue Oct 4 01:32:15 UTC 2011
commit 0b995283bb267d757e9427979d7ce9d2b0e7d173
Author: Jon Jensen <jon at endpoint.com>
Date: Mon Oct 3 19:32:09 2011 -0600
Add new database configuration attribute PREQUERY.
This allows an arbitrary query to be defined, which is run every time
the database connection is opened. Useful for setting database timezone,
statement timeout, query optimizer hints, etc.
This commit took its current form on 2007-07-23, but never got committed
upstream till now.
lib/Vend/Config.pm | 1 +
lib/Vend/Table/DBI.pm | 11 +++++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/lib/Vend/Config.pm b/lib/Vend/Config.pm
index cfcc7c8..59eb770 100644
--- a/lib/Vend/Config.pm
+++ b/lib/Vend/Config.pm
@@ -4241,6 +4241,7 @@ my %Ary_ref = ( qw!
BINARY BINARY
PRECREATE PRECREATE
POSTCREATE POSTCREATE
+ PREQUERY PREQUERY
INDEX INDEX
ALTERNATE_DSN ALTERNATE_DSN
ALTERNATE_USER ALTERNATE_USER
diff --git a/lib/Vend/Table/DBI.pm b/lib/Vend/Table/DBI.pm
index 45081bc..343c365 100644
--- a/lib/Vend/Table/DBI.pm
+++ b/lib/Vend/Table/DBI.pm
@@ -654,6 +654,17 @@ sub open_table {
$tablename = $config->{REAL_NAME}
if $config->{REAL_NAME};
+ if (ref $config->{PREQUERY} eq 'ARRAY') {
+ for (@{$config->{PREQUERY}}) {
+ $db->do($_)
+ or ::logError(
+ "DBI: Pre-use query '%s' failed: %s" ,
+ $_,
+ $DBI::errstr,
+ );
+ }
+ }
+
# Used so you can do query() and nothing else
if($config->{HANDLE_ONLY}) {
return bless [$config, $tablename, undef, undef, undef, $db], $class;
More information about the interchange-cvs
mailing list