Ensure LIMIT BY clause does not cause query to fail
This commit is contained in:
parent
29e500017d
commit
90dfa9f49f
3 changed files with 27 additions and 9 deletions
|
@ -78,7 +78,9 @@ impl Iterable {
|
||||||
// Loop until no more keys
|
// Loop until no more keys
|
||||||
loop {
|
loop {
|
||||||
// Check if the context is finished
|
// Check if the context is finished
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Get the next 1000 key-value entries
|
// Get the next 1000 key-value entries
|
||||||
let res = match nxt {
|
let res = match nxt {
|
||||||
None => {
|
None => {
|
||||||
|
@ -104,7 +106,9 @@ impl Iterable {
|
||||||
// Loop over results
|
// Loop over results
|
||||||
for (i, (k, v)) in res.into_iter().enumerate() {
|
for (i, (k, v)) in res.into_iter().enumerate() {
|
||||||
// Check the context
|
// Check the context
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Ready the next
|
// Ready the next
|
||||||
if n == i + 1 {
|
if n == i + 1 {
|
||||||
nxt = Some(k.clone());
|
nxt = Some(k.clone());
|
||||||
|
@ -199,7 +203,9 @@ impl Iterable {
|
||||||
// Loop until no more keys
|
// Loop until no more keys
|
||||||
loop {
|
loop {
|
||||||
// Check if the context is finished
|
// Check if the context is finished
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Get the next 1000 key-value entries
|
// Get the next 1000 key-value entries
|
||||||
let res = match nxt {
|
let res = match nxt {
|
||||||
None => {
|
None => {
|
||||||
|
@ -225,7 +231,9 @@ impl Iterable {
|
||||||
// Loop over results
|
// Loop over results
|
||||||
for (i, (k, _)) in res.into_iter().enumerate() {
|
for (i, (k, _)) in res.into_iter().enumerate() {
|
||||||
// Check the context
|
// Check the context
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Ready the next
|
// Ready the next
|
||||||
if n == i + 1 {
|
if n == i + 1 {
|
||||||
nxt = Some(k.clone());
|
nxt = Some(k.clone());
|
||||||
|
|
|
@ -78,7 +78,9 @@ impl Iterable {
|
||||||
// Loop until no more keys
|
// Loop until no more keys
|
||||||
loop {
|
loop {
|
||||||
// Check if the context is finished
|
// Check if the context is finished
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Get the next 1000 key-value entries
|
// Get the next 1000 key-value entries
|
||||||
let res = match nxt {
|
let res = match nxt {
|
||||||
None => {
|
None => {
|
||||||
|
@ -104,7 +106,9 @@ impl Iterable {
|
||||||
// Loop over results
|
// Loop over results
|
||||||
for (i, (k, v)) in res.into_iter().enumerate() {
|
for (i, (k, v)) in res.into_iter().enumerate() {
|
||||||
// Check the context
|
// Check the context
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Ready the next
|
// Ready the next
|
||||||
if n == i + 1 {
|
if n == i + 1 {
|
||||||
nxt = Some(k.clone());
|
nxt = Some(k.clone());
|
||||||
|
@ -199,7 +203,9 @@ impl Iterable {
|
||||||
// Loop until no more keys
|
// Loop until no more keys
|
||||||
loop {
|
loop {
|
||||||
// Check if the context is finished
|
// Check if the context is finished
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Get the next 1000 key-value entries
|
// Get the next 1000 key-value entries
|
||||||
let res = match nxt {
|
let res = match nxt {
|
||||||
None => {
|
None => {
|
||||||
|
@ -225,7 +231,9 @@ impl Iterable {
|
||||||
// Loop over results
|
// Loop over results
|
||||||
for (i, (k, _)) in res.into_iter().enumerate() {
|
for (i, (k, _)) in res.into_iter().enumerate() {
|
||||||
// Check the context
|
// Check the context
|
||||||
ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Ready the next
|
// Ready the next
|
||||||
if n == i + 1 {
|
if n == i + 1 {
|
||||||
nxt = Some(k.clone());
|
nxt = Some(k.clone());
|
||||||
|
|
|
@ -12,7 +12,9 @@ pub async fn run(
|
||||||
doc: Option<&Value>,
|
doc: Option<&Value>,
|
||||||
) -> Result<Value, Error> {
|
) -> Result<Value, Error> {
|
||||||
// Check the context
|
// Check the context
|
||||||
let _ = ctx.check()?;
|
if ctx.is_done() {
|
||||||
|
return Ok(Value::None);
|
||||||
|
}
|
||||||
// Create a new agent
|
// Create a new agent
|
||||||
let exe = Executor::default();
|
let exe = Executor::default();
|
||||||
// Create an JavaScript context
|
// Create an JavaScript context
|
||||||
|
|
Loading…
Reference in a new issue