Project

General

Profile

« Previous | Next » 

Revision 5450

sql_io.py: put_table(): DuplicateKeyException: Fixed bug where indexes with conditions needed to have the input rows filtered by the condition, to prevent trying to retrieve an existing/inserted row using a join on the index columns when the index in fact does not apply. This fixes a bug in the import of taxonconcept where the taxonconcept_0_unique_identifying_name unique index has a condition which was not satisfied for input rows with no identifyingtaxonomicname, causing any input row with NULL in this column to match all taxonconcepts with a NULL identifyingtaxonomicname. This uses ignore_cond()'s new support for constraints that did not fail at least once.

View differences:

lib/sql_io.py
642 642
            # supported
643 643
            assert not join_cols
644 644
            
645
            if e.cond != None: ignore_cond(e.cond, e, passed=True)
646
            
645 647
            join_cols.update(util.dict_subset_right_join(mapping, e.cols))
646 648
            log_debug('Ignoring existing rows, comparing on these columns:\n'
647 649
                +strings.as_inline_table(join_cols, ustr=col_ustr))

Also available in: Unified diff