From 536044ec8f28f1778ced05d56aa9ae32b3da341c Mon Sep 17 00:00:00 2001 From: Parag Jain Date: Thu, 11 Jul 2019 22:51:48 +0530 Subject: [PATCH 1/3] write value of bitmap as field name --- services/src/main/java/org/apache/druid/cli/DumpSegment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/src/main/java/org/apache/druid/cli/DumpSegment.java b/services/src/main/java/org/apache/druid/cli/DumpSegment.java index 2be5719538a3..1b251c0f267f 100644 --- a/services/src/main/java/org/apache/druid/cli/DumpSegment.java +++ b/services/src/main/java/org/apache/druid/cli/DumpSegment.java @@ -363,6 +363,7 @@ public Object apply(final OutputStream out) String val = NullHandling.nullToEmptyIfNeeded(bitmapIndex.getValue(i)); if (val != null) { final ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); + jg.writeFieldName(val); if (decompressBitmaps) { jg.writeStartArray(); final IntIterator iterator = bitmap.iterator(); From 349a4b07a0428df3f202add5c232f29811240640 Mon Sep 17 00:00:00 2001 From: Parag Jain Date: Fri, 12 Jul 2019 00:03:52 +0530 Subject: [PATCH 2/3] respect nulls if present in dictionary --- .../org/apache/druid/cli/DumpSegment.java | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/services/src/main/java/org/apache/druid/cli/DumpSegment.java b/services/src/main/java/org/apache/druid/cli/DumpSegment.java index 1b251c0f267f..73db8a23e12c 100644 --- a/services/src/main/java/org/apache/druid/cli/DumpSegment.java +++ b/services/src/main/java/org/apache/druid/cli/DumpSegment.java @@ -360,23 +360,22 @@ public Object apply(final OutputStream out) jg.writeFieldName(columnName); jg.writeStartObject(); for (int i = 0; i < bitmapIndex.getCardinality(); i++) { - String val = NullHandling.nullToEmptyIfNeeded(bitmapIndex.getValue(i)); - if (val != null) { - final ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); - jg.writeFieldName(val); - if (decompressBitmaps) { - jg.writeStartArray(); - final IntIterator iterator = bitmap.iterator(); - while (iterator.hasNext()) { - final int rowNum = iterator.next(); - jg.writeNumber(rowNum); - } - jg.writeEndArray(); - } else { - byte[] bytes = bitmapSerdeFactory.getObjectStrategy().toBytes(bitmap); - if (bytes != null) { - jg.writeBinary(bytes); - } + String val = bitmapIndex.getValue(i); + // respect nulls if they are present in the dictionary + jg.writeFieldName(val == null ? "null" : val); + final ImmutableBitmap bitmap = bitmapIndex.getBitmap(i); + if (decompressBitmaps) { + jg.writeStartArray(); + final IntIterator iterator = bitmap.iterator(); + while (iterator.hasNext()) { + final int rowNum = iterator.next(); + jg.writeNumber(rowNum); + } + jg.writeEndArray(); + } else { + byte[] bytes = bitmapSerdeFactory.getObjectStrategy().toBytes(bitmap); + if (bytes != null) { + jg.writeBinary(bytes); } } } From 05b8e07a2cd8236c38a01784a64e00ae750d954a Mon Sep 17 00:00:00 2001 From: Parag Jain Date: Fri, 12 Jul 2019 01:41:16 +0530 Subject: [PATCH 3/3] removed unused import --- services/src/main/java/org/apache/druid/cli/DumpSegment.java | 1 - 1 file changed, 1 deletion(-) diff --git a/services/src/main/java/org/apache/druid/cli/DumpSegment.java b/services/src/main/java/org/apache/druid/cli/DumpSegment.java index 73db8a23e12c..97008eb8d2a4 100644 --- a/services/src/main/java/org/apache/druid/cli/DumpSegment.java +++ b/services/src/main/java/org/apache/druid/cli/DumpSegment.java @@ -38,7 +38,6 @@ import org.apache.druid.collections.bitmap.ConciseBitmapFactory; import org.apache.druid.collections.bitmap.ImmutableBitmap; import org.apache.druid.collections.bitmap.RoaringBitmapFactory; -import org.apache.druid.common.config.NullHandling; import org.apache.druid.guice.DruidProcessingModule; import org.apache.druid.guice.QueryRunnerFactoryModule; import org.apache.druid.guice.QueryableModule;