You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2017/03/09 11:31:24 UTC

ignite git commit: Moved full-text index into separate property.

Repository: ignite
Updated Branches:
  refs/heads/ignite-4565-ddl f6fa2659d -> f4a56fe67


Moved full-text index into separate property.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f4a56fe6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f4a56fe6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f4a56fe6

Branch: refs/heads/ignite-4565-ddl
Commit: f4a56fe67739ca6b8666cec6c0b2f7bce288d191
Parents: f6fa265
Author: devozerov <vo...@gridgain.com>
Authored: Thu Mar 9 14:31:17 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Mar 9 14:31:17 2017 +0300

----------------------------------------------------------------------
 .../cache/query/GridCacheQueryManager.java      |  9 ++--
 .../processors/query/GridQueryProcessor.java    | 10 ++--
 .../query/GridQueryTypeDescriptor.java          |  7 +++
 .../processors/query/h2/IgniteH2Indexing.java   | 55 ++++++++++----------
 .../query/h2/opt/GridLuceneIndex.java           | 11 +---
 .../h2/GridIndexingSpiAbstractSelfTest.java     |  8 ++-
 6 files changed, 53 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a56fe6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index 28a5886..66ac16d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -2489,13 +2489,14 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
 
                         fields.put(type.name(), fieldsMap);
 
-                        Collection<GridCacheSqlIndexMetadata> indexesCol =
-                            new ArrayList<>(type.indexes().size());
+                        Map<String, GridQueryIndexDescriptor> idxs = type.indexes();
 
