| Age | Commit message (Collapse) | Author |
|
That case was broken in old 9.1 releases, fixed since 9.1.7.
The sequence will be owned by extension and without tagging
it will not be dumped in data dump.
|
|
Info-notices are warnings now.
Needed to ignore different notices in 9.3
|
|
|
|
This means it's value will be lost during dump+restore.
|
|
Keep installing old module files under contrib/ still.
|
|
This is attempt for fine-grained access rights for all
Skytools SQL schemas. As it still needs review,
the rights are not activated by default, instead
following sql files are generated:
newgrants_<schema>.sql - applies new rights, drop old public access
oldgrants_<schema>.sql - restores old rights - public execute
privilege to all functions
Only thing that is active by default is creation of new
groups in upgrade functions.
New access roles:
pgq_reader
Can consume queues (source-side)
pgq_writer
Can write into queues (source-side / dest-side)
Can use pgq_node/pgq_ext schema as regular
consumer (dest-side)
pgq_admin
Admin operations on queues, required for CascadedWorker on dest-side.
Member of pgq_reader and pgq_writer.
londiste_reader
Member of pgq_reader, needs additional read access to tables.
(source-side)
londiste_writer
Member of pgq_admin, needs additional write access to tables.
(dest-side)
|
|
|
|
|
|
|
|
this makes success/failure on 8.3 clearer.
|
|
|
|
|
|
Needed for deny trigger on leafs.
|
|
Seems it was broken in some reorg.
|
|
Event format:
ev_type - R
ev_extra1 - table name
Works only on Postgres 8.4+.
Patch by Hannu Krosing.
|
|
Similar to WHEN argument for CREATE TRIGGER in 9.0.
|
|
|
|
|
|
|
|
Move fields around for caching the trigger arguments
and cached plans for override queries.
|
|
previously it behaved differently from sqltriga, as it did not need
to analyze which field change. but it's better if it acts like
sqltriga when field ignoring is used.
|
|
|
|
pgq.sqltriga() / pgq.logutriga() now consider following fields magic:
_pgq_ev_type
_pgq_ev_data
_pgq_ev_extra1
_pgq_ev_extra2
_pgq_ev_extra3
_pgq_ev_extra4
If any of them is present in table, corresponding event field is set directly
to it's value, overriding value generated by trigger.
|
|
- pgq.logutriga() did not put custom pkey= value into events.
- pgq.logutriga() and pgq.sqltriga() did allow UPDATE and DELETE
on tables without pkey, running into SQL errors downstream.
They should throw error in such case.
|
|
For use by pgq_coop.
|
|
Badly designed and unused concept. If such thing is needed
it's much better to handle them via actual queue.
|
|
Helper function to fetch batch events using a cursor.
|
|
As PgQ can split batches only on transaction boundaries,
it does not tolerate huge number of events inserted by one TX.
This batch adds per-queue field queue_per_tx_limit, which can be
set to reasonable number and PgQ will enforce the limit, by throwing
error if event counts gets larger, thus rollbacking the problematic TX.
Such limit also adds possibility to survive UPDATE/DELETE statements,
where the WHERE clause is missing or buggy.
|
|
structure:
- event_seq field for pgq.tick table, to store last value
from event_id_seq
- 'disabled' field for pgq.queue, which can disable any
direct inserts to queue. inserts are allowed only
if session_role = 'replica'
functions:
- pgq.next_batch_info() as next_batch() but returns full details
- pgq.ticker(): now contains ticker logic that previously
was located in python code - it uses the event_seq field
in tick table to know about last sequence value
- pgq.insert_event_raw() - check disabled flag
- pgq.seq_getval() / pgq.seq_setval() functions for safe
sequence variable manipulation
- remove denytriga, now regular triggers can play the role
- use OUT parameters instead of ret types
- pgq.force_tick(): silently ignore the request on disabled queues
- pgq.maint_retry_events(): fwd port bugfix from 2.1-stable
- pgq.maint_rotate_tables(): cleanup from 2.1-stable
- pgq.maint_tables_to_vacuum(): add more tables
- triggers/common.c: bugfix from 2.1-stable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|