Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#2684 closed defect (fixed)

can't upgrade from 2.1.1 to 2.1.2 with extensions

Reported by: robe Owned by: strk
Priority: blocker Milestone: PostGIS 2.1.2
Component: build Version: 2.1.x
Keywords: Cc:

Description

I don't have my 2.1.1 readily installed but I tried running this:

ALTER EXTENSION postgis UPDATE TO "2.1.2devnext";

on a 2.1.1 I had upgraded earlier to 2.1.2dev.

I got error

operator = already exists

I'll try going from 2.1.1 to 2.1.2 next once I have that setup again.

strk, pramsey can you check. Sorry for holding up the curtain call.

Attachments (1)

extension_patch.patch (5.4 KB ) - added by pramsey 10 years ago.

Download all attachments as: .zip

Change History (19)

comment:1 by robe, 10 years ago

Component: postgisbuild/upgrade/install
Owner: changed from pramsey to strk

comment:2 by strk, 10 years ago

Ouch, stop the release wheels pramsey !!!

comment:3 by strk, 10 years ago

Regina, but… shouldn't that kind of upgrade be the same that happens on "make check" ? Or had you tried ./run_test.pl —extensions ?

comment:4 by strk, 10 years ago

Confirmed !

[strk@cdb:/usr/src/postgis/postgis-2.1/raster/test/regress(svn-2.1)] ../../../regress/run_test.pl -v --upgrade --extension --raster tickets.sql 
PATH is /home/postgresql-9.3.1/bin:/home/postgresql-9.3.1/bin:/home/strk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games://home/strk/bin://home/strk/bin
Checking for shp2pgsql ... found
Checking for pgsql2shp ... found
Checking for raster2pgsql ... found
TMPDIR is /tmp/pgis_reg
Creating database 'postgis_reg' 
Preparing db 'postgis_reg' using 'CREATE EXTENSION'
Upgrading PostGIS in 'postgis_reg' using 'ALTER EXTENSION'

Error encountered altering EXTENSION POSTGIS, see /tmp/pgis_reg/regress_log for details

[strk@cdb:/usr/src/postgis/postgis-2.1/raster/test/regress(svn-2.1)] cat /tmp/pgis_reg/regress_log 
createlang: language "plpgsql" is already installed in database "postgis_reg"
CREATE EXTENSION
ERROR:  operator = already exists

Regina: could you add this step to the buildbots ?

make check RUNTESTFLAGS=--extension

Is only supposed to work _after_ "make install"

comment:5 by strk, 10 years ago

Regina: the —extension switch to run_test.pl currently fails due to some tests being ambiguous when run in an extension environment due to raster being also forceably loaded. Those tests could be tweaked to be immune…

comment:6 by robe, 10 years ago

confirmed same issue going from 2.1.1

ALTER EXTENSION postgis UPDATE TO "2.1.2dev";

I have on my list to add to bots but haven't already. Though wondering why doesn't the regular upgrade test fail when we go from 2.1.2 to 2.1.2 (the regular way should fail as well unless its not running in a transaction)

comment:7 by robe, 10 years ago

Ah I see why it fails for extensions but not for regular script. For regular there is still a rtpostgis_upgrade_21_minor.sql which is different than rtpostgis_upgrade_20_21.sql.

Since extension always uses the rtpostgis_upgrade_20_21.sql, it fails.

comment:8 by robe, 10 years ago

Summary: can't upgrade from 2.1.2 to 2.1.2can't upgrade from 2.1.1 to 2.1.2 with extensions

comment:9 by strk, 10 years ago

I think you should change the Makefile to use 21_minor.sql for 2.1.x to 2.1.x extension upgrades. Will leave that to you as you were the original author of that Makefile, right ?

In trunk it'll be easier as the upgrade script is one for all minor upgrades.

by pramsey, 10 years ago

Attachment: extension_patch.patch added

comment:10 by pramsey, 10 years ago

Please test the patch, please.

comment:11 by pramsey, 10 years ago

Does

make check RUNTESTFLAGS=--extension

work for you? it does not for me, even with 2.1.1.

up=# SELECT 'contains100', ST_contains('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))', 'POINT(5 5)');
ERROR:  function st_contains(unknown, unknown) is not unique

I've confirmed this isn't a problem with the regression test, it's a problem with the extension install, by running one of the regression queries (the above one) manually on a extension-enabled database. There seem to be lots of others of these type-recognition errors for extension installs.

comment:13 by pramsey, 10 years ago

Patch tommitted to 2.1 branch at r12371

comment:14 by strk, 10 years ago

Still fails for me with r12371:

postgis_reg=# create extension postgis version '2.1.2dev';
CREATE EXTENSION
postgis_reg=# alter extension postgis update to "2.1.2devnext";                                                        
ERROR:  operator = already exists

comment:15 by strk, 10 years ago

r12372 fixes that (tweaking the rule to produce the "next" version, used by run_test.pl on —extension —upgrade)

comment:16 by pramsey, 10 years ago

Resolution: fixed
Status: newclosed

Confirmed, works for me.

comment:17 by robe, 10 years ago

Looks good. Just doing garden battery tests to confirm 2.1.1 to 2.1.2 and 2.0.4 to 2.1.2 yield same answers.

comment:18 by robe, 10 years ago

So far did a garden test of 2.1.1 upgraded to 2.1.2 r12371, compared to the backup of test I created going straight with create extension 2.1.2 r12366.

To my shock I saw differences, but don't think they have anything to do with upgrade. I guess I'll need to retest 2.1.2 for sure. Differences are with

ST_AsGeoJSON (I assume as result of fix pramsey recently did) so not worried about it.

The one that has me a bit concerned (but not concerned enough to hold a release) are with ST_3DExtent, ST_AsLatLonText. I think these are just instability issues of some sort which I think we have related tickets for already.

To do a spot check — I'm just doing a JOIN pg_column_size(postgis_garden_log20_output.log_output) check and also stole some tricks from dustymugs and repurposed his raster_hash to create an xml hash to catch other oddities.

Note: See TracTickets for help on using tickets.