Allow ; instead of tab
Add -k option to spec loader to "keep going" on error, like eponymous option to make(1)
Misc improvements to degenerate booleans

- Drop false cases from ORs
- Apparently TRUE/FALSE are MySQL extensions
- Do not generate IN (), is syntax error
quiet t/07_buildwhere
A first run optimization

If we discover we need a column after the initial fetch, pull rowcache-size
chunks of the column instead of single values at a time.
Avoid crashing when unknown fields are added to cache_fielduse (ROP-170)
Implement ORDER BY
Quote all identifiers
some more fallout from the qualification change
ALL schema objects now have an associated instance_id which is threaded through accessors.  dbr_schema returns "inert" objects with an instance of -1.
Generate qualified table names for mysql
Use the same connection for instances which share a connectstring
allow joins of colocated but cross-schema relations
Implement v2 mass delete, with a name that should be hard to hit inadvertantly
Implement ORDER BY DESC
Allow user code to make frames scope-transparent
A split query join optimization

Given the schema (relations and foreign keys omitted for brevity):

CREATE TABLE foo (id, name);
CREATE TABLE bar (id, name);
CREATE TABLE foo_bar_map (id, foo_id, bar_id);

INSERT INTO bar VALUES (1,"BAR");
INSERT INTO foo VALUES (1,"Foo 1"),...,(1000,"Foo 1000");
INSERT INTO foo_bar_map VALUES (1,1,1),...,(1,1000,1);

and the following query:

my $rs = dbr_connect('my_schema')->foo->all;
while (my $r = $rs->next) {
    print $r->name,"\t",$r->bar_maps->next->bar->name,"\n";
}

then the previous code would make a hair over 1000 queries, or 2000 on a cold
cache, because each bar_maps resultset is treated as independent and cannot
amortize the bar query with its siblings.  This has been changed to allow the
rowcache to cross query-splitting boundries, reducing the above to 3 selects (6
cold).
if an instance cannot be located, try partially reloading the metadata.
Code review tweaks
Removal of UI admin stuff