Use complex Record IDs for IDs in foreign tables with GROUP BY clauses
This commit is contained in:
parent
66b182ec7d
commit
e13a4c7742
3 changed files with 12 additions and 9 deletions
|
@ -69,10 +69,8 @@ impl<'a> Document<'a> {
|
|||
group.iter().map(|v| v.compute(ctx, opt, txn, Some(&self.initial))),
|
||||
)
|
||||
.await?
|
||||
.iter()
|
||||
.map(|v| format!("{}", v))
|
||||
.into_iter()
|
||||
.collect::<Vec<_>>()
|
||||
.join(" ")
|
||||
.into(),
|
||||
};
|
||||
// Set the current record id
|
||||
|
@ -82,10 +80,8 @@ impl<'a> Document<'a> {
|
|||
group.iter().map(|v| v.compute(ctx, opt, txn, Some(&self.current))),
|
||||
)
|
||||
.await?
|
||||
.iter()
|
||||
.map(|v| format!("{}", v))
|
||||
.into_iter()
|
||||
.collect::<Vec<_>>()
|
||||
.join(" ")
|
||||
.into(),
|
||||
};
|
||||
// Check if a WHERE clause is specified
|
||||
|
|
|
@ -7,6 +7,7 @@ use crate::sql::number::integer;
|
|||
use crate::sql::object::{object, Object};
|
||||
use crate::sql::strand::Strand;
|
||||
use crate::sql::uuid::Uuid;
|
||||
use crate::sql::value::Value;
|
||||
use nanoid::nanoid;
|
||||
use nom::branch::alt;
|
||||
use nom::combinator::map;
|
||||
|
@ -75,6 +76,12 @@ impl From<&str> for Id {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<Vec<Value>> for Id {
|
||||
fn from(v: Vec<Value>) -> Self {
|
||||
Id::Array(v.into())
|
||||
}
|
||||
}
|
||||
|
||||
impl Id {
|
||||
pub fn rand() -> Id {
|
||||
Id::String(nanoid!(20, &ID_CHARS))
|
||||
|
|
|
@ -59,7 +59,7 @@ async fn define_foreign_table() -> Result<(), Error> {
|
|||
age: 39,
|
||||
average: 70,
|
||||
count: 1,
|
||||
id: 'person_by_age:39',
|
||||
id: person_by_age:[39],
|
||||
total: 39
|
||||
}
|
||||
]",
|
||||
|
@ -77,7 +77,7 @@ async fn define_foreign_table() -> Result<(), Error> {
|
|||
age: 39,
|
||||
average: 75,
|
||||
count: 2,
|
||||
id: 'person_by_age:39',
|
||||
id: person_by_age:[39],
|
||||
total: 78
|
||||
}
|
||||
]",
|
||||
|
@ -95,7 +95,7 @@ async fn define_foreign_table() -> Result<(), Error> {
|
|||
age: 39,
|
||||
average: 80,
|
||||
count: 2,
|
||||
id: 'person_by_age:39',
|
||||
id: person_by_age:[39],
|
||||
total: 78
|
||||
}
|
||||
]",
|
||||
|
|
Loading…
Reference in a new issue