Davin Chia created THRIFT-4253:
----------------------------------

             Summary: Go generator assigns strings to field in const instead of 
pointers.
                 Key: THRIFT-4253
                 URL: https://issues.apache.org/jira/browse/THRIFT-4253
             Project: Thrift
          Issue Type: Bug
          Components: Go - Compiler
    Affects Versions: 0.10.0
         Environment: Generated using docker-thrift.
            Reporter: Davin Chia


Given the follow thrift definition:
{code:java}
struct custom {
  1: required string field_a;
  2: optional string field_b;
}
{code}

with the following constant map defined in the same file:

{code:java}
const map<i32, custom> custom_map = {
  ...,
  42 : { 'field_a':'www.testa.com', 'field_b':'www.testb.com'},
  ...,
}
{code}

Thrift generates the following go struct in the main {code:java}x.go{code} file:
{code:java}
type Custom struct {
  FieldA string `thrift:"field_a,required" db:"field_a" json:"field_a"`
  FieldB *string `thrift:"field_b,2" db:"field_b" json:"field_b,omitempty"`
}
{code}
with the corresponding assignments in the {code:java} X-consts.go {code} file:

{code:java}
CUSTOM_MAP = map[int]*Custom {
  ...,
  42: &Custom {FieldA: "www.testa.com", FieldB: "www.testb.com"},
  ...,
}
{code}

I assume field_b's pointer type is to allow for null values as per the 
optional. The generator should be assigning pointers instead of strings. 

I'm not sure how much effort it would take to fix this. I am encountering this 
problem at work right and would be very happy to starting working on this with 
some guidance from experts around here. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to