branch-2.1: [Bug](function) fix wrong result of hll_to_base64 #51831 (#51855)

Cherry-picked from #51831

Co-authored-by: Pxl <xl@selectdb.com>
This commit is contained in:
github-actions[bot]
2025-06-20 12:04:27 +08:00
committed by GitHub
parent ab48d63d1e
commit 523879ed0e
3 changed files with 6 additions and 2 deletions

View File

@ -296,8 +296,8 @@ struct HllToBase64 {
last_ser_size = cur_ser_size;
ser_buff.resize(cur_ser_size);
}
hll_val.serialize(reinterpret_cast<uint8_t*>(ser_buff.data()));
auto outlen = base64_encode((const unsigned char*)ser_buff.data(), cur_ser_size,
size_t real_size = hll_val.serialize(reinterpret_cast<uint8_t*>(ser_buff.data()));
auto outlen = base64_encode((const unsigned char*)ser_buff.data(), real_size,
chars_data + encoded_offset);
DCHECK(outlen > 0);

View File

@ -2504,3 +2504,6 @@
-- !sql2 --
1 2 1025 1028
-- !test --
1028

View File

@ -103,6 +103,7 @@ suite("test_http_stream_compress", "p0") {
}
sql "sync"
qt_sql2 "select k1, k2, bitmap_union_count(v1), HLL_UNION_AGG(v2) from ${tableName2} group by k1, k2 order by k1"
qt_test "select HLL_CARDINALITY(hll_from_base64(hll_to_base64(v2))) from test_http_stream_bz4;"
} finally {
try_sq2 "DROP TABLE IF EXISTS ${tableName2}"
}