-                        for (Map.Entry<String, GridQueryIndexDescriptor> e : type.indexes().entrySet()) {
+                        Collection<GridCacheSqlIndexMetadata> indexesCol = new ArrayList<>(idxs.size());
+
+                        for (Map.Entry<String, GridQueryIndexDescriptor> e : idxs.entrySet()) {
                             GridQueryIndexDescriptor desc = e.getValue();
 
-                            // Add only SQL indexes.
+                            // Add only SQL SORTED indexes.
                             if (desc.type() == GridQueryIndexType.SORTED) {
                                 Collection<String> idxFields = new LinkedList<>();
                                 Collection<String> descendings = new LinkedList<>();

http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a56fe6/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index ad900ea..01c7122 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -2455,6 +2455,11 @@ public class GridQueryProcessor extends GridProcessorAdapter {
             return Collections.<String, GridQueryIndexDescriptor>unmodifiableMap(indexes);
         }
 
+        /** {@inheritDoc} */
+        @Override public GridQueryIndexDescriptor textIndex() {
+            return fullTextIdx;
+        }
+
         /**
          * Adds index.
          *
@@ -2497,12 +2502,9 @@ public class GridQueryProcessor extends GridProcessorAdapter {
          * @param field Field name.
          */
         public void addFieldToTextIndex(String field) {
-            if (fullTextIdx == null) {
+            if (fullTextIdx == null)
                 fullTextIdx = new IndexDescriptor(FULLTEXT);
 
-                indexes.put(null, fullTextIdx);
-            }
-
             fullTextIdx.addField(field, 0, false);
         }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a56fe6/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryTypeDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryTypeDescriptor.java
index 855726f..2857af5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryTypeDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryTypeDescriptor.java
@@ -81,6 +81,13 @@ public interface GridQueryTypeDescriptor {
     public Map<String, GridQueryIndexDescriptor> indexes();
 
     /**
+     * Get text index for this type (if any).
+     *
+     * @return Text index or {@code null}.
+     */
+    public GridQueryIndexDescriptor textIndex();
+
+    /**
      * Gets value class.
      *
      * @return Value class.

http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a56fe6/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index f0f6bba..c7077a8 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -2629,45 +2629,46 @@ public class IgniteH2Indexing implements GridQueryIndexing {
 
             boolean affIdxFound = false;
 
+            GridQueryIndexDescriptor textIdx = type.textIndex();
+
+            if (textIdx != null) {
+                try {
+                    luceneIdx = new GridLuceneIndex(ctx, schema.offheap, schema.spaceName, type);
+                }
+                catch (IgniteCheckedException e1) {
+                    throw new IgniteException(e1);
+                }
+            }
+
             for (Map.Entry<String, GridQueryIndexDescriptor> e : type.indexes().entrySet()) {
                 String name = e.getKey();
                 GridQueryIndexDescriptor idx = e.getValue();
 
-                if (idx.type() == FULLTEXT) {
-                    try {
-                        luceneIdx = new GridLuceneIndex(ctx, schema.offheap, schema.spaceName, type);
-                    }
-                    catch (IgniteCheckedException e1) {
-                        throw new IgniteException(e1);
-                    }
-                }
-                else {
-                    List<IndexColumn> cols = new ArrayList<>(idx.fields().size() + 2);
+                List<IndexColumn> cols = new ArrayList<>(idx.fields().size() + 2);
 
-                    boolean escapeAll = schema.escapeAll();
+                boolean escapeAll = schema.escapeAll();
 
-                    for (String field : idx.fields()) {
-                        String fieldName = escapeAll ? field : escapeName(field, false).toUpperCase();
+                for (String field : idx.fields()) {
+                    String fieldName = escapeAll ? field : escapeName(field, false).toUpperCase();
 
-                        Column col = tbl.getColumn(fieldName);
+                    Column col = tbl.getColumn(fieldName);
 
-                        cols.add(tbl.indexColumn(col.getColumnId(),
-                            idx.descending(field) ? SortOrder.DESCENDING : SortOrder.ASCENDING));
-                    }
+                    cols.add(tbl.indexColumn(col.getColumnId(),
+                        idx.descending(field) ? SortOrder.DESCENDING : SortOrder.ASCENDING));
+                }
 
-                    if (idx.type() == SORTED) {
-                        // We don't care about number of fields in affinity index, just affinity key must be the first.
-                        affIdxFound |= affCol != null && equal(cols.get(0), affCol);
+                if (idx.type() == SORTED) {
+                    // We don't care about number of fields in affinity index, just affinity key must be the first.
+                    affIdxFound |= affCol != null && equal(cols.get(0), affCol);
 
-                        cols = treeIndexColumns(cols, keyCol, affCol);
+                    cols = treeIndexColumns(cols, keyCol, affCol);
 
-                        idxs.add(new GridH2TreeIndex(name, tbl, false, cols));
-                    }
-                    else if (idx.type() == GEO_SPATIAL)
-                        idxs.add(createH2SpatialIndex(tbl, name, cols.toArray(new IndexColumn[cols.size()])));
-                    else
-                        throw new IllegalStateException("Index type: " + idx.type());
+                    idxs.add(new GridH2TreeIndex(name, tbl, false, cols));
                 }
+                else if (idx.type() == GEO_SPATIAL)
+                    idxs.add(createH2SpatialIndex(tbl, name, cols.toArray(new IndexColumn[cols.size()])));
+                else
+                    throw new IllegalStateException("Index type: " + idx.type());
             }
 
             // Add explicit affinity key index if nothing alike was found.

http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a56fe6/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java
index 716c9cb..0e003a4 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridLuceneIndex.java
@@ -25,7 +25,6 @@ import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.CacheObjectContext;
 import org.apache.ignite.internal.processors.query.GridQueryIndexDescriptor;
-import org.apache.ignite.internal.processors.query.GridQueryIndexType;
 import org.apache.ignite.internal.processors.query.GridQueryTypeDescriptor;
 import org.apache.ignite.internal.util.GridAtomicLong;
 import org.apache.ignite.internal.util.GridCloseableIteratorAdapter;
@@ -115,15 +114,7 @@ public class GridLuceneIndex implements AutoCloseable {
             throw new IgniteCheckedException(e);
         }
 
-        GridQueryIndexDescriptor idx = null;
-
-        for (GridQueryIndexDescriptor descriptor : type.indexes().values()) {
-            if (descriptor.type() == GridQueryIndexType.FULLTEXT) {
-                idx = descriptor;
-
-                break;
-            }
-        }
+        GridQueryIndexDescriptor idx = type.textIndex();
 
         if (idx != null) {
             Collection<String> fields = idx.fields();

http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a56fe6/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
index 54c6019..e670666 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
@@ -627,8 +627,12 @@ public abstract class GridIndexingSpiAbstractSelfTest extends GridCommonAbstract
 
         /** */
         @Override public Map<String, GridQueryIndexDescriptor> indexes() {
-            return textIdx == null ? Collections.<String, GridQueryIndexDescriptor>emptyMap() :
-                Collections.singletonMap("index", textIdx);
+            return Collections.emptyMap();
+        }
+
+        /** */
+        @Override public GridQueryIndexDescriptor textIndex() {
+            return textIdx;
         }
 
         /** */