<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data SYSTEM "../../../lib/pkp/dtd/xmlData.dtd">

<!--
  * dbscripts/xml/upgrade/3.2.0_preupdate_versioning.xml
  *
  * Copyright (c) 2013-2021 Simon Fraser University
  * Copyright (c) 2003-2021 John Willinsky
  * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
  *
  * Copy submission data to temporary tables so it can be updated
  * after the publication table modifications are made.
  *
  -->

<data>
	<sql>
		<query>CREATE TABLE temp_authors AS SELECT * FROM authors</query>
		<query>CREATE TABLE temp_submissions AS SELECT * FROM submissions</query>
		<query>CREATE TABLE temp_submission_categories AS SELECT * FROM submission_categories</query>
		<query>CREATE TABLE temp_publication_formats AS SELECT * FROM publication_formats</query>
		<query>CREATE TABLE temp_submission_chapters AS SELECT * FROM submission_chapters</query>
		<query>CREATE TABLE temp_published_submissions AS SELECT * FROM published_submissions</query>
		<query>CREATE TABLE temp_citations AS SELECT * FROM citations</query>
	</sql>
	<!--
		Identify any submissions with STATUS_PUBLISHED that are missing a corresponding entry
		in the published_submissions table and reset them to STATUS_QUEUED. In the past, an
		entry in published_submissions was required before a submission would be public. Now
		it will be public if it has a status of STATUS_PUBLISHED. A submission should never
		have STATUS_PUBLISHED without a published_submissions entry, but this is a
		precautionary measure to prevent unexpectedly making a submission public if the
		status value is incorrect for any submissions.
	-->
	<sql>
		<query driver="postgres,postgres64,postgres7,postgres8,postgres9">UPDATE submissions SET status=1 FROM submissions AS s LEFT JOIN published_submissions ps ON (ps.submission_id = s.submission_id) WHERE s.submission_id = submissions.submission_id AND s.status=3 AND ps.submission_id IS NULL</query>
		<query driver="mysql,mysqli">UPDATE submissions s LEFT JOIN published_submissions ps ON (ps.submission_id = s.submission_id) SET s.status=1 WHERE s.status=3 AND ps.submission_id IS NULL</query>
	</sql>
	<!-- Modify citations table to refer to publications #5465-->
	<sql>
		<dropindex table="citations" index="citations_submission" ifexists="true" />
		<dropindex table="citations" index="citations_submission_seq" ifexists="true" />
		<rename table="citations" column="submission_id" to="publication_id" />
	</sql>
</data>
