summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwebchick2015-02-12 19:59:22 (GMT)
committerwebchick2015-02-12 19:59:22 (GMT)
commit3227399041200044ae981581387343726aba05ea (patch)
treed2580bed5484e01b6c7d4e4760ff735d686670ec
parent7ef5165780c1f999194a7c56bf736ea0d5c778ec (diff)
Issue #2061879 by Palashvijay4O, chx: Remove Schema::copyTable
-rw-r--r--core/includes/database.inc17
-rw-r--r--core/lib/Drupal/Core/Database/Driver/fake/FakeDatabaseSchema.php7
-rw-r--r--core/lib/Drupal/Core/Database/Driver/mysql/Schema.php15
-rw-r--r--core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php10
-rw-r--r--core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php14
-rw-r--r--core/lib/Drupal/Core/Database/Schema.php18
-rw-r--r--core/modules/system/src/Tests/Database/SchemaTest.php32
7 files changed, 0 insertions, 113 deletions
diff --git a/core/includes/database.inc b/core/includes/database.inc
index ef94fdd..1abbe84 100644
--- a/core/includes/database.inc
+++ b/core/includes/database.inc
@@ -740,23 +740,6 @@ function db_rename_table($table, $new_name) {
}
/**
- * Copies the structure of a table.
- *
- * @param string $source
- * The name of the table to be copied.
- * @param string $destination
- * The name for the new table.
- *
- * @return \Drupal\Core\Database\StatementInterface
- * The result of the executed query.
- *
- * @see \Drupal\Core\Database\Schema::copyTable()
- */
-function db_copy_table_schema($source, $destination) {
- return Database::getConnection()->schema()->copyTable($source, $destination);
-}
-
-/**
* Drops a table.
*
* @param $table
diff --git a/core/lib/Drupal/Core/Database/Driver/fake/FakeDatabaseSchema.php b/core/lib/Drupal/Core/Database/Driver/fake/FakeDatabaseSchema.php
index 8d8ea09..d3e9161 100644
--- a/core/lib/Drupal/Core/Database/Driver/fake/FakeDatabaseSchema.php
+++ b/core/lib/Drupal/Core/Database/Driver/fake/FakeDatabaseSchema.php
@@ -105,13 +105,6 @@ class FakeDatabaseSchema extends Schema {
/**
* {@inheritdoc}
*/
- public function copyTable($source, $destination) {
- throw new \Exception(sprintf('Unsupported method "%s"', __METHOD__));
- }
-
- /**
- * {@inheritdoc}
- */
public function createTable($name, $table) {
#throw new \Exception(sprintf('Unsupported method "%s"', __METHOD__));
}
diff --git a/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php b/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
index 0945fd4..81b56a2 100644
--- a/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
@@ -308,21 +308,6 @@ class Schema extends DatabaseSchema {
return TRUE;
}
- /**
- * {@inheritdoc}
- */
- public function copyTable($source, $destination) {
- if (!$this->tableExists($source)) {
- throw new SchemaObjectDoesNotExistException(String::format("Cannot copy @source to @destination: table @source doesn't exist.", array('@source' => $source, '@destination' => $destination)));
- }
- if ($this->tableExists($destination)) {
- throw new SchemaObjectExistsException(String::format("Cannot copy @source to @destination: table @destination already exists.", array('@source' => $source, '@destination' => $destination)));
- }
-
- $info = $this->getPrefixInfo($destination);
- return $this->connection->query('CREATE TABLE `' . $info['table'] . '` LIKE {' . $source . '}');
- }
-
public function addField($table, $field, $spec, $keys_new = array()) {
if (!$this->tableExists($table)) {
throw new SchemaObjectDoesNotExistException(t("Cannot add field @table.@field: table doesn't exist.", array('@field' => $field, '@table' => $table)));
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
index 2190ee5..b1aa8f7 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
@@ -433,16 +433,6 @@ class Schema extends DatabaseSchema {
$this->connection->query('ALTER TABLE {' . $table . '} RENAME TO ' . $prefixInfo['table']);
}
- /**
- * {@inheritdoc}
- */
- public function copyTable($source, $destination) {
- // @TODO The server is likely going to rename indexes and constraints
- // during the copy process, and it will not match our
- // table_name + constraint name convention anymore.
- throw new \Exception('Not implemented, see https://drupal.org/node/2061879');
- }
-
public function dropTable($table) {
if (!$this->tableExists($table)) {
return FALSE;
diff --git a/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php b/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
index cb836cd..e393d15 100644
--- a/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
@@ -273,20 +273,6 @@ class Schema extends DatabaseSchema {
}
}
- /**
- * {@inheritdoc}
- */
- public function copyTable($source, $destination) {
- if (!$this->tableExists($source)) {
- throw new SchemaObjectDoesNotExistException(String::format("Cannot copy @source to @destination: table @source doesn't exist.", array('@source' => $source, '@destination' => $destination)));
- }
- if ($this->tableExists($destination)) {
- throw new SchemaObjectExistsException(String::format("Cannot copy @source to @destination: table @destination already exists.", array('@source' => $source, '@destination' => $destination)));
- }
-
- $this->createTable($destination, $this->introspectSchema($source));
- }
-
public function dropTable($table) {
if (!$this->tableExists($table)) {
return FALSE;
diff --git a/core/lib/Drupal/Core/Database/Schema.php b/core/lib/Drupal/Core/Database/Schema.php
index b588756..cae71b8 100644
--- a/core/lib/Drupal/Core/Database/Schema.php
+++ b/core/lib/Drupal/Core/Database/Schema.php
@@ -406,24 +406,6 @@ abstract class Schema implements PlaceholderInterface {
abstract public function dropTable($table);
/**
- * Copies the table schema.
- *
- * @param string $source
- * The name of the table to be used as source.
- * @param string $destination
- * The name of the table to be used as destination.
- *
- * @return \Drupal\Core\Database\StatementInterface
- * The result of the executed query.
- *
- * @throws \Drupal\Core\Database\SchemaObjectExistsException
- * Thrown when the source table does not exist.
- * @throws \Drupal\Core\Database\SchemaObjectDoesNotExistException
- * Thrown when the destination table already exists.
- */
- abstract public function copyTable($source, $destination);
-
- /**
* Add a new field to a table.
*
* @param $table
diff --git a/core/modules/system/src/Tests/Database/SchemaTest.php b/core/modules/system/src/Tests/Database/SchemaTest.php
index 9009e72..da8623d 100644
--- a/core/modules/system/src/Tests/Database/SchemaTest.php
+++ b/core/modules/system/src/Tests/Database/SchemaTest.php
@@ -91,38 +91,6 @@ class SchemaTest extends KernelTestBase {
$index_exists = Database::getConnection()->schema()->indexExists('test_table2', 'test_field');
$this->assertTrue($index_exists, 'Index was renamed.');
- // Copy the schema of the table.
- db_copy_table_schema('test_table2', 'test_table3');
-
- // Index should be copied.
- $index_exists = Database::getConnection()->schema()->indexExists('test_table3', 'test_field');
- $this->assertTrue($index_exists, 'Index was copied.');
-
- // Data should still exist on the old table but not on the new one.
- $count = db_select('test_table2')->countQuery()->execute()->fetchField();
- $this->assertEqual($count, 1, 'The old table still has its content.');
- $count = db_select('test_table3')->countQuery()->execute()->fetchField();
- $this->assertEqual($count, 0, 'The new table has no content.');
-
- // Ensure that the proper exceptions are thrown for db_copy_table_schema().
- $fail = FALSE;
- try {
- db_copy_table_schema('test_table4', 'test_table5');
- }
- catch (SchemaObjectDoesNotExistException $e) {
- $fail = TRUE;
- }
- $this->assertTrue($fail, 'Ensure that db_copy_table_schema() throws an exception when the source table does not exist.');
-
- $fail = FALSE;
- try {
- db_copy_table_schema('test_table2', 'test_table3');
- }
- catch (SchemaObjectExistsException $e) {
- $fail = TRUE;
- }
- $this->assertTrue($fail, 'Ensure that db_copy_table_schema() throws an exception when the destination table already exists.');
-
// We need the default so that we can insert after the rename.
db_field_set_default('test_table2', 'test_field', 0);
$this->assertFalse($this->tryInsert(), 'Insert into the old table failed.');