objection-db-errors icon indicating copy to clipboard operation
objection-db-errors copied to clipboard

UniqueViolationError fails to parse key with line returns

Open sallustfire opened this issue 1 year ago • 0 comments

The UniqueViolationError parser uses a regex to determine if the constraint violation is a suitable error.

const UNIQUE_COLUMNS_REGEX = /Key \((.+)\)=\(.+\) already exists/;

The . character class will not match line break characters as written. Hence a column with a unique index columnA can have a message like Key (columnA)=(Unique\nColumn) already exists., which will not be matched by the regex.

This can be resolved by using a more permissive character class e.g. [\d\D] or single line mode.

sallustfire avatar Jul 07 '23 19:07 sallustfire