> What existing table lookups can be bypassed if the db is known to be empty?
Not many, I think, because the old discussion suggests that checks for
existing items are everywhere, and are probably needed from the moment 1
item has been written.
> Is it easy to add such bypasses (presumably by nesting certain existing db
> lookups under something like "if empty_db == false:")?
It might be, but if the problem really is the checking for existing
items, to avoid duplicate IDs and such, one could also start with a 1st
pass through the database to collect those at the start of the import
This will then of course create empty lists (or dictionaries) if the
database IS empty, but those lists will quickly fill anyway, and this
approach will avoid the frustration one might encounter when an existing
database is not empty, but 'just small'.
Gramps 4 allows GEDCOM plug-ins, and most of the current GEDCOM code is
in 2 files, which are easy to find for anyone that likes to study them.
P.S. I made a 200 k database yesterday, and found that once everything
is imported, Gramps starts fast next time, and the only visible delays
are building the person view, which happens after start, and when you
decide to re-order that. You see a progress bar then, and Gramps doesn't
freeze. Scrolling is fast too, so for me it's almost as comfortable as
my real 24 k database.