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();
+  }
 }

Reply via email to