} else {
push(@sqlf, $self->_make_as($to));
}
- push(@sqlf, ' ON ', $self->_join_condition($on));
+ push(@sqlf, ' ON (', $self->_join_condition($on), ')');
}
return join('', @sqlf);
}
=item *
The same 4-element argument set one would normally pass to
-L<DBI/connect>, optionally followed by L<extra attributes|/DBIx::Class
-specific connection attributes> recognized by DBIx::Class:
+L<DBI/connect>, optionally followed by
+L<extra attributes|/DBIx::Class specific connection attributes>
+recognized by DBIx::Class:
$connect_info_args = [ $dsn, $user, $password, \%dbi_attributes?, \%extra_attributes? ];
=item *
-A single code reference which returns a connected L<DBI database
-handle|DBI/connect> optionally followed by L<extra
-attributes|/DBIx::Class specific connection attributes> recognized by
-DBIx::Class:
+A single code reference which returns a connected
+L<DBI database handle|DBI/connect> optionally followed by
+L<extra attributes|/DBIx::Class specific connection attributes> recognized
+by DBIx::Class:
$connect_info_args = [ sub { DBI->connect (...) }, \%extra_attributes? ];
}];
This is particularly useful for L<Catalyst> based applications, allowing the
-following config (in L<Config::General> style):
+following config (L<Config::General> style):
<Model::DB>
schema_class App::DB
Please note that the L<DBI> docs recommend that you always explicitly
set C<AutoCommit> to either I<0> or I<1>. L<DBIx::Class> further
recommends that it be set to I<1>, and that you perform transactions
-via our L</txn_do> method. L<DBIx::Class> will set it to I<1> if you
-do not do explicitly set it to zero. This is the default for most
-DBDs. See L</DBIx::Class and AutoCommit> for details.
+via our L<DBIx::Class::Schema/txn_do> method. L<DBIx::Class> will set it
+to I<1> if you do not do explicitly set it to zero. This is the default
+for most DBDs. See L</DBIx::Class and AutoCommit> for details.
=head3 DBIx::Class specific connection attributes
=item name_sep
-This only needs to be used in conjunction with L<quote_char>, and is used to
+This only needs to be used in conjunction with C<quote_char>, and is used to
specify the charecter that seperates elements (schemas, tables, columns) from
each other. In most cases this is simply a C<.>.
my $self = shift;
my ($rv, $sth, @bind) = $self->_select(@_);
my @row = $sth->fetchrow_array;
- if(@row && $sth->fetchrow_array) {
+ my @nextrow = $sth->fetchrow_array if @row;
+ if(@row && @nextrow) {
carp "Query returned more than one row. SQL that returns multiple rows is DEPRECATED for ->find and ->single";
}
# Need to call finish() to work round broken DBDs
=head2 bind_attribute_by_data_type
Given a datatype from column info, returns a database specific bind
-attribute for $dbh->bind_param($val,$attribute) or nothing if we will
+attribute for C<< $dbh->bind_param($val,$attribute) >> or nothing if we will
let the database planner just handle it.
Generally only needed for special case column types, like bytea in postgres.
}
$databases ||= ['MySQL', 'SQLite', 'PostgreSQL'];
$databases = [ $databases ] if(ref($databases) ne 'ARRAY');
- $version ||= $schema->VERSION || '1.x';
+
+ my $schema_version = $schema->schema_version || '1.x';
+ $version ||= $schema_version;
+
$sqltargs = {
add_drop_table => 1,
ignore_constraint_names => 1,
my $file;
my $filename = $schema->ddl_filename($db, $version, $dir);
- if (-e $filename && (!$version || ($version == $schema->schema_version()))) {
+ if (-e $filename && ($version eq $schema_version )) {
# if we are dumping the current version, overwrite the DDL
warn "Overwriting existing DDL file - $filename";
unlink($filename);
# Need to be connected to get the correct sqlt_type
$self->ensure_connected() unless $type;
$type ||= $self->sqlt_type;
- $version ||= $schema->VERSION || '1.x';
+ $version ||= $schema->schema_version || '1.x';
$dir ||= './';
my $filename = $schema->ddl_filename($type, $dir, $version);
if(-f $filename)
=item limit_dialect
See L</connect_info> for details.
-For setting, this method is deprecated in favor of L</connect_info>.
=item quote_char
See L</connect_info> for details.
-For setting, this method is deprecated in favor of L</connect_info>.
=item name_sep
See L</connect_info> for details.
-For setting, this method is deprecated in favor of L</connect_info>.
=back