diff options
author | Eike Stepper | 2008-11-15 10:01:35 +0000 |
---|---|---|
committer | Eike Stepper | 2008-11-15 10:01:35 +0000 |
commit | a49b6bd594ed390da4400c5c17e5663d3bd3d006 (patch) | |
tree | e199545718cdf0bfb8a42f398bcad5e19be0df6e /plugins | |
parent | 00258b083ee03dce8f7e3495181ac962d8cce6a5 (diff) | |
download | cdo-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')
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: |