Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.apache.tsfile.write.UnSupportedDataTypeException;

import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

public abstract class TsPrimitiveType implements Serializable {
Expand All @@ -36,8 +37,9 @@ public static TsPrimitiveType getByType(TSDataType dataType) {
case BOOLEAN:
return new TsPrimitiveType.TsBoolean();
case INT32:
case DATE:
return new TsPrimitiveType.TsInt();
case DATE:
return new TsPrimitiveType.TsInt(TSDataType.DATE);
case INT64:
case TIMESTAMP:
return new TsPrimitiveType.TsLong();
Expand Down Expand Up @@ -68,8 +70,9 @@ public static TsPrimitiveType getByType(TSDataType dataType, Object v) {
case BOOLEAN:
return new TsPrimitiveType.TsBoolean((boolean) v);
case INT32:
case DATE:
return new TsPrimitiveType.TsInt((int) v);
case DATE:
return new TsPrimitiveType.TsInt((int) v, TSDataType.DATE);
case INT64:
case TIMESTAMP:
return new TsPrimitiveType.TsLong((long) v);
Expand Down Expand Up @@ -198,6 +201,11 @@ public void setBoolean(boolean val) {
this.value = val;
}

@Override
public Binary getBinary() {
return new Binary(String.valueOf(this.value), StandardCharsets.UTF_8);
}

@Override
public void setObject(Object val) {
if (val instanceof Boolean) {
Expand Down Expand Up @@ -254,12 +262,23 @@ public static class TsInt extends TsPrimitiveType {

private int value;

private TSDataType dataType = TSDataType.INT32;

public TsInt() {}

public TsInt(int value) {
this.value = value;
}

public TsInt(TSDataType dataType) {
this.dataType = dataType;
}

public TsInt(int value, TSDataType dataType) {
this.value = value;
this.dataType = dataType;
}

@Override
public int getInt() {
return value;
Expand All @@ -280,6 +299,11 @@ public float getFloat() {
return (float) value;
}

@Override
public Binary getBinary() {
return new Binary(String.valueOf(this.value), StandardCharsets.UTF_8);
}

@Override
public void setInt(int val) {
this.value = val;
Expand Down Expand Up @@ -316,7 +340,7 @@ public String getStringValue() {

@Override
public TSDataType getDataType() {
return TSDataType.INT32;
return dataType;
}

@Override
Expand Down Expand Up @@ -357,6 +381,11 @@ public double getDouble() {
return (double) value;
}

@Override
public Binary getBinary() {
return new Binary(String.valueOf(this.value), StandardCharsets.UTF_8);
}

@Override
public void setLong(long val) {
this.value = val;
Expand Down Expand Up @@ -434,6 +463,11 @@ public double getDouble() {
return (double) value;
}

@Override
public Binary getBinary() {
return new Binary(String.valueOf(this.value), StandardCharsets.UTF_8);
}

@Override
public void setFloat(float val) {
this.value = val;
Expand Down Expand Up @@ -506,6 +540,11 @@ public double getDouble() {
return value;
}

@Override
public Binary getBinary() {
return new Binary(String.valueOf(this.value), StandardCharsets.UTF_8);
}

@Override
public void setDouble(double val) {
this.value = val;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,18 @@ private TsBlockBuilder(int initialExpectedEntries, int maxTsBlockBytes, List<TSD
tsBlockBuilderStatus.createColumnBuilderStatus(), initialExpectedEntries);
break;
case INT32:
valueColumnBuilders[i] =
new IntColumnBuilder(
tsBlockBuilderStatus.createColumnBuilderStatus(),
initialExpectedEntries,
TSDataType.INT32);
break;
case DATE:
valueColumnBuilders[i] =
new IntColumnBuilder(
tsBlockBuilderStatus.createColumnBuilderStatus(), initialExpectedEntries);
tsBlockBuilderStatus.createColumnBuilderStatus(),
initialExpectedEntries,
TSDataType.DATE);
break;
case INT64:
case TIMESTAMP:
Expand Down Expand Up @@ -182,10 +190,18 @@ public void buildValueColumnBuilders(List<TSDataType> types) {
tsBlockBuilderStatus.createColumnBuilderStatus(), initialExpectedEntries);
break;
case INT32:
valueColumnBuilders[i] =
new IntColumnBuilder(
tsBlockBuilderStatus.createColumnBuilderStatus(),
initialExpectedEntries,
TSDataType.INT32);
break;
case DATE:
valueColumnBuilders[i] =
new IntColumnBuilder(
tsBlockBuilderStatus.createColumnBuilderStatus(), initialExpectedEntries);
tsBlockBuilderStatus.createColumnBuilderStatus(),
initialExpectedEntries,
TSDataType.DATE);
break;
case INT64:
case TIMESTAMP:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@
import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.block.column.ColumnEncoding;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.utils.Binary;
import org.apache.tsfile.utils.RamUsageEstimator;
import org.apache.tsfile.utils.TsPrimitiveType;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Optional;

Expand Down Expand Up @@ -93,11 +95,25 @@ public boolean getBoolean(int position) {
return values[position + arrayOffset];
}

@Override
public Binary getBinary(int position) {
return new Binary(String.valueOf(values[position + arrayOffset]), StandardCharsets.UTF_8);
}

@Override
public boolean[] getBooleans() {
return values;
}

@Override
public Binary[] getBinaries() {
Binary[] binaries = new Binary[values.length];
for (int i = 0; i < values.length; i++) {
binaries[i] = new Binary(String.valueOf(values[i]), StandardCharsets.UTF_8);
}
return binaries;
}

@Override
public Object getObject(int position) {
return getBoolean(position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ public static Column create(TSDataType dataType, int initialCapacity) {
case OBJECT:
return new BinaryColumn(initialCapacity);
case INT32:
return new IntColumn(initialCapacity, TSDataType.INT32);
case DATE:
return new IntColumn(initialCapacity);
return new IntColumn(initialCapacity, TSDataType.DATE);
case BOOLEAN:
return new BooleanColumn(initialCapacity);
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@
import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.block.column.ColumnEncoding;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.utils.Binary;
import org.apache.tsfile.utils.RamUsageEstimator;
import org.apache.tsfile.utils.TsPrimitiveType;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Optional;

Expand Down Expand Up @@ -94,11 +96,25 @@ public double getDouble(int position) {
return values[position + arrayOffset];
}

@Override
public Binary getBinary(int position) {
return new Binary(String.valueOf(values[position + arrayOffset]), StandardCharsets.UTF_8);
}

@Override
public double[] getDoubles() {
return values;
}

@Override
public Binary[] getBinaries() {
Binary[] binaries = new Binary[values.length];
for (int i = 0; i < values.length; i++) {
binaries[i] = new Binary(String.valueOf(values[i]), StandardCharsets.UTF_8);
}
return binaries;
}

@Override
public Object getObject(int position) {
return getDouble(position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@
import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.block.column.ColumnEncoding;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.utils.Binary;
import org.apache.tsfile.utils.RamUsageEstimator;
import org.apache.tsfile.utils.TsPrimitiveType;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Optional;

Expand Down Expand Up @@ -100,6 +102,11 @@ public double getDouble(int position) {
return values[position + arrayOffset];
}

@Override
public Binary getBinary(int position) {
return new Binary(String.valueOf(values[position + arrayOffset]), StandardCharsets.UTF_8);
}

@Override
public float[] getFloats() {
return values;
Expand All @@ -114,6 +121,15 @@ public double[] getDoubles() {
return doubles;
}

@Override
public Binary[] getBinaries() {
Binary[] binaries = new Binary[values.length];
for (int i = 0; i < values.length; i++) {
binaries[i] = new Binary(String.valueOf(values[i]), StandardCharsets.UTF_8);
}
return binaries;
}

@Override
public Object getObject(int position) {
return getFloat(position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@
import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.block.column.ColumnEncoding;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.utils.Binary;
import org.apache.tsfile.utils.RamUsageEstimator;
import org.apache.tsfile.utils.TsPrimitiveType;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Optional;

Expand All @@ -48,14 +50,27 @@ public class IntColumn implements Column {

private final long retainedSizeInBytes;

private TSDataType dataType = TSDataType.INT32;

public IntColumn(int initialCapacity) {
this(0, 0, null, new int[initialCapacity]);
}

public IntColumn(int initialCapacity, TSDataType dataType) {
this(initialCapacity);
this.dataType = dataType;
}

public IntColumn(int positionCount, Optional<boolean[]> valueIsNull, int[] values) {
this(0, positionCount, valueIsNull.orElse(null), values);
}

public IntColumn(
int positionCount, Optional<boolean[]> valueIsNull, int[] values, TSDataType dataType) {
this(positionCount, valueIsNull, values);
this.dataType = dataType;
}

IntColumn(int arrayOffset, int positionCount, boolean[] valueIsNull, int[] values) {
if (arrayOffset < 0) {
throw new IllegalArgumentException("arrayOffset is negative");
Expand All @@ -80,6 +95,16 @@ public IntColumn(int positionCount, Optional<boolean[]> valueIsNull, int[] value
INSTANCE_SIZE + sizeOfIntArray(positionCount) + sizeOfBooleanArray(positionCount);
}

IntColumn(
int arrayOffset,
int positionCount,
boolean[] valueIsNull,
int[] values,
TSDataType dataType) {
this(arrayOffset, positionCount, valueIsNull, values);
this.dataType = dataType;
}

@Override
public TSDataType getDataType() {
return TSDataType.INT32;
Expand Down Expand Up @@ -110,6 +135,11 @@ public double getDouble(int position) {
return values[position + arrayOffset];
}

@Override
public Binary getBinary(int position) {
return new Binary(String.valueOf(values[position + arrayOffset]), StandardCharsets.UTF_8);
}

@Override
public int[] getInts() {
return values;
Expand Down Expand Up @@ -142,14 +172,23 @@ public double[] getDoubles() {
return result;
}

@Override
public Binary[] getBinaries() {
Binary[] binaries = new Binary[values.length];
for (int i = 0; i < values.length; i++) {
binaries[i] = new Binary(String.valueOf(values[i]), StandardCharsets.UTF_8);
}
return binaries;
}

@Override
public Object getObject(int position) {
return getInt(position);
}

@Override
public TsPrimitiveType getTsPrimitiveType(int position) {
return new TsPrimitiveType.TsInt(getInt(position));
return new TsPrimitiveType.TsInt(getInt(position), dataType);
}

@Override
Expand Down
Loading
Loading