Comments (3)
Issues in the language that need to be resolved or worked around:
- Overlapping impls of marker traits. Want to be able to define a generic impl of
SelectableColumn
for the various join sources, for any type that is a selectable column of either the left or right side. Invalid today since there would be overlap in the case that the left and right are the same, but this doesn't matter because there are no methods for ambiguity anway. -
Orphan impls of tuples. ForQueriable
to work with associations, we need to be able to implement it for a tuple with no types that we control. If we cannot resolve this in the language, it looks like it's possible to work around it by adding an unused type parameter that we can pass in w/ something we explicitly control.- This has not been resolved in the language, but as of 555993e I believe we have an acceptable workaround.
from diesel.
I need to revisit this soon. Most things which are unchecked are going to be 0.2 or later, not 0.1. If anyone wants to help me out and make a new issue moving things over, I would ❤️ you forever
from diesel.
Just glancing over this here's the status of unchecked items at the time of writing:
- determining that FK constraints are violated will be 0.2 or later (probably 0.2, I really like that idea).
- proper representation of aggregate rules is not possible in the language right now. It requires rust-lang/rust#29864 or specialization with lattice impls. This will be top of the priority list once it's possible, and is a blocker for 1.0 (if the language doesn't support this in time, the plan is to remove tracking of aggregate rules entirely)
- associations are 0.3, maybe not going to be a thing at all. I'm not sure there's value in actually having APIs in the ORM for this vs just saying the join you want, and than doing
.group_by(|r| r.0)
(group_by
would have to come fromiter_utils
of course). I'm open to hearing use cases for supporting this in the library itself. - JSON and other indexed query operators are unknown at this point, as I don't even know what support for those types should look like. The index operator will almost certainly require specialization, as I'll need to do something like
impl<T> AsExpression<T> for Expression<SqlType=Anything>
IS NULL
I'll add tomorrow- "CODEGEN: type safe api for arbitrary SQL" -- so in the past I had this idea where we can establish a database connection at compile time, stick the sql fragment behind
SELECT * FROM table WHERE
, which basically would let us type check it. But honestly, we have ended up with a really fucking expressive query builder. I don't think we need this. I'm open to feedback.
from diesel.
Related Issues (20)
- Can't use `into_boxed` after union HOT 1
- table have more than one primary_key can not use on_conflict(diesel::dsl::DuplicatedKeys) HOT 7
- No intellisense when using query dsl HOT 6
- `overflow evaluating the requirement` when writing generic diesel code HOT 1
- Pagination guide doesn't work on entity represented by joined tables HOT 2
- losing type information when adding WHERE (filter) clause to query HOT 2
- Diesel not generate joinable when there are 2 foreign keys reference same field HOT 1
- `#[derive(AsExpression, FromSqlRow)]` won't compile when generic bounds have a default implementation. HOT 2
- Serials keep incrementing despite begin_test_transaction HOT 3
- Source code for diesel_derives 2.1.2 not available on GitHub HOT 1
- Cannot use multiple table_name for Insertable when also deriving Queryable HOT 1
- SSL_MODE option not behaving correctly with Mysql 5.7 HOT 3
- Derive Queryable deserialize_as attribute doesn't support tuples HOT 4
- msvc+rust1.75 compile error HOT 4
- `Using unsupported buffer type: 253 (parameter: 1)` when trying to use the CLI HOT 14
- double free or corruption issue when establishing connection HOT 18
- Unable to group by date HOT 1
- Regression: LIKE queries on nullable fields in MySQL HOT 5
- Windows CI is failing to install postgres HOT 2
- Can not use .eq(Decimal_field + xxx) HOT 4
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 diesel.