summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2013-03-17 17:00:07 +0100
committerBart Visscher <bartv@thisnet.nl>2013-03-17 17:00:07 +0100
commit947e03aab51493a860778a541b31f991006bf6ff (patch)
tree623fd445c555756adad04a0a06f76981132c244e
parent2866376f344b83d3aa6f1692b571a359c880909d (diff)
downloadnextcloud-server-947e03aab51493a860778a541b31f991006bf6ff.tar.gz
nextcloud-server-947e03aab51493a860778a541b31f991006bf6ff.zip
Quote index columns that need it
-rw-r--r--lib/db/mdb2schemareader.php8
-rw-r--r--lib/db/schema.php6
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/db/mdb2schemareader.php b/lib/db/mdb2schemareader.php
index 1d71af1700c..827323a5512 100644
--- a/lib/db/mdb2schemareader.php
+++ b/lib/db/mdb2schemareader.php
@@ -9,10 +9,12 @@
class OC_DB_MDB2SchemaReader {
static protected $DBNAME;
static protected $DBTABLEPREFIX;
+ static protected $platform;
- public static function loadSchemaFromFile($file) {
+ public static function loadSchemaFromFile($file, $platform) {
self::$DBNAME = OC_Config::getValue( "dbname", "owncloud" );
self::$DBTABLEPREFIX = OC_Config::getValue( "dbtableprefix", "oc_" );
+ self::$platform = $platform;
$schema = new \Doctrine\DBAL\Schema\Schema();
$xml = simplexml_load_file($file);
foreach($xml->children() as $child) {
@@ -173,6 +175,10 @@ class OC_DB_MDB2SchemaReader {
switch($field->getName()) {
case 'name':
$field_name = (string)$field;
+ $keywords = self::$platform->getReservedKeywordsList();
+ if ($keywords->isKeyword($field_name)) {
+ $field_name = self::$platform->quoteIdentifier($field_name);
+ }
$fields[] = $field_name;
break;
case 'sorting':
diff --git a/lib/db/schema.php b/lib/db/schema.php
index cd356e7ff83..7a1ec204044 100644
--- a/lib/db/schema.php
+++ b/lib/db/schema.php
@@ -32,7 +32,7 @@ class OC_DB_Schema {
* TODO: write more documentation
*/
public static function createDbFromStructure( $conn, $file ) {
- $toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file);
+ $toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file, $conn->getDatabasePlatform());
return self::executeSchemaChange($conn, $toSchema);
}
@@ -45,7 +45,7 @@ class OC_DB_Schema {
$sm = $conn->getSchemaManager();
$fromSchema = $sm->createSchema();
- $toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file);
+ $toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file, $conn->getDatabasePlatform());
// remove tables we don't know about
foreach($fromSchema->getTables() as $table) {
@@ -84,7 +84,7 @@ class OC_DB_Schema {
* @param string $file the xml file describing the tables
*/
public static function removeDBStructure($conn, $file) {
- $fromSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file);
+ $fromSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file, $conn->getDatabasePlatform());
$toSchema = clone $fromSchema;
foreach($toSchema->getTables() as $table) {
$toSchema->dropTable($table->getName());