The two databases are physically identical, just contain different data. The issue is that several fields are of user-defined type, which apparently don't just get copied with a SQL "insert into db1:table (x,y,z) select (x,y,z) from db2:table". Some really annoyingly long SQL may do the trick, except that these types contains lists of indefinite length, and from what we've experienced, if you screw up the transfer, you hose the *enter* table.
We actually already have the C++ tools to insert/update, etc. (since that's how the data got in there in the first place). The hard part is getting the join to work (preserving relational constraints as we move joined tables from one db to another, losing original IDs in the process), and we're running into memory issues (keeping maps of old ids/new ids in memory). As well, we need to work in some parallelism to shrink the amount of time this all takes.
The databases involved are both on the same server running informix.
The mass e-mail/shutting down of classic comes into play as this merge may very well take many many days, during which the splitters and assimilators *must* be off (since the dbs cannot be updated at all during the transfer). We may run out of work to send out, and an flood of new users will experience a long outage and be confused/annoyed. If we can't get this going without an outage (or at least a short one), we may very well postpone the whole thing a month or two - it's just that there's a lot of momentum right now.
- Matt (Lebofsky)