Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for Postgres multi dimensional arrays in Go #1651

Closed
wants to merge 28 commits into from
Closed

feat: add support for Postgres multi dimensional arrays in Go #1651

wants to merge 28 commits into from

Conversation

colli173
Copy link
Contributor

This PR adds support for generating model fields from multi-dimensional postgresql array columns. The approach here is to pass around an additional column attribute array_bounds representing the dimensions of the postgres array column. When generating code, the array_bounds is checked along is_array to determine the dimensions of the resulting struct field. Would be happy to hear alternative approaches or solutions here as well. More info: Postgres Arrays

fixes issue: #1494

@kyleconroy
Copy link
Collaborator

The newest version of pgx/v5 has a generic Array type that we'll start to use as part of #1823.

We should only change the multi-dimension support for lib/pq.

Copy link
Collaborator

@kyleconroy kyleconroy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a solid improvement over our current multi-dimension support. The code generation looks correct, but I do want to verify that this works against a running PostgreSQL instance before merging.

Can you fix the merge conflicts? Happy to merge after that.

@colli173
Copy link
Contributor Author

colli173 commented Sep 2, 2022

We should only change the multi-dimension support for lib/pq.

Thanks for taking a look. Could you clarify the ask here? Is there an aspect of this that should change for the lib/pq package?

@colli173
Copy link
Contributor Author

colli173 commented Mar 7, 2023

@kyleconroy soft ping for another review when you have a chance.

@kyleconroy kyleconroy closed this Jun 7, 2023
kyleconroy pushed a commit that referenced this pull request Jul 30, 2023
…#2338)

This PR adds support for generating model fields from multi-dimensional postgresql array columns. The approach here is to pass around an additional column attribute array_bounds representing the dimensions of the postgres array column. When generating code, the array_bounds is checked along is_array to determine the dimensions of the resulting struct field. Would be happy to hear alternative approaches or solutions here as well.

https://www.postgresql.org/docs/14/arrays.html

Fixes issue: #1494
Replaces #1651 #2308 #2309
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants