[interchange-cvs] interchange - heins modified 4 files
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Wed Apr 16 17:10:00 2003
User: heins
Date: 2003-04-16 21:09:14 GMT
Modified: lib/Vend/Table DBI.pm
Modified: dist/foundation/dbconf/pgsql orderline.pgsql
Modified: transactions.pgsql userdb.pgsql
Log:
* Fix LENGTH_EXCEPTION_DEFAULT logging, which did not work.
* Clean up length exception code a bit.
* Use LENGTH_EXCEPTION_DEFAULT for Postgres userdb, transactions,
orderline tables in foundation.
Revision Changes Path
2.43 +22 -8 interchange/lib/Vend/Table/DBI.pm
rev 2.43, prev_rev 2.42
Index: DBI.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Table/DBI.pm,v
retrieving revision 2.42
retrieving revision 2.43
diff -u -r2.42 -r2.43
--- DBI.pm 7 Feb 2003 16:46:14 -0000 2.42
+++ DBI.pm 16 Apr 2003 21:09:14 -0000 2.43
@@ -1,6 +1,6 @@
# Vend::Table::DBI - Access a table stored in an DBI/DBD database
#
-# $Id: DBI.pm,v 2.42 2003/02/07 16:46:14 mheins Exp $
+# $Id: DBI.pm,v 2.43 2003/04/16 21:09:14 mheins Exp $
#
# Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
#
@@ -20,7 +20,7 @@
# MA 02111-1307 USA.
package Vend::Table::DBI;
-$VERSION = substr(q$Revision: 2.42 $, 10);
+$VERSION = substr(q$Revision: 2.43 $, 10);
use strict;
@@ -1075,10 +1075,12 @@
|| $s->[$CONFIG]{LENGTH_EXCEPTION_DEFAULT};
my $slen = $fcfg->{LENGTH};
+ my $olen;
my $errout;
if( $action =~ /^truncate(?:_(\w+))$/i) {
- my $errout = lc $1;
+ $errout = lc $1;
+ $olen = length($data);
$data = substr($data,0,$slen);
}
elsif ($action =~ /^filter/i){
@@ -1097,16 +1099,17 @@
if($errout) {
my $caller = caller();
- my $msg1 = errmsg(
+ my $msg1 = ::errmsg(
"%s - Length Exception! - Data length: %s Field length: %s",
$caller,
- length($data),
+ $olen,
$slen,
);
- my $msg2 = errmsg(
+ my $msg2 = ::errmsg(
"%s - Length Exception - Table: %s, Field: %s. Action to take: %s",
$caller,
$s->[$TABLE],
+ $fname,
$action,
);
if($errout eq 'debug') {
@@ -1199,8 +1202,6 @@
my $lcfg = $s->[$CONFIG]{FIELD_LENGTH_DATA}
or die "No field length data!";
- my $ecfg = $s->[$CONFIG]{LENGTH_EXCEPTION} || {};
- my $edefault = $s->[$CONFIG]{LENGTH_EXCEPTION_DEFAULT};
for (my $i=0; $i < @$fary; $i++){
next unless defined $lcfg->{$fary->[$i]};
@@ -1512,6 +1513,19 @@
);
return undef;
}
+
+ my $lcfg;
+ if(
+ $s->[$CONFIG]->{LENGTH_EXCEPTION_DEFAULT}
+ and $s->[$CONFIG]{FIELD_LENGTH_DATA}
+ and $lcfg = $s->[$CONFIG]{FIELD_LENGTH_DATA}{$column}
+ and $lcfg->{LENGTH} < length($value)
+ )
+ {
+
+ $value = $s->length_exception($column, $value);
+ }
+
$key = $s->autonumber() if ! length($key);
2.4 +4 -0 interchange/dist/foundation/dbconf/pgsql/orderline.pgsql
rev 2.4, prev_rev 2.3
Index: orderline.pgsql
===================================================================
RCS file: /var/cvs/interchange/dist/foundation/dbconf/pgsql/orderline.pgsql,v
retrieving revision 2.3
retrieving revision 2.4
diff -u -r2.3 -r2.4
--- orderline.pgsql 23 Jan 2003 19:05:50 -0000 2.3
+++ orderline.pgsql 16 Apr 2003 21:09:14 -0000 2.4
@@ -5,6 +5,10 @@
ifdef SQLPASS
Database orderline PASS __SQLPASS__
endif
+
+## this truncates too-long user input that might cause a die otherwise
+Database orderline LENGTH_EXCEPTION_DEFAULT truncate_log
+
Database orderline DEFAULT_TYPE varchar(128)
Database orderline COLUMN_DEF "code=varchar(14) NOT NULL PRIMARY KEY"
Database orderline COLUMN_DEF "store_id=varchar(9)"
2.6 +4 -0 interchange/dist/foundation/dbconf/pgsql/transactions.pgsql
rev 2.6, prev_rev 2.5
Index: transactions.pgsql
===================================================================
RCS file: /var/cvs/interchange/dist/foundation/dbconf/pgsql/transactions.pgsql,v
retrieving revision 2.5
retrieving revision 2.6
diff -u -r2.5 -r2.6
--- transactions.pgsql 23 Jan 2003 19:05:50 -0000 2.5
+++ transactions.pgsql 16 Apr 2003 21:09:14 -0000 2.6
@@ -5,6 +5,10 @@
ifdef SQLPASS
Database transactions PASS __SQLPASS__
endif
+
+## this truncates too-long user input that might cause a die otherwise
+Database transactions LENGTH_EXCEPTION_DEFAULT truncate_log
+
Database transactions DEFAULT_TYPE varchar(128)
Database transactions COLUMN_DEF "code=VARCHAR(14) NOT NULL PRIMARY KEY"
Database transactions COLUMN_DEF "store_id=VARCHAR(9)"
2.5 +5 -0 interchange/dist/foundation/dbconf/pgsql/userdb.pgsql
rev 2.5, prev_rev 2.4
Index: userdb.pgsql
===================================================================
RCS file: /var/cvs/interchange/dist/foundation/dbconf/pgsql/userdb.pgsql,v
retrieving revision 2.4
retrieving revision 2.5
diff -u -r2.4 -r2.5
--- userdb.pgsql 23 Jan 2003 19:05:50 -0000 2.4
+++ userdb.pgsql 16 Apr 2003 21:09:14 -0000 2.5
@@ -1,4 +1,5 @@
Database userdb userdb.txt __SQLDSN__
+
ifdef SQLUSER
Database userdb USER __SQLUSER__
endif
@@ -6,6 +7,10 @@
Database userdb PASS __SQLPASS__
endif
Database userdb DEFAULT_TYPE VARCHAR(255)
+
+## this truncates too-long user input that might cause a die otherwise
+Database userdb LENGTH_EXCEPTION_DEFAULT truncate_log
+
Database userdb COLUMN_DEF "username=VARCHAR(20) NOT NULL PRIMARY KEY"
Database userdb COLUMN_DEF "password=VARCHAR(20)"
Database userdb COLUMN_DEF "acl=text"