From bd6287e413211958bac9ba40b64bfaf4931bdfdd Mon Sep 17 00:00:00 2001 From: Weiyu Xue Date: Thu, 14 Nov 2019 11:30:18 -0800 Subject: [PATCH] add default pg tag --- protoc-gen-gogo/generator/generator.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/protoc-gen-gogo/generator/generator.go b/protoc-gen-gogo/generator/generator.go index ab07ed61ef..5dc709da88 100644 --- a/protoc-gen-gogo/generator/generator.go +++ b/protoc-gen-gogo/generator/generator.go @@ -2833,6 +2833,7 @@ func (g *Generator) generateMessage(message *Descriptor) { typename, wiretype := g.GoType(message, field) jsonName := *field.Name + // json tag jsonTag := jsonName + ",omitempty" repeatedNativeType := (!field.IsMessage() && !gogoproto.IsCustomType(field) && field.IsRepeated()) if !gogoproto.IsNullable(field) && !repeatedNativeType { @@ -2842,12 +2843,23 @@ func (g *Generator) generateMessage(message *Descriptor) { if gogoJsonTag != nil { jsonTag = *gogoJsonTag } + // pg tag + pgTag := jsonName + repeatedNativeType := (!field.IsMessage() && !gogoproto.IsCustomType(field) && field.IsRepeated()) + if !gogoproto.IsNullable(field) && !repeatedNativeType { + pgTag = jsonName + } + gogoJsonTag := gogoproto.GetJsonTag(field) + if gogoJsonTag != nil { + pgTag = *gogoJsonTag + } + // more tags gogoMoreTags := gogoproto.GetMoreTags(field) moreTags := "" if gogoMoreTags != nil { moreTags = " " + *gogoMoreTags } - tag := fmt.Sprintf("protobuf:%s json:%q%s", g.goTag(message, field, wiretype), jsonTag, moreTags) + tag := fmt.Sprintf("protobuf:%s json:%q pg:%q%s", g.goTag(message, field, wiretype), jsonTag, pgTag, moreTags) if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE && gogoproto.IsEmbed(field) { fieldName = "" }