I suspect that your build is mixing your downloaded 3.12.3 protobuf source
with a different protobuf version installed by your distro's package
manager. I would recommend making sure that your project is only compiling
against one version of protobuf. Also, I don't think this is related but
you might want to use 3.13.0 or 3.12.4 instead of 3.12.3. We made a mistake
with 3.12.3 and published tar.gz files on the GitHub release page that were
generated from the wrong Git commit.

On Mon, Aug 24, 2020 at 1:56 PM Test Last <[email protected]> wrote:

> Hi everyone
>
> I ported a ODBC Driver that works in an RPC fashion from windows to linux.
> The port was actually quite trivial since the code was already Cross OS
> Friendly.
> The protobuf has never been an issue on Windows side. The protobuf package
> was V3.12.3 and was also installed by visual studio.
>
> However when I download Protobuf C++ and compile them on both Ubuntu and
> CentOS. And compile my program I get strange errors ALWAYS resulting from
> "repeated_field.h.
> Sometimes the error is on line 1750 and other times its on 1744 but no
> matter what version I compile or what OS I use it just never seems to want
> to process anything that needs to use "repeated_field.h" . I will paste my
> backtrace and also my ldd of the driver. With the makefile I use to compile
> the protobufs.
>
> This is a backtrace of a string of data that needs to be parsed. This
> always breaks.
> The class its trying to parse into is -> ExecuteResponse : Please check
> the proto files.
> This is the backtrace.
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff6369cc4 in
> google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf::RepeatedPtrField<ColumnValue>::TypeHandler>
> (this=0x68e8d0, prototype=0x0)
>    at /usr/local/include/google/protobuf/repeated_field.h:1744
> 1744      if (rep_ != NULL && current_size_ < rep_->allocated_size) {
> (gdb) backtrace
> #0  0x00007ffff6369cc4 in
> google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf::RepeatedPtrField<ColumnValue>::TypeHandler>
> (this=0x68e8d0, prototype=0x0)
>    at /usr/local/include/google/protobuf/repeated_field.h:1744
> #1  0x00007ffff6366e39 in
> google::protobuf::RepeatedPtrField<ColumnValue>::Add (this=0x68e8d0) at
> /usr/local/include/google/protobuf/repeated_field.h:2195
> #2  0x00007ffff63646fa in Row::_internal_add_value (this=0x68e8c0) at
> common.pb.h:5781
> #3  0x00007ffff635697f in Row::_InternalParse (this=0x68e8c0,
>    ptr=0x67c5f0 "*\n\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\"\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\n,\n\024\b\025\032\020a***oum.br\"\024\b\025\032
> \020a***com.br
> \n\030\n\n\b\025\032\006Brazil\"\n\b\025\032\006Brazil\n\026\n\t\b\032\032\005\063\067.62\"\t\b\032\032\005\063\067.62\032\234\001\n*\n\023\b\025\032\017Edua"
> , '*' <repeats 11 times>, "\"\023\b\025\032\017Edua", '*' <repeats 11
> times>, "\n<\n\034\b\025\032\030e*****"..., ctx=0x7fffffffce30) at
> common.pb.cc:3927
> #4  0x00007ffff6367db6 in
> google::protobuf::internal::ParseContext::ParseMessage<Row>
> (this=0x7fffffffce30, msg=0x68e8c0,
>    ptr=0x67c5ef "\n*\n\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\"\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\n,\n\024\b\025\032\020a*com.br\"\024\b\025\0
> 32\020a***oom.br
> \n\030\n\n\b\025\032\006Brazil\"\n\b\025\032\006Brazil\n\026\n\t\b\032\032\005\063\067.62\"\t\b\032\032\005\063\067.62\032\234\001\n*\n\023\b\025\032\017Edu
> a", '*' <repeats 11 times>, "\"\023\b\025\032\017Edua", '*' <repeats 11
> times>, "\n<\n\034\b\025\032\030e****"...) at
> /usr/local/include/google/protobuf/parse_context.h:614
> #5  0x00007ffff635596f in Frame::_InternalParse (this=0x68d830,
>    ptr=0x67c5ed "\214\001\n*\n\023\b\025\032\017Alex", '*' <repeats 11
> times>, "\"\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\n,\n\024\b\025\032\020a*l.com.br\"\024
> \b\025\032\020aom.br
> \n\030\n\n\b\025\032\006Brazil\"\n\b\025\032\006Brazil\n\026\n\t\b\032\032\005\063\067.62\"\t\b\032\032\005\063\067.62\032\234\001\n*\n\023\b\025\03
> 2\017Edua", '*' <repeats 11 times>, "\"\023\b\025\032\017Edua", '*'
> <repeats 11 times>, "\n<\n\034\b\025\032\030e**"..., ctx=0x7fffffffce30) at
> common.pb.cc:3688
> #6  0x00007ffff63ac758 in
> google::protobuf::internal::ParseContext::ParseMessage<Frame>
> (this=0x7fffffffce30, msg=0x68d830,
>    ptr=0x67c5ea "\020\001\032\214\001\n*\n\023\b\025\032\017Alex", '*'
> <repeats 11 times>, "\"\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\n,\n\024\b\025\032\020a*l.
> com.br\"\024\b\025\032\020a****l.com.br
> \n\030\n\n\b\025\032\006Brazil\"\n\b\025\032\006Brazil\n\026\n\t\b\032\032\005\063\067.62\"\t\b\032\032\005\063\067.62\032\234\001\n*\n\
> 023\b\025\032\017Edua", '*' <repeats 11 times>,
> "\"\023\b\025\032\017Edua", '*' <repeats 11 times>,
> "\n<\n\034\b\025\032\030"...)
>    at /usr/local/include/google/protobuf/parse_context.h:614
> #7  0x00007ffff6395e79 in ResultSetResponse::_InternalParse
> (this=0x674310,
>    ptr=0x67c5e8 "\215\006\020\001\032\214\001\n*\n\023\b\025\032\017Alex",
> '*' <repeats 11 times>, "\"\023\b\025\032\017Alex", '*' <repeats 11 times>,
> "\n,\n\024\b\025\032\020a*
> **com.br\"\024\b\025\032\020a*om.br
> \n\030\n\n\b\025\032\006Brazil\"\n\b\025\032\006Brazil\n\026\n\t\b\032\032\005\063\067.62\"\t\b\032\032\005\063\067.62\032\234\0
> 01\n*\n\023\b\025\032\017Edua", '*' <repeats 11 times>,
> "\"\023\b\025\032\017Edua", '*' <repeats 11 times>, "\n<\n\034\b\025"...,
> ctx=0x7fffffffce30) at response.pb.cc:788
> #8  0x00007ffff63aca34 in
> google::protobuf::internal::ParseContext::ParseMessage<ResultSetResponse>
> (this=0x7fffffffce30, msg=0x674310,
>    ptr=0x67c4a3 "\n\b0pOR9266\020B\030\001\"\263\002\nJ \001\060\001@
> \377\001J\bfullnameR\bfullname`\377\001z\005Spark\200\001\001\232\001\020java.lang.String\242\001\f\b\f\022\
> 006STRING\030\025\nF\b\001 
> \001\060\001@\377\001J\005emailR\005email`\377\001z\005Spark\200\001\001\232\001\020java.lang.String\242\001\f\b\f\022\006STRING\030\025\nJ\b\002
> \001\
> 060\001@\377\001J\acountryR\acountry`\377\001z\005S"...) at
> /usr/local/include/google/protobuf/parse_context.h:614
> #9  0x00007ffff6397670 in ExecuteResponse::_InternalParse
> (this=0x7fffffffd300,
>    ptr=0x67c4a1 "\205\t\n\b0pOR9266\020B\030\001\"\263\002\nJ \001\060\001@
> \377\001J\bfullnameR\bfullname`\377\001z\005Spark\200\001\001\232\001\020java.lang.String\242\001\f\b\
> f\022\006STRING\030\025\nF\b\001
> \001\060\001\377\001J\005emailR\005email`\377\001z\005Spark\200\001\001\232\001\020java.lang.String\242\001\f\b\f\022\006STRING\030\025\nJ\b\002
> \001\060\001\377\001J\acountryR\acountry`\377\001z"...,
> ctx=0x7fffffffce30) at response.pb.cc:1135
> #10 0x00007ffff55350a0 in google::protobuf::internal::MergeFromImpl<false>
> (input=..., msg=0x7fffffffd300,
> parse_flags=google::protobuf::MessageLite::kParse)
>    at ./google/protobuf/parse_context.h:224
> #11 0x00007ffff62ad4b7 in proto::helper::parseNonStream<ExecuteResponse>
> (inc=0x7fffffffd0f0, outClass=0x7fffffffd300) at transProto.h:32
> #12 0x00007ffff62a88b6 in ConnectEngine::PrepareAndExecuteReq
> (this=0x671170, query="select * from VidDemo ", PERResponse=0x7fffffffd300,
> maxRows=9223372036854775807,
>    frameMaxSize=2147483647 <(214)%20748-3647>, _statementId=66) at
> ConnectEngine.cpp:639
> #13 0x00007ffff62b462c in Consolidation::executeQuery (this=0x6710b0,
> query="select * from VidDemo ") at Consolidation.cpp:173
> #14 0x00007ffff62f3f9e in Statement::requestNextPackOfResultSets
> (this=0x68bfe0, mutator=...) at statement.cpp:215
>
> //THIS IS MY MAKEFILE
>
> LDFLAGS = -L/usr/local/lib `pkg-config --libs protobuf grpc++`\
> -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed\
> -ldl
>
> CXX = g++
> CPPFLAGS += `pkg-config --cflags protobuf grpc`
> CXXFLAGS += -std=c++14
>
> DEBUG = -g
>
> GRPC_CPP_PLUGIN = grpc_cpp_plugin
> GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
>
> all: common request response common.o request.o response.o
>
> common:
> protoc -I=. --cpp_out=. ./common.proto
>
> request:
> protoc -I=. --cpp_out=. ./request.proto
>
> response:
> protoc -I=. --cpp_out=. ./response.proto
>
> common.o: common.pb.cc
> $(CXX) $(DEBUG) -fPIC -c $^ $(LDFLAGS) -o $@ $(CXXFLAGS)
>
> request.o: request.pb.cc
> $(CXX) $(DEBUG) -fPIC -c $^ $(LDFLAGS) -o $@ $(CXXFLAGS)
>
> response.o: response.pb.cc
> $(CXX) $(DEBUG) -fPIC -c $^ $(LDFLAGS) -o $@ $(CXXFLAGS)
>
> clean:
> rm -f *.o *.pb.cc *.pb.h client
>
> //This is my 3 Proto files. Its part of the Calcite Avatica package.
> //COMMON.PROTO
> syntax = "proto3";
> //option cc_generic_services = true;
> option cc_generic_services = false;
>
> //option csharp_namespace = "Calcite.Avatica";
>
> // Details about a connection
> message ConnectionProperties {
> bool is_dirty = 1;
> bool auto_commit = 2;
> bool has_auto_commit = 7; // field is a Boolean, need to discern null and
> default value
> bool read_only = 3;
> bool has_read_only = 8; // field is a Boolean, need to discern null and
> default value
> uint32 transaction_isolation = 4;
> string catalog = 5;
> string schema = 6;
> }
>
> // Statement handle
> message StatementHandle {
> string connection_id = 1;
> uint32 id = 2;
> Signature signature = 3;
> }
>
> // Results of preparing a statement
> message Signature {
> repeated ColumnMetaData columns = 1;
> string sql = 2;
> repeated AvaticaParameter parameters = 3;
> CursorFactory cursor_factory = 4;
> StatementType statementType = 5;
> }
>
> // Has to be consistent with Meta.StatementType
> enum StatementType {
> SELECT = 0;
> INSERT = 1;
> UPDATE = 2;
> DELETE = 3;
> UPSERT = 4;
> MERGE = 5;
> OTHER_DML = 6;
> CREATE = 7;
> DROP = 8;
> ALTER = 9;
> OTHER_DDL = 10;
> CALL = 11;
> }
>
> message ColumnMetaData {
> uint32 ordinal = 1;
> bool auto_increment = 2;
> bool case_sensitive = 3;
> bool searchable = 4;
> bool currency = 5;
> uint32 nullable = 6;
> bool signed = 7;
> uint32 display_size = 8;
> string label = 9;
> string column_name = 10;
> string schema_name = 11;
> uint32 precision = 12;
> uint32 scale = 13;
> string table_name = 14;
> string catalog_name = 15;
> bool read_only = 16;
> bool writable = 17;
> bool definitely_writable = 18;
> string column_class_name = 19;
> AvaticaType type = 20;
> }
>
> enum Rep {
> PRIMITIVE_BOOLEAN = 0;
> PRIMITIVE_BYTE = 1;
> PRIMITIVE_CHAR = 2;
> PRIMITIVE_SHORT = 3;
> PRIMITIVE_INT = 4;
> PRIMITIVE_LONG = 5;
> PRIMITIVE_FLOAT = 6;
> PRIMITIVE_DOUBLE = 7;
> BOOLEAN = 8;
> BYTE = 9;
> CHARACTER = 10;
> SHORT = 11;
> INTEGER = 12;
> LONG = 13;
> FLOAT = 14;
> DOUBLE = 15;
> BIG_INTEGER = 25;
> BIG_DECIMAL = 26;
> JAVA_SQL_TIME = 16;
> JAVA_SQL_TIMESTAMP = 17;
> JAVA_SQL_DATE = 18;
> JAVA_UTIL_DATE = 19;
> BYTE_STRING = 20;
> STRING = 21;
> NUMBER = 22;
> OBJECT = 23;
> NULL = 24;
> ARRAY = 27;
> STRUCT = 28;
> MULTISET = 29;
> }
>
> // Base class for a column type
> message AvaticaType {
> uint32 id = 1;
> string name = 2;
> Rep rep = 3;
>
> repeated ColumnMetaData columns = 4; // Only present when name = STRUCT
> AvaticaType component = 5; // Only present when name = ARRAY
> }
>
> // Metadata for a parameter
> message AvaticaParameter {
> bool signed = 1;
> uint32 precision = 2;
> uint32 scale = 3;
> uint32 parameter_type = 4;
> string type_name = 5;
> string class_name = 6;
> string name = 7;
> }
>
> // Information necessary to convert an Iterable into a Calcite Cursor
> message CursorFactory {
> enum Style {
> OBJECT = 0;
> RECORD = 1;
> RECORD_PROJECTION = 2;
> ARRAY = 3;
> LIST = 4;
> MAP = 5;
> }
>
> Style style = 1;
> string class_name = 2;
> repeated string field_names = 3;
> }
>
> // A collection of rows
> message Frame {
> uint64 offset = 1;
> bool done = 2;
> repeated Row rows = 3;
> }
>
> // A row is a collection of values
> message Row {
> repeated ColumnValue value = 1;
> }
>
> // Database property, list of functions the database provides for a
> certain operation
> message DatabaseProperty {
> string name = 1;
> repeated string functions = 2;
> }
>
> // Message which encapsulates another message to support a single RPC
> endpoint
> message WireMessage {
> string name = 1;
> bytes wrapped_message = 2;
> }
>
> // A value might be a TypedValue or an Array of TypedValue's
> message ColumnValue {
> repeated TypedValue value = 1; // deprecated, use array_value or
> scalar_value
> repeated TypedValue array_value = 2;
> bool has_array_value = 3; // Is an array value set?
> TypedValue scalar_value = 4;
> }
>
> // Generic wrapper to support any SQL type. Struct-like to work around no
> polymorphism construct.
> message TypedValue {
> Rep type = 1; // The actual type that was serialized in the general
> attribute below
>
> bool bool_value = 2; // boolean
> string string_value = 3; // char/varchar
> sint64 number_value = 4; // var-len encoding lets us shove anything from
> byte to long
> // includes numeric types and date/time types.
> bytes bytes_value = 5; // binary/varbinary
> double double_value = 6; // big numbers
> bool null = 7; // a null object
>
> repeated TypedValue array_value = 8; // The Array
> Rep component_type = 9; // If an Array, the representation for the array
> values
>
> bool implicitly_null = 10; // Differentiate between explicitly null
> (user-set) and implicitly null
> // (un-set by the user)
> }
>
> // The severity of some unexpected outcome to an operation.
> // Protobuf enum values must be unique across all other enums
> enum Severity {
> UNKNOWN_SEVERITY = 0;
> FATAL_SEVERITY = 1;
> ERROR_SEVERITY = 2;
> WARNING_SEVERITY = 3;
> }
>
> // Enumeration corresponding to DatabaseMetaData operations
> enum MetaDataOperation {
> GET_ATTRIBUTES = 0;
> GET_BEST_ROW_IDENTIFIER = 1;
> GET_CATALOGS = 2;
> GET_CLIENT_INFO_PROPERTIES = 3;
> GET_COLUMN_PRIVILEGES = 4;
> GET_COLUMNS = 5;
> GET_CROSS_REFERENCE = 6;
> GET_EXPORTED_KEYS = 7;
> GET_FUNCTION_COLUMNS = 8;
> GET_FUNCTIONS = 9;
> GET_IMPORTED_KEYS = 10;
> GET_INDEX_INFO = 11;
> GET_PRIMARY_KEYS = 12;
> GET_PROCEDURE_COLUMNS = 13;
> GET_PROCEDURES = 14;
> GET_PSEUDO_COLUMNS = 15;
> GET_SCHEMAS = 16;
> GET_SCHEMAS_WITH_ARGS = 17;
> GET_SUPER_TABLES = 18;
> GET_SUPER_TYPES = 19;
> GET_TABLE_PRIVILEGES = 20;
> GET_TABLES = 21;
> GET_TABLE_TYPES = 22;
> GET_TYPE_INFO = 23;
> GET_UDTS = 24;
> GET_VERSION_COLUMNS = 25;
> }
>
> // Represents the breadth of arguments to DatabaseMetaData functions
> message MetaDataOperationArgument {
> enum ArgumentType {
> STRING = 0;
> BOOL = 1;
> INT = 2;
> REPEATED_STRING = 3;
> REPEATED_INT = 4;
> NULL = 5;
> }
>
> string string_value = 1;
> bool bool_value = 2;
> sint32 int_value = 3;
> repeated string string_array_values = 4;
> repeated sint32 int_array_values = 5;
> ArgumentType type = 6;
> }
>
> enum StateType {
> SQL = 0;
> METADATA = 1;
> }
>
> message QueryState {
> StateType type = 1;
> string sql = 2;
> MetaDataOperation op = 3;
> repeated MetaDataOperationArgument args = 4;
> bool has_args = 5;
> bool has_sql = 6;
> bool has_op = 7;
> }
>
> //REQUESTER.PROTO
> syntax = "proto3";
> option cc_generic_services = false;
>
> //option java_package = "org.apache.calcite.avatica.proto";
>
> import "common.proto";
>
> // Request for Meta#getCatalogs()
> message CatalogsRequest {
> string connection_id = 1;
> }
>
> // Request for Meta#getDatabaseProperties()
> message DatabasePropertyRequest {
> string connection_id = 1;
> }
>
> // Request for Meta#getSchemas(String,
> org.apache.calcite.avatica.Meta.Pat)}
> message SchemasRequest {
> string catalog = 1;
> string schema_pattern = 2;
> string connection_id = 3;
> }
>
> // Request for Request for Meta#getTables(String,
> org.apache.calcite.avatica.Meta.Pat,
> // org.apache.calcite.avatica.Meta.Pat, java.util.List)
> message TablesRequest {
> string catalog = 1;
> string schema_pattern = 2;
> string table_name_pattern = 3;
> repeated string type_list = 4;
> bool has_type_list = 6; // Having an empty type_list is distinct from a
> null type_list
> string connection_id = 7;
> }
>
> // Request for Meta#getTableTypes()
> message TableTypesRequest {
> string connection_id = 1;
> }
>
> // Request for Meta#getColumns(String, org.apache.calcite.avatica.Meta.Pat,
> // org.apache.calcite.avatica.Meta.Pat,
> org.apache.calcite.avatica.Meta.Pat).
> message ColumnsRequest {
> string catalog = 1;
> string schema_pattern = 2;
> string table_name_pattern = 3;
> string column_name_pattern = 4;
> string connection_id = 5;
> }
>
> // Request for Meta#getTypeInfo()
> message TypeInfoRequest {
> string connection_id = 1;
> }
>
> // Request for Meta#prepareAndExecute(Meta.StatementHandle, String, long,
> Meta.PrepareCallback)
> message PrepareAndExecuteRequest {
> string connection_id = 1;
> string sql = 2;
> uint64 max_row_count = 3; // Deprecated
> uint32 statement_id = 4;
> int64 max_rows_total = 5; // The maximum number of rows that will be
> allowed for this query
> int32 first_frame_max_size = 6; // The maximum number of rows that will be
> returned in the
> // first Frame returned for this query.
> }
>
> // Request for Meta.prepare(Meta.ConnectionHandle, String, long)
> message PrepareRequest {
> string connection_id = 1;
> string sql = 2;
> uint64 max_row_count = 3; // Deprecated
> int64 max_rows_total = 4; // The maximum number of rows that will be
> allowed for this query
> }
>
> // Request for Meta#fetch(Meta.StatementHandle, List, long, int)
> message FetchRequest {
> string connection_id = 1;
> uint32 statement_id = 2;
> uint64 offset = 3;
> uint32 fetch_max_row_count = 4; // Maximum number of rows to be returned
> in the frame. Negative means no limit. Deprecated!
> int32 frame_max_size = 5;
> }
>
> // Request for Meta#createStatement(Meta.ConnectionHandle)
> message CreateStatementRequest {
> string connection_id = 1;
> }
>
> // Request for Meta#closeStatement(Meta.StatementHandle)
> message CloseStatementRequest {
> string connection_id = 1;
> uint32 statement_id = 2;
> }
>
> // Request for Meta#openConnection(Meta.ConnectionHandle, Map<String,
> String>)
> message OpenConnectionRequest {
> string connection_id = 1;
> map<string, string> info = 2;
> }
>
> // Request for Meta#closeConnection(Meta.ConnectionHandle)
> message CloseConnectionRequest {
> string connection_id = 1;
> }
>
> message ConnectionSyncRequest {
> string connection_id = 1;
> ConnectionProperties conn_props = 2;
> }
>
> // Request for Meta#execute(Meta.ConnectionHandle, list, long)
> message ExecuteRequest {
> StatementHandle statementHandle = 1;
> repeated TypedValue parameter_values = 2;
> uint64 deprecated_first_frame_max_size = 3; // Deprecated, use the signed
> int instead.
> bool has_parameter_values = 4;
> int32 first_frame_max_size = 5; // The maximum number of rows to return in
> the first Frame
> }
>
>
> message SyncResultsRequest {
> string connection_id = 1;
> uint32 statement_id = 2;
> QueryState state = 3;
> uint64 offset = 4;
> }
>
> // Request to invoke a commit on a Connection
> message CommitRequest {
> string connection_id = 1;
> }
>
> // Request to invoke rollback on a Connection
> message RollbackRequest {
> string connection_id = 1;
> }
>
> // Request to prepare and execute a collection of sql statements.
> message PrepareAndExecuteBatchRequest {
> string connection_id = 1;
> uint32 statement_id = 2;
> repeated string sql_commands = 3;
> }
>
> // Each command is a list of TypedValues
> message UpdateBatch {
> repeated TypedValue parameter_values = 1;
> }
>
> message ExecuteBatchRequest {
> string connection_id = 1;
> uint32 statement_id = 2;
> repeated UpdateBatch updates = 3; // A batch of updates is a
> list<list<typevalue>>
> }
>
> //RESPONSE.PROTO
> syntax = "proto3";
>
> //option java_package = "org.apache.calcite.avatica.proto";
>
> import "common.proto";
>
> // Response that contains a result set.
> message ResultSetResponse {
> string connection_id = 1;
> uint32 statement_id = 2;
> bool own_statement = 3;
> Signature signature = 4;
> Frame first_frame = 5;
> uint64 update_count = 6; // -1 for normal result sets, else this response
> contains a dummy result set
> // with no signature nor other data.
> RpcMetadata metadata = 7;
> }
>
> // Response to PrepareAndExecuteRequest
> message ExecuteResponse {
> repeated ResultSetResponse results = 1;
> bool missing_statement = 2; // Did the request fail because of no-cached
> statement
> RpcMetadata metadata = 3;
> }
>
> // Response to PrepareRequest
> message PrepareResponse {
> StatementHandle statement = 1;
> RpcMetadata metadata = 2;
> }
>
> // Response to FetchRequest
> message FetchResponse {
> Frame frame = 1;
> bool missing_statement = 2; // Did the request fail because of no-cached
> statement
> bool missing_results = 3; // Did the request fail because of a
> cached-statement w/o ResultSet
> RpcMetadata metadata = 4;
> }
>
> // Response to CreateStatementRequest
> message CreateStatementResponse {
> string connection_id = 1;
> uint32 statement_id = 2;
> RpcMetadata metadata = 3;
> }
>
> // Response to CloseStatementRequest
> message CloseStatementResponse {
> RpcMetadata metadata = 1;
> }
>
> // Response to OpenConnectionRequest {
> message OpenConnectionResponse {
> RpcMetadata metadata = 1;
> }
>
> // Response to CloseConnectionRequest {
> message CloseConnectionResponse {
> RpcMetadata metadata = 1;
> }
>
> // Response to ConnectionSyncRequest
> message ConnectionSyncResponse {
> ConnectionProperties conn_props = 1;
> RpcMetadata metadata = 2;
> }
>
> message DatabasePropertyElement {
> DatabaseProperty key = 1;
> TypedValue value = 2;
> RpcMetadata metadata = 3;
> }
>
> // Response for Meta#getDatabaseProperties()
> message DatabasePropertyResponse {
> repeated DatabasePropertyElement props = 1;
> RpcMetadata metadata = 2;
> }
>
> // Send contextual information about some error over the wire from the
> server.
> message ErrorResponse {
> repeated string exceptions = 1; // exception stacktraces, many for linked
> exceptions.
> bool has_exceptions = 7; // are there stacktraces contained?
> string error_message = 2; // human readable description
> Severity severity = 3;
> uint32 error_code = 4; // numeric identifier for error
> string sql_state = 5; // five-character standard-defined value
> RpcMetadata metadata = 6;
> }
>
> message SyncResultsResponse {
> bool missing_statement = 1; // Server doesn't have the statement with the
> ID from the request
> bool more_results = 2; // Should the client fetch() to get more results
> RpcMetadata metadata = 3;
> }
>
> // Generic metadata for the server to return with each response.
> message RpcMetadata {
> string server_address = 1; // The host:port of the server
> }
>
> // Response to a commit request
> message CommitResponse {
>
> }
>
> // Response to a rollback request
> message RollbackResponse {
>
> }
>
> // Response to a batch update request
> message ExecuteBatchResponse {
> string connection_id = 1;
> uint32 statement_id = 2;
> repeated uint64 update_counts = 3;
> bool missing_statement = 4; // Did the request fail because of no-cached
> statement
> RpcMetadata metadata = 5;
> }
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/protobuf/98864904-d137-419a-901c-917727bddbe6n%40googlegroups.com
> <https://groups.google.com/d/msgid/protobuf/98864904-d137-419a-901c-917727bddbe6n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/CADqAXr43bP_SaVTAEkK3yOWJrKM5jbrbo4FsF0QMSckFw4Kj7g%40mail.gmail.com.

Reply via email to