PackageDescription: ExportDatabase

Export Database

Last published: June 19, 2009 by 'nross'

Defines 23 Classes
Extends 23 Classes

This package, in conjunction with ExportDatabaseUI, provides an export to/import from files capability for Store, similar to what ENVY has with it's .dat files. It does this by providing an EXDI driver to the simplest relational database that could possibly work, the ExportDBConnection, and using the OldStoreReplication facility to copy the packages/bundles.

Current limitations include a mediocre UI, dependence on StoreForOracle (It uses the OracleBroker because I was too lazy to write a new one), not especially good performance, and the lack of any progress indication. It also uses the to-be-deprecated OldStoreReplication parcel and needs to move away from this dependency.

ExportDB is implemented as in-memory dictionaries, with the ability to store out the results to a BOSS file. This is implemented using a hacked version of the Advanced Tools SQL Parser demo. This has a few small limitations relative to a full relational database, based on assumptions about exactly what Store needs to
- only AND and OR are supported in where clauses
- no DDL is needed, tables are defined by methods.
- data type support can mostly be ignored. We only seemed to need String, Number, and ByteArray.
- ORDER BY has to be parsed, but can be safely ignored because these are mostly files with one version in them.
- only bindInput/bindOutput style is really used
- joins are always between two tables
- there are no composite keys
- the primary key field is always first
- lots of others
However, it does seem to work for what OldStoreReplication needs.