projects
/
DBIx-DBSchema.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2854f48
)
Fixes for dropping nullability on old Pg (<= 7.2)
author
ivan
<ivan>
Thu, 2 Nov 2006 07:18:55 +0000
(07:18 +0000)
committer
ivan
<ivan>
Thu, 2 Nov 2006 07:18:55 +0000
(07:18 +0000)
Changes
patch
|
blob
|
history
DBSchema/Column.pm
patch
|
blob
|
history
diff --git
a/Changes
b/Changes
index
9f67fef
..
6c56511
100644
(file)
--- a/
Changes
+++ b/
Changes
@@
-6,6
+6,7
@@
Revision history for Perl extension DBIx::DBSchema.
- Error reporting for load constructor
- Update documentation wrt supported databases and new update_schema
stuff
- Error reporting for load constructor
- Update documentation wrt supported databases and new update_schema
stuff
+ - Fixes for dropping nullability on old Pg (<= 7.2)
0.31 Thu Mar 30 05:28:20 PST 2006
- more schema update stuff:
0.31 Thu Mar 30 05:28:20 PST 2006
- more schema update stuff:
diff --git
a/DBSchema/Column.pm
b/DBSchema/Column.pm
index
ca6ecc8
..
14351ec
100644
(file)
--- a/
DBSchema/Column.pm
+++ b/
DBSchema/Column.pm
@@
-9,7
+9,7
@@
use DBIx::DBSchema::_util qw(_load_driver _dbh);
#@ISA = qw(Exporter);
@ISA = qw();
#@ISA = qw(Exporter);
@ISA = qw();
-$VERSION = '0.0
7
';
+$VERSION = '0.0
8
';
=head1 NAME
=head1 NAME
@@
-360,7
+360,8
@@
sub sql_add_column {
$real_null = $self->null;
$self->null('NULL');
$real_null = $self->null;
$self->null('NULL');
- if ( $dbh->{'pg_server_version'} > 70300 ) {
+ #if ( $dbh->{'pg_server_version'} > 70300 ) { #this seemed to work on 7.3
+ if ( $dbh->{'pg_server_version'} > 70400 ) { #after all...
push @after_add, sub {
my($table, $column) = @_;
push @after_add, sub {
my($table, $column) = @_;
@@
-429,7
+430,7
@@
sub sql_alter_column {
my $name = $self->name;
my $name = $self->name;
-
#
my $driver = $dbh ? _load_driver($dbh) : '';
+ my $driver = $dbh ? _load_driver($dbh) : '';
my @r = ();
my @r = ();
@@
-439,7
+440,16
@@
sub sql_alter_column {
# change nullability from NOT NULL to NULL
if ( ! $self->null && $new->null ) {
# change nullability from NOT NULL to NULL
if ( ! $self->null && $new->null ) {
- push @r, "ALTER TABLE $table ALTER COLUMN $name DROP NOT NULL";
+
+ if ( $driver eq 'Pg' && $dbh->{'pg_server_version'} < 70300 ) {
+ push @r, "UPDATE pg_attribute SET attnotnull = FALSE
+ WHERE attname = '$name'
+ AND attrelid = ( SELECT oid FROM pg_class
+ WHERE relname = '$table'
+ )";
+ } else {
+ push @r, "ALTER TABLE $table ALTER COLUMN $name DROP NOT NULL";
+ }
}
# change nullability from NULL to NOT NULL...
}
# change nullability from NULL to NOT NULL...