+/* ======= ua_purge.c */
+
+/* Select the first available Copy Job that must be upgraded to a Backup job when the original backup job is expired. */
+
+const char *uap_upgrade_copies_oldest_job_default =
+"CREATE TEMPORARY TABLE cpy_tmp AS "
+ "SELECT MIN(JobId) AS JobId FROM Job " /* Choose the oldest job */
+ "WHERE Type='%c' " /* JT_JOB_COPY */
+ "AND ( PriorJobId IN (%s) " /* JobId selection */
+ "OR "
+ " PriorJobId IN ( "
+ "SELECT PriorJobId "
+ "FROM Job "
+ "WHERE JobId IN (%s) " /* JobId selection */
+ " AND Type='B' "
+ ") "
+ ") "
+ "GROUP BY PriorJobId "; /* one result per copy */
+
+const char *uap_upgrade_copies_oldest_job[5] = {
+ /* Mysql */
+ uap_upgrade_copies_oldest_job_default,
+ /* Postgresql */
+ uap_upgrade_copies_oldest_job_default,
+ /* SQLite */
+ uap_upgrade_copies_oldest_job_default,
+ /* SQLite3 */
+ uap_upgrade_copies_oldest_job_default,
+ /* Ingres */
+ "DECLARE GLOBAL TEMPORARY TABLE cpy_tmp AS "
+ "SELECT MIN(JobId) AS JobId FROM Job " /* Choose the oldest job */
+ "WHERE Type='%c' " /* JT_JOB_COPY */
+ "AND ( PriorJobId IN (%s) " /* JobId selection */
+ "OR "
+ " PriorJobId IN ( "
+ "SELECT PriorJobId "
+ "FROM Job "
+ "WHERE JobId IN (%s) " /* JobId selection */
+ " AND Type='B' "
+ ") "
+ ") "
+ "GROUP BY PriorJobId " /* one result per copy */
+ "ON COMMIT PRESERVE ROWS WITH NORECOVERY"
+};
+