skytools.git
13 years agolondiste.periodic_maintenance: cleanup for applied_execute
Marko Kreen [Mon, 9 Jul 2012 09:47:02 +0000 (12:47 +0300)]
londiste.periodic_maintenance: cleanup for applied_execute

13 years agolondiste.applied_execute: drop queue_name from pkey
Marko Kreen [Mon, 9 Jul 2012 09:39:07 +0000 (12:39 +0300)]
londiste.applied_execute: drop queue_name from pkey

Reason - we want execute work also when parallel queues
from partitioned databases are merged together into
single queue.  Thus we need to be able to detect if same
changes have been applied through different queue.

13 years agolondiste execute: fix filter
Marko Kreen [Mon, 9 Jul 2012 09:36:36 +0000 (12:36 +0300)]
londiste execute: fix filter

13 years agolondiste replay: skip provider checks if copy_node is used
Marko Kreen [Fri, 6 Jul 2012 11:23:32 +0000 (14:23 +0300)]
londiste replay: skip provider checks if copy_node is used

Because the table does not need to exist on current provider then.

Perhaps it would be safer to go and check this new node,
but copy can wait for good state on its own too.

13 years agolondiste execute: support meta attributes in sql
Marko Kreen [Thu, 5 Jul 2012 15:47:47 +0000 (18:47 +0300)]
londiste execute: support meta attributes in sql

THis allows use of EXECUTE in sitations where table
can be missing on few nodes.

Currenly, this needed to to be solved with temp update functions
that detect local situation or avoiding Londiste completely.
Both which are non-optimal solutions.

13 years agoskytools.exists_view(): new function
Marko Kreen [Thu, 5 Jul 2012 15:25:32 +0000 (18:25 +0300)]
skytools.exists_view(): new function

13 years agolondiste: Wait commands for londiste
Marko Kreen [Thu, 5 Jul 2012 11:11:29 +0000 (14:11 +0300)]
londiste: Wait commands for londiste

add-table --wait-sync
  Don't return until all pending tables are synced

wait-sync
  Wait until all pending tables are synced.

wait-root
  Wait until root's next tick has appeared locally.

wait-provider
  Wait until provider's next tick has appeared locally.

13 years agodrop-node: move find_root before local drop
Marko Kreen [Thu, 5 Jul 2012 11:09:32 +0000 (14:09 +0300)]
drop-node: move find_root before local drop

also put them into separate try/except blocks.

This should increase success rate, hopefully.

Suggested-By: Eero Oja
13 years agosql_tokenizer: allow idents starting with underscore
Marko Kreen [Tue, 3 Jul 2012 08:54:39 +0000 (11:54 +0300)]
sql_tokenizer: allow idents starting with underscore

13 years agofileutil: write_atomic() for win32
Marko Kreen [Mon, 18 Jun 2012 14:26:02 +0000 (17:26 +0300)]
fileutil: write_atomic() for win32

win32 does not support atomic rename

13 years agopgq.maint_rotate_tables: check txid sanity, fail if bad
Marko Kreen [Fri, 15 Jun 2012 13:53:34 +0000 (16:53 +0300)]
pgq.maint_rotate_tables: check txid sanity, fail if bad

13 years agoBaseScript: write pidfile atomically to avoid corrupt pidfiles.
Marko Kreen [Fri, 15 Jun 2012 13:50:35 +0000 (16:50 +0300)]
BaseScript: write pidfile atomically to avoid corrupt pidfiles.

13 years agoMove signal_pidfile to 'fileutil' module
Marko Kreen [Fri, 15 Jun 2012 13:36:32 +0000 (16:36 +0300)]
Move signal_pidfile to 'fileutil' module

13 years agoskytools.fileutil: new module, contains write_atomic()
Marko Kreen [Fri, 15 Jun 2012 13:32:06 +0000 (16:32 +0300)]
skytools.fileutil: new module, contains write_atomic()

13 years agopgq_node.drop_node: mention node name in info message
Marko Kreen [Tue, 5 Jun 2012 12:43:33 +0000 (15:43 +0300)]
pgq_node.drop_node: mention node name in info message

13 years agoCascadedConsumer: re-initialize provider connection when location changes
Marko Kreen [Tue, 5 Jun 2012 10:25:17 +0000 (13:25 +0300)]
CascadedConsumer: re-initialize provider connection when location changes

This will avoid situation when connection is recreated with old connect string.

13 years agohandlers: improve documentation
Marko Kreen [Tue, 5 Jun 2012 10:17:06 +0000 (13:17 +0300)]
handlers: improve documentation

Add docstrings to part, londiste, qtable, qsplitter, vtable handlers.

13 years agolondiste.handler: make encoding= param available to part & londiste handlers
Marko Kreen [Tue, 5 Jun 2012 09:59:44 +0000 (12:59 +0300)]
londiste.handler: make encoding= param available to part & londiste handlers

- Move EncodingValidator from dispatch.py to handler.py
- Use it in TableHandler (londiste default)
- Thus it is inherited by 'part' handler too

13 years agohandlers.part: clarify COPY expression with braces
Marko Kreen [Tue, 5 Jun 2012 08:23:33 +0000 (11:23 +0300)]
handlers.part: clarify COPY expression with braces

13 years agoMerge remote branch 'tarvi/master'
Marko Kreen [Mon, 4 Jun 2012 13:55:00 +0000 (16:55 +0300)]
Merge remote branch 'tarvi/master'

13 years agoupdate walmgr doc
Tarvi Pillessaar [Mon, 4 Jun 2012 10:28:59 +0000 (13:28 +0300)]
update walmgr doc

13 years agodebian: build modules for all installed server-dev versions
Marko Kreen [Thu, 31 May 2012 17:05:14 +0000 (20:05 +0300)]
debian: build modules for all installed server-dev versions

Currently pg_buildext is designed for building official
Debian packages *only*, which makes is unusable for
users building for custom Postgres versions.

Fix:

- include pg_buildext (from 130~bpo60+1)
- patch it to print all installed versions
- include pgxs_debian_control.mk fragment
- use custom pg_buildext everywhere

I think this is bug in pg_buildext as official packages
can simply be built in deps-only environment.

13 years agov3.0.3 skytools_3_0_3
Marko Kreen [Wed, 30 May 2012 13:14:01 +0000 (16:14 +0300)]
v3.0.3

13 years agolondiste add-table --expect-sync: don't check table existance on provider
Marko Kreen [Wed, 30 May 2012 12:46:31 +0000 (15:46 +0300)]
londiste add-table --expect-sync: don't check table existance on provider

13 years agopgq_node.version(): 3.0.0.18
Marko Kreen [Wed, 30 May 2012 08:16:24 +0000 (11:16 +0300)]
pgq_node.version(): 3.0.0.18

13 years agopgq_node.drop_node(): forgot to remove raturn when planning fallthru
Marko Kreen [Wed, 30 May 2012 08:15:51 +0000 (11:15 +0300)]
pgq_node.drop_node(): forgot to remove raturn when planning fallthru

13 years agolondiste3.txt: describe --copy-node
Marko Kreen [Tue, 29 May 2012 12:33:22 +0000 (15:33 +0300)]
londiste3.txt: describe --copy-node

13 years agohandlers.dispatch: try both new and old create_partition
Marko Kreen [Tue, 29 May 2012 12:31:49 +0000 (15:31 +0300)]
handlers.dispatch: try both new and old create_partition

13 years agolondiste.version(): 3.0.0.16
Marko Kreen [Tue, 29 May 2012 10:39:37 +0000 (13:39 +0300)]
londiste.version(): 3.0.0.16

13 years agopgq_node.version(): 3.0.0.17
Marko Kreen [Tue, 29 May 2012 10:39:37 +0000 (13:39 +0300)]
pgq_node.version(): 3.0.0.17

13 years agoCascadedWorker: merge-leaf-to-branch needs to publish wm info
Marko Kreen [Tue, 29 May 2012 10:32:40 +0000 (13:32 +0300)]
CascadedWorker: merge-leaf-to-branch needs to publish wm info

