summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2007-04-05 09:50:07 +0000
committerMarko Kreen2007-04-05 09:50:07 +0000
commit3dcd44fb908b51d2925e7a5cbc16b35e000b5b6d (patch)
treefe4e0d50dac760e92790daa2ad49be326342bd47
parent7fc9791ed2b1f1677fedc2b0ee8e793526f51ef6 (diff)
split regtests, add one for rotate
-rw-r--r--sql/pgq/Makefile2
-rw-r--r--sql/pgq/expected/logutriga.out8
-rw-r--r--sql/pgq/expected/pgq_core.out267
-rw-r--r--sql/pgq/expected/pgq_init.out252
-rw-r--r--sql/pgq/sql/pgq_core.sql66
-rw-r--r--sql/pgq/sql/pgq_init.sql59
6 files changed, 338 insertions, 316 deletions
diff --git a/sql/pgq/Makefile b/sql/pgq/Makefile
index f9094311..de1787d5 100644
--- a/sql/pgq/Makefile
+++ b/sql/pgq/Makefile
@@ -7,7 +7,7 @@ SRCS = $(wildcard structure/*.sql) \
$(wildcard functions/*.sql) \
$(wildcard triggers/*.sql)
-REGRESS = pgq_init logutriga sqltriga
+REGRESS = pgq_init pgq_core logutriga sqltriga
REGRESS_OPTS = --load-language=plpythonu --load-language=plpgsql
PGXS = $(shell pg_config --pgxs)
diff --git a/sql/pgq/expected/logutriga.out b/sql/pgq/expected/logutriga.out
index 6c7f9b14..5a0384d1 100644
--- a/sql/pgq/expected/logutriga.out
+++ b/sql/pgq/expected/logutriga.out
@@ -15,8 +15,8 @@ NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "udata_pkey" for
create trigger utest AFTER insert or update or delete ON udata
for each row execute procedure pgq.logutriga('udata_que');
insert into udata (txt) values ('text1');
-ERROR: plpython: function "logutriga" failed
-DETAIL: exceptions.NameError: global name 'rowdata' is not defined
+NOTICE: insert_event(udata_que, I, bin&txt=text1&id=1, public.udata)
+CONTEXT: SQL statement "SELECT pgq.insert_event($1, $2, $3, $4, $5, null, null)"
insert into udata (bin) values (E'bi\tn\\000bin');
-ERROR: plpython: function "logutriga" failed
-DETAIL: exceptions.NameError: global name 'rowdata' is not defined
+NOTICE: insert_event(udata_que, I, bin=bi%5C011n%5C000bin&txt&id=2, public.udata)
+CONTEXT: SQL statement "SELECT pgq.insert_event($1, $2, $3, $4, $5, null, null)"
diff --git a/sql/pgq/expected/pgq_core.out b/sql/pgq/expected/pgq_core.out
new file mode 100644
index 00000000..a70ab501
--- /dev/null
+++ b/sql/pgq/expected/pgq_core.out
@@ -0,0 +1,267 @@
+select * from pgq.maint_tables_to_vacuum();
+ maint_tables_to_vacuum
+------------------------
+ pgq.subscription
+ pgq.consumer
+ pgq.queue
+ pgq.tick
+ pgq.retry_queue
+(5 rows)
+
+select * from pgq.maint_retry_events();
+ maint_retry_events
+--------------------
+ 0
+(1 row)
+
+select pgq.create_queue('tmpqueue');
+ create_queue
+--------------
+ 1
+(1 row)
+
+select pgq.register_consumer('tmpqueue', 'consumer');
+ register_consumer
+-------------------
+ 1
+(1 row)
+
+select pgq.unregister_consumer('tmpqueue', 'consumer');
+ unregister_consumer
+---------------------
+ 1
+(1 row)
+
+select pgq.drop_queue('tmpqueue');
+ drop_queue
+------------
+ 1
+(1 row)
+
+select pgq.create_queue('myqueue');
+ create_queue
+--------------
+ 1
+(1 row)
+
+select pgq.register_consumer('myqueue', 'consumer');
+ register_consumer
+-------------------
+ 1
+(1 row)
+
+select pgq.next_batch('myqueue', 'consumer');
+ next_batch
+------------
+
+(1 row)
+
+select pgq.next_batch('myqueue', 'consumer');
+ next_batch
+------------
+
+(1 row)
+
+select pgq.ticker();
+ ticker
+--------
+ 1
+(1 row)
+
+select pgq.next_batch('myqueue', 'consumer');
+ next_batch
+------------
+ 1
+(1 row)
+
+select pgq.next_batch('myqueue', 'consumer');
+ next_batch
+------------
+ 1
+(1 row)
+
+select queue_name, consumer_name, prev_tick_id, tick_id, lag from pgq.get_batch_info(1);
+ queue_name | consumer_name | prev_tick_id | tick_id | lag
+------------+---------------+--------------+---------+-------------
+ myqueue | consumer | 1 | 2 | @ 0.00 secs
+(1 row)
+
+select queue_name from pgq.get_queue_info() limit 0;
+ queue_name
+------------
+(0 rows)
+
+select queue_name, consumer_name from pgq.get_consumer_info() limit 0;
+ queue_name | consumer_name
+------------+---------------
+(0 rows)
+
+select pgq.finish_batch(1);
+ finish_batch
+--------------
+ 1
+(1 row)
+
+select pgq.finish_batch(1);
+WARNING: finish_batch: batch 1 not found
+ finish_batch
+--------------
+ 0
+(1 row)
+
+select pgq.ticker();
+ ticker
+--------
+ 1
+(1 row)
+
+select pgq.next_batch('myqueue', 'consumer');
+ next_batch
+------------
+ 2
+(1 row)
+
+select * from pgq.batch_event_tables(2);
+ batch_event_tables
+--------------------
+ pgq.event_2_0
+(1 row)
+
+select * from pgq.get_batch_events(2);
+ ev_id | ev_time | ev_txid | ev_retry | ev_type | ev_data | ev_extra1 | ev_extra2 | ev_extra3 | ev_extra4
+-------+---------+---------+----------+---------+---------+-----------+-----------+-----------+-----------
+(0 rows)
+
+select pgq.finish_batch(2);
+ finish_batch
+--------------
+ 1
+(1 row)
+
+select pgq.insert_event('myqueue', 'r1', 'data');
+ insert_event
+--------------
+ 1
+(1 row)
+
+select pgq.insert_event('myqueue', 'r2', 'data');
+ insert_event
+--------------
+ 2
+(1 row)
+
+select pgq.insert_event('myqueue', 'r3', 'data');
+ insert_event
+--------------
+ 3
+(1 row)
+
+select pgq.current_event_table('myqueue');
+ current_event_table
+---------------------
+ pgq.event_2_0
+(1 row)
+
+select pgq.ticker();
+ ticker
+--------
+ 1
+(1 row)
+
+select pgq.next_batch('myqueue', 'consumer');
+ next_batch
+------------
+ 3
+(1 row)
+
+select ev_id,ev_retry,ev_type,ev_data,ev_extra1,ev_extra2,ev_extra3,ev_extra4 from pgq.get_batch_events(3);
+ ev_id | ev_retry | ev_type | ev_data | ev_extra1 | ev_extra2 | ev_extra3 | ev_extra4
+-------+----------+---------+---------+-----------+-----------+-----------+-----------
+ 1 | | r1 | data | | | |
+ 2 | | r2 | data | | | |
+ 3 | | r3 | data | | | |
+(3 rows)
+
+select * from pgq.failed_event_list('myqueue', 'consumer');
+ ev_failed_reason | ev_failed_time | ev_id | ev_time | ev_txid | ev_owner | ev_retry | ev_type | ev_data | ev_extra1 | ev_extra2 | ev_extra3 | ev_extra4
+------------------+----------------+-------+---------+---------+----------+----------+---------+---------+-----------+-----------+-----------+-----------
+(0 rows)
+
+select pgq.event_failed(3, 1, 'failure test');
+ event_failed
+--------------
+ 1
+(1 row)
+
+select pgq.event_failed(3, 1, 'failure test');
+ event_failed
+--------------
+ 0
+(1 row)
+
+select pgq.event_retry(3, 2, 0);
+ event_retry
+-------------
+ 1
+(1 row)
+
+select pgq.event_retry(3, 2, 0);
+ event_retry
+-------------
+ 0
+(1 row)
+
+select pgq.finish_batch(3);
+ finish_batch
+--------------
+ 1
+(1 row)
+
+select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
+ from pgq.failed_event_list('myqueue', 'consumer');
+ ev_failed_reason | ev_id | ev_txid | ev_retry | ev_type | ev_data
+------------------+-------+---------+----------+---------+---------
+ failure test | 1 | | 0 | r1 | data
+(1 row)
+
+select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
+ from pgq.failed_event_list('myqueue', 'consumer', 0, 1);
+ ev_failed_reason | ev_id | ev_txid | ev_retry | ev_type | ev_data
+------------------+-------+---------+----------+---------+---------
+(0 rows)
+
+select * from pgq.failed_event_count('myqueue', 'consumer');
+ failed_event_count
+--------------------
+ 1
+(1 row)
+
+select * from pgq.failed_event_delete('myqueue', 'consumer', 0);
+ERROR: event not found
+select pgq.event_retry_raw('myqueue', 'consumer', now(), 666, now(), 0,
+ 'rawtest', 'data', null, null, null, null);
+ event_retry_raw
+-----------------
+ 666
+(1 row)
+
+select pgq.ticker();
+ ticker
+--------
+ 1
+(1 row)
+
+-- test maint
+update pgq.queue set queue_rotation_period = '0 seconds';
+select queue_name, pgq.maint_rotate_tables_step1(queue_name) from pgq.queue;
+ queue_name | maint_rotate_tables_step1
+------------+---------------------------
+ myqueue | 1
+(1 row)
+
+select pgq.maint_rotate_tables_step2();
+ maint_rotate_tables_step2
+---------------------------
+ 1
+(1 row)
+
diff --git a/sql/pgq/expected/pgq_init.out b/sql/pgq/expected/pgq_init.out
index 67b555ca..25fdbb1a 100644
--- a/sql/pgq/expected/pgq_init.out
+++ b/sql/pgq/expected/pgq_init.out
@@ -1,253 +1 @@
\set ECHO none
-select * from pgq.maint_tables_to_vacuum();
- maint_tables_to_vacuum
-------------------------
- pgq.subscription
- pgq.queue
- pgq.tick
- pgq.retry_queue
-(4 rows)
-
-select * from pgq.maint_retry_events();
- maint_retry_events
---------------------
- 0
-(1 row)
-
-select pgq.create_queue('tmpqueue');
- create_queue
---------------
- 1
-(1 row)
-
-select pgq.register_consumer('tmpqueue', 'consumer');
- register_consumer
--------------------
- 1
-(1 row)
-
-select pgq.unregister_consumer('tmpqueue', 'consumer');
- unregister_consumer
----------------------
- 1
-(1 row)
-
-select pgq.drop_queue('tmpqueue');
- drop_queue
-------------
- 1
-(1 row)
-
-select pgq.create_queue('myqueue');
- create_queue
---------------
- 1
-(1 row)
-
-select pgq.register_consumer('myqueue', 'consumer');
- register_consumer
--------------------
- 1
-(1 row)
-
-select pgq.next_batch('myqueue', 'consumer');
- next_batch
-------------
-
-(1 row)
-
-select pgq.next_batch('myqueue', 'consumer');
- next_batch
-------------
-
-(1 row)
-
-select pgq.ticker();
- ticker
---------
- 1
-(1 row)
-
-select pgq.next_batch('myqueue', 'consumer');
- next_batch
-------------
- 1
-(1 row)
-
-select pgq.next_batch('myqueue', 'consumer');
- next_batch
-------------
- 1
-(1 row)
-
-select queue_name, consumer_name, prev_tick_id, tick_id, lag from pgq.get_batch_info(1);
- queue_name | consumer_name | prev_tick_id | tick_id | lag
-------------+---------------+--------------+---------+-------------
- myqueue | consumer | 1 | 2 | @ 0.00 secs
-(1 row)
-
-select queue_name from pgq.get_queue_info() limit 0;
- queue_name
-------------
-(0 rows)
-
-select queue_name, consumer_name from pgq.get_consumer_info() limit 0;
- queue_name | consumer_name
-------------+---------------
-(0 rows)
-
-select pgq.finish_batch(1);
- finish_batch
---------------
- 1
-(1 row)
-
-select pgq.finish_batch(1);
-WARNING: finish_batch: batch 1 not found
- finish_batch
---------------
- 0
-(1 row)
-
-select pgq.ticker();
- ticker
---------
- 1
-(1 row)
-
-select pgq.next_batch('myqueue', 'consumer');
- next_batch
-------------
- 2
-(1 row)
-
-select * from pgq.batch_event_tables(2);
- batch_event_tables
---------------------
- pgq.event_2_0
-(1 row)
-
-select * from pgq.get_batch_events(2);
- ev_id | ev_time | ev_txid | ev_retry | ev_type | ev_data | ev_extra1 | ev_extra2 | ev_extra3 | ev_extra4
--------+---------+---------+----------+---------+---------+-----------+-----------+-----------+-----------
-(0 rows)
-
-select pgq.finish_batch(2);
- finish_batch
---------------
- 1
-(1 row)
-
-select pgq.insert_event('myqueue', 'r1', 'data');
- insert_event
---------------
- 1
-(1 row)
-
-select pgq.insert_event('myqueue', 'r2', 'data');
- insert_event
---------------
- 2
-(1 row)
-
-select pgq.insert_event('myqueue', 'r3', 'data');
- insert_event
---------------
- 3
-(1 row)
-
-select pgq.current_event_table('myqueue');
- current_event_table
----------------------
- pgq.event_2_0
-(1 row)
-
-select pgq.ticker();
- ticker
---------
- 1
-(1 row)
-
-select pgq.next_batch('myqueue', 'consumer');
- next_batch
-------------
- 3
-(1 row)
-
-select ev_id,ev_retry,ev_type,ev_data,ev_extra1,ev_extra2,ev_extra3,ev_extra4 from pgq.get_batch_events(3);
- ev_id | ev_retry | ev_type | ev_data | ev_extra1 | ev_extra2 | ev_extra3 | ev_extra4
--------+----------+---------+---------+-----------+-----------+-----------+-----------
- 1 | | r1 | data | | | |
- 2 | | r2 | data | | | |
- 3 | | r3 | data | | | |
-(3 rows)
-
-select * from pgq.failed_event_list('myqueue', 'consumer');
- ev_failed_reason | ev_failed_time | ev_id | ev_time | ev_txid | ev_owner | ev_retry | ev_type | ev_data | ev_extra1 | ev_extra2 | ev_extra3 | ev_extra4
-------------------+----------------+-------+---------+---------+----------+----------+---------+---------+-----------+-----------+-----------+-----------
-(0 rows)
-
-select pgq.event_failed(3, 1, 'failure test');
- event_failed
---------------
- 1
-(1 row)
-
-select pgq.event_failed(3, 1, 'failure test');
- event_failed
---------------
- 0
-(1 row)
-
-select pgq.event_retry(3, 2, 0);
- event_retry
--------------
- 1
-(1 row)
-
-select pgq.event_retry(3, 2, 0);
- event_retry
--------------
- 0
-(1 row)
-
-select pgq.finish_batch(3);
- finish_batch
---------------
- 1
-(1 row)
-
-select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
- from pgq.failed_event_list('myqueue', 'consumer');
- ev_failed_reason | ev_id | ev_txid | ev_retry | ev_type | ev_data
-------------------+-------+---------+----------+---------+---------
- failure test | 1 | | 0 | r1 | data
-(1 row)
-
-select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
- from pgq.failed_event_list('myqueue', 'consumer', 0, 1);
- ev_failed_reason | ev_id | ev_txid | ev_retry | ev_type | ev_data
-------------------+-------+---------+----------+---------+---------
-(0 rows)
-
-select * from pgq.failed_event_count('myqueue', 'consumer');
- failed_event_count
---------------------
- 1
-(1 row)
-
-select * from pgq.failed_event_delete('myqueue', 'consumer', 0);
-ERROR: event not found
-select pgq.event_retry_raw('myqueue', 'consumer', now(), 666, now(), 0,
- 'rawtest', 'data', null, null, null, null);
- event_retry_raw
------------------
- 666
-(1 row)
-
-select pgq.ticker();
- ticker
---------
- 1
-(1 row)
-
diff --git a/sql/pgq/sql/pgq_core.sql b/sql/pgq/sql/pgq_core.sql
new file mode 100644
index 00000000..a3f724d1
--- /dev/null
+++ b/sql/pgq/sql/pgq_core.sql
@@ -0,0 +1,66 @@
+
+select * from pgq.maint_tables_to_vacuum();
+select * from pgq.maint_retry_events();
+
+select pgq.create_queue('tmpqueue');
+select pgq.register_consumer('tmpqueue', 'consumer');
+select pgq.unregister_consumer('tmpqueue', 'consumer');
+select pgq.drop_queue('tmpqueue');
+
+select pgq.create_queue('myqueue');
+select pgq.register_consumer('myqueue', 'consumer');
+select pgq.next_batch('myqueue', 'consumer');
+select pgq.next_batch('myqueue', 'consumer');
+select pgq.ticker();
+select pgq.next_batch('myqueue', 'consumer');
+select pgq.next_batch('myqueue', 'consumer');
+
+select queue_name, consumer_name, prev_tick_id, tick_id, lag from pgq.get_batch_info(1);
+select queue_name from pgq.get_queue_info() limit 0;
+select queue_name, consumer_name from pgq.get_consumer_info() limit 0;
+
+select pgq.finish_batch(1);
+select pgq.finish_batch(1);
+
+select pgq.ticker();
+select pgq.next_batch('myqueue', 'consumer');
+select * from pgq.batch_event_tables(2);
+select * from pgq.get_batch_events(2);
+select pgq.finish_batch(2);
+
+select pgq.insert_event('myqueue', 'r1', 'data');
+select pgq.insert_event('myqueue', 'r2', 'data');
+select pgq.insert_event('myqueue', 'r3', 'data');
+select pgq.current_event_table('myqueue');
+select pgq.ticker();
+
+select pgq.next_batch('myqueue', 'consumer');
+select ev_id,ev_retry,ev_type,ev_data,ev_extra1,ev_extra2,ev_extra3,ev_extra4 from pgq.get_batch_events(3);
+
+select * from pgq.failed_event_list('myqueue', 'consumer');
+
+select pgq.event_failed(3, 1, 'failure test');
+select pgq.event_failed(3, 1, 'failure test');
+select pgq.event_retry(3, 2, 0);
+select pgq.event_retry(3, 2, 0);
+select pgq.finish_batch(3);
+
+select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
+ from pgq.failed_event_list('myqueue', 'consumer');
+
+select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
+ from pgq.failed_event_list('myqueue', 'consumer', 0, 1);
+
+select * from pgq.failed_event_count('myqueue', 'consumer');
+select * from pgq.failed_event_delete('myqueue', 'consumer', 0);
+
+select pgq.event_retry_raw('myqueue', 'consumer', now(), 666, now(), 0,
+ 'rawtest', 'data', null, null, null, null);
+
+select pgq.ticker();
+
+-- test maint
+update pgq.queue set queue_rotation_period = '0 seconds';
+select queue_name, pgq.maint_rotate_tables_step1(queue_name) from pgq.queue;
+select pgq.maint_rotate_tables_step2();
+
diff --git a/sql/pgq/sql/pgq_init.sql b/sql/pgq/sql/pgq_init.sql
index 95f46459..565659ea 100644
--- a/sql/pgq/sql/pgq_init.sql
+++ b/sql/pgq/sql/pgq_init.sql
@@ -5,62 +5,3 @@
\set ECHO all
-select * from pgq.maint_tables_to_vacuum();
-select * from pgq.maint_retry_events();
-
-select pgq.create_queue('tmpqueue');
-select pgq.register_consumer('tmpqueue', 'consumer');
-select pgq.unregister_consumer('tmpqueue', 'consumer');
-select pgq.drop_queue('tmpqueue');
-
-select pgq.create_queue('myqueue');
-select pgq.register_consumer('myqueue', 'consumer');
-select pgq.next_batch('myqueue', 'consumer');
-select pgq.next_batch('myqueue', 'consumer');
-select pgq.ticker();
-select pgq.next_batch('myqueue', 'consumer');
-select pgq.next_batch('myqueue', 'consumer');
-
-select queue_name, consumer_name, prev_tick_id, tick_id, lag from pgq.get_batch_info(1);
-select queue_name from pgq.get_queue_info() limit 0;
-select queue_name, consumer_name from pgq.get_consumer_info() limit 0;
-
-select pgq.finish_batch(1);
-select pgq.finish_batch(1);
-
-select pgq.ticker();
-select pgq.next_batch('myqueue', 'consumer');
-select * from pgq.batch_event_tables(2);
-select * from pgq.get_batch_events(2);
-select pgq.finish_batch(2);
-
-select pgq.insert_event('myqueue', 'r1', 'data');
-select pgq.insert_event('myqueue', 'r2', 'data');
-select pgq.insert_event('myqueue', 'r3', 'data');
-select pgq.current_event_table('myqueue');
-select pgq.ticker();
-
-select pgq.next_batch('myqueue', 'consumer');
-select ev_id,ev_retry,ev_type,ev_data,ev_extra1,ev_extra2,ev_extra3,ev_extra4 from pgq.get_batch_events(3);
-
-select * from pgq.failed_event_list('myqueue', 'consumer');
-
-select pgq.event_failed(3, 1, 'failure test');
-select pgq.event_failed(3, 1, 'failure test');
-select pgq.event_retry(3, 2, 0);
-select pgq.event_retry(3, 2, 0);
-select pgq.finish_batch(3);
-
-select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
- from pgq.failed_event_list('myqueue', 'consumer');
-
-select ev_failed_reason, ev_id, ev_txid, ev_retry, ev_type, ev_data
- from pgq.failed_event_list('myqueue', 'consumer', 0, 1);
-
-select * from pgq.failed_event_count('myqueue', 'consumer');
-select * from pgq.failed_event_delete('myqueue', 'consumer', 0);
-
-select pgq.event_retry_raw('myqueue', 'consumer', now(), 666, now(), 0,
- 'rawtest', 'data', null, null, null, null);
-
-select pgq.ticker();