Use a different column for the primary key as we can not insert it on oracle

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2020-11-04 16:02:58 +01:00
parent a35b0956f1
commit f58ffadb34
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
2 changed files with 36 additions and 12 deletions

View File

@ -14,6 +14,10 @@ use Doctrine\DBAL\Schema\Schema;
use OC\DB\MDB2SchemaReader; use OC\DB\MDB2SchemaReader;
use OCP\IConfig; use OCP\IConfig;
use Test\TestCase; use Test\TestCase;
use Doctrine\DBAL\Types\IntegerType;
use Doctrine\DBAL\Types\TextType;
use Doctrine\DBAL\Types\StringType;
use Doctrine\DBAL\Types\BooleanType;
/** /**
* Class MDB2SchemaReaderTest * Class MDB2SchemaReaderTest
@ -51,13 +55,13 @@ class MDB2SchemaReaderTest extends TestCase {
$this->assertCount(1, $schema->getTables()); $this->assertCount(1, $schema->getTables());
$table = $schema->getTable('test_table'); $table = $schema->getTable('test_table');
$this->assertCount(8, $table->getColumns()); $this->assertCount(9, $table->getColumns());
$this->assertEquals(4, $table->getColumn('integerfield')->getLength()); $this->assertEquals(4, $table->getColumn('id')->getLength());
$this->assertTrue($table->getColumn('integerfield')->getAutoincrement()); $this->assertTrue($table->getColumn('id')->getAutoincrement());
$this->assertEquals(0, $table->getColumn('integerfield')->getDefault()); $this->assertEquals(0, $table->getColumn('id')->getDefault());
$this->assertTrue($table->getColumn('integerfield')->getNotnull()); $this->assertTrue($table->getColumn('id')->getNotnull());
$this->assertInstanceOf('Doctrine\DBAL\Types\IntegerType', $table->getColumn('integerfield')->getType()); $this->assertInstanceOf(IntegerType::class, $table->getColumn('id')->getType());
$this->assertSame(10, $table->getColumn('integerfield_default')->getDefault()); $this->assertSame(10, $table->getColumn('integerfield_default')->getDefault());
@ -65,18 +69,19 @@ class MDB2SchemaReaderTest extends TestCase {
$this->assertFalse($table->getColumn('textfield')->getAutoincrement()); $this->assertFalse($table->getColumn('textfield')->getAutoincrement());
$this->assertSame('foo', $table->getColumn('textfield')->getDefault()); $this->assertSame('foo', $table->getColumn('textfield')->getDefault());
$this->assertTrue($table->getColumn('textfield')->getNotnull()); $this->assertTrue($table->getColumn('textfield')->getNotnull());
$this->assertInstanceOf('Doctrine\DBAL\Types\StringType', $table->getColumn('textfield')->getType()); $this->assertInstanceOf(StringType::class, $table->getColumn('textfield')->getType());
$this->assertNull($table->getColumn('clobfield')->getLength()); $this->assertNull($table->getColumn('clobfield')->getLength());
$this->assertFalse($table->getColumn('clobfield')->getAutoincrement()); $this->assertFalse($table->getColumn('clobfield')->getAutoincrement());
$this->assertNull($table->getColumn('clobfield')->getDefault()); $this->assertNull($table->getColumn('clobfield')->getDefault());
$this->assertFalse($table->getColumn('clobfield')->getNotnull()); $this->assertFalse($table->getColumn('clobfield')->getNotnull());
$this->assertInstanceOf('Doctrine\DBAL\Types\TextType', $table->getColumn('clobfield')->getType()); $this->assertInstanceOf(StringType::class, $table->getColumn('clobfield')->getType());
// $this->assertInstanceOf(TextType::class, $table->getColumn('clobfield')->getType());
$this->assertNull($table->getColumn('booleanfield')->getLength()); $this->assertNull($table->getColumn('booleanfield')->getLength());
$this->assertFalse($table->getColumn('booleanfield')->getAutoincrement()); $this->assertFalse($table->getColumn('booleanfield')->getAutoincrement());
$this->assertNull($table->getColumn('booleanfield')->getDefault()); $this->assertNull($table->getColumn('booleanfield')->getDefault());
$this->assertInstanceOf('Doctrine\DBAL\Types\BooleanType', $table->getColumn('booleanfield')->getType()); $this->assertInstanceOf(BooleanType::class, $table->getColumn('booleanfield')->getType());
$this->assertTrue($table->getColumn('booleanfield_true')->getDefault()); $this->assertTrue($table->getColumn('booleanfield_true')->getDefault());
$this->assertFalse($table->getColumn('booleanfield_false')->getDefault()); $this->assertFalse($table->getColumn('booleanfield_false')->getDefault());
@ -84,10 +89,13 @@ class MDB2SchemaReaderTest extends TestCase {
$this->assertEquals(12, $table->getColumn('decimalfield_precision_scale')->getPrecision()); $this->assertEquals(12, $table->getColumn('decimalfield_precision_scale')->getPrecision());
$this->assertEquals(2, $table->getColumn('decimalfield_precision_scale')->getScale()); $this->assertEquals(2, $table->getColumn('decimalfield_precision_scale')->getScale());
$this->assertCount(2, $table->getIndexes()); $this->assertCount(3, $table->getIndexes());
$this->assertEquals(['integerfield'], $table->getIndex('primary')->getUnquotedColumns()); $this->assertEquals(['id'], $table->getIndex('primary')->getUnquotedColumns());
$this->assertTrue($table->getIndex('primary')->isPrimary()); $this->assertTrue($table->getIndex('primary')->isPrimary());
$this->assertTrue($table->getIndex('primary')->isUnique()); $this->assertTrue($table->getIndex('primary')->isUnique());
$this->assertEquals(['integerfield'], $table->getIndex('index_integerfield')->getUnquotedColumns());
$this->assertFalse($table->getIndex('index_integerfield')->isPrimary());
$this->assertTrue($table->getIndex('index_integerfield')->isUnique());
$this->assertEquals(['booleanfield'], $table->getIndex('index_boolean')->getUnquotedColumns()); $this->assertEquals(['booleanfield'], $table->getIndex('index_boolean')->getUnquotedColumns());
$this->assertFalse($table->getIndex('index_boolean')->isPrimary()); $this->assertFalse($table->getIndex('index_boolean')->isPrimary());
$this->assertFalse($table->getIndex('index_boolean')->isUnique()); $this->assertFalse($table->getIndex('index_boolean')->isUnique());

View File

@ -13,7 +13,7 @@
<declaration> <declaration>
<field> <field>
<name>integerfield</name> <name>id</name>
<type>integer</type> <type>integer</type>
<default>0</default> <default>0</default>
<notnull>true</notnull> <notnull>true</notnull>
@ -21,6 +21,13 @@
<length>4</length> <length>4</length>
<autoincrement>1</autoincrement> <autoincrement>1</autoincrement>
</field> </field>
<field>
<name>integerfield</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<length>4</length>
</field>
<field> <field>
<name>integerfield_default</name> <name>integerfield_default</name>
<type>integer</type> <type>integer</type>
@ -64,6 +71,15 @@
<name>index_primary</name> <name>index_primary</name>
<primary>true</primary> <primary>true</primary>
<unique>true</unique> <unique>true</unique>
<field>
<name>id</name>
<sorting>ascending</sorting>
</field>
</index>
<index>
<name>index_integerfield</name>
<unique>true</unique>
<field> <field>
<name>integerfield</name> <name>integerfield</name>
<sorting>ascending</sorting> <sorting>ascending</sorting>