Comments (1)
We do face the same issues. Currently, our work around for this is to use #[serde(alias = 'some_unique_name')]
for each of the fields of the struct. So considering your use case, it will look something like:
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize, Default)]
pub struct User {
#[serde(alias='user_table_id')]
pub id: i32,
#[serde(alias='user_table_date')]
pub date: DateTime<Utc>,
#[serde(alias='user_table_group_id')]
pub group_id: i32,
}
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize, Default)]
pub struct Group {
#[serde(alias='group_table_id')]
pub id: i32,
#[serde(alias='group_table_name')]
pub name: String,
}
And then modify your query to include those names, like so:
let rows = db_conn
.query(
"SELECT users.id as user_table_id,
users.date as user_table_date,
users.group_id as user_table_group_id,
groups.id as group_table_id,
groups.name as group_table_name
FROM users
JOIN groups ON users.group_id = groups.id
WHERE users.user_id = ?1 LIMIT ?2
",
params![user_id.clone(), 10],
)
.await?;
while let Some(row) = rows.next().await? {
let user = from_row<User>(&row)?;
let group = from_row<Group>(&row)?;
}
Although this seems like a lot of work, but since the query is mostly generated programmatically, this is a fair bit easier to work with. But I totally agree with you that if there was some solution to this directly from libsql, it would be a huge help.
from libsql.
Related Issues (20)
- Bulk insertion, errors and unclear limits HOT 1
- Proposal: Adding Real-Time Feature (CDC)
- Concurrent transactions on embedded replica connections fail HOT 4
- add a version of .restore to sqld
- Insert statements within remote replica transactions fail with transaction timed-out HOT 12
- Bottomless replication requires synchronous call to S3 HOT 1
- Publish libsql-server to crates.io
- ALTER TABLE ALTER COLUMN on tables with indexes do not work
- Support Remote Connection Behind HTTP Proxy?
- Docs for `Builder` should include example on how to construct an in-memory DB
- Snapshot can be unavailable for seconds for embedded replica client
- Migration is invalid related panic HOT 1
- Running the documented Docker Compose build throws an error HOT 7
- Endpoint for listing all namespaces
- Sync can never finish
- migration error HOT 7
- SQLITE_ROW shouldn't be an error as per docs HOT 1
- 0.24.7 release was not completed HOT 2
- column names differ from what sqlite would produce, confusing clients.
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 libsql.