Permalink
Browse files

not add `unsigned` to not numeric fields, fix broken test, add new test

  • Loading branch information...
1 parent 2f6122c commit 8bcfe452da2a68b5896eca2cdcbee4a772287062 imsamurai committed Nov 17, 2013
View
6 lib/Cake/Model/Datasource/Database/Mysql.php
@@ -347,9 +347,11 @@ public function describe($model) {
'type' => $this->column($column->Type),
'null' => ($column->Null === 'YES' ? true : false),
'default' => $column->Default,
- 'length' => $this->length($column->Type),
- 'unsigned' => $this->unsigned($column->Type)
+ 'length' => $this->length($column->Type)
);
+ if (in_array($fields[$column->Field]['type'], $this->fieldParameters['unsigned']['types'], true)) {
+ $fields[$column->Field]['unsigned'] = $this->unsigned($column->Type);
+ }
if (!empty($column->Key) && isset($this->index[$column->Key])) {
$fields[$column->Field]['key'] = $this->index[$column->Key];
}
View
1 lib/Cake/Test/Case/Model/Datasource/Database/MysqlTest.php
@@ -3283,6 +3283,7 @@ public function testSchemaUnsigned() {
$this->assertArrayHasKey('unsigned', $schema[$type]);
$this->assertFalse($schema[$type]['unsigned']);
}
+ $this->assertArrayNotHasKey('unsigned', $schema['string']);
}
/**
View
3 lib/Cake/Test/Case/Model/ModelIntegrationTest.php
@@ -2216,7 +2216,8 @@ public function testCreation() {
'null' => false,
'default' => null,
'length' => $intLength,
- 'key' => 'primary'
+ 'key' => 'primary',
+ 'unsigned' => false
),
'user' => array(
'type' => 'string',
View
1 lib/Cake/Test/Fixture/UnsignedFixture.php
@@ -46,6 +46,7 @@ class UnsignedFixture extends CakeTestFixture {
'ubiginteger' => array('type' => 'biginteger', 'length' => '20', 'default' => 3, 'unsigned' => true),
'float' => array('type' => 'float', 'length' => '4'),
'ufloat' => array('type' => 'float', 'length' => '4', 'unsigned' => true),
+ 'string' => array('type' => 'string', 'length' => '4'),
'tableParameters' => array(
'engine' => 'MyISAM'
)

0 comments on commit 8bcfe45

Please sign in to comment.