Skip to content

Commit 08d18aa

Browse files
committed
proto: add invalid JSON to JSONBMarshalToMessage error message
This change makes debugging easier by including the invalid JSON in that caused JSONBMarshalToMessage to fail. Release note: None
1 parent 509f8c8 commit 08d18aa

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

pkg/sql/logictest/testdata/logic_test/builtin_function

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2989,7 +2989,7 @@ select crdb_internal.json_to_pb('cockroach.sql.sqlbase.Descriptor', crdb_interna
29892989
----
29902990
true
29912991

2992-
query error pq: crdb_internal.json_to_pb\(\): invalid proto JSON: unmarshaling json to cockroach.sql.sqlbase.Descriptor: unknown field "__redacted__" in descpb.Descriptor
2992+
query error pq: crdb_internal.json_to_pb\(\): invalid proto JSON: unmarshaling to cockroach.sql.sqlbase.Descriptor json: .+ unknown field "__redacted__" in descpb.Descriptor
29932993
select crdb_internal.json_to_pb('cockroach.sql.sqlbase.Descriptor', crdb_internal.pb_to_json('cockroach.sql.sqlbase.Descriptor', descriptor, true, true)) = descriptor from system.descriptor where id = 1
29942994

29952995
subtest regexp_split

pkg/sql/protoreflect/utils.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,9 @@ func MessageToJSON(msg protoutil.Message, flags FmtFlags) (jsonb.JSON, error) {
123123
// Returns serialized byte representation of the protocol message.
124124
func JSONBMarshalToMessage(input jsonb.JSON, target protoutil.Message) ([]byte, error) {
125125
json := &jsonpb.Unmarshaler{}
126-
if err := json.Unmarshal(strings.NewReader(input.String()), target); err != nil {
127-
return nil, errors.Wrapf(err, "unmarshaling json to %s", proto.MessageName(target))
126+
jsonString := input.String()
127+
if err := json.Unmarshal(strings.NewReader(jsonString), target); err != nil {
128+
return nil, errors.Wrapf(err, "unmarshaling to %s json: %s", proto.MessageName(target), jsonString)
128129
}
129130
data, err := protoutil.Marshal(target)
130131
if err != nil {

0 commit comments

Comments
 (0)