You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/05/26 09:55:27 UTC

[ignite-3] branch main updated: IGNITE-14732: Introduce SortOrder enum for indexed column. (#133)

This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 8c124db  IGNITE-14732: Introduce SortOrder enum for indexed column. (#133)
8c124db is described below

commit 8c124dbfd1effdfa07a5a706b4c324714958259f
Author: Andrew V. Mashenkov <AM...@users.noreply.github.com>
AuthorDate: Wed May 26 12:55:21 2021 +0300

    IGNITE-14732: Introduce SortOrder enum for indexed column. (#133)
---
 .../schema/{SortedIndexColumn.java => SortOrder.java}       | 13 +++++++++----
 .../java/org/apache/ignite/schema/SortedIndexColumn.java    |  4 ++--
 .../ignite/internal/schema/SortedIndexColumnImpl.java       | 13 +++++++------
 .../internal/schema/builder/SortedIndexBuilderImpl.java     |  7 ++++---
 .../schema/configuration/SchemaConfigurationConverter.java  |  5 +++--
 .../internal/schema/builder/PrimaryKeyBuilderTest.java      |  7 +++----
 6 files changed, 28 insertions(+), 21 deletions(-)

diff --git a/modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java b/modules/api/src/main/java/org/apache/ignite/schema/SortOrder.java
similarity index 82%
copy from modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java
copy to modules/api/src/main/java/org/apache/ignite/schema/SortOrder.java
index 26c480b..282ebfc 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/SortOrder.java
@@ -18,11 +18,16 @@
 package org.apache.ignite.schema;
 
 /**
- * Sorted index column.
+ * Index column sort order.
  */
-public interface SortedIndexColumn extends IndexColumn {
+public enum SortOrder {
     /**
-     * @return {@code True} for ascending sort order, {@code false} otherwise.
+     * Ascending sort order.
      */
-    boolean asc();
+    ASC,
+
+    /**
+     * Descending sort order.
+     */
+    DESC
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java b/modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java
index 26c480b..731fdbd 100644
--- a/modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java
+++ b/modules/api/src/main/java/org/apache/ignite/schema/SortedIndexColumn.java
@@ -22,7 +22,7 @@ package org.apache.ignite.schema;
  */
 public interface SortedIndexColumn extends IndexColumn {
     /**
-     * @return {@code True} for ascending sort order, {@code false} otherwise.
+     * @return Column sort order.
      */
-    boolean asc();
+    SortOrder sortOrder();
 }
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SortedIndexColumnImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SortedIndexColumnImpl.java
index a0f7a37..aafcb5f 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/SortedIndexColumnImpl.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/SortedIndexColumnImpl.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.schema;
 
 import org.apache.ignite.internal.tostring.S;
+import org.apache.ignite.schema.SortOrder;
 import org.apache.ignite.schema.SortedIndexColumn;
 
 /**
@@ -25,23 +26,23 @@ import org.apache.ignite.schema.SortedIndexColumn;
  */
 public class SortedIndexColumnImpl extends AbstractSchemaObject implements SortedIndexColumn {
     /** Sort order. */
-    private final boolean asc;
+    private final SortOrder sortOrder;
 
     /**
      * Constructor.
      *
      * @param name Column name.
-     * @param asc Sort order flag.
+     * @param sortOrder Sort order flag.
      */
-    public SortedIndexColumnImpl(String name, boolean asc) {
+    public SortedIndexColumnImpl(String name, SortOrder sortOrder) {
         super(name);
 
-        this.asc = asc;
+        this.sortOrder = sortOrder;
     }
 
     /** {@inheritDoc} */
-    @Override public boolean asc() {
-        return asc;
+    @Override public SortOrder sortOrder() {
+        return sortOrder;
     }
 
     /** {@inheritDoc} */
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/builder/SortedIndexBuilderImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/builder/SortedIndexBuilderImpl.java
index fba1e47..0f7fb54 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/builder/SortedIndexBuilderImpl.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/builder/SortedIndexBuilderImpl.java
@@ -23,6 +23,7 @@ import java.util.Map;
 import java.util.stream.Collectors;
 import org.apache.ignite.internal.schema.SortedIndexColumnImpl;
 import org.apache.ignite.internal.schema.SortedIndexImpl;
+import org.apache.ignite.schema.SortOrder;
 import org.apache.ignite.schema.SortedIndex;
 import org.apache.ignite.schema.SortedIndexColumn;
 import org.apache.ignite.schema.builder.SortedIndexBuilder;
@@ -101,7 +102,7 @@ public class SortedIndexBuilderImpl extends AbstractIndexBuilder implements Sort
         protected String name;
 
         /** Index order flag. */
-        protected boolean asc = true;
+        protected SortOrder asc = SortOrder.ASC;
 
         /**
          * Constructor.
@@ -114,14 +115,14 @@ public class SortedIndexBuilderImpl extends AbstractIndexBuilder implements Sort
 
         /** {@inheritDoc} */
         @Override public SortedIndexColumnBuilderImpl desc() {
-            asc = false;
+            asc = SortOrder.DESC;
 
             return this;
         }
 
         /** {@inheritDoc} */
         @Override public SortedIndexColumnBuilderImpl asc() {
-            asc = true;
+            asc = SortOrder.ASC;
 
             return this;
         }
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverter.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverter.java
index f480d0d..ba4237f 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverter.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverter.java
@@ -44,6 +44,7 @@ import org.apache.ignite.schema.IndexColumn;
 import org.apache.ignite.schema.PartialIndex;
 import org.apache.ignite.schema.PrimaryIndex;
 import org.apache.ignite.schema.SchemaTable;
+import org.apache.ignite.schema.SortOrder;
 import org.apache.ignite.schema.SortedIndex;
 import org.apache.ignite.schema.SortedIndexColumn;
 import org.apache.ignite.schema.TableIndex;
@@ -101,7 +102,7 @@ public class SchemaConfigurationConverter {
      */
     public static void convert(SortedIndexColumn col, IndexColumnChange colInit) {
         colInit.changeName(col.name());
-        colInit.changeAsc(col.asc());
+        colInit.changeAsc(col.sortOrder() == SortOrder.ASC);
     }
 
     /**
@@ -111,7 +112,7 @@ public class SchemaConfigurationConverter {
      * @return SortedIndexColumn.
      */
     public static SortedIndexColumn convert(IndexColumnView colCfg) {
-        return new SortedIndexColumnImpl(colCfg.name(), colCfg.asc());
+        return new SortedIndexColumnImpl(colCfg.name(), colCfg.asc() ? SortOrder.ASC : SortOrder.DESC);
     }
 
     /**
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyBuilderTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyBuilderTest.java
index 90f3cd3..1e15096 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyBuilderTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/PrimaryKeyBuilderTest.java
@@ -19,12 +19,11 @@ package org.apache.ignite.internal.schema.builder;
 
 import org.apache.ignite.schema.PrimaryIndex;
 import org.apache.ignite.schema.SchemaBuilders;
+import org.apache.ignite.schema.SortOrder;
 import org.apache.ignite.schema.builder.PrimaryIndexBuilder;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Primary key builder test.
@@ -41,7 +40,7 @@ public class PrimaryKeyBuilderTest {
         PrimaryIndex idx = builder.build();
 
         assertEquals(2, idx.columns().size());
-        assertFalse(idx.columns().get(0).asc());
-        assertTrue(idx.columns().get(1).asc());
+        assertEquals(SortOrder.DESC, idx.columns().get(0).sortOrder());
+        assertEquals(SortOrder.ASC, idx.columns().get(1).sortOrder());
     }
 }