You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ExternalVocabularyValue and OaiSet classes have an @column annotation intended to put a unique constraint on the columns in the externalvocabularyvalue (uri column) and oaiset (spec column) tables. For the externalvocabularyvalue table, parallel edits of different datasets including the same external vocab uri can result in duplicate values in the table which then causes failures in retrieval when getSingleValue() is used with the query.
What did you expect to happen?
The tables should have these constraints on them. Further, in the case of external vocab values, it makes sense to isolate the update of this table in its own transaction - this minimizes the time during when parallel dataset edits can actually cause a problem, and assures that if an attempt to write a duplicate value is made (and now fails due to the constraint) that the overall dataset transaction can succeed.
Which version of Dataverse are you using? 5.14/6.0 - the problem should not be new but would only be seen when parallel edits of datasets are made with external controlled vocabulary values configured and with the same uri appearing in more than one dataset.
PR to follow.
The text was updated successfully, but these errors were encountered:
Just noting here that the pull request attached to this issue, at #9984, also addressed what I described in #8857 about fields in metadata block TSV files, specifically the Citation metadata block that ships with Dataverse, that have allowControlledVocabulary property set to true, but no CV terms.
The ExternalVocabularyValue and OaiSet classes have an @column annotation intended to put a unique constraint on the columns in the externalvocabularyvalue (uri column) and oaiset (spec column) tables. For the externalvocabularyvalue table, parallel edits of different datasets including the same external vocab uri can result in duplicate values in the table which then causes failures in retrieval when getSingleValue() is used with the query.
The tables should have these constraints on them. Further, in the case of external vocab values, it makes sense to isolate the update of this table in its own transaction - this minimizes the time during when parallel dataset edits can actually cause a problem, and assures that if an attempt to write a duplicate value is made (and now fails due to the constraint) that the overall dataset transaction can succeed.
Which version of Dataverse are you using? 5.14/6.0 - the problem should not be new but would only be seen when parallel edits of datasets are made with external controlled vocabulary values configured and with the same uri appearing in more than one dataset.
PR to follow.
The text was updated successfully, but these errors were encountered: