<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"
  logicalFilePath="db-changelog-000083-record-list.xml">

  <changeSet author="appian" id="tag-000082">
    <tagDatabase tag="000082"/>
  </changeSet>

  <changeSet author="appian" id="000083.1.0">
    <comment>Add record_list table</comment>
    <createTable tableName="record_list">
      <column name="id" type="${longType}" autoIncrement="${autoIncrement}">
        <constraints nullable="false" primaryKey="true"/>
      </column>
      <column name="order_idx" type="${longType}">
        <constraints nullable="false"/>
      </column>
      <column name="name" type="${shortStringType}">
        <constraints nullable="false"/>
      </column>
      <column name="description" type="${mediumStringType}"/>
      <column name="record_type_id" type="${longType}">
        <constraints nullable="false"/>
      </column>
      <column name="layout_cfg" type="${shortStringType}">
        <constraints nullable="false"/>
      </column>
      <column name="default_sort" type="${longType}">
        <constraints nullable="true"/>
      </column>
      <column name="layout_expr" type="${mediumStringType}">
        <constraints nullable="false"/>
      </column>
      <column name="user_filters_expr" type="${largeStringType}">
        <constraints nullable="false"/>
      </column>
      <column name="user_filters_id" type="${longType}">
        <constraints nullable="false"/>
      </column>
    </createTable>
    <modifySql dbms="mysql">
      <append value="${mysqlEngineSql}"/>
    </modifySql>
  </changeSet>

  <changeSet author="appian" id="000083.1.1">
    <preConditions onFail="MARK_RAN">
      <changeLogPropertyDefined property="createSequence" value="true"/>
    </preConditions>
    <createSequence sequenceName="record_list_sq"/>
  </changeSet>

  <changeSet author="appian" id="000083.1.2">
    <comment>FK from record_list.default_sort to sort_info</comment>
    <addForeignKeyConstraint constraintName="rec_list_default_sort_fk"
      baseTableName="record_list" baseColumnNames="default_sort"
      referencedTableName="sort_info" referencedColumnNames="id"/>
  </changeSet>

  <changeSet author="appian" id="000083.1.3">
    <comment>FK from record_list.user_filters_id to record_fld_cfg</comment>
    <addForeignKeyConstraint constraintName="rec_list_user_filters_id_fk"
      baseTableName="record_list" baseColumnNames="user_filters_id"
      referencedTableName="record_fld_cfg" referencedColumnNames="id"/>
  </changeSet>

  <changeSet author="appian" id="000083.1.4">
    <validCheckSum></validCheckSum>
    <preConditions onFail="MARK_RAN"><not><or><dbms type="mysql"/><dbms type="mariadb"/></or></not></preConditions>
    <createIndex indexName="rec_list_default_sort_fk_idx" tableName="record_list" unique="false">
      <column name="default_sort"/>
    </createIndex>
  </changeSet>

  <changeSet author="appian" id="000083.1.5">
    <validCheckSum></validCheckSum>
    <preConditions onFail="MARK_RAN"><not><or><dbms type="mysql"/><dbms type="mariadb"/></or></not></preConditions>
    <createIndex indexName="rec_list_user_filters_fk_idx" tableName="record_list" unique="false">
      <column name="user_filters_id"/>
    </createIndex>
  </changeSet>

</databaseChangeLog>
