[MediaWiki-commits] [Gerrit] mediawiki...Translate[master]: Add MessageIndex::getKeys()

2018-01-08 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/394960 )

Change subject: Add MessageIndex::getKeys()
..


Add MessageIndex::getKeys()

And optimize the implementation in CdbMessageIndex. Trying to fix
a timeout in Special:TranslationStash by using the optimized getKeys().

Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735
---
M messagegroups/SandboxMessageGroup.php
M utils/MessageIndex.php
2 files changed, 20 insertions(+), 9 deletions(-)

Approvals:
  jenkins-bot: Verified
  Santhosh: Looks good to me, approved



diff --git a/messagegroups/SandboxMessageGroup.php 
b/messagegroups/SandboxMessageGroup.php
index 6628128..f18fd9d 100644
--- a/messagegroups/SandboxMessageGroup.php
+++ b/messagegroups/SandboxMessageGroup.php
@@ -77,10 +77,8 @@
$list[$index] = '';
}
 
-   // Message index of all known messages
-   $mi = MessageIndex::singleton();
// Get some random keys
-   $all = array_keys( $mi->retrieve() );
+   $all = MessageIndex::singleton()->getKeys();
// In case there aren't any messages
if ( $all === [] ) {
return $list;
diff --git a/utils/MessageIndex.php b/utils/MessageIndex.php
index 3d132f9..37c91bc 100644
--- a/utils/MessageIndex.php
+++ b/utils/MessageIndex.php
@@ -126,6 +126,14 @@
 */
abstract public function retrieve( $forRebuild = false );
 
+   /**
+* @since 2018.01
+* @return string[]
+*/
+   public function getKeys() {
+   return array_keys( $this->retrieve() );
+   }
+
abstract protected function store( array $array, array $diff );
 
protected function lock() {
@@ -615,6 +623,16 @@
return $this->index;
}
 
+   $this->index = [];
+   foreach ( $this->getKeys() as $key ) {
+   $this->index[$key] = $this->unserialize( $reader->get( 
$key ) );
+   }
+
+   return $this->index;
+   }
+
+   public function getKeys() {
+   $reader = $this->getReader();
$keys = [];
while ( true ) {
$key = $keys === [] ? $reader->firstkey() : 
$reader->nextkey();
@@ -624,12 +642,7 @@
$keys[] = $key;
}
 
-   $this->index = [];
-   foreach ( $keys as $key ) {
-   $this->index[$key] = $this->unserialize( $reader->get( 
$key ) );
-   }
-
-   return $this->index;
+   return $keys;
}
 
protected function get( $key ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit 
Gerrit-Reviewer: Catrope 
Gerrit-Reviewer: KartikMistry 
Gerrit-Reviewer: Nikerabbit 
Gerrit-Reviewer: Santhosh 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki...Translate[master]: Add MessageIndex::getKeys()

2017-12-04 Thread Nikerabbit (Code Review)
Nikerabbit has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/394960 )

Change subject: Add MessageIndex::getKeys()
..

Add MessageIndex::getKeys()

And optimize the implementation in CdbMessageIndex. Trying to fix
a timeout in Special:TranslationStash by using the optimized getKeys().

Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735
---
M messagegroups/SandboxMessageGroup.php
M utils/MessageIndex.php
2 files changed, 19 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/60/394960/1

diff --git a/messagegroups/SandboxMessageGroup.php 
b/messagegroups/SandboxMessageGroup.php
index 6628128..6fcd47f 100644
--- a/messagegroups/SandboxMessageGroup.php
+++ b/messagegroups/SandboxMessageGroup.php
@@ -77,10 +77,8 @@
$list[$index] = '';
}
 
-   // Message index of all known messages
-   $mi = MessageIndex::singleton();
// Get some random keys
-   $all = array_keys( $mi->retrieve() );
+   $all = MessageIndex::singleton->getKeys();
// In case there aren't any messages
if ( $all === [] ) {
return $list;
diff --git a/utils/MessageIndex.php b/utils/MessageIndex.php
index 3d132f9..6ccbed6 100644
--- a/utils/MessageIndex.php
+++ b/utils/MessageIndex.php
@@ -126,6 +126,13 @@
 */
abstract public function retrieve( $forRebuild = false );
 
+   /**
+* @since 2018.01
+*/
+   public function getKeys() {
+   return array_keys( $this->retrieve() );
+   }
+
abstract protected function store( array $array, array $diff );
 
protected function lock() {
@@ -615,6 +622,16 @@
return $this->index;
}
 
+   $this->index = [];
+   foreach ( $this->getKeys() as $key ) {
+   $this->index[$key] = $this->unserialize( $reader->get( 
$key ) );
+   }
+
+   return $this->index;
+   }
+
+   public function getKeys() {
+   $reader = $this->getReader();
$keys = [];
while ( true ) {
$key = $keys === [] ? $reader->firstkey() : 
$reader->nextkey();
@@ -624,12 +641,7 @@
$keys[] = $key;
}
 
-   $this->index = [];
-   foreach ( $keys as $key ) {
-   $this->index[$key] = $this->unserialize( $reader->get( 
$key ) );
-   }
-
-   return $this->index;
+   return $keys;
}
 
protected function get( $key ) {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits