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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new fe1a4c41367 [Feature](IP) support ipv4/ipv6 with inverted index and 
conjuncts for query (#35734)
fe1a4c41367 is described below

commit fe1a4c41367507efdebacef867d634728a169eff
Author: amory <[email protected]>
AuthorDate: Mon Jun 3 20:49:17 2024 +0800

    [Feature](IP) support ipv4/ipv6 with inverted index and conjuncts for query 
(#35734)
    
    support data type ipv4/ipv6 with inverted index
    and then we can query like "> or < or >= or <= or in/not in " this
    conjuncts expr for ip with inverted index speeding up
---
 be/src/exec/olap_common.h                          |  15 +-
 be/src/olap/olap_common.h                          |   4 +-
 .../rowset/segment_v2/inverted_index_writer.cpp    |   2 +
 be/src/olap/utils.h                                |   4 +-
 be/src/pipeline/exec/scan_operator.cpp             |   5 +-
 be/src/vec/exec/scan/vscan_node.cpp                |   5 +-
 .../java/org/apache/doris/analysis/IndexDef.java   |   2 +-
 .../trees/plans/commands/info/IndexDefinition.java |   2 +-
 .../org/apache/doris/nereids/types/DataType.java   |   4 +
 .../datatype_p0/ip/test_ip_in_inverted_index.out   | 866 +++++++++++++++++++++
 .../ip/test_ip_in_inverted_index.groovy            | 124 +++
 11 files changed, 1020 insertions(+), 13 deletions(-)

diff --git a/be/src/exec/olap_common.h b/be/src/exec/olap_common.h
index 46983c5390e..9c64a16b78a 100644
--- a/be/src/exec/olap_common.h
+++ b/be/src/exec/olap_common.h
@@ -519,13 +519,14 @@ private:
 
 using ColumnValueRangeType = std::variant<
         ColumnValueRange<TYPE_TINYINT>, ColumnValueRange<TYPE_SMALLINT>, 
ColumnValueRange<TYPE_INT>,
-        ColumnValueRange<TYPE_BIGINT>, ColumnValueRange<TYPE_LARGEINT>, 
ColumnValueRange<TYPE_CHAR>,
-        ColumnValueRange<TYPE_VARCHAR>, ColumnValueRange<TYPE_STRING>, 
ColumnValueRange<TYPE_DATE>,
-        ColumnValueRange<TYPE_DATEV2>, ColumnValueRange<TYPE_DATETIME>,
-        ColumnValueRange<TYPE_DATETIMEV2>, ColumnValueRange<TYPE_DECIMALV2>,
-        ColumnValueRange<TYPE_BOOLEAN>, ColumnValueRange<TYPE_HLL>,
-        ColumnValueRange<TYPE_DECIMAL32>, ColumnValueRange<TYPE_DECIMAL64>,
-        ColumnValueRange<TYPE_DECIMAL128I>, ColumnValueRange<TYPE_DECIMAL256>>;
+        ColumnValueRange<TYPE_BIGINT>, ColumnValueRange<TYPE_LARGEINT>, 
ColumnValueRange<TYPE_IPV4>,
+        ColumnValueRange<TYPE_IPV6>, ColumnValueRange<TYPE_CHAR>, 
ColumnValueRange<TYPE_VARCHAR>,
+        ColumnValueRange<TYPE_STRING>, ColumnValueRange<TYPE_DATE>, 
ColumnValueRange<TYPE_DATEV2>,
+        ColumnValueRange<TYPE_DATETIME>, ColumnValueRange<TYPE_DATETIMEV2>,
+        ColumnValueRange<TYPE_DECIMALV2>, ColumnValueRange<TYPE_BOOLEAN>,
+        ColumnValueRange<TYPE_HLL>, ColumnValueRange<TYPE_DECIMAL32>,
+        ColumnValueRange<TYPE_DECIMAL64>, ColumnValueRange<TYPE_DECIMAL128I>,
+        ColumnValueRange<TYPE_DECIMAL256>>;
 
 template <PrimitiveType primitive_type>
 const typename ColumnValueRange<primitive_type>::CppType
diff --git a/be/src/olap/olap_common.h b/be/src/olap/olap_common.h
index 68605b3d3ac..80bfab6f4b9 100644
--- a/be/src/olap/olap_common.h
+++ b/be/src/olap/olap_common.h
@@ -203,7 +203,9 @@ constexpr bool field_is_numeric_type(const FieldType& 
field_type) {
            field_type == FieldType::OLAP_FIELD_TYPE_DECIMAL64 ||
            field_type == FieldType::OLAP_FIELD_TYPE_DECIMAL128I ||
            field_type == FieldType::OLAP_FIELD_TYPE_DECIMAL256 ||
-           field_type == FieldType::OLAP_FIELD_TYPE_BOOL;
+           field_type == FieldType::OLAP_FIELD_TYPE_BOOL ||
+           field_type == FieldType::OLAP_FIELD_TYPE_IPV4 ||
+           field_type == FieldType::OLAP_FIELD_TYPE_IPV6;
 }
 
 // <start_version_id, end_version_id>, such as <100, 110>
diff --git a/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp 
b/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp
index 6b8208ba4cd..047b76b5278 100644
--- a/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp
+++ b/be/src/olap/rowset/segment_v2/inverted_index_writer.cpp
@@ -678,6 +678,8 @@ Status InvertedIndexColumnWriter::create(const Field* field,
         M(FieldType::OLAP_FIELD_TYPE_DECIMAL128I)
         M(FieldType::OLAP_FIELD_TYPE_DECIMAL256)
         M(FieldType::OLAP_FIELD_TYPE_BOOL)
+        M(FieldType::OLAP_FIELD_TYPE_IPV4)
+        M(FieldType::OLAP_FIELD_TYPE_IPV6)
 #undef M
     default:
         return Status::NotSupported("unsupported type for inverted index: " +
diff --git a/be/src/olap/utils.h b/be/src/olap/utils.h
index 27b7b77eea1..7c0ccc503de 100644
--- a/be/src/olap/utils.h
+++ b/be/src/olap/utils.h
@@ -257,7 +257,9 @@ constexpr bool is_numeric_type(const FieldType& field_type) 
{
            field_type == FieldType::OLAP_FIELD_TYPE_DECIMAL64 ||
            field_type == FieldType::OLAP_FIELD_TYPE_DECIMAL128I ||
            field_type == FieldType::OLAP_FIELD_TYPE_DECIMAL256 ||
-           field_type == FieldType::OLAP_FIELD_TYPE_BOOL;
+           field_type == FieldType::OLAP_FIELD_TYPE_BOOL ||
+           field_type == FieldType::OLAP_FIELD_TYPE_IPV4 ||
+           field_type == FieldType::OLAP_FIELD_TYPE_IPV6;
 }
 
 // Util used to get string name of thrift enum item
diff --git a/be/src/pipeline/exec/scan_operator.cpp 
b/be/src/pipeline/exec/scan_operator.cpp
index 57962fca0bc..41e029bce34 100644
--- a/be/src/pipeline/exec/scan_operator.cpp
+++ b/be/src/pipeline/exec/scan_operator.cpp
@@ -197,7 +197,9 @@ Status ScanLocalState<Derived>::_normalize_conjuncts() {
     M(DECIMAL128I)                  \
     M(DECIMAL256)                   \
     M(DECIMALV2)                    \
-    M(BOOLEAN)
+    M(BOOLEAN)                      \
+    M(IPV4)                         \
+    M(IPV6)
             APPLY_FOR_PRIMITIVE_TYPE(M)
 #undef M
         default: {
@@ -917,6 +919,7 @@ Status 
ScanLocalState<Derived>::_change_value_range(ColumnValueRange<PrimitiveTy
                          (PrimitiveType == TYPE_DATETIMEV2) || (PrimitiveType 
== TYPE_TINYINT) ||
                          (PrimitiveType == TYPE_SMALLINT) || (PrimitiveType == 
TYPE_INT) ||
                          (PrimitiveType == TYPE_BIGINT) || (PrimitiveType == 
TYPE_LARGEINT) ||
+                         (PrimitiveType == TYPE_IPV4) || (PrimitiveType == 
TYPE_IPV6) ||
                          (PrimitiveType == TYPE_DECIMAL32) || (PrimitiveType 
== TYPE_DECIMAL64) ||
                          (PrimitiveType == TYPE_DECIMAL128I) ||
                          (PrimitiveType == TYPE_DECIMAL256) || (PrimitiveType 
== TYPE_STRING) ||
diff --git a/be/src/vec/exec/scan/vscan_node.cpp 
b/be/src/vec/exec/scan/vscan_node.cpp
index a37287dcda4..22f0094b03a 100644
--- a/be/src/vec/exec/scan/vscan_node.cpp
+++ b/be/src/vec/exec/scan/vscan_node.cpp
@@ -370,7 +370,9 @@ Status VScanNode::_normalize_conjuncts() {
     M(DECIMAL128I)                  \
     M(DECIMAL256)                   \
     M(DECIMALV2)                    \
-    M(BOOLEAN)
+    M(BOOLEAN)                      \
+    M(IPV4)                         \
+    M(IPV6)
             APPLY_FOR_PRIMITIVE_TYPE(M)
 #undef M
         default: {
@@ -1260,6 +1262,7 @@ Status 
VScanNode::_change_value_range(ColumnValueRange<PrimitiveType>& temp_rang
                          (PrimitiveType == TYPE_DATETIMEV2) || (PrimitiveType 
== TYPE_TINYINT) ||
                          (PrimitiveType == TYPE_SMALLINT) || (PrimitiveType == 
TYPE_INT) ||
                          (PrimitiveType == TYPE_BIGINT) || (PrimitiveType == 
TYPE_LARGEINT) ||
+                         (PrimitiveType == TYPE_IPV4) || (PrimitiveType == 
TYPE_IPV6) ||
                          (PrimitiveType == TYPE_DECIMAL32) || (PrimitiveType 
== TYPE_DECIMAL64) ||
                          (PrimitiveType == TYPE_DECIMAL128I) ||
                          (PrimitiveType == TYPE_DECIMAL256) || (PrimitiveType 
== TYPE_STRING) ||
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
index b23bb3f2277..7db8c460b2f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
@@ -220,7 +220,7 @@ public class IndexDef {
             }
             if (!(colType.isDateType() || colType.isDecimalV2Type() || 
colType.isDecimalV3Type()
                     || colType.isFixedPointType() || colType.isStringType() || 
colType == PrimitiveType.BOOLEAN
-                    || colType.isVariantType())) {
+                    || colType.isVariantType()) || colType.isIPType()) {
                 throw new AnalysisException(colType + " is not supported in " 
+ indexType.toString() + " index. "
                         + "invalid index: " + indexName);
             }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
index 09c670e1b8e..bd37616ea2d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
@@ -105,7 +105,7 @@ public class IndexDefinition {
             }
             if (!(colType.isDateLikeType() || colType.isDecimalLikeType()
                     || colType.isIntegralType() || colType.isStringLikeType()
-                    || colType.isBooleanType() || colType.isVariantType())) {
+                    || colType.isBooleanType() || colType.isVariantType() || 
colType.isIPType())) {
                 // TODO add colType.isAggState()
                 throw new AnalysisException(colType + " is not supported in " 
+ indexType.toString()
                         + " index. " + "invalid index: " + name);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
index 28ab39e1b1c..9f5a2f3dd32 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DataType.java
@@ -579,6 +579,10 @@ public abstract class DataType {
         return this instanceof IPv4Type;
     }
 
+    public boolean isIPType() {
+        return isIPv4Type() || isIPv6Type();
+    }
+
     public boolean isIPv6Type() {
         return this instanceof IPv6Type;
     }
diff --git a/regression-test/data/datatype_p0/ip/test_ip_in_inverted_index.out 
b/regression-test/data/datatype_p0/ip/test_ip_in_inverted_index.out
new file mode 100644
index 00000000000..5216a275c54
--- /dev/null
+++ b/regression-test/data/datatype_p0/ip/test_ip_in_inverted_index.out
@@ -0,0 +1,866 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !sql_index_1 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+
+-- !sql_index_2 --
+2      42.117.228.166  2001:16a0:2:200a::2
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_3 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+
+-- !sql_index_4 --
+2      42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql_index_4 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_5 --
+2      42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql_index_6 --
+
+-- !sql_index_7 --
+
+-- !sql_index_8 --
+
+-- !sql_index_9 --
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_10 --
+2      42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql_index_11 --
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_12 --
+
+-- !sql_index_13 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql1 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+
+-- !sql2 --
+2      42.117.228.166  2001:16a0:2:200a::2
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql3 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+
+-- !sql4 --
+2      42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql4 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql5 --
+2      42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql6 --
+
+-- !sql7 --
+
+-- !sql8 --
+
+-- !sql9 --
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql10 --
+2      42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql11 --
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql12 --
+
+-- !sql13 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql --
+103
+
+-- !sql_index_1 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+
+-- !sql_index_2 --
+2      42.117.228.166  2001:16a0:2:200a::2
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+85     42.117.228.166  2001:16a0:2:200a::2
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_3 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+1      116.253.40.133  2606:2b00::1
+2      183.247.232.58  2001:2000:3080:1351::2
+3      116.106.34.242  2a01:8840:16::1
+4      111.56.27.171   2001:550:0:1000::9a36:2a61
+5      183.245.137.140 2001:578:400:4:2000::19
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+8      111.4.229.190   2400:c700:0:158::
+9      59.52.3.168     2001:67c:24e4:4::250
+10     115.11.21.200   2a02:2a38:37:5::2
+11     121.28.97.113   2001:41a8:400:2::13a
+12     111.46.39.248   2405:9800:9800:66::2
+13     120.192.122.34  2a07:a343:f210::1
+14     113.56.44.105   2403:5000:171:46::2
+15     116.66.238.92   2800:c20:1141::8
+16     67.22.254.206   2402:7800:40:2::62
+17     115.0.24.191    2a00:de00::1
+18     182.30.107.86   2001:688:0:2:1::9e
+19     223.73.153.243  2001:2000:3080:80::2
+20     115.159.103.38  2001:428::205:171:200:230
+21     36.186.75.121   2001:fb1:fe0:9::8
+22     111.56.188.125  2001:2000:3080:10ca::2
+23     115.14.93.25    2400:dd0b:1003::2
+24     211.97.110.141  2001:1a98:6677::9d9d:140a
+25     61.58.96.173    2001:2000:3018:3b::1
+26     203.126.212.37  2607:fa70:3:33::2
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+28     115.22.20.223   2001:450:2001:1000:0:40:6924:23
+29     121.25.160.80   2001:418:0:5000::c2d
+30     117.150.98.199  2a01:b740:a09::1
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+35     171.225.130.45  2001:44c8:129:2632:33:0:252:2
+36     115.4.78.200    2a02:e980:1e::1
+37     36.183.59.29    2a0a:6f40:2::1
+38     218.42.159.17   2001:550:2:29::2c9:1
+39     115.13.39.164   2001:c20:4800::175
+40     142.254.161.133 2c0f:feb0:1:2::d1
+41     116.2.211.43    2a0b:7086:fff0::1
+42     36.183.126.25   2a04:2dc0::16d
+43     66.150.171.196  2604:7e00::105d
+44     104.149.148.137 2001:470:1:946::2
+45     120.239.82.212  2a0c:3240::1
+46     111.14.182.156  2800:630:4010:8::2
+47     115.6.63.224    2001:1af8:4040::12
+48     153.35.83.233   2c0f:fc98:1200::2
+49     113.142.1.1     2001:470:1:248::2
+50     121.25.82.29    2620:44:a000::1
+51     62.151.203.189  2402:800:63ff:40::1
+52     104.27.46.146   2a02:b000:fff::524
+53     36.189.46.88    2001:470:0:327::1
+54     116.252.54.207  2401:7400:8888:2::8
+55     64.77.240.1     2001:500:55::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+57     36.82.224.170   2400:bf40::1
+58     117.33.191.217  2001:67c:754::1
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+60     122.10.93.66    2001:470:0:1fa::2
+61     104.25.84.59    2001:550:0:1000::9a18:292a
+62     111.4.242.106   2001:470:1:89e::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+64     112.33.13.212   2804:158c::1
+65     115.9.240.116   2600:140e:6::1
+66     171.228.0.153   2a00:18e0:0:bb04::82
+67     45.3.47.158     2a02:2698:5000::1e06
+68     69.57.193.230   2402:800:63ff:10::7:2
+69     115.6.104.199   2a02:e980:19::1
+70     104.24.237.140  2001:4888::342:1:0:0
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+73     112.40.38.145   2404:c600:1000:2::1d1
+74     67.55.90.43     2001:578:1400:4::9d
+75     180.253.57.249  2804:64:0:25::1
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+78     202.198.37.147  2606:2800:602c:b::d004
+79     115.6.31.95     2610:18:181:4000::66
+80     117.32.14.179   2001:48f8:1000:1::16
+81     23.238.237.26   2408:8000:c000::1
+82     116.97.76.104   2a03:4200:441:2::4e
+83     1.80.2.248      2400:dd00:1:200a::2
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+87     210.66.18.184   2a0c:f743::1
+88     115.19.192.159  2a02:e980:b::1
+89     112.15.128.113  2001:578:201:1::601:9
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+91     210.183.19.113  2001:920:1833::1
+92     42.115.43.114   2001:1b70:a1:610::b102:2
+93     58.16.171.31    2001:13c7:6014::1
+94     171.234.78.185  2003:0:1203:4001::1
+95     113.56.43.134   2804:a8:2:c8::d6
+96     111.53.182.225  2a02:2e00:2080:f000:0:261:1:11
+97     107.160.215.141 2001:578:20::d
+98     171.229.231.90  2001:550:2:48::34:1
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql_index_4 --
+2      42.117.228.166  2001:16a0:2:200a::2
+85     42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql_index_4 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_5 --
+1      116.253.40.133  2606:2b00::1
+2      42.117.228.166  2001:16a0:2:200a::2
+2      183.247.232.58  2001:2000:3080:1351::2
+3      116.106.34.242  2a01:8840:16::1
+4      111.56.27.171   2001:550:0:1000::9a36:2a61
+5      183.245.137.140 2001:578:400:4:2000::19
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+8      111.4.229.190   2400:c700:0:158::
+9      59.52.3.168     2001:67c:24e4:4::250
+10     115.11.21.200   2a02:2a38:37:5::2
+11     121.28.97.113   2001:41a8:400:2::13a
+12     111.46.39.248   2405:9800:9800:66::2
+13     120.192.122.34  2a07:a343:f210::1
+14     113.56.44.105   2403:5000:171:46::2
+15     116.66.238.92   2800:c20:1141::8
+16     67.22.254.206   2402:7800:40:2::62
+17     115.0.24.191    2a00:de00::1
+18     182.30.107.86   2001:688:0:2:1::9e
+19     223.73.153.243  2001:2000:3080:80::2
+20     115.159.103.38  2001:428::205:171:200:230
+21     36.186.75.121   2001:fb1:fe0:9::8
+22     111.56.188.125  2001:2000:3080:10ca::2
+23     115.14.93.25    2400:dd0b:1003::2
+24     211.97.110.141  2001:1a98:6677::9d9d:140a
+25     61.58.96.173    2001:2000:3018:3b::1
+26     203.126.212.37  2607:fa70:3:33::2
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+28     115.22.20.223   2001:450:2001:1000:0:40:6924:23
+29     121.25.160.80   2001:418:0:5000::c2d
+30     117.150.98.199  2a01:b740:a09::1
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+35     171.225.130.45  2001:44c8:129:2632:33:0:252:2
+36     115.4.78.200    2a02:e980:1e::1
+37     36.183.59.29    2a0a:6f40:2::1
+38     218.42.159.17   2001:550:2:29::2c9:1
+39     115.13.39.164   2001:c20:4800::175
+40     142.254.161.133 2c0f:feb0:1:2::d1
+41     116.2.211.43    2a0b:7086:fff0::1
+42     36.183.126.25   2a04:2dc0::16d
+43     66.150.171.196  2604:7e00::105d
+44     104.149.148.137 2001:470:1:946::2
+45     120.239.82.212  2a0c:3240::1
+46     111.14.182.156  2800:630:4010:8::2
+47     115.6.63.224    2001:1af8:4040::12
+48     153.35.83.233   2c0f:fc98:1200::2
+49     113.142.1.1     2001:470:1:248::2
+50     121.25.82.29    2620:44:a000::1
+51     62.151.203.189  2402:800:63ff:40::1
+52     104.27.46.146   2a02:b000:fff::524
+53     36.189.46.88    2001:470:0:327::1
+54     116.252.54.207  2401:7400:8888:2::8
+55     64.77.240.1     2001:500:55::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+57     36.82.224.170   2400:bf40::1
+58     117.33.191.217  2001:67c:754::1
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+60     122.10.93.66    2001:470:0:1fa::2
+61     104.25.84.59    2001:550:0:1000::9a18:292a
+62     111.4.242.106   2001:470:1:89e::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+64     112.33.13.212   2804:158c::1
+65     115.9.240.116   2600:140e:6::1
+66     171.228.0.153   2a00:18e0:0:bb04::82
+67     45.3.47.158     2a02:2698:5000::1e06
+68     69.57.193.230   2402:800:63ff:10::7:2
+69     115.6.104.199   2a02:e980:19::1
+70     104.24.237.140  2001:4888::342:1:0:0
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+73     112.40.38.145   2404:c600:1000:2::1d1
+74     67.55.90.43     2001:578:1400:4::9d
+75     180.253.57.249  2804:64:0:25::1
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+78     202.198.37.147  2606:2800:602c:b::d004
+79     115.6.31.95     2610:18:181:4000::66
+80     117.32.14.179   2001:48f8:1000:1::16
+81     23.238.237.26   2408:8000:c000::1
+82     116.97.76.104   2a03:4200:441:2::4e
+83     1.80.2.248      2400:dd00:1:200a::2
+85     42.117.228.166  2001:16a0:2:200a::2
+87     210.66.18.184   2a0c:f743::1
+88     115.19.192.159  2a02:e980:b::1
+89     112.15.128.113  2001:578:201:1::601:9
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+91     210.183.19.113  2001:920:1833::1
+92     42.115.43.114   2001:1b70:a1:610::b102:2
+93     58.16.171.31    2001:13c7:6014::1
+94     171.234.78.185  2003:0:1203:4001::1
+95     113.56.43.134   2804:a8:2:c8::d6
+96     111.53.182.225  2a02:2e00:2080:f000:0:261:1:11
+97     107.160.215.141 2001:578:20::d
+98     171.229.231.90  2001:550:2:48::34:1
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql_index_6 --
+21     36.186.75.121   2001:fb1:fe0:9::8
+
+-- !sql_index_7 --
+21     36.186.75.121   2001:fb1:fe0:9::8
+25     61.58.96.173    2001:2000:3018:3b::1
+
+-- !sql_index_8 --
+30     117.150.98.199  2a01:b740:a09::1
+
+-- !sql_index_9 --
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+30     117.150.98.199  2a01:b740:a09::1
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql_index_10 --
+2      42.117.228.166  2001:16a0:2:200a::2
+21     36.186.75.121   2001:fb1:fe0:9::8
+37     36.183.59.29    2a0a:6f40:2::1
+42     36.183.126.25   2a04:2dc0::16d
+53     36.189.46.88    2001:470:0:327::1
+57     36.82.224.170   2400:bf40::1
+67     45.3.47.158     2a02:2698:5000::1e06
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+81     23.238.237.26   2408:8000:c000::1
+83     1.80.2.248      2400:dd00:1:200a::2
+85     42.117.228.166  2001:16a0:2:200a::2
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+92     42.115.43.114   2001:1b70:a1:610::b102:2
+93     58.16.171.31    2001:13c7:6014::1
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql_index_11 --
+2      183.247.232.58  2001:2000:3080:1351::2
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+5      183.245.137.140 2001:578:400:4:2000::19
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+11     121.28.97.113   2001:41a8:400:2::13a
+13     120.192.122.34  2a07:a343:f210::1
+18     182.30.107.86   2001:688:0:2:1::9e
+19     223.73.153.243  2001:2000:3080:80::2
+24     211.97.110.141  2001:1a98:6677::9d9d:140a
+26     203.126.212.37  2607:fa70:3:33::2
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+29     121.25.160.80   2001:418:0:5000::c2d
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+35     171.225.130.45  2001:44c8:129:2632:33:0:252:2
+38     218.42.159.17   2001:550:2:29::2c9:1
+40     142.254.161.133 2c0f:feb0:1:2::d1
+45     120.239.82.212  2a0c:3240::1
+48     153.35.83.233   2c0f:fc98:1200::2
+50     121.25.82.29    2620:44:a000::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+60     122.10.93.66    2001:470:0:1fa::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+66     171.228.0.153   2a00:18e0:0:bb04::82
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+75     180.253.57.249  2804:64:0:25::1
+78     202.198.37.147  2606:2800:602c:b::d004
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+87     210.66.18.184   2a0c:f743::1
+91     210.183.19.113  2001:920:1833::1
+94     171.234.78.185  2003:0:1203:4001::1
+98     171.229.231.90  2001:550:2:48::34:1
+
+-- !sql_index_12 --
+4      111.56.27.171   2001:550:0:1000::9a36:2a61
+5      183.245.137.140 2001:578:400:4:2000::19
+9      59.52.3.168     2001:67c:24e4:4::250
+18     182.30.107.86   2001:688:0:2:1::9e
+20     115.159.103.38  2001:428::205:171:200:230
+21     36.186.75.121   2001:fb1:fe0:9::8
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+28     115.22.20.223   2001:450:2001:1000:0:40:6924:23
+29     121.25.160.80   2001:418:0:5000::c2d
+38     218.42.159.17   2001:550:2:29::2c9:1
+39     115.13.39.164   2001:c20:4800::175
+44     104.149.148.137 2001:470:1:946::2
+49     113.142.1.1     2001:470:1:248::2
+53     36.189.46.88    2001:470:0:327::1
+55     64.77.240.1     2001:500:55::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+58     117.33.191.217  2001:67c:754::1
+60     122.10.93.66    2001:470:0:1fa::2
+61     104.25.84.59    2001:550:0:1000::9a18:292a
+62     111.4.242.106   2001:470:1:89e::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+74     67.55.90.43     2001:578:1400:4::9d
+89     112.15.128.113  2001:578:201:1::601:9
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+91     210.183.19.113  2001:920:1833::1
+93     58.16.171.31    2001:13c7:6014::1
+97     107.160.215.141 2001:578:20::d
+98     171.229.231.90  2001:550:2:48::34:1
+
+-- !sql_index_13 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+1      116.253.40.133  2606:2b00::1
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+3      116.106.34.242  2a01:8840:16::1
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+8      111.4.229.190   2400:c700:0:158::
+10     115.11.21.200   2a02:2a38:37:5::2
+12     111.46.39.248   2405:9800:9800:66::2
+13     120.192.122.34  2a07:a343:f210::1
+14     113.56.44.105   2403:5000:171:46::2
+15     116.66.238.92   2800:c20:1141::8
+16     67.22.254.206   2402:7800:40:2::62
+17     115.0.24.191    2a00:de00::1
+23     115.14.93.25    2400:dd0b:1003::2
+26     203.126.212.37  2607:fa70:3:33::2
+30     117.150.98.199  2a01:b740:a09::1
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+36     115.4.78.200    2a02:e980:1e::1
+37     36.183.59.29    2a0a:6f40:2::1
+40     142.254.161.133 2c0f:feb0:1:2::d1
+41     116.2.211.43    2a0b:7086:fff0::1
+42     36.183.126.25   2a04:2dc0::16d
+43     66.150.171.196  2604:7e00::105d
+45     120.239.82.212  2a0c:3240::1
+46     111.14.182.156  2800:630:4010:8::2
+48     153.35.83.233   2c0f:fc98:1200::2
+50     121.25.82.29    2620:44:a000::1
+51     62.151.203.189  2402:800:63ff:40::1
+52     104.27.46.146   2a02:b000:fff::524
+54     116.252.54.207  2401:7400:8888:2::8
+57     36.82.224.170   2400:bf40::1
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+64     112.33.13.212   2804:158c::1
+65     115.9.240.116   2600:140e:6::1
+66     171.228.0.153   2a00:18e0:0:bb04::82
+67     45.3.47.158     2a02:2698:5000::1e06
+68     69.57.193.230   2402:800:63ff:10::7:2
+69     115.6.104.199   2a02:e980:19::1
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+73     112.40.38.145   2404:c600:1000:2::1d1
+75     180.253.57.249  2804:64:0:25::1
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+78     202.198.37.147  2606:2800:602c:b::d004
+79     115.6.31.95     2610:18:181:4000::66
+80     117.32.14.179   2001:48f8:1000:1::16
+81     23.238.237.26   2408:8000:c000::1
+82     116.97.76.104   2a03:4200:441:2::4e
+83     1.80.2.248      2400:dd00:1:200a::2
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+87     210.66.18.184   2a0c:f743::1
+88     115.19.192.159  2a02:e980:b::1
+94     171.234.78.185  2003:0:1203:4001::1
+95     113.56.43.134   2804:a8:2:c8::d6
+96     111.53.182.225  2a02:2e00:2080:f000:0:261:1:11
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql1 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+
+-- !sql2 --
+2      42.117.228.166  2001:16a0:2:200a::2
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+85     42.117.228.166  2001:16a0:2:200a::2
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql3 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+1      116.253.40.133  2606:2b00::1
+2      183.247.232.58  2001:2000:3080:1351::2
+3      116.106.34.242  2a01:8840:16::1
+4      111.56.27.171   2001:550:0:1000::9a36:2a61
+5      183.245.137.140 2001:578:400:4:2000::19
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+8      111.4.229.190   2400:c700:0:158::
+9      59.52.3.168     2001:67c:24e4:4::250
+10     115.11.21.200   2a02:2a38:37:5::2
+11     121.28.97.113   2001:41a8:400:2::13a
+12     111.46.39.248   2405:9800:9800:66::2
+13     120.192.122.34  2a07:a343:f210::1
+14     113.56.44.105   2403:5000:171:46::2
+15     116.66.238.92   2800:c20:1141::8
+16     67.22.254.206   2402:7800:40:2::62
+17     115.0.24.191    2a00:de00::1
+18     182.30.107.86   2001:688:0:2:1::9e
+19     223.73.153.243  2001:2000:3080:80::2
+20     115.159.103.38  2001:428::205:171:200:230
+21     36.186.75.121   2001:fb1:fe0:9::8
+22     111.56.188.125  2001:2000:3080:10ca::2
+23     115.14.93.25    2400:dd0b:1003::2
+24     211.97.110.141  2001:1a98:6677::9d9d:140a
+25     61.58.96.173    2001:2000:3018:3b::1
+26     203.126.212.37  2607:fa70:3:33::2
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+28     115.22.20.223   2001:450:2001:1000:0:40:6924:23
+29     121.25.160.80   2001:418:0:5000::c2d
+30     117.150.98.199  2a01:b740:a09::1
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+35     171.225.130.45  2001:44c8:129:2632:33:0:252:2
+36     115.4.78.200    2a02:e980:1e::1
+37     36.183.59.29    2a0a:6f40:2::1
+38     218.42.159.17   2001:550:2:29::2c9:1
+39     115.13.39.164   2001:c20:4800::175
+40     142.254.161.133 2c0f:feb0:1:2::d1
+41     116.2.211.43    2a0b:7086:fff0::1
+42     36.183.126.25   2a04:2dc0::16d
+43     66.150.171.196  2604:7e00::105d
+44     104.149.148.137 2001:470:1:946::2
+45     120.239.82.212  2a0c:3240::1
+46     111.14.182.156  2800:630:4010:8::2
+47     115.6.63.224    2001:1af8:4040::12
+48     153.35.83.233   2c0f:fc98:1200::2
+49     113.142.1.1     2001:470:1:248::2
+50     121.25.82.29    2620:44:a000::1
+51     62.151.203.189  2402:800:63ff:40::1
+52     104.27.46.146   2a02:b000:fff::524
+53     36.189.46.88    2001:470:0:327::1
+54     116.252.54.207  2401:7400:8888:2::8
+55     64.77.240.1     2001:500:55::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+57     36.82.224.170   2400:bf40::1
+58     117.33.191.217  2001:67c:754::1
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+60     122.10.93.66    2001:470:0:1fa::2
+61     104.25.84.59    2001:550:0:1000::9a18:292a
+62     111.4.242.106   2001:470:1:89e::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+64     112.33.13.212   2804:158c::1
+65     115.9.240.116   2600:140e:6::1
+66     171.228.0.153   2a00:18e0:0:bb04::82
+67     45.3.47.158     2a02:2698:5000::1e06
+68     69.57.193.230   2402:800:63ff:10::7:2
+69     115.6.104.199   2a02:e980:19::1
+70     104.24.237.140  2001:4888::342:1:0:0
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+73     112.40.38.145   2404:c600:1000:2::1d1
+74     67.55.90.43     2001:578:1400:4::9d
+75     180.253.57.249  2804:64:0:25::1
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+78     202.198.37.147  2606:2800:602c:b::d004
+79     115.6.31.95     2610:18:181:4000::66
+80     117.32.14.179   2001:48f8:1000:1::16
+81     23.238.237.26   2408:8000:c000::1
+82     116.97.76.104   2a03:4200:441:2::4e
+83     1.80.2.248      2400:dd00:1:200a::2
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+87     210.66.18.184   2a0c:f743::1
+88     115.19.192.159  2a02:e980:b::1
+89     112.15.128.113  2001:578:201:1::601:9
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+91     210.183.19.113  2001:920:1833::1
+92     42.115.43.114   2001:1b70:a1:610::b102:2
+93     58.16.171.31    2001:13c7:6014::1
+94     171.234.78.185  2003:0:1203:4001::1
+95     113.56.43.134   2804:a8:2:c8::d6
+96     111.53.182.225  2a02:2e00:2080:f000:0:261:1:11
+97     107.160.215.141 2001:578:20::d
+98     171.229.231.90  2001:550:2:48::34:1
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql4 --
+2      42.117.228.166  2001:16a0:2:200a::2
+85     42.117.228.166  2001:16a0:2:200a::2
+
+-- !sql4 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql5 --
+1      116.253.40.133  2606:2b00::1
+2      42.117.228.166  2001:16a0:2:200a::2
+2      183.247.232.58  2001:2000:3080:1351::2
+3      116.106.34.242  2a01:8840:16::1
+4      111.56.27.171   2001:550:0:1000::9a36:2a61
+5      183.245.137.140 2001:578:400:4:2000::19
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+8      111.4.229.190   2400:c700:0:158::
+9      59.52.3.168     2001:67c:24e4:4::250
+10     115.11.21.200   2a02:2a38:37:5::2
+11     121.28.97.113   2001:41a8:400:2::13a
+12     111.46.39.248   2405:9800:9800:66::2
+13     120.192.122.34  2a07:a343:f210::1
+14     113.56.44.105   2403:5000:171:46::2
+15     116.66.238.92   2800:c20:1141::8
+16     67.22.254.206   2402:7800:40:2::62
+17     115.0.24.191    2a00:de00::1
+18     182.30.107.86   2001:688:0:2:1::9e
+19     223.73.153.243  2001:2000:3080:80::2
+20     115.159.103.38  2001:428::205:171:200:230
+21     36.186.75.121   2001:fb1:fe0:9::8
+22     111.56.188.125  2001:2000:3080:10ca::2
+23     115.14.93.25    2400:dd0b:1003::2
+24     211.97.110.141  2001:1a98:6677::9d9d:140a
+25     61.58.96.173    2001:2000:3018:3b::1
+26     203.126.212.37  2607:fa70:3:33::2
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+28     115.22.20.223   2001:450:2001:1000:0:40:6924:23
+29     121.25.160.80   2001:418:0:5000::c2d
+30     117.150.98.199  2a01:b740:a09::1
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+35     171.225.130.45  2001:44c8:129:2632:33:0:252:2
+36     115.4.78.200    2a02:e980:1e::1
+37     36.183.59.29    2a0a:6f40:2::1
+38     218.42.159.17   2001:550:2:29::2c9:1
+39     115.13.39.164   2001:c20:4800::175
+40     142.254.161.133 2c0f:feb0:1:2::d1
+41     116.2.211.43    2a0b:7086:fff0::1
+42     36.183.126.25   2a04:2dc0::16d
+43     66.150.171.196  2604:7e00::105d
+44     104.149.148.137 2001:470:1:946::2
+45     120.239.82.212  2a0c:3240::1
+46     111.14.182.156  2800:630:4010:8::2
+47     115.6.63.224    2001:1af8:4040::12
+48     153.35.83.233   2c0f:fc98:1200::2
+49     113.142.1.1     2001:470:1:248::2
+50     121.25.82.29    2620:44:a000::1
+51     62.151.203.189  2402:800:63ff:40::1
+52     104.27.46.146   2a02:b000:fff::524
+53     36.189.46.88    2001:470:0:327::1
+54     116.252.54.207  2401:7400:8888:2::8
+55     64.77.240.1     2001:500:55::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+57     36.82.224.170   2400:bf40::1
+58     117.33.191.217  2001:67c:754::1
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+60     122.10.93.66    2001:470:0:1fa::2
+61     104.25.84.59    2001:550:0:1000::9a18:292a
+62     111.4.242.106   2001:470:1:89e::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+64     112.33.13.212   2804:158c::1
+65     115.9.240.116   2600:140e:6::1
+66     171.228.0.153   2a00:18e0:0:bb04::82
+67     45.3.47.158     2a02:2698:5000::1e06
+68     69.57.193.230   2402:800:63ff:10::7:2
+69     115.6.104.199   2a02:e980:19::1
+70     104.24.237.140  2001:4888::342:1:0:0
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+73     112.40.38.145   2404:c600:1000:2::1d1
+74     67.55.90.43     2001:578:1400:4::9d
+75     180.253.57.249  2804:64:0:25::1
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+78     202.198.37.147  2606:2800:602c:b::d004
+79     115.6.31.95     2610:18:181:4000::66
+80     117.32.14.179   2001:48f8:1000:1::16
+81     23.238.237.26   2408:8000:c000::1
+82     116.97.76.104   2a03:4200:441:2::4e
+83     1.80.2.248      2400:dd00:1:200a::2
+85     42.117.228.166  2001:16a0:2:200a::2
+87     210.66.18.184   2a0c:f743::1
+88     115.19.192.159  2a02:e980:b::1
+89     112.15.128.113  2001:578:201:1::601:9
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+91     210.183.19.113  2001:920:1833::1
+92     42.115.43.114   2001:1b70:a1:610::b102:2
+93     58.16.171.31    2001:13c7:6014::1
+94     171.234.78.185  2003:0:1203:4001::1
+95     113.56.43.134   2804:a8:2:c8::d6
+96     111.53.182.225  2a02:2e00:2080:f000:0:261:1:11
+97     107.160.215.141 2001:578:20::d
+98     171.229.231.90  2001:550:2:48::34:1
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql6 --
+21     36.186.75.121   2001:fb1:fe0:9::8
+
+-- !sql7 --
+21     36.186.75.121   2001:fb1:fe0:9::8
+25     61.58.96.173    2001:2000:3018:3b::1
+
+-- !sql8 --
+30     117.150.98.199  2a01:b740:a09::1
+
+-- !sql9 --
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+30     117.150.98.199  2a01:b740:a09::1
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+
+-- !sql10 --
+2      42.117.228.166  2001:16a0:2:200a::2
+21     36.186.75.121   2001:fb1:fe0:9::8
+37     36.183.59.29    2a0a:6f40:2::1
+42     36.183.126.25   2a04:2dc0::16d
+53     36.189.46.88    2001:470:0:327::1
+57     36.82.224.170   2400:bf40::1
+67     45.3.47.158     2a02:2698:5000::1e06
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+81     23.238.237.26   2408:8000:c000::1
+83     1.80.2.248      2400:dd00:1:200a::2
+85     42.117.228.166  2001:16a0:2:200a::2
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+92     42.115.43.114   2001:1b70:a1:610::b102:2
+93     58.16.171.31    2001:13c7:6014::1
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
+-- !sql11 --
+2      183.247.232.58  2001:2000:3080:1351::2
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+5      183.245.137.140 2001:578:400:4:2000::19
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+11     121.28.97.113   2001:41a8:400:2::13a
+13     120.192.122.34  2a07:a343:f210::1
+18     182.30.107.86   2001:688:0:2:1::9e
+19     223.73.153.243  2001:2000:3080:80::2
+24     211.97.110.141  2001:1a98:6677::9d9d:140a
+26     203.126.212.37  2607:fa70:3:33::2
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+29     121.25.160.80   2001:418:0:5000::c2d
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+35     171.225.130.45  2001:44c8:129:2632:33:0:252:2
+38     218.42.159.17   2001:550:2:29::2c9:1
+40     142.254.161.133 2c0f:feb0:1:2::d1
+45     120.239.82.212  2a0c:3240::1
+48     153.35.83.233   2c0f:fc98:1200::2
+50     121.25.82.29    2620:44:a000::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+60     122.10.93.66    2001:470:0:1fa::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+66     171.228.0.153   2a00:18e0:0:bb04::82
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+75     180.253.57.249  2804:64:0:25::1
+78     202.198.37.147  2606:2800:602c:b::d004
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+87     210.66.18.184   2a0c:f743::1
+91     210.183.19.113  2001:920:1833::1
+94     171.234.78.185  2003:0:1203:4001::1
+98     171.229.231.90  2001:550:2:48::34:1
+
+-- !sql12 --
+4      111.56.27.171   2001:550:0:1000::9a36:2a61
+5      183.245.137.140 2001:578:400:4:2000::19
+9      59.52.3.168     2001:67c:24e4:4::250
+18     182.30.107.86   2001:688:0:2:1::9e
+20     115.159.103.38  2001:428::205:171:200:230
+21     36.186.75.121   2001:fb1:fe0:9::8
+27     192.220.125.142 2001:5b0:23ff:fffa::113
+28     115.22.20.223   2001:450:2001:1000:0:40:6924:23
+29     121.25.160.80   2001:418:0:5000::c2d
+38     218.42.159.17   2001:550:2:29::2c9:1
+39     115.13.39.164   2001:c20:4800::175
+44     104.149.148.137 2001:470:1:946::2
+49     113.142.1.1     2001:470:1:248::2
+53     36.189.46.88    2001:470:0:327::1
+55     64.77.240.1     2001:500:55::1
+56     142.252.102.78  2001:668:0:3::f000:c2
+58     117.33.191.217  2001:67c:754::1
+60     122.10.93.66    2001:470:0:1fa::2
+61     104.25.84.59    2001:550:0:1000::9a18:292a
+62     111.4.242.106   2001:470:1:89e::2
+63     222.216.51.186  2001:579:6f05:500:9934:5b3e:b7fe:1447
+74     67.55.90.43     2001:578:1400:4::9d
+89     112.15.128.113  2001:578:201:1::601:9
+90     1.55.138.211    2001:438:ffff::407d:1bc1
+91     210.183.19.113  2001:920:1833::1
+93     58.16.171.31    2001:13c7:6014::1
+97     107.160.215.141 2001:578:20::d
+98     171.229.231.90  2001:550:2:48::34:1
+
+-- !sql13 --
+1      59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+1      116.253.40.133  2606:2b00::1
+3      119.36.22.147   2001:4888:1f:e891:161:26::
+3      116.106.34.242  2a01:8840:16::1
+6      183.212.25.70   2607:f290::1
+7      162.144.2.57    2a02:23f0:ffff:8::5
+8      111.4.229.190   2400:c700:0:158::
+10     115.11.21.200   2a02:2a38:37:5::2
+12     111.46.39.248   2405:9800:9800:66::2
+13     120.192.122.34  2a07:a343:f210::1
+14     113.56.44.105   2403:5000:171:46::2
+15     116.66.238.92   2800:c20:1141::8
+16     67.22.254.206   2402:7800:40:2::62
+17     115.0.24.191    2a00:de00::1
+23     115.14.93.25    2400:dd0b:1003::2
+26     203.126.212.37  2607:fa70:3:33::2
+30     117.150.98.199  2a01:b740:a09::1
+31     183.211.172.143 2607:f0d0:2:2::243
+32     180.244.18.143  2a01:348::e:1:1
+33     209.131.3.252   2405:4800::3221:3621:2
+34     220.200.1.22    2a02:aa08:e000:3100::2
+36     115.4.78.200    2a02:e980:1e::1
+37     36.183.59.29    2a0a:6f40:2::1
+40     142.254.161.133 2c0f:feb0:1:2::d1
+41     116.2.211.43    2a0b:7086:fff0::1
+42     36.183.126.25   2a04:2dc0::16d
+43     66.150.171.196  2604:7e00::105d
+45     120.239.82.212  2a0c:3240::1
+46     111.14.182.156  2800:630:4010:8::2
+48     153.35.83.233   2c0f:fc98:1200::2
+50     121.25.82.29    2620:44:a000::1
+51     62.151.203.189  2402:800:63ff:40::1
+52     104.27.46.146   2a02:b000:fff::524
+54     116.252.54.207  2401:7400:8888:2::8
+57     36.82.224.170   2400:bf40::1
+59     144.12.164.251  2402:28c0:100:ffff:ffff:ffff:ffff:ffff
+64     112.33.13.212   2804:158c::1
+65     115.9.240.116   2600:140e:6::1
+66     171.228.0.153   2a00:18e0:0:bb04::82
+67     45.3.47.158     2a02:2698:5000::1e06
+68     69.57.193.230   2402:800:63ff:10::7:2
+69     115.6.104.199   2a02:e980:19::1
+71     199.17.84.108   2607:fc68:0:4:0:2:2711:21
+72     120.193.17.57   2606:2800:602a::1
+73     112.40.38.145   2404:c600:1000:2::1d1
+75     180.253.57.249  2804:64:0:25::1
+76     14.204.253.158  2605:3e00::1:2:2
+77     1.83.241.116    2c0f:fa18:0:4::b
+78     202.198.37.147  2606:2800:602c:b::d004
+79     115.6.31.95     2610:18:181:4000::66
+80     117.32.14.179   2001:48f8:1000:1::16
+81     23.238.237.26   2408:8000:c000::1
+82     116.97.76.104   2a03:4200:441:2::4e
+83     1.80.2.248      2400:dd00:1:200a::2
+84     59.50.185.152   2a02:e980:83:5b09:ecb8:c669:b336:650e
+86     119.36.22.147   2001:4888:1f:e891:161:26::
+87     210.66.18.184   2a0c:f743::1
+88     115.19.192.159  2a02:e980:b::1
+94     171.234.78.185  2003:0:1203:4001::1
+95     113.56.43.134   2804:a8:2:c8::d6
+96     111.53.182.225  2a02:2e00:2080:f000:0:261:1:11
+99     58.19.84.138    2a03:9d40:fe00:5::
+100    36.79.88.107    2403:e800:200:102::2
+
diff --git 
a/regression-test/suites/datatype_p0/ip/test_ip_in_inverted_index.groovy 
b/regression-test/suites/datatype_p0/ip/test_ip_in_inverted_index.groovy
new file mode 100644
index 00000000000..5b31698f9bc
--- /dev/null
+++ b/regression-test/suites/datatype_p0/ip/test_ip_in_inverted_index.groovy
@@ -0,0 +1,124 @@
+
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_ip_in_inverted_index") {
+    def tbName = "test_ip_with_inverted_index"
+    sql """ DROP TABLE IF EXISTS test_ip_with_inverted_index """
+
+    sql """ SET enable_nereids_planner=true """
+    sql """ SET enable_fallback_to_original_planner=false """
+
+    sql """
+        CREATE TABLE test_ip_with_inverted_index (
+          `id` int,
+          `ip_v4` ipv4,
+          `ip_v6` ipv6,
+          INDEX v4_index (`ip_v4`) USING INVERTED COMMENT '',
+          INDEX v6_index (`ip_v6`) USING INVERTED COMMENT '',
+        ) ENGINE=OLAP
+        DISTRIBUTED BY HASH(`id`) BUCKETS 4
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1"
+        );
+        """
+
+    sql """insert into test_ip_with_inverted_index values(1, '59.50.185.152', 
'2a02:e980:83:5b09:ecb8:c669:b336:650e'),(3, '119.36.22.147', 
'2001:4888:1f:e891:161:26::')"""
+    sql "insert into test_ip_with_inverted_index values(2, '42.117.228.166', 
'2001:16a0:2:200a::2')"
+    
+    // query with inverted index and no inverted index
+    sql """set enable_inverted_index_query=true; """
+    qt_sql_index_1 "select * from test_ip_with_inverted_index where ip_v4 = 
'59.50.185.152' order by id;"
+    qt_sql_index_2 "select * from test_ip_with_inverted_index where ip_v4 in 
('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql_index_3 "select * from test_ip_with_inverted_index where ip_v4 not 
in ('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql_index_4 "select * from test_ip_with_inverted_index where ip_v6 = 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql_index_4 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') order 
by id"
+    qt_sql_index_5 "select * from test_ip_with_inverted_index where ip_v6 not 
in ('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') 
order by id"
+    // empty set query
+    qt_sql_index_6 "select * from test_ip_with_inverted_index where ip_v4 = 
'36.186.75.121' order by id;"
+    qt_sql_index_7 "select * from test_ip_with_inverted_index where ip_v4 in 
('61.58.96.173', '36.186.75.121') order by id;"
+    qt_sql_index_8 "select * from test_ip_with_inverted_index where ip_v6 = 
'2a01:b740:a09::1' order by id;"
+    qt_sql_index_9 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a01:b740:a09::1', '2001:4888:1f:e891:161:26::') order by id"
+    // comparable query
+    qt_sql_index_10 "select * from test_ip_with_inverted_index where ip_v4 < 
'59.50.185.152' order by id;"
+    qt_sql_index_11 "select * from test_ip_with_inverted_index where ip_v4 >= 
'119.36.22.147' order by id;"
+    qt_sql_index_12 "select * from test_ip_with_inverted_index where ip_v6 < 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql_index_13 "select * from test_ip_with_inverted_index where ip_v6 >= 
'2001:4888:1f:e891:161:26::' order by id;"
+
+    sql """set enable_inverted_index_query=false; """
+    qt_sql1 "select * from test_ip_with_inverted_index where ip_v4 = 
'59.50.185.152' order by id;"
+    qt_sql2 "select * from test_ip_with_inverted_index where ip_v4 in 
('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql3 "select * from test_ip_with_inverted_index where ip_v4 not in 
('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql4 "select * from test_ip_with_inverted_index where ip_v6 = 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql4 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') order 
by id"
+    qt_sql5 "select * from test_ip_with_inverted_index where ip_v6 not in 
('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') order 
by id"
+    // empty set query
+    qt_sql6 "select * from test_ip_with_inverted_index where ip_v4 = 
'36.186.75.121' order by id;"
+    qt_sql7 "select * from test_ip_with_inverted_index where ip_v4 in 
('61.58.96.173', '36.186.75.121') order by id;"
+    qt_sql8 "select * from test_ip_with_inverted_index where ip_v6 = 
'2a01:b740:a09::1' order by id;"
+    qt_sql9 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a01:b740:a09::1', '2001:4888:1f:e891:161:26::') order by id"
+    // comparable query
+    qt_sql10 "select * from test_ip_with_inverted_index where ip_v4 < 
'59.50.185.152' order by id;"
+    qt_sql11 "select * from test_ip_with_inverted_index where ip_v4 >= 
'119.36.22.147' order by id;"
+    qt_sql12 "select * from test_ip_with_inverted_index where ip_v6 < 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql13 "select * from test_ip_with_inverted_index where ip_v6 >= 
'2001:4888:1f:e891:161:26::' order by id;"
+
+
+    // with stream_load data
+    streamLoad {
+            table tbName
+            set 'column_separator', ','
+            file 'test_data/test.csv'
+            time 10000 // limit inflight 10s
+            // stream load action will check result, include Success status, 
and NumberTotalRows == NumberLoadedRows
+    }
+    qt_sql "select count() from test_ip_with_inverted_index"
+    // query with inverted index and no inverted index
+    sql """set enable_inverted_index_query=true; """
+    qt_sql_index_1 "select * from test_ip_with_inverted_index where ip_v4 = 
'59.50.185.152' order by id;"
+    qt_sql_index_2 "select * from test_ip_with_inverted_index where ip_v4 in 
('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql_index_3 "select * from test_ip_with_inverted_index where ip_v4 not 
in ('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql_index_4 "select * from test_ip_with_inverted_index where ip_v6 = 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql_index_4 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') order 
by id"
+    qt_sql_index_5 "select * from test_ip_with_inverted_index where ip_v6 not 
in ('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') 
order by id"
+    qt_sql_index_6 "select * from test_ip_with_inverted_index where ip_v4 = 
'36.186.75.121' order by id;"
+    qt_sql_index_7 "select * from test_ip_with_inverted_index where ip_v4 in 
('61.58.96.173', '36.186.75.121') order by id;"
+    qt_sql_index_8 "select * from test_ip_with_inverted_index where ip_v6 = 
'2a01:b740:a09::1' order by id;"
+    qt_sql_index_9 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a01:b740:a09::1', '2001:4888:1f:e891:161:26::') order by id"
+    qt_sql_index_10 "select * from test_ip_with_inverted_index where ip_v4 < 
'59.50.185.152' order by id;"
+    qt_sql_index_11 "select * from test_ip_with_inverted_index where ip_v4 >= 
'119.36.22.147' order by id;"
+    qt_sql_index_12 "select * from test_ip_with_inverted_index where ip_v6 < 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql_index_13 "select * from test_ip_with_inverted_index where ip_v6 >= 
'2001:4888:1f:e891:161:26::' order by id;"
+
+    sql """set enable_inverted_index_query=false; """
+    qt_sql1 "select * from test_ip_with_inverted_index where ip_v4 = 
'59.50.185.152' order by id;"
+    qt_sql2 "select * from test_ip_with_inverted_index where ip_v4 in 
('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql3 "select * from test_ip_with_inverted_index where ip_v4 not in 
('42.117.228.166', '119.36.22.147') order by id"
+    qt_sql4 "select * from test_ip_with_inverted_index where ip_v6 = 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql4 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') order 
by id"
+    qt_sql5 "select * from test_ip_with_inverted_index where ip_v6 not in 
('2a02:e980:83:5b09:ecb8:c669:b336:650e', '2001:4888:1f:e891:161:26::') order 
by id"
+    qt_sql6 "select * from test_ip_with_inverted_index where ip_v4 = 
'36.186.75.121' order by id;"
+    qt_sql7 "select * from test_ip_with_inverted_index where ip_v4 in 
('61.58.96.173', '36.186.75.121') order by id;"
+    qt_sql8 "select * from test_ip_with_inverted_index where ip_v6 = 
'2a01:b740:a09::1' order by id;"
+    qt_sql9 "select * from test_ip_with_inverted_index where ip_v6 in 
('2a01:b740:a09::1', '2001:4888:1f:e891:161:26::') order by id"
+    qt_sql10 "select * from test_ip_with_inverted_index where ip_v4 < 
'59.50.185.152' order by id;"
+    qt_sql11 "select * from test_ip_with_inverted_index where ip_v4 >= 
'119.36.22.147' order by id;"
+    qt_sql12 "select * from test_ip_with_inverted_index where ip_v6 < 
'2001:16a0:2:200a::2' order by id;"
+    qt_sql13 "select * from test_ip_with_inverted_index where ip_v6 >= 
'2001:4888:1f:e891:161:26::' order by id;"
+
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to