diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java
index d5b4e66..cef244d 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: BuiltInFunctionItemProvider.java,v 1.1 2005/08/02 22:56:29 ledunnel Exp $
+ * $Id: BuiltInFunctionItemProvider.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
  */
 package org.eclipse.datatools.modelbase.sql.routines.provider;
 
@@ -119,7 +119,7 @@
 
 		boolean qualify =
 			childFeature == SQLRoutinesPackage.eINSTANCE.getRoutine_Parameters() ||
-			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScaler() ||
+			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScalar() ||
 			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnCast();
 
 		if (qualify) {
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java
index 9b628b4..6832656 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: FunctionItemProvider.java,v 1.1 2005/08/02 22:56:29 ledunnel Exp $
+ * $Id: FunctionItemProvider.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
  */
 package org.eclipse.datatools.modelbase.sql.routines.provider;
 
@@ -183,7 +183,7 @@
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(SQLRoutinesPackage.eINSTANCE.getFunction_ReturnTable());
-			childrenFeatures.add(SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScaler());
+			childrenFeatures.add(SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScalar());
 			childrenFeatures.add(SQLRoutinesPackage.eINSTANCE.getFunction_ReturnCast());
 		}
 		return childrenFeatures;
@@ -243,7 +243,7 @@
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
-			case SQLRoutinesPackage.FUNCTION__RETURN_SCALER:
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
 			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
@@ -268,7 +268,7 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScaler(),
+				(SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScalar(),
 				 SQLRoutinesFactory.eINSTANCE.createParameter()));
 
 		newChildDescriptors.add
@@ -289,7 +289,7 @@
 
 		boolean qualify =
 			childFeature == SQLRoutinesPackage.eINSTANCE.getRoutine_Parameters() ||
-			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScaler() ||
+			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScalar() ||
 			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnCast();
 
 		if (qualify) {
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java
index d449bf8..cdcfce6 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: MethodItemProvider.java,v 1.1 2005/08/02 22:56:29 ledunnel Exp $
+ * $Id: MethodItemProvider.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
  */
 package org.eclipse.datatools.modelbase.sql.routines.provider;
 
@@ -171,7 +171,7 @@
 
 		boolean qualify =
 			childFeature == SQLRoutinesPackage.eINSTANCE.getRoutine_Parameters() ||
-			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScaler() ||
+			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScalar() ||
 			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnCast();
 
 		if (qualify) {
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java
index 0b0e338..6352bb3 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: UserDefinedFunctionItemProvider.java,v 1.1 2005/08/02 22:56:29 ledunnel Exp $
+ * $Id: UserDefinedFunctionItemProvider.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
  */
 package org.eclipse.datatools.modelbase.sql.routines.provider;
 
@@ -119,7 +119,7 @@
 
 		boolean qualify =
 			childFeature == SQLRoutinesPackage.eINSTANCE.getRoutine_Parameters() ||
-			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScaler() ||
+			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnScalar() ||
 			childFeature == SQLRoutinesPackage.eINSTANCE.getFunction_ReturnCast();
 
 		if (qualify) {
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat
index 5f94fd4..8f30000 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat
@@ -589,7 +589,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	4
-			max_width  	644)
+			max_width  	653)
 		    width      	778
 		    height     	286
 		    annotation 	8
@@ -660,7 +660,7 @@
 			max_width  	726
 			label      	
 |11.7 3b):
-|{self.constraints->forAll(uc1 : UniqueConstraint, uc2 : UniqueConstraint | uc1 <> uc2 implies (uc1.constrainedColumns <> uc2.constrainedColumns)}
+|{self.constraints->forAll(uc1 : UniqueConstraint, uc2 : UniqueConstraint | uc1 <> uc2 implies (uc1.members <> uc2.members)}
 			)
 		    line_color 	3342489
 		    fill_color 	8454016
@@ -714,7 +714,7 @@
 		    width      	576
 		    height     	169)
 		(object NoteView @7
-		    location   	(595, 1490)
+		    location   	(594, 1491)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -726,13 +726,13 @@
 			default_color 	TRUE)
 		    label      	(object ItemLabel
 			Parent_View 	@7
-			location   	(201, 1399)
+			location   	(200, 1400)
 			fill_color 	13434879
 			nlines     	3
 			max_width  	752
 			label      	
 |11.7 3a) and 11.8 7):
-|{Set{self.BaseTable} = self.constrainedColumns.table->asSet()}
+|{Set{self.BaseTable} = self.members.table->asSet()}
 			)
 		    line_color 	3342489
 		    fill_color 	8454016
@@ -757,7 +757,7 @@
 			max_width  	1008
 			label      	
 |11.7 3a) and 11.8 7):
-|{self.constrainedColumns->isUnique(c : Column | c)}
+|{self.members->isUnique(c : Column | c)}
 			)
 		    line_color 	3342489
 		    fill_color 	8454016
@@ -807,7 +807,7 @@
 			max_width  	632
 			label      	
 |11.8 9):
-|{self.constrainedColumns->size() = self.uc.constrainedColumns.size()}
+|{self.members->size() = self.uc.members.size()}
 			)
 		    line_color 	3342489
 		    fill_color 	8454016
@@ -844,7 +844,7 @@
 		    annotation 	8
 		    autoResize 	TRUE)
 		(object NoteView @12
-		    location   	(2895, 2512)
+		    location   	(2894, 2512)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -856,13 +856,13 @@
 			default_color 	TRUE)
 		    label      	(object ItemLabel
 			Parent_View 	@12
-			location   	(2429, 2453)
+			location   	(2428, 2453)
 			fill_color 	13434879
 			nlines     	2
 			max_width  	896
 			label      	
 |11.7 5):
-|{self.constrainedColumns->forAll(not isNullable)}
+|{self.members->forAll(not isNullable)}
 			)
 		    line_color 	3342489
 		    fill_color 	8454016
@@ -1100,7 +1100,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	675)
+			max_width  	684)
 		    width      	814
 		    height     	186
 		    annotation 	8
@@ -1147,7 +1147,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	416)
+			max_width  	425)
 		    width      	510
 		    height     	232
 		    annotation 	8
@@ -1323,7 +1323,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	391)
+			max_width  	400)
 		    width      	482
 		    height     	282
 		    annotation 	8
@@ -1338,8 +1338,8 @@
 			(2272, 156)
 			(2272, 507))
 		    line_style 	3
-		    origin_attachment 	(2451, 156)
-		    terminal_attachment 	(2272, 507))
+		    origin_attachment 	(2486, 263)
+		    terminal_attachment 	(2486, 507))
 		(object AttachView "" @29
 		    stereotype 	TRUE
 		    line_color 	3342489
@@ -1347,7 +1347,7 @@
 		    supplier   	@12
 		    line_style 	3
 		    origin_attachment 	(2234, 2506)
-		    terminal_attachment 	(2416, 2506))
+		    terminal_attachment 	(2415, 2506))
 		(object InheritTreeView "" @30
 		    location   	(1676, 400)
 		    line_color 	16711680
@@ -1419,7 +1419,7 @@
 		    width      	812
 		    height     	394)
 		(object Label @35
-		    location   	(1630, 2476)
+		    location   	(1631, 2475)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -1432,65 +1432,7 @@
 		    nlines     	1
 		    max_width  	87
 		    label      	"{xor}")
-		(object ClassView "Class" "Logical View::SQLModel::Constraints::ReferenceConstraint" @36
-		    ShowCompartmentStereotypes 	TRUE
-		    IncludeAttribute 	TRUE
-		    IncludeOperation 	TRUE
-		    location   	(1881, 1589)
-		    font       	(object Font
-			size       	10
-			face       	"Arial"
-			bold       	FALSE
-			italics    	TRUE
-			underline  	FALSE
-			strike     	FALSE
-			color      	0
-			default_color 	TRUE)
-		    label      	(object ItemLabel
-			Parent_View 	@36
-			location   	(1645, 1538)
-			fill_color 	13434879
-			nlines     	1
-			max_width  	472
-			justify    	0
-			label      	"ReferenceConstraint")
-		    icon_style 	"Icon"
-		    line_color 	3342489
-		    fill_color 	13828055
-		    quidu      	"3EDE52410316"
-		    width      	490
-		    height     	126
-		    annotation 	8
-		    autoResize 	TRUE)
-		(object InheritTreeView "" @37
-		    location   	(1881, 1944)
-		    line_color 	16711680
-		    fill_color 	16711680
-		    supplier   	@36
-		    vertices   	(list Points
-			(1881, 1944)
-			(1881, 1652)))
-		(object AttachView "" @38
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@36
-		    supplier   	@7
-		    line_style 	3
-		    origin_attachment 	(1636, 1584)
-		    terminal_attachment 	(1001, 1584))
-		(object AttachView "" @39
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@36
-		    supplier   	@8
-		    vertices   	(list Points
-			(2046, 1652)
-			(2046, 1794)
-			(2389, 1794))
-		    line_style 	3
-		    origin_attachment 	(2046, 1652)
-		    terminal_attachment 	(2389, 1794))
-		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @40
+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @36
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1505,7 +1447,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@40
+			Parent_View 	@36
 			location   	(1205, 506)
 			fill_color 	13434879
 			nlines     	1
@@ -1520,11 +1462,11 @@
 		    height     	180
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AttachView "" @41
+		(object AttachView "" @37
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    client     	@2
-		    supplier   	@40
+		    supplier   	@36
 		    vertices   	(list Points
 			(1024, 222)
 			(1215, 222)
@@ -1532,16 +1474,74 @@
 		    line_style 	3
 		    origin_attachment 	(1024, 222)
 		    terminal_attachment 	(1215, 494))
-		(object InheritView "" @42
+		(object InheritView "" @38
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3ED52ED402B8"
-		    client     	@40
+		    client     	@36
 		    supplier   	@27
 		    line_style 	3
 		    origin_attachment 	(1340, 494)
 		    terminal_attachment 	(1340, 400)
 		    drawSupplier 	@30)
+		(object ClassView "Class" "Logical View::SQLModel::Constraints::ReferenceConstraint" @39
+		    ShowCompartmentStereotypes 	TRUE
+		    IncludeAttribute 	TRUE
+		    IncludeOperation 	TRUE
+		    location   	(1881, 1589)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	TRUE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    label      	(object ItemLabel
+			Parent_View 	@39
+			location   	(1645, 1538)
+			fill_color 	13434879
+			nlines     	1
+			max_width  	472
+			justify    	0
+			label      	"ReferenceConstraint")
+		    icon_style 	"Icon"
+		    line_color 	3342489
+		    fill_color 	13828055
+		    quidu      	"3EDE52410316"
+		    width      	490
+		    height     	126
+		    annotation 	8
+		    autoResize 	TRUE)
+		(object InheritTreeView "" @40
+		    location   	(1881, 1944)
+		    line_color 	16711680
+		    fill_color 	16711680
+		    supplier   	@39
+		    vertices   	(list Points
+			(1881, 1944)
+			(1881, 1652)))
+		(object AttachView "" @41
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    client     	@39
+		    supplier   	@7
+		    line_style 	3
+		    origin_attachment 	(1636, 1584)
+		    terminal_attachment 	(1000, 1584))
+		(object AttachView "" @42
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    client     	@39
+		    supplier   	@8
+		    vertices   	(list Points
+			(2047, 1652)
+			(2047, 1794)
+			(2389, 1794))
+		    line_style 	3
+		    origin_attachment 	(2047, 1652)
+		    terminal_attachment 	(2389, 1794))
 		(object ClassView "Class" "Logical View::SQLModel::Constraints::TableConstraint" @43
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
@@ -1592,7 +1592,7 @@
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3EDE538E0161"
-		    client     	@36
+		    client     	@39
 		    supplier   	@43
 		    vertices   	(list Points
 			(1914, 1526)
@@ -1658,7 +1658,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	675)
+			max_width  	684)
 		    width      	814
 		    height     	186
 		    annotation 	8
@@ -1694,7 +1694,7 @@
 			    line_color 	3342489
 			    quidu      	"3F26B1EF0330"
 			    client     	@50
-			    supplier   	@40
+			    supplier   	@36
 			    line_style 	3
 			    origin_attachment 	(1346, 820)
 			    terminal_attachment 	(1346, 674)
@@ -1825,11 +1825,11 @@
 		    line_color 	16711680
 		    quidu      	"3ED548B9004E"
 		    client     	@56
-		    supplier   	@36
+		    supplier   	@39
 		    line_style 	3
 		    origin_attachment 	(2052, 2157)
 		    terminal_attachment 	(2052, 1944)
-		    drawSupplier 	@37)
+		    drawSupplier 	@40)
 		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @59
 		    ShowCompartmentStereotypes 	TRUE
 		    location   	(1128, 1793)
