|
73 | 73 | import org.opensearch.index.mapper.NumberFieldMapper.NumberFieldType;
|
74 | 74 | import org.opensearch.index.mapper.NumberFieldMapper.NumberType;
|
75 | 75 | import org.opensearch.index.query.QueryShardContext;
|
| 76 | +import org.opensearch.search.DocValueFormat; |
76 | 77 | import org.opensearch.search.MultiValueMode;
|
77 | 78 | import org.opensearch.search.query.BitmapDocValuesQuery;
|
78 | 79 | import org.junit.Before;
|
@@ -981,4 +982,28 @@ public void testBitmapQuery() throws IOException {
|
981 | 982 | NumberFieldType finalFt = ft;
|
982 | 983 | assertThrows(IllegalArgumentException.class, () -> finalFt.bitmapQuery(bitmap));
|
983 | 984 | }
|
| 985 | + |
| 986 | + public void testFetchUnsignedLongDocValues() throws IOException { |
| 987 | + Directory dir = newDirectory(); |
| 988 | + IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(null)); |
| 989 | + Document doc = new Document(); |
| 990 | + final BigInteger expectedValue = randomUnsignedLong(); |
| 991 | + doc.add(new SortedNumericDocValuesField("ul", expectedValue.longValue())); |
| 992 | + w.addDocument(doc); |
| 993 | + try (DirectoryReader reader = DirectoryReader.open(w)) { |
| 994 | + final NumberFieldType ft = new NumberFieldType("ul", NumberType.UNSIGNED_LONG); |
| 995 | + IndexNumericFieldData fielddata = (IndexNumericFieldData) ft.fielddataBuilder( |
| 996 | + "index", |
| 997 | + () -> { throw new UnsupportedOperationException(); } |
| 998 | + ).build(null, null); |
| 999 | + assertEquals(IndexNumericFieldData.NumericType.UNSIGNED_LONG, fielddata.getNumericType()); |
| 1000 | + DocValueFetcher.Leaf fetcher = fielddata.load(reader.leaves().get(0)).getLeafValueFetcher(DocValueFormat.UNSIGNED_LONG); |
| 1001 | + assertTrue(fetcher.advanceExact(0)); |
| 1002 | + assertEquals(1, fetcher.docValueCount()); |
| 1003 | + final Object value = fetcher.nextValue(); |
| 1004 | + assertTrue(value instanceof BigInteger); |
| 1005 | + assertEquals(expectedValue, value); |
| 1006 | + } |
| 1007 | + IOUtils.close(w, dir); |
| 1008 | + } |
984 | 1009 | }
|
0 commit comments