Hi To try and minimise this sort of thing I installed a brand new virtual box and compiled it on there. Installing only what I need. The errors changed slightly so I think you are right about that.
However in an attempt to solve the issue I got 3.13.0 and this error was actually generated from that. Any ideas I can try or more debug info I can give you? Thanks On Tuesday, August 25, 2020 at 12:25:35 AM UTC+2 [email protected] wrote: > 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/0233414f-3b95-4d79-8001-cbdc2724e630n%40googlegroups.com.