@@ -1969,7 +1969,7 @@
 			    line_color 	3342489
 			    quidu      	"3FA71C41004D"
 			    client     	@61
-			    supplier   	@36
+			    supplier   	@39
 			    vertices   	(list Points
 				(1539, 1805)
 				(1672, 1805)
@@ -2351,7 +2351,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	4
-			max_width  	931)
+			max_width  	940)
 		    width      	1112
 		    height     	286
 		    annotation 	8
@@ -2471,11 +2471,11 @@
 		    line_color 	16711680
 		    quidu      	"3ED548BC006E"
 		    client     	@85
-		    supplier   	@36
+		    supplier   	@39
 		    line_style 	3
 		    origin_attachment 	(1369, 2073)
 		    terminal_attachment 	(1369, 1944)
-		    drawSupplier 	@37)
+		    drawSupplier 	@40)
 		(object AssociationViewNew "$UNNAMED$16" @93
 		    location   	(1169, 1975)
 		    font       	(object Font
@@ -2701,8 +2701,8 @@
 			(1088, 3185)
 			(1279, 3185))
 		    line_style 	3
-		    origin_attachment 	(1088, 2359)
-		    terminal_attachment 	(1279, 3185))
+		    origin_attachment 	(1418, 2359)
+		    terminal_attachment 	(1418, 3180))
 		(object AttachView "" @107
 		    stereotype 	TRUE
 		    line_color 	3342489
@@ -2713,8 +2713,8 @@
 			(1153, 2979)
 			(1356, 2979))
 		    line_style 	3
-		    origin_attachment 	(1153, 2359)
-		    terminal_attachment 	(1356, 2979))
+		    origin_attachment 	(1456, 2359)
+		    terminal_attachment 	(1456, 2977))
 		(object AttachView "" @108
 		    stereotype 	TRUE
 		    line_color 	3342489
@@ -2892,6 +2892,23 @@
 		    line_color 	3342489
 		    fill_color 	13828055
 		    quidu      	"3E9B3EB5002B"
+		    compartment 	(object Compartment
+			Parent_View 	@116
+			location   	(1238, 242)
+			font       	(object Font
+			    size       	10
+			    face       	"Arial"
+			    bold       	FALSE
+			    italics    	TRUE
+			    underline  	FALSE
+			    strike     	FALSE
+			    color      	0
+			    default_color 	TRUE)
+			icon_style 	"Icon"
+			fill_color 	16777215
+			anchor     	2
+			nlines     	3
+			max_width  	391)
 		    width      	482
 		    height     	282
 		    annotation 	8
@@ -2931,12 +2948,29 @@
 		    line_color 	3342489
 		    fill_color 	15329769
 		    quidu      	"3FA8080C02B0"
+		    compartment 	(object Compartment
+			Parent_View 	@117
+			location   	(258, 1905)
+			font       	(object Font
+			    size       	10
+			    face       	"Arial"
+			    bold       	FALSE
+			    italics    	FALSE
+			    underline  	FALSE
+			    strike     	FALSE
+			    color      	0
+			    default_color 	TRUE)
+			icon_style 	"Icon"
+			fill_color 	16777215
+			anchor     	2
+			nlines     	3
+			max_width  	171)
 		    width      	402
 		    height     	292
 		    annotation 	8
 		    autoResize 	TRUE)
 		(object NoteView @118
-		    location   	(1153, 1294)
+		    location   	(1094, 1269)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -2948,15 +2982,15 @@
 			default_color 	TRUE)
 		    label      	(object ItemLabel
 			Parent_View 	@118
-			location   	(878, 1178)
+			location   	(696, 1210)
 			fill_color 	13434879
-			nlines     	4
-			max_width  	515
-			label      	"Columns in Index members list are owned by the BaseTable referenced in the Index's table")
+			nlines     	2
+			max_width  	760
+			label      	"{self.members->forAll(m | self.table.columns->includes( m.column )}")
 		    line_color 	3342489
-		    fill_color 	16777088
-		    width      	575
-		    height     	244)
+		    fill_color 	8454016
+		    width      	820
+		    height     	131)
 		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @119
 		    ShowCompartmentStereotypes 	TRUE
 		    SuppressAttribute 	TRUE
@@ -3013,6 +3047,23 @@
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3FA807740185"
+		    compartment 	(object Compartment
+			Parent_View 	@120
+			location   	(168, 915)
+			font       	(object Font
+			    size       	10
+			    face       	"Arial"
+			    bold       	FALSE
+			    italics    	FALSE
+			    underline  	FALSE
+			    strike     	FALSE
+			    color      	0
+			    default_color 	TRUE)
+			icon_style 	"Icon"
+			fill_color 	16777215
+			anchor     	2
+			nlines     	2
+			max_width  	619)
 		    width      	748
 		    height     	186
 		    annotation 	8
@@ -3105,13 +3156,7 @@
 			    line_style 	3
 			    origin_attachment 	(519, 1196)
 			    terminal_attachment 	(519, 1028))))
-		(object AttachView "" @126
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@121
-		    supplier   	@118
-		    line_style 	0)
-		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @127
+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @126
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeOperation 	TRUE
 		    location   	(1633, 1700)
@@ -3125,7 +3170,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@127
+			Parent_View 	@126
 			location   	(1496, 1622)
 			fill_color 	13434879
 			nlines     	1
@@ -3140,7 +3185,7 @@
 		    height     	180
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::SQLModel::Constraints::Index" @128
+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Index" @127
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -3155,7 +3200,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@128
+			Parent_View 	@127
 			location   	(1145, 769)
 			fill_color 	13434879
 			nlines     	1
@@ -3166,20 +3211,37 @@
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3FA7FB2B02AA"
+		    compartment 	(object Compartment
+			Parent_View 	@127
+			location   	(1145, 830)
+			font       	(object Font
+			    size       	10
+			    face       	"Arial"
+			    bold       	FALSE
+			    italics    	FALSE
+			    underline  	FALSE
+			    strike     	FALSE
+			    color      	0
+			    default_color 	TRUE)
+			icon_style 	"Icon"
+			fill_color 	16777215
+			anchor     	2
+			nlines     	5
+			max_width  	550)
 		    width      	668
 		    height     	336
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @129
+		(object InheritView "" @128
 		    stereotype 	TRUE
 		    line_color 	12615680
 		    quidu      	"3FA807570399"
-		    client     	@128
+		    client     	@127
 		    supplier   	@116
 		    line_style 	3
 		    origin_attachment 	(1497, 757)
 		    terminal_attachment 	(1497, 406))
