This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch force_ci/alter_column_datatype
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/force_ci/alter_column_datatype
by this push:
new 8faf3439fc4 add more test
8faf3439fc4 is described below
commit 8faf3439fc429e3b37b8ee2244c4f74ba3f4bdee
Author: Tian Jiang <[email protected]>
AuthorDate: Mon Jan 13 18:17:10 2025 +0800
add more test
---
.../it/schema/IoTDBAlterColumnTypeIT.java | 65 ++++++++++++++++++----
.../execution/exchange/SharedTsBlockQueue.java | 17 +-----
.../exchange/source/LocalSourceHandle.java | 18 ++----
.../execution/operator/source/SeriesScanUtil.java | 5 +-
.../memtable/AlignedWritableMemChunk.java | 2 +-
.../read/reader/chunk/MemAlignedPageReader.java | 17 ++----
.../org/apache/iotdb/db/utils/CommonUtils.java | 19 +++++++
7 files changed, 90 insertions(+), 53 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
index b69069039f6..0d4b0202d80 100644
---
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBAlterColumnTypeIT.java
@@ -46,6 +46,7 @@ import java.util.Set;
import static
org.apache.iotdb.relational.it.session.IoTDBSessionRelationalIT.genValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
@RunWith(IoTDBTestRunner.class)
@@ -336,6 +337,19 @@ public class IoTDBAlterColumnTypeIT {
session.insert(tablet);
tablet.reset();
+ session.executeNonQueryStatement("FLUSH");
+
+ tablet =
+ new Tablet(
+ "drop_and_alter",
+ Collections.singletonList("s1"),
+ Collections.singletonList(TSDataType.INT32),
+ Collections.singletonList(ColumnCategory.FIELD));
+ tablet.addTimestamp(0, 2);
+ tablet.addValue("s1", 0, genValue(TSDataType.INT32, 2));
+ session.insert(tablet);
+ tablet.reset();
+
session.executeNonQueryStatement("ALTER TABLE drop_and_alter DROP COLUMN
s1");
tablet =
@@ -344,8 +358,21 @@ public class IoTDBAlterColumnTypeIT {
Collections.singletonList("s1"),
Collections.singletonList(TSDataType.STRING),
Collections.singletonList(ColumnCategory.FIELD));
- tablet.addTimestamp(0, 2);
- tablet.addValue("s1", 0, genValue(TSDataType.STRING, 2));
+ tablet.addTimestamp(0, 3);
+ tablet.addValue("s1", 0, genValue(TSDataType.STRING, 3));
+ session.insert(tablet);
+ tablet.reset();
+
+ session.executeNonQueryStatement("FLUSH");
+
+ tablet =
+ new Tablet(
+ "drop_and_alter",
+ Collections.singletonList("s1"),
+ Collections.singletonList(TSDataType.STRING),
+ Collections.singletonList(ColumnCategory.FIELD));
+ tablet.addTimestamp(0, 4);
+ tablet.addValue("s1", 0, genValue(TSDataType.STRING, 4));
session.insert(tablet);
tablet.reset();
@@ -358,19 +385,37 @@ public class IoTDBAlterColumnTypeIT {
Collections.singletonList("s1"),
Collections.singletonList(TSDataType.TEXT),
Collections.singletonList(ColumnCategory.FIELD));
- tablet.addTimestamp(0, 3);
- tablet.addValue("s1", 0, genValue(TSDataType.STRING, 3));
+ tablet.addTimestamp(0, 5);
+ tablet.addValue("s1", 0, genValue(TSDataType.STRING, 5));
+ session.insert(tablet);
+ tablet.reset();
+
+ session.executeNonQueryStatement("FLUSH");
+
+ tablet =
+ new Tablet(
+ "drop_and_alter",
+ Collections.singletonList("s1"),
+ Collections.singletonList(TSDataType.TEXT),
+ Collections.singletonList(ColumnCategory.FIELD));
+ tablet.addTimestamp(0, 6);
+ tablet.addValue("s1", 0, genValue(TSDataType.STRING, 6));
session.insert(tablet);
tablet.reset();
SessionDataSet dataSet =
session.executeQueryStatement("select * from drop_and_alter order by
time");
- RowRecord rec = dataSet.next();
- assertEquals(2, rec.getFields().get(0).getLongV());
- assertEquals(genValue(TSDataType.STRING, 2).toString(),
rec.getFields().get(1).toString());
- rec = dataSet.next();
- assertEquals(3, rec.getFields().get(0).getLongV());
- assertEquals(genValue(TSDataType.STRING, 3).toString(),
rec.getFields().get(1).toString());
+ RowRecord rec;
+ for (int i = 1; i < 3; i++) {
+ rec = dataSet.next();
+ assertEquals(i, rec.getFields().get(0).getLongV());
+ assertNull(rec.getFields().get(1).getDataType());
+ }
+ for (int i = 3; i < 7; i++) {
+ rec = dataSet.next();
+ assertEquals(i, rec.getFields().get(0).getLongV());
+ assertEquals(genValue(TSDataType.STRING, i).toString(),
rec.getFields().get(1).toString());
+ }
assertFalse(dataSet.hasNext());
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/SharedTsBlockQueue.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/SharedTsBlockQueue.java
index 91029d2a414..fb376b9e71c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/SharedTsBlockQueue.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/SharedTsBlockQueue.java
@@ -24,14 +24,13 @@ import
org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import
org.apache.iotdb.db.queryengine.execution.exchange.sink.LocalSinkChannel;
import
org.apache.iotdb.db.queryengine.execution.exchange.source.LocalSourceHandle;
import org.apache.iotdb.db.queryengine.execution.memory.LocalMemoryManager;
+import org.apache.iotdb.db.utils.CommonUtils;
import org.apache.iotdb.mpp.rpc.thrift.TFragmentInstanceId;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import org.apache.commons.lang3.Validate;
-import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.read.common.block.TsBlock;
-import org.apache.tsfile.read.common.block.column.TimeColumn;
import org.apache.tsfile.utils.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -216,19 +215,9 @@ public class SharedTsBlockQueue {
* the returned future of last invocation completes.
*/
public ListenableFuture<Void> add(TsBlock tsBlock) {
- StringBuilder tsBlockBuilder = new StringBuilder();
- for (Column column : tsBlock.getAllColumns()) {
- tsBlockBuilder.append("[");
- for (int i = 0; i < column.getPositionCount(); i++) {
- if (column instanceof TimeColumn) {
- tsBlockBuilder.append(column.getLong(i)).append(",");
- } else {
- tsBlockBuilder.append(column.getTsPrimitiveType(i)).append(",");
- }
- }
- tsBlockBuilder.append("] ");
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("[addTsBlock] TsBlock:{}", CommonUtils.toString(tsBlock));
}
- LOGGER.warn("[addTsBlock] TsBlock:{}", tsBlockBuilder);
if (closed) {
// queue may have been closed
return immediateVoidFuture();
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/source/LocalSourceHandle.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/source/LocalSourceHandle.java
index 8bf9d75bacc..1d5a62e87d4 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/source/LocalSourceHandle.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/source/LocalSourceHandle.java
@@ -23,15 +23,14 @@ import org.apache.iotdb.commons.exception.IoTDBException;
import
org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeManager.SourceHandleListener;
import org.apache.iotdb.db.queryengine.execution.exchange.SharedTsBlockQueue;
import org.apache.iotdb.db.queryengine.metric.DataExchangeCostMetricSet;
+import org.apache.iotdb.db.utils.CommonUtils;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.mpp.rpc.thrift.TFragmentInstanceId;
import org.apache.iotdb.rpc.TSStatusCode;
import com.google.common.util.concurrent.ListenableFuture;
import org.apache.commons.lang3.Validate;
-import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.read.common.block.TsBlock;
-import org.apache.tsfile.read.common.block.column.TimeColumn;
import org.apache.tsfile.read.common.block.column.TsBlockSerde;
import org.apache.tsfile.utils.RamUsageEstimator;
import org.slf4j.Logger;
@@ -143,19 +142,10 @@ public class LocalSourceHandle implements ISourceHandle {
@Override
public ByteBuffer getSerializedTsBlock() throws IoTDBException {
TsBlock tsBlock = receive();
- StringBuilder tsBlockBuilder = new StringBuilder();
- for (Column column : tsBlock.getAllColumns()) {
- tsBlockBuilder.append("[");
- for (int i = 0; i < column.getPositionCount(); i++) {
- if (column instanceof TimeColumn) {
- tsBlockBuilder.append(column.getLong(i)).append(",");
- } else {
- tsBlockBuilder.append(column.getTsPrimitiveType(i)).append(",");
- }
- }
- tsBlockBuilder.append("] ");
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("[GetSerializedTsBlock] TsBlock:{}",
CommonUtils.toString(tsBlock));
}
- LOGGER.warn("[GetSerializedTsBlock] TsBlock:{}", tsBlockBuilder);
+
if (tsBlock != null) {
long startTime = System.nanoTime();
try {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
index 178839b5ac0..6c8955d36c6 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
@@ -34,6 +34,7 @@ import
org.apache.iotdb.db.storageengine.dataregion.read.reader.common.DescPrior
import
org.apache.iotdb.db.storageengine.dataregion.read.reader.common.MergeReaderPriority;
import
org.apache.iotdb.db.storageengine.dataregion.read.reader.common.PriorityMergeReader;
import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
+import org.apache.iotdb.db.utils.CommonUtils;
import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.enums.TSDataType;
@@ -1317,7 +1318,9 @@ public class SeriesScanUtil implements Accountable {
}
tsBlockBuilder.append("] ");
}
- LOGGER.warn("[getAllSatisfiedPageData] TsBlock:{}", tsBlockBuilder);
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("[getAllSatisfiedPageData] TsBlock:{}",
CommonUtils.toString(tsBlock));
+ }
return tsBlock;
} finally {
long time = System.nanoTime() - startTime;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
index 4beb010e287..ff772d1721e 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
@@ -513,7 +513,7 @@ public class AlignedWritableMemChunk implements
IWritableMemChunk {
@Override
public boolean isEmpty() {
- return list.rowCount() == 0 || measurementIndexMap.isEmpty();
+ return list.rowCount() == 0 || measurementIndexMap.isEmpty() &&
ignoreAllNullRows;
}
@Override
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
index 37bcc7c6a5d..89f83691006 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
@@ -19,6 +19,8 @@
package org.apache.iotdb.db.storageengine.dataregion.read.reader.chunk;
+import org.apache.iotdb.db.utils.CommonUtils;
+
import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.block.column.ColumnBuilder;
import org.apache.tsfile.enums.TSDataType;
@@ -28,7 +30,6 @@ import org.apache.tsfile.read.common.BatchData;
import org.apache.tsfile.read.common.BatchDataFactory;
import org.apache.tsfile.read.common.block.TsBlock;
import org.apache.tsfile.read.common.block.TsBlockBuilder;
-import org.apache.tsfile.read.common.block.column.TimeColumn;
import org.apache.tsfile.read.filter.basic.Filter;
import org.apache.tsfile.read.filter.factory.FilterFactory;
import org.apache.tsfile.read.reader.IPageReader;
@@ -99,19 +100,9 @@ public class MemAlignedPageReader implements IPageReader {
// build value column
buildValueColumns(satisfyInfo, readEndIndex);
- StringBuilder tsBlockBuilder = new StringBuilder();
- for (Column column : tsBlock.getAllColumns()) {
- tsBlockBuilder.append("[");
- for (int i = 0; i < column.getPositionCount(); i++) {
- if (column instanceof TimeColumn) {
- tsBlockBuilder.append(column.getLong(i)).append(",");
- } else {
- tsBlockBuilder.append(column.getTsPrimitiveType(i)).append(",");
- }
- }
- tsBlockBuilder.append("] ");
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("[memAlignedPageReader] TsBlock:{}",
CommonUtils.toString(tsBlock));
}
- LOGGER.warn("[memAlignedPageReader] TsBlock:{}", tsBlockBuilder);
return builder.build();
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
index d83379bd738..6e214a39805 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
@@ -49,9 +49,12 @@ import io.airlift.airline.ParseOptionConversionException;
import io.airlift.airline.ParseOptionMissingException;
import io.airlift.airline.ParseOptionMissingValueException;
import org.apache.commons.lang3.StringUtils;
+import org.apache.tsfile.block.column.Column;
import org.apache.tsfile.common.conf.TSFileConfig;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.read.common.block.TsBlock;
+import org.apache.tsfile.read.common.block.column.TimeColumn;
import org.apache.tsfile.utils.Binary;
import org.apache.tsfile.write.UnSupportedDataTypeException;
@@ -433,4 +436,20 @@ public class CommonUtils {
Tag.TYPE.toString(),
statementType.name());
}
+
+ public static String toString(TsBlock tsBlock) {
+ StringBuilder tsBlockBuilder = new StringBuilder();
+ for (Column column : tsBlock.getAllColumns()) {
+ tsBlockBuilder.append("[");
+ for (int i = 0; i < column.getPositionCount(); i++) {
+ if (column instanceof TimeColumn) {
+ tsBlockBuilder.append(column.getLong(i)).append(",");
+ } else {
+ tsBlockBuilder.append(column.getTsPrimitiveType(i)).append(",");
+ }
+ }
+ tsBlockBuilder.append("] ");
+ }
+ return tsBlockBuilder.toString();
+ }
}