values used in queries were added to the keys.csv

Due to a mistake in Tag which added all strings used
by Tag into the String dictionary, the dictionary
did contain all values that were used in queries.
This commit is contained in:
2019-02-09 08:28:23 +01:00
parent ea5884a5e6
commit 493971bcf3
13 changed files with 122 additions and 99 deletions

View File

@@ -11,8 +11,8 @@ public class Tag implements Comparable<Tag> {
}
public Tag(final String key, final String value) {
this.key = key != null ? Tags.STRING_COMPRESSOR.put(key) : -1;
this.value = value != null ? Tags.STRING_COMPRESSOR.put(value) : -1;
this.key = key != null ? Tags.STRING_COMPRESSOR.getIfPresent(key) : -1;
this.value = value != null ? Tags.STRING_COMPRESSOR.getIfPresent(value) : -1;
}
@Override

View File

@@ -7,7 +7,6 @@ import java.util.Set;
import java.util.TreeSet;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.regex.Pattern;
import org.lucares.collections.IntList;
import org.lucares.collections.LongList;
@@ -56,30 +55,33 @@ public class Tags implements Comparable<Tags> {
return result;
}
public static Tags create(final String key, final String value) {
public static Tags createAndAddToDictionary(final String key, final String value) {
return TagsBuilder.create().add(key, value).build();
return TagsBuilder.create().addAndAddToDictionary(key, value).build();
}
public static Tags create(final String key1, final String value1, final String key2, final String value2) {
public static Tags createAndAddToDictionary(final String key1, final String value1, final String key2,
final String value2) {
final Tags result = TagsBuilder.create().add(key1, value1).add(key2, value2).build();
return result;
}
public static Tags create(final String key1, final String value1, final String key2, final String value2,
final String key3, final String value3) {
final Tags result = TagsBuilder.create().add(key1, value1).add(key2, value2).add(key3, value3).build();
return result;
}
public static Tags create(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 Tags result = TagsBuilder.create().add(key1, value1).add(key2, value2).add(key3, value3).add(key4, value4)
final Tags result = TagsBuilder.create().addAndAddToDictionary(key1, value1).addAndAddToDictionary(key2, value2)
.build();
return result;
}
public static Tags createAndAddToDictionary(final String key1, final String value1, final String key2,
final String value2, final String key3, final String value3) {
final Tags result = TagsBuilder.create().addAndAddToDictionary(key1, value1).addAndAddToDictionary(key2, value2)
.addAndAddToDictionary(key3, value3).build();
return result;
}
public static 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 Tags result = TagsBuilder.create().addAndAddToDictionary(key1, value1).addAndAddToDictionary(key2, value2)
.addAndAddToDictionary(key3, value3).addAndAddToDictionary(key4, value4).build();
return result;
}
public static Tags fromBytes(final byte[] bytes) {
final List<Tag> result = new ArrayList<>();
@@ -208,19 +210,6 @@ public class Tags implements Comparable<Tags> {
return String.join(",", tagsAsStrings);
}
public static Tags fromCsv(final String line) {
final TagsBuilder tagsBuilder = new TagsBuilder();
final String[] tagsAsString = line.split(Pattern.quote(","));
for (final String tagAsString : tagsAsString) {
final String[] keyValue = tagAsString.split(Pattern.quote("="));
tagsBuilder.add(keyValue[0], keyValue[1]);
}
return tagsBuilder.build();
}
@Override
public int hashCode() {
final int prime = 31;
@@ -285,5 +274,4 @@ public class Tags implements Comparable<Tags> {
return result.toString();
}
}

View File

@@ -17,6 +17,12 @@ public class TagsBuilder {
}
public TagsBuilder add(final String key, final String value) {
final int keyAsInt = Tags.STRING_COMPRESSOR.getIfPresent(key);
final int valueAsInt = Tags.STRING_COMPRESSOR.getIfPresent(value);
return add(keyAsInt, valueAsInt);
}
public TagsBuilder addAndAddToDictionary(final String key, final String value) {
final int keyAsInt = Tags.STRING_COMPRESSOR.put(key);
final int valueAsInt = Tags.STRING_COMPRESSOR.put(value);
return add(keyAsInt, valueAsInt);

View File

@@ -82,11 +82,11 @@ public class MemoryScale {
}
private static Object createTags1() {
return Tags.create("k1", "v1");
return Tags.createAndAddToDictionary("k1", "v1");
}
private static Object createTags2() {
return Tags.create("k1", "v1", "k2", "v2");
return Tags.createAndAddToDictionary("k1", "v1", "k2", "v2");
}
private static Object createTags6() {