-		(object AssociationViewNew "$UNNAMED$18" @130
+		(object AssociationViewNew "$UNNAMED$18" @129
 		    location   	(1021, 935)
 		    font       	(object Font
 			size       	10
@@ -3193,8 +3255,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3FA8096B0219"
 		    roleview_list 	(list RoleViews
-			(object RoleView "members" @131
-			    Parent_View 	@130
+			(object RoleView "members" @130
+			    Parent_View 	@129
 			    location   	(-605, -87)
 			    font       	(object Font
 				size       	10
@@ -3205,8 +3267,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @132
-				Parent_View 	@131
+			    label      	(object SegLabel @131
+				Parent_View 	@130
 				location   	(971, 888)
 				font       	(object Font
 				    size       	10
@@ -3229,13 +3291,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3FA8096C021A"
-			    client     	@130
+			    client     	@129
 			    supplier   	@120
 			    line_style 	3
 			    origin_attachment 	(1021, 935)
 			    terminal_attachment 	(907, 935)
-			    label      	(object SegLabel @133
-				Parent_View 	@131
+			    label      	(object SegLabel @132
+				Parent_View 	@130
 				location   	(941, 992)
 				font       	(object Font
 				    size       	10
@@ -3255,8 +3317,8 @@
 				pctDist    	0.711628
 				height     	57
 				orientation 	0)
-			    label      	(object SegLabel @134
-				Parent_View 	@131
+			    label      	(object SegLabel @133
+				Parent_View 	@130
 				location   	(964, 1045)
 				font       	(object Font
 				    size       	10
@@ -3276,8 +3338,8 @@
 				pctDist    	0.497674
 				height     	110
 				orientation 	0))
-			(object RoleView "$UNNAMED$19" @135
-			    Parent_View 	@130
+			(object RoleView "$UNNAMED$19" @134
+			    Parent_View 	@129
 			    location   	(-605, -87)
 			    font       	(object Font
 				size       	10
@@ -3291,13 +3353,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3FA8096C021C"
-			    client     	@130
-			    supplier   	@128
+			    client     	@129
+			    supplier   	@127
 			    line_style 	3
 			    origin_attachment 	(1021, 935)
 			    terminal_attachment 	(1136, 935)
-			    label      	(object SegLabel @136
-				Parent_View 	@135
+			    label      	(object SegLabel @135
+				Parent_View 	@134
 				location   	(1124, 989)
 				font       	(object Font
 				    size       	10
@@ -3317,7 +3379,7 @@
 				pctDist    	0.900000
 				height     	54
 				orientation 	1))))
-		(object AssociationViewNew "$UNNAMED$25" @137
+		(object AssociationViewNew "$UNNAMED$25" @136
 		    location   	(990, 575)
 		    font       	(object Font
 			size       	10
@@ -3331,8 +3393,8 @@
 		    stereotype 	TRUE
 		    quidu      	"4023025902C9"
 		    roleview_list 	(list RoleViews
-			(object RoleView "includedMembers" @138
-			    Parent_View 	@137
+			(object RoleView "includedMembers" @137
+			    Parent_View 	@136
 			    location   	(-480, -350)
 			    font       	(object Font
 				size       	10
@@ -3343,8 +3405,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @139
-				Parent_View 	@138
+			    label      	(object SegLabel @138
+				Parent_View 	@137
 				location   	(507, 765)
 				font       	(object Font
 				    size       	10
@@ -3367,7 +3429,7 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"4023025E0186"
-			    client     	@137
+			    client     	@136
 			    supplier   	@120
 			    vertices   	(list Points
 				(990, 575)
@@ -3376,8 +3438,8 @@
 			    line_style 	3
 			    origin_attachment 	(990, 575)
 			    terminal_attachment 	(700, 842)
-			    label      	(object SegLabel @140
-				Parent_View 	@138
+			    label      	(object SegLabel @139
+				Parent_View 	@137
 				location   	(772, 752)
 				font       	(object Font
 				    size       	10
@@ -3397,8 +3459,8 @@
 				pctDist    	0.838649
 				height     	72
 				orientation 	0)
-			    label      	(object SegLabel @141
-				Parent_View 	@138
+			    label      	(object SegLabel @140
+				Parent_View 	@137
 				location   	(811, 803)
 				font       	(object Font
 				    size       	10
@@ -3418,8 +3480,8 @@
 				pctDist    	0.932458
 				height     	111
 				orientation 	0))
-			(object RoleView "$UNNAMED$26" @142
-			    Parent_View 	@137
+			(object RoleView "$UNNAMED$26" @141
+			    Parent_View 	@136
 			    location   	(-480, -350)
 			    font       	(object Font
 				size       	10
@@ -3433,8 +3495,8 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"4023025E0190"
-			    client     	@137
-			    supplier   	@128
+			    client     	@136
+			    supplier   	@127
 			    vertices   	(list Points
 				(990, 575)
 				(1366, 575)
@@ -3442,8 +3504,8 @@
 			    line_style 	3
 			    origin_attachment 	(990, 575)
 			    terminal_attachment 	(1366, 757)
-			    label      	(object SegLabel @143
-				Parent_View 	@142
+			    label      	(object SegLabel @142
+				Parent_View 	@141
 				location   	(1420, 701)
 				font       	(object Font
 				    size       	10
@@ -3463,7 +3525,7 @@
 				pctDist    	0.900000
 				height     	54
 				orientation 	0))))
-		(object AssociationViewNew "$UNNAMED$22" @144
+		(object AssociationViewNew "$UNNAMED$22" @143
 		    location   	(1572, 1351)
 		    font       	(object Font
 			size       	10
@@ -3478,8 +3540,8 @@
 		    line_color 	3342489
 		    quidu      	"3FCB85E903AA"
 		    roleview_list 	(list RoleViews
-			(object RoleView "table" @145
-			    Parent_View 	@144
+			(object RoleView "table" @144
+			    Parent_View 	@143
 			    location   	(102, 426)
 			    font       	(object Font
 				size       	10
@@ -3490,8 +3552,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @146
-				Parent_View 	@145
+			    label      	(object SegLabel @145
+				Parent_View 	@144
 				location   	(1466, 1570)
 				font       	(object Font
 				    size       	10
@@ -3514,13 +3576,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3FCB85ED00A3"
-			    client     	@144
-			    supplier   	@127
+			    client     	@143
+			    supplier   	@126
 			    line_style 	3
 			    origin_attachment 	(1572, 1351)
 			    terminal_attachment 	(1572, 1610)
-			    label      	(object SegLabel @147
-				Parent_View 	@145
+			    label      	(object SegLabel @146
+				Parent_View 	@144
 				location   	(1626, 1584)
 				font       	(object Font
 				    size       	10
@@ -3540,8 +3602,8 @@
 				pctDist    	0.900000
 				height     	54
 				orientation 	0))
-			(object RoleView "index" @148
-			    Parent_View 	@144
+			(object RoleView "index" @147
+			    Parent_View 	@143
 			    location   	(102, 426)
 			    font       	(object Font
 				size       	10
@@ -3552,8 +3614,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @149
-				Parent_View 	@148
+			    label      	(object SegLabel @148
+				Parent_View 	@147
 				location   	(1480, 1144)
 				font       	(object Font
 				    size       	10
@@ -3576,13 +3638,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3FCB85ED00AD"
-			    client     	@144
-			    supplier   	@128
+			    client     	@143
+			    supplier   	@127
 			    line_style 	3
 			    origin_attachment 	(1572, 1351)
 			    terminal_attachment 	(1572, 1092)
-			    label      	(object SegLabel @150
-				Parent_View 	@148
+			    label      	(object SegLabel @149
+				Parent_View 	@147
 				location   	(1626, 1118)
 				font       	(object Font
 				    size       	10
@@ -3602,9 +3664,37 @@
 				pctDist    	0.900000
 				height     	54
 				orientation 	1))))
-		(object AttachView "" @151
+		(object AttachView "" @150
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    client     	@118
-		    supplier   	@144
+		    supplier   	@127
+		    line_style 	0)
+		(object NoteView @151
+		    location   	(2173, 1244)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	FALSE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    label      	(object ItemLabel
+			Parent_View 	@151
+			location   	(1763, 1185)
+			fill_color 	13434879
+			nlines     	2
+			max_width  	784
+			label      	"{self.includedMembers->forAll(m | self.table.columns->includes( m.column )}")
+		    line_color 	3342489
+		    fill_color 	8454016
+		    width      	844
+		    height     	131)
+		(object AttachView "" @152
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    client     	@151
+		    supplier   	@127
 		    line_style 	0)))))
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat
index 9db5d5e..5d72caa 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat
@@ -141,8 +141,7 @@
 			    value      	FALSE))
 		    quid       	"3F60C6F201C1"
 		    type       	"boolean"
-		    exportControl 	"Public"
-		    derived    	TRUE)
+		    exportControl 	"Public")
 		(object ClassAttribute "collationName"
 		    quid       	"3F54F33D0241"
 		    type       	"String"
@@ -438,10 +437,7 @@
 		    quidu      	"411AAB3A02CB")))
 	(object Class "PrimitiveType"
 	    quid       	"3F54FBC4015A"
-	    documentation 	
-|Reference: 5WD-02-Foundation-2002-12 4.1 Data types
-|
-	    
+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.1 Data types"
 	    stereotype 	"enumeration"
 	    class_attributes 	(list class_attribute_list
 		(object ClassAttribute "CHARACTER"
@@ -582,7 +578,7 @@
 	    abstract   	TRUE)
 	(object Class "DataLinkDataType"
 	    quid       	"400DFA2202A3"
-	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.1 Data Types"
+	    documentation 	"Represents a link to a file/location outside the system. "
 	    superclasses 	(list inheritance_relationship_list
 		(object Inheritance_Relationship
 		    quid       	"400DFA6603D7"
@@ -990,7 +986,7 @@
 	    max_height 	28350
 	    max_width  	21600
 	    origin_x   	31
-	    origin_y   	1000
+	    origin_y   	0
 	    items      	(list diagram_item_list
 		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ArrayDataType" @1
 		    ShowCompartmentStereotypes 	TRUE
@@ -1514,7 +1510,7 @@
 		    origin_attachment 	(1272, 1966)
 		    terminal_attachment 	(1568, 1736))
 		(object AssociationViewNew "$UNNAMED$10" @19
-		    location   	(1761, 1250)
+		    location   	(1978, 1067)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -1530,7 +1526,7 @@
 		    roleview_list 	(list RoleViews
 			(object RoleView "element" @20
 			    Parent_View 	@19
-			    location   	(433, -174)
+			    location   	(650, -357)
 			    font       	(object Font
 				size       	10
 				face       	"Arial"
@@ -1542,7 +1538,7 @@
 				default_color 	TRUE)
 			    label      	(object SegLabel @21
 				Parent_View 	@20
-				location   	(1647, 799)
+				location   	(1647, 803)
 				font       	(object Font
 				    size       	10
 				    face       	"Arial"
@@ -1567,15 +1563,16 @@
 			    client     	@19
 			    supplier   	@15
 			    vertices   	(list Points
-				(1761, 1250)
-				(1550, 1250)
+				(1978, 1067)
+				(1978, 1007)
+				(1550, 1007)
 				(1550, 681))
 			    line_style 	3
-			    origin_attachment 	(1761, 1250)
+			    origin_attachment 	(1978, 1067)
 			    terminal_attachment 	(1550, 681)
 			    label      	(object SegLabel @22
 				Parent_View 	@20
-				location   	(1503, 768)
+				location   	(1503, 772)
 				font       	(object Font
 				    size       	10
 				    face       	"Arial"
@@ -1596,20 +1593,19 @@
 				orientation 	0))
 			(object RoleView "$UNNAMED$11" @23
 			    Parent_View 	@19
-			    location   	(433, -174)
+			    location   	(650, -357)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F37E9620201"
 			    client     	@19
 			    supplier   	@16
 			    vertices   	(list Points
-				(1761, 1250)
-				(1978, 1250)
-				(1978, 1651)
-				(1815, 1651))
+				(1978, 1067)
+				(1978, 1650)
+				(1815, 1650))
 			    line_style 	3
-			    origin_attachment 	(1761, 1250)
-			    terminal_attachment 	(1815, 1651))))
+			    origin_attachment 	(1978, 1067)
+			    terminal_attachment 	(1815, 1650))))
 		(object InheritView "" @24
 		    font       	(object Font
 			size       	10
@@ -2343,7 +2339,7 @@
 	    max_height 	28350
 	    max_width  	21600
 	    origin_x   	0
-	    origin_y   	1376
+	    origin_y   	1377
 	    items      	(list diagram_item_list
 		(object NoteView @60
 		    location   	(350, 1790)
@@ -2455,23 +2451,6 @@
 		    line_color 	3342489
 		    fill_color 	15329769
 		    quidu      	"3F25799E0108"
-		    compartment 	(object Compartment
-			Parent_View 	@63
-			location   	(919, 1728)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	5
-			max_width  	362)
 		    width      	438
 		    height     	392
 		    annotation 	8
@@ -2541,23 +2520,6 @@
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3F2186CB02E1"
-		    compartment 	(object Compartment
-			Parent_View 	@66
-			location   	(70, 950)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	5
-			max_width  	569)
 		    width      	690
 		    height     	336
 		    annotation 	8
@@ -2589,23 +2551,6 @@
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3F25755001A0"
-		    compartment 	(object Compartment
-			Parent_View 	@67
-			location   	(1536, 978)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	FALSE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	4
-			max_width  	469)
 		    width      	574
 		    height     	286
 		    annotation 	8
@@ -2922,23 +2867,6 @@
 		    line_color 	3342489
 		    fill_color 	13828055
 		    quidu      	"3E9B3EB5002B"
-		    compartment 	(object Compartment
-			Parent_View 	@82
-			location   	(1650, 147)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	TRUE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	3
-			max_width  	391)
 		    width      	482
 		    height     	282
 		    annotation 	8
@@ -3010,23 +2938,6 @@
 		    line_color 	3342489
 		    fill_color 	13828055
 		    quidu      	"3EDF9E550371"
-		    compartment 	(object Compartment
-			Parent_View 	@85
-			location   	(71, 529)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	TRUE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	2
-			max_width  	569)
 		    width      	690
 		    height     	186
 		    annotation 	8
@@ -3073,8 +2984,8 @@
 			(659, 1789)
 			(659, 1213))
 		    line_style 	3
-		    origin_attachment 	(622, 1789)
-		    terminal_attachment 	(659, 1213))))
+		    origin_attachment 	(350, 1536)
+		    terminal_attachment 	(350, 1213))))
 	(object ClassDiagram "NumberTypes"
 	    quid       	"3F26940B0307"
 	    title      	"NumberTypes"
@@ -3114,23 +3025,6 @@
 		    line_color 	3342489
 		    fill_color 	13828055
 		    quidu      	"3F2693990310"
-		    compartment 	(object Compartment
-			Parent_View 	@90
-			location   	(1277, 567)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	TRUE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	2
-			max_width  	294)
 		    width      	484
 		    height     	186
 		    annotation 	8
@@ -3290,23 +3184,6 @@
 		    line_color 	3342489
 		    fill_color 	13828055
 		    quidu      	"3EDF9E550371"
-		    compartment 	(object Compartment
-			Parent_View 	@96
-			location   	(1173, 174)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	TRUE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	2
-			max_width  	569)
 		    width      	690
 		    height     	186
 		    annotation 	8
@@ -3352,23 +3229,6 @@
 		    line_color 	3342489
 		    fill_color 	13828055
 		    quidu      	"411AAB3A02CB"
-		    compartment 	(object Compartment
-			Parent_View 	@99
-			location   	(784, 1219)
-			font       	(object Font
-			    size       	10
-			    face       	"Arial"
-			    bold       	FALSE
-			    italics    	TRUE
-			    underline  	FALSE
-			    strike     	FALSE
-			    color      	0
-			    default_color 	TRUE)
-			icon_style 	"Icon"
-			fill_color 	16777215
-			anchor     	2
-			nlines     	2
-			max_width  	228)
 		    width      	552
 		    height     	186
 		    annotation 	8
@@ -3502,7 +3362,7 @@
 		    terminal_attachment 	(1403, 1490)
 		    drawSupplier 	@107)
 		(object NoteView @110
-		    location   	(1671, 1927)
+		    location   	(1694, 1930)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -3514,15 +3374,15 @@
 			default_color 	TRUE)
 		    label      	(object ItemLabel
 			Parent_View 	@110
-			location   	(1533, 1867)
+			location   	(1531, 1871)
 			fill_color 	13434879
 			nlines     	2
-			max_width  	240
-			label      	"Scale is always zero")
+			max_width  	290
+			label      	"{self.scale = 0}")
 		    line_color 	3342489
-		    fill_color 	16777088
-		    width      	300
-		    height     	132)
+		    fill_color 	8454016
+		    width      	350
+		    height     	131)
 		(object AttachView "" @111
 		    stereotype 	TRUE
 		    line_color 	3342489
@@ -3574,7 +3434,7 @@
 	    max_height 	28350
 	    max_width  	21600
 	    origin_x   	0
-	    origin_y   	0
+	    origin_y   	2782
 	    items      	(list diagram_item_list
 		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataType" @115
 		    ShowCompartmentStereotypes 	TRUE
@@ -3684,17 +3544,17 @@
 			default_color 	TRUE)
 		    label      	(object ItemLabel
 			Parent_View 	@117
-			location   	(885, 1570)
+			location   	(892, 1570)
 			fill_color 	13434879
 			nlines     	1
-			max_width  	586
+			max_width  	572
 			justify    	0
 			label      	"CharacterStringDataType")
 		    icon_style 	"Label"
 		    line_color 	3342489
 		    fill_color 	13434879
 		    quidu      	"3F2186CB02E1"
-		    width      	604
+		    width      	590
 		    height     	128
 		    annotation 	8
 		    autoResize 	TRUE)
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat
index cae53e4..2098195 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat
@@ -102,6 +102,7 @@
 		    uid        	0)))
 	(object Class "QueryExpressionDefault"
 	    quid       	"404912EB0127"
+	    documentation 	"Place holder for the default query expression."
 	    superclasses 	(list inheritance_relationship_list
 		(object Inheritance_Relationship
 		    quid       	"4049139E0233"
@@ -118,6 +119,7 @@
 		    exportControl 	"Public")))
 	(object Class "SearchConditionDefault"
 	    quid       	"404912F601A5"
+	    documentation 	"Place holder for the default search condition."
 	    superclasses 	(list inheritance_relationship_list
 		(object Inheritance_Relationship
 		    quid       	"404913AC0388"
@@ -134,6 +136,7 @@
 		    exportControl 	"Public")))
 	(object Class "ValueExpressionDefault"
 	    quid       	"4049130202ED"
+	    documentation 	"Place holder for the default value expression."
 	    superclasses 	(list inheritance_relationship_list
 		(object Inheritance_Relationship
 		    quid       	"404913C20267"
@@ -269,7 +272,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	594)
+			max_width  	603)
 		    width      	720
 		    height     	292
 		    annotation 	8
@@ -327,7 +330,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	594)
+			max_width  	603)
 		    width      	720
 		    height     	292
 		    annotation 	8
@@ -374,7 +377,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	275)
+			max_width  	284)
 		    width      	570
 		    height     	186
 		    annotation 	8
@@ -421,7 +424,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	275)
+			max_width  	284)
 		    width      	552
 		    height     	186
 		    annotation 	8
@@ -468,7 +471,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	275)
+			max_width  	284)
 		    width      	562
 		    height     	186
 		    annotation 	8
@@ -521,7 +524,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	391)
+			max_width  	400)
 		    width      	482
 		    height     	282
 		    annotation 	8
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat
index 223445d..04494dc 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat
@@ -528,9 +528,9 @@
 	(object Association "$UNNAMED$5"
 	    quid       	"3F3D43150321"
 	    roles      	(list role_list
-		(object Role "returnScaler"
+		(object Role "returnScalar"
 		    quid       	"3F3D4316025A"
-		    label      	"returnScaler"
+		    label      	"returnScalar"
 		    supplier   	"Logical View::SQLModel::Routines::Parameter"
 		    quidu      	"3F3D3B0F022D"
 		    client_cardinality 	(value cardinality "0..1")
@@ -632,7 +632,7 @@
 	    max_height 	28350
 	    max_width  	21600
 	    origin_x   	0
-	    origin_y   	844
+	    origin_y   	1025
 	    items      	(list diagram_item_list
 		(object ClassView "Class" "Logical View::SQLModel::Routines::DataAccess" @1
 		    ShowCompartmentStereotypes 	TRUE
@@ -787,7 +787,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	391)
+			max_width  	400)
 		    width      	482
 		    height     	282
 		    annotation 	8
@@ -906,7 +906,7 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	778)
+			max_width  	787)
 		    width      	934
 		    height     	282
 		    annotation 	8
@@ -942,29 +942,7 @@
 		    fill_color 	16777088
 		    width      	494
 		    height     	137)
-		(object NoteView @10
-		    location   	(1976, 2331)
-		    font       	(object Font
-			size       	10
-			face       	"Arial"
-			bold       	FALSE
-			italics    	FALSE
-			underline  	FALSE
-			strike     	FALSE
-			color      	0
-			default_color 	TRUE)
-		    label      	(object ItemLabel
-			Parent_View 	@10
-			location   	(1797, 2253)
-			fill_color 	13434879
-			nlines     	3
-			max_width  	322
-			label      	"can return either a table or a scalar but not both")
-		    line_color 	3342489
-		    fill_color 	16777088
-		    width      	382
-		    height     	169)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::Method" @11
+		(object ClassView "Class" "Logical View::SQLModel::Routines::Method" @10
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -979,7 +957,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@11
+			Parent_View 	@10
 			location   	(2257, 2816)
 			fill_color 	13434879
 			nlines     	1
@@ -991,7 +969,7 @@
 		    fill_color 	13434879
 		    quidu      	"411A8B5200D1"
 		    compartment 	(object Compartment
-			Parent_View 	@11
+			Parent_View 	@10
 			location   	(2257, 2877)
 			font       	(object Font
 			    size       	10
@@ -1006,12 +984,12 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	431)
+			max_width  	440)
 		    width      	528
 		    height     	236
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::UserDefinedFunction" @12
+		(object ClassView "Class" "Logical View::SQLModel::Routines::UserDefinedFunction" @11
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1026,7 +1004,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@12
+			Parent_View 	@11
 			location   	(1646, 2809)
 			fill_color 	13434879
 			nlines     	1
@@ -1041,7 +1019,7 @@
 		    height     	126
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::BuiltInFunction" @13
+		(object ClassView "Class" "Logical View::SQLModel::Routines::BuiltInFunction" @12
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1056,7 +1034,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@13
+			Parent_View 	@12
 			location   	(1183, 2809)
 			fill_color 	13434879
 			nlines     	1
@@ -1071,7 +1049,7 @@
 		    height     	126
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object NoteView @14
+		(object NoteView @13
 		    location   	(1900, 3111)
 		    font       	(object Font
 			size       	10
@@ -1083,7 +1061,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@14
+			Parent_View 	@13
 			location   	(1696, 3042)
 			fill_color 	13434879
 			nlines     	2
@@ -1093,19 +1071,19 @@
 		    fill_color 	16777088
 		    width      	432
 		    height     	150)
-		(object AttachView "" @15
+		(object AttachView "" @14
 		    stereotype 	TRUE
 		    line_color 	3342489
-		    client     	@14
-		    supplier   	@11
+		    client     	@13
+		    supplier   	@10
 		    vertices   	(list Points
 			(2116, 3114)
 			(2510, 3114)
 			(2510, 3040))
 		    line_style 	3
-		    origin_attachment 	(2116, 3114)
-		    terminal_attachment 	(2510, 3040))
-		(object ClassView "Class" "Logical View::SQLModel::Routines::Procedure" @16
+		    origin_attachment 	(2116, 3038)
+		    terminal_attachment 	(2248, 3038))
+		(object ClassView "Class" "Logical View::SQLModel::Routines::Procedure" @15
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1120,7 +1098,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@16
+			Parent_View 	@15
 			location   	(526, 1877)
 			fill_color 	13434879
 			nlines     	1
@@ -1132,7 +1110,7 @@
 		    fill_color 	13434879
 		    quidu      	"3F3D3B200263"
 		    compartment 	(object Compartment
-			Parent_View 	@16
+			Parent_View 	@15
 			location   	(526, 1938)
 			font       	(object Font
 			    size       	10
@@ -1147,12 +1125,12 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	462)
+			max_width  	471)
 		    width      	566
 		    height     	236
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::RoutineResultTable" @17
+		(object ClassView "Class" "Logical View::SQLModel::Routines::RoutineResultTable" @16
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1167,7 +1145,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@17
+			Parent_View 	@16
 			location   	(39, 2336)
 			fill_color 	13434879
 			nlines     	1
@@ -1182,7 +1160,7 @@
 		    height     	128
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$0" @18
+		(object AssociationViewNew "$UNNAMED$0" @17
 		    location   	(359, 2075)
 		    font       	(object Font
 			size       	10
@@ -1196,8 +1174,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3F3D3C6C01A2"
 		    roleview_list 	(list RoleViews
-			(object RoleView "resultSet" @19
-			    Parent_View 	@18
+			(object RoleView "resultSet" @18
+			    Parent_View 	@17
 			    location   	(82, 956)
 			    font       	(object Font
 				size       	12
@@ -1208,8 +1186,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @20
-				Parent_View 	@19
+			    label      	(object SegLabel @19
+				Parent_View 	@18
 				location   	(256, 2241)
 				font       	(object Font
 				    size       	10
@@ -1232,13 +1210,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D3C6D0140"
-			    client     	@18
-			    supplier   	@17
+			    client     	@17
+			    supplier   	@16
 			    line_style 	3
 			    origin_attachment 	(359, 2075)
 			    terminal_attachment 	(359, 2324)
-			    label      	(object SegLabel @21
-				Parent_View 	@19
+			    label      	(object SegLabel @20
+				Parent_View 	@18
 				location   	(295, 2287)
 				font       	(object Font
 				    size       	10
@@ -1258,8 +1236,8 @@
 				pctDist    	0.857143
 				height     	65
 				orientation 	1)
-			    label      	(object SegLabel @22
-				Parent_View 	@19
+			    label      	(object SegLabel @21
+				Parent_View 	@18
 				location   	(263, 2179)
 				font       	(object Font
 				    size       	10
@@ -1279,8 +1257,8 @@
 				pctDist    	0.416667
 				height     	97
 				orientation 	1))
-			(object RoleView "$UNNAMED$1" @23
-			    Parent_View 	@18
+			(object RoleView "$UNNAMED$1" @22
+			    Parent_View 	@17
 			    location   	(82, 956)
 			    font       	(object Font
 				size       	12
@@ -1294,8 +1272,8 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D3C6D0154"
-			    client     	@18
-			    supplier   	@16
+			    client     	@17
+			    supplier   	@15
 			    vertices   	(list Points
 				(359, 2075)
 				(359, 1984)
@@ -1303,8 +1281,8 @@
 			    line_style 	3
 			    origin_attachment 	(359, 2075)
 			    terminal_attachment 	(517, 1984)
-			    label      	(object SegLabel @24
-				Parent_View 	@23
+			    label      	(object SegLabel @23
+				Parent_View 	@22
 				location   	(466, 1943)
 				font       	(object Font
 				    size       	10
@@ -1324,16 +1302,16 @@
 				pctDist    	0.800000
 				height     	42
 				orientation 	0))))
-		(object InheritView "" @25
+		(object InheritView "" @24
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3FB914DA038D"
-		    client     	@17
+		    client     	@16
 		    supplier   	@4
 		    line_style 	3
 		    origin_attachment 	(109, 2324)
 		    terminal_attachment 	(109, 1828))
-		(object ClassView "Class" "Logical View::SQLModel::Routines::Source" @26
+		(object ClassView "Class" "Logical View::SQLModel::Routines::Source" @25
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1348,7 +1326,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@26
+			Parent_View 	@25
 			location   	(63, 1307)
 			fill_color 	13434879
 			nlines     	1
@@ -1360,7 +1338,7 @@
 		    fill_color 	13434879
 		    quidu      	"3F3D3B03023A"
 		    compartment 	(object Compartment
-			Parent_View 	@26
+			Parent_View 	@25
 			location   	(63, 1368)
 			font       	(object Font
 			    size       	10
@@ -1375,21 +1353,21 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	2
-			max_width  	281)
+			max_width  	290)
 		    width      	354
 		    height     	186
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object InheritView "" @27
+		(object InheritView "" @26
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3F3D52BA03C0"
-		    client     	@26
+		    client     	@25
 		    supplier   	@3
 		    line_style 	3
 		    origin_attachment 	(225, 1295)
 		    terminal_attachment 	(225, 745))
-		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @28
+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @27
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1404,7 +1382,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@28
+			Parent_View 	@27
 			location   	(1051, 602)
 			fill_color 	13434879
 			nlines     	1
@@ -1419,7 +1397,7 @@
 		    height     	180
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::Function" @29
+		(object ClassView "Class" "Logical View::SQLModel::Routines::Function" @28
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1434,7 +1412,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@29
+			Parent_View 	@28
 			location   	(1302, 1820)
 			fill_color 	13434879
 			nlines     	1
@@ -1446,7 +1424,7 @@
 		    fill_color 	12187127
 		    quidu      	"3F3D3B50012C"
 		    compartment 	(object Compartment
-			Parent_View 	@29
+			Parent_View 	@28
 			location   	(1302, 1881)
 			font       	(object Font
 			    size       	10
@@ -1461,13 +1439,13 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	6
-			max_width  	494)
+			max_width  	503)
 		    width      	602
 		    height     	386
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$2" @30
-		    location   	(1019, 2370)
+		(object AssociationViewNew "$UNNAMED$2" @29
+		    location   	(1019, 2369)
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -1480,9 +1458,9 @@
 		    stereotype 	TRUE
 		    quidu      	"3F3D3DCF00EF"
 		    roleview_list 	(list RoleViews
-			(object RoleView "returnTable" @31
-			    Parent_View 	@30
-			    location   	(261, 1251)
+			(object RoleView "returnTable" @30
+			    Parent_View 	@29
+			    location   	(261, 1250)
 			    font       	(object Font
 				size       	12
 				face       	"Arial"
@@ -1492,9 +1470,9 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @32
-				Parent_View 	@31
-				location   	(639, 2339)
+			    label      	(object SegLabel @31
+				Parent_View 	@30
+				location   	(639, 2338)
 				font       	(object Font
 				    size       	10
 				    face       	"Arial"
@@ -1516,14 +1494,14 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D3DD002F9"
-			    client     	@30
-			    supplier   	@17
+			    client     	@29
+			    supplier   	@16
 			    line_style 	3
-			    origin_attachment 	(1019, 2370)
-			    terminal_attachment 	(514, 2370)
-			    label      	(object SegLabel @33
-				Parent_View 	@31
-				location   	(581, 2414)
+			    origin_attachment 	(1019, 2369)
+			    terminal_attachment 	(514, 2369)
+			    label      	(object SegLabel @32
+				Parent_View 	@30
+				location   	(581, 2413)
 				font       	(object Font
 				    size       	10
 				    face       	"Arial"
@@ -1542,9 +1520,9 @@
 				pctDist    	0.869565
 				height     	44
 				orientation 	0))
-			(object RoleView "$UNNAMED$3" @34
-			    Parent_View 	@30
-			    location   	(261, 1251)
+			(object RoleView "$UNNAMED$3" @33
+			    Parent_View 	@29
+			    location   	(261, 1250)
 			    font       	(object Font
 				size       	12
 				face       	"Arial"
@@ -1557,18 +1535,18 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D3DD00303"
-			    client     	@30
-			    supplier   	@29
+			    client     	@29
+			    supplier   	@28
 			    vertices   	(list Points
-				(1019, 2370)
-				(1349, 2370)
-				(1349, 2194))
+				(1019, 2369)
+				(1350, 2369)
+				(1350, 2194))
 			    line_style 	3
-			    origin_attachment 	(1019, 2370)
-			    terminal_attachment 	(1349, 2194)
-			    label      	(object SegLabel @35
-				Parent_View 	@34
-				location   	(1308, 2249)
+			    origin_attachment 	(1019, 2369)
+			    terminal_attachment 	(1350, 2194)
+			    label      	(object SegLabel @34
+				Parent_View 	@33
+				location   	(1309, 2249)
 				font       	(object Font
 				    size       	10
 				    face       	"Arial"
@@ -1587,53 +1565,45 @@
 				pctDist    	0.890756
 				height     	42
 				orientation 	0))))
-		(object AttachView "" @36
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@10
-		    supplier   	@30
-		    line_style 	3
-		    origin_attachment 	(1784, 2303)
-		    terminal_attachment 	(1349, 2303))
-		(object InheritTreeView "" @37
+		(object InheritTreeView "" @35
 		    location   	(1594, 2688)
 		    line_color 	3342489
 		    fill_color 	13434879
-		    supplier   	@29
+		    supplier   	@28
 		    vertices   	(list Points
 			(1594, 2688)
 			(1594, 2194)))
-		(object InheritView "" @38
+		(object InheritView "" @36
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"411A8B8B03E0"
-		    client     	@13
-		    supplier   	@29
+		    client     	@12
+		    supplier   	@28
 		    line_style 	3
 		    origin_attachment 	(1379, 2797)
 		    terminal_attachment 	(1379, 2688)
-		    drawSupplier 	@37)
-		(object InheritView "" @39
+		    drawSupplier 	@35)
+		(object InheritView "" @37
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"411A8B8F006B"
-		    client     	@12
-		    supplier   	@29
+		    client     	@11
+		    supplier   	@28
 		    line_style 	3
 		    origin_attachment 	(1885, 2797)
 		    terminal_attachment 	(1885, 2688)
-		    drawSupplier 	@37)
-		(object InheritView "" @40
+		    drawSupplier 	@35)
+		(object InheritView "" @38
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    quidu      	"411A8B92012D"
-		    client     	@11
-		    supplier   	@29
+		    client     	@10
+		    supplier   	@28
 		    line_style 	3
 		    origin_attachment 	(2510, 2804)
 		    terminal_attachment 	(2510, 2688)
-		    drawSupplier 	@37)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::Routine" @41
+		    drawSupplier 	@35)
+		(object ClassView "Class" "Logical View::SQLModel::Routines::Routine" @39
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -1648,7 +1618,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@41
+			Parent_View 	@39
 			location   	(783, 1075)
 			fill_color 	13434879
 			nlines     	1
@@ -1660,7 +1630,7 @@
 		    fill_color 	13828055
 		    quidu      	"3F3D36420226"
 		    compartment 	(object Compartment
-			Parent_View 	@41
+			Parent_View 	@39
 			location   	(783, 1136)
 			font       	(object Font
 			    size       	10
@@ -1675,12 +1645,12 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	11
-			max_width  	584)
+			max_width  	593)
 		    width      	708
 		    height     	636
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$7" @42
+		(object AssociationViewNew "$UNNAMED$7" @40
 		    location   	(591, 1392)
 		    font       	(object Font
 			size       	10
@@ -1694,8 +1664,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3F3D44A602D7"
 		    roleview_list 	(list RoleViews
-			(object RoleView "source" @43
-			    Parent_View 	@42
+			(object RoleView "source" @41
+			    Parent_View 	@40
 			    location   	(-535, 664)
 			    font       	(object Font
 				size       	12
@@ -1706,8 +1676,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @44
-				Parent_View 	@43
+			    label      	(object SegLabel @42
+				Parent_View 	@41
 				location   	(497, 1361)
 				font       	(object Font
 				    size       	10
@@ -1730,13 +1700,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D44A7017A"
-			    client     	@42
-			    supplier   	@26
+			    client     	@40
+			    supplier   	@25
 			    line_style 	3
 			    origin_attachment 	(591, 1392)
 			    terminal_attachment 	(408, 1392)
-			    label      	(object SegLabel @45
-				Parent_View 	@43
+			    label      	(object SegLabel @43
+				Parent_View 	@41
 				location   	(466, 1434)
 				font       	(object Font
 				    size       	10
@@ -1756,8 +1726,8 @@
 				pctDist    	0.683060
 				height     	42
 				orientation 	0))
-			(object RoleView "routine" @46
-			    Parent_View 	@42
+			(object RoleView "routine" @44
+			    Parent_View 	@40
 			    location   	(-535, 664)
 			    font       	(object Font
 				size       	12
@@ -1768,8 +1738,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @47
-				Parent_View 	@46
+			    label      	(object SegLabel @45
+				Parent_View 	@44
 				location   	(685, 1445)
 				font       	(object Font
 				    size       	10
@@ -1792,13 +1762,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D44A70184"
-			    client     	@42
-			    supplier   	@41
+			    client     	@40
+			    supplier   	@39
 			    line_style 	3
 			    origin_attachment 	(591, 1392)
 			    terminal_attachment 	(774, 1392)
-			    label      	(object SegLabel @48
-				Parent_View 	@46
+			    label      	(object SegLabel @46
+				Parent_View 	@44
 				location   	(735, 1343)
 				font       	(object Font
 				    size       	10
@@ -1818,11 +1788,11 @@
 				pctDist    	0.788043
 				height     	50
 				orientation 	0))))
-		(object InheritView "" @49
+		(object InheritView "" @47
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3F3D37160216"
-		    client     	@41
+		    client     	@39
 		    supplier   	@3
 		    vertices   	(list Points
 			(900, 1063)
@@ -1832,7 +1802,7 @@
 		    line_style 	3
 		    origin_attachment 	(900, 1063)
 		    terminal_attachment 	(444, 745))
-		(object InheritView "" @50
+		(object InheritView "" @48
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -1845,12 +1815,12 @@
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3F3D3B9A01F1"
-		    client     	@29
-		    supplier   	@41
+		    client     	@28
+		    supplier   	@39
 		    line_style 	3
 		    origin_attachment 	(1426, 1807)
 		    terminal_attachment 	(1426, 1699))
-		(object InheritView "" @51
+		(object InheritView "" @49
 		    font       	(object Font
 			size       	10
 			face       	"Arial"
@@ -1863,12 +1833,12 @@
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3F3D3B9D03E0"
-		    client     	@16
-		    supplier   	@41
+		    client     	@15
+		    supplier   	@39
 		    line_style 	3
 		    origin_attachment 	(919, 1864)
 		    terminal_attachment 	(919, 1699))
-		(object AssociationViewNew "$UNNAMED$10" @52
+		(object AssociationViewNew "$UNNAMED$10" @50
 		    location   	(1191, 916)
 		    font       	(object Font
 			size       	10
@@ -1882,8 +1852,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3F4E92E4031A"
 		    roleview_list 	(list RoleViews
-			(object RoleView "routines" @53
-			    Parent_View 	@52
+			(object RoleView "routines" @51
+			    Parent_View 	@50
 			    location   	(973, -267)
 			    font       	(object Font
 				size       	12
@@ -1894,8 +1864,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @54
-				Parent_View 	@53
+			    label      	(object SegLabel @52
+				Parent_View 	@51
 				location   	(1280, 987)
 				font       	(object Font
 				    size       	10
@@ -1918,13 +1888,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F4E92E502F3"
-			    client     	@52
-			    supplier   	@41
+			    client     	@50
+			    supplier   	@39
 			    line_style 	3
 			    origin_attachment 	(1191, 916)
 			    terminal_attachment 	(1191, 1062)
-			    label      	(object SegLabel @55
-				Parent_View 	@53
+			    label      	(object SegLabel @53
+				Parent_View 	@51
 				location   	(1250, 1032)
 				font       	(object Font
 				    size       	10
@@ -1944,8 +1914,8 @@
 				pctDist    	0.801471
 				height     	59
 				orientation 	0))
-			(object RoleView "schema" @56
-			    Parent_View 	@52
+			(object RoleView "schema" @54
+			    Parent_View 	@50
 			    location   	(973, -267)
 			    font       	(object Font
 				size       	12
@@ -1956,8 +1926,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @57
-				Parent_View 	@56
+			    label      	(object SegLabel @55
+				Parent_View 	@54
 				location   	(1092, 848)
 				font       	(object Font
 				    size       	10
@@ -1980,13 +1950,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F4E92E502FE"
-			    client     	@52
-			    supplier   	@28
+			    client     	@50
+			    supplier   	@27
 			    line_style 	3
 			    origin_attachment 	(1191, 916)
 			    terminal_attachment 	(1191, 770)
-			    label      	(object SegLabel @58
-				Parent_View 	@56
+			    label      	(object SegLabel @56
+				Parent_View 	@54
 				location   	(1132, 807)
 				font       	(object Font
 				    size       	10
@@ -2006,7 +1976,7 @@
 				pctDist    	0.755556
 				height     	60
 				orientation 	0))))
-		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterStringDataType" @59
+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterStringDataType" @57
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeOperation 	TRUE
 		    location   	(2533, 2314)
@@ -2020,7 +1990,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@59
+			Parent_View 	@57
 			location   	(2247, 2240)
 			fill_color 	13434879
 			nlines     	1
@@ -2035,7 +2005,7 @@
 		    height     	172
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object ClassView "Class" "Logical View::SQLModel::Routines::Parameter" @60
+		(object ClassView "Class" "Logical View::SQLModel::Routines::Parameter" @58
 		    ShowCompartmentStereotypes 	TRUE
 		    IncludeAttribute 	TRUE
 		    IncludeOperation 	TRUE
@@ -2050,7 +2020,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@60
+			Parent_View 	@58
 			location   	(2031, 1053)
 			fill_color 	13434879
 			nlines     	1
@@ -2062,7 +2032,7 @@
 		    fill_color 	13434879
 		    quidu      	"3F3D3B0F022D"
 		    compartment 	(object Compartment
-			Parent_View 	@60
+			Parent_View 	@58
 			location   	(2031, 1114)
 			font       	(object Font
 			    size       	10
@@ -2077,12 +2047,12 @@
 			fill_color 	16777215
 			anchor     	2
 			nlines     	3
-			max_width  	475)
+			max_width  	484)
 		    width      	580
 		    height     	236
 		    annotation 	8
 		    autoResize 	TRUE)
-		(object AssociationViewNew "$UNNAMED$8" @61
+		(object AssociationViewNew "$UNNAMED$8" @59
 		    location   	(2444, 1946)
 		    font       	(object Font
 			size       	10
@@ -2096,8 +2066,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3F3D45400120"
 		    roleview_list 	(list RoleViews
-			(object RoleView "returnCast" @62
-			    Parent_View 	@61
+			(object RoleView "returnCast" @60
+			    Parent_View 	@59
 			    location   	(796, 728)
 			    font       	(object Font
 				size       	12
@@ -2108,8 +2078,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @63
-				Parent_View 	@62
+			    label      	(object SegLabel @61
+				Parent_View 	@60
 				location   	(2328, 1373)
 				font       	(object Font
 				    size       	10
@@ -2132,13 +2102,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D4541019A"
-			    client     	@61
-			    supplier   	@60
+			    client     	@59
+			    supplier   	@58
 			    line_style 	3
 			    origin_attachment 	(2444, 1946)
-			    terminal_attachment 	(2444, 1277)
-			    label      	(object SegLabel @64
-				Parent_View 	@62
+			    terminal_attachment 	(2444, 1276)
+			    label      	(object SegLabel @62
+				Parent_View 	@60
 				location   	(2361, 1315)
 				font       	(object Font
 				    size       	10
@@ -2158,8 +2128,8 @@
 				pctDist    	0.944700
 				height     	84
 				orientation 	0))
-			(object RoleView "$UNNAMED$9" @65
-			    Parent_View 	@61
+			(object RoleView "$UNNAMED$9" @63
+			    Parent_View 	@59
 			    location   	(796, 728)
 			    font       	(object Font
 				size       	12
@@ -2170,8 +2140,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @66
-				Parent_View 	@65
+			    label      	(object SegLabel @64
+				Parent_View 	@63
 				location   	(2029, 2025)
 				font       	(object Font
 				    size       	12
@@ -2195,8 +2165,8 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D454101A4"
-			    client     	@61
-			    supplier   	@29
+			    client     	@59
+			    supplier   	@28
 			    vertices   	(list Points
 				(2444, 1946)
 				(2444, 2066)
@@ -2204,8 +2174,8 @@
 			    line_style 	3
 			    origin_attachment 	(2444, 1946)
 			    terminal_attachment 	(1895, 2066)
-			    label      	(object SegLabel @67
-				Parent_View 	@65
+			    label      	(object SegLabel @65
+				Parent_View 	@63
 				location   	(1924, 2027)
 				font       	(object Font
 				    size       	10
@@ -2225,7 +2195,7 @@
 				pctDist    	0.958580
 				height     	40
 				orientation 	1))))
-		(object AssociationViewNew "$UNNAMED$5" @68
+		(object AssociationViewNew "$UNNAMED$5" @66
 		    location   	(2156, 1716)
 		    font       	(object Font
 			size       	10
@@ -2239,8 +2209,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3F3D43150321"
 		    roleview_list 	(list RoleViews
-			(object RoleView "returnScaler" @69
-			    Parent_View 	@68
+			(object RoleView "returnScalar" @67
+			    Parent_View 	@66
 			    location   	(1030, 988)
 			    font       	(object Font
 				size       	12
@@ -2251,8 +2221,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @70
-				Parent_View 	@69
+			    label      	(object SegLabel @68
+				Parent_View 	@67
 				location   	(2027, 1378)
 				font       	(object Font
 				    size       	10
@@ -2268,20 +2238,20 @@
 				nlines     	1
 				max_width  	236
 				justify    	0
-				label      	"-returnScaler"
+				label      	"-returnScalar"
 				pctDist    	0.770142
 				height     	130
 				orientation 	0)
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D4316025A"
-			    client     	@68
-			    supplier   	@60
+			    client     	@66
+			    supplier   	@58
 			    line_style 	3
 			    origin_attachment 	(2156, 1716)
 			    terminal_attachment 	(2156, 1277)
-			    label      	(object SegLabel @71
-				Parent_View 	@69
+			    label      	(object SegLabel @69
+				Parent_View 	@67
 				location   	(2096, 1318)
 				font       	(object Font
 				    size       	10
@@ -2301,8 +2271,8 @@
 				pctDist    	0.909953
 				height     	61
 				orientation 	0))
-			(object RoleView "$UNNAMED$6" @72
-			    Parent_View 	@68
+			(object RoleView "$UNNAMED$6" @70
+			    Parent_View 	@66
 			    location   	(1030, 988)
 			    font       	(object Font
 				size       	12
@@ -2316,8 +2286,8 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D4316026E"
-			    client     	@68
-			    supplier   	@29
+			    client     	@66
+			    supplier   	@28
 			    vertices   	(list Points
 				(2156, 1716)
 				(2156, 1894)
@@ -2325,8 +2295,8 @@
 			    line_style 	3
 			    origin_attachment 	(2156, 1716)
 			    terminal_attachment 	(1895, 1894)
-			    label      	(object SegLabel @73
-				Parent_View 	@72
+			    label      	(object SegLabel @71
+				Parent_View 	@70
 				location   	(1922, 1855)
 				font       	(object Font
 				    size       	10
@@ -2346,15 +2316,7 @@
 				pctDist    	0.938534
 				height     	40
 				orientation 	1))))
-		(object AttachView "" @74
-		    stereotype 	TRUE
-		    line_color 	3342489
-		    client     	@10
-		    supplier   	@68
-		    line_style 	3
-		    origin_attachment 	(2080, 2246)
-		    terminal_attachment 	(2080, 1894))
-		(object AssociationViewNew "$UNNAMED$4" @75
+		(object AssociationViewNew "$UNNAMED$4" @72
 		    location   	(1752, 1184)
 		    font       	(object Font
 			size       	10
@@ -2368,8 +2330,8 @@
 		    stereotype 	TRUE
 		    quidu      	"3F3D421C0020"
 		    roleview_list 	(list RoleViews
-			(object RoleView "parameters" @76
-			    Parent_View 	@75
+			(object RoleView "parameters" @73
+			    Parent_View 	@72
 			    location   	(626, 456)
 			    font       	(object Font
 				size       	12
@@ -2380,8 +2342,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @77
-				Parent_View 	@76
+			    label      	(object SegLabel @74
+				Parent_View 	@73
 				location   	(1896, 1109)
 				font       	(object Font
 				    size       	10
@@ -2404,13 +2366,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D421C028C"
-			    client     	@75
-			    supplier   	@60
+			    client     	@72
+			    supplier   	@58
 			    line_style 	3
 			    origin_attachment 	(1752, 1184)
 			    terminal_attachment 	(2022, 1184)
-			    label      	(object SegLabel @78
-				Parent_View 	@76
+			    label      	(object SegLabel @75
+				Parent_View 	@73
 				location   	(1919, 1155)
 				font       	(object Font
 				    size       	10
@@ -2430,8 +2392,8 @@
 				pctDist    	0.620301
 				height     	30
 				orientation 	0)
-			    label      	(object SegLabel @79
-				Parent_View 	@76
+			    label      	(object SegLabel @76
+				Parent_View 	@73
 				location   	(1910, 1229)
 				font       	(object Font
 				    size       	10
@@ -2451,8 +2413,8 @@
 				pctDist    	0.590226
 				height     	45
 				orientation 	1))
-			(object RoleView "routine" @80
-			    Parent_View 	@75
+			(object RoleView "routine" @77
+			    Parent_View 	@72
 			    location   	(626, 456)
 			    font       	(object Font
 				size       	12
@@ -2463,8 +2425,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @81
-				Parent_View 	@80
+			    label      	(object SegLabel @78
+				Parent_View 	@77
 				location   	(1572, 1095)
 				font       	(object Font
 				    size       	10
@@ -2487,13 +2449,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"3F3D421C028E"
-			    client     	@75
-			    supplier   	@41
+			    client     	@72
+			    supplier   	@39
 			    line_style 	3
 			    origin_attachment 	(1752, 1184)
 			    terminal_attachment 	(1482, 1184)
-			    label      	(object SegLabel @82
-				Parent_View 	@80
+			    label      	(object SegLabel @79
+				Parent_View 	@77
 				location   	(1564, 1146)
 				font       	(object Font
 				    size       	10
@@ -2513,28 +2475,28 @@
 				pctDist    	0.699248
 				height     	39
 				orientation 	1))))
-		(object InheritView "" @83
+		(object InheritView "" @80
 		    stereotype 	TRUE
 		    line_color 	16711680
 		    quidu      	"3F3D3EDF00A0"
-		    client     	@60
+		    client     	@58
 		    supplier   	@7
 		    line_style 	3
 		    origin_attachment 	(2291, 1040)
 		    terminal_attachment 	(2291, 625))
-		(object AttachView "" @84
+		(object AttachView "" @81
 		    stereotype 	TRUE
 		    line_color 	3342489
 		    client     	@9
-		    supplier   	@60
+		    supplier   	@58
 		    vertices   	(list Points
 			(2095, 872)
 			(2150, 872)
 			(2150, 1041))
 		    line_style 	3
-		    origin_attachment 	(2095, 872)
-		    terminal_attachment 	(2150, 1041))
-		(object AssociationViewNew "$UNNAMED$11" @85
+		    origin_attachment 	(2058, 893)
+		    terminal_attachment 	(2058, 1041))
+		(object AssociationViewNew "$UNNAMED$11" @82
 		    location   	(2547, 1752)
 		    font       	(object Font
 			size       	10
@@ -2549,8 +2511,8 @@
 		    line_color 	3342489
 		    quidu      	"42EE8CE1035D"
 		    roleview_list 	(list RoleViews
-			(object RoleView "stringTypeOption" @86
-			    Parent_View 	@85
+			(object RoleView "stringTypeOption" @83
+			    Parent_View 	@82
 			    location   	(234, 592)
 			    font       	(object Font
 				size       	10
@@ -2561,8 +2523,8 @@
 				strike     	FALSE
 				color      	0
 				default_color 	TRUE)
-			    label      	(object SegLabel @87
-				Parent_View 	@86
+			    label      	(object SegLabel @84
+				Parent_View 	@83
 				location   	(2724, 2135)
 				font       	(object Font
 				    size       	10
@@ -2585,13 +2547,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"42EE8CE30234"
-			    client     	@85
-			    supplier   	@59
+			    client     	@82
+			    supplier   	@57
 			    line_style 	3
 			    origin_attachment 	(2547, 1752)
 			    terminal_attachment 	(2547, 2228)
-			    label      	(object SegLabel @88
-				Parent_View 	@86
+			    label      	(object SegLabel @85
+				Parent_View 	@83
 				location   	(2616, 2195)
 				font       	(object Font
 				    size       	10
@@ -2611,8 +2573,8 @@
 				pctDist    	0.930672
 				height     	69
 				orientation 	0))
-			(object RoleView "$UNNAMED$12" @89
-			    Parent_View 	@85
+			(object RoleView "$UNNAMED$12" @86
+			    Parent_View 	@82
 			    location   	(234, 592)
 			    font       	(object Font
 				size       	10
@@ -2626,13 +2588,13 @@
 			    stereotype 	TRUE
 			    line_color 	3342489
 			    quidu      	"42EE8CE30236"
-			    client     	@85
-			    supplier   	@60
+			    client     	@82
+			    supplier   	@58
 			    line_style 	3
 			    origin_attachment 	(2547, 1752)
 			    terminal_attachment 	(2547, 1277)
-			    label      	(object SegLabel @90
-				Parent_View 	@89
+			    label      	(object SegLabel @87
+				Parent_View 	@86
 				location   	(2591, 1321)
 				font       	(object Font
 				    size       	10
@@ -2652,7 +2614,7 @@
 				pctDist    	0.909474
 				height     	44
 				orientation 	1))))
-		(object NoteView @91
+		(object NoteView @88
 		    location   	(2495, 2575)
 		    font       	(object Font
 			size       	10
@@ -2664,7 +2626,7 @@
 			color      	0
 			default_color 	TRUE)
 		    label      	(object ItemLabel
-			Parent_View 	@91
+			Parent_View 	@88
 			location   	(2160, 2516)
 			fill_color 	13434879
 			nlines     	2
@@ -2674,11 +2636,38 @@
 		    fill_color 	16777088
 		    width      	694
 		    height     	131)
-		(object AttachView "" @92
+		(object AttachView "" @89
 		    stereotype 	TRUE
 		    line_color 	3342489
-		    client     	@91
-		    supplier   	@59
+		    client     	@88
+		    supplier   	@57
 		    line_style 	3
 		    origin_attachment 	(2520, 2509)
-		    terminal_attachment 	(2520, 2400))))))
+		    terminal_attachment 	(2520, 2400))
+		(object AttachView "" @90
+		    stereotype 	TRUE
+		    line_color 	3342489
+		    client     	@29
+		    supplier   	@66
+		    vertices   	(list Points
+			(1019, 2369)
+			(1019, 2463)
+			(2031, 2463)
+			(2031, 1894))
+		    line_style 	3
+		    origin_attachment 	(1019, 2369)
+		    terminal_attachment 	(2031, 1894))
+		(object Label @91
+		    location   	(1706, 2400)
+		    font       	(object Font
+			size       	10
+			face       	"Arial"
+			bold       	FALSE
+			italics    	FALSE
+			underline  	FALSE
+			strike     	FALSE
+			color      	0
+			default_color 	TRUE)
+		    nlines     	1
+		    max_width  	87
+		    label      	"{xor}")))))
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat
index 47006e3..f8856cd 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat
@@ -119,7 +119,7 @@
 	(object Class_Category "Schema"
 	    is_unit    	TRUE
 	    is_loaded  	FALSE
-	    file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Schema.cat"
+	    file_name  	"$CDM_EXTRACT_PATH\\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Schema.cat"
 	    quid       	"3F27D66B01AB")
 	(object Class_Category "Constraints"
 	    is_unit    	TRUE
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl
index 94a60eb..1ab4e57 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl
@@ -1861,7 +1861,7 @@
 		    (object Attribute
 			tool       	"Ada95"
 			name       	"TypeEqualityName"
-			value      	(value Text 
+			value      	(value Text
 |"="
 			))
 		    (object Attribute
@@ -5323,7 +5323,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"IdlInterfaceAttributes"
-			value      	(value Text 
+			value      	(value Text
 |endpoint("")
 |local
 |object
@@ -5340,7 +5340,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"IdlCoClassAttributes"
-			value      	(value Text 
+			value      	(value Text
 |uuid("")
 |helpstring("")
 |helpcontext("")
@@ -5353,14 +5353,14 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"IdlCoClassInterfaceAttributes"
-			value      	(value Text 
+			value      	(value Text
 |default
 |source
 			))
 		    (object Attribute
 			tool       	"VC++"
 			name       	"IdlParameterAttributes"
-			value      	(value Text 
+			value      	(value Text
 |in
 |out
 |retval
@@ -5368,7 +5368,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"IdlMethodAttributes"
-			value      	(value Text 
+			value      	(value Text
 |id(1)
 |helpstring("")
 |call_as("")
@@ -5383,7 +5383,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"IdlPropertyAttributes"
-			value      	(value Text 
+			value      	(value Text
 |id()
 |helpstring("")
 |call_as("")
@@ -5444,7 +5444,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"AttributeTypes"
-			value      	(value Text 
+			value      	(value Text
 |attr1=bool
 |attr2=short
 |attr3=int
@@ -5680,7 +5680,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"Containers"
-			value      	(value Text 
+			value      	(value Text
 |cont1=CArray<$TYPE, $TYPE&>
 |cont2=CByteArray
 |cont3=CDWordArray
@@ -5712,7 +5712,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"ClassMethods"
-			value      	(value Text 
+			value      	(value Text
 |*_body=// ToDo: Add your specialized code here and/or call the base class
 |cm1=$NAME()
 |cm2=$NAME(orig:const $NAME&)
@@ -5739,7 +5739,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"Accessors"
-			value      	(value Text 
+			value      	(value Text
 |agf=<<const>> get_$BASICNAME():const $TYPE
 |agf_body=return $NAME;
 |asf=set_$BASICNAME(value:$TYPE):void
@@ -5764,7 +5764,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"Conditionals"
-			value      	(value Text 
+			value      	(value Text
 |*_decl=#ifdef _DEBUG
 |*_base=CObject
 |cond1=<<virtual, const>> AssertValid():void
@@ -5775,7 +5775,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"Patterns"
-			value      	(value Text 
+			value      	(value Text
 |patrn1=cm1,cm3,cond1,cond2
 |Patrn1_name=Default
 			))
@@ -5822,21 +5822,21 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"InternalMap"
-			value      	(value Text 
+			value      	(value Text
 |*:AUTO:AUTO
 |
 			))
 		    (object Attribute
 			tool       	"VC++"
 			name       	"ExportMap"
-			value      	(value Text 
+			value      	(value Text
 |*:AUTO:AUTO
 |
 			))
 		    (object Attribute
 			tool       	"VC++"
 			name       	"InitialSourceIncludes"
-			value      	(value Text 
+			value      	(value Text
 |"stdafx.h"
 			))
 		    (object Attribute
@@ -5874,7 +5874,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"BodyExtensions"
-			value      	(value Text 
+			value      	(value Text
 |.cpp
 |.cxx
 |.inl
@@ -5882,7 +5882,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"HeaderExtensions"
-			value      	(value Text 
+			value      	(value Text
 |.h
 |.hpp
 |.hxx
@@ -5891,7 +5891,7 @@
 		    (object Attribute
 			tool       	"VC++"
 			name       	"ProjectFolders"
-			value      	(value Text 
+			value      	(value Text
 |Source Files
 |Header Files
 			))
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore
index a4d812c..adbc360 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore
@@ -371,7 +371,7 @@
           defaultValueLiteral="1"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="coercibility" eType="#//datatypes/CoercibilityType"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-          changeable="false" derived="true"/>
+          changeable="false"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="collationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
       <eStructuralFeatures xsi:type="ecore:EReference" name="characterSet" lowerBound="1"
           eType="#//datatypes/CharacterSet"/>
@@ -513,7 +513,7 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EEnum" name="PrimitiveType">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data types&#xD;&#xA;"/>
+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data types"/>
       </eAnnotations>
       <eLiterals name="CHARACTER"/>
       <eLiterals name="CHARACTER_VARYING" value="1"/>
@@ -578,7 +578,7 @@
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="DataLinkDataType" eSuperTypes="#//datatypes/PredefinedDataType">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data Types"/>
+        <details key="documentation" value="Represents a link to a file/location outside the system. "/>
       </eAnnotations>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkControl" eType="#//datatypes/LinkControlOption"/>
@@ -678,12 +678,21 @@
       </eOperations>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="QueryExpressionDefault" eSuperTypes="#//schema/SQLObject #//expressions/QueryExpression">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Place holder for the default query expression."/>
+      </eAnnotations>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="SearchConditionDefault" eSuperTypes="#//schema/SQLObject #//expressions/SearchCondition">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Place holder for the default search condition."/>
+      </eAnnotations>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionDefault" eSuperTypes="#//schema/SQLObject #//expressions/ValueExpression">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Place holder for the default value expression."/>
+      </eAnnotations>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     </eClassifiers>
   </eSubpackages>
@@ -815,7 +824,7 @@
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
       <eStructuralFeatures xsi:type="ecore:EReference" name="returnTable" eType="#//routines/RoutineResultTable"
           containment="true"/>
-      <eStructuralFeatures xsi:type="ecore:EReference" name="returnScaler" eType="#//routines/Parameter"
+      <eStructuralFeatures xsi:type="ecore:EReference" name="returnScalar" eType="#//routines/Parameter"
           containment="true"/>
       <eStructuralFeatures xsi:type="ecore:EReference" name="returnCast" eType="#//routines/Parameter"
           containment="true"/>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel
index 28479d9..b3ae648 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel
@@ -451,7 +451,7 @@
         <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/typePreserving"/>
         <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/mutator"/>
         <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnTable"/>
-        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnScaler"/>
+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnScalar"/>
         <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnCast"/>
       </genClasses>
       <genClasses ecoreClass="sqlmodel.ecore#//routines/RoutineResultTable"/>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java
index e384fe7..3a8f203 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java
@@ -102,7 +102,7 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Fixed Length</em>' attribute.
 	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType_FixedLength()
-	 * @model changeable="false" derived="true"
+	 * @model changeable="false"
 	 * @generated
 	 */
 	boolean isFixedLength();
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java
index 87b87c7..45b86f1 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java
@@ -17,7 +17,7 @@
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
- * Reference: 5WD-02-Foundation-2002-12 4.1 Data Types
+ * Represents a link to a file/location outside the system. 
  * <!-- end-model-doc -->
  *
  * <p>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java
index f156c96..d7701bf 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java
@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
- * $Id: PrimitiveType.java,v 1.2 2005/12/22 23:31:34 bpayton Exp $
+ * $Id: PrimitiveType.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
  */
 package org.eclipse.datatools.modelbase.sql.datatypes;
 
@@ -19,7 +19,6 @@
  * <!-- end-user-doc -->
  * <!-- begin-model-doc -->
  * Reference: 5WD-02-Foundation-2002-12 4.1 Data types
- * 
  * <!-- end-model-doc -->
  * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getPrimitiveType()
  * @model
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java
index 3d2b90f..a09ab9b 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java
@@ -1512,7 +1512,7 @@
 		initEClass(characterStringDataTypeEClass, CharacterStringDataType.class, "CharacterStringDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getCharacterStringDataType_Length(), ecorePackage.getEInt(), "length", "1", 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
 		initEAttribute(getCharacterStringDataType_Coercibility(), this.getCoercibilityType(), "coercibility", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getCharacterStringDataType_FixedLength(), ecorePackage.getEBoolean(), "fixedLength", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getCharacterStringDataType_FixedLength(), ecorePackage.getEBoolean(), "fixedLength", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEAttribute(getCharacterStringDataType_CollationName(), ecorePackage.getEString(), "collationName", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getCharacterStringDataType_CharacterSet(), this.getCharacterSet(), null, "characterSet", null, 1, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java
index 3b84753..fe74423 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java
@@ -56,7 +56,7 @@
 	 */
 	private static final long serialVersionUID = 1L;
 
-	/**
+/**
 	 * The default value of the '{@link #isInstantiable() <em>Instantiable</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -64,7 +64,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final boolean INSTANTIABLE_EDEFAULT = false;
+	protected static final boolean INSTANTIABLE_EDEFAULT = false ;
 
 /**
 	 * The cached value of the '{@link #isInstantiable() <em>Instantiable</em>}' attribute.
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java
index 41f29e9..3872034 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java
@@ -18,6 +18,10 @@
  * A representation of the model object '<em><b>Query Expression Default</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <!-- begin-model-doc -->
+ * Place holder for the default query expression.
+ * <!-- end-model-doc -->
+ *
  * <p>
  * The following features are supported:
  * <ul>
@@ -29,7 +33,7 @@
  * @model
  * @generated
  */
-public interface QueryExpressionDefault extends SQLObject, QueryExpression{
+public interface QueryExpressionDefault extends SQLObject, QueryExpression {
 	/**
 	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java
index f14a399..215b40a 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java
@@ -18,6 +18,10 @@
  * A representation of the model object '<em><b>Search Condition Default</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <!-- begin-model-doc -->
+ * Place holder for the default search condition.
+ * <!-- end-model-doc -->
+ *
  * <p>
  * The following features are supported:
  * <ul>
@@ -29,7 +33,7 @@
  * @model
  * @generated
  */
-public interface SearchConditionDefault extends SQLObject, SearchCondition{
+public interface SearchConditionDefault extends SQLObject, SearchCondition {
 	/**
 	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java
index fc771ff..a220016 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java
@@ -18,6 +18,10 @@
  * A representation of the model object '<em><b>Value Expression Default</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <!-- begin-model-doc -->
+ * Place holder for the default value expression.
+ * <!-- end-model-doc -->
+ *
  * <p>
  * The following features are supported:
  * <ul>
@@ -29,7 +33,7 @@
  * @model
  * @generated
  */
-public interface ValueExpressionDefault extends SQLObject, ValueExpression{
+public interface ValueExpressionDefault extends SQLObject, ValueExpression {
 	/**
 	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java
index ff022aa..ae8ec22 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java
@@ -29,7 +29,7 @@
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#isTypePreserving <em>Type Preserving</em>}</li>
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#isMutator <em>Mutator</em>}</li>
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnTable <em>Return Table</em>}</li>
- *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScaler <em>Return Scaler</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar <em>Return Scalar</em>}</li>
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnCast <em>Return Cast</em>}</li>
  * </ul>
  * </p>
@@ -235,30 +235,30 @@
 	void setReturnTable(RoutineResultTable value);
 
 	/**
-	 * Returns the value of the '<em><b>Return Scaler</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Return Scalar</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Return Scaler</em>' containment reference isn't clear,
+	 * If the meaning of the '<em>Return Scalar</em>' containment reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Return Scaler</em>' containment reference.
-	 * @see #setReturnScaler(Parameter)
-	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_ReturnScaler()
+	 * @return the value of the '<em>Return Scalar</em>' containment reference.
+	 * @see #setReturnScalar(Parameter)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_ReturnScalar()
 	 * @model containment="true"
 	 * @generated
 	 */
-	Parameter getReturnScaler();
+	Parameter getReturnScalar();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScaler <em>Return Scaler</em>}' containment reference.
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar <em>Return Scalar</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Return Scaler</em>' containment reference.
-	 * @see #getReturnScaler()
+	 * @param value the new value of the '<em>Return Scalar</em>' containment reference.
+	 * @see #getReturnScalar()
 	 * @generated
 	 */
-	void setReturnScaler(Parameter value);
+	void setReturnScalar(Parameter value);
 
 	/**
 	 * Returns the value of the '<em><b>Return Cast</b></em>' containment reference.
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java
index 278bd37..37ba8ce 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java
@@ -918,13 +918,13 @@
 	int FUNCTION__RETURN_TABLE = ROUTINE_FEATURE_COUNT + 5;
 
 	/**
-	 * The feature id for the '<em><b>Return Scaler</b></em>' containment reference.
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int FUNCTION__RETURN_SCALER = ROUTINE_FEATURE_COUNT + 6;
+	int FUNCTION__RETURN_SCALAR = ROUTINE_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
@@ -1343,13 +1343,13 @@
 	int METHOD__RETURN_TABLE = FUNCTION__RETURN_TABLE;
 
 	/**
-	 * The feature id for the '<em><b>Return Scaler</b></em>' containment reference.
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int METHOD__RETURN_SCALER = FUNCTION__RETURN_SCALER;
+	int METHOD__RETURN_SCALAR = FUNCTION__RETURN_SCALAR;
 
 	/**
 	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
@@ -1623,13 +1623,13 @@
 	int USER_DEFINED_FUNCTION__RETURN_TABLE = FUNCTION__RETURN_TABLE;
 
 	/**
-	 * The feature id for the '<em><b>Return Scaler</b></em>' containment reference.
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int USER_DEFINED_FUNCTION__RETURN_SCALER = FUNCTION__RETURN_SCALER;
+	int USER_DEFINED_FUNCTION__RETURN_SCALAR = FUNCTION__RETURN_SCALAR;
 
 	/**
 	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
@@ -1885,13 +1885,13 @@
 	int BUILT_IN_FUNCTION__RETURN_TABLE = FUNCTION__RETURN_TABLE;
 
 	/**
-	 * The feature id for the '<em><b>Return Scaler</b></em>' containment reference.
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BUILT_IN_FUNCTION__RETURN_SCALER = FUNCTION__RETURN_SCALER;
+	int BUILT_IN_FUNCTION__RETURN_SCALAR = FUNCTION__RETURN_SCALAR;
 
 	/**
 	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
@@ -2280,15 +2280,15 @@
 	EReference getFunction_ReturnTable();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScaler <em>Return Scaler</em>}'.
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar <em>Return Scalar</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Return Scaler</em>'.
-	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScaler()
+	 * @return the meta object for the containment reference '<em>Return Scalar</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar()
 	 * @see #getFunction()
 	 * @generated
 	 */
-	EReference getFunction_ReturnScaler();
+	EReference getFunction_ReturnScalar();
 
 	/**
 	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnCast <em>Return Cast</em>}'.
@@ -2672,12 +2672,12 @@
 		EReference FUNCTION__RETURN_TABLE = eINSTANCE.getFunction_ReturnTable();
 
 		/**
-		 * The meta object literal for the '<em><b>Return Scaler</b></em>' containment reference feature.
+		 * The meta object literal for the '<em><b>Return Scalar</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference FUNCTION__RETURN_SCALER = eINSTANCE.getFunction_ReturnScaler();
+		EReference FUNCTION__RETURN_SCALAR = eINSTANCE.getFunction_ReturnScalar();
 
 		/**
 		 * The meta object literal for the '<em><b>Return Cast</b></em>' containment reference feature.
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java
index bb3fb7c..76e1e09 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java
@@ -42,7 +42,7 @@
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#isTypePreserving <em>Type Preserving</em>}</li>
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#isMutator <em>Mutator</em>}</li>
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnTable <em>Return Table</em>}</li>
- *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnScaler <em>Return Scaler</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnScalar <em>Return Scalar</em>}</li>
  *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnCast <em>Return Cast</em>}</li>
  * </ul>
  * </p>
@@ -168,14 +168,14 @@
 	protected RoutineResultTable returnTable = null;
 
 	/**
-	 * The cached value of the '{@link #getReturnScaler() <em>Return Scaler</em>}' containment reference.
+	 * The cached value of the '{@link #getReturnScalar() <em>Return Scalar</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getReturnScaler()
+	 * @see #getReturnScalar()
 	 * @generated
 	 * @ordered
 	 */
-	protected Parameter returnScaler = null;
+	protected Parameter returnScalar = null;
 
 	/**
 	 * The cached value of the '{@link #getReturnCast() <em>Return Cast</em>}' containment reference.
@@ -358,8 +358,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Parameter getReturnScaler() {
-		return returnScaler;
+	public Parameter getReturnScalar() {
+		return returnScalar;
 	}
 
 	/**
@@ -367,11 +367,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetReturnScaler(Parameter newReturnScaler, NotificationChain msgs) {
-		Parameter oldReturnScaler = returnScaler;
-		returnScaler = newReturnScaler;
+	public NotificationChain basicSetReturnScalar(Parameter newReturnScalar, NotificationChain msgs) {
+		Parameter oldReturnScalar = returnScalar;
+		returnScalar = newReturnScalar;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_SCALER, oldReturnScaler, newReturnScaler);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, oldReturnScalar, newReturnScalar);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -382,18 +382,18 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setReturnScaler(Parameter newReturnScaler) {
-		if (newReturnScaler != returnScaler) {
+	public void setReturnScalar(Parameter newReturnScalar) {
+		if (newReturnScalar != returnScalar) {
 			NotificationChain msgs = null;
-			if (returnScaler != null)
-				msgs = ((InternalEObject)returnScaler).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_SCALER, null, msgs);
-			if (newReturnScaler != null)
-				msgs = ((InternalEObject)newReturnScaler).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_SCALER, null, msgs);
-			msgs = basicSetReturnScaler(newReturnScaler, msgs);
+			if (returnScalar != null)
+				msgs = ((InternalEObject)returnScalar).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, null, msgs);
+			if (newReturnScalar != null)
+				msgs = ((InternalEObject)newReturnScalar).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, null, msgs);
+			msgs = basicSetReturnScalar(newReturnScalar, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_SCALER, newReturnScaler, newReturnScaler));
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, newReturnScalar, newReturnScalar));
 	}
 
 	/**
@@ -448,8 +448,8 @@
 		switch (featureID) {
 			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
 				return basicSetReturnTable(null, msgs);
-			case SQLRoutinesPackage.FUNCTION__RETURN_SCALER:
-				return basicSetReturnScaler(null, msgs);
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				return basicSetReturnScalar(null, msgs);
 			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
 				return basicSetReturnCast(null, msgs);
 		}
@@ -475,8 +475,8 @@
 				return isMutator() ? Boolean.TRUE : Boolean.FALSE;
 			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
 				return getReturnTable();
-			case SQLRoutinesPackage.FUNCTION__RETURN_SCALER:
-				return getReturnScaler();
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				return getReturnScalar();
 			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
 				return getReturnCast();
 		}
@@ -508,8 +508,8 @@
 			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
 				setReturnTable((RoutineResultTable)newValue);
 				return;
-			case SQLRoutinesPackage.FUNCTION__RETURN_SCALER:
-				setReturnScaler((Parameter)newValue);
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				setReturnScalar((Parameter)newValue);
 				return;
 			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
 				setReturnCast((Parameter)newValue);
@@ -543,8 +543,8 @@
 			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
 				setReturnTable((RoutineResultTable)null);
 				return;
-			case SQLRoutinesPackage.FUNCTION__RETURN_SCALER:
-				setReturnScaler((Parameter)null);
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				setReturnScalar((Parameter)null);
 				return;
 			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
 				setReturnCast((Parameter)null);
@@ -572,8 +572,8 @@
 				return mutator != MUTATOR_EDEFAULT;
 			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
 				return returnTable != null;
-			case SQLRoutinesPackage.FUNCTION__RETURN_SCALER:
-				return returnScaler != null;
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				return returnScalar != null;
 			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
 				return returnCast != null;
 		}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java
index 0d20953..b599a90 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java
@@ -518,7 +518,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getFunction_ReturnScaler() {
+	public EReference getFunction_ReturnScalar() {
 		return (EReference)functionEClass.getEStructuralFeatures().get(6);
 	}
 
@@ -667,7 +667,7 @@
 		createEAttribute(functionEClass, FUNCTION__TYPE_PRESERVING);
 		createEAttribute(functionEClass, FUNCTION__MUTATOR);
 		createEReference(functionEClass, FUNCTION__RETURN_TABLE);
-		createEReference(functionEClass, FUNCTION__RETURN_SCALER);
+		createEReference(functionEClass, FUNCTION__RETURN_SCALAR);
 		createEReference(functionEClass, FUNCTION__RETURN_CAST);
 
 		routineResultTableEClass = createEClass(ROUTINE_RESULT_TABLE);
@@ -761,7 +761,7 @@
 		initEAttribute(getFunction_TypePreserving(), ecorePackage.getEBoolean(), "typePreserving", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEAttribute(getFunction_Mutator(), ecorePackage.getEBoolean(), "mutator", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getFunction_ReturnTable(), this.getRoutineResultTable(), null, "returnTable", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getFunction_ReturnScaler(), this.getParameter(), null, "returnScaler", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getFunction_ReturnScalar(), this.getParameter(), null, "returnScalar", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 		initEReference(getFunction_ReturnCast(), this.getParameter(), null, "returnCast", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(routineResultTableEClass, RoutineResultTable.class, "RoutineResultTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java
index 1cbafdf..2f1249f 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java
@@ -64,7 +64,7 @@
 	 */
 	private static final long serialVersionUID = 1L;
 
-	/**
+/**
 	 * The cached value of the '{@link #getIdentitySpecifier() <em>Identity Specifier</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -112,7 +112,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final boolean NULLABLE_EDEFAULT = true;
+	protected static final boolean NULLABLE_EDEFAULT = false;
 
 /**
 	 * The cached value of the '{@link #isNullable() <em>Nullable</em>}' attribute.
@@ -434,7 +434,7 @@
 			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__SCOPE_CHECKED, oldScopeChecked, scopeChecked));
 	}
 
-		/**
+			/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 */
