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()); } /**
