* @file
* @ingroup Database
*/
+namespace Wikimedia\Rdbms;
+
+use Exception;
+use RuntimeException;
+use DBUnexpectedError;
/**
* Advanced database interface for IDatabase handles that include maintenance methods
* on object's error ignore settings).
*
* @param string $filename File name to open
- * @param bool|callable $lineCallback Optional function called before reading each line
- * @param bool|callable $resultCallback Optional function called for each MySQL result
+ * @param callable|null $lineCallback Optional function called before reading each line
+ * @param callable|null $resultCallback Optional function called for each MySQL result
* @param bool|string $fname Calling function name or false if name should be
* generated dynamically using $filename
- * @param bool|callable $inputCallback Optional function called for each
+ * @param callable|null $inputCallback Optional function called for each
* complete line sent
* @return bool|string
* @throws Exception
*/
public function sourceFile(
$filename,
- $lineCallback = false,
- $resultCallback = false,
+ callable $lineCallback = null,
+ callable $resultCallback = null,
$fname = false,
- $inputCallback = false
+ callable $inputCallback = null
);
/**
* on object's error ignore settings).
*
* @param resource $fp File handle
- * @param bool|callable $lineCallback Optional function called before reading each query
- * @param bool|callable $resultCallback Optional function called for each MySQL result
+ * @param callable|null $lineCallback Optional function called before reading each query
+ * @param callable|null $resultCallback Optional function called for each MySQL result
* @param string $fname Calling function name
- * @param bool|callable $inputCallback Optional function called for each complete query sent
+ * @param callable|null $inputCallback Optional function called for each complete query sent
* @return bool|string
*/
public function sourceStream(
$fp,
- $lineCallback = false,
- $resultCallback = false,
+ callable $lineCallback = null,
+ callable $resultCallback = null,
$fname = __METHOD__,
- $inputCallback = false
+ callable $inputCallback = null
);
/**
* @return array
*/
public function listViews( $prefix = null, $fname = __METHOD__ );
+
+ /**
+ * Creates a new table with structure copied from existing table
+ *
+ * Note that unlike most database abstraction functions, this function does not
+ * automatically append database prefix, because it works at a lower abstraction level.
+ * The table names passed to this function shall not be quoted (this function calls
+ * addIdentifierQuotes() when needed).
+ *
+ * @param string $oldName Name of table whose structure should be copied
+ * @param string $newName Name of table to be created
+ * @param bool $temporary Whether the new table should be temporary
+ * @param string $fname Calling function name
+ * @return bool True if operation was successful
+ * @throws RuntimeException
+ */
+ public function duplicateTableStructure(
+ $oldName, $newName, $temporary = false, $fname = __METHOD__
+ );
}
+
+class_alias( 'Wikimedia\Rdbms\IMaintainableDatabase', 'IMaintainableDatabase' );