From: <mcu...@us...> - 2008-11-18 22:29:15
|
Revision: 1336 http://orm.svn.sourceforge.net/orm/?rev=1336&view=rev Author: mcurland Date: 2008-11-18 22:29:11 +0000 (Tue, 18 Nov 2008) Log Message: ----------- Fix trailing comma in MySQL DDL. Add commas in table definitions before a non-lead element is rendered, not after an earlier one. This fix is not totally bullet proof, but a DDIL renderer would need to not render a column to break it, which is much less likely than not rendering a constraint. fixes #378 Modified Paths: -------------- trunk/XML/DILtoSQL/DDILtoPostgreSQL.xslt trunk/XML/DILtoSQL/DDILtoSQLStandard.xslt trunk/XML/GenerationSamples/SampleModel.MySQL.sql Modified: trunk/XML/DILtoSQL/DDILtoPostgreSQL.xslt =================================================================== (Binary files differ) Modified: trunk/XML/DILtoSQL/DDILtoSQLStandard.xslt =================================================================== (Binary files differ) Modified: trunk/XML/GenerationSamples/SampleModel.MySQL.sql =================================================================== --- trunk/XML/GenerationSamples/SampleModel.MySQL.sql 2008-11-18 19:57:24 UTC (rev 1335) +++ trunk/XML/GenerationSamples/SampleModel.MySQL.sql 2008-11-18 22:29:11 UTC (rev 1336) @@ -42,7 +42,7 @@ CONSTRAINT Person_UC8 UNIQUE(mandatoryUniqueString), CONSTRAINT Person_UC9 UNIQUE(optionalUniqueTinyInt), CONSTRAINT Person_UC10 UNIQUE(mandatoryUniqueTinyInt), - CONSTRAINT Person_UC11 UNIQUE(childPersonFather, childPersonBirthOrderNr, childPersonMother), + CONSTRAINT Person_UC11 UNIQUE(childPersonFather, childPersonBirthOrderNr, childPersonMother) ); CREATE TABLE Task This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mcu...@us...> - 2009-04-18 08:10:30
|
Revision: 1380 http://orm.svn.sourceforge.net/orm/?rev=1380&view=rev Author: mcurland Date: 2009-04-18 08:10:29 +0000 (Sat, 18 Apr 2009) Log Message: ----------- Added targeted support for render multi-schema catalogs in DCIL and DDIL an added 'requestedName' attributes to DCIL to enable tracing from the DCIL file back to the relational model in the .orm file. refs #328 Modified Paths: -------------- trunk/XML/ConceptualDBtoDCIL/ConceptualDBtoDCIL.xslt trunk/XML/DIL/DCIL.xsd trunk/XML/DILtoSQL/DCILtoDDIL.xslt trunk/XML/GenerationSamples/BlogDemo.DCIL.xml trunk/XML/GenerationSamples/SampleModel.DCIL.xml Modified: trunk/XML/ConceptualDBtoDCIL/ConceptualDBtoDCIL.xslt =================================================================== (Binary files differ) Modified: trunk/XML/DIL/DCIL.xsd =================================================================== --- trunk/XML/DIL/DCIL.xsd 2009-04-16 23:37:54 UTC (rev 1379) +++ trunk/XML/DIL/DCIL.xsd 2009-04-18 08:10:29 UTC (rev 1380) @@ -67,15 +67,10 @@ <xs:sequence> <xs:element ref="dcl:schema" maxOccurs="unbounded"/> </xs:sequence> - <xs:attribute name="name" use="required"> + <xs:attribute name="name" use="required" type="ddt:identifier"> <xs:annotation> <xs:documentation>The name of the catalog.</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:NMTOKEN"> - <xs:maxLength value="8"/> - </xs:restriction> - </xs:simpleType> </xs:attribute> </xs:complexType> <xs:key name="schemaNameKey"> @@ -100,6 +95,7 @@ <xs:documentation>The name of the schema.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> </xs:complexType> <xs:key name="tableNameKey"> <xs:selector xpath="dcl:table"/> @@ -133,6 +129,7 @@ <xs:documentation>The name of the table.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> </xs:complexType> <xs:key name="tableChildNameKey"> <xs:selector xpath="dcl:table/*"/> @@ -183,11 +180,19 @@ <xs:documentation>The name of the data domain being referenced.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="schemaName" type="ddt:identifier"> + <xs:annotation> + <xs:documentation>The name of the external schema for the referenced domain.</xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> - <xs:keyref name="domainRef" refer="dcl:domainNameKey"> + <!-- UNDONE: This is invalid if the targetSchema is set. The key needs to be defined + at the catalog level, but we currently generate files with just a schema element, so + there is no good way to enforce this key. --> + <!--<xs:keyref name="domainRef" refer="dcl:domainNameKey"> <xs:selector xpath="."/> <xs:field xpath="@name"/> - </xs:keyref> + </xs:keyref>--> </xs:element> <xs:element name="predefinedDataType" type="dcl:predefinedDataType"/> </xs:choice> @@ -203,6 +208,7 @@ <xs:documentation>The name of the column.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> <xs:attribute name="isNullable" use="required" type="xs:boolean"> <xs:annotation> <xs:documentation>Is NULL a valid value for this column?</xs:documentation> @@ -236,6 +242,7 @@ <xs:documentation>The name of the data domain.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> </xs:complexType> </xs:element> @@ -255,6 +262,7 @@ <xs:documentation>The name of the constraint.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> </xs:complexType> <xs:element name="uniquenessConstraint"> @@ -327,13 +335,21 @@ <xs:documentation>The name of the table being referenced.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="targetSchema" type="ddt:identifier"> + <xs:annotation> + <xs:documentation>The name of the external target schema.</xs:documentation> + </xs:annotation> + </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:keyref name="referenceConstraintTargetTableRef" refer="dcl:tableNameKey"> + <!-- UNDONE: This is invalid if the targetSchema is set. The key needs to be defined + at the catalog level, but we currently generate files with just a schema element, so + there is no good way to enforce this key. --> + <!-- <xs:keyref name="referenceConstraintTargetTableRef" refer="dcl:tableNameKey"> <xs:selector xpath="."/> - <xs:field xpath="@tableName"/> - </xs:keyref> + <xs:field xpath="@targetTable"/> + </xs:keyref> --> </xs:element> <xs:element name="checkConstraint"> @@ -422,6 +438,7 @@ <xs:documentation>The name of the trigger.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> <xs:attribute name="targetTable" use="required" type="ddt:identifier"> <xs:annotation> <xs:documentation>The name of the table being referenced.</xs:documentation> @@ -501,6 +518,7 @@ <xs:documentation>The name of the parameter.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> </xs:complexType> </xs:element> <xs:group ref="dil:sqlProcedureStatement"/> @@ -510,6 +528,7 @@ <xs:documentation>The name of the procedure.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attributeGroup ref="dcl:requestedNameAttribute"/> <xs:attribute name="sqlDataAccessIndication" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> @@ -526,5 +545,11 @@ <xs:field xpath="@name"/> </xs:key> </xs:element> - + <xs:attributeGroup name="requestedNameAttribute"> + <xs:attribute name="requestedName" type="xs:string"> + <xs:annotation> + <xs:documentation>If specified, then the name was modified to satisfy SQL standards. This is the original name that was automatically modified.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> </xs:schema> Modified: trunk/XML/DILtoSQL/DCILtoDDIL.xslt =================================================================== (Binary files differ) Modified: trunk/XML/GenerationSamples/BlogDemo.DCIL.xml =================================================================== --- trunk/XML/GenerationSamples/BlogDemo.DCIL.xml 2009-04-16 23:37:54 UTC (rev 1379) +++ trunk/XML/GenerationSamples/BlogDemo.DCIL.xml 2009-04-18 08:10:29 UTC (rev 1380) @@ -33,7 +33,7 @@ <dcl:columnRef sourceName="blogCommentParentEntryId" targetName="blogEntryId" /> </dcl:referenceConstraint> </dcl:table> - <dcl:table name=""User""> + <dcl:table name=""User"" requestedName="User"> <dcl:column name="firstName" isNullable="false" isIdentity="false"> <dcl:predefinedDataType name="CHARACTER VARYING" length="30" /> </dcl:column> Modified: trunk/XML/GenerationSamples/SampleModel.DCIL.xml =================================================================== --- trunk/XML/GenerationSamples/SampleModel.DCIL.xml 2009-04-16 23:37:54 UTC (rev 1379) +++ trunk/XML/GenerationSamples/SampleModel.DCIL.xml 2009-04-18 08:10:29 UTC (rev 1380) @@ -9,7 +9,7 @@ </dep:comparisonPredicate> </dcl:checkConstraint> </dcl:domain> - <dcl:domain name=""Integer""> + <dcl:domain name=""Integer"" requestedName="Integer"> <dcl:predefinedDataType name="INTEGER" /> <dcl:checkConstraint name="ValueTypeValueConstraint1"> <dep:and> @@ -101,7 +101,7 @@ <dcl:column name="lastName" isNullable="false" isIdentity="false"> <dcl:predefinedDataType name="CHARACTER VARYING" length="64" /> </dcl:column> - <dcl:column name=""date"" isNullable="false" isIdentity="false"> + <dcl:column name=""date"" requestedName="date" isNullable="false" isIdentity="false"> <dcl:predefinedDataType name="DATE" /> </dcl:column> <dcl:column name="mandatoryUniqueDecimal" isNullable="false" isIdentity="false"> @@ -314,7 +314,7 @@ </dcl:referenceConstraint> </dcl:table> <dcl:table name="ValueType1"> - <dcl:column name=""value"" isNullable="false" isIdentity="false"> + <dcl:column name=""value"" requestedName="value" isNullable="false" isIdentity="false"> <dcl:predefinedDataType name="INTEGER" /> </dcl:column> <dcl:column name="doesSomethingWithPerson" isNullable="true" isIdentity="false"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |