Opened 9 years ago

Closed 6 years ago

#3039 closed defect (wontfix)

2.1.2--2.2.0dev: ERROR: operator ~ already exists

Reported by: strk Owned by: strk
Priority: blocker Milestone: PostGIS 2.1.9
Component: build/upgrade/install Version: 2.1.x
Keywords: Cc: Bborie Park, robe


Due to my recent commit embedding version information in operators, the upgrade from 2.1 to 2.2 broke due to OPERATOR ~(raster,geometry) having a "Last Changed: 2.2.0" label on it.

The problem is that the operator really changed by dropping the COMMUTATOR specification (referring to #2532) but such change in an OPERATOR cannot currently be correctly injected in a pre-existing database, thus making it impossible to correctly upgrade from 2.1 without a dump-reload.

This ticket is to address the problem in some way. We have two options:

  1. Revert the change and postpone it to 3.0
  2. Find a way to provide upgrades for operator definitions

Change History (9)

comment:1 by strk, 9 years ago

There seems to be more to discover, in particular that the commenting-out of COMMUTATOR was likely a left-over from those old commits as the real fix was to _add_ operators that were missing so the COMMUTATOR could make sense.

Now it's to be figured out _when_ the COMMUTATOR specification was removed and what would it mean to re-add it instead (ouch)

comment:2 by strk, 9 years ago

Status: newassigned

The dropping commit was mine: r12101, Bborie's later fix did not revert that broken one.

comment:3 by strk, 9 years ago

2.1.2 was the first version with the COMMUTATOR commented out in the 2.1 branch. In 2.0 it's still available.

comment:4 by strk, 9 years ago

So, I'm tempted to uncomment the COMMUTATOR but (as was done in 2.1.2) not advertise the change. Whoever soft-upgraded starting from 2.1.2 would end up with no COMMUTATOR while people soft-upgrading from 2.1.1 or older would have it still working.

What do you think ?

comment:5 by strk, 9 years ago

Cc: robe added
Milestone: PostGIS 2.1.6
Version: trunk2.1.x

For a start I've committed a fix for the soft-upgrade problem, not re-enabling the COMMUTATOR but pretending nothing changed since 2.0.0. This was done with r13229 in trunk (2.2.0dev) and r13228 in 2.1 branch (2.1.6dev).

I'll wait some time for your comments before proceeding with un-commenting the COMMUTATOR part of those old operators, to make newly installed 2.1.6 and 2.2.0 at least as correct as 2.1.1 was.

2.1.2 to 2.1.5 new installs would still be incorrect and no soft-upgrade would fix them unless some further step is taken.

comment:6 by pramsey, 9 years ago

Milestone: PostGIS 2.1.6PostGIS 2.1.7

comment:7 by robe, 8 years ago

Milestone: PostGIS 2.1.7PostGIS 2.1.8

I presume this is still an issue.

comment:8 by pramsey, 8 years ago

Milestone: PostGIS 2.1.8PostGIS 2.1.9

comment:9 by pramsey, 6 years ago

Resolution: wontfix
Status: assignedclosed
Note: See TracTickets for help on using tickets.