/** @var DumpOutput */
public $sink;
+ /** @var XmlDumpWriter */
+ private $writer;
+
/**
- * Returns the export schema version.
+ * Returns the default export schema version, as defined by $wgXmlDumpSchemaVersion.
* @return string
*/
public static function schemaVersion() {
- return "0.10";
+ global $wgXmlDumpSchemaVersion;
+ return $wgXmlDumpSchemaVersion;
}
/**
function __construct( $db, $history = self::CURRENT, $text = self::TEXT ) {
$this->db = $db;
$this->history = $history;
- $this->writer = new XmlDumpWriter();
+ $this->writer = new XmlDumpWriter( $text, self::schemaVersion() );
$this->sink = new DumpOutput();
$this->text = $text;
}
+ /**
+ * @param string $schemaVersion which schema version the generated XML should comply to.
+ * One of the values from self::$supportedSchemas, using the XML_DUMP_SCHEMA_VERSION_XX
+ * constants.
+ */
+ public function setSchemaVersion( $schemaVersion ) {
+ $this->writer = new XmlDumpWriter( $this->text, $schemaVersion );
+ }
+
/**
* Set the DumpOutput or DumpFilter object which will receive
* various row objects and XML output for filtering. Filters
}
$revOpts = [ 'page' ];
- if ( $this->text != self::STUB ) {
- // TODO: remove the text and make XmlDumpWriter use a RevisionStore instead! (T198706)
- $revOpts[] = 'text';
- }
+
$revQuery = Revision::getQueryInfo( $revOpts );
// We want page primary rather than revision
];
unset( $join['page'] );
- // TODO: remove rev_text_id and make XmlDumpWriter use a RevisionStore instead! (T198706)
- $fields = array_merge( $revQuery['fields'], [ 'page_restrictions, rev_text_id' ] );
+ $fields = $revQuery['fields'];
+ $fields[] = 'page_restrictions';
+
+ if ( $this->text != self::STUB ) {
+ $fields['_load_content'] = '1';
+ }
$conds = [];
if ( $cond !== '' ) {
protected function outputPageStreamBatch( $results, $lastRow ) {
foreach ( $results as $row ) {
if ( $lastRow === null ||
- $lastRow->page_namespace != $row->page_namespace ||
- $lastRow->page_title != $row->page_title ) {
+ $lastRow->page_namespace !== $row->page_namespace ||
+ $lastRow->page_title !== $row->page_title ) {
if ( $lastRow !== null ) {
$output = '';
if ( $this->dumpUploads ) {