]> source.dussan.org Git - nextcloud-server.git/commitdiff
Use a different column for the primary key as we can not insert it on oracle
authorJoas Schilling <coding@schilljs.com>
Wed, 4 Nov 2020 15:02:58 +0000 (16:02 +0100)
committerJoas Schilling <coding@schilljs.com>
Thu, 12 Nov 2020 11:57:50 +0000 (12:57 +0100)
Signed-off-by: Joas Schilling <coding@schilljs.com>
tests/lib/DB/MDB2SchemaReaderTest.php
tests/lib/DB/testschema.xml

index c57b0f22b6fc39f7d8d463fdf476a553047e4cb4..b3dd98fd6b75dbf1532c4ed3b18ba62ff26dd51f 100644 (file)
@@ -14,6 +14,10 @@ use Doctrine\DBAL\Schema\Schema;
 use OC\DB\MDB2SchemaReader;
 use OCP\IConfig;
 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
@@ -51,13 +55,13 @@ class MDB2SchemaReaderTest extends TestCase {
                $this->assertCount(1, $schema->getTables());
 
                $table = $schema->getTable('test_table');
-               $this->assertCount(8, $table->getColumns());
+               $this->assertCount(9, $table->getColumns());
 
-               $this->assertEquals(4, $table->getColumn('integerfield')->getLength());
-               $this->assertTrue($table->getColumn('integerfield')->getAutoincrement());
-               $this->assertEquals(0, $table->getColumn('integerfield')->getDefault());
-               $this->assertTrue($table->getColumn('integerfield')->getNotnull());
-               $this->assertInstanceOf('Doctrine\DBAL\Types\IntegerType', $table->getColumn('integerfield')->getType());
+               $this->assertEquals(4, $table->getColumn('id')->getLength());
+               $this->assertTrue($table->getColumn('id')->getAutoincrement());
+               $this->assertEquals(0, $table->getColumn('id')->getDefault());
+               $this->assertTrue($table->getColumn('id')->getNotnull());
+               $this->assertInstanceOf(IntegerType::class, $table->getColumn('id')->getType());
 
                $this->assertSame(10, $table->getColumn('integerfield_default')->getDefault());
 
@@ -65,18 +69,19 @@ class MDB2SchemaReaderTest extends TestCase {
                $this->assertFalse($table->getColumn('textfield')->getAutoincrement());
                $this->assertSame('foo', $table->getColumn('textfield')->getDefault());
                $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->assertFalse($table->getColumn('clobfield')->getAutoincrement());
                $this->assertNull($table->getColumn('clobfield')->getDefault());
                $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->assertFalse($table->getColumn('booleanfield')->getAutoincrement());
                $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->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(2, $table->getColumn('decimalfield_precision_scale')->getScale());
 
-               $this->assertCount(2, $table->getIndexes());
-               $this->assertEquals(['integerfield'], $table->getIndex('primary')->getUnquotedColumns());
+               $this->assertCount(3, $table->getIndexes());
+               $this->assertEquals(['id'], $table->getIndex('primary')->getUnquotedColumns());
                $this->assertTrue($table->getIndex('primary')->isPrimary());
                $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->assertFalse($table->getIndex('index_boolean')->isPrimary());
                $this->assertFalse($table->getIndex('index_boolean')->isUnique());
index d42dbe8d581f7d4c6108b1150af40494760715ce..a2b01d8259e45946764a1e0c9a1a892380897eda 100644 (file)
@@ -13,7 +13,7 @@
 
                <declaration>
                        <field>
-                               <name>integerfield</name>
+                               <name>id</name>
                                <type>integer</type>
                                <default>0</default>
                                <notnull>true</notnull>
                                <length>4</length>
                                <autoincrement>1</autoincrement>
                        </field>
+                       <field>
+                               <name>integerfield</name>
+                               <type>integer</type>
+                               <default>0</default>
+                               <notnull>true</notnull>
+                               <length>4</length>
+                       </field>
                        <field>
                                <name>integerfield_default</name>
                                <type>integer</type>
                                <name>index_primary</name>
                                <primary>true</primary>
                                <unique>true</unique>
+                               <field>
+                                       <name>id</name>
+                                       <sorting>ascending</sorting>
+                               </field>
+                       </index>
+
+                       <index>
+                               <name>index_integerfield</name>
+                               <unique>true</unique>
                                <field>
                                        <name>integerfield</name>
                                        <sorting>ascending</sorting>