This is an automated email from the ASF dual-hosted git repository.

lujiajing pushed a commit to branch support-measure
in repository 
https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git

commit b94cbd54e15603e99831c54b778fe7fd7677b138
Author: Megrez Lu <[email protected]>
AuthorDate: Sun May 1 20:42:03 2022 +0800

    add id query
---
 .../banyandb/v1/client/PairQueryCondition.java     | 23 +++++++++++++++++++---
 .../skywalking/banyandb/v1/client/TagAndValue.java | 20 +++++++++++++++++++
 2 files changed, 40 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
index f2f2b0c..13210eb 100644
--- 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
+++ 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
@@ -159,6 +159,24 @@ public abstract class PairQueryCondition<T> {
         }
     }
 
+    public static class IDQueryCondition extends PairQueryCondition<String> {
+        private IDQueryCondition(String tagName, 
BanyandbModel.Condition.BinaryOp op, String value) {
+            super(op, new TagAndValue.IDTagPair(tagName, value));
+        }
+
+        /**
+         * Build a query condition for {@link String} type
+         * and {@link BanyandbModel.Condition.BinaryOp#BINARY_OP_EQ} as the 
relation
+         *
+         * @param tagName name of the tag
+         * @param val     value of the tag
+         * @return a query that `String == value`
+         */
+        public static PairQueryCondition<String> eq(String tagName, String 
val) {
+            return new IDQueryCondition(tagName, 
BanyandbModel.Condition.BinaryOp.BINARY_OP_EQ, val);
+        }
+    }
+
     /**
      * StringArrayQueryCondition represents `tag(List of String) $op value` 
condition.
      */
@@ -264,9 +282,8 @@ public abstract class PairQueryCondition<T> {
          * Build a query condition for {@link List} of {@link Long} as the type
          * and {@link BanyandbModel.Condition.BinaryOp#BINARY_OP_NOT_HAVING} 
as the relation
          *
-         * @param tagFamilyName family name of the tag
-         * @param tagName       name of the tag
-         * @param val           value of the tag
+         * @param tagName name of the tag
+         * @param val     value of the tag
          * @return a query that `[Long] not having values`
          */
         public static PairQueryCondition<List<Long>> notHaving(String tagName, 
List<Long> val) {
diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java
index 32cd163..e8d8872 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java
@@ -104,6 +104,26 @@ public abstract class TagAndValue<T> extends Value<T> {
         return new StringTagPair(tagName, value);
     }
 
+    @EqualsAndHashCode(callSuper = true)
+    public static class IDTagPair extends TagAndValue<String> {
+        IDTagPair(final String tagName, final String value) {
+            super(tagName, value);
+        }
+
+        @Override
+        protected BanyandbModel.TagValue buildTypedTagValue() {
+            return BanyandbModel.TagValue.newBuilder()
+                    .setId(BanyandbModel.ID
+                            .newBuilder()
+                            .setValue(value).build())
+                    .build();
+        }
+    }
+
+    public static TagAndValue<String> newIDTag(final String tagName, final 
String value) {
+        return new IDTagPair(tagName, value);
+    }
+
     @EqualsAndHashCode(callSuper = true)
     public static class StringArrayTagPair extends TagAndValue<List<String>> {
         StringArrayTagPair(final String tagName, final List<String> value) {

Reply via email to