Re: ERROR: commutator operator - is already the commutator of operator +

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: shohorab hossain <shohorab23(at)gmail(dot)com>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: ERROR: commutator operator - is already the commutator of operator +
Date: 2024-11-17 16:05:35
Message-ID: 3057808.1731859535@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

shohorab hossain <shohorab23(at)gmail(dot)com> writes:
> Whenever I try to restore a dump database backup to PostgreSQL version
> 17.1, I receive the following error log. The dump is from PostgreSQL
> version 15.8.

> What is this error and how can I fix it?.
> pg_restore: error: could not execute query: ERROR: commutator operator - is
> already the commutator of operator +

v17 is complaining about a logically-inconsistent situation that
earlier versions did not notice. You have interval - numeric
claiming to be the commutator of numeric - interval, which seems
fine --- but according to this error message, numeric - interval
is claiming to be the commutator of interval + numeric. If these
operators have anything like the semantics their names suggest,
that commutator linkage is a bug in the operator's definition.
You need to get rid of it, or better adjust it to point to the
right operator, ie interval - numeric.

We don't have any syntax for adjusting the commutator link
once set, but maybe you could manually edit the dump file.

regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Noah Misch 2024-11-17 16:12:10 Re: BUG #18708: regex problem: (?:[^\d\D]){0} asserts with "lp->nouts == 0 && rp->nins == 0"
Previous Message shohorab hossain 2024-11-17 11:49:28 ERROR: commutator operator - is already the commutator of operator +