bugfixes, tweaks, map support
[dbsrgits/DBIx-Data-Store.git] / lib / DBIx / Data / Store / CRUD.pm
index 633ebb3..143ed79 100644 (file)
@@ -2,6 +2,8 @@ package DBIx::Data::Store::CRUD;
 
 use strictures 1;
 
+use DBIx::Data::Stream::STH;
+
 sub new {
   my $proto = shift;
   bless({ %{$_[0]} }, ref($proto)||$proto);
@@ -9,12 +11,16 @@ sub new {
 
 sub _sql { shift->{sql} }
 sub _raw { shift->{raw} }
+sub _append_args { shift->{append_args} }
 
 sub _run {
   my $self = shift;
-  my ($run_type, $sql_type, @args) = @_;
+  my ($run_type, $sql_type, $args) = @_;
   my $sql = $self->_sql->{$sql_type}||die "No such sql type ${sql_type}";
-  $self->_raw->${\"run_${run_type}"}($sql, @args);
+  if (my $append = $self->_append_args) {
+    $args = [ @{$args||[]}, @$append ];
+  }
+  $self->_raw->${\"run_${run_type}"}($sql, $args);
 }
 
 sub flatten { @{shift->_run('rowset', 'select_all', @_)} }