Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2008-11-15 10:01:35 +0000
committerEike Stepper2008-11-15 10:01:35 +0000
commita49b6bd594ed390da4400c5c17e5663d3bd3d006 (patch)
treee199545718cdf0bfb8a42f398bcad5e19be0df6e /plugins
parent00258b083ee03dce8f7e3495181ac962d8cce6a5 (diff)
downloadcdo-a49b6bd594ed390da4400c5c17e5663d3bd3d006.tar.gz
cdo-a49b6bd594ed390da4400c5c17e5663d3bd3d006.tar.xz
cdo-a49b6bd594ed390da4400c5c17e5663d3bd3d006.zip
[255337] [DB] Qualified table names still exceed db table limit
https://bugs.eclipse.org/bugs/show_bug.cgi?id=255337
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java23
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ReferenceMapping.java6
2 files changed, 26 insertions, 3 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java
index d7139fc515..d1290dd0a6 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java
@@ -207,6 +207,29 @@ public abstract class MappingStrategy extends Lifecycle implements IMappingStrat
return getTableName(name, "C" + ClassServerInfo.getDBID(cdoClass));
}
+ public String getReferenceTableName(CDOClass cdoClass, CDOFeature cdoFeature)
+ {
+ String name = isQualifiedNames() ? cdoClass.getQualifiedName().replace('.', '_') : cdoClass.getName();
+ name += "_";
+ name += cdoFeature.getName();
+ name += "_refs";
+ return getTableName(name, "F" + FeatureServerInfo.getDBID(cdoFeature));
+ }
+
+ public String getReferenceTableName(CDOClass cdoClass)
+ {
+ String name = isQualifiedNames() ? cdoClass.getQualifiedName().replace('.', '_') : cdoClass.getName();
+ name += "_refs";
+ return getTableName(name, "F" + ClassServerInfo.getDBID(cdoClass));
+ }
+
+ public String getReferenceTableName(CDOPackage cdoPackage)
+ {
+ String name = isQualifiedNames() ? cdoPackage.getQualifiedName().replace('.', '_') : cdoPackage.getName();
+ name += "_refs";
+ return getTableName(name, "F" + PackageServerInfo.getDBID(cdoPackage));
+ }
+
public String getFieldName(CDOFeature cdoFeature)
{
return getName(cdoFeature.getName(), "F" + FeatureServerInfo.getDBID(cdoFeature), getMaxFieldNameLength());
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ReferenceMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ReferenceMapping.java
index 6715fb23b6..e45f041ec5 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ReferenceMapping.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ReferenceMapping.java
@@ -83,7 +83,7 @@ public class ReferenceMapping extends FeatureMapping implements IReferenceMappin
case PER_REFERENCE:
{
withFeature = false;
- String tableName = mappingStrategy.getTableName(cdoClass) + "_" + cdoFeature.getName() + "_refs";
+ String tableName = mappingStrategy.getReferenceTableName(cdoClass, cdoFeature);
Object referenceMappingKey = getReferenceMappingKey(cdoFeature);
table = mapReferenceTable(referenceMappingKey, tableName);
break;
@@ -91,13 +91,13 @@ public class ReferenceMapping extends FeatureMapping implements IReferenceMappin
case PER_CLASS:
withFeature = true;
- table = mapReferenceTable(cdoClass, mappingStrategy.getTableName(cdoClass) + "_refs");
+ table = mapReferenceTable(cdoClass, mappingStrategy.getReferenceTableName(cdoClass));
break;
case PER_PACKAGE:
withFeature = true;
CDOPackage cdoPackage = cdoClass.getContainingPackage();
- table = mapReferenceTable(cdoPackage, mappingStrategy.getTableName(cdoPackage) + "_refs");
+ table = mapReferenceTable(cdoPackage, mappingStrategy.getReferenceTableName(cdoPackage));
break;
case PER_REPOSITORY:

Back to the top