summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2010-01-09 10:38:06 +0000
committerivan <ivan>2010-01-09 10:38:06 +0000
commite398157493c88efa2e47dbb9d6a088cbcbd658e5 (patch)
tree7f3ae0ee8621191189e5013644b73faad68a7e5f
parent382c3b76e1d97cb9a3512c988ffefd04443d5395 (diff)
backport DBIx::DBSchema 0.38 usage from 1.9/HEAD... the alternative is breakage w/ 0.38+ on 1.7
-rw-r--r--FS/FS/Record.pm15
1 files changed, 5 insertions, 10 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index 03d62cb22..502f44722 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -9,9 +9,7 @@ use Carp qw(carp cluck croak confess);
use File::CounterFile;
use Locale::Country;
use DBI qw(:sql_types);
-use DBIx::DBSchema 0.25;
-#use DBIx::DBSchema 0.33; #when check for ->can('unique_singles') is sub insert
- #is removed
+use DBIx::DBSchema 0.38;
use FS::UID qw(dbh getotaker datasrc driver_name);
use FS::CurrentUser;
use FS::Schema qw(dbdef);
@@ -743,10 +741,7 @@ sub insert {
#single-field unique keys are given a value if false
#(like MySQL's AUTO_INCREMENT or Pg SERIAL)
- foreach ( $self->dbdef_table->can('unique_singles')
- ? $self->dbdef_table->unique_singles
- : $self->dbdef_table->unique->singles
- ) {
+ foreach ( $self->dbdef_table->unique_singles) {
$self->unique($_) unless $self->getfield($_);
}
@@ -755,12 +750,12 @@ sub insert {
my $db_seq = 0;
if ( $primary_key ) {
my $col = $self->dbdef_table->column($primary_key);
-
+
$db_seq =
uc($col->type) =~ /^(BIG)?SERIAL\d?/
|| ( driver_name eq 'Pg'
&& defined($col->default)
- && $col->default =~ /^nextval\(/i
+ && $col->quoted_default =~ /^nextval\(/i
)
|| ( driver_name eq 'mysql'
&& defined($col->local)
@@ -824,7 +819,7 @@ sub insert {
#my $oid = $sth->{'pg_oid_status'};
#my $i_sql = "SELECT $primary_key FROM $table WHERE oid = ?";
- my $default = $self->dbdef_table->column($primary_key)->default;
+ my $default = $self->dbdef_table->column($primary_key)->quoted_default;
unless ( $default =~ /^nextval\(\(?'"?([\w\.]+)"?'/i ) {
dbh->rollback if $FS::UID::AutoCommit;
return "can't parse $table.$primary_key default value".