This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 04e30c91a0be9418fbe482489d78db5b027cdf67
Author: lihangyu <15605149...@163.com>
AuthorDate: Thu Apr 18 10:59:02 2024 +0800

    [Fix](Variant) VariantRootColumnIterator::read_by_rowids with wrong null 
map size (#33734)
    
    insert_range_from should start from `size` with `count` elements for null 
map
---
 be/src/olap/rowset/segment_v2/column_reader.cpp    |   5 +-
 .../data/variant_p0/topn_opt_read_by_rowids.out    |  14 +++
 .../variant_p0/topn_opt_read_by_rowids.groovy      | 104 +++++++++++++++++++++
 3 files changed, 121 insertions(+), 2 deletions(-)

diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp 
b/be/src/olap/rowset/segment_v2/column_reader.cpp
index 0506250f247..9d19d1a64b4 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/column_reader.cpp
@@ -1536,7 +1536,7 @@ Status VariantRootColumnIterator::read_by_rowids(const 
rowid_t* rowids, const si
     RETURN_IF_ERROR(_inner_iter->read_by_rowids(rowids, count, root_column));
     obj.incr_num_rows(count);
     for (auto& entry : obj.get_subcolumns()) {
-        if (entry->data.size() != size + count) {
+        if (entry->data.size() != (size + count)) {
             entry->data.insertManyDefaults(count);
         }
     }
@@ -1546,7 +1546,8 @@ Status VariantRootColumnIterator::read_by_rowids(const 
rowid_t* rowids, const si
                 
assert_cast<vectorized::ColumnNullable&>(*dst).get_null_map_column();
         vectorized::ColumnUInt8& src_null_map =
                 
assert_cast<vectorized::ColumnNullable&>(*root_column).get_null_map_column();
-        dst_null_map.insert_range_from(src_null_map, 0, src_null_map.size());
+        DCHECK_EQ(src_null_map.size() - size, count);
+        dst_null_map.insert_range_from(src_null_map, size, count);
     }
 #ifndef NDEBUG
     obj.check_consistency();
diff --git a/regression-test/data/variant_p0/topn_opt_read_by_rowids.out 
b/regression-test/data/variant_p0/topn_opt_read_by_rowids.out
new file mode 100644
index 00000000000..6ee3844f7ef
--- /dev/null
+++ b/regression-test/data/variant_p0/topn_opt_read_by_rowids.out
@@ -0,0 +1,14 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !sql --
+2024-04-09T09:01:39                                    1712624474952   0004.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+2024-04-09T09:01:39                                    1712624474952   0004.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+2024-04-09T09:01:39                                    1712624474952   0004.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+
+-- !sql --
+2024-04-09T09:02:31                                    1712624495211   004.00  
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_qf
 [...]
+2024-04-09T09:01:39                                    1712624474952   0004.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+2024-04-09T09:03:32                                    1712624474153   0014.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+2024-04-09T09:04:33                                    1712624474959   0024.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+2024-04-09T09:01:39                                    1712624474952   0004.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+2024-04-09T09:01:39                                    1712624474952   0004.00 
740lp   sit-iniwork-lcd-designer.qm.cn          \N      \N              
630beed604d0513c        0000.0  \N                                      
https://sit-iniwork-lcd-designer.qm.cn/designer 1544512389907021826     
https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsImlkbWlkIjpudWxsLCJleHAiOjE3MTMxNDYxMTUsInVwa2lkIjoiMTU0NDUxMjM4OTkwNzAyMTgyNiJ9.j8sJbrgrJzwPh5Ee1AoodqIJ7KsMT_q
 [...]
+
diff --git a/regression-test/suites/variant_p0/topn_opt_read_by_rowids.groovy 
b/regression-test/suites/variant_p0/topn_opt_read_by_rowids.groovy
new file mode 100644
index 00000000000..dd597755a6d
--- /dev/null
+++ b/regression-test/suites/variant_p0/topn_opt_read_by_rowids.groovy
@@ -0,0 +1,104 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("regression_test_variant_topn_opt_read_by_rowids", "p0"){
+    sql "DROP TABLE IF EXISTS test_web_log"
+    sql """
+        CREATE TABLE `test_web_log` (
+  `timestampkey` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '',
+  `nodeName` VARCHAR(100) NULL COMMENT '',
+  `serviceCode` VARCHAR(100) NULL COMMENT '',
+  `pageTitle` VARCHAR(100) NULL COMMENT '',
+  `nodeIp` VARCHAR(100) NULL COMMENT '',
+  `clientTs` LARGEINT NULL COMMENT '',
+  `spanId` VARCHAR(1000) NULL COMMENT '',
+  `loginName` VARCHAR(100) NULL COMMENT '',
+  `host` VARCHAR(100) NULL COMMENT '',
+  `nameSpace` VARCHAR(100) NULL COMMENT '',
+  `event` VARIANT NULL COMMENT '',
+  `httpInfo` VARIANT NULL COMMENT '',
+  `iworkHost` VARCHAR(100) NULL COMMENT '',
+  `traceId` VARCHAR(1000) NULL COMMENT '',
+  `pSpanId` VARCHAR(1000) NULL COMMENT '',
+  `timing` VARIANT NULL COMMENT '',
+  `clusterFlag` VARCHAR(100) NULL COMMENT '',
+  `sessionId` VARCHAR(1000) NULL COMMENT '',
+  `serviceName` VARCHAR(100) NULL COMMENT '',
+  `userName` VARCHAR(100) NULL COMMENT '',
+  `uri` VARCHAR(1000) NULL COMMENT '',
+  `userId` VARCHAR(100) NULL COMMENT '',
+  `url` VARCHAR(1000) NULL COMMENT '',
+  `systemCode` VARCHAR(100) NULL COMMENT '',
+  `tenantId` VARCHAR(100) NULL COMMENT '',
+  `podName` VARCHAR(100) NULL COMMENT '',
+  `siteId` VARCHAR(100) NULL COMMENT '',
+  `time` VARCHAR(100) NULL COMMENT '',
+  `region` VARCHAR(100) NULL COMMENT '',
+  `device` VARIANT NULL COMMENT '',
+  `ts` VARCHAR(100) NULL COMMENT '',
+  `timestamp` LARGEINT NULL COMMENT '',
+  `resourceLoad` VARIANT NULL COMMENT '',
+  `scriptError` VARIANT NULL COMMENT ''
+) ENGINE=OLAP
+DUPLICATE KEY(`timestampkey`)
+COMMENT 'OLAP'
+PARTITION BY RANGE(`timestampkey`)
+(
+PARTITION p2024040909 VALUES [('2024-04-09 09:00:00'), ('2024-04-09 
10:00:00')),
+PARTITION p2024040910 VALUES [('2024-04-09 10:00:00'), ('2024-04-09 
11:00:00')),
+PARTITION p2024040911 VALUES [('2024-04-09 11:00:00'), ('2024-04-09 
12:00:00')),
+PARTITION p2024040923 VALUES [('2024-04-09 12:00:00'), ('2024-04-10 
00:00:00')))
+DISTRIBUTED BY HASH(`traceId`) BUCKETS 25
+PROPERTIES (
+"replication_allocation" = "tag.location.default: 1"
+);
+        """
+    sql """
+        INSERT INTO `test_web_log` VALUES ('2024-04-09 09:01:39', '', '', '', 
'', '1712624474952', '0004.00', '740lp', 'sit-iniwork-lcd-designer.qm.cn', '', 
NULL, NULL, '', '630beed604d0513c', '0000.0', NULL, '', '', '', '', 
'https://sit-iniwork-lcd-designer.qm.cn/designer', '1544512389907021826', 
'https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsIm
 [...]
+        """
+    sql """
+        INSERT INTO `test_web_log` VALUES ('2024-04-09 09:01:39', '', '', '', 
'', '1712624474952', '0004.00', '740lp', 'sit-iniwork-lcd-designer.qm.cn', '', 
NULL, NULL, '', '630beed604d0513c', '0000.0', NULL, '', '', '', '', 
'https://sit-iniwork-lcd-designer.qm.cn/designer', '1544512389907021826', 
'https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsIm
 [...]
+        """
+    sql """
+        INSERT INTO `test_web_log` VALUES ('2024-04-09 09:01:39', '', '', '', 
'', '1712624474952', '0004.00', '740lp', 'sit-iniwork-lcd-designer.qm.cn', '', 
NULL, NULL, '', '630beed604d0513c', '0000.0', NULL, '', '', '', '', 
'https://sit-iniwork-lcd-designer.qm.cn/designer', '1544512389907021826', 
'https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsIm
 [...]
+        """
+    sql "set topn_opt_limit_threshold = 1024"
+    qt_sql """SELECT
+            * FROM
+             test_web_log 
+            WHERE
+            ts  >= '1712480940849' 
+             AND ts  <= '1712805483291'
+            ORDER BY
+             ts DESC 
+             LIMIT 10"""
+    sql """
+        INSERT INTO `test_web_log` VALUES ('2024-04-09 09:02:31', '', '', '', 
'', '1712624495211', '004.00', '740lp', 'sit-iniwork-lcd-designer.qm.cn', '', 
NULL, NULL, '', '630beed604d0513c', '0000.0', NULL, '', '', '', '', 
'https://sit-iniwork-lcd-designer.qm.cn/designer', '1544512389907021826', 
'https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsIml
 [...]
+        """
+    sql """
+        INSERT INTO `test_web_log` VALUES ('2024-04-09 09:03:32', '', '', '', 
'', '1712624474153', '0014.00', '740lp', 'sit-iniwork-lcd-designer.qm.cn', '', 
NULL, NULL, '', '630beed604d0513c', '0000.0', NULL, '', '', '', '', 
'https://sit-iniwork-lcd-designer.qm.cn/designer', '1544512389907021826', 
'https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsIm
 [...]
+        """
+    sql """
+        INSERT INTO `test_web_log` VALUES ('2024-04-09 09:04:33', '', '', '', 
'', '1712624474959', '0024.00', '740lp', 'sit-iniwork-lcd-designer.qm.cn', '', 
NULL, NULL, '', '630beed604d0513c', '0000.0', NULL, '', '', '', '', 
'https://sit-iniwork-lcd-designer.qm.cn/designer', '1544512389907021826', 
'https://sit-iniwork-lcd-designer.qm.cn/designer?caseName=44&caseCode=d4&appId=3fec598d32b10d26958d1d9119519c64&token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3NDBscCIsImNyZWF0ZWQiOjE3MTI1NDEzMTU0MzUsIm
 [...]
+        """
+    qt_sql """SELECT
+            * FROM
+             test_web_log 
+            ORDER BY
+             ts DESC 
+             LIMIT 10"""
+} 
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to