API * Extra profiling for allpages * better help output
authorYuri Astrakhan <yurik@users.mediawiki.org>
Sun, 22 Oct 2006 19:52:22 +0000 (19:52 +0000)
committerYuri Astrakhan <yurik@users.mediawiki.org>
Sun, 22 Oct 2006 19:52:22 +0000 (19:52 +0000)
includes/api/ApiBase.php
includes/api/ApiQueryAllpages.php

index 53deef3..d524f54 100644 (file)
@@ -172,11 +172,12 @@ abstract class ApiBase {
                                        $desc = implode($paramPrefix, $desc);
                                if (isset ($paramSettings[self :: PARAM_TYPE])) {
                                        $type = $paramSettings[self :: PARAM_TYPE];
-                                       if (is_array($type)) {
+                                       if (is_array($type))
                                                $desc .= $paramPrefix . 'Allowed values: ' . implode(', ', $type);
-                                       }
                                }
-
+                               if (isset ($paramSettings[self :: PARAM_ISMULTI]))
+                                       $desc .= $paramPrefix . 'Allows multiple values separated with "|"';
+                               
                                $default = is_array($paramSettings) ? (isset ($paramSettings[self :: PARAM_DFLT]) ? $paramSettings[self :: PARAM_DFLT] : null) : $paramSettings;
                                if (!is_null($default) && $default !== false)
                                        $desc .= $paramPrefix . "Default: $default";
index 9835f0b..bf51e1d 100644 (file)
@@ -47,10 +47,14 @@ class ApiQueryAllpages extends ApiQueryGeneratorBase {
        }
 
        private function run($resultPageSet = null) {
-               $limit = $from = $namespace = $filterredir = null;
-               extract($this->extractRequestParams());
 
+               wfProfileIn($this->getModuleProfileName() . '-getDB');
                $db = $this->getDB();
+               wfProfileOut($this->getModuleProfileName() . '-getDB');
+
+               wfProfileIn($this->getModuleProfileName() . '-parseParams');
+               $limit = $from = $namespace = $filterredir = null;
+               extract($this->extractRequestParams());
 
                $this->addTables('page');
                if( !$this->addWhereIf('page_is_redirect = 1', $filterredir === 'redirects'))
@@ -77,7 +81,13 @@ class ApiQueryAllpages extends ApiQueryGeneratorBase {
 
                $data = array ();
                $count = 0;
+
+               wfProfileOut($this->getModuleProfileName() . '-parseParams');
+
                $res = $this->select(__METHOD__);
+
+               wfProfileIn($this->getModuleProfileName() . '-saveResults');
+
                while ($row = $db->fetchObject($res)) {
                        if (++ $count > $limit) {
                                // We've reached the one extra which shows that there are additional pages to be had. Stop here...
@@ -104,6 +114,8 @@ class ApiQueryAllpages extends ApiQueryGeneratorBase {
                        $result->setIndexedTagName($data, 'p');
                        $result->addValue('query', $this->getModuleName(), $data);
                }
+               
+               wfProfileOut($this->getModuleProfileName() . '-saveResults');
        }
 
        protected function getAllowedParams() {