Revision history for Perl extension DBIx::Class::Schema::Loader
- - minor Pg type info improvements
+ - minor type info improvements for all DBs
- fix erroneous default_value for MySQL NOT NULL columns (RT#57225)
- remove is_deferrable => 1 from default for belongs_to rels
- better type info for Oracle
my $sth = $dbh->prepare(<<'EOF');
SELECT t.table_name
FROM INFORMATION_SCHEMA.TABLES t
-WHERE lower(t.table_schema) = ?
+WHERE t.table_schema = ?
EOF
- $sth->execute(lc $self->db_schema);
+ $sth->execute($self->db_schema);
my @tables = map @$_, @{ $sth->fetchall_arrayref };
FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc on (ccu.constraint_name = tc.constraint_name)
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu on (ccu.constraint_name = kcu.constraint_name and ccu.column_name = kcu.column_name)
-wHERE lower(ccu.table_name) = @{[ $dbh->quote(lc $table) ]} AND constraint_type = 'UNIQUE' ORDER BY kcu.ordinal_position
+wHERE ccu.table_name = @{[ $dbh->quote($table) ]} AND constraint_type = 'UNIQUE' ORDER BY kcu.ordinal_position
});
$sth->execute;
my $constraints;
my $sth = $dbh->prepare(qq{
SELECT column_name
FROM INFORMATION_SCHEMA.COLUMNS
-WHERE columnproperty(object_id(@{[ $dbh->quote(lc $table) ]}, 'U'), @{[ $dbh->quote(lc $col) ]}, 'IsIdentity') = 1
-AND lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = @{[ $dbh->quote(lc $col) ]}
+WHERE columnproperty(object_id(@{[ $dbh->quote($table) ]}, 'U'), @{[ $dbh->quote($col) ]}, 'IsIdentity') = 1
+AND table_name = @{[ $dbh->quote($table) ]} AND column_name = @{[ $dbh->quote($col) ]}
});
if (eval { $sth->execute; $sth->fetchrow_array }) {
$info->{is_auto_increment} = 1;
delete $info->{size};
}
}
- elsif ($info->{data_type} eq 'real') {
- $info->{data_type} = 'float';
- $info->{size} = 24;
- }
elsif ($info->{data_type} eq 'float') {
$info->{data_type} = 'double precision';
}
$sth = $dbh->prepare(qq{
SELECT column_default
FROM INFORMATION_SCHEMA.COLUMNS
-wHERE lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = @{[ $dbh->quote(lc $col) ]}
+wHERE table_name = @{[ $dbh->quote($table) ]} AND column_name = @{[ $dbh->quote($col) ]}
});
my ($default) = eval { $sth->execute; $sth->fetchrow_array };
money => { data_type => 'money' },
smallmoney => { data_type => 'smallmoney' },
bit => { data_type => 'bit' },
- real => { data_type => 'float', size => 24 },
- 'float(14)' => { data_type => 'float', size => 24 },
- 'float(24)' => { data_type => 'float', size => 24 },
+ real => { data_type => 'real' },
+ 'float(14)' => { data_type => 'real' },
+ 'float(24)' => { data_type => 'real' },
'float(25)' => { data_type => 'double precision' },
'float(53)' => { data_type => 'double precision' },
float => { data_type => 'double precision' },
'nvarchar(2)' => { data_type => 'nvarchar', size => 2 },
# binary types
- 'binary(2)' => { data_type => 'binary', size => 2 },
- 'varbinary(2)' => { data_type => 'varbinary', size => 2 },
+ 'binary' => { data_type => 'binary', size => 1 },
+ 'binary(2)' => { data_type => 'binary', size => 2 },
+ 'varbinary(2)' => { data_type => 'varbinary', size => 2 },
# blob types
'varchar(max)' => { data_type => 'text' },