Add new column with a default to Artist, adjust tests as necessary (no functional...
Peter Rabbitson [Thu, 9 Oct 2008 11:47:39 +0000 (11:47 +0000)]
t/64db.t
t/71mysql.t
t/746mssql.t
t/74mssql.t
t/93nobindvars.t
t/98savepoints.t
t/bindtype_columns.t
t/lib/DBICTest/Schema/Artist.pm
t/lib/sqlite.sql

index d9c03aa..3a761e4 100644 (file)
--- a/t/64db.t
+++ b/t/64db.t
@@ -39,8 +39,8 @@ my $type_info = $schema->storage->columns_info_for('artist');
 # I know this is gross but SQLite reports the size differently from release
 # to release. At least this way the test still passes.
 
-delete $type_info->{artistid}{size};
-delete $type_info->{name}{size};
+delete $type_info->{$_}{size} for keys %$type_info;
+
 
 my $test_type_info = {
     'artistid' => {
@@ -51,6 +51,10 @@ my $test_type_info = {
         'data_type' => 'varchar',
         'is_nullable' => 0,
     },
+    'rank' => {
+        'data_type' => 'integer',
+        'is_nullable' => 0,
+    },
 };
 is_deeply($type_info, $test_type_info, 'columns_info_for - column data types');
 
index 83f2a84..eff456d 100644 (file)
@@ -21,7 +21,7 @@ my $dbh = $schema->storage->dbh;
 
 $dbh->do("DROP TABLE IF EXISTS artist;");
 
-$dbh->do("CREATE TABLE artist (artistid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), charfield CHAR(10));");
+$dbh->do("CREATE TABLE artist (artistid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), rank INTEGER NOT NULL DEFAULT '13', charfield CHAR(10));");
 
 #'dbi:mysql:host=localhost;database=dbic_test', 'dbic_test', '');
 
@@ -60,6 +60,12 @@ my $test_type_info = {
         'size' => 255,
         'default_value' => undef,
     },
+    'rank' => {
+        'data_type' => 'INT',
+        'is_nullable' => 0,
+        'size' => 11,
+        'default_value' => 13,
+    },
     'charfield' => {
         'data_type' => 'CHAR',
         'is_nullable' => 1,
index 9d46eea..aebdbf4 100644 (file)
@@ -25,6 +25,7 @@ eval { $dbh->do("DROP TABLE artist") };
 CREATE TABLE artist (
    artistid INT IDENTITY NOT NULL,
    name VARCHAR(255),
+   rank INT NOT NULL DEFAULT '13',
    charfield CHAR(10) NULL,
    primary key(artistid)
 )
index 6ad30d6..44709cb 100644 (file)
@@ -29,7 +29,7 @@ $dbh->do("IF OBJECT_ID('artist', 'U') IS NOT NULL
 $dbh->do("IF OBJECT_ID('cd', 'U') IS NOT NULL
     DROP TABLE cd");
 
-$dbh->do("CREATE TABLE artist (artistid INT IDENTITY PRIMARY KEY, name VARCHAR(255));");
+$dbh->do("CREATE TABLE artist (artistid INT IDENTITY PRIMARY KEY, name VARCHAR(255), rank INT DEFAULT '13');");
 $dbh->do("CREATE TABLE cd (cdid INT IDENTITY PRIMARY KEY, artist INT,  title VARCHAR(100), year VARCHAR(100), genreid INT NULL);");
 # Just to test compat shim, Auto is in Core
 $schema->class('Artist')->load_components('PK::Auto::MSSQL');
index c955a06..eddd72f 100644 (file)
@@ -40,7 +40,7 @@ my $dbh = $schema->storage->dbh;
 
 $dbh->do("DROP TABLE IF EXISTS artist;");
 
-$dbh->do("CREATE TABLE artist (artistid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), charfield CHAR(10));");
+$dbh->do("CREATE TABLE artist (artistid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), rank INTEGER NOT NULL DEFAULT '13', charfield CHAR(10));");
 
 $schema->class('Artist')->load_components('PK::Auto');
 
index 28b00cf..a7c5344 100644 (file)
@@ -11,11 +11,11 @@ my ($create_sql, $dsn, $user, $pass);
 if (exists $ENV{DBICTEST_PG_DSN}) {
   ($dsn, $user, $pass) = @ENV{map { "DBICTEST_PG_${_}" } qw/DSN USER PASS/};
 
-  $create_sql = "CREATE TABLE artist (artistid serial PRIMARY KEY, name VARCHAR(100), charfield CHAR(10))";
+  $create_sql = "CREATE TABLE artist (artistid serial PRIMARY KEY, name VARCHAR(100), rank INTEGER NOT NULL DEFAULT '13', charfield CHAR(10))";
 } elsif (exists $ENV{DBICTEST_MYSQL_DSN}) {
   ($dsn, $user, $pass) = @ENV{map { "DBICTEST_MYSQL_${_}" } qw/DSN USER PASS/};
 
-  $create_sql = "CREATE TABLE artist (artistid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), charfield CHAR(10)) ENGINE=InnoDB";
+  $create_sql = "CREATE TABLE artist (artistid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), rank INTEGER NOT NULL DEFAULT '13', charfield CHAR(10)) ENGINE=InnoDB";
 } else {
   plan skip_all => 'Set DBICTEST_(PG|MYSQL)_DSN _USER and _PASS if you want to run savepoint tests';
 }
index 8edf7af..7cc712c 100644 (file)
@@ -24,7 +24,8 @@ my $dbh = $schema->storage->dbh;
         (
             artistid        serial  NOT NULL    PRIMARY KEY,
             media           bytea   NOT NULL,
-            name            varchar NULL
+            name            varchar NULL,
+            rank            integer NOT NULL    DEFAULT '13'
         );
     ],{ RaiseError => 1, PrintError => 1 });
 }
index ae92606..a542576 100644 (file)
@@ -19,6 +19,10 @@ __PACKAGE__->add_columns(
     size      => 100,
     is_nullable => 1,
   },
+  rank => {
+    data_type => 'integer',
+    default_value => 13,
+  },
 );
 __PACKAGE__->set_primary_key('artistid');
 
index e09d0ea..15967b3 100644 (file)
@@ -1,6 +1,6 @@
 -- 
 -- Created by SQL::Translator::Producer::SQLite
--- Created on Thu Oct  9 13:12:46 2008
+-- Created on Thu Oct  9 13:44:56 2008
 -- 
 BEGIN TRANSACTION;
 
@@ -10,7 +10,8 @@ BEGIN TRANSACTION;
 --
 CREATE TABLE artist (
   artistid INTEGER PRIMARY KEY NOT NULL,
-  name varchar(100)
+  name varchar(100),
+  rank integer NOT NULL DEFAULT '13'
 );