pgq: 2.1.x to 3.0 upgrade script
authorMarko Kreen <markokr@gmail.com>
Fri, 12 Mar 2010 13:02:46 +0000 (15:02 +0200)
committerMarko Kreen <markokr@gmail.com>
Fri, 12 Mar 2010 13:02:46 +0000 (15:02 +0200)
upgrade/Makefile
upgrade/src/v3.0_pgq_core.sql [new file with mode: 0644]

index b140882f9bfc1308a10f0f70e8402385f0252cec..8f9c960f1316d74498031b785f6c182e9e5649d1 100644 (file)
@@ -1,6 +1,7 @@
 
 #SQLS = v2.1.5_londiste.sql  v2.1.5_pgq_core.sql  v2.1.5_pgq_ext.sql
-SQLS = v2.1.6_londiste.sql  v2.1.6_pgq_ext.sql
+#SQLS = v2.1.6_londiste.sql  v2.1.6_pgq_ext.sql
+SQLS = v3.0_pgq_core.sql
 
 SRCS = $(addprefix src/, $(SQLS))
 DSTS = $(addprefix final/, $(SQLS))
diff --git a/upgrade/src/v3.0_pgq_core.sql b/upgrade/src/v3.0_pgq_core.sql
new file mode 100644 (file)
index 0000000..585bc93
--- /dev/null
@@ -0,0 +1,58 @@
+begin;
+
+-- new fields to pgq.queue
+alter table pgq.queue add column queue_disable_insert boolean;
+alter table pgq.queue add column queue_ticker_paused boolean;
+alter table pgq.queue add column queue_per_tx_limit int4;
+update pgq.queue set queue_disable_insert=false, queue_ticker_paused=false;
+alter table pgq.queue alter column queue_disable_insert set not null;
+alter table pgq.queue alter column queue_disable_insert set default false;
+alter table pgq.queue alter column queue_ticker_paused set not null;
+alter table pgq.queue alter column queue_ticker_paused set default false;
+
+-- new field to pgq.tick
+alter table pgq.tick add column tick_event_seq int8;
+
+-- surgery on pgq.retry_queue
+alter table pgq.retry_queue add column ev_queue int4;
+update pgq.retry_queue set ev_queue = sub_queue
+  from pgq.subscription where ev_owner = sub_id;
+alter table pgq.retry_queue alter column ev_queue set not null;
+drop index pgq.rq_retry_owner_idx;
+
+-- surgery on pgq.subscription
+alter table pgq.retry_queue drop constraint rq_owner_fkey;
+alter table pgq.failed_queue drop constraint fq_owner_fkey;
+alter table pgq.subscription drop constraint subscription_pkey;
+alter table pgq.subscription drop constraint subscription_ukey;
+alter table pgq.subscription add constraint subscription_pkey primary key (sub_queue, sub_consumer);
+alter table pgq.subscription add constraint subscription_batch_idx unique (sub_batch);
+alter table pgq.subscription alter column sub_last_tick drop not null;
+
+-- drop failed queue functionality.  not mandatory, who wants can keep it.
+drop function pgq.failed_event_list(text, text);
+drop function pgq.failed_event_list(text, text, integer, integer);
+drop function pgq.failed_event_count(text, text);
+drop function pgq.failed_event_delete(text, text, bigint);
+drop function pgq.failed_event_retry(text, text, bigint);
+drop function pgq.event_failed(bigint, bigint, text);
+drop table pgq.failed_queue;
+
+-- drop types and related functions
+drop function pgq.get_batch_events(bigint);
+drop function pgq.get_batch_info(bigint);
+drop function pgq.get_consumer_info();
+drop function pgq.get_consumer_info(text);
+drop function pgq.get_consumer_info(text, text);
+drop function pgq.get_queue_info();
+drop function pgq.get_queue_info(text);
+drop type pgq.ret_batch_event;
+drop type pgq.ret_batch_info;
+drop type pgq.ret_consumer_info;
+drop type pgq.ret_queue_info;
+
+-- update all functions
+\i ../sql/pgq/pgq.upgrade.sql
+
+end;
+