On Thu, Sep 08, 2011 at 03:20:14PM -0400, Andrew Dunstan wrote: > > In the "refactoring Large C files" discussion one of the biggest > files Bruce mentioned is pg_dump.c. There has been discussion in the > past of turning lots of the knowledge currently embedded in this > file into a library, which would make it available to other clients > (e.g. psql). I'm not sure what a reasonable API for that would look > like, though. Does anyone have any ideas?
Here's a sketch. In essence, libpgdump should have the following areas of functionality: - Discover the user-defined objects in the database. - Tag each as pre-data, data, and post-data. - Make available the dependency graph of the user-defined objects in the database. - Enable the mechanical selection of subgraphs which may or may not be connected. - Discover parallelization capability, if available. - Dump requested objects of an arbitrary subset of the database, optionally using such capability. Then there's questions of scope, which I'm straddling the fence about. Should there be separate libraries to transform and restore? A thing I'd really like to have in a libdump would be to have the RDBMS-specific parts as loadable modules, but that, too, could be way out of scope for this. Cheers, David. -- David Fetter <da...@fetter.org> http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fet...@gmail.com iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers