SMACS

Package smacs.find.clause

Transformation Information Blocks Module builder pieces The original module writer code was using the direct sql input text with a number of INSERT INTO and INSERT FROM statements.

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  
 

Package smacs.find.clause Description

Transformation Information Blocks

Module builder pieces

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.

technical

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).

next step

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