Validating changeset params with the existing fields

I think that is usually referred to as cross-field validation (in contrast to field level validation).

Shouldn’t that be easily possible by a custom validator?

+1


Ecto.Changeset.get_field/3:

While get_change/3 only looks at the current changes to retrieve a value, this function looks at the changes and then falls back on the data, finally returning default if no value is available.