Somehow the functionality got lost.

Seems the area is in need of some cleanups to
make code more clear.

13 years agohandlers/dispatch: fix keep_all/keep_latest doc
Marko Kreen [Mon, 28 May 2012 12:22:03 +0000 (15:22 +0300)]
handlers/dispatch: fix keep_all/keep_latest doc

13 years agodebian: add build-deps, force debian/control rebuild
Marko Kreen [Mon, 28 May 2012 10:54:48 +0000 (13:54 +0300)]
debian: add build-deps, force debian/control rebuild

debian/control:
  Add build-dep of any of server-dev packages.
  For some reason, server-dev-all does not depend on any

debian/rules:
  Rebuild it via stamp file, otherwise its easily ignored
  and modules package is left out from build.

13 years agoMerge remote branch 'intgit/master'
Marko Kreen [Fri, 25 May 2012 14:16:38 +0000 (17:16 +0300)]
Merge remote branch 'intgit/master'

13 years agosql/londiste: fix locale problem in londiste_merge test
Marko Kreen [Fri, 25 May 2012 13:32:26 +0000 (16:32 +0300)]
sql/londiste: fix locale problem in londiste_merge test

We want fixed sort order here to get quick overview of combinations.
Use 'name' type to get non-locale sorting.

Reported-By: Cédric Villemain
13 years agolondiste.create_partitions: improved rule support
Marko Kreen [Fri, 25 May 2012 13:31:53 +0000 (16:31 +0300)]
londiste.create_partitions: improved rule support

13 years agopublic.create_partition: drop rule logic from here
Marko Kreen [Fri, 25 May 2012 10:58:46 +0000 (13:58 +0300)]
public.create_partition: drop rule logic from here

No point maintaing it in two places.

Let the code stay as-is.

13 years agosignal_pidfile: support sig=0 on win32
Marko Kreen [Fri, 25 May 2012 09:30:54 +0000 (12:30 +0300)]
signal_pidfile: support sig=0 on win32

To avoid pywin32 dependency for such basic functionality,
use kernel32.dll via ctypes directly.

13 years agoskytools.UsageError: remove noise word
Marko Kreen [Fri, 25 May 2012 09:27:28 +0000 (12:27 +0300)]
skytools.UsageError: remove noise word

13 years agoCascadeAdmin: add node name prefix messages from db
Marko Kreen [Fri, 25 May 2012 08:53:36 +0000 (11:53 +0300)]
CascadeAdmin: add node name prefix messages from db

13 years agopgq_node.drop_node: drop queue data even if node_info is empty
Marko Kreen [Fri, 25 May 2012 08:52:27 +0000 (11:52 +0300)]
pgq_node.drop_node: drop queue data even if node_info is empty

13 years agolondiste.version(): 3.0.0.15
Marko Kreen [Thu, 24 May 2012 15:31:22 +0000 (18:31 +0300)]
londiste.version(): 3.0.0.15

13 years agopgq_node.version(): 3.0.0.16
Marko Kreen [Thu, 24 May 2012 15:31:22 +0000 (18:31 +0300)]
pgq_node.version(): 3.0.0.16

13 years agocreate_partition: move under londiste schema
Marko Kreen [Thu, 24 May 2012 15:30:12 +0000 (18:30 +0300)]
create_partition: move under londiste schema

It is now generic enough so no custom modifications
are not needed anymore.  So make it always-available.

13 years agocreate_partition: special-case for public grant
Marko Kreen [Thu, 24 May 2012 15:17:40 +0000 (18:17 +0300)]
create_partition: special-case for public grant

13 years agocreate_partition: also load rules from master table
Marko Kreen [Thu, 24 May 2012 15:11:42 +0000 (18:11 +0300)]
create_partition: also load rules from master table

13 years agoskytools.dbstruct: better rule name redirection
Marko Kreen [Thu, 24 May 2012 14:43:03 +0000 (17:43 +0300)]
skytools.dbstruct: better rule name redirection

Old code did not handle WHERE, nor repeated
table references in rule.

13 years agodbservice.get_record_list: do not use parse_pgarray on python lists
Tarvi Pillessaar [Wed, 23 May 2012 13:09:45 +0000 (16:09 +0300)]
dbservice.get_record_list: do not use parse_pgarray on python lists

13 years agoskytools.scripting: catch EINTR from sleep()
Marko Kreen [Tue, 22 May 2012 10:34:34 +0000 (13:34 +0300)]
skytools.scripting: catch EINTR from sleep()

13 years agoskytools.scripting: detect missing signals
Marko Kreen [Tue, 22 May 2012 09:58:54 +0000 (12:58 +0300)]
skytools.scripting: detect missing signals

Don't hook signals that are not supported by OS.

Needed for win32.

13 years agopgq_node: refresh regtest
Marko Kreen [Mon, 21 May 2012 10:41:20 +0000 (13:41 +0300)]
pgq_node: refresh regtest

13 years agopgq_node.unregister_location: do automatic unsubscribe
Marko Kreen [Mon, 21 May 2012 10:40:19 +0000 (13:40 +0300)]
pgq_node.unregister_location: do automatic unsubscribe

There may be obsolete subscriptions around, do unsubscribe
automatically, instead complaining.

13 years agolondiste remove-table: drop sequence too
Marko Kreen [Wed, 9 May 2012 13:25:46 +0000 (16:25 +0300)]
londiste remove-table: drop sequence too

13 years agolondiste.setup: UsageError requires module prefix
Marko Kreen [Mon, 21 May 2012 07:41:16 +0000 (10:41 +0300)]
londiste.setup: UsageError requires module prefix

13 years agohandlers.part: fix typo
Marko Kreen [Mon, 21 May 2012 07:38:48 +0000 (10:38 +0300)]
handlers.part: fix typo

13 years agolondiste copy: copy table from another node
Marko Kreen [Thu, 17 May 2012 15:03:29 +0000 (18:03 +0300)]
londiste copy: copy table from another node

add-table: --copy-node=NODENAME, store it into table_attrs
copy: take node name from table_attrs

13 years agoskytools_upgrade: fix special cases
Marko Kreen [Thu, 17 May 2012 12:47:00 +0000 (15:47 +0300)]
skytools_upgrade: fix special cases

13 years agolondiste.find_table_oid: drop old version - 9.1+ panics when argument name changes
Marko Kreen [Wed, 16 May 2012 12:13:59 +0000 (15:13 +0300)]
londiste.find_table_oid: drop old version - 9.1+ panics when argument name changes

13 years agosql/logtriga: compile on 9.1+
Marko Kreen [Wed, 16 May 2012 12:07:54 +0000 (15:07 +0300)]
sql/logtriga: compile on 9.1+

13 years agohandlers.dispatch: add comment about differences from part_func
Marko Kreen [Tue, 15 May 2012 15:41:16 +0000 (18:41 +0300)]
handlers.dispatch: add comment about differences from part_func

If create_partitions() does not exist, the table is created
manually.  But there are differences from how table is created.

Add comment about it, we might want to fix it someday.

13 years agoskytools_upgrade: show old version before upgrade
Marko Kreen [Tue, 15 May 2012 11:20:47 +0000 (14:20 +0300)]
skytools_upgrade: show old version before upgrade

13 years agopgq_node.create_node: create branch nodes with disable_insert set
Marko Kreen [Tue, 15 May 2012 11:16:40 +0000 (14:16 +0300)]
pgq_node.create_node: create branch nodes with disable_insert set

This is the proper approach to avoid any unexpected events
in the queue.  The flag is ignored if connection is in 'replica'
role, thus cascaded queueing continues to work.

13 years agopgq.insert_event(): remove unused variable.
Marko Kreen [Tue, 15 May 2012 09:49:23 +0000 (12:49 +0300)]
pgq.insert_event(): remove unused variable.

13 years agopgq.insert_event: ignore disable_insert if in 'replica' role
Marko Kreen [Tue, 15 May 2012 09:46:49 +0000 (12:46 +0300)]
pgq.insert_event: ignore disable_insert if in 'replica' role

