I'd say that the definition written in protobuf is completely compatible with the query results executed by C programs, but is it not? I founded some difference, for example,
Are these intended to be like this, I mean, does it not need to be fixed for some reasons what I couldn't notice? Or needs for fixed? If it needs to be fixed, we might as well wanna generate .proto file from C sources themselves instead of Ruby script and JSON to keep solid data type across languages.
I'd say that the definition written in protobuf is completely compatible with the query results executed by C programs, but is it not? I founded some difference, for example,
String
is defined as shown below.But actually,
pg_query_parse
returns{ String: { str: "id" } }
like this. https://github.com/pganalyze/libpg_query/blob/009f19d7f867a699e1beab5fd545fbc07ad35647/protobuf/pg_query.proto#L275-L278A_Const
doesn't have a member namedval
though,pg_query_parse
returnsval
as its member, README also says same.https://github.com/pganalyze/libpg_query/blob/009f19d7f867a699e1beab5fd545fbc07ad35647/protobuf/pg_query.proto#L300-L311
Are these intended to be like this, I mean, does it not need to be fixed for some reasons what I couldn't notice? Or needs for fixed? If it needs to be fixed, we might as well wanna generate
.proto
file from C sources themselves instead of Ruby script and JSON to keep solid data type across languages.