Get Storage::Oracle to behave when quoting is enabled
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / InterBase.pm
index cd50531..fd21056 100644 (file)
@@ -15,8 +15,8 @@ DBIx::Class::Storage::DBI::InterBase - Driver for the Firebird RDBMS
 =head1 DESCRIPTION
 
 This class implements autoincrements for Firebird using C<RETURNING> as well as
-L<auto_nextval|DBIx::Class::ResultSource/auto_nextval> sets the limit dialect to
-C<FIRST X SKIP X> and provides L<DBIx::Class::InflateColumn::DateTime> support.
+L<auto_nextval|DBIx::Class::ResultSource/auto_nextval> and provides
+L<DBIx::Class::InflateColumn::DateTime> support.
 
 You need to use either the
 L<disable_sth_caching|DBIx::Class::Storage::DBI/disable_sth_caching> option or
@@ -38,15 +38,15 @@ __PACKAGE__->sql_limit_dialect ('FirstSkip');
 sub _sequence_fetch {
   my ($self, $nextval, $sequence) = @_;
 
-  if ($nextval ne 'nextval') {
-    $self->throw_exception("Can only fetch 'nextval' for a sequence");
-  }
+  $self->throw_exception("Can only fetch 'nextval' for a sequence")
+    if $nextval !~ /^nextval$/i;
 
   $self->throw_exception('No sequence to fetch') unless $sequence;
 
-  my ($val) = $self->_get_dbh->selectrow_array(
-'SELECT GEN_ID(' . $self->sql_maker->_quote($sequence) .
-', 1) FROM rdb$database');
+  my ($val) = $self->_get_dbh->selectrow_array(sprintf
+    'SELECT GEN_ID(%s, 1) FROM rdb$database',
+    $self->sql_maker->_quote($sequence)
+  );
 
   return $val;
 }