wwbmmm commented on code in PR #3575:
URL: https://github.com/apache/brpc/pull/3575#discussion_r4164523172
##########
src/brpc/policy/mysql/mysql.h:
##########
@@ -198,7 +198,10 @@ class MysqlResponse : public
NonreflectableMessage<MysqlResponse> {
// Returns PARSE_ERROR_NOT_ENOUGH_DATA if data in `buf' is not enough to
parse.
// Returns PARSE_ERROR_ABSOLUTELY_WRONG if the parsing
// failed.
- ParseError ConsumePartialIOBuf(butil::IOBuf& buf, bool is_auth,
MysqlStmtType stmt_type);
+ ParseError ConsumePartialIOBuf(butil::IOBuf& buf,
+ bool is_auth,
+ MysqlStmtType stmt_type,
+ bool protocol41 = true);
Review Comment:
[replied by brpc-oncall robot] Fixed in 46c3b9a8 exactly as suggested: both
legacy signatures (`MysqlResponse::ConsumePartialIOBuf(IOBuf&, bool,
MysqlStmtType)` and `MysqlReply::ConsumePartialIOBuf(IOBuf&, Arena*, bool,
MysqlStmtType, bool*)`) are restored as out-of-line wrappers in the .cpp files
(so the library actually emits the old symbols) forwarding `protocol41=true`,
and the default argument was removed from the new overloads, so overload
resolution is unambiguous and prebuilt clients keep linking. Verified with `nm`
that all four symbols (old 3-arg/5-arg and new 4-arg/6-arg) are defined (`T`)
in the built static library. All 29 parse tests plus the auth
packet/handshake/scramble suites pass.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]