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

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

commit 1f1e1926e1e2d95c81887241341e6b9675f84770
Author: amashenkov <[email protected]>
AuthorDate: Mon Aug 29 16:52:16 2022 +0300

    Fix sorted index ordering configuration.
---
 .../ignite/schema/definition/index/SortOrder.java  | 26 ++++++++++++++++++++--
 .../SchemaConfigurationConverter.java              |  4 ++--
 .../builder/SortedIndexDefinitionBuilderImpl.java  |  6 ++---
 .../builder/SortedIndexDefinitionBuilderTest.java  |  4 ++--
 .../SchemaConfigurationConverterTest.java          |  8 +++----
 5 files changed, 35 insertions(+), 13 deletions(-)

diff --git 
a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortOrder.java
 
b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortOrder.java
index 47843cb4c2..2bf72fbe62 100644
--- 
a/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortOrder.java
+++ 
b/modules/api/src/main/java/org/apache/ignite/schema/definition/index/SortOrder.java
@@ -24,10 +24,32 @@ public enum SortOrder {
     /**
      * Ascending sort order.
      */
-    ASC,
+    ASC_NULLS_FIRST(true, true),
+    ASC_NULLS_LAST(true, false),
 
     /**
      * Descending sort order.
      */
-    DESC
+    DESC_NULLS_FIRST(false, true),
+    DESC_NULLS_LAST(false, false);
+
+    /** Ascending order flag. */
+    private final boolean asc;
+
+    /** Nulls-first flag. */
+    private final boolean nullsFirst;
+
+    /**  */
+    private SortOrder(boolean asc, boolean nullsFirst) {
+        this.asc = asc;
+        this.nullsFirst = nullsFirst;
+    }
+
+    public boolean asc() {
+        return asc;
+    }
+
+    public boolean nullsFirst() {
+        return nullsFirst;
+    }
 }
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 253b9f2bc3..57c89dbca0 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
@@ -121,7 +121,7 @@ public class SchemaConfigurationConverter {
      * @return IndexColumnChange to get result from.
      */
     public static IndexColumnChange convert(SortedIndexColumnDefinition col, 
IndexColumnChange colInit) {
-        colInit.changeAsc(col.sortOrder() == SortOrder.ASC);
+        colInit.changeAsc(col.sortOrder() == SortOrder.ASC_NULLS_FIRST);
 
         return colInit;
     }
@@ -133,7 +133,7 @@ public class SchemaConfigurationConverter {
      * @return SortedIndexColumn.
      */
     public static SortedIndexColumnDefinition convert(IndexColumnView colCfg) {
-        return new SortedIndexColumnDefinitionImpl(colCfg.name(), colCfg.asc() 
? SortOrder.ASC : SortOrder.DESC);
+        return new SortedIndexColumnDefinitionImpl(colCfg.name(), colCfg.asc() 
? SortOrder.ASC_NULLS_FIRST : SortOrder.DESC_NULLS_LAST);
     }
 
     /**
diff --git 
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java
 
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java
index 8389e0a43e..1d9ef61b2b 100644
--- 
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java
+++ 
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/definition/builder/SortedIndexDefinitionBuilderImpl.java
@@ -105,7 +105,7 @@ public class SortedIndexDefinitionBuilderImpl extends 
AbstractIndexBuilder imple
         protected String name;
 
         /** Index order flag. */
-        protected SortOrder asc = SortOrder.ASC;
+        protected SortOrder asc = SortOrder.ASC_NULLS_FIRST;
 
         /**
          * Constructor.
@@ -119,7 +119,7 @@ public class SortedIndexDefinitionBuilderImpl extends 
AbstractIndexBuilder imple
         /** {@inheritDoc} */
         @Override
         public SortedIndexColumnBuilderImpl desc() {
-            asc = SortOrder.DESC;
+            asc = SortOrder.DESC_NULLS_LAST;
 
             return this;
         }
@@ -127,7 +127,7 @@ public class SortedIndexDefinitionBuilderImpl extends 
AbstractIndexBuilder imple
         /** {@inheritDoc} */
         @Override
         public SortedIndexColumnBuilderImpl asc() {
-            asc = SortOrder.ASC;
+            asc = SortOrder.ASC_NULLS_FIRST;
 
             return this;
         }
diff --git 
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java
 
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java
index c98059e15d..05534e6037 100644
--- 
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java
+++ 
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/builder/SortedIndexDefinitionBuilderTest.java
@@ -44,7 +44,7 @@ public class SortedIndexDefinitionBuilderTest {
 
         assertFalse(idx.unique());
         assertEquals(2, idx.indexedColumns().size());
-        assertEquals(SortOrder.ASC, idx.columns().get(0).sortOrder());
-        assertEquals(SortOrder.DESC, idx.columns().get(1).sortOrder());
+        assertEquals(SortOrder.ASC_NULLS_FIRST, 
idx.columns().get(0).sortOrder());
+        assertEquals(SortOrder.DESC_NULLS_LAST, 
idx.columns().get(1).sortOrder());
     }
 }
diff --git 
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java
 
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java
index e25e0eb531..638129bb05 100644
--- 
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java
+++ 
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/configuration/SchemaConfigurationConverterTest.java
@@ -176,8 +176,8 @@ public class SchemaConfigurationConverterTest extends 
AbstractSchemaConverterTes
         assertEquals(2, idx2.columns().size());
         assertEquals("A", idx2.columns().get(0).name());
         assertEquals("B", idx2.columns().get(1).name());
-        assertEquals(SortOrder.ASC, idx2.columns().get(0).sortOrder());
-        assertEquals(SortOrder.DESC, idx2.columns().get(1).sortOrder());
+        assertEquals(SortOrder.ASC_NULLS_FIRST, 
idx2.columns().get(0).sortOrder());
+        assertEquals(SortOrder.DESC_NULLS_LAST, 
idx2.columns().get(1).sortOrder());
     }
 
     /**
@@ -230,8 +230,8 @@ public class SchemaConfigurationConverterTest extends 
AbstractSchemaConverterTes
         assertEquals(2, idx2.columns().size());
         assertEquals("A", idx2.columns().get(0).name());
         assertEquals("COL1", idx2.columns().get(1).name());
-        assertEquals(SortOrder.ASC, idx2.columns().get(0).sortOrder());
-        assertEquals(SortOrder.DESC, idx2.columns().get(1).sortOrder());
+        assertEquals(SortOrder.ASC_NULLS_FIRST, 
idx2.columns().get(0).sortOrder());
+        assertEquals(SortOrder.DESC_NULLS_LAST, 
idx2.columns().get(1).sortOrder());
     }
 
     /**

Reply via email to