From 8cf7024644de1d1461ffbf9497facabea57fecb6 Mon Sep 17 00:00:00 2001 From: Laurent Dami Date: Fri, 16 Dec 2011 08:13:22 +0100 Subject: [PATCH] using new SQLA::More API for insert/update/delete --- Build.PL | 18 +++++++++--------- Changes | 2 ++ lib/DBIx/DataModel/ConnectedSource.pm | 13 +++++++++---- lib/DBIx/DataModel/Schema.pm | 2 +- lib/DBIx/DataModel/Source/Table.pm | 9 ++++++--- 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/Build.PL b/Build.PL index ab136ba..4ccb356 100644 --- a/Build.PL +++ b/Build.PL @@ -9,15 +9,15 @@ my $builder = Module::Build->new( dist_author => 'Laurent Dami ', dist_version_from => 'lib/DBIx/DataModel.pm', requires => { - 'perl' => 5.008, - 'Test::More' => 0, - 'Carp' => 0, - 'DBI' => 0, - 'SQL::Abstract::More' => 0, - 'Module::Build' => 0, - 'Acme::Damn' => 0, - 'Scalar::Util' => 0, - 'Storable' => 0, + 'perl' => 5.008, + 'Test::More' => 0, + 'Carp' => 0, + 'DBI' => 0, + 'SQL::Abstract::More' => 1.0, + 'Module::Build' => 0, + 'Acme::Damn' => 0, + 'Scalar::Util' => 0, + 'Storable' => 0, # new dependencies in 2.0 'namespace::autoclean' => 0, diff --git a/Changes b/Changes index 7a4d8c5..1289c9f 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,7 @@ Revision history for Perl extension DBIx::DataModel. + - using new SQLA::More API for insert/update/delete + v2.06 07.12.2011 - new method Path::opposite() diff --git a/lib/DBIx/DataModel/ConnectedSource.pm b/lib/DBIx/DataModel/ConnectedSource.pm index 6227f55..00d2601 100644 --- a/lib/DBIx/DataModel/ConnectedSource.pm +++ b/lib/DBIx/DataModel/ConnectedSource.pm @@ -261,8 +261,11 @@ sub update { # database request my $schema = $self->{schema}; - my @sqla_args = ($meta_source->db_from, $to_set, $where); - my ($sql, @bind) = $schema->sql_abstract->update(@sqla_args); + my ($sql, @bind) = $schema->sql_abstract->update( + -table => $meta_source->db_from, + -set => $to_set, + -where => $where, + ); $schema->_debug(do {no warnings 'uninitialized'; $sql . " / " . CORE::join(", ", @bind);}); my $method = $schema->dbi_prepare_method; @@ -327,8 +330,10 @@ sub delete { # database request my $schema = $self->{schema}; - my @sqla_args = ($meta_source->db_from, $where); - my ($sql, @bind) = $schema->sql_abstract->delete(@sqla_args); + my ($sql, @bind) = $schema->sql_abstract->delete( + -from => $meta_source->db_from, + -where => $where, + ); $schema->_debug($sql . " / " . CORE::join(", ", @bind) ); my $method = $schema->dbi_prepare_method; my $sth = $schema->dbh->$method($sql); diff --git a/lib/DBIx/DataModel/Schema.pm b/lib/DBIx/DataModel/Schema.pm index 71e6443..6dcd502 100644 --- a/lib/DBIx/DataModel/Schema.pm +++ b/lib/DBIx/DataModel/Schema.pm @@ -15,7 +15,7 @@ use Module::Load qw/load/; use Params::Validate qw/validate SCALAR ARRAYREF CODEREF UNDEF OBJECT BOOLEAN/; use Acme::Damn qw/damn/; -use SQL::Abstract::More; +use SQL::Abstract::More 1.0; use namespace::clean; diff --git a/lib/DBIx/DataModel/Source/Table.pm b/lib/DBIx/DataModel/Source/Table.pm index a16dc9f..bd86009 100644 --- a/lib/DBIx/DataModel/Source/Table.pm +++ b/lib/DBIx/DataModel/Source/Table.pm @@ -71,9 +71,12 @@ sub _rawInsert { # already cloned in Statement::insert(). But quite hard to improve :-(( # perform the insertion - my @sqla_args = ($metadm->db_from, \%values); - push @sqla_args, {returning => $options{-returning}} if $use_returning; - my ($sql, @bind) = $schema->sql_abstract->insert(@sqla_args); + my %sqla_args = ( + -into => $metadm->db_from, + -values => \%values, + ); + $sqla_args{-returning} = $options{-returning} if $use_returning; + my ($sql, @bind) = $schema->sql_abstract->insert(%sqla_args); $self->schema->_debug($sql . " / " . join(", ", @bind) ); my $sth = $schema->dbh->prepare($sql); $sth->execute(@bind);