Merge "Avoid postgres IDE error with doQuery() visibility"
[lhc/web/wiklou.git] / maintenance / sql.php
index afa3ef7..a7fd827 100644 (file)
@@ -32,14 +32,16 @@ require_once __DIR__ . '/Maintenance.php';
 class MwSql extends Maintenance {
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Send SQL queries to a MediaWiki database";
+               $this->mDescription = "Send SQL queries to a MediaWiki database. " .
+                               "Takes a file name containing SQL as argument or runs interactively.";
                $this->addOption( 'cluster', 'Use an external cluster by name', false, true );
                $this->addOption( 'wikidb', 'The database wiki ID to use if not the current one', false, true );
                $this->addOption( 'slave', 'Use a slave server (either "any" or by name)', false, true );
        }
 
        public function execute() {
-               $wiki = $this->getOption( 'wikidb' ) ?: false;
+               // We wan't to allow "" for the wikidb, meaning don't call select_db()
+               $wiki = $this->hasOption( 'wikidb' ) ? $this->getOption( 'wikidb' ) : false;
                // Get the appropriate load balancer (for this wiki)
                if ( $this->hasOption( 'cluster' ) ) {
                        $lb = wfGetLBFactory()->getExternalLB( $this->getOption( 'cluster' ), $wiki );
@@ -123,12 +125,12 @@ class MwSql extends Maintenance {
                        try {
                                $res = $db->query( $wholeLine );
                                $this->sqlPrintResult( $res, $db );
-                               $prompt = $newPrompt;
-                               $wholeLine = '';
                        } catch ( DBQueryError $e ) {
                                $doDie = !Maintenance::posix_isatty( 0 );
                                $this->error( $e, $doDie );
                        }
+                       $prompt = $newPrompt;
+                       $wholeLine = '';
                }
                wfWaitForSlaves();
        }