rename put to putString to make it easier for ides to find references
This commit is contained in:
@@ -283,7 +283,7 @@ public class QueryCompletionIndex implements AutoCloseable {
|
|||||||
return new byte[0];
|
return new byte[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
return VariableByteEncoder.encode(stringCompressor.put(field));
|
return VariableByteEncoder.encode(stringCompressor.putString(field));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -387,7 +387,7 @@ public class QueryCompletionIndex implements AutoCloseable {
|
|||||||
public SortedSet<String> find(final DateTimeRange dateRange, final Tag tag, final String field) {
|
public SortedSet<String> find(final DateTimeRange dateRange, final Tag tag, final String field) {
|
||||||
|
|
||||||
final SortedSet<String> result = new TreeSet<>();
|
final SortedSet<String> result = new TreeSet<>();
|
||||||
final int tagBKey = stringCompressor.put(field);
|
final int tagBKey = stringCompressor.putString(field);
|
||||||
final Tag tagB = new Tag(tagBKey, -1); // the value must be negative for the prefix search to work. See
|
final Tag tagB = new Tag(tagBKey, -1); // the value must be negative for the prefix search to work. See
|
||||||
// EncoderTwoTags
|
// EncoderTwoTags
|
||||||
final TwoTags keyPrefix = new TwoTags(tag, tagB);
|
final TwoTags keyPrefix = new TwoTags(tag, tagB);
|
||||||
@@ -410,7 +410,7 @@ public class QueryCompletionIndex implements AutoCloseable {
|
|||||||
public SortedSet<String> findAllValuesForField(final DateTimeRange dateRange, final String field) {
|
public SortedSet<String> findAllValuesForField(final DateTimeRange dateRange, final String field) {
|
||||||
|
|
||||||
final SortedSet<String> result = new TreeSet<>();
|
final SortedSet<String> result = new TreeSet<>();
|
||||||
final int tagKey = stringCompressor.put(field);
|
final int tagKey = stringCompressor.putString(field);
|
||||||
final Tag keyPrefix = new Tag(tagKey, -1); // the value must be negative for the prefix search to work. See
|
final Tag keyPrefix = new Tag(tagKey, -1); // the value must be negative for the prefix search to work. See
|
||||||
|
|
||||||
final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange);
|
final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange);
|
||||||
|
|||||||
@@ -21,12 +21,12 @@ class TagEncoderDecoder implements EncoderDecoder<Tag> {
|
|||||||
final String key = stringCompressor.getKeyAsString(tag);
|
final String key = stringCompressor.getKeyAsString(tag);
|
||||||
final byte[] result;
|
final byte[] result;
|
||||||
if (!key.isEmpty()) {
|
if (!key.isEmpty()) {
|
||||||
final Integer keyAsLong = stringCompressor.put(key);
|
final Integer keyAsLong = stringCompressor.putString(key);
|
||||||
keyAndValueCompressed.add(keyAsLong);
|
keyAndValueCompressed.add(keyAsLong);
|
||||||
|
|
||||||
final String value = stringCompressor.getValueAsString(tag);
|
final String value = stringCompressor.getValueAsString(tag);
|
||||||
if (!value.isEmpty()) {
|
if (!value.isEmpty()) {
|
||||||
final Integer valueAsLong = stringCompressor.put(value);
|
final Integer valueAsLong = stringCompressor.putString(value);
|
||||||
keyAndValueCompressed.add(valueAsLong);
|
keyAndValueCompressed.add(valueAsLong);
|
||||||
}
|
}
|
||||||
result = VariableByteEncoder.encode(keyAndValueCompressed);
|
result = VariableByteEncoder.encode(keyAndValueCompressed);
|
||||||
|
|||||||
@@ -25,24 +25,24 @@ public class StringCompressor {
|
|||||||
final UniqueStringIntegerPairs mapsi = new UniqueStringIntegerPairs(storageBasePath);
|
final UniqueStringIntegerPairs mapsi = new UniqueStringIntegerPairs(storageBasePath);
|
||||||
final StringCompressor result = new StringCompressor(mapsi);
|
final StringCompressor result = new StringCompressor(mapsi);
|
||||||
|
|
||||||
result.put(ALL_DOCS_KEY);
|
result.putString(ALL_DOCS_KEY);
|
||||||
result.put("");
|
result.putString("");
|
||||||
TAG_ALL_DOCS = result.createTag(ALL_DOCS_KEY, "");
|
TAG_ALL_DOCS = result.createTag(ALL_DOCS_KEY, "");
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int put(final String string) {
|
public int putString(final String string) {
|
||||||
|
|
||||||
return usip.computeIfAbsent(string, s -> usip.getHighestInteger() + 1);
|
return usip.computeIfAbsent(string, s -> usip.getHighestInteger() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int put(final byte[] bytes, final int start, final int endExclusive,
|
public int putStringFromBytes(final byte[] bytes, final int start, final int endExclusive,
|
||||||
final Function<String, String> postProcess) {
|
final Function<String, String> postProcess) {
|
||||||
return usip.computeIfAbsent(bytes, start, endExclusive, postProcess);
|
return usip.computeIfAbsent(bytes, start, endExclusive, postProcess);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int put(final String value, final Function<String, String> postProcess) {
|
public int putString(final String value, final Function<String, String> postProcess) {
|
||||||
final String processedValue = postProcess.apply(value);
|
final String processedValue = postProcess.apply(value);
|
||||||
return usip.computeIfAbsentWithPostprocess(processedValue, postProcess);
|
return usip.computeIfAbsentWithPostprocess(processedValue, postProcess);
|
||||||
}
|
}
|
||||||
@@ -78,18 +78,18 @@ public class StringCompressor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Tags createAndAddToDictionary(final String key, final String value) {
|
public Tags createAndAddToDictionary(final String key, final String value) {
|
||||||
final int keyAsInt = put(key);
|
final int keyAsInt = putString(key);
|
||||||
final int valueAsInt = put(value);
|
final int valueAsInt = putString(value);
|
||||||
return TagsBuilder.create().add(keyAsInt, valueAsInt).build();
|
return TagsBuilder.create().add(keyAsInt, valueAsInt).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tags createAndAddToDictionary(final String key1, final String value1, final String key2,
|
public Tags createAndAddToDictionary(final String key1, final String value1, final String key2,
|
||||||
final String value2) {
|
final String value2) {
|
||||||
final int key1AsInt = put(key1);
|
final int key1AsInt = putString(key1);
|
||||||
final int value1AsInt = put(value1);
|
final int value1AsInt = putString(value1);
|
||||||
|
|
||||||
final int key2AsInt = put(key2);
|
final int key2AsInt = putString(key2);
|
||||||
final int value2AsInt = put(value2);
|
final int value2AsInt = putString(value2);
|
||||||
|
|
||||||
final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt).build();
|
final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt).build();
|
||||||
return result;
|
return result;
|
||||||
@@ -98,14 +98,14 @@ public class StringCompressor {
|
|||||||
public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2,
|
public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2,
|
||||||
final String key3, final String value3) {
|
final String key3, final String value3) {
|
||||||
|
|
||||||
final int key1AsInt = put(key1);
|
final int key1AsInt = putString(key1);
|
||||||
final int value1AsInt = put(value1);
|
final int value1AsInt = putString(value1);
|
||||||
|
|
||||||
final int key2AsInt = put(key2);
|
final int key2AsInt = putString(key2);
|
||||||
final int value2AsInt = put(value2);
|
final int value2AsInt = putString(value2);
|
||||||
|
|
||||||
final int key3AsInt = put(key3);
|
final int key3AsInt = putString(key3);
|
||||||
final int value3AsInt = put(value3);
|
final int value3AsInt = putString(value3);
|
||||||
|
|
||||||
final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt)
|
final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt)
|
||||||
.add(key3AsInt, value3AsInt).build();
|
.add(key3AsInt, value3AsInt).build();
|
||||||
@@ -115,17 +115,17 @@ public class StringCompressor {
|
|||||||
public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2,
|
public Tags createAndAddToDictionary(final String key1, final String value1, final String key2, final String value2,
|
||||||
final String key3, final String value3, final String key4, final String value4) {
|
final String key3, final String value3, final String key4, final String value4) {
|
||||||
|
|
||||||
final int key1AsInt = put(key1);
|
final int key1AsInt = putString(key1);
|
||||||
final int value1AsInt = put(value1);
|
final int value1AsInt = putString(value1);
|
||||||
|
|
||||||
final int key2AsInt = put(key2);
|
final int key2AsInt = putString(key2);
|
||||||
final int value2AsInt = put(value2);
|
final int value2AsInt = putString(value2);
|
||||||
|
|
||||||
final int key3AsInt = put(key3);
|
final int key3AsInt = putString(key3);
|
||||||
final int value3AsInt = put(value3);
|
final int value3AsInt = putString(value3);
|
||||||
|
|
||||||
final int key4AsInt = put(key4);
|
final int key4AsInt = putString(key4);
|
||||||
final int value4AsInt = put(value4);
|
final int value4AsInt = putString(value4);
|
||||||
|
|
||||||
final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt)
|
final Tags result = TagsBuilder.create().add(key1AsInt, value1AsInt).add(key2AsInt, value2AsInt)
|
||||||
.add(key3AsInt, value3AsInt).add(key4AsInt, value4AsInt).build();
|
.add(key3AsInt, value3AsInt).add(key4AsInt, value4AsInt).build();
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ public class Tags implements Comparable<Tags> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getValue(final String key) {
|
public String getValue(final String key) {
|
||||||
final Tag needle = new Tag(STRING_COMPRESSOR.put(key), 0);
|
final Tag needle = new Tag(STRING_COMPRESSOR.putString(key), 0);
|
||||||
|
|
||||||
final int index = Collections.binarySearch(tags, needle, TagByKeyComparator.INSTANCE);
|
final int index = Collections.binarySearch(tags, needle, TagByKeyComparator.INSTANCE);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
@@ -139,7 +139,7 @@ public class Tags implements Comparable<Tags> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getValueAsInt(final String key) {
|
public int getValueAsInt(final String key) {
|
||||||
final Tag needle = new Tag(STRING_COMPRESSOR.put(key), 0);
|
final Tag needle = new Tag(STRING_COMPRESSOR.putString(key), 0);
|
||||||
|
|
||||||
final int index = Collections.binarySearch(tags, needle, TagByKeyComparator.INSTANCE);
|
final int index = Collections.binarySearch(tags, needle, TagByKeyComparator.INSTANCE);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ import java.util.concurrent.Future;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.Assertions;
|
|
||||||
import org.lucares.utils.file.FileUtils;
|
import org.lucares.utils.file.FileUtils;
|
||||||
|
|
||||||
public class StringCompressorTest {
|
public class StringCompressorTest {
|
||||||
@@ -34,7 +34,7 @@ public class StringCompressorTest {
|
|||||||
final StringCompressor keyValueCompressor = StringCompressor.create(dataDirectory.resolve("key.csv"));
|
final StringCompressor keyValueCompressor = StringCompressor.create(dataDirectory.resolve("key.csv"));
|
||||||
|
|
||||||
final String value = "foo";
|
final String value = "foo";
|
||||||
final Integer intFoo = keyValueCompressor.put(value);
|
final Integer intFoo = keyValueCompressor.putString(value);
|
||||||
final String actual = keyValueCompressor.get(intFoo);
|
final String actual = keyValueCompressor.get(intFoo);
|
||||||
|
|
||||||
Assertions.assertEquals(value, actual);
|
Assertions.assertEquals(value, actual);
|
||||||
@@ -47,7 +47,7 @@ public class StringCompressorTest {
|
|||||||
{
|
{
|
||||||
final StringCompressor keyValueCompressor = StringCompressor.create(database);
|
final StringCompressor keyValueCompressor = StringCompressor.create(database);
|
||||||
|
|
||||||
keyValueCompressor.put(value);
|
keyValueCompressor.putString(value);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
final StringCompressor keyValueCompressor = StringCompressor.create(database);
|
final StringCompressor keyValueCompressor = StringCompressor.create(database);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ final class StringInserter implements Callable<List<String>> {
|
|||||||
final List<String> result = new ArrayList<>();
|
final List<String> result = new ArrayList<>();
|
||||||
for (int i = 0; i < numEntries; i++) {
|
for (int i = 0; i < numEntries; i++) {
|
||||||
final String s = UUID.randomUUID().toString();
|
final String s = UUID.randomUUID().toString();
|
||||||
stringCompressor.put(s);
|
stringCompressor.putString(s);
|
||||||
result.add(s);
|
result.add(s);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ public class CsvReaderCsvToEntryTransformer implements CsvToEntryTransformer {
|
|||||||
final int chunksize = 1000;
|
final int chunksize = 1000;
|
||||||
Entries entries = new Entries(chunksize);
|
Entries entries = new Entries(chunksize);
|
||||||
|
|
||||||
final int keyTimestamp = Tags.STRING_COMPRESSOR.put(settings.getTimeColumn());
|
final int keyTimestamp = Tags.STRING_COMPRESSOR.putString(settings.getTimeColumn());
|
||||||
final int keyDuration = Tags.STRING_COMPRESSOR.put(settings.getValueColumn());
|
final int keyDuration = Tags.STRING_COMPRESSOR.putString(settings.getValueColumn());
|
||||||
final DateTimeFormatter dateParser = createDateParser(settings.getDateTimePattern());
|
final DateTimeFormatter dateParser = createDateParser(settings.getDateTimePattern());
|
||||||
final Tags additionalTags = initAdditionalTags(settings);
|
final Tags additionalTags = initAdditionalTags(settings);
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ public class CsvReaderCsvToEntryTransformer implements CsvToEntryTransformer {
|
|||||||
|
|
||||||
final String renameTo = settings.getColumnDefinitions().getRenameTo(columnName);
|
final String renameTo = settings.getColumnDefinitions().getRenameTo(columnName);
|
||||||
final String renamedColumn = renameTo != null ? renameTo : columnName;
|
final String renamedColumn = renameTo != null ? renameTo : columnName;
|
||||||
compressedHeaders[i] = Tags.STRING_COMPRESSOR.put(renamedColumn);
|
compressedHeaders[i] = Tags.STRING_COMPRESSOR.putString(renamedColumn);
|
||||||
final EnumSet<PostProcessors> postProcessors = settings.getColumnDefinitions()
|
final EnumSet<PostProcessors> postProcessors = settings.getColumnDefinitions()
|
||||||
.getPostProcessors(columnName);
|
.getPostProcessors(columnName);
|
||||||
final Function<String, String> postProcessFunction = PostProcessors.toFunction(postProcessors);
|
final Function<String, String> postProcessFunction = PostProcessors.toFunction(postProcessors);
|
||||||
@@ -134,7 +134,7 @@ public class CsvReaderCsvToEntryTransformer implements CsvToEntryTransformer {
|
|||||||
duration = Long.parseLong(val);
|
duration = Long.parseLong(val);
|
||||||
} else if (!val.isEmpty()) {
|
} else if (!val.isEmpty()) {
|
||||||
final Function<String, String> postProcess = postProcessersForColumns.get(i);
|
final Function<String, String> postProcess = postProcessersForColumns.get(i);
|
||||||
final int value = Tags.STRING_COMPRESSOR.put(val, postProcess);
|
final int value = Tags.STRING_COMPRESSOR.putString(val, postProcess);
|
||||||
|
|
||||||
tagsBuilder.add(key, value);
|
tagsBuilder.add(key, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ public interface CsvToEntryTransformer {
|
|||||||
default Tags initAdditionalTags(final CsvReaderSettings settings) {
|
default Tags initAdditionalTags(final CsvReaderSettings settings) {
|
||||||
final TagsBuilder tags = new TagsBuilder();
|
final TagsBuilder tags = new TagsBuilder();
|
||||||
for (final java.util.Map.Entry<String, String> entry : settings.getAdditionalTags().entrySet()) {
|
for (final java.util.Map.Entry<String, String> entry : settings.getAdditionalTags().entrySet()) {
|
||||||
final int field = Tags.STRING_COMPRESSOR.put(entry.getKey());
|
final int field = Tags.STRING_COMPRESSOR.putString(entry.getKey());
|
||||||
final int value = Tags.STRING_COMPRESSOR.put(entry.getValue());
|
final int value = Tags.STRING_COMPRESSOR.putString(entry.getValue());
|
||||||
tags.add(field, value);
|
tags.add(field, value);
|
||||||
}
|
}
|
||||||
return tags.build();
|
return tags.build();
|
||||||
|
|||||||
@@ -72,12 +72,12 @@ public class JsonToEntryTransformer implements LineToEntryTransformer {
|
|||||||
// ignore: we only support key/value tags
|
// ignore: we only support key/value tags
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
final int keyAsInt = Tags.STRING_COMPRESSOR.put(key);
|
final int keyAsInt = Tags.STRING_COMPRESSOR.putString(key);
|
||||||
final int valueAsInt;
|
final int valueAsInt;
|
||||||
if (value instanceof String) {
|
if (value instanceof String) {
|
||||||
valueAsInt = Tags.STRING_COMPRESSOR.put((String) value);
|
valueAsInt = Tags.STRING_COMPRESSOR.putString((String) value);
|
||||||
} else if (value != null) {
|
} else if (value != null) {
|
||||||
valueAsInt = Tags.STRING_COMPRESSOR.put(String.valueOf(value));
|
valueAsInt = Tags.STRING_COMPRESSOR.putString(String.valueOf(value));
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ class NoCopyCsvToEntryTransformer implements CsvToEntryTransformer {
|
|||||||
int lineCounter = 0;
|
int lineCounter = 0;
|
||||||
|
|
||||||
final byte[] buffer = new byte[4096 * 16];
|
final byte[] buffer = new byte[4096 * 16];
|
||||||
final int keyTimestamp = stringCompressor.put(settings.getTimeColumn());
|
final int keyTimestamp = stringCompressor.putString(settings.getTimeColumn());
|
||||||
final int keyDuration = stringCompressor.put(settings.getValueColumn());
|
final int keyDuration = stringCompressor.putString(settings.getValueColumn());
|
||||||
final FastISODateParser dateParser = new FastISODateParser();
|
final FastISODateParser dateParser = new FastISODateParser();
|
||||||
|
|
||||||
Tags additionalTags = initAdditionalTags(settings);
|
Tags additionalTags = initAdditionalTags(settings);
|
||||||
@@ -148,7 +148,7 @@ class NoCopyCsvToEntryTransformer implements CsvToEntryTransformer {
|
|||||||
|
|
||||||
final String renameTo = settings.getColumnDefinitions().getRenameTo(columnName);
|
final String renameTo = settings.getColumnDefinitions().getRenameTo(columnName);
|
||||||
final String renamedColumn = renameTo != null ? renameTo : columnName;
|
final String renamedColumn = renameTo != null ? renameTo : columnName;
|
||||||
columns[i] = stringCompressor.put(renamedColumn);
|
columns[i] = stringCompressor.putString(renamedColumn);
|
||||||
final EnumSet<PostProcessors> postProcessors = settings.getColumnDefinitions()
|
final EnumSet<PostProcessors> postProcessors = settings.getColumnDefinitions()
|
||||||
.getPostProcessors(columnName);
|
.getPostProcessors(columnName);
|
||||||
final Function<String, String> postProcessFunction = PostProcessors.toFunction(postProcessors);
|
final Function<String, String> postProcessFunction = PostProcessors.toFunction(postProcessors);
|
||||||
@@ -190,8 +190,8 @@ class NoCopyCsvToEntryTransformer implements CsvToEntryTransformer {
|
|||||||
duration = parseLong(line, lastSeparatorPosition + 1, separatorPosition);
|
duration = parseLong(line, lastSeparatorPosition + 1, separatorPosition);
|
||||||
} else if (lastSeparatorPosition + 1 < separatorPosition) { // value is not empty
|
} else if (lastSeparatorPosition + 1 < separatorPosition) { // value is not empty
|
||||||
final Function<String, String> postProcess = postProcessersForColumns.get(i);
|
final Function<String, String> postProcess = postProcessersForColumns.get(i);
|
||||||
final int value = stringCompressor.put(line, lastSeparatorPosition + 1, separatorPosition,
|
final int value = stringCompressor.putStringFromBytes(line, lastSeparatorPosition + 1,
|
||||||
postProcess);
|
separatorPosition, postProcess);
|
||||||
|
|
||||||
tagsBuilder.add(key, value);
|
tagsBuilder.add(key, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ public class TagMatchExtractor {
|
|||||||
if (matcher.find() && matcher.groupCount() >= 1) {
|
if (matcher.find() && matcher.groupCount() >= 1) {
|
||||||
final String group = matcher.group(1);
|
final String group = matcher.group(1);
|
||||||
|
|
||||||
Tags.STRING_COMPRESSOR.put(tagMatcher.tag());
|
Tags.STRING_COMPRESSOR.putString(tagMatcher.tag());
|
||||||
Tags.STRING_COMPRESSOR.put(group);
|
Tags.STRING_COMPRESSOR.putString(group);
|
||||||
System.out.println(tagMatcher.tag() + " -> " + group);
|
System.out.println(tagMatcher.tag() + " -> " + group);
|
||||||
|
|
||||||
final Tag tag = Tags.STRING_COMPRESSOR.createTag(tagMatcher.tag(), group);
|
final Tag tag = Tags.STRING_COMPRESSOR.createTag(tagMatcher.tag(), group);
|
||||||
|
|||||||
Reference in New Issue
Block a user