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