Comments (3)
IMHO, there are two aspects to this.
First is to DRY-up the SQL so the select expressions don't need to be repeated (and additionally kept consistent across queries). This obviously has implications, a big one being that the queries are no longer real.
Second is the ability to share the return types on the generated Go code side. By this I mean that if I have two queries with the same select expression, only generate one shared return type for them. Using some sort of hashing of the select expression and table name should be able to allow this independent of the first concern and would be a great improvement in itself. The question of what/how to name this type is not obvious though.
from sqlc.
An example of what this looks like for us are queries with computed columns. One real example is where a table has many columns and a single one with a prefix appended to it:
const columns = `
concat('prefix_', id) as "id",
type,
account_id,
created_at,
description,
metadata,
...
from sqlc.
I haven't made any progress on this design, so I'm going to close out this issue for now.
from sqlc.
Related Issues (20)
- Using domain to create custom numeric data type leads to interface{} HOT 1
- Ambiguous column checking creates false positives
- Cannot pass empty values for sqlc.slice
- Generated query will return row struct instead of table model struct selecting columns out of defined order.
- Generate fails for UPDATE with JOIN
- The sum of lengths becomes a float instead of an int. HOT 1
- The input for the comparison to the sum of length should be of type int.
- mysql copyfrom method not included in generated querier interface
- Not recognizing sqlc.arg after ON CONFLICT.
- getting-started-sqlite.md - wrong return value of queries.CreateAuthor
- 1.26.0 crashes on subquery without alias
- query execlastid for pgx/v5 is silently ignored
- Cannot use option "initialisms" from the documentation HOT 1
- Generate fails for UPDATE ... FROM (...) with subquery HOT 1
- Query "SELECT * FROM unnest(..)" has wrong generated code
- Determine which indices are needed for efficient execution of a query HOT 5
- Interpret schema migrations numerically
- Temp table created using schema.sql is not insertable. HOT 3
- Incorrect code gen without
- Basic usage - relation "x" does not exist HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sqlc.