TODO list for Bucardo
=====================

Version 5:

* Fix 'error loop' escaping bug from mailing list
  https://github.com/bucardo/bucardo/issues/13

* Fix quoting bug reported by Sean M. Pappalardo
  https://github.com/bucardo/bucardo/issues/14

* Fix need for password argument when using md5
  https://github.com/bucardo/bucardo/issues/15

* Get Drizzle tests verified as working
  https://github.com/bucardo/bucardo/issues/16

* Get bucardo-report working again
  https://github.com/bucardo/bucardo/issues/17

* Note minimum Postgres version requirements (source and target)
  https://github.com/bucardo/bucardo/issues/18

* Get some solid tests for the makedelta system
  https://github.com/bucardo/bucardo/issues/19

* Fix bug with checking wrong tables in databases on startup reported to list

* Get customcode working, with tests
  https://github.com/bucardo/bucardo/issues/20

* Make sure all outstanding mailing list questions are handled.




These range the gamut from wildly speculative ideas to must-have features.

- Allow one log file per sync
- Handle the case where newly created databases do not have a public schema
- Add DB2 as a target
- Do table locking up front for fullcopy syncs, to reduce deadlock windows
- Allow creation of schema on first fullcopy as an option
- Same as above for pushdelta, but auto switch to onetimecopy after!
- Remove the gotos from the pl/perlu code.
- Use symlinks for long socket directories during testing, as DBD::Pg does.
- Fix the insert/foreign key problem for conflict resolution.
- Death-level custom code hooks
- Better conflict example in test suite, uses database handles
- Allow more data types for pkey on goats
- Handle partitioned tables
- Allow notification emails to be regex sorted, e.g. serialization warnings
- Address all XXX and TODO inside Bucardo.pm
- Add a pause mode
- Add exception code for DELETE
- I8n all messages/docs/etc.
- Allow targets to be hard-linked: nobody goes on until everyone has finished
- Support large objects
- Support system tables (Postgres 12.0?)
- Check for superuser on startup, to prevent errors that only show when a KID tries something.
- Add a flag that allows for table structure checking before each sync
- Make a Bucardo bundle for CPAN-like fun
- Readonly slaves: trigger/rule to prevent with good message
- bucardo_help() function to explain all
- Handle non-orderable data types such as polygons
- Put this list into a bug tracker
- Consider failover strategies
- Log validate_sync changes somewhere, add rollback statements
- Add support for manual DDL changes
- Add support for automatic DDL changes
- Cascading slaves: makedelta should create infrastructure as necessary
- Use polling not sleep for loop notifications
- Remove large src_code sections from the kid output when they die
- Force to C locale until we get i18n in place
- Use C triggers for the delta stuff if we can (and time them!)
- Find alternate ways for the kids to lock the tables other than $force_lock_file
- Options to allow Bucardo to continue with unaffected syncs if a target is dead

- Mongo: fix escaped data from COPY TO STDOUT
- Flatfiles: same escaped data as above for non-PG output
