Changeset 2879

Show
Ignore:
Timestamp:
08/01/08 04:57:45 (4 months ago)
Author:
mpaschal
Message:

Let DDL::index_defs() return an empty hash ref when there are no indexes
DDL::add_column_sql() is a list (and treat drop_column_sql() that way too)
BugzID: 80847

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/release-42/t/ddl-tests.pl

    r2866 r2879  
    149149    ok(!$driver->table_exists('Ddltest'), 'Ddltest table does not yet exist'); 
    150150    ok(!defined $ddl_class->column_defs('Ddltest'), 'Ddltest table has no column defs'); 
    151     ok(!defined $ddl_class->index_defs('Ddltest'), 'Ddltest table has no index defs'); 
     151 
     152    # postgres might return an empty set of indexes, but I guess that's okay. 
     153    my $index_defs = $ddl_class->index_defs('Ddltest'); 
     154    ok(!defined $index_defs || !%$index_defs, 'Ddltest table has no index defs'); 
    152155} 
    153156 
     
    402405    ok($defs->{baz}, 'Ddltest::Fixable table has baz column after creation'); 
    403406 
    404     my $sql; 
     407    my @sql; 
    405408    my $res; 
    406409 
    407410    SKIP: { 
    408411        skip("Driver cannot drop columns", 2) unless $ddl_class->can_drop_column; 
    409         $sql = $ddl_class->drop_column_sql('Ddltest::Fixable', 'baz'); 
    410         ok($sql, 'Ddltest::Fixable can have column dropping sql'); 
    411         $res = $dbh->do($sql); 
     412        @sql = $ddl_class->drop_column_sql('Ddltest::Fixable', 'baz'); 
     413        ok(@sql, 'Ddltest::Fixable can have column dropping sql'); 
     414        SQL: for my $sql (@sql) { 
     415            $res = $dbh->do($sql); 
     416            last SQL if !$res; 
     417        } 
    412418        ok($res, 'Ddltest::Fixable could have its column dropped'); 
    413419    } 
     
    415421    { 
    416422        local Ddltest::Fixable->properties->{column_defs}->{borf} = 'string(10)'; 
    417         $sql = $ddl_class->add_column_sql('Ddltest::Fixable', 'borf'); 
    418         ok($sql, 'Ddltest::Fixable can have column adding sql'); 
    419         $res = $dbh->do($sql); 
     423        @sql = $ddl_class->add_column_sql('Ddltest::Fixable', 'borf'); 
     424        ok(@sql, 'Ddltest::Fixable can have column adding sql'); 
     425        SQL: for my $sql (@sql) { 
     426            $res = $dbh->do($sql); 
     427            diag(($dbh->errstr || $DBI::errstr) . "( sql $sql)") if !$res; 
     428            last SQL if !$res; 
     429        } 
    420430        ok($res, 'Ddltest::Fixable could have a column added'); 
    421         diag(($dbh->errstr || $DBI::errstr) . "( sql $sql)") if !$res; 
    422431    } 
    423432