Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/86876


Change subject: add logic to SchemaBuilders
......................................................................

add logic to SchemaBuilders

Change-Id: Ie19cab860c47f2a3562ad9cad9a642d57a8a751e
---
M src/MySQL/MySqlSchemaSqlBuilder.php
M src/SQLite/SQLiteSchemaSqlBuilder.php
2 files changed, 26 insertions(+), 4 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseDatabase 
refs/changes/76/86876/1

diff --git a/src/MySQL/MySqlSchemaSqlBuilder.php 
b/src/MySQL/MySqlSchemaSqlBuilder.php
index 237648c..18619a4 100644
--- a/src/MySQL/MySqlSchemaSqlBuilder.php
+++ b/src/MySQL/MySqlSchemaSqlBuilder.php
@@ -2,6 +2,7 @@
 
 namespace Wikibase\Database\MySQL;
 
+use Wikibase\Database\Escaper;
 use Wikibase\Database\Schema\Definitions\FieldDefinition;
 use Wikibase\Database\Schema\SchemaModificationSqlBuilder;
 
@@ -15,6 +16,15 @@
  */
 class MySqlSchemaSqlBuilder implements SchemaModificationSqlBuilder {
 
+       protected $fieldSqlBuilder;
+
+       /**
+        * @param Escaper $fieldValueEscaper
+        */
+       public function __construct( Escaper $fieldValueEscaper ) {
+               $this->fieldSqlBuilder = new MySqlFieldSqlBuilder( 
$fieldValueEscaper );
+       }
+
        /**
         * @param string $tableName
         * @param string $fieldName
@@ -22,7 +32,8 @@
         * @return string
         */
        public function getRemoveFieldSql( $tableName, $fieldName ) {
-               // TODO
+               //TODO add unittests
+               return "ALTER TABLE {$tableName} DROP {$fieldName}";
        }
 
        /**
@@ -32,7 +43,8 @@
         * @return string
         */
        public function getAddFieldSql( $tableName, FieldDefinition $field ) {
-               // TODO
+               //TODO add unittests
+               return "ALTER TABLE {$tableName} ADD " . 
$this->fieldSqlBuilder->getFieldSQL( $field );
        }
 
        // TODO: add other methods
diff --git a/src/SQLite/SQLiteSchemaSqlBuilder.php 
b/src/SQLite/SQLiteSchemaSqlBuilder.php
index 62fe610..9965458 100644
--- a/src/SQLite/SQLiteSchemaSqlBuilder.php
+++ b/src/SQLite/SQLiteSchemaSqlBuilder.php
@@ -15,6 +15,15 @@
  */
 class SQLiteSchemaSqlBuilder implements SchemaModificationSqlBuilder {
 
+       protected $fieldSqlBuilder;
+
+       /**
+        * @param Escaper $fieldValueEscaper
+        */
+       public function __construct( Escaper $fieldValueEscaper ) {
+               $this->fieldSqlBuilder = new SQLiteFieldSqlBuilder( 
$fieldValueEscaper );
+       }
+
        /**
         * @param string $tableName
         * @param string $fieldName
@@ -22,7 +31,7 @@
         * @return string
         */
        public function getRemoveFieldSql( $tableName, $fieldName ) {
-               // TODO
+               // TODO this will need to create a new table with the new 
scheme and copy all data across
        }
 
        /**
@@ -32,7 +41,8 @@
         * @return string
         */
        public function getAddFieldSql( $tableName, FieldDefinition $field ) {
-               // TODO
+               //TODO add unittests
+               return "ALTER TABLE {$tableName} ADD COLUMN " . 
$this->fieldSqlBuilder->getFieldSQL( $field );
        }
 
        // TODO: add other methods

-- 
To view, visit https://gerrit.wikimedia.org/r/86876
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie19cab860c47f2a3562ad9cad9a642d57a8a751e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseDatabase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to