Otherwise we cannot use insert_event on branch nodes.

We could allow it in 'local' role too, but another kind-of-valid
behaviour is to skip insert completely in 'local' role.
So until a valid use-case appers, don't ignore the flag
in 'local' role.

13 years agoAdd more contributors
Marko Kreen [Tue, 15 May 2012 09:37:14 +0000 (12:37 +0300)]
Add more contributors

13 years agoMerge branch 'master' of internal-git:/git/dba/skytools-3
Tarvi Pillessaar [Fri, 11 May 2012 07:58:10 +0000 (10:58 +0300)]
Merge branch 'master' of internal-git:/git/dba/skytools-3

13 years agov3.0.2 skytools_3_0_2
Marko Kreen [Thu, 10 May 2012 07:55:47 +0000 (10:55 +0300)]
v3.0.2

13 years agoRefresh debian packaging
Marko Kreen [Thu, 10 May 2012 18:29:43 +0000 (21:29 +0300)]
Refresh debian packaging

13 years agoAUTHORS: Add contributors to 3.x branch
Marko Kreen [Thu, 10 May 2012 18:01:40 +0000 (21:01 +0300)]
AUTHORS: Add contributors to 3.x branch

13 years agoSync AUTHORS list from 2.1 branch
Marko Kreen [Thu, 10 May 2012 17:50:25 +0000 (20:50 +0300)]
Sync AUTHORS list from 2.1 branch

13 years agowalmgr: fix backup from slave
Sergey Burladyan [Thu, 10 May 2012 17:55:43 +0000 (20:55 +0300)]
walmgr: fix backup from slave

Current version improperly remove needed WAL files when creating backup from slave.

The minimum WAL file is file with REDO record, not with latest checkpoint itself.

13 years agolondiste.version(): 3.0.0.14
Marko Kreen [Thu, 10 May 2012 16:19:31 +0000 (19:19 +0300)]
londiste.version(): 3.0.0.14

13 years agopgq_node.version(): 3.0.0.15
Marko Kreen [Thu, 10 May 2012 16:19:31 +0000 (19:19 +0300)]
pgq_node.version(): 3.0.0.15

13 years agopgq.version(): 3.0.0.15
Marko Kreen [Thu, 10 May 2012 16:19:31 +0000 (19:19 +0300)]
pgq.version(): 3.0.0.15

13 years agoInclude simple_consumer script
Marko Kreen [Thu, 10 May 2012 15:55:50 +0000 (18:55 +0300)]
Include simple_consumer script

Quick event processing by simply launching SQL
query for each event.

Forward-ported-by: Juta Vaks
13 years agolondiste: Always use TRUNCATE CASCADE
Marko Kreen [Wed, 9 May 2012 13:23:46 +0000 (16:23 +0300)]
londiste: Always use TRUNCATE CASCADE

Otherwise the operation cannot play well with
foreign keys, on both slave and master.

13 years agoCascadedWorker: publish_local_wm() is missing a commit
Marko Kreen [Mon, 7 May 2012 09:01:37 +0000 (12:01 +0300)]
CascadedWorker: publish_local_wm() is missing a commit

13 years agopsycopgwrapper: allow name= argument to .cursor()
Marko Kreen [Mon, 7 May 2012 09:01:17 +0000 (12:01 +0300)]
psycopgwrapper: allow name= argument to .cursor()

13 years agoGroup-access roles for SQL functions (draft)
Marko Kreen [Wed, 2 May 2012 13:45:00 +0000 (16:45 +0300)]
Group-access roles for SQL functions (draft)

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)

13 years agowalmgr: add option for init-slave to add password from file to .pgpass
Tarvi Pillessaar [Fri, 13 Apr 2012 08:57:22 +0000 (11:57 +0300)]
walmgr: add option for init-slave to add password from file to .pgpass
walmgr: add command synch-standby

13 years agosql/pgq: use terse verbosity in regtests
Marko Kreen [Wed, 2 May 2012 12:34:14 +0000 (15:34 +0300)]
sql/pgq: use terse verbosity in regtests

13 years agopgq.insert_event(): outer wrapper does not need to be secdef
Marko Kreen [Wed, 2 May 2012 12:29:07 +0000 (15:29 +0300)]
pgq.insert_event(): outer wrapper does not need to be secdef

13 years agosource.cfg: minor improvements
Marko Kreen [Wed, 2 May 2012 12:28:08 +0000 (15:28 +0300)]
source.cfg: minor improvements

13 years agohandlers.part: make hash func configurable
Marko Kreen [Wed, 2 May 2012 12:27:40 +0000 (15:27 +0300)]
handlers.part: make hash func configurable

13 years agov3.0.1-real skytools_3_0_1
Marko Kreen [Wed, 18 Apr 2012 12:54:22 +0000 (15:54 +0300)]
v3.0.1-real

13 years agopgq_coop.version(): 3.0.0.4
Marko Kreen [Wed, 18 Apr 2012 12:50:58 +0000 (15:50 +0300)]
pgq_coop.version(): 3.0.0.4

13 years agopgq_node.version(): 3.0.0.14
Marko Kreen [Wed, 18 Apr 2012 12:50:58 +0000 (15:50 +0300)]
pgq_node.version(): 3.0.0.14

13 years agopgq.version(): 3.0.0.14
Marko Kreen [Wed, 18 Apr 2012 12:50:58 +0000 (15:50 +0300)]
pgq.version(): 3.0.0.14

13 years agolondiste.handlers.dispatch: Detailed exception if part_field is NULL
Marko Kreen [Wed, 18 Apr 2012 12:46:31 +0000 (15:46 +0300)]
londiste.handlers.dispatch: Detailed exception if part_field is NULL

Give enough details to locate the event in queue

13 years agoskytools.skylog: make sysloghander compatible with both 2.6 and 2.7
Marko Kreen [Mon, 9 Apr 2012 08:41:04 +0000 (11:41 +0300)]
skytools.skylog: make sysloghander compatible with both 2.6 and 2.7

13 years agov3.0.1
Marko Kreen [Mon, 9 Apr 2012 08:23:33 +0000 (11:23 +0300)]
v3.0.1

13 years agoMerge remote branch 'intgit/master'
Marko Kreen [Thu, 5 Apr 2012 14:25:10 +0000 (17:25 +0300)]
Merge remote branch 'intgit/master'

13 years agoRefresh libusual
Marko Kreen [Thu, 5 Apr 2012 14:23:18 +0000 (17:23 +0300)]
Refresh libusual

13 years agodebian: include skytools.ini in tgz
Marko Kreen [Thu, 5 Apr 2012 11:40:41 +0000 (14:40 +0300)]
debian: include skytools.ini in tgz

13 years agoskylog: stop using standard SysLogHandler, it's broken
Marko Kreen [Thu, 5 Apr 2012 11:04:26 +0000 (14:04 +0300)]
skylog: stop using standard SysLogHandler, it's broken

It fails to handle unicode strings - it puts BOM in
wrong place.  Wrap logging.handlers implementation
in class that simply drops the BOM addition.

13 years agoskytools.config: improved compatibility with logging.Logger
martinko [Mon, 2 Apr 2012 14:33:54 +0000 (16:33 +0200)]
skytools.config: improved compatibility with logging.Logger

13 years agoMerge remote branch 'intgit/master'
Marko Kreen [Mon, 19 Mar 2012 09:55:46 +0000 (11:55 +0200)]
Merge remote branch 'intgit/master'

13 years agov3.0 skytools_3_0
Marko Kreen [Sat, 17 Mar 2012 12:00:49 +0000 (14:00 +0200)]
v3.0

13 years agodebian: Use new htmlinstall target to get html docs
Marko Kreen [Sat, 17 Mar 2012 11:59:26 +0000 (13:59 +0200)]
debian: Use new htmlinstall target to get html docs

13 years agosource.cfg: improve source filters
Marko Kreen [Fri, 16 Mar 2012 21:33:18 +0000 (23:33 +0200)]
source.cfg: improve source filters