| Summary: | [DB] Eliminate CDODBSchema singleton in favor of specific instance for an ID's DBType | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | Caspar D. <caspar_d> | ||||
| Component: | cdo.db | Assignee: | Project Inbox <emf.cdo-inbox> | ||||
| Status: | NEW --- | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | stefan | ||||
| Version: | 4.13 | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Caspar D.
Created attachment 202783 [details]
Patch v1
This patch is incomplete, but it covers a lot of the extensive (but
straightforward) textual changes, i.e. using the store-specific schema
instance instead of the global CDODBSchema.INSTANCE.
This compiles but perhaps it's all wrong; I just discovered that the
DBStore's schema is not a CDODBSchema, but yet another one :-(
Thanks, Caspar, for your work. I have started working on something similar a few months back, but had to time to complete it. I followed along the same lines as you (DBSchema wired to DBStore etc.). However, what I see from your patch is that you still have a "central" INSTANCE in CDODBSchema. I would suggest to remove this as well and create a dedicated constructor which initializes the schema when the CDODBSchema is added to the DBStore. This way we can have several DBStores, each one with its own instance of CDODBSchema. The next step would be to make CDODBSchema dependent on the DBAdapter, which is needed to handle reserved words (e.g. by quoting them correctly). As a heads up: this is related to Bug 306356 and to Bug 344232. Moving all open issues to 4.2. Open bugs can be ported to 4.1 maintenance after they've been fixed in master. We'll try to address open problems in 4.3 (master) first and then port fixes back to 4.2. Moving all open bugzillas to 4.5. Moving all unaddressed bugzillas to 4.6. Moving all open bugs to 4.7 Moving all unresolved issues to version 4.8- Moving all unresolved issues to version 4.9 Moving to 4.13. |