options to insertSelect(), indenting
authorTim Starling <tstarling@users.mediawiki.org>
Sun, 12 Feb 2006 02:20:32 +0000 (02:20 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Sun, 12 Feb 2006 02:20:32 +0000 (02:20 +0000)
includes/Database.php

index b7b0a16..1dfe194 100644 (file)
@@ -1327,15 +1327,20 @@ class Database {
         * $conds may be "*" to copy the whole table
         * srcTable may be an array of tables.
         */
-       function insertSelect( $destTable, $srcTable, $varMap, $conds, $fname = 'Database::insertSelect' ) {
+       function insertSelect( $destTable, $srcTable, $varMap, $conds, $fname = 'Database::insertSelect', 
+               $options = array() ) 
+       {
                $destTable = $this->tableName( $destTable );
-                if( is_array( $srcTable ) ) {
-                        $srcTable =  implode( ',', array_map( array( &$this, 'tableName' ), $srcTable ) );
-               } else {
+               if ( is_array( $options ) ) {
+                       $options = implode( ' ', $options );
+               }
+               if( is_array( $srcTable ) ) {
+                       $srcTable =  implode( ',', array_map( array( &$this, 'tableName' ), $srcTable ) );
+               } else { 
                        $srcTable = $this->tableName( $srcTable );
                }
-               $sql = "INSERT INTO $destTable (" . implode( ',', array_keys( $varMap ) ) . ')' .
-                       ' SELECT ' . implode( ',', $varMap ) .
+               $sql = "INSERT $options INTO $destTable (" . implode( ',', array_keys( $varMap ) ) . ')' .
+                       ' SELECT ' . implode( ',', $varMap ) . 
                        " FROM $srcTable";
                if ( $conds != '*' ) {
                        $sql .= ' WHERE ' . $this->makeList( $conds, LIST_AND );