<commit_before><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE doc [
<!ENTITY SIZE "5k">
<!ENTITY dependencies SYSTEM "./dependencies.xml">
<!ENTITY configuration SYSTEM "configuration.xml">
]>
<task>
    <source>
        <type>DBMS</type>
        <access-configuration>
            <driver>org.postgresql.Driver</driver>
            <uri>jdbc:postgresql:bart_customers_&SIZE;</uri>
            <schema>source</schema>
            <login>pguser</login>
            <password><PASSWORD>>
        </access-configuration>
        <import createTables="true">
            <input table="consttablecf1" type="xml">xml/consttablecf1.xml</input>
            <input table="masterdata" type="xml">xml/&SIZE;_master.xml</input>
        </import>
    </source>
    <target> 
        <type>DBMS</type>
        <access-configuration>
            <driver>org.postgresql.Driver</driver>
            <uri>jdbc:postgresql:bart_customers_&SIZE;</uri>
            <schema>target</schema>
            <login>pguser</login>
            <password><PASSWORD></password>
        </access-configuration>
        <import createTables="true">
            <input table="customers" type="xml">xml/&SIZE;_customers.xml</input>
            <input table="treatments" type="xml">xml/&SIZE;_treatments.xml</input>
        </import>
    </target>
    <dependencies>
