Fix N1QLExpression keys.
Fix syntax of N1QLExpression keys. Closes #1064. Co-authored-by: mikereiche <michael.reiche@couchbase.com>
This commit is contained in:
@@ -262,13 +262,14 @@ public class N1QLExpression {
|
||||
public N1QLExpression keys(Iterable<? extends Serializable> ids) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Iterator<?> it = ids.iterator();
|
||||
// TODO: really? Lets do better.
|
||||
sb.append("[");
|
||||
while (it.hasNext()) {
|
||||
sb.append(i(it.next().toString()));
|
||||
sb.append(s(it.next().toString()));
|
||||
if (it.hasNext()) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
sb.append("]");
|
||||
return infix("USE KEYS", toString(), sb.toString());
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.couchbase.client.java.json.JsonArray;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author Mauro Monti
|
||||
*/
|
||||
@@ -251,6 +253,15 @@ class QueryCriteriaTests {
|
||||
assertEquals("not( (`name`) )", c.export());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testKeys() {
|
||||
N1QLExpression expression = N1QLExpression.x("");
|
||||
assertEquals(" USE KEYS [\"a\",\"b\"]", expression.keys(Arrays.asList("a", "b")).toString());
|
||||
assertEquals(" USE KEYS [\"a\"]", expression.keys(Arrays.asList("a")).toString());
|
||||
assertEquals(" USE KEYS []", expression.keys(Arrays.asList()).toString());
|
||||
}
|
||||
|
||||
|
||||
@Test // https://github.com/spring-projects/spring-data-couchbase/issues/1066
|
||||
void testCriteriaCorrectlyEscapedWhenUsingMetaOnLHS() {
|
||||
final String bucketName = "sample-bucket";
|
||||
|
||||
Reference in New Issue
Block a user