|
SMACS | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
| SelectAction | the update-statement triggered. |
| SelectBuilds | input part of a mapping. |
| SelectChoice | combine gates and actions multiple gates and actions need to be combined in a parallel fashion. |
| SelectCursor | specify an active tuple stream. |
| SelectField | row field definition a field may be created by reference of another field from a single table. |
| SelectFieldList | row definition a list of fields may be from a single table - and there is the "*"-star clause to select all fields from a specific table. |
| SelectMapping | |
| SelectMappingElement | |
| SelectMappingList | |
| SelectMappingMaker | |
| SelectMappingStore | |
| SelectTable | specify tables/schema involved. |
| SelectTableList | specify list of tables/schemas involved. |
| SelectUpdate | output part of a mapping. |
| SelectWhere | conditional expression. |
| Class Summary | |
| BuildsCursor | |
| BuildsListShow | |
| BuildsSqlFromItemList | |
| BuildsSqlSelectItemList | |
| BuildsSqlTableExpression | |
| BuildsSqlTableReference | |
| BuildsSqlWhereClause | |
| SelectBuildsDef | |
| SelectFieldListSqlNodeClone | |
| SelectFieldListSqlReference | |
| SelectImport | new implementation: import module. |
| SelectMappingDef | storing elements for a mapping as an intermediate representation. |
| SelectMappingListDef | |
| SelectSimpleNode | |
| SelectSqlInsertFromStatement | |
| SelectSqlInsertIntoStatement | |
| SelectSqlInsertNewFromStatement | almost like SelectSqlInsertFromStatement.
|
| SelectSqlInsertTransformStatement | almost like SelectSqlInsertFromStatement.
|
| SelectTableSqlTableReference | |
| SelectToMapping | converter from input syntax to intermediate mapping representation. |
| SelectUpdateDef | |
| Exception Summary | |
| SelectImportException | |
Transformation Information Blocks
The original module writer code was using the direct sql input text with a number of INSERT INTO and INSERT FROM statements. Each statement was converted to an equivalent JDBC script. That sql script equivalent was not capable to incorporate handling of constraints that come out of the schema. Such as unique keys and primaries and merging with rows.
Here is the next step after re-focussing on schema mapping transformation - we need to cut down the semantic parts of an expressed schema mapping which contains:
- source table - source where - source fields - target table - target fields - target where - target choice
the last part is the most problematic one since we can have atleast (a) exclusive choices where some condition (via where?) will trigger a data insert/update on that table with those fields or (b) inclusive choices where some condition (via where?) will trigger a data insert/update on that table with those fields.
We to optimize later for the various parts, including (a) which tables must be queried for data and (b) which condition clauses must be checked. - That's the main reason to cut those from the other parts.
in this subsection we want all classes to carry the prefix "Select*" to make joining of classes easier in other parts of the project (due to java non-renaming problems).
The "sink" is specified through a SelectUpdate clause which references various "Builds" modelled in terms of "Select*" interfaces. The Select nodes reference other nodes, so they do build a tree in a way after flattening it out. One of the Select nodes should be Cursor that will be used for the outer loop.
The select tree could be reordered to do some optimizations, just reassign the references.
|
SMACS | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||