<![CDATA[
DCs:
//MasterData: CUST[SSN,PHONE],MD[SSN,PHONE] -> NAME,STREET,CITY
md1: customers(ssn: $ssn1, name: $name1, phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
masterdata(ssn: $ssn2, name: $name2, phone: $phone2, str: $str2, city: $city2), 
    $ssn1 == $ssn2, $phone1 == $phone2, $name1 != $name2 -> #fail.
md2: customers( ssn: $ssn1, name: $name1, phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
masterdata(ssn: $ssn2, name: $name2, phone: $phone2, str: $str2, city: $city2), 
  $ssn1 == $ssn2, $phone1 == $phone2, $str1 != $str2 -> #fail.
md3: customers( ssn: $ssn1, name: $name1, phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
masterdata(ssn: $ssn2, name: $name2, phone: $phone2, str: $str2, city: $city2), 
  $ssn1 == $ssn2, $phone1 == $phone2, $city1 != $city2 -> #fail.

//CFD: INSUR[Abx] -> TREAT[Dental]
cfd1: treatments(ssn: $ssn1, salary: $salary1, insurance: $insur1, treatment: $treat1, date: $date1),
  consttablecf1(insurance: $insur2, treatment: $treat2), 
  $insur1 == $insur2, $treat1 != $treat2 -> #fail.

//FD: SSN,NAME -> PHONE 
fd1: customers(ssn: $ssn1, name: $name1,  phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
customers(ssn: $ssn2, name: $name2,  phone: $phone2, cfphone: $cfphone2, str: $str2, city: $city2, cc: $cc2),
    $ssn1 == $ssn2, $name1 == $name2, $phone1 != $phone2 -> #fail.

//FD: SSN,NAME -> CC 
fd3: customers(ssn: $ssn1, name: $name1,  phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
customers(ssn: $ssn2, name: $name2,  phone: $phone2, cfphone: $cfphone2, str: $str2, city: $city2, cc: $cc2),
    $ssn1 == $ssn2, $name1 == $name2, $cc1 != $cc2 -> #fail.

//Currency
//FD: SSN -> SALARY 
fd2: treatments(ssn: $ssn1, salary: $salary1, insurance: $insur1, treatment: $treat1, date: $date1),
    treatments(ssn: $ssn2, salary: $salary2, insurance: $insur2, treatment: $treat2, date: $date2),
    $ssn1 == $ssn2, $salary1 != $salary2 -> #fail.
]]>
    </dependencies>
    <authoritativeSources>
        <source>md</source>
        <source>consttablecf1</source>
    </authoritativeSources>

    <!-- ****************************************************
         CONFIGURATION
    **************************************************** -->
    <configuration>
        <printLog>false</printLog>
        <!-- To load DB only the first time and then generate a copy with changes -->
        <recreateDBOnStart>false</recreateDBOnStart>
        <applyCellChanges>true</applyCellChanges>
        <cloneTargetSchema>true</cloneTargetSchema>

        <!-- To load DB every time on start and then apply changes without copying -->
        <!--
        <recreateDBOnStart>false</recreateDBOnStart>
        <applyCellChanges>true</applyCellChanges>
        <cloneTargetSchema>true</cloneTargetSchema>
        -->

        <!-- To generate all possible changes (default = false - slow, only for toy examples)-->
        <!--<generateAllChanges>true</generateAllChanges>-->

        <!-- Avoid interactions among changes. (default = true) -->
        <!--<avoidInteractions>false</avoidInteractions>-->

        <!-- Error percentages for dependencies and comparisons 
        All percentages are wrt table sizes (# tuples) -->
        <dirtyStrategies>
            <defaultStrategy>
                <strategy chars="*" charsToAdd="3">TypoAddString</strategy>
            </defaultStrategy> <!-- % Add string -->
            <attributeStrategy>
                <attribute table="customers" name="ssn">
                    <strategy>TypoRandom</strategy>
                </attribute>
                <attribute table="customers" name="name">
                    <strategy charsToRemove="3">TypoActiveDomain</strategy>
                </attribute>
                <attribute table="customers" name="city">
                    <strategy charsToSwitch="3">TypoSwitchValue</strategy>
                </attribute>
            </attributeStrategy>
        </dirtyStrategies>
        <errorPercentages><commit_msg>Introduced a new strategy for typo: TypoActiveDomain<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE doc [
<!ENTITY SIZE "5k">
<!ENTITY dependencies SYSTEM "./dependencies.xml">
<!ENTITY configuration SYSTEM "configuration.xml">
]>
<task>
    <source>
        <type>DBMS</type>
        <access-configuration>
            <driver>org.postgresql.Driver</driver>
            <uri>jdbc:postgresql:bart_customers_&SIZE;</uri>
            <schema>source</schema>
            <login>pguser</login>
            <password><PASSWORD>>
        </access-configuration>
        <import createTables="true">
            <input table="consttablecf1" type="xml">xml/consttablecf1.xml</input>
            <input table="masterdata" type="xml">xml/&SIZE;_master.xml</input>
        </import>
    </source>
    <target> 
        <type>DBMS</type>
        <access-configuration>
            <driver>org.postgresql.Driver</driver>
            <uri>jdbc:postgresql:bart_customers_&SIZE;</uri>
            <schema>target</schema>
            <login>pguser</login>
            <password><PASSWORD></password>
        </access-configuration>
        <import createTables="true">
            <input table="customers" type="xml">xml/&SIZE;_customers.xml</input>
            <input table="treatments" type="xml">xml/&SIZE;_treatments.xml</input>
        </import>
    </target>
    <dependencies>
<![CDATA[
DCs:
//MasterData: CUST[SSN,PHONE],MD[SSN,PHONE] -> NAME,STREET,CITY
md1: customers(ssn: $ssn1, name: $name1, phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
masterdata(ssn: $ssn2, name: $name2, phone: $phone2, str: $str2, city: $city2), 
    $ssn1 == $ssn2, $phone1 == $phone2, $name1 != $name2 -> #fail.
md2: customers( ssn: $ssn1, name: $name1, phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
masterdata(ssn: $ssn2, name: $name2, phone: $phone2, str: $str2, city: $city2), 
  $ssn1 == $ssn2, $phone1 == $phone2, $str1 != $str2 -> #fail.
md3: customers( ssn: $ssn1, name: $name1, phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
masterdata(ssn: $ssn2, name: $name2, phone: $phone2, str: $str2, city: $city2), 
  $ssn1 == $ssn2, $phone1 == $phone2, $city1 != $city2 -> #fail.

//CFD: INSUR[Abx] -> TREAT[Dental]
cfd1: treatments(ssn: $ssn1, salary: $salary1, insurance: $insur1, treatment: $treat1, date: $date1),
  consttablecf1(insurance: $insur2, treatment: $treat2), 
  $insur1 == $insur2, $treat1 != $treat2 -> #fail.

//FD: SSN,NAME -> PHONE 
fd1: customers(ssn: $ssn1, name: $name1,  phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
customers(ssn: $ssn2, name: $name2,  phone: $phone2, cfphone: $cfphone2, str: $str2, city: $city2, cc: $cc2),
    $ssn1 == $ssn2, $name1 == $name2, $phone1 != $phone2 -> #fail.

//FD: SSN,NAME -> CC 
fd3: customers(ssn: $ssn1, name: $name1,  phone: $phone1, cfphone: $cfphone1, str: $str1, city: $city1, cc: $cc1),
customers(ssn: $ssn2, name: $name2,  phone: $phone2, cfphone: $cfphone2, str: $str2, city: $city2, cc: $cc2),
    $ssn1 == $ssn2, $name1 == $name2, $cc1 != $cc2 -> #fail.

//Currency
//FD: SSN -> SALARY 
fd2: treatments(ssn: $ssn1, salary: $salary1, insurance: $insur1, treatment: $treat1, date: $date1),
    treatments(ssn: $ssn2, salary: $salary2, insurance: $insur2, treatment: $treat2, date: $date2),
    $ssn1 == $ssn2, $salary1 != $salary2 -> #fail.
]]>
    </dependencies>
    <authoritativeSources>
        <source>md</source>
        <source>consttablecf1</source>
    </authoritativeSources>

    <!-- ****************************************************
         CONFIGURATION
    **************************************************** -->
    <configuration>
        <printLog>false</printLog>
        <!-- To load DB only the first time and then generate a copy with changes -->
        <recreateDBOnStart>false</recreateDBOnStart>
        <applyCellChanges>true</applyCellChanges>
        <cloneTargetSchema>true</cloneTargetSchema>

        <!-- To load DB every time on start and then apply changes without copying -->
        <!--
        <recreateDBOnStart>false</recreateDBOnStart>
        <applyCellChanges>true</applyCellChanges>
        <cloneTargetSchema>true</cloneTargetSchema>
        -->

        <!-- To generate all possible changes (default = false - slow, only for toy examples)-->
        <!--<generateAllChanges>true</generateAllChanges>-->

        <!-- Avoid interactions among changes. (default = true) -->
        <!--<avoidInteractions>false</avoidInteractions>-->

        <!-- Error percentages for dependencies and comparisons 
        All percentages are wrt table sizes (# tuples) -->
        <dirtyStrategies>
            <defaultStrategy>
                <strategy chars="*" charsToAdd="3">TypoAddString</strategy>
            </defaultStrategy> <!-- % Add string -->
            <attributeStrategy>
                <attribute table="customers" name="ssn">
                    <strategy>TypoRandom</strategy>
                </attribute>
                <attribute table="customers" name="name">
                    <strategy>TypoActiveDomain</strategy>
                </attribute>
                <attribute table="customers" name="city">
                    <strategy charsToSwitch="3">TypoSwitchValue</strategy>
                </attribute>
            </attributeStrategy>
        </dirtyStrategies>
        <errorPercentages>
{'fraction_non_alphanumeric': 0.1835659487937887, 'fraction_numerical': 0.02523338571032443, 'mean_word_length': 3.0463724756918475, 'pattern_counts': {'":': 0, '<': 223, '<?xml version=': 2, '>': 249, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 30}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2496423', 'n_tokens_mistral': 3697, 'n_tokens_neox': 3563, 'n_words': 790}