On Sat, May 14, 2011 at 16:26, Hyrum K Wright <hy...@hyrumwright.org> wrote: > On Sat, May 14, 2011 at 7:29 PM, Greg Stein <gst...@gmail.com> wrote: >... >>>... >>> + struct set_changelist_baton_t scb = { new_changelist, changelist_filter, >>> + depth }; >>> + int final_queries[] = { STMT_DROP_CHANGELIST_LIST, >>> STMT_DROP_TARGETS_LIST, >>> + -1 }; >> >> It seems that it would be cleaner to just put the 'DROP TABLE >> targets_list' into the STMT_DROP_CHANGELIST_LIST (maybe rename the >> latter to something like STMT_FINALIZE_CHANGELIST). Then you could rip >> out all this multiple statement stuff. I think one STMT would be >> cleaner than all this code to support multiple. > > The goal is to use the target_list stuff for multiple operations, such > as propset (and potentially things like info, too). As a result, the > 'DROP TABLE targets_list' will be used in combination with a number of > other finalize statements. I suppose we could duplicate that single > drop statement wherever we need to finalize an operation (and maybe > that's acceptable duplication), but I'd like to leave it separate, at > least for now.
That was my thought: just put that DROP into the other finalize statements. We already drop a bunch of triggers and the change_list table. I see no reason not to throw a drop of the targets_list in there, too. It just seems easier to have multiple SQL operations in one STMT, rather than simulate the same in C code. Cheers, -g