Needed for pgq & pgq_coop that have changed.
Also move more common code to common-pgxs.mk
EOF
if test "$v" = "9.1" -o "$v" = "9.2"; then
- modver="3.1"
+ pgq_version="3.1.1"; pgq_old_versions="3.1"
+ pgq_coop_version="3.1.1"; pgq_coop_old_versions="3.1"
+ pgq_node_version="3.1"; pgq_node_old_versions=""
+ pgq_ext_version="3.1"; pgq_ext_old_versions=""
+ londiste_version="3.1"; londiste_old_versions=""
for mod in pgq pgq_node pgq_coop pgq_ext londiste; do
(
+ modver=`eval echo \\${${mod}_version}`
echo "usr/share/postgresql/$v/extension/${mod}.control"
echo "usr/share/postgresql/$v/extension/${mod}--${modver}.sql"
echo "usr/share/postgresql/$v/extension/${mod}--unpackaged--${modver}.sql"
+ oldvers=`eval echo \\${${mod}_old_versions}`
+ for old in ${oldvers}; do
+ echo "usr/share/postgresql/$v/extension/${mod}--${old}--${modver}.sql"
+ done
) >> "postgresql-$v-pgq3.install"
done
fi
usr/share/postgresql/9.1/contrib/oldgrants_pgq_node.sql
usr/share/postgresql/9.1/contrib/oldgrants_pgq.sql
usr/share/postgresql/9.1/extension/pgq.control
-usr/share/postgresql/9.1/extension/pgq--3.1.sql
-usr/share/postgresql/9.1/extension/pgq--unpackaged--3.1.sql
+usr/share/postgresql/9.1/extension/pgq--3.1.1.sql
+usr/share/postgresql/9.1/extension/pgq--unpackaged--3.1.1.sql
+usr/share/postgresql/9.1/extension/pgq--3.1--3.1.1.sql
usr/share/postgresql/9.1/extension/pgq_node.control
usr/share/postgresql/9.1/extension/pgq_node--3.1.sql
usr/share/postgresql/9.1/extension/pgq_node--unpackaged--3.1.sql
usr/share/postgresql/9.1/extension/pgq_coop.control
-usr/share/postgresql/9.1/extension/pgq_coop--3.1.sql
-usr/share/postgresql/9.1/extension/pgq_coop--unpackaged--3.1.sql
+usr/share/postgresql/9.1/extension/pgq_coop--3.1.1.sql
+usr/share/postgresql/9.1/extension/pgq_coop--unpackaged--3.1.1.sql
+usr/share/postgresql/9.1/extension/pgq_coop--3.1--3.1.1.sql
usr/share/postgresql/9.1/extension/pgq_ext.control
usr/share/postgresql/9.1/extension/pgq_ext--3.1.sql
usr/share/postgresql/9.1/extension/pgq_ext--unpackaged--3.1.sql
usr/share/postgresql/9.2/contrib/oldgrants_pgq_node.sql
usr/share/postgresql/9.2/contrib/oldgrants_pgq.sql
usr/share/postgresql/9.2/extension/pgq.control
-usr/share/postgresql/9.2/extension/pgq--3.1.sql
-usr/share/postgresql/9.2/extension/pgq--unpackaged--3.1.sql
+usr/share/postgresql/9.2/extension/pgq--3.1.1.sql
+usr/share/postgresql/9.2/extension/pgq--unpackaged--3.1.1.sql
+usr/share/postgresql/9.2/extension/pgq--3.1--3.1.1.sql
usr/share/postgresql/9.2/extension/pgq_node.control
usr/share/postgresql/9.2/extension/pgq_node--3.1.sql
usr/share/postgresql/9.2/extension/pgq_node--unpackaged--3.1.sql
usr/share/postgresql/9.2/extension/pgq_coop.control
-usr/share/postgresql/9.2/extension/pgq_coop--3.1.sql
-usr/share/postgresql/9.2/extension/pgq_coop--unpackaged--3.1.sql
+usr/share/postgresql/9.2/extension/pgq_coop--3.1.1.sql
+usr/share/postgresql/9.2/extension/pgq_coop--unpackaged--3.1.1.sql
+usr/share/postgresql/9.2/extension/pgq_coop--3.1--3.1.1.sql
usr/share/postgresql/9.2/extension/pgq_ext.control
usr/share/postgresql/9.2/extension/pgq_ext--3.1.sql
usr/share/postgresql/9.2/extension/pgq_ext--unpackaged--3.1.sql
SUBDIRS = londiste pgq pgq_coop pgq_ext pgq_node ticker txid
-all install clean distclean installcheck:
+all install clean distclean installcheck test:
for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir $@ \
DESTDIR="$(DESTDIR)" \
# Variables that are used when extensions are available
Extension_data ?=
-Extension_data_built ?=
+Extension_data_built ?= $(EXTENSION)--$(EXT_VERSION).sql $(EXTENSION)--unpackaged--$(EXT_VERSION).sql
Extension_regress ?=
# Variables that are used when extensions are not available
Contrib_data ?=
-Contrib_data_built ?=
+Contrib_data_built = $(EXTENSION).sql $(EXTENSION).upgrade.sql \
+ structure/newgrants_$(EXTENSION).sql \
+ structure/oldgrants_$(EXTENSION).sql
+
Contrib_regress ?=
+EXT_VERSION ?=
+EXT_OLD_VERSIONS ?=
+
+Extension_upgrade_files = $(if $(EXT_OLD_VERSIONS),$(foreach v,$(EXT_OLD_VERSIONS),$(EXTENSION)--$(v)--$(EXT_VERSION).sql))
+Extension_data_built += $(Extension_upgrade_files)
+
# Should the Contrib* files installed (under ../contrib/)
# even when extensions are available?
Contrib_install_always ?= no
override CONTRIB_TESTDB = regression
REGRESS_OPTS = --load-language=plpgsql --dbname=$(CONTRIB_TESTDB)
+#
+# Calculate actual sql files
+#
+
+SQLS = $(shell sed -e 's/^[^\\].*//' -e 's/\\i //' structure/install.sql)
+FUNCS = $(shell sed -e 's/^[^\\].*//' -e 's/\\i //' $(SQLS))
+SRCS = $(SQLS) $(FUNCS)
+
#
# load PGXS
#
PGXS = $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
+#
+# common tools
+#
+
+NDOC = NaturalDocs
+NDOCARGS = -r -o html docs/html -p docs -i docs/sql
+CATSQL = ../../scripts/catsql.py
+GRANTFU = ../../scripts/grantfu.py
+
#
# build rules, in case Contrib data must be always installed
#
ack:
cp results/*.out expected/
-.PHONY: test ack installdirs-old-contrib install-old-contrib
+cleandox:
+ rm -rf docs/html docs/Data docs/sql
+
+clean: cleandox
+
+.PHONY: test ack installdirs-old-contrib install-old-contrib cleandox dox
+
+#
+# common files
+#
+
+$(EXTENSION)--$(EXT_VERSION).sql: $(EXTENSION).sql structure/ext_postproc.sql
+ $(CATSQL) $^ > $@
+
+$(EXTENSION)--unpackaged--$(EXT_VERSION).sql: $(EXTENSION).upgrade.sql structure/ext_unpackaged.sql structure/ext_postproc.sql
+ $(CATSQL) $^ > $@
+
+$(EXTENSION).sql: $(SRCS)
+ $(CATSQL) structure/install.sql > $@
+
+$(EXTENSION).upgrade.sql: $(SRCS)
+ $(CATSQL) structure/upgrade.sql > $@
+
+ifneq ($(Extension_upgrade_files),)
+$(Extension_upgrade_files): $(EXTENSION).upgrade.sql
+ cp $< $@
+endif
+
+structure/newgrants_$(EXTENSION).sql: structure/grants.ini
+ $(GRANTFU) -t -r -d $< > $@
+
+structure/oldgrants_$(EXTENSION).sql: structure/grants.ini structure/grants.sql
+ echo "begin;" > $@
+ $(GRANTFU) -R -o $< >> $@
+ cat structure/grants.sql >> $@
+ echo "commit;" >> $@
+
EXTENSION = londiste
-Contrib_data_built = londiste.sql londiste.upgrade.sql \
- structure/oldgrants_londiste.sql \
- structure/newgrants_londiste.sql
-
-Extension_data_built = londiste--3.1.sql londiste--unpackaged--3.1.sql
+EXT_VERSION = 3.1
+EXT_OLD_VERSIONS =
base_regress = londiste_provider londiste_subscriber \
londiste_fkeys londiste_execute londiste_seqs londiste_merge \
Contrib_install_always = yes
-SQLS = $(shell sed -e 's/^[^\\].*//' -e 's/\\i //' structure/install.sql)
-FUNCS = $(shell sed -e 's/^[^\\].*//' -e 's/\\i //' $(SQLS))
-SRCS = $(SQLS) $(FUNCS)
-
-NDOC = NaturalDocs
-NDOCARGS = -r -o html docs/html -p docs -i docs/sql
-CATSQL = ../../scripts/catsql.py
-GRANTFU = ../../scripts/grantfu.py
-
include ../common-pgxs.mk
-londiste--3.1.sql: londiste.sql structure/ext_postproc.sql
- cat $^ > $@
-
-londiste--unpackaged--3.1.sql: londiste.upgrade.sql structure/ext_unpackaged.sql structure/ext_postproc.sql
- cat $^ > $@
-
-londiste.sql: $(SRCS)
- $(CATSQL) $(SQLS) > $@
-
-londiste.upgrade.sql: $(SRCS)
- $(CATSQL) structure/upgrade.sql > $@
-
-structure/newgrants_londiste.sql: structure/grants.ini
- $(GRANTFU) -r -d -t $< > $@
-
-structure/oldgrants_londiste.sql: structure/grants.ini
- echo "begin;" > $@
- $(GRANTFU) -R -o $< >> $@
- cat structure/grants.sql >> $@
- echo "commit;" >> $@
-
dox: cleandox
mkdir -p docs/html
mkdir -p docs/sql
$(CATSQL) --ndoc structure/functions.sql > docs/sql/functions.sql
$(NDOC) $(NDOCARGS)
-cleandox:
- rm -rf docs/html docs/Data docs/sql
-
EXTENSION = pgq
-DOCS = README.pgq
+EXT_VERSION = 3.1.1
+EXT_OLD_VERSIONS = 3.1
-Extension_data_built = pgq--3.1.sql pgq--unpackaged--3.1.sql
+DOCS = README.pgq
-Contrib_data_built = pgq.sql pgq.upgrade.sql structure/oldgrants_pgq.sql structure/newgrants_pgq.sql
Contrib_data = structure/uninstall_pgq.sql
Contrib_regress = pgq_init_noext pgq_core pgq_perms logutriga sqltriga $(trunc_test)
Extension_regress = pgq_init_ext pgq_core pgq_perms logutriga sqltriga $(trunc_test)
-Contrib_install_always = yes
-
# MAJORVERSION was defined in 8.4
trunc_test = $(if $(MAJORVERSION),trunctrg)
-# scripts that load other sql files
-LDRS = structure/func_internal.sql structure/func_public.sql structure/triggers.sql
-FUNCS = $(shell sed -e 's/^[^\\].*//' -e 's/\\i //' $(LDRS))
-SRCS = structure/tables.sql structure/grants.sql structure/install.sql \
- structure/uninstall_pgq.sql $(FUNCS)
-
include ../common-pgxs.mk
-NDOC = NaturalDocs
-NDOCARGS = -r -o html docs/html -p docs -i docs/sql
-CATSQL = ../../scripts/catsql.py
-GRANTFU = ../../scripts/grantfu.py
-
SUBDIRS = lowlevel triggers
# PGXS does not have subdir support, thus hack to recurse into lowlevel/
lowlevel/pgq_lowlevel.sql: sub-all
triggers/pgq_triggers.sql: sub-all
-#
-# combined SQL files
-#
-
-pgq--3.1.sql: pgq.sql structure/ext_postproc.sql
- cat $^ > $@
-
-pgq--unpackaged--3.1.sql: pgq.upgrade.sql structure/ext_unpackaged.sql structure/ext_postproc.sql
- cat $^ > $@
-
-pgq.sql: $(SRCS)
- $(CATSQL) structure/install.sql > $@
-
-# fixme: use LDRS here, to upgrade triggers
-pgq.upgrade.sql: $(SRCS)
- $(CATSQL) structure/upgrade.sql > $@
-
-structure/newgrants_pgq.sql: structure/grants.ini
- $(GRANTFU) -t -r -d $< > $@
-
-structure/oldgrants_pgq.sql: structure/grants.ini structure/grants.sql
- echo "begin;" > $@
- $(GRANTFU) -R -o $< >> $@
- cat structure/grants.sql >> $@
- echo "commit;" >> $@
-
#
# docs
#
$(CATSQL) --ndoc structure/triggers.sql > docs/sql/triggers.sql
$(NDOC) $(NDOCARGS)
-cleandox:
- rm -rf docs/html docs/Data docs/sql
-
-clean: cleandox
-
-test: $(Contrib_data_built)
-
-.PHONY: cleandox dox
-- and only bumped when database code changes.
-- ----------------------------------------------------------------------
begin
- return '3.1.0.0';
+ return '3.1.1';
end;
$$ language plpgsql;
EXTENSION = pgq_coop
-Extension_data_built = pgq_coop--3.1.sql pgq_coop--unpackaged--3.1.sql
-Contrib_data_built = pgq_coop.sql pgq_coop.upgrade.sql \
- structure/newgrants_pgq_coop.sql \
- structure/oldgrants_pgq_coop.sql
+EXT_VERSION = 3.1.1
+EXT_OLD_VERSIONS = 3.1
Contrib_regress = pgq_coop_init_noext pgq_coop_test
Extension_regress = pgq_coop_init_ext pgq_coop_test
-Contrib_install_always = yes
-
-SQL_FULL = structure/schema.sql structure/functions.sql structure/grants.sql
-FUNCS = $(shell sed -n -e '/^\\/{s/\\i //;p}' structure/functions.sql)
-SRCS = $(SQL_FULL) $(FUNCS)
-
include ../common-pgxs.mk
-NDOC = NaturalDocs
-NDOCARGS = -r -o html docs/html -p docs -i docs/sql
-CATSQL = ../../scripts/catsql.py
-GRANTFU = ../../scripts/grantfu.py
-
-
-#
-# combined SQL files
-#
-
-pgq_coop--3.1.sql: pgq_coop.sql
- cat $< > $@
-
-#pgq_coop--unpackaged--3.1.sql: structure/ext_unpackaged.sql pgq_coop.upgrade.sql
-pgq_coop--unpackaged--3.1.sql: pgq_coop.upgrade.sql structure/ext_unpackaged.sql
- cat $< > $@
-
-pgq_coop.sql: $(SRCS)
- $(CATSQL) structure/install.sql > $@
-
-pgq_coop.upgrade.sql: $(SRCS)
- $(CATSQL) structure/upgrade.sql > $@
-
-structure/newgrants_pgq_coop.sql: structure/grants.ini
- $(GRANTFU) -t -r -d $< > $@
-
-structure/oldgrants_pgq_coop.sql: structure/grants.ini structure/grants.sql
- echo "begin;" > $@
- $(GRANTFU) -R -o $< >> $@
- cat structure/grants.sql >> $@
- echo "commit;" >> $@
-
#
# docs
#
$(CATSQL) --ndoc structure/functions.sql > docs/sql/functions.sql
$(NDOC) $(NDOCARGS)
-cleandox:
- rm -rf docs/html docs/Data docs/sql
-
-clean: cleandox
-
and s.sub_consumer = c.co_id
for update of s;
if not found then
- raise exception 'main consumer not found';
+ perform pgq_coop.register_subconsumer(i_queue_name, i_consumer_name, i_subconsumer_name);
+ -- fetch the data again
+ select q.queue_id, c.co_id, s.sub_next_tick
+ into _queue_id, _consumer_id, _cur_tick
+ from pgq.queue q, pgq.consumer c, pgq.subscription s
+ where q.queue_name = i_queue_name
+ and c.co_name = i_consumer_name
+ and s.sub_queue = q.queue_id
+ and s.sub_consumer = c.co_id;
end if;
if _cur_tick is not null then
raise exception 'main consumer has batch open?';
# pgq_coop
comment = 'Cooperative queue consuming for PgQ'
-default_version = '3.1'
+default_version = '3.1.1'
relocatable = false
superuser = true
schema = 'pg_catalog'
create extension pgq_coop from 'unpackaged';
drop extension pgq_coop;
+-- workaround for postgres bug
+drop schema if exists pgq_coop;
+
create extension pgq_coop;
EXTENSION = pgq_ext
-Contrib_data_built = pgq_ext.sql pgq_ext.upgrade.sql \
- structure/oldgrants_pgq_ext.sql \
- structure/newgrants_pgq_ext.sql
-Contrib_regress = init_noext test_pgq_ext test_upgrade
+EXT_VERSION = 3.1
+EXT_OLD_VERSIONS =
+Contrib_regress = init_noext test_pgq_ext test_upgrade
Extension_regress = init_ext test_pgq_ext
-Extension_data_built = pgq_ext--3.1.sql pgq_ext--unpackaged--3.1.sql
-
-Contrib_install_always = yes
DOCS = README.pgq_ext
-SRCS = $(wildcard functions/*.sql structure/*.sql)
-
-GRANTFU = ../../scripts/grantfu.py
-CATSQL = ../../scripts/catsql.py
-NDOC = NaturalDocs
-NDOCARGS = -r -o html docs/html -p docs -i docs/sql
-
include ../common-pgxs.mk
-pgq_ext--3.1.sql: pgq_ext.sql structure/ext_postproc.sql
- cat $^ > $@
-
-pgq_ext--unpackaged--3.1.sql: pgq_ext.upgrade.sql structure/ext_unpackaged.sql structure/ext_postproc.sql
- cat $^ > $@
-
-pgq_ext.sql: $(SRCS)
- $(CATSQL) structure/install.sql > $@
-
-pgq_ext.upgrade.sql: $(SRCS)
- $(CATSQL) structure/upgrade.sql > $@
-
-structure/newgrants_pgq_ext.sql: structure/grants.ini
- $(GRANTFU) -t -r -d $< > $@
-
-structure/oldgrants_pgq_ext.sql: structure/grants.ini structure/grants.sql
- echo "begin;" > $@
- $(GRANTFU) -R -o $< >> $@
- cat structure/grants.sql >> $@
- echo "commit;" >> $@
-
-cleandox:
- rm -rf docs/html docs/Data docs/sql
-
dox: cleandox $(SRCS)
mkdir -p docs/html
mkdir -p docs/sql
EXTENSION = pgq_node
-Extension_data_built = pgq_node--3.1.sql pgq_node--unpackaged--3.1.sql
-Contrib_data_built = pgq_node.sql pgq_node.upgrade.sql \
- structure/newgrants_pgq_node.sql \
- structure/oldgrants_pgq_node.sql
+EXT_VERSION = 3.1
+EXT_OLD_VERSIONS =
Extension_regress = pgq_node_init_ext pgq_node_test
Contrib_regress = pgq_node_init_noext pgq_node_test
-Contrib_install_always = yes
-
-LDRS = structure/functions.sql
-FUNCS = $(shell sed -e 's/^[^\\].*//' -e 's/\\i //' $(LDRS))
-SRCS = structure/tables.sql structure/functions.sql structure/grants.sql \
- $(FUNCS)
-
include ../common-pgxs.mk
-NDOC = NaturalDocs
-NDOCARGS = -r -o html docs/html -p docs -i docs/sql
-CATSQL = ../../scripts/catsql.py
-GRANTFU = ../../scripts/grantfu.py
-
-#
-# combined SQL files
-#
-
-pgq_node--3.1.sql: pgq_node.sql structure/ext_postproc.sql
- cat $^ > $@
-
-pgq_node--unpackaged--3.1.sql: pgq_node.upgrade.sql structure/ext_unpackaged.sql structure/ext_postproc.sql
- cat $^ > $@
-
-pgq_node.sql: $(SRCS)
- $(CATSQL) structure/install.sql > $@
-
-pgq_node.upgrade.sql: $(SRCS)
- $(CATSQL) structure/upgrade.sql > $@
-
-structure/newgrants_pgq_node.sql: structure/grants.ini
- $(GRANTFU) -r -d -t $< > $@
-
-structure/oldgrants_pgq_node.sql: structure/grants.ini structure/grants.sql
- echo "begin;" > $@
- $(GRANTFU) -R -o $< >> $@
- cat structure/grants.sql >> $@
- echo "commit;" >> $@
-
-
#
# docs
#
+
dox: cleandox $(SRCS)
mkdir -p docs/html
mkdir -p docs/sql
$(CATSQL) --ndoc structure/functions.sql > docs/sql/functions.sql
$(NDOC) $(NDOCARGS)
-cleandox:
- rm -rf docs/html docs/Data docs/sql
-
-clean: cleandox
-