Add a test with multiple wrappers used in a single message

This commit is contained in:
Jakub Kuklis 2022-04-14 11:59:14 +02:00
parent 5c34585a00
commit 67c368ddfb
3 changed files with 30 additions and 0 deletions

View File

@ -36,3 +36,8 @@ with disabled format_protobuf_google_wrappers_special_treatment:
('') 1
('') 2
('str') 3
Insert (0,1,2) and reinsert using Google wrappers into:
Table (Nullable(Int32), Nullable(Int32), Int32):
0 1 2
0 1 2

View File

@ -17,6 +17,7 @@ MESSAGE_FILE_PATH=$(mktemp "$CURDIR/${PROTOBUF_FILE_NAME}_message.XXXXXX.binary"
MAIN_TABLE="google_wrappers_02266"
ROUNDTRIP_TABLE="roundtrip_google_wrappers_02266"
COMPATIBILITY_TABLE="compatibility_google_wrappers_02266"
MULTI_TABLE="multi_google_wrappers_02266"
# takes ClickHouse format and protobuf class as arguments
format_settings() {
@ -29,6 +30,7 @@ $CLICKHOUSE_CLIENT -n --query "
DROP TABLE IF EXISTS $MAIN_TABLE;
DROP TABLE IF EXISTS $ROUNDTRIP_TABLE;
DROP TABLE IF EXISTS $COMPATIBILITY_TABLE;
DROP TABLE IF EXISTS $MULTI_TABLE;
CREATE TABLE $MAIN_TABLE
(
@ -43,6 +45,13 @@ $CLICKHOUSE_CLIENT -n --query "
str Tuple(value String),
ref Int32
) ENGINE = MergeTree ORDER BY tuple();
CREATE TABLE $MULTI_TABLE
(
x0 Nullable(Int32),
x1 Nullable(Int32),
x2 Int32
) ENGINE = MergeTree ORDER BY tuple();
"
INITIAL_INSERT_VALUES="('str1',1),('',2),('str2',3)"
@ -93,6 +102,15 @@ $CLICKHOUSE_CLIENT -n --query "
" < "$MESSAGE_FILE_PATH"
$CLICKHOUSE_CLIENT --query "SELECT * FROM $COMPATIBILITY_TABLE"
MULTI_WRAPPER_VALUES="(0,1,2)"
echo
echo "Insert $MULTI_WRAPPER_VALUES and reinsert using Google wrappers into:"
echo "Table (Nullable(Int32), Nullable(Int32), Int32):"
$CLICKHOUSE_CLIENT --query "INSERT INTO $MULTI_TABLE VALUES $MULTI_WRAPPER_VALUES"
$CLICKHOUSE_CLIENT --query "SELECT * FROM $MULTI_TABLE $(format_settings Protobuf MessageMultiWrapper)" > "$BINARY_FILE_PATH"
$CLICKHOUSE_CLIENT --query "INSERT INTO $MULTI_TABLE $(format_settings Protobuf MessageMultiWrapper)" < "$BINARY_FILE_PATH"
$CLICKHOUSE_CLIENT --query "SELECT * FROM $MULTI_TABLE"
rm "$BINARY_FILE_PATH"
rm "$MESSAGE_FILE_PATH"
@ -100,4 +118,5 @@ $CLICKHOUSE_CLIENT -n --query "
DROP TABLE $MAIN_TABLE;
DROP TABLE $ROUNDTRIP_TABLE;
DROP TABLE $COMPATIBILITY_TABLE;
DROP TABLE $MULTI_TABLE;
"

View File

@ -10,4 +10,10 @@ message Message {
message MessageNoWrapper {
string str = 1;
int32 ref = 2;
}
message MessageMultiWrapper {
google.protobuf.Int32Value x0 = 1;
google.protobuf.Int32Value x1 = 2;
google.protobuf.Int32Value x2 = 3;
}