This is an automated email from the ASF dual-hosted git repository.
cwylie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new f8fa3f7e669 remove NullValueHandlingConfig, NullHandlingModule,
NullHandling (#17778)
f8fa3f7e669 is described below
commit f8fa3f7e669c695a5dbe80c924e1ba99cd650a2f
Author: Clint Wylie <[email protected]>
AuthorDate: Thu Mar 6 20:26:33 2025 -0800
remove NullValueHandlingConfig, NullHandlingModule, NullHandling (#17778)
---
codestyle/checkstyle.xml | 10 ---
.../org/apache/druid/indexer/InputRowSerde.java | 14 ++--
.../apache/druid/indexer/InputRowSerdeTest.java | 8 +--
.../apache/druid/common/config/NullHandling.java | 40 ------------
.../common/config/NullValueHandlingConfig.java | 74 ----------------------
.../druid/frame/field/StringFieldWriter.java | 2 +-
.../org/apache/druid/guice/NullHandlingModule.java | 37 -----------
.../apache/druid/guice/StartupInjectorBuilder.java | 14 ++--
.../druid/math/expr/ExpressionProcessing.java | 2 +-
...zablePairLongObjectDeltaEncodedStagedSerde.java | 6 +-
...erializablePairLongObjectSimpleStagedSerde.java | 6 +-
.../NullableNumericBufferAggregator.java | 18 +++---
.../NullableNumericVectorAggregator.java | 12 ++--
...zablePairLongDoubleDeltaEncodedStagedSerde.java | 4 +-
...erializablePairLongDoubleSimpleStagedSerde.java | 4 +-
...izablePairLongFloatDeltaEncodedStagedSerde.java | 4 +-
...SerializablePairLongFloatSimpleStagedSerde.java | 4 +-
...lizablePairLongLongDeltaEncodedStagedSerde.java | 4 +-
.../SerializablePairLongLongSimpleStagedSerde.java | 4 +-
.../aggregation/SingleValueBufferAggregator.java | 3 +-
.../any/NumericAnyBufferAggregator.java | 10 +--
.../any/NumericAnyVectorAggregator.java | 10 +--
.../firstlast/DoubleFirstLastVectorAggregator.java | 12 ++--
.../firstlast/FloatFirstLastVectorAggregator.java | 12 ++--
.../firstlast/LongFirstLastVectorAggregator.java | 12 ++--
...leStringFirstLastDimensionVectorAggregator.java | 10 +--
.../first/NumericFirstBufferAggregator.java | 12 ++--
.../last/NumericLastBufferAggregator.java | 12 ++--
.../druid/query/filter/SelectorDimFilter.java | 4 +-
.../GrouperBufferComparatorUtils.java | 6 +-
.../epinephelinae/RowBasedGrouperHelper.java | 8 +--
.../NullableDoubleGroupByVectorColumnSelector.java | 8 +--
.../NullableFloatGroupByVectorColumnSelector.java | 8 +--
.../NullableLongGroupByVectorColumnSelector.java | 8 +--
.../druid/segment/column/NullableTypeStrategy.java | 13 ++--
.../apache/druid/segment/column/TypeSignature.java | 4 +-
.../druid/segment/column/TypeStrategies.java | 26 ++++----
.../apache/druid/segment/column/TypeStrategy.java | 5 +-
.../apache/druid/segment/data/FixedIndexed.java | 4 +-
.../druid/segment/data/FixedIndexedWriter.java | 4 +-
.../druid/segment/data/FrontCodedIndexed.java | 4 +-
.../segment/data/FrontCodedIndexedWriter.java | 4 +-
.../segment/data/FrontCodedIntArrayIndexed.java | 4 +-
.../data/FrontCodedIntArrayIndexedWriter.java | 4 +-
.../druid/guice/StartupInjectorBuilderTest.java | 5 +-
.../any/NumericAnyVectorAggregatorTest.java | 18 +++---
.../druid/sql/calcite/BaseCalciteQueryTest.java | 4 --
47 files changed, 168 insertions(+), 333 deletions(-)
diff --git a/codestyle/checkstyle.xml b/codestyle/checkstyle.xml
index da70ddfad3a..092150acbce 100644
--- a/codestyle/checkstyle.xml
+++ b/codestyle/checkstyle.xml
@@ -196,16 +196,6 @@
<property name="illegalPattern" value="true"/>
<property name="message" value='Use toArray(new Object[0]) instead'/>
</module>
- <module name="Regexp">
- <property name="format" value="Strings.emptyToNull"/>
- <property name="illegalPattern" value="true"/>
- <property name="message" value="Use
org.apache.druid.common.config.NullHandling.emptyToNullIfNeeded instead"/>
- </module>
- <module name="Regexp">
- <property name="format" value="Strings.nullToEmpty"/>
- <property name="illegalPattern" value="true"/>
- <property name="message" value="Use
org.apache.druid.common.config.NullHandling.nullToEmptyIfNeeded instead"/>
- </module>
<module name="Regexp">
<property name="format" value='@Produces\(\"text/plain\"\)'/>
diff --git
a/indexing-hadoop/src/main/java/org/apache/druid/indexer/InputRowSerde.java
b/indexing-hadoop/src/main/java/org/apache/druid/indexer/InputRowSerde.java
index 720fcafc4f9..2c82dbfe1d6 100644
--- a/indexing-hadoop/src/main/java/org/apache/druid/indexer/InputRowSerde.java
+++ b/indexing-hadoop/src/main/java/org/apache/druid/indexer/InputRowSerde.java
@@ -23,7 +23,6 @@ import com.google.common.collect.Lists;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.data.input.InputRow;
import org.apache.druid.data.input.MapBasedInputRow;
import org.apache.druid.data.input.Rows;
@@ -38,6 +37,7 @@ import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.segment.DimensionHandlerUtils;
import org.apache.druid.segment.VirtualColumns;
import org.apache.druid.segment.column.ColumnType;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.column.ValueType;
import org.apache.druid.segment.incremental.IncrementalIndex;
import org.apache.druid.segment.serde.ComplexMetricSerde;
@@ -70,18 +70,18 @@ public class InputRowSerde
final Consumer<T> write)
{
if (ret == null) {
- out.writeByte(NullHandling.IS_NULL_BYTE);
+ out.writeByte(TypeStrategies.IS_NULL_BYTE);
return;
}
- out.writeByte(NullHandling.IS_NOT_NULL_BYTE);
+ out.writeByte(TypeStrategies.IS_NOT_NULL_BYTE);
write.accept(ret);
}
private static boolean isNullByteSet(final ByteArrayDataInput in)
{
- return in.readByte() == NullHandling.IS_NULL_BYTE;
+ return in.readByte() == TypeStrategies.IS_NULL_BYTE;
}
public interface IndexSerdeTypeHelper<T>
@@ -336,9 +336,9 @@ public class InputRowSerde
final ColumnType type = aggFactory.getIntermediateType();
if (agg.isNull()) {
- out.writeByte(NullHandling.IS_NULL_BYTE);
+ out.writeByte(TypeStrategies.IS_NULL_BYTE);
} else {
- out.writeByte(NullHandling.IS_NOT_NULL_BYTE);
+ out.writeByte(TypeStrategies.IS_NOT_NULL_BYTE);
if (type.is(ValueType.FLOAT)) {
out.writeFloat(agg.getFloat());
} else if (type.is(ValueType.LONG)) {
@@ -467,7 +467,7 @@ public class InputRowSerde
final ColumnType type = agg.getIntermediateType();
final byte metricNullability = in.readByte();
- if (metricNullability == NullHandling.IS_NULL_BYTE) {
+ if (metricNullability == TypeStrategies.IS_NULL_BYTE) {
// metric value is null.
continue;
}
diff --git
a/indexing-hadoop/src/test/java/org/apache/druid/indexer/InputRowSerdeTest.java
b/indexing-hadoop/src/test/java/org/apache/druid/indexer/InputRowSerdeTest.java
index 27a7a173f3b..36440fa87c1 100644
---
a/indexing-hadoop/src/test/java/org/apache/druid/indexer/InputRowSerdeTest.java
+++
b/indexing-hadoop/src/test/java/org/apache/druid/indexer/InputRowSerdeTest.java
@@ -20,7 +20,6 @@
package org.apache.druid.indexer;
import com.google.common.collect.ImmutableList;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.data.input.InputRow;
import org.apache.druid.data.input.MapBasedInputRow;
import org.apache.druid.data.input.impl.DimensionsSpec;
@@ -38,6 +37,7 @@ import
org.apache.druid.query.aggregation.LongSumAggregatorFactory;
import
org.apache.druid.query.aggregation.hyperloglog.HyperUniquesAggregatorFactory;
import org.apache.druid.segment.ColumnSelectorFactory;
import org.apache.druid.segment.column.ColumnType;
+import org.apache.druid.segment.column.TypeStrategies;
import org.easymock.EasyMock;
import org.junit.Assert;
import org.junit.Rule;
@@ -277,8 +277,8 @@ public class InputRowSerdeTest
long expected = 9 + 18 + 4 + 14 + 4 + 4 + 4 + 1;
Assert.assertEquals(expected, result.length);
- Assert.assertEquals(result[48], NullHandling.IS_NULL_BYTE);
- Assert.assertEquals(result[52], NullHandling.IS_NULL_BYTE);
- Assert.assertEquals(result[56], NullHandling.IS_NULL_BYTE);
+ Assert.assertEquals(result[48], TypeStrategies.IS_NULL_BYTE);
+ Assert.assertEquals(result[52], TypeStrategies.IS_NULL_BYTE);
+ Assert.assertEquals(result[56], TypeStrategies.IS_NULL_BYTE);
}
}
diff --git
a/processing/src/main/java/org/apache/druid/common/config/NullHandling.java
b/processing/src/main/java/org/apache/druid/common/config/NullHandling.java
deleted file mode 100644
index e2fe0d6f303..00000000000
--- a/processing/src/main/java/org/apache/druid/common/config/NullHandling.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.druid.common.config;
-
-import com.google.inject.Inject;
-
-/**
- * Some dead constants
- */
-public class NullHandling
-{
- public static final byte IS_NULL_BYTE = (byte) 1;
- public static final byte IS_NOT_NULL_BYTE = (byte) 0;
-
- /**
- * INSTANCE is injected using static injection to avoid adding JacksonInject
annotations all over the code.
- * See org.apache.druid.guice.NullHandlingModule for details.
- * It does not take effect in all unit tests since we don't use Guice
Injection.
- */
- @Inject
- private static NullValueHandlingConfig INSTANCE;
-
-}
diff --git
a/processing/src/main/java/org/apache/druid/common/config/NullValueHandlingConfig.java
b/processing/src/main/java/org/apache/druid/common/config/NullValueHandlingConfig.java
deleted file mode 100644
index 2e578b24dc5..00000000000
---
a/processing/src/main/java/org/apache/druid/common/config/NullValueHandlingConfig.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.druid.common.config;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.druid.java.util.common.logger.Logger;
-
-public class NullValueHandlingConfig
-{
- private static final Logger LOG = new Logger(NullValueHandlingConfig.class);
- public static final String NULL_HANDLING_CONFIG_STRING =
"druid.generic.useDefaultValueForNull";
- public static final String THREE_VALUE_LOGIC_CONFIG_STRING =
"druid.generic.useThreeValueLogicForNativeFilters";
- public static final String NULL_HANDLING_DURING_STRING_CARDINALITY =
"druid.generic.ignoreNullsForStringCardinality";
-
- @JsonProperty("useDefaultValueForNull")
- private final boolean useDefaultValuesForNull;
-
- @JsonProperty("useThreeValueLogicForNativeFilters")
- private final boolean useThreeValueLogicForNativeFilters;
-
- @JsonProperty("ignoreNullsForStringCardinality")
- private final boolean ignoreNullsForStringCardinality;
-
- @JsonCreator
- public NullValueHandlingConfig(
- @JsonProperty("useDefaultValueForNull") Boolean useDefaultValuesForNull,
- @JsonProperty("useThreeValueLogicForNativeFilters") Boolean
useThreeValueLogicForNativeFilters,
- @JsonProperty("ignoreNullsForStringCardinality") Boolean
ignoreNullsForStringCardinality
- )
- {
- if (useDefaultValuesForNull == null) {
- this.useDefaultValuesForNull =
Boolean.valueOf(System.getProperty(NULL_HANDLING_CONFIG_STRING, "false"));
- } else {
- this.useDefaultValuesForNull = useDefaultValuesForNull;
- }
- if (useThreeValueLogicForNativeFilters == null) {
- this.useThreeValueLogicForNativeFilters = Boolean.valueOf(
- System.getProperty(THREE_VALUE_LOGIC_CONFIG_STRING, "true")
- );
- } else {
- this.useThreeValueLogicForNativeFilters =
useThreeValueLogicForNativeFilters;
- }
- if (ignoreNullsForStringCardinality == null) {
- this.ignoreNullsForStringCardinality =
Boolean.valueOf(System.getProperty(
- NULL_HANDLING_DURING_STRING_CARDINALITY,
- "false"
- ));
- } else {
- if (this.useDefaultValuesForNull) {
- this.ignoreNullsForStringCardinality = ignoreNullsForStringCardinality;
- } else {
- this.ignoreNullsForStringCardinality = false;
- }
- }
- }
-}
diff --git
a/processing/src/main/java/org/apache/druid/frame/field/StringFieldWriter.java
b/processing/src/main/java/org/apache/druid/frame/field/StringFieldWriter.java
index 5b304f8a053..95a2426f8f8 100644
---
a/processing/src/main/java/org/apache/druid/frame/field/StringFieldWriter.java
+++
b/processing/src/main/java/org/apache/druid/frame/field/StringFieldWriter.java
@@ -45,7 +45,7 @@ public class StringFieldWriter implements FieldWriter
public static final byte NULL_ROW = 0x00;
/**
- * Different from the values in {@link
org.apache.druid.common.config.NullHandling}, since we want to be able to
+ * Different from the values in {@link
org.apache.druid.segment.column.TypeStrategies}, since we want to be able to
* sort as bytes, and we want nulls to come before non-nulls.
*/
public static final byte NULL_BYTE = 0x02;
diff --git
a/processing/src/main/java/org/apache/druid/guice/NullHandlingModule.java
b/processing/src/main/java/org/apache/druid/guice/NullHandlingModule.java
deleted file mode 100644
index b8be2e851a8..00000000000
--- a/processing/src/main/java/org/apache/druid/guice/NullHandlingModule.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.druid.guice;
-
-import com.google.inject.Binder;
-import com.google.inject.Module;
-import org.apache.druid.common.config.NullHandling;
-import org.apache.druid.common.config.NullValueHandlingConfig;
-
-/**
- */
-public class NullHandlingModule implements Module
-{
- @Override
- public void configure(Binder binder)
- {
- JsonConfigProvider.bind(binder, "druid.generic",
NullValueHandlingConfig.class);
- binder.requestStaticInjection(NullHandling.class);
- }
-}
diff --git
a/processing/src/main/java/org/apache/druid/guice/StartupInjectorBuilder.java
b/processing/src/main/java/org/apache/druid/guice/StartupInjectorBuilder.java
index 1d524a9a1e7..d71ba6d3753 100644
---
a/processing/src/main/java/org/apache/druid/guice/StartupInjectorBuilder.java
+++
b/processing/src/main/java/org/apache/druid/guice/StartupInjectorBuilder.java
@@ -23,7 +23,6 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.util.Providers;
-import org.apache.druid.common.config.NullValueHandlingConfig;
import org.apache.druid.jackson.JacksonModule;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.StringUtils;
@@ -51,13 +50,16 @@ import java.util.Properties;
*/
public class StartupInjectorBuilder extends
BaseInjectorBuilder<StartupInjectorBuilder>
{
+
+ static final String NULL_HANDLING_CONFIG_STRING =
"druid.generic.useDefaultValueForNull";
+ static final String THREE_VALUE_LOGIC_CONFIG_STRING =
"druid.generic.useThreeValueLogicForNativeFilters";
+
public StartupInjectorBuilder()
{
add(
new DruidGuiceExtensions(),
new JacksonModule(),
new ConfigModule(),
- new NullHandlingModule(),
new ExpressionProcessingModule(),
binder -> binder.bind(DruidSecondaryModule.class),
binder -> binder.bind(PropertiesValidator.class) // this gets
properties injected, later call to validate checks
@@ -131,25 +133,25 @@ public class StartupInjectorBuilder extends
BaseInjectorBuilder<StartupInjectorB
public void validate()
{
final boolean defaultValueMode = Boolean.parseBoolean(
-
properties.getProperty(NullValueHandlingConfig.NULL_HANDLING_CONFIG_STRING,
"false")
+ properties.getProperty(NULL_HANDLING_CONFIG_STRING, "false")
);
if (defaultValueMode) {
final String docsLink =
StringUtils.format("https://druid.apache.org/docs/%s/release-info/migr-ansi-sql-null",
getVersionString());
throw new ISE(
"%s set to 'true', but has been removed, see %s for details for
how to migrate to SQL compliant behavior",
- NullValueHandlingConfig.NULL_HANDLING_CONFIG_STRING,
+ NULL_HANDLING_CONFIG_STRING,
docsLink
);
}
final boolean no3vl = !Boolean.parseBoolean(
-
properties.getProperty(NullValueHandlingConfig.THREE_VALUE_LOGIC_CONFIG_STRING,
"true")
+ properties.getProperty(THREE_VALUE_LOGIC_CONFIG_STRING, "true")
);
if (no3vl) {
final String docsLink =
StringUtils.format("https://druid.apache.org/docs/%s/release-info/migr-ansi-sql-null",
getVersionString());
throw new ISE(
"%s set to 'false', but has been removed, see %s for details for
how to migrate to SQL compliant behavior",
- NullValueHandlingConfig.THREE_VALUE_LOGIC_CONFIG_STRING,
+ THREE_VALUE_LOGIC_CONFIG_STRING,
docsLink
);
}
diff --git
a/processing/src/main/java/org/apache/druid/math/expr/ExpressionProcessing.java
b/processing/src/main/java/org/apache/druid/math/expr/ExpressionProcessing.java
index 2387cea909f..2e84b33d7bf 100644
---
a/processing/src/main/java/org/apache/druid/math/expr/ExpressionProcessing.java
+++
b/processing/src/main/java/org/apache/druid/math/expr/ExpressionProcessing.java
@@ -23,7 +23,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.inject.Inject;
/**
- * Like {@link org.apache.druid.common.config.NullHandling}, except for
expressions processing configs
+ * Expressions processing configs
*/
public class ExpressionProcessing
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectDeltaEncodedStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectDeltaEncodedStagedSerde.java
index f276cd7b67f..aaa3303f23e 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectDeltaEncodedStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectDeltaEncodedStagedSerde.java
@@ -22,7 +22,7 @@ package org.apache.druid.query.aggregation;
import com.google.common.base.Preconditions;
import com.google.common.primitives.Ints;
import org.apache.druid.collections.SerializablePair;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.serde.cell.StagedSerde;
import org.apache.druid.segment.serde.cell.StorableBuffer;
@@ -84,7 +84,7 @@ public abstract class
AbstractSerializablePairLongObjectDeltaEncodedStagedSerde<
}
if (rhsObject != null) {
- byteBuffer.put(NullHandling.IS_NOT_NULL_BYTE);
+ byteBuffer.put(TypeStrategies.IS_NOT_NULL_BYTE);
if (pairClass.isAssignableFrom(SerializablePairLongLong.class)) {
byteBuffer.putLong((long) rhsObject);
} else if
(pairClass.isAssignableFrom(SerializablePairLongDouble.class)) {
@@ -93,7 +93,7 @@ public abstract class
AbstractSerializablePairLongObjectDeltaEncodedStagedSerde<
byteBuffer.putFloat((float) rhsObject);
}
} else {
- byteBuffer.put(NullHandling.IS_NULL_BYTE);
+ byteBuffer.put(TypeStrategies.IS_NULL_BYTE);
}
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectSimpleStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectSimpleStagedSerde.java
index 8a7857163e4..1d826e65855 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectSimpleStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/AbstractSerializablePairLongObjectSimpleStagedSerde.java
@@ -21,7 +21,7 @@ package org.apache.druid.query.aggregation;
import com.google.common.base.Preconditions;
import org.apache.druid.collections.SerializablePair;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.serde.cell.StagedSerde;
import org.apache.druid.segment.serde.cell.StorableBuffer;
@@ -64,7 +64,7 @@ public abstract class
AbstractSerializablePairLongObjectSimpleStagedSerde<T exte
Preconditions.checkNotNull(value.getLhs(), "Long in %s must be
non-null", pairCLass.getSimpleName());
byteBuffer.putLong(value.getLhs());
if (rhsObject != null) {
- byteBuffer.put(NullHandling.IS_NOT_NULL_BYTE);
+ byteBuffer.put(TypeStrategies.IS_NOT_NULL_BYTE);
if (pairCLass.isAssignableFrom(SerializablePairLongLong.class)) {
byteBuffer.putLong((long) rhsObject);
} else if
(pairCLass.isAssignableFrom(SerializablePairLongDouble.class)) {
@@ -73,7 +73,7 @@ public abstract class
AbstractSerializablePairLongObjectSimpleStagedSerde<T exte
byteBuffer.putFloat((float) rhsObject);
}
} else {
- byteBuffer.put(NullHandling.IS_NULL_BYTE);
+ byteBuffer.put(TypeStrategies.IS_NULL_BYTE);
}
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericBufferAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericBufferAggregator.java
index 4a8ce6f792a..963f298fe9b 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericBufferAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericBufferAggregator.java
@@ -19,11 +19,11 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.guice.annotations.PublicApi;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
import org.apache.druid.segment.BaseNullableColumnValueSelector;
import org.apache.druid.segment.ColumnSelectorFactory;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -60,7 +60,7 @@ public final class NullableNumericBufferAggregator implements
BufferAggregator
@Override
public void init(ByteBuffer buf, int position)
{
- buf.put(position, NullHandling.IS_NULL_BYTE);
+ buf.put(position, TypeStrategies.IS_NULL_BYTE);
delegate.init(buf, position + Byte.BYTES);
}
@@ -69,8 +69,8 @@ public final class NullableNumericBufferAggregator implements
BufferAggregator
{
boolean isNotNull = !nullSelector.isNull();
if (isNotNull) {
- if (buf.get(position) == NullHandling.IS_NULL_BYTE) {
- buf.put(position, NullHandling.IS_NOT_NULL_BYTE);
+ if (buf.get(position) == TypeStrategies.IS_NULL_BYTE) {
+ buf.put(position, TypeStrategies.IS_NOT_NULL_BYTE);
}
delegate.aggregate(buf, position + Byte.BYTES);
}
@@ -80,7 +80,7 @@ public final class NullableNumericBufferAggregator implements
BufferAggregator
@Nullable
public Object get(ByteBuffer buf, int position)
{
- if (buf.get(position) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position) == TypeStrategies.IS_NULL_BYTE) {
return null;
}
return delegate.get(buf, position + Byte.BYTES);
@@ -89,7 +89,7 @@ public final class NullableNumericBufferAggregator implements
BufferAggregator
@Override
public float getFloat(ByteBuffer buf, int position)
{
- if (buf.get(position) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position) == TypeStrategies.IS_NULL_BYTE) {
throw new IllegalStateException("Cannot return float for Null Value");
}
return delegate.getFloat(buf, position + Byte.BYTES);
@@ -98,7 +98,7 @@ public final class NullableNumericBufferAggregator implements
BufferAggregator
@Override
public long getLong(ByteBuffer buf, int position)
{
- if (buf.get(position) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position) == TypeStrategies.IS_NULL_BYTE) {
throw new IllegalStateException("Cannot return long for Null Value");
}
return delegate.getLong(buf, position + Byte.BYTES);
@@ -107,7 +107,7 @@ public final class NullableNumericBufferAggregator
implements BufferAggregator
@Override
public double getDouble(ByteBuffer buf, int position)
{
- if (buf.get(position) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position) == TypeStrategies.IS_NULL_BYTE) {
throw new IllegalStateException("Cannot return double for Null Value");
}
return delegate.getDouble(buf, position + Byte.BYTES);
@@ -116,7 +116,7 @@ public final class NullableNumericBufferAggregator
implements BufferAggregator
@Override
public boolean isNull(ByteBuffer buf, int position)
{
- return buf.get(position) == NullHandling.IS_NULL_BYTE ||
delegate.isNull(buf, position + Byte.BYTES);
+ return buf.get(position) == TypeStrategies.IS_NULL_BYTE ||
delegate.isNull(buf, position + Byte.BYTES);
}
@Override
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericVectorAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericVectorAggregator.java
index cdc4499f013..9a91176e2ab 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericVectorAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericVectorAggregator.java
@@ -19,8 +19,8 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.java.util.common.ISE;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorValueSelector;
import javax.annotation.Nullable;
@@ -68,7 +68,7 @@ public class NullableNumericVectorAggregator implements
VectorAggregator
@Override
public void init(ByteBuffer buf, int position)
{
- buf.put(position, NullHandling.IS_NULL_BYTE);
+ buf.put(position, TypeStrategies.IS_NULL_BYTE);
delegate.init(buf, position + Byte.BYTES);
}
@@ -132,9 +132,9 @@ public class NullableNumericVectorAggregator implements
VectorAggregator
public Object get(ByteBuffer buf, int position)
{
switch (buf.get(position)) {
- case NullHandling.IS_NULL_BYTE:
+ case TypeStrategies.IS_NULL_BYTE:
return null;
- case NullHandling.IS_NOT_NULL_BYTE:
+ case TypeStrategies.IS_NOT_NULL_BYTE:
return delegate.get(buf, position + Byte.BYTES);
default:
// Corrupted byte?
@@ -156,14 +156,14 @@ public class NullableNumericVectorAggregator implements
VectorAggregator
private void doAggregate(ByteBuffer buf, int position, int start, int end)
{
- buf.put(position, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position, TypeStrategies.IS_NOT_NULL_BYTE);
delegate.aggregate(buf, position + Byte.BYTES, start, end);
}
private void doAggregate(ByteBuffer buf, int numRows, int[] positions,
@Nullable int[] rows, int positionOffset)
{
for (int i = 0; i < numRows; i++) {
- buf.put(positions[i] + positionOffset, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(positions[i] + positionOffset, TypeStrategies.IS_NOT_NULL_BYTE);
}
delegate.aggregate(buf, numRows, positions, rows, positionOffset +
Byte.BYTES);
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleDeltaEncodedStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleDeltaEncodedStagedSerde.java
index ce087ec623e..d68d55e3f91 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleDeltaEncodedStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleDeltaEncodedStagedSerde.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -53,7 +53,7 @@ public class
SerializablePairLongDoubleDeltaEncodedStagedSerde extends AbstractS
lhs += minValue;
Double rhs = null;
- if (readOnlyBuffer.get() == NullHandling.IS_NOT_NULL_BYTE) {
+ if (readOnlyBuffer.get() == TypeStrategies.IS_NOT_NULL_BYTE) {
rhs = readOnlyBuffer.getDouble();
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleSimpleStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleSimpleStagedSerde.java
index bf5c60e0c5b..ee1de745707 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleSimpleStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongDoubleSimpleStagedSerde.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -44,7 +44,7 @@ public class SerializablePairLongDoubleSimpleStagedSerde
extends AbstractSeriali
long lhs = readOnlyBuffer.getLong();
Double rhs = null;
- if (readOnlyBuffer.get() == NullHandling.IS_NOT_NULL_BYTE) {
+ if (readOnlyBuffer.get() == TypeStrategies.IS_NOT_NULL_BYTE) {
rhs = readOnlyBuffer.getDouble();
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatDeltaEncodedStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatDeltaEncodedStagedSerde.java
index 0f5e4f7f4a9..0b1846a0b87 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatDeltaEncodedStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatDeltaEncodedStagedSerde.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -53,7 +53,7 @@ public class SerializablePairLongFloatDeltaEncodedStagedSerde
extends AbstractSe
lhs += minValue;
Float rhs = null;
- if (readOnlyBuffer.get() == NullHandling.IS_NOT_NULL_BYTE) {
+ if (readOnlyBuffer.get() == TypeStrategies.IS_NOT_NULL_BYTE) {
rhs = readOnlyBuffer.getFloat();
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatSimpleStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatSimpleStagedSerde.java
index d8390974a95..ec8ae074167 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatSimpleStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongFloatSimpleStagedSerde.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -44,7 +44,7 @@ public class SerializablePairLongFloatSimpleStagedSerde
extends AbstractSerializ
long lhs = readOnlyBuffer.getLong();
Float rhs = null;
- if (readOnlyBuffer.get() == NullHandling.IS_NOT_NULL_BYTE) {
+ if (readOnlyBuffer.get() == TypeStrategies.IS_NOT_NULL_BYTE) {
rhs = readOnlyBuffer.getFloat();
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongDeltaEncodedStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongDeltaEncodedStagedSerde.java
index dad3711c3c7..7f0357d0265 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongDeltaEncodedStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongDeltaEncodedStagedSerde.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -53,7 +53,7 @@ public class SerializablePairLongLongDeltaEncodedStagedSerde
extends AbstractSer
lhs += minValue;
Long rhs = null;
- if (readOnlyBuffer.get() == NullHandling.IS_NOT_NULL_BYTE) {
+ if (readOnlyBuffer.get() == TypeStrategies.IS_NOT_NULL_BYTE) {
rhs = readOnlyBuffer.getLong();
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongSimpleStagedSerde.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongSimpleStagedSerde.java
index 587ce18a0b4..2fd11b58c01 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongSimpleStagedSerde.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongLongSimpleStagedSerde.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -44,7 +44,7 @@ public class SerializablePairLongLongSimpleStagedSerde
extends AbstractSerializa
long lhs = readOnlyBuffer.getLong();
Long rhs = null;
- if (readOnlyBuffer.get() == NullHandling.IS_NOT_NULL_BYTE) {
+ if (readOnlyBuffer.get() == TypeStrategies.IS_NOT_NULL_BYTE) {
rhs = readOnlyBuffer.getLong();
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SingleValueBufferAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SingleValueBufferAggregator.java
index 5b5b6b2e054..f847dfed156 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SingleValueBufferAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SingleValueBufferAggregator.java
@@ -19,7 +19,6 @@
package org.apache.druid.query.aggregation;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import org.apache.druid.error.InvalidInput;
import org.apache.druid.segment.ColumnValueSelector;
@@ -47,7 +46,7 @@ public class SingleValueBufferAggregator implements
BufferAggregator
@Override
public void init(ByteBuffer buf, int position)
{
- buf.put(position, NullHandling.IS_NULL_BYTE);
+ buf.put(position, TypeStrategies.IS_NULL_BYTE);
}
@Override
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyBufferAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyBufferAggregator.java
index 1b7eeeaee09..cdaf5f0533b 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyBufferAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyBufferAggregator.java
@@ -19,10 +19,10 @@
package org.apache.druid.query.aggregation.any;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
import org.apache.druid.segment.BaseNullableColumnValueSelector;
+import org.apache.druid.segment.column.TypeStrategies;
import java.nio.ByteBuffer;
@@ -59,7 +59,7 @@ public abstract class NumericAnyBufferAggregator<TSelector
extends BaseNullableC
@Override
public void init(ByteBuffer buf, int position)
{
- buf.put(position, NullHandling.IS_NULL_BYTE);
+ buf.put(position, TypeStrategies.IS_NULL_BYTE);
initValue(buf, position);
}
@@ -69,16 +69,16 @@ public abstract class NumericAnyBufferAggregator<TSelector
extends BaseNullableC
if ((buf.get(position) & BYTE_FLAG_FOUND_MASK) != BYTE_FLAG_FOUND_MASK) {
if (!valueSelector.isNull()) {
putValue(buf, position);
- buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
NullHandling.IS_NOT_NULL_BYTE));
+ buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NOT_NULL_BYTE));
} else {
- buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
NullHandling.IS_NULL_BYTE));
+ buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NULL_BYTE));
}
}
}
boolean isValueNull(ByteBuffer buf, int position)
{
- return (buf.get(position) & BYTE_FLAG_NULL_MASK) ==
NullHandling.IS_NULL_BYTE;
+ return (buf.get(position) & BYTE_FLAG_NULL_MASK) ==
TypeStrategies.IS_NULL_BYTE;
}
@Override
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregator.java
index 5bfd877fd83..9bd2131dfef 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregator.java
@@ -20,8 +20,8 @@
package org.apache.druid.query.aggregation.any;
import com.google.common.annotations.VisibleForTesting;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.VectorAggregator;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorValueSelector;
import javax.annotation.Nullable;
@@ -64,7 +64,7 @@ public abstract class NumericAnyVectorAggregator implements
VectorAggregator
@Override
public void init(ByteBuffer buf, int position)
{
- buf.put(position, NullHandling.IS_NULL_BYTE);
+ buf.put(position, TypeStrategies.IS_NULL_BYTE);
initValue(buf, position + FOUND_VALUE_OFFSET);
}
@@ -85,7 +85,7 @@ public abstract class NumericAnyVectorAggregator implements
VectorAggregator
}
// There are no nulls, so try to put a value from the value selector
if (putAnyValueFromRow(buf, position + FOUND_VALUE_OFFSET, startRow,
endRow)) {
- buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
NullHandling.IS_NOT_NULL_BYTE));
+ buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NOT_NULL_BYTE));
}
}
}
@@ -123,11 +123,11 @@ public abstract class NumericAnyVectorAggregator
implements VectorAggregator
@VisibleForTesting
boolean isValueNull(ByteBuffer buf, int position)
{
- return (buf.get(position) & BYTE_FLAG_NULL_MASK) ==
NullHandling.IS_NULL_BYTE;
+ return (buf.get(position) & BYTE_FLAG_NULL_MASK) ==
TypeStrategies.IS_NULL_BYTE;
}
private void putNull(ByteBuffer buf, int position)
{
- buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
NullHandling.IS_NULL_BYTE));
+ buf.put(position, (byte) (BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NULL_BYTE));
}
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/DoubleFirstLastVectorAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/DoubleFirstLastVectorAggregator.java
index fe87804f463..acb4514886a 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/DoubleFirstLastVectorAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/DoubleFirstLastVectorAggregator.java
@@ -19,8 +19,8 @@
package org.apache.druid.query.aggregation.firstlast;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.SerializablePairLongDouble;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorObjectSelector;
import org.apache.druid.segment.vector.VectorValueSelector;
@@ -60,7 +60,7 @@ public class DoubleFirstLastVectorAggregator extends
FirstLastVectorAggregator<D
buf.putLong(position, selectionPredicate.initValue());
buf.put(
position + NULLITY_OFFSET,
- NullHandling.IS_NULL_BYTE
+ TypeStrategies.IS_NULL_BYTE
);
buf.putDouble(position + VALUE_OFFSET, 0.0D);
}
@@ -70,7 +70,7 @@ public class DoubleFirstLastVectorAggregator extends
FirstLastVectorAggregator<D
public Object get(ByteBuffer buf, int position)
{
long time = buf.getLong(position);
- if (buf.get(position + NULLITY_OFFSET) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position + NULLITY_OFFSET) == TypeStrategies.IS_NULL_BYTE) {
return new SerializablePairLongDouble(time, null);
}
return new SerializablePairLongDouble(time, buf.getDouble(position +
VALUE_OFFSET));
@@ -80,7 +80,7 @@ public class DoubleFirstLastVectorAggregator extends
FirstLastVectorAggregator<D
protected void putValue(ByteBuffer buf, int position, long time, Double
value)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putDouble(position + VALUE_OFFSET, value);
}
@@ -88,7 +88,7 @@ public class DoubleFirstLastVectorAggregator extends
FirstLastVectorAggregator<D
protected void putValue(ByteBuffer buf, int position, long time,
VectorValueSelector valueSelector, int index)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putDouble(position + VALUE_OFFSET,
valueSelector.getDoubleVector()[index]);
}
@@ -96,7 +96,7 @@ public class DoubleFirstLastVectorAggregator extends
FirstLastVectorAggregator<D
protected void putNull(ByteBuffer buf, int position, long time)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NULL_BYTE);
buf.putDouble(position + VALUE_OFFSET, 0.0D);
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/FloatFirstLastVectorAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/FloatFirstLastVectorAggregator.java
index 6c9caa196b3..1b7d280837a 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/FloatFirstLastVectorAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/FloatFirstLastVectorAggregator.java
@@ -19,8 +19,8 @@
package org.apache.druid.query.aggregation.firstlast;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.SerializablePairLongFloat;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorObjectSelector;
import org.apache.druid.segment.vector.VectorValueSelector;
@@ -60,7 +60,7 @@ public class FloatFirstLastVectorAggregator extends
FirstLastVectorAggregator<Fl
buf.putLong(position, selectionPredicate.initValue());
buf.put(
position + NULLITY_OFFSET,
- NullHandling.IS_NULL_BYTE
+ TypeStrategies.IS_NULL_BYTE
);
buf.putFloat(position + VALUE_OFFSET, 0.0F);
}
@@ -70,7 +70,7 @@ public class FloatFirstLastVectorAggregator extends
FirstLastVectorAggregator<Fl
public Object get(ByteBuffer buf, int position)
{
long time = buf.getLong(position);
- if (buf.get(position + NULLITY_OFFSET) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position + NULLITY_OFFSET) == TypeStrategies.IS_NULL_BYTE) {
return new SerializablePairLongFloat(time, null);
}
return new SerializablePairLongFloat(time, buf.getFloat(position +
VALUE_OFFSET));
@@ -80,7 +80,7 @@ public class FloatFirstLastVectorAggregator extends
FirstLastVectorAggregator<Fl
protected void putValue(ByteBuffer buf, int position, long time, Float value)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putFloat(position + VALUE_OFFSET, value);
}
@@ -88,7 +88,7 @@ public class FloatFirstLastVectorAggregator extends
FirstLastVectorAggregator<Fl
protected void putValue(ByteBuffer buf, int position, long time,
VectorValueSelector valueSelector, int index)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putFloat(position + VALUE_OFFSET,
valueSelector.getFloatVector()[index]);
}
@@ -96,7 +96,7 @@ public class FloatFirstLastVectorAggregator extends
FirstLastVectorAggregator<Fl
protected void putNull(ByteBuffer buf, int position, long time)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NULL_BYTE);
buf.putFloat(position + VALUE_OFFSET, 0.0F);
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/LongFirstLastVectorAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/LongFirstLastVectorAggregator.java
index fa3398ab925..90ef096b84d 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/LongFirstLastVectorAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/LongFirstLastVectorAggregator.java
@@ -19,8 +19,8 @@
package org.apache.druid.query.aggregation.firstlast;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.SerializablePairLongLong;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorObjectSelector;
import org.apache.druid.segment.vector.VectorValueSelector;
@@ -60,7 +60,7 @@ public class LongFirstLastVectorAggregator extends
FirstLastVectorAggregator<Lon
buf.putLong(position, selectionPredicate.initValue());
buf.put(
position + NULLITY_OFFSET,
- NullHandling.IS_NULL_BYTE
+ TypeStrategies.IS_NULL_BYTE
);
buf.putLong(position + VALUE_OFFSET, 0L);
}
@@ -70,7 +70,7 @@ public class LongFirstLastVectorAggregator extends
FirstLastVectorAggregator<Lon
public Object get(ByteBuffer buf, int position)
{
long time = buf.getLong(position);
- if (buf.get(position + NULLITY_OFFSET) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position + NULLITY_OFFSET) == TypeStrategies.IS_NULL_BYTE) {
return new SerializablePairLongLong(time, null);
}
return new SerializablePairLongLong(time, buf.getLong(position +
VALUE_OFFSET));
@@ -80,7 +80,7 @@ public class LongFirstLastVectorAggregator extends
FirstLastVectorAggregator<Lon
protected void putValue(ByteBuffer buf, int position, long time, Long value)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putLong(position + VALUE_OFFSET, value);
}
@@ -88,7 +88,7 @@ public class LongFirstLastVectorAggregator extends
FirstLastVectorAggregator<Lon
protected void putValue(ByteBuffer buf, int position, long time,
VectorValueSelector valueSelector, int index)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putLong(position + VALUE_OFFSET, valueSelector.getLongVector()[index]);
}
@@ -96,7 +96,7 @@ public class LongFirstLastVectorAggregator extends
FirstLastVectorAggregator<Lon
protected void putNull(ByteBuffer buf, int position, long time)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NULL_BYTE);
buf.putLong(position + VALUE_OFFSET, 0L);
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/SingleStringFirstLastDimensionVectorAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/SingleStringFirstLastDimensionVectorAggregator.java
index f5db20355af..7a85e100b1b 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/SingleStringFirstLastDimensionVectorAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/SingleStringFirstLastDimensionVectorAggregator.java
@@ -19,10 +19,10 @@
package org.apache.druid.query.aggregation.firstlast;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.query.aggregation.SerializablePairLongString;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.SingleValueDimensionVectorSelector;
import org.apache.druid.segment.vector.VectorValueSelector;
@@ -60,7 +60,7 @@ public class SingleStringFirstLastDimensionVectorAggregator
buf.putLong(position, selectionPredicate.initValue());
buf.put(
position + NULLITY_OFFSET,
- NullHandling.IS_NULL_BYTE
+ TypeStrategies.IS_NULL_BYTE
);
buf.putInt(position + VALUE_OFFSET, 0);
}
@@ -74,7 +74,7 @@ public class SingleStringFirstLastDimensionVectorAggregator
public Object get(ByteBuffer buf, int position)
{
long time = buf.getLong(position);
- if (buf.get(position + NULLITY_OFFSET) == NullHandling.IS_NULL_BYTE) {
+ if (buf.get(position + NULLITY_OFFSET) == TypeStrategies.IS_NULL_BYTE) {
return new SerializablePairLongString(time, null);
}
int index = buf.getInt(position + VALUE_OFFSET);
@@ -92,7 +92,7 @@ public class SingleStringFirstLastDimensionVectorAggregator
protected void putValue(ByteBuffer buf, int position, long time,
VectorValueSelector valueSelector, int index)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
buf.putInt(
position + VALUE_OFFSET,
((SingleValueDimensionVectorSelectorAdapter)
valueSelector).singleValueDimensionVectorSelector.getRowVector()[index]
@@ -103,7 +103,7 @@ public class SingleStringFirstLastDimensionVectorAggregator
protected void putNull(ByteBuffer buf, int position, long time)
{
buf.putLong(position, time);
- buf.put(position + NULLITY_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULLITY_OFFSET, TypeStrategies.IS_NULL_BYTE);
buf.putInt(position + VALUE_OFFSET, 0);
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/first/NumericFirstBufferAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/first/NumericFirstBufferAggregator.java
index 701c2955f3b..b815c752440 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/first/NumericFirstBufferAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/first/NumericFirstBufferAggregator.java
@@ -20,11 +20,11 @@
package org.apache.druid.query.aggregation.firstlast.first;
import org.apache.druid.collections.SerializablePair;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
import org.apache.druid.segment.BaseLongColumnValueSelector;
import org.apache.druid.segment.ColumnValueSelector;
+import org.apache.druid.segment.column.TypeStrategies;
import java.nio.ByteBuffer;
@@ -63,33 +63,33 @@ public abstract class NumericFirstBufferAggregator
implements BufferAggregator
void updateTimeWithValue(ByteBuffer buf, int position, long time,
ColumnValueSelector valueSelector)
{
buf.putLong(position, time);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
putValue(buf, position + VALUE_OFFSET, valueSelector);
}
void updateTimeWithValue(ByteBuffer buf, int position, long time, Number
value)
{
buf.putLong(position, time);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
putValue(buf, position + VALUE_OFFSET, value);
}
void updateTimeWithNull(ByteBuffer buf, int position, long time)
{
buf.putLong(position, time);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NULL_BYTE);
}
boolean isValueNull(ByteBuffer buf, int position)
{
- return buf.get(position + NULL_OFFSET) == NullHandling.IS_NULL_BYTE;
+ return buf.get(position + NULL_OFFSET) == TypeStrategies.IS_NULL_BYTE;
}
@Override
public void init(ByteBuffer buf, int position)
{
buf.putLong(position, Long.MAX_VALUE);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NULL_BYTE);
initValue(buf, position + VALUE_OFFSET);
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/last/NumericLastBufferAggregator.java
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/last/NumericLastBufferAggregator.java
index 352ac17d00a..cebddf6e6ca 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/last/NumericLastBufferAggregator.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/firstlast/last/NumericLastBufferAggregator.java
@@ -20,11 +20,11 @@
package org.apache.druid.query.aggregation.firstlast.last;
import org.apache.druid.collections.SerializablePair;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
import org.apache.druid.segment.BaseLongColumnValueSelector;
import org.apache.druid.segment.ColumnValueSelector;
+import org.apache.druid.segment.column.TypeStrategies;
import java.nio.ByteBuffer;
@@ -65,34 +65,34 @@ public abstract class NumericLastBufferAggregator
implements BufferAggregator
boolean isValueNull(ByteBuffer buf, int position)
{
- return buf.get(position + NULL_OFFSET) == NullHandling.IS_NULL_BYTE;
+ return buf.get(position + NULL_OFFSET) == TypeStrategies.IS_NULL_BYTE;
}
void updateTimeWithValue(ByteBuffer buf, int position, long time,
ColumnValueSelector valueSelector)
{
buf.putLong(position, time);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
putValue(buf, position + VALUE_OFFSET, valueSelector);
}
void updateTimeWithValue(ByteBuffer buf, int position, long time, Number
value)
{
buf.putLong(position, time);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NOT_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NOT_NULL_BYTE);
putValue(buf, position + VALUE_OFFSET, value);
}
void updateTimeWithNull(ByteBuffer buf, int position, long time)
{
buf.putLong(position, time);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NULL_BYTE);
}
@Override
public void init(ByteBuffer buf, int position)
{
buf.putLong(position, Long.MIN_VALUE);
- buf.put(position + NULL_OFFSET, NullHandling.IS_NULL_BYTE);
+ buf.put(position + NULL_OFFSET, TypeStrategies.IS_NULL_BYTE);
initValue(buf, position + VALUE_OFFSET);
}
diff --git
a/processing/src/main/java/org/apache/druid/query/filter/SelectorDimFilter.java
b/processing/src/main/java/org/apache/druid/query/filter/SelectorDimFilter.java
index afb25d7e370..a03414970e6 100644
---
a/processing/src/main/java/org/apache/druid/query/filter/SelectorDimFilter.java
+++
b/processing/src/main/java/org/apache/druid/query/filter/SelectorDimFilter.java
@@ -27,9 +27,9 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Range;
import com.google.common.collect.RangeSet;
import com.google.common.collect.TreeRangeSet;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.cache.CacheKeyBuilder;
import org.apache.druid.query.extraction.ExtractionFn;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.filter.DimensionPredicateFilter;
import org.apache.druid.segment.filter.SelectorFilter;
@@ -85,7 +85,7 @@ public class SelectorDimFilter extends
AbstractOptimizableDimFilter implements D
.appendByte(DimFilterUtils.STRING_SEPARATOR)
.appendString(dimension)
.appendByte(DimFilterUtils.STRING_SEPARATOR)
- .appendByte(value == null ? NullHandling.IS_NULL_BYTE :
NullHandling.IS_NOT_NULL_BYTE)
+ .appendByte(value == null ? TypeStrategies.IS_NULL_BYTE :
TypeStrategies.IS_NOT_NULL_BYTE)
.appendString(value)
.appendByte(DimFilterUtils.STRING_SEPARATOR)
.appendByteArray(extractionFn == null ? new byte[0] :
extractionFn.getCacheKey())
diff --git
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/GrouperBufferComparatorUtils.java
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/GrouperBufferComparatorUtils.java
index 109ddb66f3d..baba7bab4ab 100644
---
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/GrouperBufferComparatorUtils.java
+++
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/GrouperBufferComparatorUtils.java
@@ -20,7 +20,6 @@
package org.apache.druid.query.groupby.epinephelinae;
import com.google.common.primitives.Longs;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.java.util.common.IAE;
import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.dimension.DimensionSpec;
@@ -29,6 +28,7 @@ import
org.apache.druid.query.groupby.orderby.OrderByColumnSpec;
import org.apache.druid.query.ordering.StringComparator;
import org.apache.druid.query.ordering.StringComparators;
import org.apache.druid.segment.column.ColumnType;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -409,8 +409,8 @@ public class GrouperBufferComparatorUtils
)
{
return (lhsBuffer, rhsBuffer, lhsPosition, rhsPosition) -> {
- boolean isLhsNull = (lhsBuffer.get(lhsPosition + keyBufferPosition) ==
NullHandling.IS_NULL_BYTE);
- boolean isRhsNull = (rhsBuffer.get(rhsPosition + keyBufferPosition) ==
NullHandling.IS_NULL_BYTE);
+ boolean isLhsNull = (lhsBuffer.get(lhsPosition + keyBufferPosition) ==
TypeStrategies.IS_NULL_BYTE);
+ boolean isRhsNull = (rhsBuffer.get(rhsPosition + keyBufferPosition) ==
TypeStrategies.IS_NULL_BYTE);
if (isLhsNull && isRhsNull) {
// Both are null
return 0;
diff --git
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java
index 0f64988ddf2..665eadf7de6 100644
---
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java
+++
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java
@@ -34,7 +34,6 @@ import
com.google.common.util.concurrent.ListeningExecutorService;
import it.unimi.dsi.fastutil.ints.IntArrays;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import org.apache.druid.collections.ReferenceCountingResourceHolder;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.common.guava.SettableSupplier;
import org.apache.druid.common.utils.IntArrayUtils;
import org.apache.druid.error.DruidException;
@@ -81,6 +80,7 @@ import org.apache.druid.segment.column.ColumnCapabilitiesImpl;
import org.apache.druid.segment.column.ColumnType;
import org.apache.druid.segment.column.RowSignature;
import org.apache.druid.segment.column.TypeSignature;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.column.ValueType;
import org.apache.druid.segment.data.IndexedInts;
import org.apache.druid.segment.filter.Filters;
@@ -2166,9 +2166,9 @@ public class RowBasedGrouperHelper
{
Object val = key.getKey()[idx];
if (val == null) {
- keyBuffer.put(NullHandling.IS_NULL_BYTE);
+ keyBuffer.put(TypeStrategies.IS_NULL_BYTE);
} else {
- keyBuffer.put(NullHandling.IS_NOT_NULL_BYTE);
+ keyBuffer.put(TypeStrategies.IS_NOT_NULL_BYTE);
}
return delegate.putToKeyBuffer(key, idx);
}
@@ -2176,7 +2176,7 @@ public class RowBasedGrouperHelper
@Override
public void getFromByteBuffer(ByteBuffer buffer, int initialOffset, int
dimValIdx, Object[] dimValues)
{
- if (buffer.get(initialOffset + keyBufferPosition) ==
NullHandling.IS_NULL_BYTE) {
+ if (buffer.get(initialOffset + keyBufferPosition) ==
TypeStrategies.IS_NULL_BYTE) {
dimValues[dimValIdx] = null;
} else {
delegate.getFromByteBuffer(buffer, initialOffset, dimValIdx,
dimValues);
diff --git
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableDoubleGroupByVectorColumnSelector.java
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableDoubleGroupByVectorColumnSelector.java
index 7e429d25d81..e4992a9e38b 100644
---
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableDoubleGroupByVectorColumnSelector.java
+++
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableDoubleGroupByVectorColumnSelector.java
@@ -20,9 +20,9 @@
package org.apache.druid.query.groupby.epinephelinae.vector;
import org.apache.datasketches.memory.WritableMemory;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.groupby.ResultRow;
import org.apache.druid.query.groupby.epinephelinae.collection.MemoryPointer;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorValueSelector;
public class NullableDoubleGroupByVectorColumnSelector implements
GroupByVectorColumnSelector
@@ -54,12 +54,12 @@ public class NullableDoubleGroupByVectorColumnSelector
implements GroupByVectorC
if (nulls != null) {
for (int i = startRow, j = keyOffset; i < endRow; i++, j += keySize) {
- keySpace.putByte(j, nulls[i] ? NullHandling.IS_NULL_BYTE :
NullHandling.IS_NOT_NULL_BYTE);
+ keySpace.putByte(j, nulls[i] ? TypeStrategies.IS_NULL_BYTE :
TypeStrategies.IS_NOT_NULL_BYTE);
keySpace.putDouble(j + 1, vector[i]);
}
} else {
for (int i = startRow, j = keyOffset; i < endRow; i++, j += keySize) {
- keySpace.putByte(j, NullHandling.IS_NOT_NULL_BYTE);
+ keySpace.putByte(j, TypeStrategies.IS_NOT_NULL_BYTE);
keySpace.putDouble(j + 1, vector[i]);
}
}
@@ -75,7 +75,7 @@ public class NullableDoubleGroupByVectorColumnSelector
implements GroupByVectorC
final int resultRowPosition
)
{
- if (keyMemory.memory().getByte(keyMemory.position() + keyOffset) ==
NullHandling.IS_NULL_BYTE) {
+ if (keyMemory.memory().getByte(keyMemory.position() + keyOffset) ==
TypeStrategies.IS_NULL_BYTE) {
resultRow.set(resultRowPosition, null);
} else {
resultRow.set(resultRowPosition,
keyMemory.memory().getDouble(keyMemory.position() + keyOffset + 1));
diff --git
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableFloatGroupByVectorColumnSelector.java
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableFloatGroupByVectorColumnSelector.java
index 2717a205e3f..1b8012b8d34 100644
---
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableFloatGroupByVectorColumnSelector.java
+++
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableFloatGroupByVectorColumnSelector.java
@@ -20,9 +20,9 @@
package org.apache.druid.query.groupby.epinephelinae.vector;
import org.apache.datasketches.memory.WritableMemory;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.groupby.ResultRow;
import org.apache.druid.query.groupby.epinephelinae.collection.MemoryPointer;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorValueSelector;
public class NullableFloatGroupByVectorColumnSelector implements
GroupByVectorColumnSelector
@@ -54,12 +54,12 @@ public class NullableFloatGroupByVectorColumnSelector
implements GroupByVectorCo
if (nulls != null) {
for (int i = startRow, j = keyOffset; i < endRow; i++, j += keySize) {
- keySpace.putByte(j, nulls[i] ? NullHandling.IS_NULL_BYTE :
NullHandling.IS_NOT_NULL_BYTE);
+ keySpace.putByte(j, nulls[i] ? TypeStrategies.IS_NULL_BYTE :
TypeStrategies.IS_NOT_NULL_BYTE);
keySpace.putFloat(j + 1, vector[i]);
}
} else {
for (int i = startRow, j = keyOffset; i < endRow; i++, j += keySize) {
- keySpace.putByte(j, NullHandling.IS_NOT_NULL_BYTE);
+ keySpace.putByte(j, TypeStrategies.IS_NOT_NULL_BYTE);
keySpace.putFloat(j + 1, vector[i]);
}
}
@@ -75,7 +75,7 @@ public class NullableFloatGroupByVectorColumnSelector
implements GroupByVectorCo
final int resultRowPosition
)
{
- if (keyMemory.memory().getByte(keyMemory.position() + keyOffset) ==
NullHandling.IS_NULL_BYTE) {
+ if (keyMemory.memory().getByte(keyMemory.position() + keyOffset) ==
TypeStrategies.IS_NULL_BYTE) {
resultRow.set(resultRowPosition, null);
} else {
resultRow.set(resultRowPosition,
keyMemory.memory().getFloat(keyMemory.position() + keyOffset + 1));
diff --git
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableLongGroupByVectorColumnSelector.java
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableLongGroupByVectorColumnSelector.java
index dc221f04db1..fe08eb9fab1 100644
---
a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableLongGroupByVectorColumnSelector.java
+++
b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/vector/NullableLongGroupByVectorColumnSelector.java
@@ -20,9 +20,9 @@
package org.apache.druid.query.groupby.epinephelinae.vector;
import org.apache.datasketches.memory.WritableMemory;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.groupby.ResultRow;
import org.apache.druid.query.groupby.epinephelinae.collection.MemoryPointer;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorValueSelector;
public class NullableLongGroupByVectorColumnSelector implements
GroupByVectorColumnSelector
@@ -54,12 +54,12 @@ public class NullableLongGroupByVectorColumnSelector
implements GroupByVectorCol
if (nulls != null) {
for (int i = startRow, j = keyOffset; i < endRow; i++, j += keySize) {
- keySpace.putByte(j, nulls[i] ? NullHandling.IS_NULL_BYTE :
NullHandling.IS_NOT_NULL_BYTE);
+ keySpace.putByte(j, nulls[i] ? TypeStrategies.IS_NULL_BYTE :
TypeStrategies.IS_NOT_NULL_BYTE);
keySpace.putLong(j + 1, vector[i]);
}
} else {
for (int i = startRow, j = keyOffset; i < endRow; i++, j += keySize) {
- keySpace.putByte(j, NullHandling.IS_NOT_NULL_BYTE);
+ keySpace.putByte(j, TypeStrategies.IS_NOT_NULL_BYTE);
keySpace.putLong(j + 1, vector[i]);
}
}
@@ -75,7 +75,7 @@ public class NullableLongGroupByVectorColumnSelector
implements GroupByVectorCol
final int resultRowPosition
)
{
- if (keyMemory.memory().getByte(keyMemory.position() + keyOffset) ==
NullHandling.IS_NULL_BYTE) {
+ if (keyMemory.memory().getByte(keyMemory.position() + keyOffset) ==
TypeStrategies.IS_NULL_BYTE) {
resultRow.set(resultRowPosition, null);
} else {
resultRow.set(resultRowPosition,
keyMemory.memory().getLong(keyMemory.position() + keyOffset + 1));
diff --git
a/processing/src/main/java/org/apache/druid/segment/column/NullableTypeStrategy.java
b/processing/src/main/java/org/apache/druid/segment/column/NullableTypeStrategy.java
index db619266986..09deb9f48e6 100644
---
a/processing/src/main/java/org/apache/druid/segment/column/NullableTypeStrategy.java
+++
b/processing/src/main/java/org/apache/druid/segment/column/NullableTypeStrategy.java
@@ -20,7 +20,6 @@
package org.apache.druid.segment.column;
import it.unimi.dsi.fastutil.Hash;
-import org.apache.druid.common.config.NullHandling;
import javax.annotation.CheckReturnValue;
import javax.annotation.Nullable;
@@ -28,9 +27,9 @@ import java.nio.ByteBuffer;
import java.util.Comparator;
/**
- * Wrapper of {@link TypeStrategy} for nullable types, which stores {@link
NullHandling#IS_NULL_BYTE} or
- * {@link NullHandling#IS_NOT_NULL_BYTE} in the leading byte of any value, as
appropriate. If the value is null, only
- * {@link NullHandling#IS_NULL_BYTE} will be set, otherwise, the value bytes
will be written after the null byte.
+ * Wrapper of {@link TypeStrategy} for nullable types, which stores {@link
TypeStrategies#IS_NULL_BYTE} or
+ * {@link TypeStrategies#IS_NOT_NULL_BYTE} in the leading byte of any value,
as appropriate. If the value is null, only
+ * {@link TypeStrategies#IS_NULL_BYTE} will be set, otherwise, the value bytes
will be written after the null byte.
*
* layout: | null (byte) | value (byte[]) |
*
@@ -62,7 +61,7 @@ public final class NullableTypeStrategy<T> implements
Comparator<T>, Hash.Strate
@Nullable
public T read(ByteBuffer buffer)
{
- if ((buffer.get() & NullHandling.IS_NULL_BYTE) ==
NullHandling.IS_NULL_BYTE) {
+ if ((buffer.get() & TypeStrategies.IS_NULL_BYTE) ==
TypeStrategies.IS_NULL_BYTE) {
return null;
}
return delegate.read(buffer);
@@ -76,10 +75,10 @@ public final class NullableTypeStrategy<T> implements
Comparator<T>, Hash.Strate
if (remaining >= 0) {
// if we have room left, write the null byte and the value
if (value == null) {
- buffer.put(NullHandling.IS_NULL_BYTE);
+ buffer.put(TypeStrategies.IS_NULL_BYTE);
return Byte.BYTES;
}
- buffer.put(NullHandling.IS_NOT_NULL_BYTE);
+ buffer.put(TypeStrategies.IS_NOT_NULL_BYTE);
int written = delegate.write(buffer, value, maxSizeBytes - Byte.BYTES);
return written < 0 ? written : Byte.BYTES + written;
} else {
diff --git
a/processing/src/main/java/org/apache/druid/segment/column/TypeSignature.java
b/processing/src/main/java/org/apache/druid/segment/column/TypeSignature.java
index b1b5c25d950..c0da42e329e 100644
---
a/processing/src/main/java/org/apache/druid/segment/column/TypeSignature.java
+++
b/processing/src/main/java/org/apache/druid/segment/column/TypeSignature.java
@@ -109,8 +109,8 @@ public interface TypeSignature<Type extends TypeDescriptor>
/**
* A {@link NullableTypeStrategy} is a {@link TypeStrategy} which can handle
reading and writing null values, at the
* very high cost of an additional byte per value, of which a single bit is
used to store
- * {@link org.apache.druid.common.config.NullHandling#IS_NULL_BYTE} or
- * {@link org.apache.druid.common.config.NullHandling#IS_NOT_NULL_BYTE} as
appropriate.
+ * {@link TypeStrategies#IS_NULL_BYTE} or
+ * {@link TypeStrategies#IS_NOT_NULL_BYTE} as appropriate.
*
* This pattern is common among buffer aggregators, which don't have access
to an external memory location for more
* efficient tracking of null values and must store this information inline
with the accumulated value.
diff --git
a/processing/src/main/java/org/apache/druid/segment/column/TypeStrategies.java
b/processing/src/main/java/org/apache/druid/segment/column/TypeStrategies.java
index 7ac8def99ec..7099c7b7891 100644
---
a/processing/src/main/java/org/apache/druid/segment/column/TypeStrategies.java
+++
b/processing/src/main/java/org/apache/druid/segment/column/TypeStrategies.java
@@ -23,7 +23,6 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Ordering;
import com.google.common.primitives.Floats;
import com.google.common.primitives.Longs;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.java.util.common.IAE;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.StringUtils;
@@ -36,6 +35,9 @@ import java.util.concurrent.ConcurrentHashMap;
public class TypeStrategies
{
+ public static final byte IS_NULL_BYTE = (byte) 1;
+ public static final byte IS_NOT_NULL_BYTE = (byte) 0;
+
public static final int VALUE_OFFSET = Byte.BYTES;
public static final int NULLABLE_LONG_SIZE = Byte.BYTES + Long.BYTES;
public static final int NULLABLE_DOUBLE_SIZE = Byte.BYTES + Double.BYTES;
@@ -91,7 +93,7 @@ public class TypeStrategies
}
/**
- * Clear and set the 'null' byte of a nullable value to {@link
NullHandling#IS_NULL_BYTE} to a {@link ByteBuffer} at
+ * Clear and set the 'null' byte of a nullable value to {@link
TypeStrategies#IS_NULL_BYTE} to a {@link ByteBuffer} at
* the supplied position. This method does not change the buffer position,
limit, or mark, because it does not expect
* to own the buffer given to it (i.e. buffer aggs)
*
@@ -104,29 +106,29 @@ public class TypeStrategies
*/
public static int writeNull(ByteBuffer buffer, int offset)
{
- buffer.put(offset, NullHandling.IS_NULL_BYTE);
+ buffer.put(offset, IS_NULL_BYTE);
return 1;
}
/**
- * Checks if a 'nullable' value's null byte is set to {@link
NullHandling#IS_NULL_BYTE}. This method will mask the
+ * Checks if a 'nullable' value's null byte is set to {@link
TypeStrategies#IS_NULL_BYTE}. This method will mask the
* value of the null byte to only check if the null bit is set, meaning that
the higher bits can be utilized for
* flags as necessary (e.g. using high bits to indicate if the value has
been set or not for aggregators).
*
* Note that writing nullable values with the methods of {@link Types} will
always clear and set the null byte to
- * either {@link NullHandling#IS_NULL_BYTE} or {@link
NullHandling#IS_NOT_NULL_BYTE}, losing any flag bits.
+ * either {@link TypeStrategies#IS_NULL_BYTE} or {@link
TypeStrategies#IS_NOT_NULL_BYTE}, losing any flag bits.
*
* layout: | null (byte) | value |
*/
public static boolean isNullableNull(ByteBuffer buffer, int offset)
{
// use & so that callers can use the high bits of the null byte to pack
additional information if necessary
- return (buffer.get(offset) & NullHandling.IS_NULL_BYTE) ==
NullHandling.IS_NULL_BYTE;
+ return (buffer.get(offset) & IS_NULL_BYTE) == IS_NULL_BYTE;
}
/**
* Write a non-null long value to a {@link ByteBuffer} at the supplied
offset. The first byte is always cleared and
- * set to {@link NullHandling#IS_NOT_NULL_BYTE}, the long value is written
in the next 8 bytes.
+ * set to {@link TypeStrategies#IS_NOT_NULL_BYTE}, the long value is written
in the next 8 bytes.
*
* layout: | null (byte) | long |
*
@@ -137,7 +139,7 @@ public class TypeStrategies
*/
public static int writeNotNullNullableLong(ByteBuffer buffer, int offset,
long value)
{
- buffer.put(offset++, NullHandling.IS_NOT_NULL_BYTE);
+ buffer.put(offset++, IS_NOT_NULL_BYTE);
buffer.putLong(offset, value);
return NULLABLE_LONG_SIZE;
}
@@ -158,7 +160,7 @@ public class TypeStrategies
/**
* Write a non-null double value to a {@link ByteBuffer} at the supplied
offset. The first byte is always cleared and
- * set to {@link NullHandling#IS_NOT_NULL_BYTE}, the double value is written
in the next 8 bytes.
+ * set to {@link TypeStrategies#IS_NOT_NULL_BYTE}, the double value is
written in the next 8 bytes.
*
* layout: | null (byte) | double |
*
@@ -169,7 +171,7 @@ public class TypeStrategies
*/
public static int writeNotNullNullableDouble(ByteBuffer buffer, int offset,
double value)
{
- buffer.put(offset++, NullHandling.IS_NOT_NULL_BYTE);
+ buffer.put(offset++, IS_NOT_NULL_BYTE);
buffer.putDouble(offset, value);
return NULLABLE_DOUBLE_SIZE;
}
@@ -190,7 +192,7 @@ public class TypeStrategies
/**
* Write a non-null float value to a {@link ByteBuffer} at the supplied
offset. The first byte is always cleared and
- * set to {@link NullHandling#IS_NOT_NULL_BYTE}, the float value is written
in the next 4 bytes.
+ * set to {@link TypeStrategies#IS_NOT_NULL_BYTE}, the float value is
written in the next 4 bytes.
*
* layout: | null (byte) | float |
*
@@ -201,7 +203,7 @@ public class TypeStrategies
*/
public static int writeNotNullNullableFloat(ByteBuffer buffer, int offset,
float value)
{
- buffer.put(offset++, NullHandling.IS_NOT_NULL_BYTE);
+ buffer.put(offset++, IS_NOT_NULL_BYTE);
buffer.putFloat(offset, value);
return NULLABLE_FLOAT_SIZE;
}
diff --git
a/processing/src/main/java/org/apache/druid/segment/column/TypeStrategy.java
b/processing/src/main/java/org/apache/druid/segment/column/TypeStrategy.java
index 1d75d9fde74..8020c423856 100644
--- a/processing/src/main/java/org/apache/druid/segment/column/TypeStrategy.java
+++ b/processing/src/main/java/org/apache/druid/segment/column/TypeStrategy.java
@@ -20,7 +20,6 @@
package org.apache.druid.segment.column;
import it.unimi.dsi.fastutil.Hash;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import java.nio.ByteBuffer;
@@ -41,8 +40,8 @@ import java.util.Comparator;
* All implementations of this mechanism support reading and writing ONLY
non-null values. To handle nulls inline with
* your values, consider {@link NullableTypeStrategy}, which might be
acceptable to use if you need to read and write
* nullable values, AND, you have enough memory to burn a full byte for every
value you want to store. It will store
- * values with a leading byte containing either {@link
NullHandling#IS_NULL_BYTE} or
- * {@link NullHandling#IS_NOT_NULL_BYTE} as appropriate. If you have a lot of
values to write and a lot of nulls,
+ * values with a leading byte containing either {@link
TypeStrategies#IS_NULL_BYTE} or
+ * {@link TypeStrategies#IS_NOT_NULL_BYTE} as appropriate. If you have a lot
of values to write and a lot of nulls,
* consider alternative approaches to tracking your nulls instead.
*
* This mechanism allows using the natural {@link ByteBuffer#position()} and
modify the underlying position as they
diff --git
a/processing/src/main/java/org/apache/druid/segment/data/FixedIndexed.java
b/processing/src/main/java/org/apache/druid/segment/data/FixedIndexed.java
index 3ba90c51332..10691d9e9b0 100644
--- a/processing/src/main/java/org/apache/druid/segment/data/FixedIndexed.java
+++ b/processing/src/main/java/org/apache/druid/segment/data/FixedIndexed.java
@@ -23,8 +23,8 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Supplier;
import it.unimi.dsi.fastutil.ints.IntIntImmutablePair;
import it.unimi.dsi.fastutil.ints.IntIntPair;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.column.TypeStrategy;
import javax.annotation.Nullable;
@@ -59,7 +59,7 @@ public class FixedIndexed<T> implements Indexed<T>
final byte version = buffer.get();
Preconditions.checkState(version == 0, "Unknown version [%s]", version);
final byte flags = buffer.get();
- final boolean hasNull = (flags & NullHandling.IS_NULL_BYTE) ==
NullHandling.IS_NULL_BYTE ? true : false;
+ final boolean hasNull = (flags & TypeStrategies.IS_NULL_BYTE) ==
TypeStrategies.IS_NULL_BYTE ? true : false;
final boolean isSorted = (flags & IS_SORTED_MASK) == IS_SORTED_MASK ? true
: false;
Preconditions.checkState(!(hasNull && !isSorted), "cannot have null values
if not sorted");
final int size = buffer.getInt() + (hasNull ? 1 : 0);
diff --git
a/processing/src/main/java/org/apache/druid/segment/data/FixedIndexedWriter.java
b/processing/src/main/java/org/apache/druid/segment/data/FixedIndexedWriter.java
index c93b1ecc730..4bac89fa151 100644
---
a/processing/src/main/java/org/apache/druid/segment/data/FixedIndexedWriter.java
+++
b/processing/src/main/java/org/apache/druid/segment/data/FixedIndexedWriter.java
@@ -19,10 +19,10 @@
package org.apache.druid.segment.data;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import org.apache.druid.io.Channels;
import org.apache.druid.java.util.common.io.smoosh.FileSmoosher;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.column.TypeStrategy;
import org.apache.druid.segment.writeout.SegmentWriteOutMedium;
import org.apache.druid.segment.writeout.WriteOutBytes;
@@ -137,7 +137,7 @@ public class FixedIndexedWriter<T> implements
DictionaryWriter<T>
scratch.put((byte) 0);
byte flags = 0x00;
if (hasNulls) {
- flags = (byte) (flags | NullHandling.IS_NULL_BYTE);
+ flags = (byte) (flags | TypeStrategies.IS_NULL_BYTE);
}
if (isSorted) {
flags = (byte) (flags | FixedIndexed.IS_SORTED_MASK);
diff --git
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexed.java
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexed.java
index 58231fd2602..bd541404b1d 100644
---
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexed.java
+++
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexed.java
@@ -21,11 +21,11 @@ package org.apache.druid.segment.data;
import com.google.common.base.Preconditions;
import com.google.common.base.Supplier;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.java.util.common.IAE;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -100,7 +100,7 @@ public abstract class FrontCodedIndexed implements
Indexed<ByteBuffer>
final byte version = orderedBuffer.get();
Preconditions.checkArgument(version == V0 || version == V1, "only V0 and
V1 exist, encountered " + version);
final int bucketSize = Byte.toUnsignedInt(orderedBuffer.get());
- final boolean hasNull = NullHandling.IS_NULL_BYTE == orderedBuffer.get();
+ final boolean hasNull = TypeStrategies.IS_NULL_BYTE == orderedBuffer.get();
final int numValues = VByte.readInt(orderedBuffer);
// size of offsets + values
final int size = VByte.readInt(orderedBuffer);
diff --git
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexedWriter.java
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexedWriter.java
index 707e3894793..b2fb3583215 100644
---
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexedWriter.java
+++
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIndexedWriter.java
@@ -20,13 +20,13 @@
package org.apache.druid.segment.data;
import com.google.common.primitives.Ints;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import org.apache.druid.io.Channels;
import org.apache.druid.java.util.common.IAE;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.java.util.common.io.smoosh.FileSmoosher;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.writeout.SegmentWriteOutMedium;
import org.apache.druid.segment.writeout.WriteOutBytes;
@@ -177,7 +177,7 @@ public class FrontCodedIndexedWriter implements
DictionaryWriter<byte[]>
resetScratch();
scratch.put(version);
scratch.put((byte) bucketSize);
- scratch.put(hasNulls ? NullHandling.IS_NULL_BYTE :
NullHandling.IS_NOT_NULL_BYTE);
+ scratch.put(hasNulls ? TypeStrategies.IS_NULL_BYTE :
TypeStrategies.IS_NOT_NULL_BYTE);
VByte.writeInt(scratch, numWritten);
VByte.writeInt(scratch, Ints.checkedCast(headerOut.size() +
valuesOut.size()));
scratch.flip();
diff --git
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexed.java
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexed.java
index 9543bdfb328..c8e1893fb4d 100644
---
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexed.java
+++
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexed.java
@@ -21,10 +21,10 @@ package org.apache.druid.segment.data;
import com.google.common.base.Preconditions;
import com.google.common.base.Supplier;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
+import org.apache.druid.segment.column.TypeStrategies;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
@@ -79,7 +79,7 @@ public final class FrontCodedIntArrayIndexed implements
Indexed<int[]>
final byte version = orderedBuffer.get();
Preconditions.checkArgument(version == 0, "only V0 exists, encountered " +
version);
final int bucketSize = Byte.toUnsignedInt(orderedBuffer.get());
- final boolean hasNull = NullHandling.IS_NULL_BYTE == orderedBuffer.get();
+ final boolean hasNull = TypeStrategies.IS_NULL_BYTE == orderedBuffer.get();
final int numValues = VByte.readInt(orderedBuffer);
// size of offsets + values
final int size = VByte.readInt(orderedBuffer);
diff --git
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexedWriter.java
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexedWriter.java
index 50e350f3d64..b02ca882bcd 100644
---
a/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexedWriter.java
+++
b/processing/src/main/java/org/apache/druid/segment/data/FrontCodedIntArrayIndexedWriter.java
@@ -20,12 +20,12 @@
package org.apache.druid.segment.data;
import com.google.common.primitives.Ints;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import org.apache.druid.io.Channels;
import org.apache.druid.java.util.common.IAE;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.io.smoosh.FileSmoosher;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.writeout.SegmentWriteOutMedium;
import org.apache.druid.segment.writeout.WriteOutBytes;
@@ -186,7 +186,7 @@ public class FrontCodedIntArrayIndexedWriter implements
DictionaryWriter<int[]>
// version 0
scratch.put((byte) 0);
scratch.put((byte) bucketSize);
- scratch.put(hasNulls ? NullHandling.IS_NULL_BYTE :
NullHandling.IS_NOT_NULL_BYTE);
+ scratch.put(hasNulls ? TypeStrategies.IS_NULL_BYTE :
TypeStrategies.IS_NOT_NULL_BYTE);
VByte.writeInt(scratch, numWritten);
VByte.writeInt(scratch, Ints.checkedCast(headerOut.size() +
valuesOut.size()));
scratch.flip();
diff --git
a/processing/src/test/java/org/apache/druid/guice/StartupInjectorBuilderTest.java
b/processing/src/test/java/org/apache/druid/guice/StartupInjectorBuilderTest.java
index bcf85742c2a..28a8085edcd 100644
---
a/processing/src/test/java/org/apache/druid/guice/StartupInjectorBuilderTest.java
+++
b/processing/src/test/java/org/apache/druid/guice/StartupInjectorBuilderTest.java
@@ -20,7 +20,6 @@
package org.apache.druid.guice;
import com.google.inject.Injector;
-import org.apache.druid.common.config.NullValueHandlingConfig;
import org.apache.druid.error.ExceptionMatcher;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.StringUtils;
@@ -147,7 +146,7 @@ public class StartupInjectorBuilderTest
public void testValidator()
{
final Properties propsDefaultValueMode = new Properties();
-
propsDefaultValueMode.put(NullValueHandlingConfig.NULL_HANDLING_CONFIG_STRING,
"true");
+
propsDefaultValueMode.put(StartupInjectorBuilder.NULL_HANDLING_CONFIG_STRING,
"true");
Throwable t = Assert.assertThrows(
ISE.class,
@@ -164,7 +163,7 @@ public class StartupInjectorBuilderTest
);
final Properties propsNo3vl = new Properties();
- propsNo3vl.put(NullValueHandlingConfig.THREE_VALUE_LOGIC_CONFIG_STRING,
"false");
+ propsNo3vl.put(StartupInjectorBuilder.THREE_VALUE_LOGIC_CONFIG_STRING,
"false");
t = Assert.assertThrows(
ISE.class,
() -> new StartupInjectorBuilder().withExtensions()
diff --git
a/processing/src/test/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregatorTest.java
b/processing/src/test/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregatorTest.java
index 76b670aac1a..e9c60d35a51 100644
---
a/processing/src/test/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregatorTest.java
+++
b/processing/src/test/java/org/apache/druid/query/aggregation/any/NumericAnyVectorAggregatorTest.java
@@ -19,7 +19,7 @@
package org.apache.druid.query.aggregation.any;
-import org.apache.druid.common.config.NullHandling;
+import org.apache.druid.segment.column.TypeStrategies;
import org.apache.druid.segment.vector.VectorValueSelector;
import org.apache.druid.testing.InitializedNullHandlingTest;
import org.junit.Assert;
@@ -95,7 +95,7 @@ public class NumericAnyVectorAggregatorTest extends
InitializedNullHandlingTest
target.init(buf, POSITION);
Assert.assertEquals(0, buf.get(POSITION) & BYTE_FLAG_FOUND_MASK);
Assert.assertEquals(
- NullHandling.IS_NULL_BYTE,
+ TypeStrategies.IS_NULL_BYTE,
buf.get(POSITION)
);
}
@@ -104,14 +104,14 @@ public class NumericAnyVectorAggregatorTest extends
InitializedNullHandlingTest
public void aggregateNotFoundAndHasNullsShouldPutNull()
{
target.aggregate(buf, POSITION, 0, 3);
- Assert.assertEquals(BYTE_FLAG_FOUND_MASK | NullHandling.IS_NULL_BYTE,
buf.get(POSITION));
+ Assert.assertEquals(BYTE_FLAG_FOUND_MASK | TypeStrategies.IS_NULL_BYTE,
buf.get(POSITION));
}
@Test
public void aggregateNotFoundAndHasNullsOutsideRangeShouldPutValue()
{
target.aggregate(buf, POSITION, 0, 1);
- Assert.assertEquals(BYTE_FLAG_FOUND_MASK | NullHandling.IS_NOT_NULL_BYTE,
buf.get(POSITION));
+ Assert.assertEquals(BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NOT_NULL_BYTE, buf.get(POSITION));
}
@Test
@@ -119,7 +119,7 @@ public class NumericAnyVectorAggregatorTest extends
InitializedNullHandlingTest
{
Mockito.doReturn(null).when(selector).getNullVector();
target.aggregate(buf, POSITION, 0, 3);
- Assert.assertEquals(BYTE_FLAG_FOUND_MASK | NullHandling.IS_NOT_NULL_BYTE,
buf.get(POSITION));
+ Assert.assertEquals(BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NOT_NULL_BYTE, buf.get(POSITION));
}
@Test
@@ -141,8 +141,8 @@ public class NumericAnyVectorAggregatorTest extends
InitializedNullHandlingTest
for (int i = 0; i < positions.length; i++) {
int position = positions[i] + positionOffset;
Assert.assertEquals(
- BYTE_FLAG_FOUND_MASK | NullHandling.IS_NOT_NULL_BYTE,
- buf.get(position) & (byte) (BYTE_FLAG_FOUND_MASK |
NullHandling.IS_NOT_NULL_BYTE)
+ BYTE_FLAG_FOUND_MASK | TypeStrategies.IS_NOT_NULL_BYTE,
+ buf.get(position) & (byte) (BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NOT_NULL_BYTE)
);
Assert.assertEquals(i, buf.getLong(position + 1));
}
@@ -160,8 +160,8 @@ public class NumericAnyVectorAggregatorTest extends
InitializedNullHandlingTest
for (int i = 0; i < positions.length; i++) {
int position = positions[i] + positionOffset;
Assert.assertEquals(
- BYTE_FLAG_FOUND_MASK | NullHandling.IS_NOT_NULL_BYTE,
- buf.get(position) & (byte) (BYTE_FLAG_FOUND_MASK |
NullHandling.IS_NOT_NULL_BYTE)
+ BYTE_FLAG_FOUND_MASK | TypeStrategies.IS_NOT_NULL_BYTE,
+ buf.get(position) & (byte) (BYTE_FLAG_FOUND_MASK |
TypeStrategies.IS_NOT_NULL_BYTE)
);
Assert.assertEquals(rows[i], buf.getLong(position + 1));
}
diff --git
a/sql/src/test/java/org/apache/druid/sql/calcite/BaseCalciteQueryTest.java
b/sql/src/test/java/org/apache/druid/sql/calcite/BaseCalciteQueryTest.java
index 61dc44a6771..52605f04dce 100644
--- a/sql/src/test/java/org/apache/druid/sql/calcite/BaseCalciteQueryTest.java
+++ b/sql/src/test/java/org/apache/druid/sql/calcite/BaseCalciteQueryTest.java
@@ -28,7 +28,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.ByteStreams;
import org.apache.commons.text.StringEscapeUtils;
-import org.apache.druid.common.config.NullHandling;
import org.apache.druid.error.DruidException;
import org.apache.druid.error.DruidException.Category;
import org.apache.druid.error.DruidException.Persona;
@@ -1017,9 +1016,6 @@ public class BaseCalciteQueryTest extends CalciteTestBase
}
}
- /**
- * Validates the results with slight loosening in case {@link NullHandling}
is not sql compatible.
- */
public void assertResultsValid(final ResultMatchMode matchMode, final
List<Object[]> expected, final QueryResults queryResults)
{
final List<Object[]> results = queryResults.results;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]