-
Notifications
You must be signed in to change notification settings - Fork 273
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: sql.join #905
base: master
Are you sure you want to change the base?
feat: sql.join #905
Conversation
I also really want to enable currying to allow things like const and = sql.join(sql` and `)
and(sql`...`, ...fragments) which could be as simple as - function join(sep, xs) {
+ function join(sep, ...xs) {
+ if (!xs) return join.bind(null, sep)
return xs.flatMap((x, i) => { but this would probably also need further bike-shedding I also wonder if the API could be further improved to simply allow const and = sql.join` and `
const params = and(f1, f2, f3)
// would work the same as
const params = sql.join` and `(f1, f2, f3) I'm not sure that postgres.js goals are to be a whole query builder, but it seems like we can add a lot of expressivity with a few tweaks to a simple feature but currying is likely to increase the complexity of the TS types and perhaps make the API more complex and difficult to document |
neat feature, hope this makes it in +rep |
I agree though that it should not be called "join" to avoid confusion with SQL's JOIN statements. In my opinion, "sql.concat" is a better choice. |
solid addition 👍 |
I've gone back and forth on this in my head, and while there's definitely potential for ambiguity, It would be even more surprising behavior to me to have something called So all this is to say, semantically, I think join is the best name for this feature |
closes #807, to add
sql.join
:i'm not 100% sure the types are right, and I couldn't get the tests to run, so those probably need some work