DBIx::Class::SQLMaker::MySQL;
use base qw( DBIx::Class::SQLMaker );
-use Carp::Clan qw/^DBIx::Class|^SQL::Abstract/;
#
# MySQL does not understand the standard INSERT INTO $table DEFAULT VALUES
sub insert {
my $self = shift;
- my $table = $_[0];
- $table = $self->_quote($table);
-
if (! $_[1] or (ref $_[1] eq 'HASH' and !keys %{$_[1]} ) ) {
+ my $table = $self->_quote($_[0]);
return "INSERT INTO ${table} () VALUES ()"
}
- return $self->SUPER::insert (@_);
+ return $self->next::method (@_);
}
# Allow STRAIGHT_JOIN's
return ' STRAIGHT_JOIN '
}
- return $self->SUPER::_generate_join_clause( $join_type );
+ return $self->next::method($join_type);
}
+
+# LOCK IN SHARE MODE
+my $for_syntax = {
+ update => 'FOR UPDATE',
+ shared => 'LOCK IN SHARE MODE'
+};
+
+sub _lock_select {
+ my ($self, $type) = @_;
+
+ my $sql = $for_syntax->{$type}
+ || $self->throw_exception("Unknown SELECT .. FOR type '$type' requested");
+
+ return " $sql";
+}
+
1;