Comments (4)
Doesn't bother me much, as you'd expect from the fact that I didn't change them :). There are also two practical issues with changing them:
- Forcing everyone to rewrite all of their queries, or at the very least changing their imports to a compatibility module.
- Finding out a new set of operators that look good and don't clash with anything.
from esqueleto.
@meteficha I know these are costly issues but I'd rather do it sooner than later to avoid the problem growing. The number of Haskellers and Haskell projects out there is growing and will be growing faster over time.
I am happy to help with both issues if you're willing to commit to a release that deals with this.
My suggestion:
First release of the new names/operators
Database.Esqueleto.Functions and Database.Esqueleto.Operators are added, there's a single module that exports both. These are exclusively the new, non-conflicting names. I'd like it if all operators had an ordinary named prefix function that does the same thing as well, so that the operators are only nice syntax, not obligatory.
Database.Esqueleto stays the same.
Bandaid gets ripped off, next major release
Functions and Operators stay as they are, but Database.Esqueleto now re-exports those names.
How does this sound to you?
from esqueleto.
@meteficha could I get a thumbs up/down on this please? If there's an alternative approach you'd be open to, I'd like to hear that as well but this remains a day-to-day albatross at work.
from esqueleto.
I'm really not a fan of having two names for the same things. That will make it confusing to read and write. Furthermore, esqueleto will appear less like SQL. So the Functions
module is not going to happen.
Regarding the operators, I'm at a loss about a set of operators that look nice and don't conflict with the plethora of libraries that already exist. I'm not looking forward to searching for this set myself. The decision about whether to transition esqueleto to a new set is dependent on what the new set is. I can't commit to making a change I know almost nothing about.
from esqueleto.
Related Issues (20)
- info: helper functions and common queries HOT 2
- `in_` and `notIn` on multiple columns HOT 1
- `toBaseId` for Maybes HOT 2
- Trouble with inner select with limit
- Support for persistent 2.5 HOT 11
- Add "row_number" function
- mixing up order of orderBy clause passes typechecking, produces bad sql
- Convert joins into nested tuples HOT 10
- Right place to ask questions?
- use deleteCascade/deleteCascadeWhere with esqueleto?
- sum_ and friends can cause runtime type errors
- inner join with derived table
- Is it possible to treat a primary key as an Int64? HOT 1
- Adding `OVER()` to a `SELECT` clause
- countRows does not work with distinct HOT 1
- Not working with newer versions (>2.8) of persistent HOT 1
- Put a message pointing to this lib's new home in the README
- Expose SqlSelect so it can be used in type signatures HOT 1
- `valkey` not working: `No instance for (ToBackendKey SqlBackend Product)` 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 esqueleto.