aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/go/go.mod2
-rw-r--r--client/go/go.sum2
-rw-r--r--client/js/app/yarn.lock676
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/RoutingSelectorValidator.java31
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java35
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/DocumentSelectionConverter.java57
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java51
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java38
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java41
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentSelectionConverterTest.java33
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java2
-rw-r--r--dependency-versions/pom.xml10
-rw-r--r--dist/vespa.spec2
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories80.java6
-rw-r--r--eval/src/tests/eval/compiled_function/compiled_function_test.cpp18
-rw-r--r--eval/src/tests/eval/gbdt/gbdt_test.cpp18
-rw-r--r--filedistribution/pom.xml4
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/Flags.java18
-rw-r--r--searchlib/src/tests/queryeval/iterator_benchmark/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/queryeval/iterator_benchmark/benchmark_searchable.h27
-rw-r--r--searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.cpp88
-rw-r--r--searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.h41
-rw-r--r--searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp225
-rw-r--r--searchlib/src/tests/queryeval/monitoring_search_iterator/monitoring_search_iterator_test.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/predicate/document_features_store.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/blueprint.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/blueprint.h1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/flow.h2
-rw-r--r--vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java23
36 files changed, 742 insertions, 746 deletions
diff --git a/client/go/go.mod b/client/go/go.mod
index a35298b0ba6..ae5fdffc7fd 100644
--- a/client/go/go.mod
+++ b/client/go/go.mod
@@ -14,7 +14,7 @@ require (
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
github.com/spf13/cobra v1.8.0
github.com/spf13/pflag v1.0.5
- github.com/stretchr/testify v1.8.4
+ github.com/stretchr/testify v1.9.0
github.com/zalando/go-keyring v0.2.3
golang.org/x/net v0.21.0
golang.org/x/sys v0.17.0
diff --git a/client/go/go.sum b/client/go/go.sum
index 0ac75c1ba20..bb52fdceaa3 100644
--- a/client/go/go.sum
+++ b/client/go/go.sum
@@ -51,6 +51,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
+github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/zalando/go-keyring v0.2.3 h1:v9CUu9phlABObO4LPWycf+zwMG7nlbb3t/B5wa97yms=
github.com/zalando/go-keyring v0.2.3/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
diff --git a/client/js/app/yarn.lock b/client/js/app/yarn.lock
index 754e47f0b92..fed78603706 100644
--- a/client/js/app/yarn.lock
+++ b/client/js/app/yarn.lock
@@ -1642,26 +1642,15 @@ arr-union@^3.1.0:
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
-array-buffer-byte-length@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
- integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==
- dependencies:
- call-bind "^1.0.2"
- is-array-buffer "^3.0.1"
-
-array-includes@^3.1.6:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
- integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==
+array-buffer-byte-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f"
+ integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==
dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- get-intrinsic "^1.1.3"
- is-string "^1.0.7"
+ call-bind "^1.0.5"
+ is-array-buffer "^3.0.4"
-array-includes@^3.1.7:
+array-includes@^3.1.6, array-includes@^3.1.7:
version "3.1.7"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda"
integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==
@@ -1677,6 +1666,17 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
+array.prototype.findlast@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz#eeb9e45fc894055c82e5675c463e8077b827ad36"
+ integrity sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==
+ dependencies:
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.3"
+ es-errors "^1.3.0"
+ es-shim-unscopables "^1.0.2"
+
array.prototype.findlastindex@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207"
@@ -1688,17 +1688,7 @@ array.prototype.findlastindex@^1.2.3:
es-shim-unscopables "^1.0.0"
get-intrinsic "^1.2.1"
-array.prototype.flat@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2"
- integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- es-shim-unscopables "^1.0.0"
-
-array.prototype.flat@^1.3.2:
+array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18"
integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==
@@ -1708,16 +1698,6 @@ array.prototype.flat@^1.3.2:
es-abstract "^1.22.1"
es-shim-unscopables "^1.0.0"
-array.prototype.flatmap@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183"
- integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- es-shim-unscopables "^1.0.0"
-
array.prototype.flatmap@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527"
@@ -1728,28 +1708,39 @@ array.prototype.flatmap@^1.3.2:
es-abstract "^1.22.1"
es-shim-unscopables "^1.0.0"
-array.prototype.tosorted@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532"
- integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==
+array.prototype.toreversed@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba"
+ integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==
dependencies:
call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
es-shim-unscopables "^1.0.0"
- get-intrinsic "^1.1.3"
-arraybuffer.prototype.slice@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12"
- integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==
+array.prototype.tosorted@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8"
+ integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==
dependencies:
- array-buffer-byte-length "^1.0.0"
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- get-intrinsic "^1.2.1"
- is-array-buffer "^3.0.2"
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.3"
+ es-errors "^1.1.0"
+ es-shim-unscopables "^1.0.2"
+
+arraybuffer.prototype.slice@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6"
+ integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==
+ dependencies:
+ array-buffer-byte-length "^1.0.1"
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.3"
+ es-errors "^1.2.1"
+ get-intrinsic "^1.2.3"
+ is-array-buffer "^3.0.4"
is-shared-array-buffer "^1.0.2"
assign-symbols@^1.0.0:
@@ -1769,10 +1760,12 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-available-typed-arrays@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
- integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+available-typed-arrays@^1.0.6, available-typed-arrays@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
+ integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ dependencies:
+ possible-typed-array-names "^1.0.0"
babel-jest@^26.6.3:
version "26.6.3"
@@ -1961,14 +1954,16 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
-call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
- integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
+call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
+ integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
function-bind "^1.1.2"
- get-intrinsic "^1.2.1"
- set-function-length "^1.1.1"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.1"
callsites@^3.0.0:
version "3.1.0"
@@ -2220,16 +2215,16 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
-define-data-property@^1.0.1, define-data-property@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
- integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
+define-data-property@^1.0.1, define-data-property@^1.1.2, define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
dependencies:
- get-intrinsic "^1.2.1"
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
gopd "^1.0.1"
- has-property-descriptors "^1.0.0"
-define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1:
+define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
@@ -2321,81 +2316,96 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.20.4, es-abstract@^1.22.1:
- version "1.22.3"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32"
- integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==
- dependencies:
- array-buffer-byte-length "^1.0.0"
- arraybuffer.prototype.slice "^1.0.2"
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.5"
- es-set-tostringtag "^2.0.1"
+es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.22.4:
+ version "1.22.5"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.5.tgz#1417df4e97cc55f09bf7e58d1e614bc61cb8df46"
+ integrity sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==
+ dependencies:
+ array-buffer-byte-length "^1.0.1"
+ arraybuffer.prototype.slice "^1.0.3"
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ es-set-tostringtag "^2.0.3"
es-to-primitive "^1.2.1"
function.prototype.name "^1.1.6"
- get-intrinsic "^1.2.2"
- get-symbol-description "^1.0.0"
+ get-intrinsic "^1.2.4"
+ get-symbol-description "^1.0.2"
globalthis "^1.0.3"
gopd "^1.0.1"
- has-property-descriptors "^1.0.0"
- has-proto "^1.0.1"
+ has-property-descriptors "^1.0.2"
+ has-proto "^1.0.3"
has-symbols "^1.0.3"
- hasown "^2.0.0"
- internal-slot "^1.0.5"
- is-array-buffer "^3.0.2"
+ hasown "^2.0.1"
+ internal-slot "^1.0.7"
+ is-array-buffer "^3.0.4"
is-callable "^1.2.7"
- is-negative-zero "^2.0.2"
+ is-negative-zero "^2.0.3"
is-regex "^1.1.4"
- is-shared-array-buffer "^1.0.2"
+ is-shared-array-buffer "^1.0.3"
is-string "^1.0.7"
- is-typed-array "^1.1.12"
+ is-typed-array "^1.1.13"
is-weakref "^1.0.2"
object-inspect "^1.13.1"
object-keys "^1.1.1"
- object.assign "^4.1.4"
- regexp.prototype.flags "^1.5.1"
- safe-array-concat "^1.0.1"
- safe-regex-test "^1.0.0"
+ object.assign "^4.1.5"
+ regexp.prototype.flags "^1.5.2"
+ safe-array-concat "^1.1.0"
+ safe-regex-test "^1.0.3"
string.prototype.trim "^1.2.8"
string.prototype.trimend "^1.0.7"
string.prototype.trimstart "^1.0.7"
- typed-array-buffer "^1.0.0"
- typed-array-byte-length "^1.0.0"
- typed-array-byte-offset "^1.0.0"
- typed-array-length "^1.0.4"
+ typed-array-buffer "^1.0.2"
+ typed-array-byte-length "^1.0.1"
+ typed-array-byte-offset "^1.0.2"
+ typed-array-length "^1.0.5"
unbox-primitive "^1.0.2"
- which-typed-array "^1.1.13"
+ which-typed-array "^1.1.14"
+
+es-define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
+ integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
+ dependencies:
+ get-intrinsic "^1.2.4"
-es-iterator-helpers@^1.0.12:
- version "1.0.14"
- resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.14.tgz#19cd7903697d97e21198f3293b55e8985791c365"
- integrity sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==
+es-errors@^1.0.0, es-errors@^1.1.0, es-errors@^1.2.1, es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+es-iterator-helpers@^1.0.17:
+ version "1.0.17"
+ resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz#123d1315780df15b34eb181022da43e734388bb8"
+ integrity sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==
dependencies:
asynciterator.prototype "^1.0.0"
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- es-set-tostringtag "^2.0.1"
- function-bind "^1.1.1"
- get-intrinsic "^1.2.1"
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.4"
+ es-errors "^1.3.0"
+ es-set-tostringtag "^2.0.2"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
globalthis "^1.0.3"
- has-property-descriptors "^1.0.0"
+ has-property-descriptors "^1.0.2"
has-proto "^1.0.1"
has-symbols "^1.0.3"
- internal-slot "^1.0.5"
- iterator.prototype "^1.1.0"
- safe-array-concat "^1.0.0"
+ internal-slot "^1.0.7"
+ iterator.prototype "^1.1.2"
+ safe-array-concat "^1.1.0"
-es-set-tostringtag@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9"
- integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==
+es-set-tostringtag@^2.0.2, es-set-tostringtag@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
+ integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
dependencies:
- get-intrinsic "^1.2.2"
- has-tostringtag "^1.0.0"
- hasown "^2.0.0"
+ get-intrinsic "^1.2.4"
+ has-tostringtag "^1.0.2"
+ hasown "^2.0.1"
-es-shim-unscopables@^1.0.0:
+es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
@@ -2527,26 +2537,28 @@ eslint-plugin-react-perf@^3:
integrity sha512-boVn4IDHAjgGoAuAQ5Zrewt8fNbMDdiR7B2AkuiSK8lrJ9FwlOZc085kCs7+8u6B+YZ+pOn+tYG00xktnGAfOw==
eslint-plugin-react@^7:
- version "7.33.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608"
- integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==
+ version "7.34.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz#ab71484d54fc409c37025c5eca00eb4177a5e88c"
+ integrity sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==
dependencies:
- array-includes "^3.1.6"
- array.prototype.flatmap "^1.3.1"
- array.prototype.tosorted "^1.1.1"
+ array-includes "^3.1.7"
+ array.prototype.findlast "^1.2.4"
+ array.prototype.flatmap "^1.3.2"
+ array.prototype.toreversed "^1.1.2"
+ array.prototype.tosorted "^1.1.3"
doctrine "^2.1.0"
- es-iterator-helpers "^1.0.12"
+ es-iterator-helpers "^1.0.17"
estraverse "^5.3.0"
jsx-ast-utils "^2.4.1 || ^3.0.0"
minimatch "^3.1.2"
- object.entries "^1.1.6"
- object.fromentries "^2.0.6"
- object.hasown "^1.1.2"
- object.values "^1.1.6"
+ object.entries "^1.1.7"
+ object.fromentries "^2.0.7"
+ object.hasown "^1.1.3"
+ object.values "^1.1.7"
prop-types "^15.8.1"
- resolve "^2.0.0-next.4"
+ resolve "^2.0.0-next.5"
semver "^6.3.1"
- string.prototype.matchall "^4.0.8"
+ string.prototype.matchall "^4.0.10"
eslint-plugin-unused-imports@^3:
version "3.1.0"
@@ -2873,7 +2885,7 @@ fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-function-bind@^1.1.1, function-bind@^1.1.2:
+function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
@@ -2903,11 +2915,12 @@ get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
- integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
+get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
+ integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
dependencies:
+ es-errors "^1.3.0"
function-bind "^1.1.2"
has-proto "^1.0.1"
has-symbols "^1.0.3"
@@ -2930,13 +2943,14 @@ get-stream@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-get-symbol-description@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
- integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+get-symbol-description@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5"
+ integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==
dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.1"
+ call-bind "^1.0.5"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
@@ -3013,29 +3027,29 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-has-property-descriptors@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
- integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
dependencies:
- get-intrinsic "^1.2.2"
+ es-define-property "^1.0.0"
-has-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
- integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
+has-proto@^1.0.1, has-proto@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
+ integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
has-symbols@^1.0.2, has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-has-tostringtag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
- integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+has-tostringtag@^1.0.0, has-tostringtag@^1.0.1, has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
dependencies:
- has-symbols "^1.0.2"
+ has-symbols "^1.0.3"
has-value@^0.3.1:
version "0.3.1"
@@ -3068,12 +3082,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6"
- integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==
-
-hasown@^2.0.0:
+hasown@^2.0.0, hasown@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa"
integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==
@@ -3146,21 +3155,12 @@ inherits@2:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-internal-slot@^1.0.3:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
- integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
- dependencies:
- get-intrinsic "^1.2.0"
- has "^1.0.3"
- side-channel "^1.0.4"
-
-internal-slot@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930"
- integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==
+internal-slot@^1.0.5, internal-slot@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
+ integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==
dependencies:
- get-intrinsic "^1.2.2"
+ es-errors "^1.3.0"
hasown "^2.0.0"
side-channel "^1.0.4"
@@ -3178,14 +3178,13 @@ is-accessor-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
-is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
- integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==
+is-array-buffer@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98"
+ integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==
dependencies:
call-bind "^1.0.2"
- get-intrinsic "^1.2.0"
- is-typed-array "^1.1.10"
+ get-intrinsic "^1.2.1"
is-arrayish@^0.2.1:
version "0.2.1"
@@ -3238,13 +3237,6 @@ is-core-module@^2.13.0, is-core-module@^2.13.1:
dependencies:
hasown "^2.0.0"
-is-core-module@^2.9.0:
- version "2.13.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
- integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
- dependencies:
- has "^1.0.3"
-
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -3337,10 +3329,10 @@ is-map@^2.0.1:
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
-is-negative-zero@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
- integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
+is-negative-zero@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
+ integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
is-number-object@^1.0.4:
version "1.0.7"
@@ -3386,12 +3378,12 @@ is-set@^2.0.1:
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
-is-shared-array-buffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
- integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
+is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
+ integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
dependencies:
- call-bind "^1.0.2"
+ call-bind "^1.0.7"
is-stream@^1.1.0:
version "1.1.0"
@@ -3417,12 +3409,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
-is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
- integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
+is-typed-array@^1.1.13:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
+ integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
dependencies:
- which-typed-array "^1.1.11"
+ which-typed-array "^1.1.14"
is-typedarray@^1.0.0:
version "1.0.0"
@@ -3534,16 +3526,16 @@ istanbul-reports@^3.1.3:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-iterator.prototype@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.0.tgz#690c88b043d821f783843aaf725d7ac3b62e3b46"
- integrity sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==
+iterator.prototype@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
+ integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==
dependencies:
- define-properties "^1.1.4"
- get-intrinsic "^1.1.3"
+ define-properties "^1.2.1"
+ get-intrinsic "^1.2.1"
has-symbols "^1.0.3"
- has-tostringtag "^1.0.0"
- reflect.getprototypeof "^1.0.3"
+ reflect.getprototypeof "^1.0.4"
+ set-function-name "^2.0.1"
jest-changed-files@^29.7.0:
version "29.7.0"
@@ -4309,7 +4301,7 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-inspect@^1.13.1, object-inspect@^1.9.0:
+object-inspect@^1.13.1:
version "1.13.1"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
@@ -4326,7 +4318,7 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
-object.assign@^4.1.4:
+object.assign@^4.1.4, object.assign@^4.1.5:
version "4.1.5"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
@@ -4336,7 +4328,7 @@ object.assign@^4.1.4:
has-symbols "^1.0.3"
object-keys "^1.1.1"
-object.entries@^1.1.6:
+object.entries@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131"
integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==
@@ -4345,15 +4337,6 @@ object.entries@^1.1.6:
define-properties "^1.2.0"
es-abstract "^1.22.1"
-object.fromentries@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73"
- integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
object.fromentries@^2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616"
@@ -4373,7 +4356,7 @@ object.groupby@^1.0.1:
es-abstract "^1.22.1"
get-intrinsic "^1.2.1"
-object.hasown@^1.1.2:
+object.hasown@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae"
integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==
@@ -4545,6 +4528,11 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
+possible-typed-array-names@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
+ integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
+
postcss@^8.4.35:
version "8.4.35"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7"
@@ -4697,15 +4685,16 @@ react@^18:
dependencies:
loose-envify "^1.1.0"
-reflect.getprototypeof@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz#2738fd896fcc3477ffbd4190b40c2458026b6928"
- integrity sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==
+reflect.getprototypeof@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz#e0bd28b597518f16edaf9c0e292c631eb13e0674"
+ integrity sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==
dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- get-intrinsic "^1.1.1"
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.3"
+ es-errors "^1.0.0"
+ get-intrinsic "^1.2.3"
globalthis "^1.0.3"
which-builtin-type "^1.1.3"
@@ -4722,23 +4711,15 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexp.prototype.flags@^1.4.3:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
- integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- functions-have-names "^1.2.3"
-
-regexp.prototype.flags@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e"
- integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==
+regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
+ integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- set-function-name "^2.0.0"
+ call-bind "^1.0.6"
+ define-properties "^1.2.1"
+ es-errors "^1.3.0"
+ set-function-name "^2.0.1"
remove-trailing-separator@^1.0.1:
version "1.1.0"
@@ -4805,12 +4786,12 @@ resolve@^1.20.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-resolve@^2.0.0-next.4:
- version "2.0.0-next.4"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660"
- integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==
+resolve@^2.0.0-next.5:
+ version "2.0.0-next.5"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c"
+ integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==
dependencies:
- is-core-module "^2.9.0"
+ is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
@@ -4865,23 +4846,23 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
-safe-array-concat@^1.0.0, safe-array-concat@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c"
- integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==
+safe-array-concat@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692"
+ integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==
dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.2.1"
+ call-bind "^1.0.5"
+ get-intrinsic "^1.2.2"
has-symbols "^1.0.3"
isarray "^2.0.5"
-safe-regex-test@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
- integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
+safe-regex-test@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377"
+ integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==
dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.3"
+ call-bind "^1.0.6"
+ es-errors "^1.3.0"
is-regex "^1.1.4"
safe-regex@^1.1.0:
@@ -4930,24 +4911,27 @@ semver@^7.5.3, semver@^7.5.4:
dependencies:
lru-cache "^6.0.0"
-set-function-length@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
- integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
+set-function-length@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425"
+ integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==
dependencies:
- define-data-property "^1.1.1"
- get-intrinsic "^1.2.1"
+ define-data-property "^1.1.2"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.3"
gopd "^1.0.1"
- has-property-descriptors "^1.0.0"
+ has-property-descriptors "^1.0.1"
-set-function-name@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
- integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==
+set-function-name@^2.0.0, set-function-name@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
+ integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
dependencies:
- define-data-property "^1.0.1"
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
functions-have-names "^1.2.3"
- has-property-descriptors "^1.0.0"
+ has-property-descriptors "^1.0.2"
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
@@ -4984,13 +4968,14 @@ shebang-regex@^3.0.0:
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
side-channel@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
- integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
+ integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
dependencies:
- call-bind "^1.0.0"
- get-intrinsic "^1.0.2"
- object-inspect "^1.9.0"
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+ object-inspect "^1.13.1"
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
@@ -5120,18 +5105,19 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
-string.prototype.matchall@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3"
- integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==
+string.prototype.matchall@^4.0.10:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100"
+ integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==
dependencies:
call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- get-intrinsic "^1.1.3"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ get-intrinsic "^1.2.1"
has-symbols "^1.0.3"
- internal-slot "^1.0.3"
- regexp.prototype.flags "^1.4.3"
+ internal-slot "^1.0.5"
+ regexp.prototype.flags "^1.5.0"
+ set-function-name "^2.0.0"
side-channel "^1.0.4"
string.prototype.trim@^1.2.8:
@@ -5330,44 +5316,49 @@ type-fest@^0.21.3:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-typed-array-buffer@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
- integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==
+typed-array-buffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3"
+ integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==
dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.2.1"
- is-typed-array "^1.1.10"
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ is-typed-array "^1.1.13"
-typed-array-byte-length@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0"
- integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==
+typed-array-byte-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67"
+ integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==
dependencies:
- call-bind "^1.0.2"
+ call-bind "^1.0.7"
for-each "^0.3.3"
- has-proto "^1.0.1"
- is-typed-array "^1.1.10"
+ gopd "^1.0.1"
+ has-proto "^1.0.3"
+ is-typed-array "^1.1.13"
-typed-array-byte-offset@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b"
- integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==
+typed-array-byte-offset@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063"
+ integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==
dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.2"
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
for-each "^0.3.3"
- has-proto "^1.0.1"
- is-typed-array "^1.1.10"
+ gopd "^1.0.1"
+ has-proto "^1.0.3"
+ is-typed-array "^1.1.13"
-typed-array-length@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
- integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
+typed-array-length@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.5.tgz#57d44da160296d8663fd63180a1802ebf25905d5"
+ integrity sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==
dependencies:
- call-bind "^1.0.2"
+ call-bind "^1.0.7"
for-each "^0.3.3"
- is-typed-array "^1.1.9"
+ gopd "^1.0.1"
+ has-proto "^1.0.3"
+ is-typed-array "^1.1.13"
+ possible-typed-array-names "^1.0.0"
typedarray-to-buffer@^3.1.5:
version "3.1.5"
@@ -5430,9 +5421,9 @@ use-composed-ref@^1.3.0:
integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==
use-context-selector@^1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.4.1.tgz#eb96279965846b72915d7f899b8e6ef1d768b0ae"
- integrity sha512-Io2ArvcRO+6MWIhkdfMFt+WKQX+Vb++W8DS2l03z/Vw/rz3BclKpM0ynr4LYGyU85Eke+Yx5oIhTY++QR0ZDoA==
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.4.2.tgz#168aa55fb9403bc7cc6c2c5c4ff8ca1118b0d9cd"
+ integrity sha512-OZvd4TWirCMOwIwFlQFnECIyEGb3fvSrd71A8sGWiAPl6SIJTS60Ho+WnAr67T6/JedvlperiReCM5n9mnM3fQ==
use-isomorphic-layout-effect@^1.1.1:
version "1.1.2"
@@ -5517,27 +5508,16 @@ which-collection@^1.0.1:
is-weakmap "^2.0.1"
is-weakset "^2.0.1"
-which-typed-array@^1.1.11, which-typed-array@^1.1.13:
- version "1.1.13"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
- integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
+which-typed-array@^1.1.14, which-typed-array@^1.1.9:
+ version "1.1.14"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06"
+ integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==
dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.4"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-tostringtag "^1.0.0"
-
-which-typed-array@^1.1.9:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a"
- integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==
- dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.2"
+ available-typed-arrays "^1.0.6"
+ call-bind "^1.0.5"
for-each "^0.3.3"
gopd "^1.0.1"
- has-tostringtag "^1.0.0"
+ has-tostringtag "^1.0.1"
which@^1.2.9:
version "1.3.1"
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java b/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java
index a2c220b6cbc..e3d7becd86a 100644
--- a/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java
+++ b/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java
@@ -38,7 +38,7 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer {
if (doMapField(schema, summaryField)) {
SDField sdField = schema.getConcreteField(summaryField.getName());
if (sdField != null && GeoPos.isAnyPos(sdField)) {
- summaryMap.put(summaryField, Collections.singletonList(summaryField.getName()));
+ summaryMap.put(summaryField, List.of(summaryField.getName()));
} else {
summaryMap.put(summaryField, from);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RoutingSelectorValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RoutingSelectorValidator.java
deleted file mode 100644
index bd933f1c656..00000000000
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RoutingSelectorValidator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.model.application.validation;
-
-import com.yahoo.document.select.DocumentSelector;
-import com.yahoo.vespa.model.application.validation.Validation.Context;
-import com.yahoo.vespa.model.search.IndexedSearchCluster;
-import com.yahoo.vespa.model.search.SearchCluster;
-
-
-/**
- * Validates routing selector for search and content clusters
- */
-public class RoutingSelectorValidator implements Validator {
-
- @Override
- public void validate(Context context) {
- for (SearchCluster cluster : context.model().getSearchClusters()) {
- if (cluster instanceof IndexedSearchCluster) {
- IndexedSearchCluster sc = (IndexedSearchCluster) cluster;
- String routingSelector = sc.getRoutingSelector();
- if (routingSelector == null) continue;
- try {
- new DocumentSelector(routingSelector);
- } catch (com.yahoo.document.select.parser.ParseException e) {
- context.illegal("Failed to parse routing selector for search cluster '" + sc.getClusterName() + "'", e);
- }
- }
- }
- }
-
-}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
index 56b7e6ee0c8..ed0804f7420 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
@@ -7,7 +7,6 @@ import com.yahoo.config.application.api.ValidationOverrides.ValidationException;
import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ValidationParameters;
import com.yahoo.config.model.deploy.DeployState;
-import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.application.validation.change.CertificateRemovalChangeValidator;
import com.yahoo.vespa.model.application.validation.change.ConfigValueChangeValidator;
@@ -28,13 +27,10 @@ import com.yahoo.yolean.Exceptions;
import java.util.ArrayList;
import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.Set;
import java.util.logging.Level;
-import java.util.stream.Collectors;
/**
* Executor of validators. This defines the right order of validator execution.
@@ -82,7 +78,6 @@ public class Validation {
private static void validateRouting(Execution execution) {
new RoutingValidator().validate(execution);
- new RoutingSelectorValidator().validate(execution);
}
private static void validateModel(ValidationParameters validationParameters, Execution execution) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java
index 6f9e72117c8..0a8ae69ccf0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/SearchChain.java
@@ -5,7 +5,6 @@ import com.yahoo.component.chain.model.ChainSpecification;
import com.yahoo.search.searchchain.model.federation.FederationOptions;
import com.yahoo.vespa.model.container.component.chain.Chain;
-import java.util.Collections;
import java.util.List;
/**
@@ -25,7 +24,7 @@ public class SearchChain extends Chain<Searcher<?>> {
//A list of documents types that this search chain provides results for, empty if unknown
public List<String> getDocumentTypes() {
- return Collections.emptyList();
+ return List.of();
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
index 0027a9ca45c..fc5b5c25e6d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
@@ -70,7 +70,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
private final List<SearchNode> nonIndexed = new ArrayList<>();
private final Map<StorageGroup, NodeSpec> groupToSpecMap = new LinkedHashMap<>();
- private Optional<ResourceLimits> resourceLimits = Optional.empty();
+ private ResourceLimits resourceLimits;
private final ProtonConfig.Indexing.Optimize.Enum feedSequencerType;
private final double defaultFeedConcurrency;
private final double defaultFeedNiceness;
@@ -103,14 +103,13 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
Boolean flushOnShutdownElem = clusterElem.childAsBoolean("engine.proton.flush-on-shutdown");
Boolean syncTransactionLog = clusterElem.childAsBoolean("engine.proton.sync-transactionlog");
- ContentSearchCluster search = new ContentSearchCluster(ancestor,
- clusterName,
- deployState.getProperties().featureFlags(),
- documentDefinitions,
- globallyDistributedDocuments,
- getFlushOnShutdown(flushOnShutdownElem),
- syncTransactionLog,
- fractionOfMemoryReserved);
+ var search = new ContentSearchCluster(ancestor, clusterName,
+ deployState.getProperties().featureFlags(),
+ documentDefinitions,
+ globallyDistributedDocuments,
+ getFlushOnShutdown(flushOnShutdownElem),
+ syncTransactionLog,
+ fractionOfMemoryReserved);
ModelElement tuning = clusterElem.childByPath("engine.proton.tuning");
if (tuning != null) {
@@ -161,8 +160,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
String clusterName, ContentSearchCluster search) {
List<ModelElement> indexedDefs = getIndexedSchemas(clusterElem);
if (!indexedDefs.isEmpty()) {
- IndexedSearchCluster isc = new IndexedSearchCluster(search, clusterName, 0, deployState.featureFlags());
- isc.setRoutingSelector(clusterElem.childAsString("documents.selection"));
+ IndexedSearchCluster isc = new IndexedSearchCluster(search, clusterName, 0, search, deployState.featureFlags());
Double visibilityDelay = clusterElem.childAsDouble("engine.proton.visibility-delay");
if (visibilityDelay != null) {
@@ -236,7 +234,6 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
if (queryTimeout != null) {
cluster.setQueryTimeout(queryTimeout);
}
- cluster.defaultDocumentsConfig();
cluster.deriveFromSchemas(deployState);
addCluster(cluster);
}
@@ -295,11 +292,10 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
NodeSpec spec = getNextSearchNodeSpec(parentGroup);
SearchNode searchNode;
TransactionLogServer tls;
- Optional<Tuning> tuning = Optional.ofNullable(this.tuning);
if (element == null) {
searchNode = SearchNode.create(parent, "" + node.getDistributionKey(), node.getDistributionKey(), spec,
clusterName, node, flushOnShutdown, tuning, resourceLimits, deployState.isHosted(),
- fractionOfMemoryReserved, this, deployState.featureFlags());
+ fractionOfMemoryReserved, deployState.featureFlags());
searchNode.setHostResource(node.getHostResource());
searchNode.initService(deployState);
@@ -308,7 +304,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
tls.initService(deployState);
} else {
searchNode = new SearchNode.Builder(""+node.getDistributionKey(), spec, clusterName, node, flushOnShutdown,
- tuning, resourceLimits, fractionOfMemoryReserved, this)
+ tuning, resourceLimits, fractionOfMemoryReserved)
.build(deployState, parent, element.getXml());
tls = new TransactionLogServer.Builder(clusterName, syncTransactionLog).build(deployState, searchNode, element.getXml());
}
@@ -337,7 +333,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
public void setTuning(Tuning tuning) { this.tuning = tuning; }
private void setResourceLimits(ResourceLimits resourceLimits) {
- this.resourceLimits = Optional.of(resourceLimits);
+ this.resourceLimits = resourceLimits;
}
public boolean usesHierarchicDistribution() {
@@ -345,11 +341,6 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
}
public void handleRedundancy(Redundancy redundancy) {
- if (hasIndexedCluster()) {
- // Important: these must all be the normalized "within a single leaf group" values,
- // _not_ the cluster-wide, cross-group values.
- indexedCluster.setRedundancy(redundancy.finalRedundancy());
- }
this.redundancy = redundancy;
}
@@ -437,7 +428,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
int numDocumentDbs = builder.documentdb.size();
builder.initialize(new ProtonConfig.Initialize.Builder().threads(numDocumentDbs + 1));
- resourceLimits.ifPresent(limits -> limits.getConfig(builder));
+ if (resourceLimits != null) resourceLimits.getConfig(builder);
if (tuning != null) {
tuning.getConfig(builder);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentSelectionConverter.java b/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentSelectionConverter.java
deleted file mode 100644
index 89d2bdaf54f..00000000000
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentSelectionConverter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.model.search;
-
-import com.yahoo.document.select.*;
-import com.yahoo.document.select.convert.SelectionExpressionConverter;
-import com.yahoo.document.select.parser.ParseException;
-import java.util.Map;
-
-/**
- * @author Ulf Lilleengen
- */
-// TODO: This should be renamed to reflect it is only a validator of expressions
-// (in DocumentSelector and SelectionExpressionConverter)
-public class DocumentSelectionConverter {
-
- private final DocumentSelector selector;
- private final Map<String, String> queryExpressionMap;
-
- public DocumentSelectionConverter(String selection) throws ParseException, UnsupportedOperationException, IllegalArgumentException {
- this.selector = new DocumentSelector(selection);
- NowCheckVisitor nowChecker = new NowCheckVisitor();
- selector.visit(nowChecker);
- if (nowChecker.requiresConversion()) {
- SelectionExpressionConverter converter = new SelectionExpressionConverter();
- selector.visit(converter);
- this.queryExpressionMap = converter.getQueryMap();
- } else {
- this.queryExpressionMap = null;
- }
- }
-
- /**
- * Transforms the selection into a search query.
- *
- * @return a search query representing the selection
- */
- public String getQuery(String documentType) {
- if (queryExpressionMap == null)
- return null;
- if (!queryExpressionMap.containsKey(documentType))
- return null;
- return queryExpressionMap.get(documentType);
- }
-
- /**
- * Transforms the selection into an inverted search query.
- *
- * @return a search query representing the selection
- */
- public String getInvertedQuery(String documentType) {
- String query = getQuery(documentType);
- if (query == null)
- return null;
- return query.replaceAll(">", "<");
- }
-
-}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
index 8824112c118..885cb53a148 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
@@ -20,11 +20,11 @@ import com.yahoo.vespa.config.search.RankProfilesConfig;
import com.yahoo.vespa.config.search.core.ProtonConfig;
import com.yahoo.vespa.configdefinition.IlscriptsConfig;
import com.yahoo.vespa.model.content.DispatchTuning;
+import com.yahoo.vespa.model.content.Redundancy;
import com.yahoo.vespa.model.content.SearchCoverage;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -44,30 +44,21 @@ public class IndexedSearchCluster extends SearchCluster
private Tuning tuning;
private SearchCoverage searchCoverage;
- // This is the document selector string as derived from the subscription tag.
- private String routingSelector = null;
private final List<DocumentDatabase> documentDbs = new LinkedList<>();
private final MultipleDocumentDatabasesConfigProducer documentDbsConfigProducer;
- private int redundancy = 1;
+ private final Redundancy.Provider redundancyProvider;
private final List<SearchNode> searchNodes = new ArrayList<>();
private final DispatchTuning.DispatchPolicy defaultDispatchPolicy;
private final double dispatchWarmup;
private final String summaryDecodePolicy;
- /**
- * Returns the document selector that is able to resolve what documents are to be routed to this search cluster.
- * This string uses the document selector language as defined in the "document" module.
- *
- * @return the document selector
- */
- public String getRoutingSelector() {
- return routingSelector;
- }
- public IndexedSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, int index, ModelContext.FeatureFlags featureFlags) {
+ public IndexedSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, int index,
+ Redundancy.Provider redundancyProvider, ModelContext.FeatureFlags featureFlags) {
super(parent, clusterName, index);
documentDbsConfigProducer = new MultipleDocumentDatabasesConfigProducer(this, documentDbs);
+ this.redundancyProvider = redundancyProvider;
defaultDispatchPolicy = DispatchTuning.Builder.toDispatchPolicy(featureFlags.queryDispatchPolicy());
dispatchWarmup = featureFlags.queryDispatchWarmup();
summaryDecodePolicy = featureFlags.summaryDecodePolicy();
@@ -102,32 +93,6 @@ public class IndexedSearchCluster extends SearchCluster
.configid(sdoc.getConfigId());
}
- public void setRoutingSelector(String selector) {
- this.routingSelector = selector;
- if (this.routingSelector != null) {
- try {
- new DocumentSelectionConverter(this.routingSelector);
- } catch (Exception e) {
- throw new IllegalArgumentException("Invalid routing selector: " + e.getMessage());
- }
- }
- }
- /**
- * Create default config if not specified by user.
- * Accept empty strings as user config - it means that all feeds/documents are accepted.
- */
- public void defaultDocumentsConfig() {
- if ((routingSelector == null) && !getDocumentNames().isEmpty()) {
- Iterator<String> it = getDocumentNames().iterator();
- routingSelector = it.next();
- StringBuilder sb = new StringBuilder(routingSelector);
- while (it.hasNext()) {
- sb.append(" or ").append(it.next());
- }
- routingSelector = sb.toString();
- }
- }
-
@Override
public void deriveFromSchemas(DeployState deployState) {
for (SchemaInfo spec : schemas().values()) {
@@ -188,10 +153,6 @@ public class IndexedSearchCluster extends SearchCluster
documentDbsConfigProducer.getConfig(builder);
}
- public void setRedundancy(int redundancy) {
- this.redundancy = redundancy;
- }
-
private static DistributionPolicy.Enum toDistributionPolicy(DispatchTuning.DispatchPolicy tuning) {
return switch (tuning) {
case ADAPTIVE: yield DistributionPolicy.ADAPTIVE;
@@ -227,7 +188,7 @@ public class IndexedSearchCluster extends SearchCluster
if (tuning.dispatch.getMaxHitsPerPartition() != null)
builder.maxHitsPerNode(tuning.dispatch.getMaxHitsPerPartition());
- builder.redundancy(redundancy);
+ builder.redundancy(redundancyProvider.redundancy().finalRedundancy());
if (searchCoverage != null) {
if (searchCoverage.getMinimum() != null)
builder.minSearchCoverage(searchCoverage.getMinimum() * 100.0);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
index c4f1069e0aa..2ab11e31f59 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
@@ -58,14 +58,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
/** Returns the document databases contained in this cluster */
public abstract List<DocumentDatabase> getDocumentDbs();
- /** Returns a list of the document type names used in this search cluster */
- public List<String> getDocumentNames() {
- return schemas.values()
- .stream()
- .map(schema -> schema.fullSchema().getDocument().getDocumentName().getName())
- .toList();
- }
-
public String getClusterName() { return clusterName; }
public final String getIndexingModeName() { return getIndexingMode().getName(); }
public final boolean isStreaming() { return getIndexingMode() == IndexingMode.STREAMING; }
@@ -79,8 +71,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
public final void setClusterIndex(int index) { this.index = index; }
public final int getClusterIndex() { return index; }
- public abstract void defaultDocumentsConfig();
-
public abstract void getConfig(AttributesConfig.Builder builder);
public abstract void getConfig(RankProfilesConfig.Builder builder);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
index dc4f9273868..61933c10504 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
@@ -21,7 +21,6 @@ import com.yahoo.vespa.model.admin.monitoring.Monitoring;
import com.yahoo.vespa.model.application.validation.RestartConfigs;
import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder;
import com.yahoo.vespa.model.content.ContentNode;
-import com.yahoo.vespa.model.content.Redundancy;
import com.yahoo.vespa.model.content.ResourceLimits;
import org.w3c.dom.Element;
@@ -64,10 +63,9 @@ public class SearchNode extends AbstractService implements
private final String clusterName;
private TransactionLogServer tls;
private final AbstractService serviceLayerService;
- private final Optional<Tuning> tuning;
- private final Optional<ResourceLimits> resourceLimits;
+ private final Tuning tuning;
+ private final ResourceLimits resourceLimits;
private final double fractionOfMemoryReserved;
- private final Redundancy.Provider redundancyProvider;
public static class Builder extends VespaDomBuilder.DomConfigProducerBuilderBase<SearchNode> {
@@ -76,14 +74,13 @@ public class SearchNode extends AbstractService implements
private final String clusterName;
private final ContentNode contentNode;
private final boolean flushOnShutdown;
- private final Optional<Tuning> tuning;
- private final Optional<ResourceLimits> resourceLimits;
+ private final Tuning tuning;
+ private final ResourceLimits resourceLimits;
private final double fractionOfMemoryReserved;
- private final Redundancy.Provider redundancyProvider;
public Builder(String name, NodeSpec nodeSpec, String clusterName, ContentNode node,
- boolean flushOnShutdown, Optional<Tuning> tuning, Optional<ResourceLimits> resourceLimits,
- double fractionOfMemoryReserved, Redundancy.Provider redundancyprovider) {
+ boolean flushOnShutdown, Tuning tuning, ResourceLimits resourceLimits,
+ double fractionOfMemoryReserved) {
this.name = name;
this.nodeSpec = nodeSpec;
this.clusterName = clusterName;
@@ -92,7 +89,6 @@ public class SearchNode extends AbstractService implements
this.tuning = tuning;
this.resourceLimits = resourceLimits;
this.fractionOfMemoryReserved = fractionOfMemoryReserved;
- this.redundancyProvider = redundancyprovider;
}
@Override
@@ -100,18 +96,18 @@ public class SearchNode extends AbstractService implements
Element producerSpec) {
return SearchNode.create(ancestor, name, contentNode.getDistributionKey(), nodeSpec, clusterName, contentNode,
flushOnShutdown, tuning, resourceLimits, deployState.isHosted(),
- fractionOfMemoryReserved, redundancyProvider, deployState.featureFlags());
+ fractionOfMemoryReserved, deployState.featureFlags());
}
}
public static SearchNode create(TreeConfigProducer<?> parent, String name, int distributionKey, NodeSpec nodeSpec,
String clusterName, AbstractService serviceLayerService, boolean flushOnShutdown,
- Optional<Tuning> tuning, Optional<ResourceLimits> resourceLimits,
- boolean isHostedVespa, double fractionOfMemoryReserved, Redundancy.Provider redundancyProvider,
+ Tuning tuning, ResourceLimits resourceLimits,
+ boolean isHostedVespa, double fractionOfMemoryReserved,
ModelContext.FeatureFlags featureFlags) {
SearchNode node = new SearchNode(parent, name, distributionKey, nodeSpec, clusterName, serviceLayerService, flushOnShutdown,
- tuning, resourceLimits, isHostedVespa, fractionOfMemoryReserved, redundancyProvider);
+ tuning, resourceLimits, isHostedVespa, fractionOfMemoryReserved);
if (featureFlags.loadCodeAsHugePages()) {
node.addEnvironmentVariable("VESPA_LOAD_CODE_AS_HUGEPAGES", true);
}
@@ -123,8 +119,8 @@ public class SearchNode extends AbstractService implements
private SearchNode(TreeConfigProducer<?> parent, String name, int distributionKey, NodeSpec nodeSpec,
String clusterName, AbstractService serviceLayerService, boolean flushOnShutdown,
- Optional<Tuning> tuning, Optional<ResourceLimits> resourceLimits, boolean isHostedVespa,
- double fractionOfMemoryReserved, Redundancy.Provider redundancyProvider) {
+ Tuning tuning, ResourceLimits resourceLimits, boolean isHostedVespa,
+ double fractionOfMemoryReserved) {
super(parent, name);
this.distributionKey = distributionKey;
this.serviceLayerService = serviceLayerService;
@@ -141,7 +137,6 @@ public class SearchNode extends AbstractService implements
// Properties are set in DomSearchBuilder
this.tuning = tuning;
this.resourceLimits = resourceLimits;
- this.redundancyProvider = redundancyProvider;
setPropertiesElastic(clusterName, distributionKey);
addEnvironmentVariable("OMP_NUM_THREADS", 1);
}
@@ -277,13 +272,12 @@ public class SearchNode extends AbstractService implements
}
Optional<NodeResources> nodeResources = getSpecifiedNodeResources();
if (nodeResources.isPresent()) {
- var nodeResourcesTuning = new NodeResourcesTuning(nodeResources.get(),
- tuning.map(Tuning::threadsPerSearch).orElse(1),
- fractionOfMemoryReserved);
+ int threadsPerSearch = tuning != null ? tuning.threadsPerSearch() : 1;
+ var nodeResourcesTuning = new NodeResourcesTuning(nodeResources.get(), threadsPerSearch, fractionOfMemoryReserved);
nodeResourcesTuning.getConfig(builder);
- tuning.ifPresent(t -> t.getConfig(builder));
- resourceLimits.ifPresent(l -> l.getConfig(builder));
+ if (tuning != null) tuning.getConfig(builder);
+ if (resourceLimits != null) resourceLimits.getConfig(builder);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
index 7a4dd935acf..f3ae7e2a312 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
@@ -95,9 +95,6 @@ public class StreamingSearchCluster extends SearchCluster implements
}
@Override
- public void defaultDocumentsConfig() { }
-
- @Override
public void getConfig(IndexInfoConfig.Builder builder) {
derivedConfig.getIndexInfo().getConfig(builder);
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java
index 75884c298fb..8f9102801c2 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java
@@ -28,42 +28,19 @@ public class MockSearchClusters {
@Override
public void deriveFromSchemas(DeployState deployState) { }
+ @Override public List<DocumentDatabase> getDocumentDbs() {return List.of();}
+ @Override public void getConfig(AttributesConfig.Builder builder) {}
+ @Override public void getConfig(DocumentdbInfoConfig.Builder builder) {}
+ @Override public void getConfig(RankProfilesConfig.Builder builder) {}
+ @Override public void getConfig(IndexInfoConfig.Builder builder) {}
+ @Override public void getConfig(IlscriptsConfig.Builder builder) {}
+ @Override public void getConfig(SchemaInfoConfig.Builder builder) {}
@Override
- public List<DocumentDatabase> getDocumentDbs() {
- return List.of();
+ protected SearchCluster.IndexingMode getIndexingMode() {
+ return streaming ? SearchCluster.IndexingMode.STREAMING : SearchCluster.IndexingMode.REALTIME;
}
- @Override
- public void defaultDocumentsConfig() {}
-
- @Override
- public void getConfig(AttributesConfig.Builder builder) {
- }
-
- @Override
- public void getConfig(DocumentdbInfoConfig.Builder builder) {
- }
-
- @Override
- public void getConfig(RankProfilesConfig.Builder builder) {
- }
-
- @Override
- public void getConfig(IndexInfoConfig.Builder builder) {
- }
-
- @Override
- public void getConfig(IlscriptsConfig.Builder builder) {
- }
-
- @Override
- public void getConfig(SchemaInfoConfig.Builder builder) {
- }
-
- @Override
- protected SearchCluster.IndexingMode getIndexingMode() { return streaming ? SearchCluster.IndexingMode.STREAMING : SearchCluster.IndexingMode.REALTIME; }
-
}
public static SearchCluster mockSearchCluster(AbstractConfigProducerRoot root, String clusterName, int clusterIndex, boolean isStreaming) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentSelectionConverterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentSelectionConverterTest.java
deleted file mode 100644
index f495de2c6a4..00000000000
--- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/DocumentSelectionConverterTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.model.search.test;
-
-import com.yahoo.document.select.parser.ParseException;
-import com.yahoo.vespa.model.search.DocumentSelectionConverter;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-/**
- * Unit tests for RemoveSelection.
- * @author Ulf Lilleengen
- */
-public class DocumentSelectionConverterTest {
- @Test
- void testQueryConversion() throws ParseException, IllegalArgumentException, UnsupportedOperationException {
- DocumentSelectionConverter converter = new DocumentSelectionConverter("music.expire>now() - 3600 and video.expire > now() - 300");
- assertEquals("expire:>now(3600)", converter.getQuery("music"));
- assertEquals("expire:<now(3600)", converter.getInvertedQuery("music"));
- assertEquals("expire:>now(300)", converter.getQuery("video"));
- assertEquals("expire:<now(300)", converter.getInvertedQuery("video"));
- assertNull(converter.getQuery("book"));
- assertNull(converter.getInvertedQuery("book"));
- }
-
- @Test
- void testSelection() throws ParseException, IllegalArgumentException, UnsupportedOperationException {
- DocumentSelectionConverter converter = new DocumentSelectionConverter("music.expire>music.expire.nowdate");
- assertNull(converter.getQuery("music"));
- assertNull(converter.getInvertedQuery("music"));
- }
-}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java
index 55a55075625..bc981c3de7c 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java
@@ -10,14 +10,11 @@ import com.yahoo.vespa.config.search.core.ProtonConfig;
import com.yahoo.vespa.defaults.Defaults;
import com.yahoo.vespa.model.Host;
import com.yahoo.vespa.model.HostResource;
-import com.yahoo.vespa.model.content.Redundancy;
import com.yahoo.vespa.model.search.NodeSpec;
import com.yahoo.vespa.model.search.SearchNode;
import com.yahoo.vespa.model.search.TransactionLogServer;
import org.junit.jupiter.api.Test;
-import java.util.Optional;
-
import static org.junit.jupiter.api.Assertions.*;
/**
@@ -50,7 +47,7 @@ public class SearchNodeTest {
private static SearchNode createSearchNode(MockRoot root, String name, int distributionKey, NodeSpec nodeSpec,
boolean flushOnShutDown, boolean isHosted, ModelContext.FeatureFlags featureFlags) {
return SearchNode.create(root, name, distributionKey, nodeSpec, "mycluster", null, flushOnShutDown,
- Optional.empty(), Optional.empty(), isHosted, 0.0, () -> new Redundancy(1,1,1,1,1), featureFlags);
+ null, null, isHosted, 0.0, featureFlags);
}
private static SearchNode createSearchNode(MockRoot root) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index 5116898b795..07a8179732f 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -1107,7 +1107,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
private File decompressApplication(CompressedApplicationInputStream in, File tempDir) {
try {
return in.decompress(tempDir);
- } catch (IOException e) {
+ } catch (IOException | UncheckedIOException e) {
throw new IllegalArgumentException("Unable to decompress application stream", e);
}
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java
index d4aa0676c4f..07b7fa0f244 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java
@@ -180,7 +180,7 @@ class ApplicationApiHandlerTest {
"""
{
"error-code": "BAD_REQUEST",
- "message": "Error preprocessing application package for test.default, session 2: services.xml does not exist in application package"
+ "message": "Unable to decompress application stream: Cannot find zip signature within the file"
}
""");
}
diff --git a/dependency-versions/pom.xml b/dependency-versions/pom.xml
index 30a940d6b7f..107ba05c004 100644
--- a/dependency-versions/pom.xml
+++ b/dependency-versions/pom.xml
@@ -65,7 +65,7 @@
<assertj.vespa.version>3.25.3</assertj.vespa.version>
<!-- Athenz dependencies. Make sure these dependencies match those in Vespa's internal repositories -->
- <aws-sdk.vespa.version>1.12.670</aws-sdk.vespa.version>
+ <aws-sdk.vespa.version>1.12.671</aws-sdk.vespa.version>
<athenz.vespa.version>1.11.52</athenz.vespa.version>
<!-- Athenz END -->
@@ -87,7 +87,7 @@
<commons-lang3.vespa.version>3.14.0</commons-lang3.vespa.version>
<commons-logging.vespa.version>1.3.0</commons-logging.vespa.version> <!-- Bindings exported by jdisc through jcl-over-slf4j. -->
<commons.math3.vespa.version>3.6.1</commons.math3.vespa.version>
- <commons-compress.vespa.version>1.25.0</commons-compress.vespa.version>
+ <commons-compress.vespa.version>1.26.0</commons-compress.vespa.version>
<commons-cli.vespa.version>1.6.0</commons-cli.vespa.version>
<curator.vespa.version>5.6.0</curator.vespa.version>
<dropwizard.metrics.vespa.version>4.2.25</dropwizard.metrics.vespa.version> <!-- ZK 3.9.1 requires this -->
@@ -125,7 +125,7 @@
<onnxruntime.vespa.version>1.17.1</onnxruntime.vespa.version>
<opennlp.vespa.version>2.3.2</opennlp.vespa.version>
<opentest4j.vespa.version>1.3.0</opentest4j.vespa.version>
- <org.json.vespa.version>20240205</org.json.vespa.version>
+ <org.json.vespa.version>20240303</org.json.vespa.version>
<org.lz4.vespa.version>1.8.0</org.lz4.vespa.version>
<prometheus.client.vespa.version>0.16.0</prometheus.client.vespa.version>
<plexus-interpolation.vespa.version>1.27</plexus-interpolation.vespa.version>
@@ -150,8 +150,8 @@
<!-- CAUTION: upgrading junit for tenants poms may break testing frameworks -->
<!-- CAUTION 2: this version must match the exported packages from the tenant-cd-api module -->
<!-- CAUTION 3: this is probably not a good idea to change too ofter; consider a major version next time -->
- <junit.vespa.tenant.version>5.10.2</junit.vespa.tenant.version>
- <junit.platform.vespa.tenant.version>1.10.2</junit.platform.vespa.tenant.version>
+ <junit.vespa.tenant.version>5.10.1</junit.vespa.tenant.version>
+ <junit.platform.vespa.tenant.version>1.10.1</junit.platform.vespa.tenant.version>
<surefire.vespa.tenant.version>${surefire.vespa.version}</surefire.vespa.tenant.version>
<!-- Maven plugins -->
diff --git a/dist/vespa.spec b/dist/vespa.spec
index 0da35964e62..14e1869b6a5 100644
--- a/dist/vespa.spec
+++ b/dist/vespa.spec
@@ -42,7 +42,7 @@ License: Commercial
URL: http://vespa.ai
Source0: vespa-%{version}.tar.gz
-BuildRequires: vespa-build-dependencies >= 1.2.7
+BuildRequires: vespa-build-dependencies = 1.2.7
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-base-libs = %{version}-%{release}
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories80.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories80.java
index ef1575e2101..778eaeda5f0 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories80.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories80.java
@@ -193,8 +193,8 @@ abstract class RoutableFactories80 {
}
private static ByteBuffer serializeDoc(Document doc) {
- var buf = new GrowableByteBuffer();
- doc.serialize(buf);
+ var buf = new GrowableByteBuffer(8 * 1024, 2.0f);
+ doc.serialize(DocumentSerializerFactory.createHead(buf));
buf.flip();
return buf.getByteBuffer();
}
@@ -233,7 +233,7 @@ abstract class RoutableFactories80 {
}
private static ByteBuffer serializeUpdate(DocumentUpdate update) {
- var buf = new GrowableByteBuffer();
+ var buf = new GrowableByteBuffer(4 * 1024, 2.0f);
update.serialize(DocumentSerializerFactory.createHead(buf));
buf.flip();
return buf.getByteBuffer();
diff --git a/eval/src/tests/eval/compiled_function/compiled_function_test.cpp b/eval/src/tests/eval/compiled_function/compiled_function_test.cpp
index 7b1f9a84b6d..d84939caff2 100644
--- a/eval/src/tests/eval/compiled_function/compiled_function_test.cpp
+++ b/eval/src/tests/eval/compiled_function/compiled_function_test.cpp
@@ -29,10 +29,11 @@ TEST("require that separate parameter passing works") {
TEST("require that array parameter passing works") {
CompiledFunction arr_cf(*Function::parse(params_10, expr_10), PassParams::ARRAY);
auto arr_fun = arr_cf.get_function();
- EXPECT_EQUAL(10.0, arr_fun(&std::vector<double>({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0})[0]));
- EXPECT_EQUAL(50.0, arr_fun(&std::vector<double>({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0})[0]));
- EXPECT_EQUAL(45.0, arr_fun(&std::vector<double>({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0})[0]));
- EXPECT_EQUAL(45.0, arr_fun(&std::vector<double>({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0})[0]));
+ auto eval_arr_fun = [&arr_fun](std::vector<double> args) { return arr_fun(&args[0]); };
+ EXPECT_EQUAL(10.0, eval_arr_fun({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}));
+ EXPECT_EQUAL(50.0, eval_arr_fun({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0}));
+ EXPECT_EQUAL(45.0, eval_arr_fun({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}));
+ EXPECT_EQUAL(45.0, eval_arr_fun({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0}));
}
double my_resolve(void *ctx, size_t idx) { return ((double *)ctx)[idx]; }
@@ -40,10 +41,11 @@ double my_resolve(void *ctx, size_t idx) { return ((double *)ctx)[idx]; }
TEST("require that lazy parameter passing works") {
CompiledFunction lazy_cf(*Function::parse(params_10, expr_10), PassParams::LAZY);
auto lazy_fun = lazy_cf.get_lazy_function();
- EXPECT_EQUAL(10.0, lazy_fun(my_resolve, &std::vector<double>({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0})[0]));
- EXPECT_EQUAL(50.0, lazy_fun(my_resolve, &std::vector<double>({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0})[0]));
- EXPECT_EQUAL(45.0, lazy_fun(my_resolve, &std::vector<double>({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0})[0]));
- EXPECT_EQUAL(45.0, lazy_fun(my_resolve, &std::vector<double>({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0})[0]));
+ auto eval_lazy_fun = [&lazy_fun](std::vector<double> args) { return lazy_fun(my_resolve, &args[0]); };
+ EXPECT_EQUAL(10.0, eval_lazy_fun({1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}));
+ EXPECT_EQUAL(50.0, eval_lazy_fun({5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0}));
+ EXPECT_EQUAL(45.0, eval_lazy_fun({0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}));
+ EXPECT_EQUAL(45.0, eval_lazy_fun({9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0}));
}
//-----------------------------------------------------------------------------
diff --git a/eval/src/tests/eval/gbdt/gbdt_test.cpp b/eval/src/tests/eval/gbdt/gbdt_test.cpp
index 2f5c5d75105..739202e68bf 100644
--- a/eval/src/tests/eval/gbdt/gbdt_test.cpp
+++ b/eval/src/tests/eval/gbdt/gbdt_test.cpp
@@ -275,10 +275,11 @@ TEST("require that less only VM tree optimizer works") {
CompiledFunction compiled_function(*function, PassParams::ARRAY, less_only_vm_chain);
EXPECT_EQUAL(1u, compiled_function.get_forests().size());
auto f = compiled_function.get_function();
- EXPECT_EQUAL(11.0, f(&std::vector<double>({0.5, 0.0, 0.0, 0.5, 0.0, 0.0})[0]));
- EXPECT_EQUAL(22.0, f(&std::vector<double>({1.5, 0.5, 0.5, 1.5, 0.5, 0.5})[0]));
- EXPECT_EQUAL(33.0, f(&std::vector<double>({1.5, 0.5, 1.5, 1.5, 0.5, 1.5})[0]));
- EXPECT_EQUAL(44.0, f(&std::vector<double>({1.5, 1.5, 0.0, 1.5, 1.5, 0.0})[0]));
+ auto eval_f = [&f](std::vector<double> args) { return f(&args[0]); };
+ EXPECT_EQUAL(11.0, eval_f({0.5, 0.0, 0.0, 0.5, 0.0, 0.0}));
+ EXPECT_EQUAL(22.0, eval_f({1.5, 0.5, 0.5, 1.5, 0.5, 0.5}));
+ EXPECT_EQUAL(33.0, eval_f({1.5, 0.5, 1.5, 1.5, 0.5, 1.5}));
+ EXPECT_EQUAL(44.0, eval_f({1.5, 1.5, 0.0, 1.5, 1.5, 0.0}));
}
TEST("require that models with in checks are rejected by less only vm optimizer") {
@@ -305,10 +306,11 @@ TEST("require that general VM tree optimizer works") {
CompiledFunction compiled_function(*function, PassParams::ARRAY, general_vm_chain);
EXPECT_EQUAL(1u, compiled_function.get_forests().size());
auto f = compiled_function.get_function();
- EXPECT_EQUAL(11.0, f(&std::vector<double>({0.5, 0.0, 0.0, 1.0, 0.0, 0.0})[0]));
- EXPECT_EQUAL(22.0, f(&std::vector<double>({1.5, 2.0, 1.0, 2.0, 0.5, 0.5})[0]));
- EXPECT_EQUAL(33.0, f(&std::vector<double>({1.5, 2.0, 2.0, 2.0, 0.5, 1.5})[0]));
- EXPECT_EQUAL(44.0, f(&std::vector<double>({1.5, 5.0, 0.0, 2.0, 1.5, 0.0})[0]));
+ auto eval_f = [&f](std::vector<double> args) { return f(&args[0]); };
+ EXPECT_EQUAL(11.0, eval_f({0.5, 0.0, 0.0, 1.0, 0.0, 0.0}));
+ EXPECT_EQUAL(22.0, eval_f({1.5, 2.0, 1.0, 2.0, 0.5, 0.5}));
+ EXPECT_EQUAL(33.0, eval_f({1.5, 2.0, 2.0, 2.0, 0.5, 1.5}));
+ EXPECT_EQUAL(44.0, eval_f({1.5, 5.0, 0.0, 2.0, 1.5, 0.0}));
}
TEST("require that models with too large sets are rejected by general vm optimizer") {
diff --git a/filedistribution/pom.xml b/filedistribution/pom.xml
index ebf79c00714..d6877451a71 100644
--- a/filedistribution/pom.xml
+++ b/filedistribution/pom.xml
@@ -47,6 +47,10 @@
<artifactId>commons-compress</artifactId>
</dependency>
<dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
index e0fad41a8bd..5e5e4452154 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
@@ -201,7 +201,7 @@ public class Flags {
public static final UnboundIntFlag MAX_ACTIVATION_INHIBITED_OUT_OF_SYNC_GROUPS = defineIntFlag(
"max-activation-inhibited-out-of-sync-groups", 0,
- List.of("vekterli"), "2021-02-19", "2024-03-01",
+ List.of("vekterli"), "2021-02-19", "2024-06-01",
"Allows replicas in up to N content groups to not be activated " +
"for query visibility if they are out of sync with a majority of other replicas",
"Takes effect at redeployment",
@@ -209,7 +209,7 @@ public class Flags {
public static final UnboundDoubleFlag MIN_NODE_RATIO_PER_GROUP = defineDoubleFlag(
"min-node-ratio-per-group", 0.0,
- List.of("geirst", "vekterli"), "2021-07-16", "2024-03-01",
+ List.of("geirst", "vekterli"), "2021-07-16", "2024-06-01",
"Minimum ratio of nodes that have to be available (i.e. not Down) in any hierarchic content cluster group for the group to be Up",
"Takes effect at redeployment",
INSTANCE_ID);
@@ -234,7 +234,7 @@ public class Flags {
public static final UnboundBooleanFlag ENABLED_HORIZON_DASHBOARD = defineFeatureFlag(
"enabled-horizon-dashboard", false,
- List.of("olaa"), "2021-09-13", "2024-03-01",
+ List.of("olaa"), "2021-09-13", "2024-09-01",
"Enable Horizon dashboard",
"Takes effect immediately",
TENANT_ID, CONSOLE_USER_EMAIL
@@ -270,7 +270,7 @@ public class Flags {
public static final UnboundBooleanFlag SEPARATE_METRIC_CHECK_CONFIG = defineFeatureFlag(
"separate-metric-check-config", false,
- List.of("olaa"), "2022-07-04", "2024-03-01",
+ List.of("olaa"), "2022-07-04", "2024-09-01",
"Determines whether one metrics config check should be written per Vespa node",
"Takes effect on next tick",
HOSTNAME);
@@ -285,14 +285,14 @@ public class Flags {
public static final UnboundBooleanFlag ENABLE_OTELCOL = defineFeatureFlag(
"enable-otel-collector", false,
- List.of("olaa"), "2022-09-23", "2024-03-01",
+ List.of("olaa"), "2022-09-23", "2024-09-01",
"Whether an OpenTelemetry collector should be enabled",
"Takes effect at next tick",
INSTANCE_ID);
public static final UnboundListFlag<String> OTELCOL_LOGS = defineListFlag(
"otelcol-logs", List.of(), String.class,
- List.of("olaa"), "2024-01-15", "2024-03-01",
+ List.of("olaa"), "2024-01-15", "2024-09-01",
"Determines log files handled by the OpenTelemetry collector",
"Takes effect at next tick",
INSTANCE_ID, HOSTNAME
@@ -318,14 +318,14 @@ public class Flags {
public static final UnboundBooleanFlag SORT_BLUEPRINTS_BY_COST = defineFeatureFlag(
"sort-blueprints-by-cost", false,
- List.of("baldersheim"), "2023-12-19", "2024-02-29",
+ List.of("baldersheim"), "2023-12-19", "2024-05-31",
"If true blueprints are sorted based on cost estimate, rather that absolute estimated hits",
"Takes effect at redeployment",
INSTANCE_ID);
public static final UnboundBooleanFlag ALWAYS_MARK_PHRASE_EXPENSIVE = defineFeatureFlag(
"always-mark-phrase-expensive", false,
- List.of("baldersheim"), "2023-11-20", "2024-02-29",
+ List.of("baldersheim"), "2023-11-20", "2024-05-31",
"If true all phrases will be marked expensive, independent of parents",
"Takes effect at redeployment",
INSTANCE_ID);
@@ -401,7 +401,7 @@ public class Flags {
public static final UnboundBooleanFlag CLOUD_TRIAL_NOTIFICATIONS = defineFeatureFlag(
"cloud-trial-notifications", false,
- List.of("bjorncs", "oyving"), "2023-10-13", "2024-03-01",
+ List.of("bjorncs", "oyving"), "2023-10-13", "2024-12-31",
"Whether to send cloud trial email notifications",
"Takes effect immediately");
diff --git a/searchlib/src/tests/queryeval/iterator_benchmark/CMakeLists.txt b/searchlib/src/tests/queryeval/iterator_benchmark/CMakeLists.txt
index ea0ffbae9f1..34c5928c123 100644
--- a/searchlib/src/tests/queryeval/iterator_benchmark/CMakeLists.txt
+++ b/searchlib/src/tests/queryeval/iterator_benchmark/CMakeLists.txt
@@ -1,6 +1,7 @@
# Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
vespa_add_executable(searchlib_iterator_benchmark_test_app TEST
SOURCES
+ disk_index_builder.cpp
iterator_benchmark_test.cpp
DEPENDS
searchlib
diff --git a/searchlib/src/tests/queryeval/iterator_benchmark/benchmark_searchable.h b/searchlib/src/tests/queryeval/iterator_benchmark/benchmark_searchable.h
new file mode 100644
index 00000000000..5fce2570feb
--- /dev/null
+++ b/searchlib/src/tests/queryeval/iterator_benchmark/benchmark_searchable.h
@@ -0,0 +1,27 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#pragma once
+
+#include <memory>
+
+namespace search::query { class Node; }
+
+namespace search::queryeval {
+class Blueprint;
+class FieldSpec;
+class IRequestContext;
+}
+
+namespace search::queryeval::test {
+
+/**
+ * Simplified interface used to create a Blueprint, similar to search::queryeval::Searchable.
+ */
+class BenchmarkSearchable {
+public:
+ virtual ~BenchmarkSearchable() = default;
+ virtual std::unique_ptr<Blueprint> create_blueprint(const FieldSpec& field,
+ const search::query::Node& term) = 0;
+};
+
+}
diff --git a/searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.cpp b/searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.cpp
new file mode 100644
index 00000000000..96fcc261837
--- /dev/null
+++ b/searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.cpp
@@ -0,0 +1,88 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "disk_index_builder.h"
+#include <vespa/searchlib/common/bitvector.h>
+#include <vespa/searchlib/diskindex/diskindex.h>
+#include <vespa/searchlib/index/docidandfeatures.h>
+#include <vespa/searchlib/queryeval/blueprint.h>
+#include <vespa/searchlib/queryeval/fake_requestcontext.h>
+#include <filesystem>
+
+using search::diskindex::DiskIndex;
+using search::index::DocIdAndPosOccFeatures;
+using search::index::Schema;
+
+namespace search::queryeval::test {
+
+constexpr search::queryeval::Source default_source = 0;
+
+DiskIndexBuilder::DiskIndexBuilder(const Schema& schema, vespalib::stringref index_dir, uint32_t docid_limit, uint64_t num_words)
+ : _schema(schema),
+ _field_length_inspector(),
+ _tune_file_indexing(),
+ _tune_file_attributes(),
+ _tune_file_search(),
+ _file_header_ctx(),
+ _index_dir(index_dir),
+ _selector(default_source, _index_dir + "/selector", docid_limit),
+ _builder(_schema, index_dir, docid_limit, num_words, _field_length_inspector, _tune_file_indexing, _file_header_ctx),
+ _field_builder(_builder.startField(0))
+{
+ // Mark all documents as being part of this disk index.
+ for (uint32_t docid = 0; docid < docid_limit; ++docid) {
+ _selector.setSource(docid, default_source);
+ }
+}
+
+void
+DiskIndexBuilder::add_word(vespalib::stringref word, search::BitVector& docids, uint32_t num_occs)
+{
+ DocIdAndPosOccFeatures diaf;
+ diaf.word_positions().reserve(num_occs);
+ for (uint32_t word_pos = 0; word_pos < num_occs; ++word_pos) {
+ diaf.addNextOcc(0, word_pos, 1, num_occs * 10);
+ }
+ diaf.set_field_length(num_occs * 10);
+ diaf.set_num_occs(num_occs);
+ _field_builder->startWord(word);
+ docids.foreach_truebit([&](uint32_t docid) {
+ diaf.set_doc_id(docid);
+ _field_builder->add_document(diaf);
+ });
+ _field_builder->endWord();
+}
+
+namespace {
+
+class DiskIndexSearchable : public BenchmarkSearchable {
+private:
+ std::unique_ptr<DiskIndex> _index;
+
+public:
+ DiskIndexSearchable(std::unique_ptr<DiskIndex> index) : _index(std::move(index)) {}
+ ~DiskIndexSearchable() {
+ vespalib::string index_dir = _index->getIndexDir();
+ _index.reset();
+ std::filesystem::remove_all(std::filesystem::path(index_dir));
+ }
+ std::unique_ptr<Blueprint> create_blueprint(const FieldSpec& field,
+ const search::query::Node& term) override {
+ FakeRequestContext req_ctx;
+ return _index->createBlueprint(req_ctx, field, term);
+ }
+};
+
+}
+
+std::unique_ptr<BenchmarkSearchable>
+DiskIndexBuilder::build()
+{
+ _field_builder.reset();
+ _selector.extractSaveInfo(_index_dir + "/selector")->save(_tune_file_attributes, _file_header_ctx);
+ auto index = std::make_unique<DiskIndex>(_index_dir);
+ bool setup = index->setup(_tune_file_search);
+ assert(setup);
+ return std::make_unique<DiskIndexSearchable>(std::move(index));
+}
+
+}
diff --git a/searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.h b/searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.h
new file mode 100644
index 00000000000..6901a48b46e
--- /dev/null
+++ b/searchlib/src/tests/queryeval/iterator_benchmark/disk_index_builder.h
@@ -0,0 +1,41 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#pragma once
+
+#include "benchmark_searchable.h"
+#include <vespa/searchcommon/common/schema.h>
+#include <vespa/searchlib/attribute/fixedsourceselector.h>
+#include <vespa/searchlib/diskindex/indexbuilder.h>
+#include <vespa/searchlib/index/dummyfileheadercontext.h>
+#include <vespa/searchlib/test/index/mock_field_length_inspector.h>
+#include <memory>
+
+namespace search { class BitVector; }
+namespace search::index { class DocIdAndFeatures; }
+namespace search::diskindex { class DiskIndex; }
+
+namespace search::queryeval::test {
+
+/**
+ * Class used to build a disk index, used for benchmarking.
+ */
+class DiskIndexBuilder {
+private:
+ search::index::Schema _schema;
+ search::index::test::MockFieldLengthInspector _field_length_inspector;
+ TuneFileIndexing _tune_file_indexing;
+ TuneFileAttributes _tune_file_attributes;
+ TuneFileSearch _tune_file_search;
+ search::index::DummyFileHeaderContext _file_header_ctx;
+ vespalib::string _index_dir;
+ search::FixedSourceSelector _selector;
+ search::diskindex::IndexBuilder _builder;
+ std::unique_ptr<search::index::FieldIndexBuilder> _field_builder;
+
+public:
+ DiskIndexBuilder(const search::index::Schema& schema, vespalib::stringref index_dir, uint32_t docid_limit, uint64_t num_words);
+ void add_word(vespalib::stringref word, search::BitVector& docids, uint32_t num_occs);
+ std::unique_ptr<BenchmarkSearchable> build();
+};
+
+}
diff --git a/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp b/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp
index d1fa9209dd0..65fa55174d4 100644
--- a/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp
+++ b/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp
@@ -1,5 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include "benchmark_searchable.h"
+#include "disk_index_builder.h"
#include <vespa/searchcommon/attribute/config.h>
#include <vespa/searchcommon/attribute/iattributecontext.h>
#include <vespa/searchlib/attribute/attribute_blueprint_factory.h>
@@ -7,7 +9,9 @@
#include <vespa/searchlib/attribute/attributevector.h>
#include <vespa/searchlib/attribute/integerbase.h>
#include <vespa/searchlib/attribute/stringbase.h>
+#include <vespa/searchlib/diskindex/diskindex.h>
#include <vespa/searchlib/fef/matchdata.h>
+#include <vespa/searchlib/index/docidandfeatures.h>
#include <vespa/searchlib/query/tree/integer_term_vector.h>
#include <vespa/searchlib/query/tree/node.h>
#include <vespa/searchlib/query/tree/simplequery.h>
@@ -31,10 +35,16 @@ using namespace search::queryeval;
using namespace search;
using namespace vespalib;
+using search::index::DocIdAndFeatures;
+using search::index::Schema;
+using search::queryeval::test::BenchmarkSearchable;
+using search::queryeval::test::DiskIndexBuilder;
+
// TODO: Re-seed for each benchmark setup
constexpr uint32_t default_seed = 1234;
std::mt19937 gen(default_seed);
-const vespalib::string field = "myfield";
+const vespalib::string field_name = "myfield";
+const vespalib::string index_dir = "indexdir";
double budget_sec = 1.0;
BitVector::UP
@@ -90,10 +100,47 @@ public:
}
return res;
}
+ size_t size() const { return _specs.size(); }
auto begin() const { return _specs.begin(); }
auto end() const { return _specs.end(); }
};
+vespalib::string
+to_string(const Config& attr_config)
+{
+ std::ostringstream oss;
+ auto col_type = attr_config.collectionType();
+ auto basic_type = attr_config.basicType();
+ if (col_type == CollectionType::SINGLE) {
+ oss << basic_type.asString();
+ } else {
+ oss << col_type.asString() << "<" << basic_type.asString() << ">";
+ }
+ if (attr_config.fastSearch()) {
+ oss << "(fs)";
+ }
+ return oss.str();
+}
+
+class FieldConfig {
+private:
+ std::variant<Config, Schema::IndexField> _cfg;
+
+public:
+ FieldConfig(const Config& attr_cfg_in) : _cfg(attr_cfg_in) {}
+ FieldConfig(const Schema::IndexField& index_cfg_in) : _cfg(index_cfg_in) {}
+ bool is_attr() const { return _cfg.index() == 0; }
+ const Config& attr_cfg() const { return std::get<0>(_cfg); }
+ Schema index_cfg() const {
+ Schema res;
+ res.addIndexField(std::get<1>(_cfg));
+ return res;
+ }
+ vespalib::string to_string() const {
+ return is_attr() ? ::to_string(attr_cfg()) : "diskindex";
+ }
+};
+
template <typename AttributeType, bool is_string, bool is_multivalue>
void
populate_attribute(AttributeType& attr, uint32_t docid_limit, const HitSpecs& hit_specs)
@@ -121,7 +168,7 @@ populate_attribute(AttributeType& attr, uint32_t docid_limit, const HitSpecs& hi
AttributeVector::SP
make_attribute(const Config& cfg, uint32_t num_docs, const HitSpecs& hit_specs)
{
- auto attr = AttributeFactory::createAttribute(field, cfg);
+ auto attr = AttributeFactory::createAttribute(field_name, cfg);
attr->addReservedDoc();
attr->addDocs(num_docs);
uint32_t docid_limit = attr->getNumDocs();
@@ -146,13 +193,38 @@ make_attribute(const Config& cfg, uint32_t num_docs, const HitSpecs& hit_specs)
return attr;
}
-std::unique_ptr<IAttributeContext>
-make_attribute_context(const Config& cfg, uint32_t num_docs, const HitSpecs& hit_specs)
+class AttributeSearchable : public BenchmarkSearchable {
+private:
+ std::unique_ptr<MockAttributeContext> _attr_ctx;
+
+public:
+ AttributeSearchable(std::unique_ptr<MockAttributeContext> attr_ctx) : _attr_ctx(std::move(attr_ctx)) {}
+ std::unique_ptr<Blueprint> create_blueprint(const FieldSpec& field_spec,
+ const search::query::Node& term) override {
+ AttributeBlueprintFactory factory;
+ FakeRequestContext req_ctx(_attr_ctx.get());
+ return factory.createBlueprint(req_ctx, field_spec, term);
+ }
+};
+
+std::unique_ptr<BenchmarkSearchable>
+make_searchable(const FieldConfig& cfg, uint32_t num_docs, const HitSpecs& hit_specs)
{
- auto attr = make_attribute(cfg, num_docs, hit_specs);
- auto res = std::make_unique<MockAttributeContext>();
- res->add(std::move(attr));
- return res;
+ if (cfg.is_attr()) {
+ auto attr = make_attribute(cfg.attr_cfg(), num_docs, hit_specs);
+ auto ctx = std::make_unique<MockAttributeContext>();
+ ctx->add(std::move(attr));
+ return std::make_unique<AttributeSearchable>(std::move(ctx));
+ } else {
+ uint32_t docid_limit = num_docs + 1;
+ DiskIndexBuilder builder(cfg.index_cfg(), index_dir, docid_limit, hit_specs.size());
+ for (auto spec : hit_specs) {
+ // TODO: make number of occurrences configurable.
+ uint32_t num_occs = 1;
+ builder.add_word(std::to_string(spec.term_value), *random_docids(docid_limit, spec.num_hits), num_occs);
+ }
+ return builder.build();
+ }
}
struct BenchmarkResult {
@@ -356,11 +428,9 @@ benchmark_search(Blueprint::UP blueprint, uint32_t docid_limit, bool strict_cont
}
Blueprint::UP
-make_leaf_blueprint(const Node& node, IAttributeContext& attr_ctx, uint32_t docid_limit)
+make_leaf_blueprint(const Node& node, BenchmarkSearchable& searchable, uint32_t docid_limit)
{
- FakeRequestContext request_ctx(&attr_ctx);
- AttributeBlueprintFactory source;
- auto blueprint = source.createBlueprint(request_ctx, FieldSpec(field, 0, 0), node);
+ auto blueprint = searchable.create_blueprint(FieldSpec(field_name, 0, 0), node);
assert(blueprint.get());
blueprint->setDocIdLimit(docid_limit);
blueprint->update_flow_stats(docid_limit);
@@ -391,23 +461,6 @@ to_string(QueryOperator query_op)
}
vespalib::string
-to_string(const Config& attr_config)
-{
- std::ostringstream oss;
- auto col_type = attr_config.collectionType();
- auto basic_type = attr_config.basicType();
- if (col_type == CollectionType::SINGLE) {
- oss << basic_type.asString();
- } else {
- oss << col_type.asString() << "<" << basic_type.asString() << ">";
- }
- if (attr_config.fastSearch()) {
- oss << "(fs)";
- }
- return oss.str();
-}
-
-vespalib::string
to_string(bool val)
{
return val ? "true" : "false";
@@ -418,21 +471,21 @@ make_query_node(QueryOperator query_op, const benchmark::TermVector& terms)
{
if (query_op == QueryOperator::Term) {
assert(terms.size() == 1);
- return std::make_unique<SimpleNumberTerm>(std::to_string(terms[0]), field, 0, Weight(1));
+ return std::make_unique<SimpleStringTerm>(std::to_string(terms[0]), field_name, 0, Weight(1));
} else if (query_op == QueryOperator::In) {
auto termv = std::make_unique<IntegerTermVector>(terms.size());
for (auto term : terms) {
termv->addTerm(term);
}
- return std::make_unique<SimpleInTerm>(std::move(termv), MultiTerm::Type::INTEGER, field, 0, Weight(1));
+ return std::make_unique<SimpleInTerm>(std::move(termv), MultiTerm::Type::INTEGER, field_name, 0, Weight(1));
} else if (query_op == QueryOperator::WeightedSet) {
- auto res = std::make_unique<SimpleWeightedSetTerm>(terms.size(), field, 0, Weight(1));
+ auto res = std::make_unique<SimpleWeightedSetTerm>(terms.size(), field_name, 0, Weight(1));
for (auto term : terms) {
res->addTerm(term, Weight(1));
}
return res;
} else if (query_op == QueryOperator::DotProduct) {
- auto res = std::make_unique<SimpleDotProduct>(terms.size(), field, 0, Weight(1));
+ auto res = std::make_unique<SimpleDotProduct>(terms.size(), field_name, 0, Weight(1));
for (auto term : terms) {
res->addTerm(term, Weight(1));
}
@@ -443,12 +496,12 @@ make_query_node(QueryOperator query_op, const benchmark::TermVector& terms)
template <typename BlueprintType>
Blueprint::UP
-make_intermediate_blueprint(IAttributeContext& attr_ctx, const benchmark::TermVector& terms, uint32_t docid_limit)
+make_intermediate_blueprint(BenchmarkSearchable& searchable, const benchmark::TermVector& terms, uint32_t docid_limit)
{
auto blueprint = std::make_unique<BlueprintType>();
for (auto term : terms) {
- SimpleNumberTerm sterm(std::to_string(term), field, 0, Weight(1));
- auto child = make_leaf_blueprint(sterm, attr_ctx, docid_limit);
+ SimpleStringTerm sterm(std::to_string(term), field_name, 0, Weight(1));
+ auto child = make_leaf_blueprint(sterm, searchable, docid_limit);
blueprint->addChild(std::move(child));
}
blueprint->setDocIdLimit(docid_limit);
@@ -457,15 +510,15 @@ make_intermediate_blueprint(IAttributeContext& attr_ctx, const benchmark::TermVe
}
BenchmarkResult
-run_benchmark(IAttributeContext& attr_ctx, QueryOperator query_op, const benchmark::TermVector& terms, uint32_t docid_limit, bool strict_context, bool force_strict, double filter_hit_ratio)
+run_benchmark(BenchmarkSearchable& searchable, QueryOperator query_op, const benchmark::TermVector& terms, uint32_t docid_limit, bool strict_context, bool force_strict, double filter_hit_ratio)
{
if (query_op == QueryOperator::And) {
- return benchmark_search(make_intermediate_blueprint<AndBlueprint>(attr_ctx, terms, docid_limit), docid_limit, strict_context, force_strict, filter_hit_ratio);
+ return benchmark_search(make_intermediate_blueprint<AndBlueprint>(searchable, terms, docid_limit), docid_limit, strict_context, force_strict, filter_hit_ratio);
} else if (query_op == QueryOperator::Or) {
- return benchmark_search(make_intermediate_blueprint<OrBlueprint>(attr_ctx, terms, docid_limit), docid_limit, strict_context, force_strict, filter_hit_ratio);
+ return benchmark_search(make_intermediate_blueprint<OrBlueprint>(searchable, terms, docid_limit), docid_limit, strict_context, force_strict, filter_hit_ratio);
} else {
auto query_node = make_query_node(query_op, terms);
- auto blueprint = make_leaf_blueprint(*query_node, attr_ctx, docid_limit);
+ auto blueprint = make_leaf_blueprint(*query_node, searchable, docid_limit);
return benchmark_search(std::move(blueprint), docid_limit, strict_context, force_strict, filter_hit_ratio);
}
}
@@ -513,18 +566,18 @@ print_result(const BenchmarkCaseResult& result)
}
struct BenchmarkCase {
- Config attr_cfg;
+ FieldConfig field_cfg;
QueryOperator query_op;
bool strict_context;
bool force_strict;
- BenchmarkCase(const Config& attr_cfg_in, QueryOperator query_op_in, bool strict_context_in)
- : attr_cfg(attr_cfg_in),
+ BenchmarkCase(const FieldConfig& field_cfg_in, QueryOperator query_op_in, bool strict_context_in)
+ : field_cfg(field_cfg_in),
query_op(query_op_in),
strict_context(strict_context_in),
force_strict(false)
{}
vespalib::string to_string() const {
- return "op=" + ::to_string(query_op) + ", cfg=" + ::to_string(attr_cfg) +
+ return "op=" + ::to_string(query_op) + ", cfg=" + field_cfg.to_string() +
", strict_context=" + ::to_string(strict_context) + ", force_strict=" + ::to_string(force_strict);
}
};
@@ -609,7 +662,7 @@ struct BenchmarkCaseSetup {
struct BenchmarkSetup {
uint32_t num_docs;
- std::vector<Config> attr_cfgs;
+ std::vector<FieldConfig> field_cfgs;
std::vector<QueryOperator> query_ops;
std::vector<bool> strictness;
std::vector<double> op_hit_ratios;
@@ -619,13 +672,13 @@ struct BenchmarkSetup {
uint32_t default_values_per_document;
double filter_crossover_factor;
BenchmarkSetup(uint32_t num_docs_in,
- const std::vector<Config>& attr_cfgs_in,
+ const std::vector<FieldConfig>& field_cfgs_in,
const std::vector<QueryOperator>& query_ops_in,
const std::vector<bool>& strictness_in,
const std::vector<double>& op_hit_ratios_in,
const std::vector<uint32_t>& child_counts_in)
: num_docs(num_docs_in),
- attr_cfgs(attr_cfgs_in),
+ field_cfgs(field_cfgs_in),
query_ops(query_ops_in),
strictness(strictness_in),
op_hit_ratios(op_hit_ratios_in),
@@ -636,11 +689,11 @@ struct BenchmarkSetup {
filter_crossover_factor(1.0)
{}
BenchmarkSetup(uint32_t num_docs_in,
- const std::vector<Config>& attr_cfgs_in,
+ const std::vector<FieldConfig>& field_cfgs_in,
const std::vector<QueryOperator>& query_ops_in,
const std::vector<bool>& strictness_in,
const std::vector<double>& op_hit_ratios_in)
- : BenchmarkSetup(num_docs_in, attr_cfgs_in, query_ops_in, strictness_in, op_hit_ratios_in, {1})
+ : BenchmarkSetup(num_docs_in, field_cfgs_in, query_ops_in, strictness_in, op_hit_ratios_in, {1})
{}
BenchmarkCaseSetup make_case_setup(const BenchmarkCase& bcase) const {
BenchmarkCaseSetup res(num_docs, bcase, op_hit_ratios, child_counts);
@@ -685,10 +738,10 @@ run_benchmark_case(const BenchmarkCaseSetup& setup)
HitSpecs hit_specs(55555);
hit_specs.add(setup.default_values_per_document, setup.num_docs);
auto terms = hit_specs.add(children, hits_per_term);
- auto attr_ctx = make_attribute_context(setup.bcase.attr_cfg, setup.num_docs, hit_specs);
+ auto searchable = make_searchable(setup.bcase.field_cfg, setup.num_docs, hit_specs);
for (double filter_hit_ratio : setup.filter_hit_ratios) {
if (filter_hit_ratio * setup.filter_crossover_factor <= op_hit_ratio) {
- auto res = run_benchmark(*attr_ctx, setup.bcase.query_op, terms, setup.num_docs + 1,
+ auto res = run_benchmark(*searchable, setup.bcase.query_op, terms, setup.num_docs + 1,
setup.bcase.strict_context, setup.bcase.force_strict, filter_hit_ratio);
print_result(res, terms, op_hit_ratio, filter_hit_ratio, setup.num_docs);
result.add(res);
@@ -704,10 +757,10 @@ void
run_benchmarks(const BenchmarkSetup& setup)
{
BenchmarkSummary summary;
- for (const auto& attr_cfg : setup.attr_cfgs) {
+ for (const auto& field_cfg : setup.field_cfgs) {
for (auto query_op : setup.query_ops) {
for (bool strict : setup.strictness) {
- BenchmarkCase bcase(attr_cfg, query_op, strict);
+ BenchmarkCase bcase(field_cfg, query_op, strict);
auto case_setup = setup.make_case_setup(bcase);
auto results = run_benchmark_case(case_setup);
summary.add(bcase, results);
@@ -718,34 +771,50 @@ run_benchmarks(const BenchmarkSetup& setup)
print_summary(summary);
}
-Config
-make_config(BasicType basic_type, CollectionType col_type, bool fast_search)
+FieldConfig
+make_attr_config(BasicType basic_type, CollectionType col_type, bool fast_search)
{
- Config res(basic_type, col_type);
- res.setFastSearch(fast_search);
- return res;
+ Config cfg(basic_type, col_type);
+ cfg.setFastSearch(fast_search);
+ return FieldConfig(cfg);
+}
+
+FieldConfig
+make_index_config()
+{
+ Schema::IndexField field(field_name, search::index::schema::DataType::STRING, search::index::schema::CollectionType::SINGLE);
+ field.set_interleaved_features(true);
+ return FieldConfig(field);
}
constexpr uint32_t num_docs = 10'000'000;
const std::vector<double> base_hit_ratios = {0.001, 0.01, 0.1, 0.5};
-const Config int32 = make_config(BasicType::INT32, CollectionType::SINGLE, false);
-const Config int32_fs = make_config(BasicType::INT32, CollectionType::SINGLE, true);
-const Config int32_array = make_config(BasicType::INT32, CollectionType::ARRAY, false);
-const Config int32_array_fs = make_config(BasicType::INT32, CollectionType::ARRAY, true);
-const Config int32_wset = make_config(BasicType::INT32, CollectionType::WSET, false);
-const Config int32_wset_fs = make_config(BasicType::INT32, CollectionType::WSET, true);
-const Config str = make_config(BasicType::STRING, CollectionType::SINGLE, false);
-const Config str_fs = make_config(BasicType::STRING, CollectionType::SINGLE, true);
-const Config str_array = make_config(BasicType::STRING, CollectionType::ARRAY, false);
-const Config str_array_fs = make_config(BasicType::STRING, CollectionType::ARRAY, true);
-const Config str_wset = make_config(BasicType::STRING, CollectionType::WSET, false);
-
+const auto int32 = make_attr_config(BasicType::INT32, CollectionType::SINGLE, false);
+const auto int32_fs = make_attr_config(BasicType::INT32, CollectionType::SINGLE, true);
+const auto int32_array = make_attr_config(BasicType::INT32, CollectionType::ARRAY, false);
+const auto int32_array_fs = make_attr_config(BasicType::INT32, CollectionType::ARRAY, true);
+const auto int32_wset = make_attr_config(BasicType::INT32, CollectionType::WSET, false);
+const auto int32_wset_fs = make_attr_config(BasicType::INT32, CollectionType::WSET, true);
+const auto str = make_attr_config(BasicType::STRING, CollectionType::SINGLE, false);
+const auto str_fs = make_attr_config(BasicType::STRING, CollectionType::SINGLE, true);
+const auto str_array = make_attr_config(BasicType::STRING, CollectionType::ARRAY, false);
+const auto str_array_fs = make_attr_config(BasicType::STRING, CollectionType::ARRAY, true);
+const auto str_wset = make_attr_config(BasicType::STRING, CollectionType::WSET, false);
+const auto str_index = make_index_config();
+
+TEST(IteratorBenchmark, analyze_term_search_in_disk_index)
+{
+ const std::vector<double> hit_ratios = {0.001, 0.01, 0.1, 0.5, 1.0};
+ BenchmarkSetup setup(num_docs, {str_index}, {QueryOperator::Term}, {true, false}, hit_ratios);
+ setup.filter_hit_ratios = {0.00001, 0.00005, 0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.2, 0.5, 1.0};
+ run_benchmarks(setup);
+}
TEST(IteratorBenchmark, analyze_term_search_in_attributes_without_fast_search)
{
- std::vector<Config> attr_cfgs = {int32, int32_array, int32_wset, str, str_array, str_wset};
+ std::vector<FieldConfig> field_cfgs = {int32, int32_array, int32_wset, str, str_array, str_wset};
const std::vector<double> hit_ratios = {0.001, 0.01, 0.1, 0.5, 1.0};
- BenchmarkSetup setup(num_docs, attr_cfgs, {QueryOperator::Term}, {true, false}, hit_ratios);
+ BenchmarkSetup setup(num_docs, field_cfgs, {QueryOperator::Term}, {true, false}, hit_ratios);
setup.default_values_per_document = 1;
setup.filter_hit_ratios = {0.00001, 0.00005, 0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.2, 0.5, 1.0};
run_benchmarks(setup);
@@ -753,9 +822,9 @@ TEST(IteratorBenchmark, analyze_term_search_in_attributes_without_fast_search)
TEST(IteratorBenchmark, analyze_term_search_in_attributes_with_fast_search)
{
- std::vector<Config> attr_cfgs = {int32_fs, int32_array_fs, str_fs, str_array_fs};
+ std::vector<FieldConfig> field_cfgs = {int32_fs, int32_array_fs, str_fs, str_array_fs};
const std::vector<double> hit_ratios = {0.001, 0.01, 0.1, 0.5, 1.0};
- BenchmarkSetup setup(num_docs, attr_cfgs, {QueryOperator::Term}, {true, false}, hit_ratios);
+ BenchmarkSetup setup(num_docs, field_cfgs, {QueryOperator::Term}, {true, false}, hit_ratios);
setup.filter_hit_ratios = {0.00001, 0.00005, 0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.2, 0.5, 1.0};
run_benchmarks(setup);
}
@@ -763,9 +832,9 @@ TEST(IteratorBenchmark, analyze_term_search_in_attributes_with_fast_search)
TEST(IteratorBenchmark, analyze_term_search_in_attributes_combined)
{
// Note: all fast-search attributes has similar performance, so only needed to include one.
- std::vector<Config> attr_cfgs = {int32_fs, int32, int32_array, int32_wset, str, str_array, str_wset};
+ std::vector<FieldConfig> field_cfgs = {int32_fs, int32, int32_array, int32_wset, str, str_array, str_wset};
const std::vector<double> hit_ratios = {0.001, 0.01, 0.1, 0.5, 1.0};
- BenchmarkSetup setup(num_docs, attr_cfgs, {QueryOperator::Term}, {true, false}, hit_ratios);
+ BenchmarkSetup setup(num_docs, field_cfgs, {QueryOperator::Term}, {true, false}, hit_ratios);
setup.default_values_per_document = 1;
setup.filter_hit_ratios = {0.00001, 0.00005, 0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.2, 0.5, 1.0};
setup.filter_crossover_factor = 1.0;
@@ -774,10 +843,10 @@ TEST(IteratorBenchmark, analyze_term_search_in_attributes_combined)
TEST(IteratorBenchmark, analyze_complex_leaf_operators)
{
- std::vector<Config> attr_cfgs = {int32_array_fs};
+ std::vector<FieldConfig> field_cfgs = {int32_array_fs};
std::vector<QueryOperator> query_ops = {QueryOperator::In, QueryOperator::DotProduct};
const std::vector<double> hit_ratios = {0.001, 0.01, 0.1, 0.2, 0.4, 0.6, 0.8};
- BenchmarkSetup setup(num_docs, attr_cfgs, query_ops, {true, false}, hit_ratios, {1, 2, 10, 100});
+ BenchmarkSetup setup(num_docs, field_cfgs, query_ops, {true, false}, hit_ratios, {1, 2, 10, 100});
run_benchmarks(setup);
}
diff --git a/searchlib/src/tests/queryeval/monitoring_search_iterator/monitoring_search_iterator_test.cpp b/searchlib/src/tests/queryeval/monitoring_search_iterator/monitoring_search_iterator_test.cpp
index c20c7091355..f6f0d1557ab 100644
--- a/searchlib/src/tests/queryeval/monitoring_search_iterator/monitoring_search_iterator_test.cpp
+++ b/searchlib/src/tests/queryeval/monitoring_search_iterator/monitoring_search_iterator_test.cpp
@@ -47,8 +47,11 @@ struct SimpleFixture
{
_res.search(_itr);
}
+ ~SimpleFixture();
};
+SimpleFixture::~SimpleFixture() = default;
+
struct AdvancedFixture
{
MonitoringSearchIterator _itr;
diff --git a/searchlib/src/vespa/searchlib/predicate/document_features_store.cpp b/searchlib/src/vespa/searchlib/predicate/document_features_store.cpp
index 3237dc84fc7..e267bf35403 100644
--- a/searchlib/src/vespa/searchlib/predicate/document_features_store.cpp
+++ b/searchlib/src/vespa/searchlib/predicate/document_features_store.cpp
@@ -198,7 +198,7 @@ DocumentFeaturesStore::insert(const PredicateTreeAnnotations &annotations, uint3
ref = _word_store.addWord(word);
_word_index.insert(ref, BTreeNoLeafData(), cmp);
}
- ranges.emplace_back(ref, range.from, range.to);
+ ranges.push_back({ref, range.from, range.to});
}
cur_refs._ranges = _ranges.add(ranges);
if (old_ranges_ref.valid()) {
diff --git a/searchlib/src/vespa/searchlib/queryeval/blueprint.cpp b/searchlib/src/vespa/searchlib/queryeval/blueprint.cpp
index 15eb4c0b4fb..5f3cf0567bc 100644
--- a/searchlib/src/vespa/searchlib/queryeval/blueprint.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/blueprint.cpp
@@ -121,7 +121,6 @@ Blueprint::Blueprint() noexcept
_flow_stats(0.0, 0.0, 0.0),
_sourceId(0xffffffff),
_docid_limit(0),
- _force_strict(false),
_frozen(false)
{
}
diff --git a/searchlib/src/vespa/searchlib/queryeval/blueprint.h b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
index b19ae699fdc..b2edfb8a3ba 100644
--- a/searchlib/src/vespa/searchlib/queryeval/blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
@@ -205,7 +205,6 @@ private:
FlowStats _flow_stats;
uint32_t _sourceId;
uint32_t _docid_limit;
- bool _force_strict;
bool _frozen;
protected:
diff --git a/searchlib/src/vespa/searchlib/queryeval/flow.h b/searchlib/src/vespa/searchlib/queryeval/flow.h
index 785a4c5e63c..ba0235991a8 100644
--- a/searchlib/src/vespa/searchlib/queryeval/flow.h
+++ b/searchlib/src/vespa/searchlib/queryeval/flow.h
@@ -391,7 +391,7 @@ private:
template <typename FLOW> struct type_tag{};
template <typename FLOW> AnyFlow(InFlow in_flow, type_tag<FLOW>) noexcept {
using stored_type = Wrapper<FLOW>;
- static_assert(alignof(stored_type) <= alignof(_space));
+ static_assert(alignof(stored_type) <= 8);
static_assert(sizeof(stored_type) <= sizeof(_space));
API *upcasted = ::new (static_cast<void*>(_space)) stored_type(in_flow);
(void) upcasted;
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java b/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
index 21f476c7f94..2654e316c3e 100644
--- a/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
+++ b/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
@@ -8,7 +8,6 @@ import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import java.io.BufferedInputStream;
-import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -151,36 +150,36 @@ class FeederParams {
CommandLine cmd = new DefaultParser().parse(opts, args);
if (cmd.hasOption('n')) {
- numDispatchThreads = Integer.valueOf(cmd.getOptionValue('n').trim());
+ numDispatchThreads = Integer.parseInt(cmd.getOptionValue('n').trim());
}
if (cmd.hasOption('m')) {
- maxPending = Integer.valueOf(cmd.getOptionValue('m').trim());
+ maxPending = Integer.parseInt(cmd.getOptionValue('m').trim());
}
if (cmd.hasOption('c')) {
- numConnectionsPerTarget = Integer.valueOf(cmd.getOptionValue('c').trim());
+ numConnectionsPerTarget = Integer.parseInt(cmd.getOptionValue('c').trim());
}
if (cmd.hasOption("wi")) {
- windowIncrementSize = Integer.valueOf(cmd.getOptionValue("wi").trim());
+ windowIncrementSize = Integer.parseInt(cmd.getOptionValue("wi").trim());
}
if (cmd.hasOption("wd")) {
- windowDecrementFactor = Double.valueOf(cmd.getOptionValue("wd").trim());
+ windowDecrementFactor = Double.parseDouble(cmd.getOptionValue("wd").trim());
}
if (cmd.hasOption("wb")) {
- windowSizeBackOff = Double.valueOf(cmd.getOptionValue("wb").trim());
+ windowSizeBackOff = Double.parseDouble(cmd.getOptionValue("wb").trim());
}
if (cmd.hasOption("wr")) {
- windowResizeRate = Double.valueOf(cmd.getOptionValue("wr").trim());
+ windowResizeRate = Double.parseDouble(cmd.getOptionValue("wr").trim());
}
if (cmd.hasOption('r')) {
route = Route.parse(cmd.getOptionValue('r').trim());
}
if (cmd.hasOption("t")) {
- timeout = Double.valueOf(cmd.getOptionValue("t").trim());
+ timeout = Double.parseDouble(cmd.getOptionValue("t").trim());
}
benchmarkMode = cmd.hasOption('b');
if (cmd.hasOption('o')) {
String fileName = cmd.getOptionValue('o').trim();
- dumpStream = new FileOutputStream(new File(fileName));
+ dumpStream = new FileOutputStream(fileName);
if (fileName.endsWith(".vespa")) {
dumpFormat = DumpFormat.VESPA;
}
@@ -189,13 +188,13 @@ class FeederParams {
setSerialTransfer();
}
if (cmd.hasOption('l')) {
- numMessagesToSend = Long.valueOf(cmd.getOptionValue('l').trim());
+ numMessagesToSend = Long.parseLong(cmd.getOptionValue('l').trim());
}
if ( !cmd.getArgList().isEmpty()) {
inputStreams.clear();
for (String fileName : cmd.getArgList()) {
- inputStreams.add(new BufferedInputStream(new FileInputStream(new File(fileName)), BUFFER_SIZE));
+ inputStreams.add(new BufferedInputStream(new FileInputStream(fileName), BUFFER_SIZE));
}
}