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

<!--
  * 2.2.1_usersettings.xml
  *
  * Copyright (c) 2013-2016 Simon Fraser University Library
  * Copyright (c) 2003-2016 John Willinsky
  * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
  *
  * 2.2.1 database updates XML file (run before schema is reconciled).
  *
  -->
<data>
	<!-- Bug #3607: User settings primary key needs to include journal id -->
	<sql>
		<!-- Syntax for MySQL. -->
		<query driver="mysql">
			UPDATE user_settings SET journal_id = 0 WHERE journal_id IS NULL
		</query>
		<query driver="mysql">
			ALTER TABLE user_settings CHANGE COLUMN journal_id journal_id BIGINT NOT NULL DEFAULT 0
		</query>
		<query driver="mysql">
			ALTER TABLE user_settings DROP INDEX user_settings_pkey, ADD INDEX user_settings_pkey (user_id, locale, setting_name, journal_id) 
		</query>

		<!-- Syntax for PostgreSQL. -->
		<query driver="postgres7">
			UPDATE user_settings SET journal_id = 0 WHERE journal_id IS NULL
		</query>
		<query driver="postgres7">
			ALTER TABLE user_settings ALTER COLUMN journal_id SET NOT NULL
		</query>
		<query driver="postgres7">
			ALTER TABLE user_settings ALTER COLUMN journal_id SET DEFAULT 0 
		</query>
		<query driver="postgres7">
			DROP INDEX user_settings_pkey
		</query>
		<query driver="postgres7">
			CREATE UNIQUE INDEX user_settings_pkey ON user_settings (user_id, locale, setting_name, journal_id)
		</query>
	</sql>
</data>
