svn commit: r949624 - /ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r949624 - /ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java

doogie-3
Author: doogie
Date: Sun May 30 22:08:35 2010
New Revision: 949624

URL: http://svn.apache.org/viewvc?rev=949624&view=rev
Log:
Start refactoring fkIndex creation and declared index creation.

Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java?rev=949624&r1=949623&r2=949624&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java Sun May 30 22:08:35 2010
@@ -514,7 +514,7 @@ public class DatabaseUtil {
         }
 
         // make sure each one-relation has an index
-        if (checkFkIdx) {
+        if (checkFkIdx || datasourceInfo.checkIndicesOnStart) {
         //if (!justColumns && datasourceInfo.useFkIndices && datasourceInfo.checkFkIndicesOnStart) {
             int numIndicesCreated = 0;
             // TODO: check each key-map to make sure it exists in the index, if any differences warn and then remove the index and recreate it
@@ -545,21 +545,28 @@ public class DatabaseUtil {
 
                     if (tableIndexList == null) {
                         // evidently no indexes in the database for this table, do the create all
-                        this.createForeignKeyIndices(entity, datasourceInfo.constraintNameClipLength, messages);
-                    } else {
-                        // go through each relation to see if an FK already exists
-                        boolean createdConstraints = false;
-                        Iterator<ModelRelation> relations = entity.getRelationsIterator();
-                        while (relations.hasNext()) {
-                            ModelRelation modelRelation = relations.next();
-                            if (!"one".equals(modelRelation.getType())) {
-                                continue;
-                            }
+                        if (checkFkIdx) {
+                            this.createForeignKeyIndices(entity, datasourceInfo.constraintNameClipLength, messages);
+                        }
+                        if (datasourceInfo.checkIndicesOnStart) {
+                            this.createDeclaredIndices(entity, messages);
+                        }
+                        continue;
+                    }
+                    // go through each relation to see if an FK already exists
+                    boolean createdConstraints = false;
+                    Iterator<ModelRelation> relations = entity.getRelationsIterator();
+                    while (relations.hasNext()) {
+                        ModelRelation modelRelation = relations.next();
+                        if (!"one".equals(modelRelation.getType())) {
+                            continue;
+                        }
 
-                            String relConstraintName = makeFkConstraintName(modelRelation, datasourceInfo.constraintNameClipLength);
-                            if (tableIndexList.contains(relConstraintName)) {
-                                tableIndexList.remove(relConstraintName);
-                            } else {
+                        String relConstraintName = makeFkConstraintName(modelRelation, datasourceInfo.constraintNameClipLength);
+                        if (tableIndexList.contains(relConstraintName)) {
+                            tableIndexList.remove(relConstraintName);
+                        } else {
+                            if (checkFkIdx) {
                                 // if not, create one
                                 String noIdxMessage = "No Index [" + relConstraintName + "] found for entity [" + entityName + "]";
                                 if (messages != null) messages.add(noIdxMessage);
@@ -581,68 +588,24 @@ public class DatabaseUtil {
                                 }
                             }
                         }
-                        if (createdConstraints) {
-                            String message = "Created foreign key index/indices for entity [" + entity.getEntityName() + "]";
-                            Debug.logImportant(message, module);
-                            if (messages != null) messages.add(message);
-                        }
-                    }
-
-                    // show foreign key references that exist but are unknown
-                    if (tableIndexList != null) {
-                        for (String indexLeft: tableIndexList) {
-                            String message = "Unknown Index " + indexLeft + " found in table " + entity.getTableName(datasourceInfo);
-                            Debug.logImportant(message, module);
-                            if (messages != null) messages.add(message);
-                        }
                     }
-                }
-            }
-            if (Debug.infoOn()) Debug.logInfo("Created " + numIndicesCreated + " indices", module);
-        }
-
-        if (datasourceInfo.checkIndicesOnStart) {
-            int numIndicesCreated = 0;
-            // TODO: check each key-map to make sure it exists in the index, if any differences warn and then remove the index and recreate it
-
-            // get ALL column info, put into hashmap by table name
-            Map<String, Set<String>> tableIndexListMap = this.getIndexInfo(indexTableNames, messages);
 
-            // Debug.logVerbose("Ref Info Map: " + refTableInfoMap, module);
-
-            if (tableIndexListMap == null) {
-                // uh oh, something happened while getting info...
-                if (Debug.verboseOn()) Debug.logVerbose("Ref Table Info Map is null", module);
-            } else {
-                for (ModelEntity entity: modelEntityList) {
-                    String entityName = entity.getEntityName();
-                    // if this is a view entity, do not check it...
-                    if (entity instanceof ModelViewEntity) {
-                        String entMessage = "NOT Checking View Entity " + entity.getEntityName();
-                        Debug.logVerbose(entMessage, module);
-                        if (messages != null) messages.add(entMessage);
-                        continue;
+                    if (createdConstraints) {
+                        String message = "Created foreign key index/indices for entity [" + entity.getEntityName() + "]";
+                        Debug.logImportant(message, module);
+                        if (messages != null) messages.add(message);
                     }
-
-                    // get existing index list for this table
-                    Set<String> tableIndexList = tableIndexListMap.get(entity.getTableName(datasourceInfo));
-
-                    // Debug.logVerbose("Got ind info for table " + entity.getTableName(datasourceInfo) + ": " + tableIndexList, module);
-
-                    if (tableIndexList == null) {
-                        // evidently no indexes in the database for this table, do the create all
-                        this.createDeclaredIndices(entity, messages);
-                    } else {
-                        // go through each indice to see if an indice already exists
-                        boolean createdIndexes = false;
-                        Iterator<ModelIndex> indexes = entity.getIndexesIterator();
-                        while (indexes.hasNext()) {
-                            ModelIndex modelIndex = indexes.next();
-
-                            String relIndexName = makeIndexName(modelIndex, datasourceInfo.constraintNameClipLength);
-                            if (tableIndexList.contains(relIndexName)) {
-                                tableIndexList.remove(relIndexName);
-                            } else {
+                    // go through each indice to see if an indice already exists
+                    boolean createdIndexes = false;
+                    Iterator<ModelIndex> indexes = entity.getIndexesIterator();
+                    while (indexes.hasNext()) {
+                        ModelIndex modelIndex = indexes.next();
+
+                        String relIndexName = makeIndexName(modelIndex, datasourceInfo.constraintNameClipLength);
+                        if (tableIndexList.contains(relIndexName)) {
+                            tableIndexList.remove(relIndexName);
+                        } else {
+                            if (datasourceInfo.checkIndicesOnStart) {
                                 // if not, create one
                                 String noIdxMessage = "No Index [" + relIndexName + "] found for entity [" + entityName + "]";
                                 if (messages != null) messages.add(noIdxMessage);
@@ -664,11 +627,11 @@ public class DatabaseUtil {
                                 }
                             }
                         }
-                        if (createdIndexes) {
-                            String message = "Created declared index/indices for entity [" + entity.getEntityName() + "]";
-                            Debug.logImportant(message, module);
-                            if (messages != null) messages.add(message);
-                        }
+                    }
+                    if (createdIndexes) {
+                        String message = "Created declared index/indices for entity [" + entity.getEntityName() + "]";
+                        Debug.logImportant(message, module);
+                        if (messages != null) messages.add(message);
                     }
 
                     // show Indexe key references that exist but are unknown