github-actions[bot] commented on code in PR #17921:
URL: https://github.com/apache/doris/pull/17921#discussion_r1141229078
##########
be/test/vec/exec/parquet/parquet_thrift_test.cpp:
##########
@@ -226,6 +227,74 @@
}
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
+ using namespace doris;
+ int null_column = 0;
+ for (int i = 0; i < column_descs.size(); ++i) {
+ if (column_descs[i].is_null) {
+ null_column++;
+ }
+ }
+
+ int offset = (null_column + 7) / 8;
+ std::vector<SlotDescriptor*> slots;
+ int null_byte = 0;
+ int null_bit = 0;
+
+ for (int i = 0; i < column_descs.size(); ++i) {
+ TSlotDescriptor t_slot_desc;
+ if (column_descs[i].type == TYPE_DECIMALV2) {
+
t_slot_desc.__set_slotType(TypeDescriptor::create_decimalv2_type(27,
9).to_thrift());
+ } else {
+ TypeDescriptor descriptor(column_descs[i].type);
+ if (column_descs[i].precision >= 0 && column_descs[i].scale >= 0) {
+ descriptor.precision = column_descs[i].precision;
+ descriptor.scale = column_descs[i].scale;
+ }
+ t_slot_desc.__set_slotType(descriptor.to_thrift());
+ }
+ t_slot_desc.__set_colName(column_descs[i].name);
+ t_slot_desc.__set_columnPos(i);
+ t_slot_desc.__set_byteOffset(offset);
+
+ if (column_descs[i].is_null) {
+ t_slot_desc.__set_nullIndicatorByte(null_byte);
+ t_slot_desc.__set_nullIndicatorBit(null_bit);
+ null_bit = (null_bit + 1) % 8;
+
+ if (0 == null_bit) {
+ null_byte++;
+ }
+ } else {
+ t_slot_desc.__set_nullIndicatorByte(0);
+ t_slot_desc.__set_nullIndicatorBit(-1);
+ }
+
+ t_slot_desc.id = i;
+ t_slot_desc.__set_slotIdx(i);
+ t_slot_desc.__set_isMaterialized(true);
+
+ SlotDescriptor* slot = pool->add(new (std::nothrow)
SlotDescriptor(t_slot_desc));
+ slots.push_back(slot);
+ offset += column_descs[i].size;
+ }
+
+ TTupleDescriptor t_tuple_desc;
+ t_tuple_desc.__set_byteSize(offset);
+ t_tuple_desc.__set_numNullBytes((null_byte * 8 + null_bit + 7) / 8);
+ doris::TupleDescriptor* tuple_desc =
Review Comment:
warning: calling a private constructor of class 'doris::TupleDescriptor'
[clang-diagnostic-error]
```cpp
pool->add(new (std::nothrow)
doris::TupleDescriptor(t_tuple_desc));
^
```
**be/src/runtime/descriptors.h:368:** declared private here
```cpp
TupleDescriptor(const TTupleDescriptor& tdesc, bool own_slot = false);
^
```
##########
be/test/vec/exec/parquet/parquet_thrift_test.cpp:
##########
@@ -226,6 +227,74 @@
}
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
+ using namespace doris;
+ int null_column = 0;
+ for (int i = 0; i < column_descs.size(); ++i) {
+ if (column_descs[i].is_null) {
+ null_column++;
+ }
+ }
+
+ int offset = (null_column + 7) / 8;
+ std::vector<SlotDescriptor*> slots;
+ int null_byte = 0;
+ int null_bit = 0;
+
+ for (int i = 0; i < column_descs.size(); ++i) {
+ TSlotDescriptor t_slot_desc;
+ if (column_descs[i].type == TYPE_DECIMALV2) {
+
t_slot_desc.__set_slotType(TypeDescriptor::create_decimalv2_type(27,
9).to_thrift());
+ } else {
+ TypeDescriptor descriptor(column_descs[i].type);
+ if (column_descs[i].precision >= 0 && column_descs[i].scale >= 0) {
+ descriptor.precision = column_descs[i].precision;
+ descriptor.scale = column_descs[i].scale;
+ }
+ t_slot_desc.__set_slotType(descriptor.to_thrift());
+ }
+ t_slot_desc.__set_colName(column_descs[i].name);
+ t_slot_desc.__set_columnPos(i);
+ t_slot_desc.__set_byteOffset(offset);
+
+ if (column_descs[i].is_null) {
+ t_slot_desc.__set_nullIndicatorByte(null_byte);
+ t_slot_desc.__set_nullIndicatorBit(null_bit);
+ null_bit = (null_bit + 1) % 8;
+
+ if (0 == null_bit) {
+ null_byte++;
+ }
+ } else {
+ t_slot_desc.__set_nullIndicatorByte(0);
+ t_slot_desc.__set_nullIndicatorBit(-1);
+ }
+
+ t_slot_desc.id = i;
+ t_slot_desc.__set_slotIdx(i);
+ t_slot_desc.__set_isMaterialized(true);
+
+ SlotDescriptor* slot = pool->add(new (std::nothrow)
SlotDescriptor(t_slot_desc));
+ slots.push_back(slot);
+ offset += column_descs[i].size;
+ }
+
+ TTupleDescriptor t_tuple_desc;
+ t_tuple_desc.__set_byteSize(offset);
+ t_tuple_desc.__set_numNullBytes((null_byte * 8 + null_bit + 7) / 8);
+ doris::TupleDescriptor* tuple_desc =
+ pool->add(new (std::nothrow) doris::TupleDescriptor(t_tuple_desc));
+
+ for (int i = 0; i < slots.size(); ++i) {
Review Comment:
warning: 'add_slot' is a private member of 'doris::TupleDescriptor'
[clang-diagnostic-error]
```cpp
tuple_desc->add_slot(slots[i]);
^
```
**be/src/runtime/descriptors.h:373:** declared private here
```cpp
void add_slot(SlotDescriptor* slot);
^
```
##########
be/test/vec/exec/parquet/parquet_thrift_test.cpp:
##########
@@ -226,6 +227,74 @@ static Status get_column_values(io::FileReaderSPtr
file_reader, tparquet::Column
}
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
+ using namespace doris;
+ int null_column = 0;
+ for (int i = 0; i < column_descs.size(); ++i) {
+ if (column_descs[i].is_null) {
+ null_column++;
+ }
+ }
+
+ int offset = (null_column + 7) / 8;
+ std::vector<SlotDescriptor*> slots;
+ int null_byte = 0;
+ int null_bit = 0;
+
+ for (int i = 0; i < column_descs.size(); ++i) {
+ TSlotDescriptor t_slot_desc;
+ if (column_descs[i].type == TYPE_DECIMALV2) {
+
t_slot_desc.__set_slotType(TypeDescriptor::create_decimalv2_type(27,
9).to_thrift());
+ } else {
+ TypeDescriptor descriptor(column_descs[i].type);
+ if (column_descs[i].precision >= 0 && column_descs[i].scale >= 0) {
+ descriptor.precision = column_descs[i].precision;
+ descriptor.scale = column_descs[i].scale;
+ }
+ t_slot_desc.__set_slotType(descriptor.to_thrift());
+ }
+ t_slot_desc.__set_colName(column_descs[i].name);
+ t_slot_desc.__set_columnPos(i);
+ t_slot_desc.__set_byteOffset(offset);
+
+ if (column_descs[i].is_null) {
+ t_slot_desc.__set_nullIndicatorByte(null_byte);
+ t_slot_desc.__set_nullIndicatorBit(null_bit);
+ null_bit = (null_bit + 1) % 8;
+
+ if (0 == null_bit) {
+ null_byte++;
+ }
+ } else {
+ t_slot_desc.__set_nullIndicatorByte(0);
+ t_slot_desc.__set_nullIndicatorBit(-1);
+ }
+
+ t_slot_desc.id = i;
+ t_slot_desc.__set_slotIdx(i);
+ t_slot_desc.__set_isMaterialized(true);
+
Review Comment:
warning: calling a private constructor of class 'doris::SlotDescriptor'
[clang-diagnostic-error]
```cpp
SlotDescriptor* slot = pool->add(new (std::nothrow)
SlotDescriptor(t_slot_desc));
^
```
**be/src/runtime/descriptors.h:148:** declared private here
```cpp
SlotDescriptor(const TSlotDescriptor& tdesc);
^
```
##########
be/test/vec/exprs/vexpr_test.cpp:
##########
@@ -63,15 +64,80 @@ TEST(TEST_VEXPR, ABSTEST) {
context->close(&runtime_stat);
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
Review Comment:
warning: unknown type name 'ObjectPool' [clang-diagnostic-error]
```cpp
ObjectPool* pool, std::vector<SchemaScanner::ColumnDesc>&
column_descs) {
^
```
##########
be/test/vec/exprs/vexpr_test.cpp:
##########
@@ -63,15 +64,80 @@
context->close(&runtime_stat);
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
+ using namespace doris;
+ int null_column = 0;
+ for (int i = 0; i < column_descs.size(); ++i) {
+ if (column_descs[i].is_null) {
+ null_column++;
+ }
+ }
+
+ int offset = (null_column + 7) / 8;
+ std::vector<SlotDescriptor*> slots;
+ int null_byte = 0;
+ int null_bit = 0;
+
+ for (int i = 0; i < column_descs.size(); ++i) {
+ TSlotDescriptor t_slot_desc;
+ if (column_descs[i].type == TYPE_DECIMALV2) {
+
t_slot_desc.__set_slotType(TypeDescriptor::create_decimalv2_type(27,
9).to_thrift());
+ } else {
+ TypeDescriptor descriptor(column_descs[i].type);
+ if (column_descs[i].precision >= 0 && column_descs[i].scale >= 0) {
+ descriptor.precision = column_descs[i].precision;
+ descriptor.scale = column_descs[i].scale;
+ }
+ t_slot_desc.__set_slotType(descriptor.to_thrift());
+ }
+ t_slot_desc.__set_colName(column_descs[i].name);
+ t_slot_desc.__set_columnPos(i);
+ t_slot_desc.__set_byteOffset(offset);
+
+ if (column_descs[i].is_null) {
+ t_slot_desc.__set_nullIndicatorByte(null_byte);
+ t_slot_desc.__set_nullIndicatorBit(null_bit);
+ null_bit = (null_bit + 1) % 8;
+
+ if (0 == null_bit) {
+ null_byte++;
+ }
+ } else {
+ t_slot_desc.__set_nullIndicatorByte(0);
+ t_slot_desc.__set_nullIndicatorBit(-1);
+ }
+
+ t_slot_desc.id = i;
+ t_slot_desc.__set_slotIdx(i);
+ t_slot_desc.__set_isMaterialized(true);
+
+ SlotDescriptor* slot = pool->add(new (std::nothrow)
SlotDescriptor(t_slot_desc));
+ slots.push_back(slot);
+ offset += column_descs[i].size;
+ }
+
+ TTupleDescriptor t_tuple_desc;
+ t_tuple_desc.__set_byteSize(offset);
+ t_tuple_desc.__set_numNullBytes((null_byte * 8 + null_bit + 7) / 8);
+ doris::TupleDescriptor* tuple_desc =
Review Comment:
warning: calling a private constructor of class 'doris::TupleDescriptor'
[clang-diagnostic-error]
```cpp
pool->add(new (std::nothrow)
doris::TupleDescriptor(t_tuple_desc));
^
```
**be/src/runtime/descriptors.h:368:** declared private here
```cpp
TupleDescriptor(const TTupleDescriptor& tdesc, bool own_slot = false);
^
```
##########
be/test/vec/exprs/vexpr_test.cpp:
##########
@@ -63,15 +64,80 @@
context->close(&runtime_stat);
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
Review Comment:
warning: use of undeclared identifier 'SchemaScanner'; did you mean
'doris::SchemaScanner'? [clang-diagnostic-error]
```suggestion
ObjectPool* pool, std::vector<doris::SchemaScanner::ColumnDesc>&
column_descs) {
```
**be/src/exec/schema_scanner.h:67:** 'doris::SchemaScanner' declared here
```cpp
class SchemaScanner {
^
```
##########
be/test/vec/exprs/vexpr_test.cpp:
##########
@@ -63,15 +64,80 @@
context->close(&runtime_stat);
}
+// Only the unit test depend on this, but it is wrong, should not use
TTupleDesc to create tuple desc, not
+// use columndesc
+static doris::TupleDescriptor* create_tuple_desc(
+ doris::ObjectPool* pool,
std::vector<doris::SchemaScanner::ColumnDesc>& column_descs) {
+ using namespace doris;
+ int null_column = 0;
+ for (int i = 0; i < column_descs.size(); ++i) {
+ if (column_descs[i].is_null) {
+ null_column++;
+ }
+ }
+
+ int offset = (null_column + 7) / 8;
+ std::vector<SlotDescriptor*> slots;
+ int null_byte = 0;
+ int null_bit = 0;
+
+ for (int i = 0; i < column_descs.size(); ++i) {
+ TSlotDescriptor t_slot_desc;
+ if (column_descs[i].type == TYPE_DECIMALV2) {
+
t_slot_desc.__set_slotType(TypeDescriptor::create_decimalv2_type(27,
9).to_thrift());
+ } else {
+ TypeDescriptor descriptor(column_descs[i].type);
+ if (column_descs[i].precision >= 0 && column_descs[i].scale >= 0) {
+ descriptor.precision = column_descs[i].precision;
+ descriptor.scale = column_descs[i].scale;
+ }
+ t_slot_desc.__set_slotType(descriptor.to_thrift());
+ }
+ t_slot_desc.__set_colName(column_descs[i].name);
+ t_slot_desc.__set_columnPos(i);
+ t_slot_desc.__set_byteOffset(offset);
+
+ if (column_descs[i].is_null) {
+ t_slot_desc.__set_nullIndicatorByte(null_byte);
+ t_slot_desc.__set_nullIndicatorBit(null_bit);
+ null_bit = (null_bit + 1) % 8;
+
+ if (0 == null_bit) {
+ null_byte++;
+ }
+ } else {
+ t_slot_desc.__set_nullIndicatorByte(0);
+ t_slot_desc.__set_nullIndicatorBit(-1);
+ }
+
+ t_slot_desc.id = i;
+ t_slot_desc.__set_slotIdx(i);
+ t_slot_desc.__set_isMaterialized(true);
+
+ SlotDescriptor* slot = pool->add(new (std::nothrow)
SlotDescriptor(t_slot_desc));
+ slots.push_back(slot);
+ offset += column_descs[i].size;
+ }
+
+ TTupleDescriptor t_tuple_desc;
+ t_tuple_desc.__set_byteSize(offset);
+ t_tuple_desc.__set_numNullBytes((null_byte * 8 + null_bit + 7) / 8);
+ doris::TupleDescriptor* tuple_desc =
+ pool->add(new (std::nothrow) doris::TupleDescriptor(t_tuple_desc));
+
+ for (int i = 0; i < slots.size(); ++i) {
Review Comment:
warning: 'add_slot' is a private member of 'doris::TupleDescriptor'
[clang-diagnostic-error]
```cpp
tuple_desc->add_slot(slots[i]);
^
```
**be/src/runtime/descriptors.h:373:** declared private here
```cpp
void add_slot(SlotDescriptor* slot);
^
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]