Clarification cascade_* attribute defaults documentation
[dbsrgits/DBIx-Class-Historic.git] / lib / DBIx / Class / SQLAHacks / MySQL.pm
1 package # Hide from PAUSE
2   DBIx::Class::SQLAHacks::MySQL;
3
4 use base qw( DBIx::Class::SQLAHacks );
5 use Carp::Clan qw/^DBIx::Class|^SQL::Abstract/;
6
7 #
8 # MySQL does not understand the standard INSERT INTO $table DEFAULT VALUES
9 # Adjust SQL here instead
10 #
11 sub insert {
12   my $self = shift;
13
14   my $table = $_[0];
15   $table = $self->_quote($table);
16
17   if (! $_[1] or (ref $_[1] eq 'HASH' and !keys %{$_[1]} ) ) {
18     return "INSERT INTO ${table} () VALUES ()"
19   }
20
21   return $self->SUPER::insert (@_);
22 }
23
24 # Allow STRAIGHT_JOIN's
25 sub _generate_join_clause {
26     my ($self, $join_type) = @_;
27
28     if( $join_type && $join_type =~ /^STRAIGHT\z/i ) {
29         return ' STRAIGHT_JOIN '
30     }
31
32     return $self->SUPER::_generate_join_clause( $join_type );
33 }
34 1;