bdr: Add test for extension upgrades.
authorAndres Freund <andres@anarazel.de>
Tue, 4 Nov 2014 00:06:34 +0000 (01:06 +0100)
committerAndres Freund <andres@anarazel.de>
Tue, 4 Nov 2014 00:06:34 +0000 (01:06 +0100)
Makefile.in
expected/upgrade.out [new file with mode: 0644]
sql/upgrade.sql [new file with mode: 0644]

index e2ab0bf5cc14e3c379ceba4ebbfc097510786ed6..b427e10039aee5055d2dcb9ee122ba7391786882 100644 (file)
@@ -101,7 +101,9 @@ installcheck: ;
 
 check: regresscheck isolationcheck
 
-REGRESSCHECKS=init \
+REGRESSCHECKS= \
+   init \
+   upgrade \
    ddl/create ddl/alter_table ddl/extension ddl/function \
    ddl/grant ddl/namespace ddl/replication_set ddl/sequence ddl/view \
    \
diff --git a/expected/upgrade.out b/expected/upgrade.out
new file mode 100644 (file)
index 0000000..eedabfb
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Test extension create/update/drop for each supported version. Should
+ * probably be maintained automatedly at some point.
+ */
+CREATE DATABASE extension_upgrade;
+\c extension_upgrade
+-- Create prerequisite extensions
+CREATE EXTENSION btree_gist;
+-- create each version of the extension directly
+CREATE EXTENSION bdr VERSION '0.8.0';
+DROP EXTENSION bdr;
+CREATE EXTENSION bdr VERSION '0.8.0.1';
+DROP EXTENSION bdr;
+-- evolve version one by one from the oldest to the newest one
+CREATE EXTENSION bdr VERSION '0.8.0';
+ALTER EXTENSION bdr UPDATE TO '0.8.0.1';
+-- Should never have to do anything: You missed adding the new version above.
+ALTER EXTENSION bdr UPDATE;
+NOTICE:  version "0.8.0.1" of extension "bdr" is already installed
+\c postgres
+DROP DATABASE extension_upgrade;
diff --git a/sql/upgrade.sql b/sql/upgrade.sql
new file mode 100644 (file)
index 0000000..5b6e46c
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Test extension create/update/drop for each supported version. Should
+ * probably be maintained automatedly at some point.
+ */
+CREATE DATABASE extension_upgrade;
+\c extension_upgrade
+
+-- Create prerequisite extensions
+CREATE EXTENSION btree_gist;
+
+-- create each version of the extension directly
+CREATE EXTENSION bdr VERSION '0.8.0';
+DROP EXTENSION bdr;
+
+CREATE EXTENSION bdr VERSION '0.8.0.1';
+DROP EXTENSION bdr;
+
+-- evolve version one by one from the oldest to the newest one
+CREATE EXTENSION bdr VERSION '0.8.0';
+ALTER EXTENSION bdr UPDATE TO '0.8.0.1';
+
+
+-- Should never have to do anything: You missed adding the new version above.
+ALTER EXTENSION bdr UPDATE;
+
+\c postgres
+DROP DATABASE extension_upgrade;