<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
    <changeSet id="2" author="npatel">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
        <![CDATA[
            USE direct_delivery;;

            DROP PROCEDURE IF EXISTS sp_set_to_encoding;;

            CREATE DEFINER=theorchard_dd@127.0.0.1 PROCEDURE sp_set_to_encoding(IN enc_server VARCHAR(100), IN p_id INT, IN eqd_id INT)
            BEGIN
                DECLARE EXIT HANDLER FOR SQLEXCEPTION
                BEGIN
                    ROLLBACK;
                    RESIGNAL;
                END;
                START TRANSACTION;
                UPDATE encoding_queue_detail eqd
                INNER JOIN encoding_queue eq ON eq.encoding_queue_id = eqd.encoding_queue_id
                    SET eqd.status = "encoding", eqd.encoding_server = enc_server, encoding_started = NOW()
                WHERE eqd.status = "ready_to_encode"
                AND eqd.encoding_queue_detail_id = eqd_id;
                IF ROW_COUNT() > 0 THEN
                    SELECT 1 AS success;
                ELSE
                    SELECT -1 AS success;
                    ROLLBACK;
                END IF;
                COMMIT;
            END;;
        ]]>
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <![CDATA[
            USE direct_delivery;;

            DROP PROCEDURE IF EXISTS sp_set_to_encoding;;

            CREATE DEFINER=theorchard_dd@127.0.0.1 PROCEDURE sp_set_to_encoding(IN enc_server VARCHAR(100), IN p_id INT, IN eqd_id INT)
            BEGIN
                DECLARE EXIT HANDLER FOR SQLEXCEPTION
                BEGIN
                    ROLLBACK;
                    RESIGNAL;
                END;
                START TRANSACTION;
                UPDATE encoding_queue_detail eqd
                INNER JOIN encoding_queue eq ON eq.encoding_queue_id = eqd.encoding_queue_id
                    SET eqd.status = "encoding", eqd.encoding_server = enc_server
                WHERE eqd.status = "ready_to_encode"
                AND eqd.encoding_queue_detail_id = eqd_id;
                IF ROW_COUNT() > 0 THEN
                    SELECT 1 AS success;
                ELSE
                    SELECT -1 AS success;
                    ROLLBACK;
                END IF;
                COMMIT;
            END;;
            ]]>
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
