mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-04-15 13:33:01 +00:00
Making sure we are not making non-uniques and non-primary keys index. Also changing basic fixture schema to make tests pass.
This commit is contained in:
parent
fb476f17cc
commit
0e9007e060
6 changed files with 35 additions and 8 deletions
cake
libs/model/datasources/dbo
tests
cases/libs/model/datasources/dbo
fixtures
|
@ -703,8 +703,8 @@ class DboMssql extends DboSource {
|
||||||
|
|
||||||
foreach ($indexes as $name => $value) {
|
foreach ($indexes as $name => $value) {
|
||||||
if ($name == 'PRIMARY') {
|
if ($name == 'PRIMARY') {
|
||||||
$out = 'PRIMARY KEY (' . $this->name($value['column']) . ')';
|
$join[] = 'PRIMARY KEY (' . $this->name($value['column']) . ')';
|
||||||
} else {
|
} else if (isset($value['unique']) && $value['unique']) {
|
||||||
$out = "ALTER TABLE {$table} ADD CONSTRAINT {$name} UNIQUE";
|
$out = "ALTER TABLE {$table} ADD CONSTRAINT {$name} UNIQUE";
|
||||||
|
|
||||||
if (is_array($value['column'])) {
|
if (is_array($value['column'])) {
|
||||||
|
@ -713,9 +713,9 @@ class DboMssql extends DboSource {
|
||||||
$value['column'] = $this->name($value['column']);
|
$value['column'] = $this->name($value['column']);
|
||||||
}
|
}
|
||||||
$out .= "({$value['column']});";
|
$out .= "({$value['column']});";
|
||||||
}
|
|
||||||
$join[] = $out;
|
$join[] = $out;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return $join;
|
return $join;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -519,6 +519,33 @@ class DboMssqlTest extends CakeTestCase {
|
||||||
$expected = '[name] varchar(255) DEFAULT \'\'';
|
$expected = '[name] varchar(255) DEFAULT \'\'';
|
||||||
$this->assertEqual($result, $expected);
|
$this->assertEqual($result, $expected);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* testBuildIndex method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @access public
|
||||||
|
*/
|
||||||
|
function testBuildIndex() {
|
||||||
|
$indexes = array(
|
||||||
|
'PRIMARY' => array('column' => 'id', 'unique' => 1),
|
||||||
|
'client_id' => array('column' => 'client_id', 'unique' => 1)
|
||||||
|
);
|
||||||
|
$result = $this->db->buildIndex($indexes, 'items');
|
||||||
|
$expected = array(
|
||||||
|
'PRIMARY KEY ([id])',
|
||||||
|
'ALTER TABLE items ADD CONSTRAINT client_id UNIQUE([client_id]);'
|
||||||
|
);
|
||||||
|
$this->assertEqual($result, $expected);
|
||||||
|
|
||||||
|
$indexes = array('client_id' => array('column' => 'client_id'));
|
||||||
|
$result = $this->db->buildIndex($indexes, 'items');
|
||||||
|
$this->assertEqual($result, array());
|
||||||
|
|
||||||
|
$indexes = array('client_id' => array('column' => array('client_id', 'period_id'), 'unique' => 1));
|
||||||
|
$result = $this->db->buildIndex($indexes, 'items');
|
||||||
|
$expected = array('ALTER TABLE items ADD CONSTRAINT client_id UNIQUE([client_id], [period_id]);');
|
||||||
|
$this->assertEqual($result, $expected);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* testUpdateAllSyntax method
|
* testUpdateAllSyntax method
|
||||||
*
|
*
|
||||||
|
|
2
cake/tests/fixtures/aco_fixture.php
vendored
2
cake/tests/fixtures/aco_fixture.php
vendored
|
@ -47,7 +47,7 @@ class AcoFixture extends CakeTestFixture {
|
||||||
var $fields = array(
|
var $fields = array(
|
||||||
'id' => array('type' => 'integer', 'key' => 'primary'),
|
'id' => array('type' => 'integer', 'key' => 'primary'),
|
||||||
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'model' => array('type' => 'string', 'default' => ''),
|
'model' => array('type' => 'string', 'null' => true),
|
||||||
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'alias' => array('type' => 'string', 'default' => ''),
|
'alias' => array('type' => 'string', 'default' => ''),
|
||||||
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
|
|
4
cake/tests/fixtures/aco_two_fixture.php
vendored
4
cake/tests/fixtures/aco_two_fixture.php
vendored
|
@ -46,8 +46,8 @@ class AcoTwoFixture extends CakeTestFixture {
|
||||||
*/
|
*/
|
||||||
var $fields = array(
|
var $fields = array(
|
||||||
'id' => array('type' => 'integer', 'key' => 'primary'),
|
'id' => array('type' => 'integer', 'key' => 'primary'),
|
||||||
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true, 'default' => 0),
|
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'model' => array('type' => 'string', 'default' => ''),
|
'model' => array('type' => 'string', 'null' => true),
|
||||||
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'alias' => array('type' => 'string', 'default' => ''),
|
'alias' => array('type' => 'string', 'default' => ''),
|
||||||
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
|
|
2
cake/tests/fixtures/aro_fixture.php
vendored
2
cake/tests/fixtures/aro_fixture.php
vendored
|
@ -47,7 +47,7 @@ class AroFixture extends CakeTestFixture {
|
||||||
var $fields = array(
|
var $fields = array(
|
||||||
'id' => array('type' => 'integer', 'key' => 'primary'),
|
'id' => array('type' => 'integer', 'key' => 'primary'),
|
||||||
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'model' => array('type' => 'string', 'default' => ''),
|
'model' => array('type' => 'string', 'null' => true),
|
||||||
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'alias' => array('type' => 'string', 'default' => ''),
|
'alias' => array('type' => 'string', 'default' => ''),
|
||||||
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
|
|
2
cake/tests/fixtures/aro_two_fixture.php
vendored
2
cake/tests/fixtures/aro_two_fixture.php
vendored
|
@ -47,7 +47,7 @@ class AroTwoFixture extends CakeTestFixture {
|
||||||
var $fields = array(
|
var $fields = array(
|
||||||
'id' => array('type' => 'integer', 'key' => 'primary'),
|
'id' => array('type' => 'integer', 'key' => 'primary'),
|
||||||
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'parent_id' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'model' => array('type' => 'string', 'default' => ''),
|
'model' => array('type' => 'string', 'null' => true),
|
||||||
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'foreign_key' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
'alias' => array('type' => 'string', 'default' => ''),
|
'alias' => array('type' => 'string', 'default' => ''),
|
||||||
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
'lft' => array('type' => 'integer', 'length' => 10, 'null' => true),
|
||||||
|
|
Loading…
Add table
Reference in a new issue