Yaron Koren has uploaded a new change for review.

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

Change subject: Added commas to set of field delims in regexps
......................................................................

Added commas to set of field delims in regexps

Change-Id: I90398aa98fc232c41464782cf67adbe5edc7cd37
---
M CargoUtils.php
1 file changed, 19 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Cargo 
refs/changes/64/281664/1

diff --git a/CargoUtils.php b/CargoUtils.php
index 3cc4f7a..a9e5b7a 100644
--- a/CargoUtils.php
+++ b/CargoUtils.php
@@ -287,7 +287,7 @@
         */
        public static function getSQLFieldPattern( $fieldName, $closePattern = 
true ) {
                $fieldName = str_replace( '$', '\$', $fieldName );
-               $pattern = '/([^\w$.]|^)'.$fieldName;
+               $pattern = '/([^\w$.,]|^)'.$fieldName;
                return $pattern . ( $closePattern ? '([^\w$]|$)/i' : '' );
        }
 
@@ -298,7 +298,7 @@
        public static function getSQLTableAndFieldPattern( $tableName, 
$fieldName, $closePattern = true ) {
                $fieldName = str_replace( '$', '\$', $fieldName );
                $tableName = str_replace( '$', '\$', $tableName );
-               $pattern = '/([^\w$]|^)'.$tableName.'\.'.$fieldName;
+               $pattern = '/([^\w$,]|^)'.$tableName.'\.'.$fieldName;
                return $pattern . ( $closePattern ? '([^\w$]|$)/i' : '' );
        }
 
@@ -536,11 +536,11 @@
 
                $createSQL = "CREATE TABLE " .
                        $cdb->tableName( $tableName ) . ' ( ' .
-                       "_ID $intTypeString NOT NULL UNIQUE, " .
-                       "_pageName $stringTypeString NOT NULL, " .
-                       "_pageTitle $stringTypeString NOT NULL, " .
-                       "_pageNamespace $intTypeString NOT NULL, " .
-                       "_pageID $intTypeString NOT NULL";
+                       $cdb->addIdentifierQuotes( '_ID' ) . " $intTypeString 
NOT NULL UNIQUE, " .
+                       $cdb->addIdentifierQuotes( '_pageName' ) . " 
$stringTypeString NOT NULL, " .
+                       $cdb->addIdentifierQuotes( '_pageTitle' ) . " 
$stringTypeString NOT NULL, " .
+                       $cdb->addIdentifierQuotes( '_pageNamespace' ) . " 
$intTypeString NOT NULL, " .
+                       $cdb->addIdentifierQuotes( '_pageID' ) . " 
$intTypeString NOT NULL";
 
                foreach ( $tableSchema->mFieldDescriptions as $fieldName => 
$fieldDescription ) {
                        $size = $fieldDescription->mSize;
@@ -552,7 +552,7 @@
                                // instead, we'll have one called
                                // fieldName + '__full', and a separate table
                                // for holding each value.
-                               $createSQL .= ', ' . $fieldName . '__full ';
+                               $createSQL .= ', ' . $cdb->addIdentifierQuotes( 
$fieldName . '__full' ) . ' ';
                                // The field holding the full list will always
                                // just be text
                                $createSQL .= $stringTypeString;
@@ -563,16 +563,16 @@
 
                        if ( !$isList && $fieldType == 'Coordinates' ) {
                                $floatTypeString = self::fieldTypeToSQLType( 
'Float', $dbType );
-                               $createSQL .= ', ' . $fieldName . '__lat ';
+                               $createSQL .= ', ' . $cdb->addIdentifierQuotes( 
$fieldName . '__lat' ) . ' ';
                                $createSQL .= $floatTypeString;
-                               $createSQL .= ', ' . $fieldName . '__lon ';
+                               $createSQL .= ', ' . $cdb->addIdentifierQuotes( 
$fieldName . '__lon' ) . ' ';
                                $createSQL .= $floatTypeString;
                        } elseif ( $fieldType == 'Date' || $fieldType == 
'Datetime' ) {
                                $integerTypeString = self::fieldTypeToSQLType( 
'Integer', $dbType );
-                               $createSQL .= ', ' . $fieldName . '__precision 
';
+                               $createSQL .= ", " . $cdb->addIdentifierQuotes( 
$fieldName . '__precision' ) . ' ';
                                $createSQL .= $integerTypeString;
                        } elseif ( $fieldType == 'Searchtext' ) {
-                               $createSQL .= ", FULLTEXT KEY $fieldName 
($fieldName)";
+                               $createSQL .= ", FULLTEXT KEY $fieldName (" . 
$cdb->addIdentifierQuotes( $fieldName ) . ')';
                        }
                }
                $createSQL .= ' )';
@@ -582,19 +582,19 @@
                //$cdb->ignoreErrors( false );
 
                $createIndexSQL = "CREATE INDEX page_id_$tableName ON " . 
$cdb->tableName( $tableName ) .
-                       " (_pageID)";
+                       ' (' . $cdb->addIdentifierQuotes( '_pageID' ) . ')';
                $cdb->query( $createIndexSQL );
                $createIndexSQL2 = "CREATE INDEX page_name_$tableName ON " . 
$cdb->tableName( $tableName ) .
-                       " (_pageName)";
+                       ' (' . $cdb->addIdentifierQuotes( '_pageName' ) . ')';
                $cdb->query( $createIndexSQL2 );
                $createIndexSQL3 = "CREATE INDEX page_title_$tableName ON " . 
$cdb->tableName( $tableName ) .
-                       " (_pageTitle)";
+                       ' (' . $cdb->addIdentifierQuotes( '_pageTitle' ) . ')';
                $cdb->query( $createIndexSQL3 );
                $createIndexSQL4 = "CREATE INDEX page_namespace_$tableName ON " 
. $cdb->tableName( $tableName )
-                       . " (_pageNamespace)";
+                       . ' (' . $cdb->addIdentifierQuotes( '_pageNamespace' ) 
. ')';
                $cdb->query( $createIndexSQL4 );
                $createIndexSQL5 = "CREATE UNIQUE INDEX id_$tableName ON " . 
$cdb->tableName( $tableName ) .
-                       " (_ID)";
+                       ' (' . $cdb->addIdentifierQuotes( '_ID' ) . ')';
                $cdb->query( $createIndexSQL5 );
 
                // Now also create tables for each of the 'list' fields,
@@ -624,7 +624,8 @@
                        $createSQL .= ' )';
                        $cdb->query( $createSQL );
                        $createIndexSQL = "CREATE INDEX row_id_$fieldTableName 
ON " .
-                               $cdb->tableName( $fieldTableName ) . " 
(_rowID)";
+                               $cdb->tableName( $fieldTableName ) .
+                               ' (' . $cdb->addIdentifierQuotes( '_rowID' ) . 
')';
                        $cdb->query( $createIndexSQL );
                        $fieldTableNames[] = $tableName . '__' . $fieldName;
                }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I90398aa98fc232c41464782cf67adbe5edc7cd37
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Cargo
Gerrit-Branch: master
Gerrit-Owner: Yaron Koren <[email protected]>

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

Reply via email to