Kipcool has uploaded a new change for review.
https://gerrit.wikimedia.org/r/66093
Change subject: coding conventions (sql queries)
......................................................................
coding conventions (sql queries)
Change-Id: Iaf1fd195267c819b5a23f152f96e48f6c951f548
---
M OmegaWiki/OmegaWikiRecordSets.php
1 file changed, 77 insertions(+), 66 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikiLexicalData
refs/changes/93/66093/1
diff --git a/OmegaWiki/OmegaWikiRecordSets.php
b/OmegaWiki/OmegaWikiRecordSets.php
index cd65588..cbc4030 100644
--- a/OmegaWiki/OmegaWikiRecordSets.php
+++ b/OmegaWiki/OmegaWikiRecordSets.php
@@ -11,77 +11,88 @@
function getSynonymSQLForLanguage( $languageId, array &$definedMeaningIds ) {
$dc = wdGetDataSetContext();
-
- # Query building
- $frontQuery = "SELECT {$dc}_defined_meaning.defined_meaning_id AS
defined_meaning_id, {$dc}_expression.spelling AS label " .
- " FROM {$dc}_defined_meaning, {$dc}_syntrans, {$dc}_expression
" .
- " WHERE {$dc}_syntrans.remove_transaction_id IS NULL " .
- " AND {$dc}_expression.remove_transaction_id IS NULL " .
- " AND {$dc}_defined_meaning.remove_transaction_id IS NULL " .
- " AND {$dc}_expression.language_id=" . $languageId .
- " AND
{$dc}_expression.expression_id={$dc}_syntrans.expression_id " .
- " AND
{$dc}_defined_meaning.defined_meaning_id={$dc}_syntrans.defined_meaning_id " .
- " AND {$dc}_syntrans.identical_meaning=1 " .
- " AND {$dc}_defined_meaning.defined_meaning_id = ";
+ $dbr = wfGetDB( DB_SLAVE );
- # Build atomic queries
- $definedMeaningIdsCopy = $definedMeaningIds;
- foreach ( $definedMeaningIdsCopy as &$value ) {
- $value = $frontQuery . $value;
- }
- unset( $value );
- # Union of the atoms
- return implode( ' UNION ', $definedMeaningIdsCopy );
+ $sqlQuery = $dbr->selectSQLText(
+ array(
+ 'dm' => "{$dc}_defined_meaning",
+ 'synt' => "{$dc}_syntrans",
+ 'exp' => "{$dc}_expression"
+ ), array( /* fields to select */
+ 'defined_meaning_id' => "dm.defined_meaning_id",
+ 'label' => "exp.spelling"
+ ), array( /* where */
+ 'dm.defined_meaning_id' => $definedMeaningIds,
+ 'exp.language_id' => $languageId,
+ 'synt.identical_meaning' => 1,
+ 'synt.remove_transaction_id' => null,
+ 'exp.remove_transaction_id' => null,
+ 'dm.remove_transaction_id' => null,
+ 'exp.expression_id = synt.expression_id',
+ 'dm.defined_meaning_id = synt.defined_meaning_id'
+ ), __METHOD__
+ );
+
+ return $sqlQuery;
}
function getSynonymSQLForAnyLanguage( array &$definedMeaningIds ) {
$dc = wdGetDataSetContext();
+ $dbr = wfGetDB( DB_SLAVE );
- # Query building
- $frontQuery = "SELECT {$dc}_defined_meaning.defined_meaning_id AS
defined_meaning_id, {$dc}_expression.spelling AS label " .
- " FROM {$dc}_defined_meaning, {$dc}_syntrans, {$dc}_expression
" .
- " WHERE {$dc}_syntrans.remove_transaction_id IS NULL " .
- " AND {$dc}_expression.remove_transaction_id IS NULL " .
- " AND {$dc}_defined_meaning.remove_transaction_id IS NULL" .
- " AND
{$dc}_expression.expression_id={$dc}_syntrans.expression_id " .
- " AND
{$dc}_defined_meaning.defined_meaning_id={$dc}_syntrans.defined_meaning_id " .
- " AND {$dc}_syntrans.identical_meaning=1 " .
- " AND {$dc}_defined_meaning.defined_meaning_id = ";
+ $sqlQuery = $dbr->selectSQLText(
+ array(
+ 'dm' => "{$dc}_defined_meaning",
+ 'synt' => "{$dc}_syntrans",
+ 'exp' => "{$dc}_expression"
+ ), array( /* fields to select */
+ 'defined_meaning_id' => "dm.defined_meaning_id",
+ 'label' => "exp.spelling"
+ ), array( /* where */
+ 'dm.defined_meaning_id' => $definedMeaningIds,
+ 'synt.identical_meaning' => 1,
+ 'synt.remove_transaction_id' => null,
+ 'exp.remove_transaction_id' => null,
+ 'dm.remove_transaction_id' => null,
+ 'exp.expression_id = synt.expression_id',
+ 'dm.defined_meaning_id = synt.defined_meaning_id'
+ ), __METHOD__
+ );
- # Build atomic queries
- $definedMeaningIdsCopy = $definedMeaningIds;
- foreach ( $definedMeaningIdsCopy as &$value ) {
- $value = $frontQuery . $value;
- }
- unset( $value );
- # Union of the atoms
- return implode( ' UNION ', $definedMeaningIdsCopy );
+ return $sqlQuery;
}
+/**
+ * returns the id and spelling of the "Defining expression"s,
+ * corresponding to the dm_id in $definedMeaningIds
+ * the defining expression is {$dc}_defined_meaning.expression_id
+ */
function getDefiningSQLForLanguage( $languageId, array &$definedMeaningIds ) {
$dc = wdGetDataSetContext();
+ $dbr = wfGetDB( DB_SLAVE );
- # Query building
- $frontQuery = "SELECT {$dc}_defined_meaning.defined_meaning_id AS
defined_meaning_id, {$dc}_expression.spelling AS label " .
- " FROM {$dc}_defined_meaning, {$dc}_syntrans, {$dc}_expression
" .
- " WHERE {$dc}_syntrans.remove_transaction_id IS NULL " .
- " AND {$dc}_expression.remove_transaction_id IS NULL " .
- " AND {$dc}_defined_meaning.remove_transaction_id IS NULL " .
- " AND
{$dc}_expression.expression_id={$dc}_syntrans.expression_id " .
- " AND
{$dc}_defined_meaning.defined_meaning_id={$dc}_syntrans.defined_meaning_id " .
- " AND {$dc}_syntrans.identical_meaning=1 " .
- " AND
{$dc}_defined_meaning.expression_id={$dc}_expression.expression_id " .
- " AND {$dc}_expression.language_id=" . $languageId .
- " AND {$dc}_defined_meaning.defined_meaning_id = ";
+ $sqlQuery = $dbr->selectSQLText(
+ array(
+ 'dm' => "{$dc}_defined_meaning",
+ 'synt' => "{$dc}_syntrans",
+ 'exp' => "{$dc}_expression"
+ ), array( /* fields to select */
+ 'defined_meaning_id' => "dm.defined_meaning_id",
+ 'label' => "exp.spelling"
+ ), array( /* where */
+ 'dm.defined_meaning_id' => $definedMeaningIds,
+ 'exp.language_id' => $languageId,
+ 'exp.expression_id = dm.expression_id', // getting
defining expression
+ 'synt.identical_meaning' => 1,
+ 'synt.remove_transaction_id' => null,
+ 'exp.remove_transaction_id' => null,
+ 'dm.remove_transaction_id' => null,
+ 'exp.expression_id = synt.expression_id',
+ 'dm.defined_meaning_id = synt.defined_meaning_id'
+ ), __METHOD__
+ );
- # Build atomic queries
- $definedMeaningIdsCopy = $definedMeaningIds;
- foreach ( $definedMeaningIdsCopy as &$value ) {
- $value = $frontQuery . $value;
- }
- unset( $value );
- # Union of the atoms
- return implode( ' UNION ', $definedMeaningIdsCopy );
+ return $sqlQuery;
}
@@ -95,7 +106,7 @@
$dbr = wfGetDB( DB_SLAVE );
$queryResult = $dbr->query( $sql );
- while ( $row = $dbr->fetchObject( $queryResult ) ) {
+ foreach ( $queryResult as $row ) {
$definedMeaningId = $row->defined_meaning_id;
$specificStructure = clone $o->definedMeaningReferenceStructure;
@@ -137,7 +148,7 @@
$queryResult = $dbr->query( $finalQuery );
- while ( $row = $dbr->fetchObject( $queryResult ) ) {
+ foreach ( $queryResult as $row ) {
if ( isset(
$definedMeaningReferenceRecords[$row->defined_meaning_id] ) ) {
$definedMeaningReferenceRecord =
$definedMeaningReferenceRecords[$row->defined_meaning_id];
} else {
@@ -251,7 +262,7 @@
$structure = new Structure( WLD_SYNONYMS_TRANSLATIONS, $o->syntransId,
$o->spelling );
$structure->setStructureType( $usedAs );
- while ( $row = $dbr->fetchObject( $queryResult ) ) {
+ foreach ( $queryResult as $row ) {
$record = new ArrayRecord( $structure );
$syntransId = $row->syntrans_sid;
$record->syntransId = $syntransId;
@@ -317,7 +328,7 @@
$result = array();
- while ( $row = $dbr->fetchObject( $queryResult ) ) {
+ foreach ( $queryResult as $row ) {
$result[$row->expression_id] = $row->spelling;
}
return $result;
@@ -363,7 +374,7 @@
$result = array();
- while ( $row = $dbr->fetchObject( $queryResult ) ) {
+ foreach ( $queryResult as $row ) {
$result[$row->text_id] = $row->text_text;
}
return $result;
@@ -410,7 +421,7 @@
" AND {$dc}_syntrans.remove_transaction_id IS NULL "
);
- while ( $syntrans = $dbr->fetchObject( $queryResult ) ) {
+ foreach ( $queryResult as $syntrans ) {
$definedMeaningId = $syntrans->defined_meaning_id;
$syntransId = $syntrans->syntrans_sid;
$dmModelParams = array( "viewinformation" => $viewInformation,
"syntransid" => $syntransId );
@@ -617,9 +628,9 @@
if ( in_array( $record->getAttributeValue( $attributeAttribute
)->definedMeaningId, $attributeIds ) ) {
$result->add( $record );
$sourceRecordSet->remove( $i );
- }
- else
+ } else {
$i++;
+ }
}
return $result;
--
To view, visit https://gerrit.wikimedia.org/r/66093
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iaf1fd195267c819b5a23f152f96e48f6c951f548
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikiLexicalData
Gerrit-Branch: master
Gerrit-Owner: Kipcool <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits