You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "yiguolei (via GitHub)" <gi...@apache.org> on 2023/03/18 12:43:54 UTC
[GitHub] [doris] yiguolei opened a new pull request, #17921: [unify type system](remove unused type desc) remove some code
yiguolei opened a new pull request, #17921:
URL: https://github.com/apache/doris/pull/17921
# Proposed changes
There are many type definitions in BE. Should unify the type system and simplify the development.
## Problem summary
Describe your changes.
## Checklist(Required)
* [ ] Does it affect the original behavior
* [ ] Has unit tests been added
* [ ] Has document been added or modified
* [ ] Does it need to update dependencies
* [ ] Is this PR support rollback (If NO, please explain WHY)
## Further comments
If this is a relatively large or complex change, kick off the discussion at [dev@doris.apache.org](mailto:dev@doris.apache.org) by explaining why you chose the solution you did and what alternatives you considered, etc...
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] yiguolei merged pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "yiguolei (via GitHub)" <gi...@apache.org>.
yiguolei merged PR #17921:
URL: https://github.com/apache/doris/pull/17921
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1474855665
clang-tidy review says "All clean, LGTM! :+1:"
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on a diff in pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #17921:
URL: https://github.com/apache/doris/pull/17921#discussion_r1141229590
##########
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);
+
+ SlotDescriptor* slot = pool->add(new (std::nothrow) SlotDescriptor(t_slot_desc));
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/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));
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 @@ 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<doris::SchemaScanner::ColumnDesc>& column_descs) {
^
```
##########
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) {
+ tuple_desc->add_slot(slots[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/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));
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 @@
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) {
+ tuple_desc->add_slot(slots[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/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));
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);
^
```
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] hello-stephen commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "hello-stephen (via GitHub)" <gi...@apache.org>.
hello-stephen commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1474870975
TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.59 seconds
stream load tsv: 475 seconds loaded 74807831229 Bytes, about 150 MB/s
stream load json: 22 seconds loaded 2358488459 Bytes, about 102 MB/s
stream load orc: 74 seconds loaded 1101869774 Bytes, about 14 MB/s
stream load parquet: 31 seconds loaded 861443392 Bytes, about 26 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230318145232_clickbench_pr_116445.html
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on a diff in pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on a diff in pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #17921:
URL: https://github.com/apache/doris/pull/17921#discussion_r1141228782
##########
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(
Review Comment:
warning: unknown type name 'TupleDescriptor'; did you mean 'doris::TupleDescriptor'? [clang-diagnostic-error]
```suggestion
static doris::TupleDescriptor* create_tuple_desc(ObjectPool* pool,
```
**be/src/vec/core/block.h:43:** 'doris::TupleDescriptor' declared here
```cpp
class TupleDescriptor;
^
```
##########
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(
Review Comment:
warning: unknown type name 'ObjectPool' [clang-diagnostic-error]
```cpp
static TupleDescriptor* create_tuple_desc(ObjectPool* pool,
^
```
##########
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
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;
Review Comment:
warning: use of undeclared identifier 'SlotDescriptor' [clang-diagnostic-error]
```cpp
std::vector<SlotDescriptor*> slots;
^
```
##########
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;
Review Comment:
warning: expected expression [clang-diagnostic-error]
```cpp
std::vector<SlotDescriptor*> slots;
^
```
##########
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) {
Review Comment:
warning: unknown type name 'TSlotDescriptor'; did you mean 'doris::TSlotDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TSlotDescriptor t_slot_desc;
```
**be/src/runtime/descriptors.h:45:** 'doris::TSlotDescriptor' declared here
```cpp
class TSlotDescriptor;
^
```
##########
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) {
Review Comment:
warning: use of undeclared identifier 'TypeDescriptor'; did you mean 'doris::TypeDescriptor'? [clang-diagnostic-error]
```suggestion
t_slot_desc.__set_slotType(doris::TypeDescriptor::create_decimalv2_type(27, 9).to_thrift());
```
**be/src/udf/udf.h:40:** 'doris::TypeDescriptor' declared here
```cpp
struct TypeDescriptor;
^
```
##########
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;
Review Comment:
warning: use of undeclared identifier 'TYPE_DECIMALV2'; did you mean 'doris::TYPE_DECIMALV2'? [clang-diagnostic-error]
```suggestion
if (column_descs[i].type == doris::TYPE_DECIMALV2) {
```
**be/src/runtime/define_primitive_type.h:43:** 'doris::TYPE_DECIMALV2' declared here
```cpp
TYPE_DECIMALV2, /* 20 */
^
```
##########
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);
+
Review Comment:
warning: unknown type name 'SlotDescriptor'; did you mean 'doris::SlotDescriptor'? [clang-diagnostic-error]
```suggestion
doris::SlotDescriptor* slot = pool->add(new (std::nothrow) SlotDescriptor(t_slot_desc));
```
**be/src/runtime/descriptors.h:84:** 'doris::SlotDescriptor' declared here
```cpp
class SlotDescriptor {
^
```
##########
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 {
Review Comment:
warning: unknown type name 'TypeDescriptor'; did you mean 'doris::TypeDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TypeDescriptor descriptor(column_descs[i].type);
```
**be/src/udf/udf.h:40:** 'doris::TypeDescriptor' declared here
```cpp
struct TypeDescriptor;
^
```
##########
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);
+
Review Comment:
warning: unknown type name 'SlotDescriptor'; did you mean 'doris::SlotDescriptor'? [clang-diagnostic-error]
```suggestion
SlotDescriptor* slot = pool->add(new (std::nothrow) doris::SlotDescriptor(t_slot_desc));
```
**be/src/runtime/descriptors.h:84:** 'doris::SlotDescriptor' declared here
```cpp
class SlotDescriptor {
^
```
##########
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);
+
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 @@
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);
Review Comment:
warning: unknown type name 'TupleDescriptor'; did you mean 'doris::TupleDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) TupleDescriptor(t_tuple_desc));
```
**be/src/vec/core/block.h:43:** 'doris::TupleDescriptor' declared here
```cpp
class TupleDescriptor;
^
```
##########
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;
+ }
+
Review Comment:
warning: unknown type name 'TTupleDescriptor'; did you mean 'doris::TTupleDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TTupleDescriptor t_tuple_desc;
```
**be/src/runtime/descriptors.h:46:** 'doris::TTupleDescriptor' declared here
```cpp
class TTupleDescriptor;
^
```
##########
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);
Review Comment:
warning: calling a private constructor of class 'doris::TupleDescriptor' [clang-diagnostic-error]
```cpp
TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) 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) {
+ 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);
Review Comment:
warning: unknown type name 'TupleDescriptor'; did you mean 'doris::TupleDescriptor'? [clang-diagnostic-error]
```suggestion
TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) doris::TupleDescriptor(t_tuple_desc));
```
**be/src/vec/core/block.h:43:** 'doris::TupleDescriptor' declared here
```cpp
class TupleDescriptor;
^
```
##########
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));
+
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1475113649
PR approved by at least one committer and no changes requested.
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1475113655
PR approved by anyone and no changes requested.
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on a diff in pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on code in PR #17921:
URL: https://github.com/apache/doris/pull/17921#discussion_r1141228439
##########
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 @@
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(
Review Comment:
warning: use of undeclared identifier 'SchemaScanner'; did you mean 'doris::SchemaScanner'? [clang-diagnostic-error]
```suggestion
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) {
Review Comment:
warning: use of undeclared identifier 'TYPE_DECIMALV2'; did you mean 'doris::TYPE_DECIMALV2'? [clang-diagnostic-error]
```suggestion
if (column_descs[i].type == doris::TYPE_DECIMALV2) {
```
**be/src/runtime/define_primitive_type.h:43:** 'doris::TYPE_DECIMALV2' declared here
```cpp
TYPE_DECIMALV2, /* 20 */
^
```
##########
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);
Review Comment:
warning: unknown type name 'TupleDescriptor'; did you mean 'doris::TupleDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) TupleDescriptor(t_tuple_desc));
```
**be/src/vec/core/block.h:43:** 'doris::TupleDescriptor' declared here
```cpp
class TupleDescriptor;
^
```
##########
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++;
+ }
+ }
+
Review Comment:
warning: use of undeclared identifier 'SlotDescriptor' [clang-diagnostic-error]
```cpp
std::vector<SlotDescriptor*> slots;
^
```
##########
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
Review Comment:
warning: unknown type name 'TupleDescriptor'; did you mean 'doris::TupleDescriptor'? [clang-diagnostic-error]
```suggestion
static doris::TupleDescriptor* create_tuple_desc(ObjectPool* pool,
```
**be/src/vec/core/block.h:43:** 'doris::TupleDescriptor' declared here
```cpp
class TupleDescriptor;
^
```
##########
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));
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/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++;
+ }
+ }
+
Review Comment:
warning: expected expression [clang-diagnostic-error]
```cpp
std::vector<SlotDescriptor*> slots;
^
```
##########
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;
Review Comment:
warning: use of undeclared identifier 'TypeDescriptor'; did you mean 'doris::TypeDescriptor'? [clang-diagnostic-error]
```suggestion
t_slot_desc.__set_slotType(doris::TypeDescriptor::create_decimalv2_type(27, 9).to_thrift());
```
**be/src/udf/udf.h:40:** 'doris::TypeDescriptor' declared here
```cpp
struct TypeDescriptor;
^
```
##########
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
Review Comment:
warning: unknown type name 'ObjectPool' [clang-diagnostic-error]
```cpp
static TupleDescriptor* create_tuple_desc(ObjectPool* pool,
^
```
##########
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);
Review Comment:
warning: calling a private constructor of class 'doris::TupleDescriptor' [clang-diagnostic-error]
```cpp
TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) 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) {
+ 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;
+
Review Comment:
warning: unknown type name 'TSlotDescriptor'; did you mean 'doris::TSlotDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TSlotDescriptor t_slot_desc;
```
**be/src/runtime/descriptors.h:45:** 'doris::TSlotDescriptor' declared here
```cpp
class TSlotDescriptor;
^
```
##########
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);
Review Comment:
warning: unknown type name 'SlotDescriptor'; did you mean 'doris::SlotDescriptor'? [clang-diagnostic-error]
```suggestion
doris::SlotDescriptor* slot = pool->add(new (std::nothrow) SlotDescriptor(t_slot_desc));
```
**be/src/runtime/descriptors.h:84:** 'doris::SlotDescriptor' declared here
```cpp
class SlotDescriptor {
^
```
##########
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);
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 @@
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());
Review Comment:
warning: unknown type name 'TypeDescriptor'; did you mean 'doris::TypeDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TypeDescriptor descriptor(column_descs[i].type);
```
**be/src/udf/udf.h:40:** 'doris::TypeDescriptor' declared here
```cpp
struct TypeDescriptor;
^
```
##########
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);
Review Comment:
warning: unknown type name 'SlotDescriptor'; did you mean 'doris::SlotDescriptor'? [clang-diagnostic-error]
```suggestion
SlotDescriptor* slot = pool->add(new (std::nothrow) doris::SlotDescriptor(t_slot_desc));
```
**be/src/runtime/descriptors.h:84:** 'doris::SlotDescriptor' declared here
```cpp
class SlotDescriptor {
^
```
##########
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);
Review Comment:
warning: unknown type name 'TupleDescriptor'; did you mean 'doris::TupleDescriptor'? [clang-diagnostic-error]
```suggestion
TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) doris::TupleDescriptor(t_tuple_desc));
```
**be/src/vec/core/block.h:43:** 'doris::TupleDescriptor' declared here
```cpp
class TupleDescriptor;
^
```
##########
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;
+ }
Review Comment:
warning: unknown type name 'TTupleDescriptor'; did you mean 'doris::TTupleDescriptor'? [clang-diagnostic-error]
```suggestion
doris::TTupleDescriptor t_tuple_desc;
```
**be/src/runtime/descriptors.h:46:** 'doris::TTupleDescriptor' declared here
```cpp
class TTupleDescriptor;
^
```
##########
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);
Review Comment:
warning: calling a private constructor of class 'doris::TupleDescriptor' [clang-diagnostic-error]
```cpp
TupleDescriptor* tuple_desc = pool->add(new (std::nothrow) 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) {
+ 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));
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] github-actions[bot] commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1474842659
clang-tidy review says "All clean, LGTM! :+1:"
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] yiguolei commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "yiguolei (via GitHub)" <gi...@apache.org>.
yiguolei commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1475059334
run buildall
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org
[GitHub] [doris] yiguolei commented on pull request #17921: [unify type system](remove unused type desc) remove some code
Posted by "yiguolei (via GitHub)" <gi...@apache.org>.
yiguolei commented on PR #17921:
URL: https://github.com/apache/doris/pull/17921#issuecomment-1474851852
run buildall
--
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: commits-unsubscribe@doris.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org