sqlc-dev/sqlc

Expose Comment Metadata to plugin Types.

Smithx10 opened this issue · 3 comments

What do you want to change?

Currently, I am in the process of replacing Ent with SQLC. Our workflow involves writing our database schema, generate functions that map to sql queries, which sqlc accomplishes wonderfully, and then generate .proto messages for use in our gRPC APi. Typically we import them to our request_response.proto. In Ent this was done via https://github.com/ent/contrib/tree/master/entproto

Comment annotations in line with the schema will allow plugin authors apply logic to for example:

  • not generate messages for a user_groups table. plugin.Table annotation
  • annotate a .proto field number. plugin.Column

The functions for the compiler to collect the comments from the Schema files looks like it could be altered to accomplish this. I don't believe this will have any negative effects to the project.

What database engines need to be changed?

No response

What programming language backends need to be changed?

No response

Not sure if we will be able to easily get Column level comments from the parser. pganalyze/libpg_query#103 Looks like they added comments, but no one has caught up to it.

I've created a quick first pass PoC to generate messages from sqlc:

https://github.com/Smithx10/sqlc-gen-proto

Would like to have #3596 , When generating .proto files the Primary key should always be field 0.