]> source.dussan.org Git - jackcess.git/commitdiff
ignore different flags for different fk indexes
authorJames Ahlborn <jtahlborn@yahoo.com>
Fri, 2 Sep 2016 02:02:59 +0000 (02:02 +0000)
committerJames Ahlborn <jtahlborn@yahoo.com>
Fri, 2 Sep 2016 02:02:59 +0000 (02:02 +0000)
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/branches/mutateops@1021 f203690c-595d-4dc9-a70b-905162fa7fd2

src/main/java/com/healthmarketscience/jackcess/impl/RelationshipCreator.java

index f73acb3a7979909e4d7558870609a7ecdbba56e1..80c8acfe2805309d88ff3669013335b192631e0e 100644 (file)
@@ -42,8 +42,10 @@ public class RelationshipCreator extends DBMutator
 
   // for the purposes of choosing a backing index for a foreign key, there are
   // certain index flags that can be ignored (we don't care how they are set)
-  private final static byte IGNORED_INDEX_FLAGS = 
+  private final static byte IGNORED_PRIMARY_INDEX_FLAGS = 
     IndexData.IGNORE_NULLS_INDEX_FLAG | IndexData.REQUIRED_INDEX_FLAG;
+  private final static byte IGNORED_SECONDARY_INDEX_FLAGS = 
+    IGNORED_PRIMARY_INDEX_FLAGS | IndexData.UNIQUE_INDEX_FLAG;
   
   private TableImpl _primaryTable;
   private TableImpl _secondaryTable;
@@ -60,7 +62,6 @@ public class RelationshipCreator extends DBMutator
   // - enforcing rel integrity can't have dupe cols
   // FIXME
   // - what about index name clashes?
-  // - access crashes deleting rel? (bad idxs)?
 
   public RelationshipCreator(DatabaseImpl database) 
   {
@@ -119,13 +120,15 @@ public class RelationshipCreator extends DBMutator
   private void addPrimaryIndex() throws IOException {
     TableUpdater updater = new TableUpdater(_primaryTable);
     updater.setForeignKey(createFKReference(true));
-    updater.addIndex(createPrimaryIndex(), true, IGNORED_INDEX_FLAGS, (byte)0);
+    updater.addIndex(createPrimaryIndex(), true, 
+                     IGNORED_PRIMARY_INDEX_FLAGS, (byte)0);
   }
 
   private void addSecondaryIndex() throws IOException {
     TableUpdater updater = new TableUpdater(_secondaryTable);
     updater.setForeignKey(createFKReference(false));
-    updater.addIndex(createSecondaryIndex(), true, IGNORED_INDEX_FLAGS, (byte)0);
+    updater.addIndex(createSecondaryIndex(), true, 
+                     IGNORED_SECONDARY_INDEX_FLAGS, (byte)0);
   }
 
   private IndexImpl.ForeignKeyReference createFKReference(boolean isPrimary) {