You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2011/05/02 21:30:43 UTC
svn commit: r1098759 - in
/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates:
platform/ transformer/sql/ typemapping/
Author: tfischer
Date: Mon May 2 19:30:42 2011
New Revision: 1098759
URL: http://svn.apache.org/viewvc?rev=1098759&view=rev
Log:
TORQUE-155: use "${size} CHAR" as size for varchar2 columns in oracle
Modified:
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformOracleImpl.java
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java
db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java?rev=1098759&r1=1098758&r2=1098759&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java Mon May 2 19:30:42 2011
@@ -87,6 +87,17 @@ public interface Platform
boolean hasScale(String sqlType);
/**
+ * Returns a possible SQL suffix for column definitions of certain
+ * SQL Types, e.g. for Oracle VARCHAR2 columns, it typically
+ * makes sense to use 'XXX CHAR' instead of 'XXX' as size.
+ *
+ * @param sqlType the SQL type to determine the suffix for.
+ *
+ * @return the size suffix, not null, may be empty.
+ */
+ public String getSizeSuffix(String sqlType);
+
+ /**
* Returns whether the "not null part" of the definition of a column
* should be generated before the "autoincrement part" in a "create table"
* statement.
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java?rev=1098759&r1=1098758&r2=1098759&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java Mon May 2 19:30:42 2011
@@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import org.apache.commons.lang.StringUtils;
import org.apache.torque.templates.typemapping.SchemaType;
import org.apache.torque.templates.typemapping.SqlType;
@@ -152,6 +153,22 @@ public class PlatformDefaultImpl impleme
}
/**
+ * Returns a possible SQL suffix for column definitions of certain
+ * SQL Types, e.g. for Oracle VARCHAR2 columns, it typically
+ * makes sense to use 'XXX CHAR' instead of 'XXX' as size.
+ *
+ * @param sqlType the SQL type to determine the suffix for.
+ *
+ * @return The size suffix, not null.
+ * This implementation always returns the empty string.
+ *
+ */
+ public String getSizeSuffix(String sqlType)
+ {
+ return StringUtils.EMPTY;
+ }
+
+ /**
* @see Platform#createNotNullBeforeAutoincrement()
*/
public boolean createNotNullBeforeAutoincrement()
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformOracleImpl.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformOracleImpl.java?rev=1098759&r1=1098758&r2=1098759&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformOracleImpl.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformOracleImpl.java Mon May 2 19:30:42 2011
@@ -19,6 +19,7 @@ package org.apache.torque.templates.plat
* under the License.
*/
+import org.apache.commons.lang.StringUtils;
import org.apache.torque.templates.typemapping.SchemaType;
import org.apache.torque.templates.typemapping.SqlType;
@@ -119,4 +120,24 @@ public class PlatformOracleImpl extends
{
return true;
}
+
+ /**
+ * Returns a possible SQL suffix for column definitions of certain
+ * SQL Types, e.g. for Oracle VARCHAR2 columns, it typically
+ * makes sense to use 'XXX CHAR' instead of 'XXX' as size.
+ *
+ * @param sqlType the SQL type to determine the suffix for.
+ *
+ * @return The size suffix, not null.
+ * This implementation always returns the empty string.
+ *
+ */
+ public String getSizeSuffix(String sqlType)
+ {
+ if ("VARCHAR2".equals(sqlType))
+ {
+ return " CHAR";
+ }
+ return StringUtils.EMPTY;
+ }
}
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java?rev=1098759&r1=1098758&r2=1098759&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java Mon May 2 19:30:42 2011
@@ -279,9 +279,10 @@ public class SQLTransformer implements S
String sqlTypeName = sqlType.getSqlTypeName();
- if (platform.hasSize(sqlType.getSqlTypeName()))
+ if (platform.hasSize(sqlTypeName))
{
- sqlTypeName += sqlType.printSize();
+ sqlTypeName += sqlType.printSize(
+ platform.getSizeSuffix(sqlTypeName));
}
resultList.add(sqlTypeName);
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java?rev=1098759&r1=1098758&r2=1098759&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java Mon May 2 19:30:42 2011
@@ -237,15 +237,15 @@ public class SqlType
* @return size and scale or an empty String if there are no values
* available.
*/
- public String printSize()
+ public String printSize(String sizeSuffix)
{
if (StringUtils.isNotBlank(size) && StringUtils.isNotBlank(scale))
{
- return '(' + size + ',' + scale + ')';
+ return '(' + size + sizeSuffix + ',' + scale + ')';
}
else if (StringUtils.isNotBlank(size))
{
- return '(' + size + ')';
+ return '(' + size + sizeSuffix + ')';
}
else
{
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org