2012-05-30  -  SkyTools 3.0.3  -  ""

  = Features =

    * londiste copy: copy table from another node (add-table --copy-node=NODE)
    * londiste remove-table: drop sequence too
    * public.create_partition: move under londiste schema, it's now generic enough
    * londiste.create_partitions: Support copying rules from master table
    * handlers.dispatch: use londiste.create_partitions, use old func as fallback
    * walmgr: add option for init-slave to add password from file to .pgpass
    * walmgr: add command synch-standby

  = Fixes =

    * CascadedWorker: merge-leaf-to-branch needs to publish wm info
    * pgq_node.create_node: create branch nodes with disable_insert set
    * pgq.insert_event: ignore disable_insert if in 'replica' role
    * create_partition: public grant needs special casing
    * skytools.dbstruct: better rule name redirection
    * debian: add build-deps, force debian/control rebuild
    * pgq_node.unregister_location: do automatic unsubscribe
    * pgq_node.drop_node: drop queue data even if node_info is empty
    * londiste add-table: --expect-sync does not require table existance on provider

  = Cleanups =

    * skytools_upgrade: show old version before upgrade
    * CascadeAdmin: add node name prefix messages from db
    * handlers.dispatch: add comment about differences from part_func
    * londiste.find_table_oid: drop old version - 9.1+ panics when argument name changes
    * dbservice.get_record_list: do not use parse_pgarray on python lists

  = Win32 =

    * skytools.scripting: catch EINTR from sleep()
    * signal_pidfile: support sig=0 on win32
    * skytools.scripting: detect if signal name exists

  = Schema version changes =

    * pgq_node.version(): 3.0.0.18
    * londiste.version(): 3.0.0.16

2012-05-10  -  SkyTools 3.0.2  -  "Consumes 30% Less Brain Than Competing Products"

  = Features =

    * Draft implementation of fine-grained grants for SQL
      functions.  See commit doc/sql-grants.txt for details.
      New roles are created during upgrade, but new grants
      need to be applied manually.

    * pgq.create_queue: instead pre-determined grants,
      copy grants for event tables from pgq.event_template.

    * simple_consumer.py script, for simply event processing
      by simply launching a SQL function for each event.

    * londiste.handlers.part: make hash function configurable

    * psycopgwrapper: allow name= argument to .cursor()

  = Fixes =

    * londiste: Always use TRUNCATE CASCADE

    * pgq.cascade.CascadedWorker: publish_local_wm() is missing a commit

    * walmgr: fix backup from slave (Sergey Burladyan)

  = Cleanups =

    * pgq.insert_event(): outer wrapper does not need to be secdef

    * source.cfg: minor improvements

    * sql/pgq: use terse verbosity in regtests

2012-04-18  -  SkyTools 3.0.1  -  "All The Snow You Can Eat"

  = Features =

    * skytools.config: new .getbytes() method to support
      human-readable sizes.

  = Fixes =

    * skytools.skylog: Wrap logger.handlers.SysLogHandler to work
      around broken BOM addition when logging unicode() strings.

    * skytools.skylog: Improve compatibility with direct
      logger module usage.

    * debian/skytools.ini: include in tgz

    * pgqd(libusual): ignore EINTR on close()

    * Better error message in londiste.handler.dispatch
      when part_field is NULL.

    * Bump internal version in pgq/pgq_coop/pgq_node schemas.
      Seems I forgot to do it for 3.0, probably because
      there were doc-only changes in SQL code.

2012-03-17  -  SkyTools 3.0  -  "Business Advantage"

  = Major New Features =

    * Cascaded queues
    * Londiste: Parallel copy
    * Londiste: EXECUTE
    * Londiste: handlers
    * QAdmin
    * pgqd

