2021-02-19 13:24:57 +00:00
|
|
|
#!/usr/bin/env bash
|
2021-09-12 12:35:27 +00:00
|
|
|
# Tags: no-fasttest
|
2021-02-19 13:24:57 +00:00
|
|
|
|
|
|
|
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
|
|
SCHEMADIR=$CURDIR/format_schemas
|
|
|
|
# shellcheck source=../shell_config.sh
|
|
|
|
. "$CURDIR"/../shell_config.sh
|
|
|
|
|
|
|
|
set -eo pipefail
|
|
|
|
|
|
|
|
# Run the client.
|
2024-07-29 20:06:55 +00:00
|
|
|
$CLICKHOUSE_CLIENT <<EOF
|
2021-02-19 13:24:57 +00:00
|
|
|
DROP TABLE IF EXISTS squares_protobuf_00825;
|
|
|
|
|
|
|
|
CREATE TABLE squares_protobuf_00825 (number UInt32, square UInt64) ENGINE = MergeTree ORDER BY tuple();
|
|
|
|
|
|
|
|
INSERT INTO squares_protobuf_00825 VALUES (2, 4), (0, 0), (3, 9);
|
|
|
|
|
|
|
|
SELECT * FROM squares_protobuf_00825;
|
|
|
|
EOF
|
|
|
|
|
|
|
|
BINARY_FILE_PATH=$(mktemp "$CURDIR/00825_protobuf_format_nested_optional.XXXXXX.binary")
|
|
|
|
$CLICKHOUSE_CLIENT --query "SELECT * FROM squares_protobuf_00825 FORMAT Protobuf SETTINGS format_schema = '$SCHEMADIR/00825_protobuf_format_squares:NumberAndSquare'" > "$BINARY_FILE_PATH"
|
|
|
|
|
|
|
|
# Check the output in the protobuf format
|
|
|
|
echo
|
|
|
|
$CURDIR/helpers/protobuf_length_delimited_encoder.py --decode_and_check --format_schema "$SCHEMADIR/00825_protobuf_format_squares:NumberAndSquare" --input "$BINARY_FILE_PATH"
|
|
|
|
|
|
|
|
# Check the input in the protobuf format (now the table contains the same data twice).
|
|
|
|
echo
|
2022-04-03 07:52:44 +00:00
|
|
|
$CLICKHOUSE_CLIENT --query "INSERT INTO squares_protobuf_00825 SETTINGS format_schema='$SCHEMADIR/00825_protobuf_format_squares:NumberAndSquare' FORMAT Protobuf" < "$BINARY_FILE_PATH"
|
2021-02-19 13:24:57 +00:00
|
|
|
$CLICKHOUSE_CLIENT --query "SELECT * FROM squares_protobuf_00825"
|
|
|
|
|
|
|
|
rm "$BINARY_FILE_PATH"
|
|
|
|
$CLICKHOUSE_CLIENT --query "DROP TABLE squares_protobuf_00825"
|