This is an automated email from the ASF dual-hosted git repository. ronny pushed a change to branch couchdb-deno in repository https://gitbox.apache.org/repos/asf/couchdb.git
discard bb5722373 Restrict Deno to write to stdout only, read stdin and main.js only. discard 177219f68 Deno Test add c0b8839bf Only allow POST request for /{db}/_view_cleanup (#4449) add b8abb4aad Fix bad prometheus section name add 7ec5f645f Fix flaky LRU test add 6e9834564 Fix flaky elixir users_db_tests add 5aed161e9 Remove duplicate parts of doc note (#4455) add 0db915475 Documentation: Add `adm:pass` to replication endpoint URL (#4457) add 0c49292a8 Improve documentation of source code format checks add edded9618 Tweak formatting and style of `_find` API documentation (#4460) add 774acb85d Fix erlfmt-format on Windows (#4463) add 8ec7b5788 Bump snappy to CouchDB-1.0.9 (#4464) add f40147b26 mango: correct text index selection for queries with `$regex` (#4458) add bd1d8dc8b Modify conflict ruby example add 5b5a1c2de Remove stale links from documentation comments add dff01446c Prepare for Erlang OTP/26 (#4465) add 138163147 fix: remove duplicate couchdb_erlang* from _prometheus add 6d7cfe892 Avoid re-compiling filter view functions add 5cdc0aa1b Fix list ordering and indentation in "Search" docs (#4476) add 0aedd9384 fix: prometheus counter metric naming (#4474) add b9762479f Improve couch_js_tests add a25336f91 Migrate configure settings to Windows (#4479) add bb0f37bf0 feat: add type and descriptions to prometheus output (#4475) add 8c0a177c7 docs(typo): Fix server name duplicate (#4484) add 937ccb6ef catch and log any error from mem3:local_shards add 2c129d167 Merge pull request #4485 from apache/couch_index_crashes add 1df0f4f40 Bump Erlang 24 and 25 in CI add 189db657f fix(doc): reverse definition of `all_nodes` and `cluster_nodes` to match reality add 65ad03c0f Revert "catch and log any error from mem3:local_shards" add 451d4bdd6 log the original stack trace if Mod:Func throws add f82d96173 don't crash in handle_db_event add 224d6764e track index pids during open and don't crash if they do add 0073e764b Merge pull request #4491 from apache/couch_index_fixes add 09dca4e5b Suppress sasl_error_logger output on Windows (#4492) add 27af79c4a Add log directory to eunit setup template (#4493) add 07c1433d3 eunit test to assert ddoc_updated clause doesn't throw add 3f0d86f99 Increase index crash test cover a bit add 35b1adc48 Merge pull request #4495 from apache/add_db_event_crash_test add 467e14ef1 docs(_find): catch up with the implementation and further fixes add 25d6e7dfc add error_info clause for 410 Gone add 75ee0f0fb Merge pull request #4503 from apache/410-gone add cd77b07cf Treat javascript internal errors as fatal add d1412552f docs(hosts): Remove misleading /etc/hosts info (#4506) add bef20f357 feat (prometheus): metrics for individual message queues add f4fd6b5d3 feat (prometheus): internal_replication_jobs metric add ee11952c8 feat (prometheus): membership metric add 8c1ef5bfe fix (prometheus): gauge types for metrics that can be decremented add a9bce2f59 Merge pull request #4507 from apache/prometheus_metrics add 23f4e628d treat single-element keys as the key for `_view` add 31e3f64e6 Merge pull request #4494 from jiahuili430/treat-key-as-keys add 5c99df170 allow configurable timeouts for _view and _search add 762277f3d Merge pull request #4513 from apache/configurable-timeouts add f4d7d19de docs(_find): Remove redundancy from sample `_explain` response add db38da4af Add s390x back into the CI matrix add 1432717b1 docs: Fixed `_compact/{ddoc}` and `_shards/{docid}` examples add e32cfd63d Improve compression eunit test suite add a6ab75b43 Querying `_all_docs` with non-string `key` should return an empty list add e755e2352 Make remsh work with quoted cookie add 865d5f898 Bind python-black to specific version (#4528) add b7686a9da feat (prometheus): include aggregated couch/index message queues add bb3314262 feat (prometheus): couch_db_updater and couch_file queue stats add 16a350b97 feat (prometheus): add Erlang distribution stats add daecd3f50 fix (prometheus): do not emit ophaned HELP/TYPE lines add 98a356c32 Merge pull request #4525 from apache/prometheus_erlang_dist add 4b8b7ec9f Improve couch_proc_manager add c5a7809f0 Remove limit parameter from ken add 1ed0519a1 Remove explicit import add c83b5ccb6 mango: introduce support for covering indexes add 42deb8471 mango: add type information for better self-documentation add 3351a2647 mango: increase coverage of the `choose_best_index/1` test add 313b74e92 mango: add eunit tests add e6af4924c _find: mention the `covered` attribute in the `_explain` response add f5371aab7 mango: add integration tests for keys-only covering indexes add cc500adc1 mango: mark fields with the `$exists` operator indexable add 8b1e1837d mango: enhance compositionality of `consider_index_coverage/3` add 28480f9a4 mango: fix definition of index coverage add df52be577 mango: refactor add c1195e43c fix(mango): GET invalid path under `_index` should not cause 500 add a28b75a9d Import nouveau (#4291) add 4c741a94d put lucene 9 indexes in subdir add 6f568480c Merge pull request #4539 from apache/nouveau-lucene9-subdir add 3c90100de remove unused facet property add ac300497b Merge pull request #4540 from apache/nouveau-remove-facet-field add be07ff799 simplify analyzer factory add e956ce523 Merge pull request #4541 from apache/nouveau-simplify-analyzer-factory add 3f0ed0c9a doc(cve): add 2023-26268 placeholder add 2ee4f659f doc(cve): add 2023-26268 placeholder & backport release notes add eeca93c94 declare dependency on nouveau add e4bc2b51c Merge pull request #4550 from apache/mango-nouveau-dep add e6dcf443f Noticed the new internal error couchjs test was flaky add 0d1175a4f Another flaky couch_js fix add 5096243ff enable nouveau tests in CI add 3ea049d64 allow PUT to existing index if definition identical add 57fc9047a OTP 23 support add f240adc8a Add log dumping to build-report make target add f4f04e092 enhance out of order message add 6f39ae734 mango end-to-end tests for nouveau add 210e80e03 enhance test diagnostics add 5df9dbe8c capture warn/error in entirety add 2e4563115 disable ken add 67e17afd9 maven batch mode add 307450c3c cache (immutable) maven artifacts add 8e03f9766 Merge pull request #4543 from apache/jenkins-enable-nouveau-ci add 23dfab503 fix race condition when creating indexes add 6f4711fe7 Merge pull request #4555 from apache/nouveau-race-condition-creating-index add 07546f506 remove afterburner add 82aa1625c Merge pull request #4556 from apache/nouveau-remove-afterburner add d5c78e6be finish partitioned support for nouveau add aa8eb076c Merge pull request #4557 from apache/nouveau-partition-support add fe445bb95 Make Erlang 24 the minimum version add a9831a676 fix ken_server:nouveau_updated add 3044528d5 Merge pull request #4559 from apache/fix-ken-server-nouveau add 2430728f5 Clarify encoding length in performance.rst add e659a971c CVE-2023-2626 details doc update add 17a99712e Nouveau doc fixes (#4572) add f1ab0cabf Add report logging (#4483) add 4083f7b1b mention flag and new dependencies add bb633a712 Import xxHash add bc49cef4b Encapsulate MD5 file checksums bits in couch_file add 1a59e5d70 Remove duplicate etag generation function add 92c338a3a Add new configure option and restore --dev behavior (#4582) add 039da4a8b remove Content-MD5 header support add 4a8c8b52f Merge pull request #4574 from apache/remove-content-md5-header add 6371cd0a0 Revert "fix(mango): GET invalid path under `_index` should not cause 500" add 2543590f3 Merge pull request #4584 from apache/revert-invalid-path-fix add 9b3fbf4c3 Remove extra unused variable (#4577) add 6bb4fbd78 upgrade nouveau to lucene 9.6.0 add 67c7f6025 Merge pull request #4585 from apache/nouveau-lucene-9.6.0 add bc3eb6717 switch to Gradle add 9851bb396 Merge pull request #4587 from apache/nouveau-gradle add 51267a5fd Improve nouveau mango integration add f5935c65d Merge pull request #4589 from apache/nouveau-mango-string-text add a9d8cda2b Merge changes from 3.3.x into main add 8600e46f2 mango: extend execution statistics with keys examined (#4569) add 4c80583e3 fix dreyfus after 'Improve nouveau mango integration' add abd129fac Merge pull request #4595 from apache/dreyfus-default-field add 75316aedb add test and code quality plugins add 80b8f24e6 apply spotless changes add 98fc76d67 Merge pull request #4596 from apache/nouveau-quality-plugins add a854625d7 fix(mango): covering indexes for partitioned databases add 85e1fa791 Speed up internal replicator add 54b8c7322 add nouveau and java tools to dev container add 6ddeac80a Merge pull request #4599 from apache/nouveau-dev-container add f74572775 add tests for QueryDeserializer add a58684f42 Merge pull request #4600 from apache/nouveau-query-deserializer-tests add dcf57c710 Add a simple fabric benchmark add b195f3734 mango: address missing parts of the `_index` API add 6b4cbaa72 Update default vm.args settings add ba54c635b Optimize mem3:dbname/1 function add 68ef23311 Fix rebar3 version to 3.21.0 add e6939557b ARM64 worker went away. add 116c5b0a9 Revert "ARM64 worker went away." add 951f1b946 Add a few more commit and query engine metrics add 834a2d31e Add missing stats description for Mango keys examined add 751c14dc3 mango: fix the faulty `index_array_length` tests add 649f47310 mango: remove redundant text service checks from the tests add 3ff87fafc optionally suppress version info in server response header add 2bbc89ce1 Use milliseconds for fsync time histogram add a4bad8d8e Bump requests from 2.27.1 to 2.31.0 in /src/mango add 1f363b764 Improve fsync metrics time calculation add 0748a1e7a Use a faster sets implementation available since OTP 24 add 79b2b7c11 Revert "Bump requests from 2.27.1 to 2.31.0 in /src/mango" add 4cfdf3062 Fix warning: variable bound multiple times add 6194cfc68 Git ignore mango .hypothesis directory add a4bbb87d1 Remove excl_archive_filters add b7de21f46 Support OTP 26 base64 decode error add 7f13f640c Sort lists from maps add 453c698a5 Convert `term_to_binary` to `?term_to_bin` add bf5868890 Merge pull request #4581 from apache/otp-26-compat add f7db54c41 Rename NonRep -> Local and merge_conflicts -> replicated_changes add 0bc0839ac Add OTP 26 to pull request CI list add c75c31d38 Handle replicator instance start time during upgrades better add 1a45bc211 Use xxHash for couch_file document and attachment summary checksums add c742d9c7c Fix purge infos replicating to the wrong shards during shard splitting. add 8b6b3e9b3 Fix typo POST -> PUT add 0fa9a07f0 Add extra assert in flaky couch_file test add e996fa07b Fix prometheus to survive mem3_sync termination add 416c1cd8d TLS: add `{verify, verify_peer}` to enable verification add eb6a74d56 mango: revisit test database recreation logic add 604526f5f Add optional logging of security issues when replicating (#4625) add bb1216593 clarify default quorum calculation add 38b00c900 Merge pull request #4636 from apache/clarify-quorum add bca3ab09f Clean up fabric_bench_test databases add 3690f9e24 Improve emitted change feed sequence after a split add be2eeccdc docs: update sphinx resource hyperlink add 290ea87b8 docs: add `adm:pass` to URL examples add fafa982c5 Fix the ability to use ; in config values add d9b4c199e upgrade nouveau to lucene 9.7.0 add 16f47d758 Merge pull request #4654 from apache/lucene-9.7.0 add f5897635e mango: replace `foldl` with a `map` add 8dbb021aa Fix undefined range in mem3_rep purge replication logic add e3eb6dfca upgrde to dropwizard 4.0.1 add c892a2619 Merge pull request #4664 from apache/dropwizard-4.0.1 add d7a082af2 mango: chase changes in `mango_idx_text` add 2d0e6a585 Merge pull request #4660 from pgj/fix/mango_idx_nouveau-regex add 4a68234e7 mango: simplify implementation of empty selector tests add fca1969ae split all add 05df4bb41 Merge pull request #4669 from apache/replicator-split-all add ac8cb3779 Fix updating values via the Server Configuration API add 882e7161a allow setting of some ibrowse options add e7f67c846 Merge pull request #4670 from apache/replicator-ibrowse-options add 890c26d5c deps: upgrade proper (#4671) add 5df7fee19 Conditionally exclude nouveau from elixir make target add 377e71304 Merge pull request #4674 from apache/nouveau-elixir-conditional add e89219848 Fix multipart parser "attachment longer than expected" error add d4d49077d Crash replication jobs on unexpected 4xx errors add 3e8155e6c Replace Folsom and improve performance add c3e67eec8 Fix: `_design_docs/queries` with `keys` should only return design docs add 29f79d5ab docs: `_design_docs/queries` and `_local_docs/queries` add a19d8a9ea allow locale setting for number detection add 63672afb4 Merge pull request #4685 from apache/nouveau-locale add b7ca600e8 run haproxy and nouveau without shell add 36cb5f06e Merge pull request #4689 from apache/dev-run-no-shell add 4df0dc45e docs: add Centos/RHEL9+, thanks for nothing RedHat add d2edfd9a3 feat: allow restarting of failed jobs add 480d3a3cb feat: make rexi timeouts and replication batches for shard split topoff configurable add 795d37afe set nouveau minimum java version add 48338247b Merge pull request #4692 from apache/nouveau-minimum-java-version add cfee5236b send cookie on successful basic auth add e35fb2032 Merge pull request #4687 from apache/preemptive-cookie add ea737d908 Revert "send cookie on successful basic auth" add d609a9f32 Merge pull request #4694 from apache/revert-preemptive-cookie add 1c9dbdb14 Build Nouveau on Windows (#4678) add 3a4c2606a Add "CouchDB-Replicator/..." user agent to replicator /_session requests add 2df79d0f3 Try to fix the full CI checkout add ff2fea6c8 Read the Docs configuration file (#4233) add bd5781dfd Update docs badge icon (#4699) add 50c69a0c6 send a session cookie after successful basic auth add 9d44e311e Merge pull request #4702 from apache/basic-auth-to-session add 42142f895 mango: remove duplicate elements from `indexable_fields/1` results add 526e203d3 dreyfus: make faceting produce maps on empty results add 5e5ac9edd mango: tweak the formatting of option r in the _explain output add 3294a72ac test(make): remove `elixir` target, rename `elixir-suite` to `elixir` add 7313c4aa7 dreyfus: amend the fix for faceting on zero values add aef083c59 Merge pull request #4707 from pgj/fix/dreyfus-faceting-on-zero-part-deux add 1f2994e7c ci(freebsd): re-enable full platform ci on FreeBSD add 64af302f6 Handle invalid field errors in Mango add 6b9e5bfee feat(build): fail build if xref complains add f9d4dccfa Introduce optional countermeasures as we run out of disk space add 14a8d5c1c Merge pull request #4681 from apache/out-of-disk-handler add a1ca6d75d Upgrade sphinx-rtd-theme add 5f26ab1c1 docs: fix markdown for Mango configuration options add 996e257ee docs: correct the order of fields in the sample _explain output add 64faef7a5 Fix pending count for the reverse changes feed add 259e64173 support clustered purge in nouveau add 954b57356 Merge pull request #4717 from apache/nouveau-purge add 42a62b235 Update README.md add 55589b7d3 Merge pull request #4721 from apache/rnewson-patch-1 add 33235273f Fix badmatch error when purge requests time out add e69178d3f More Makefile.win adjustments to match Makefile (#4731) add e60e27554 Unlock build using Elixir 1.15 (#4726) add c32ceea43 Try to fix deb package builds in the main CI add 1b09a3b3a Use GNU make vars for paths (#4732) add d5701f437 Stop client process and clean up if client disconnects add 9a6bba88e Ban the last monster (#4743) add d7fad12db Update mochiweb to 3.2.0 add 16bf9dfa9 mango: expose candidate indexes and selector hints on `_explain` add 60cc6ebaf Increase timeout in mango_cursor tests add f79d9514a Add `_purged_infos` endpoint add 83e39b6d1 mango: correct behavior of `fields` on `_explain` add 3b601f276 Revert "print peer port in http log" add f73e68d7b Merge pull request #4753 from apache/revert-peer-change add 8e27675ed upgrade gradle add b0116ffa2 Extract acc record add 80280dc05 Async dispatch to dedicated ibrowse process for performance add 52280982f Make some classes immutable add 5b8c23b77 Ensure an update fails if a previous update failed add 6898d6e48 reintroduce flow control for async index update add e63b9e699 Merge pull request #4749 from apache/nouveau-ibrowse-improvements add 86df356a8 mango: align `opts.fields` with `fields` on `_explain` add 1d0557b34 Fixing name of installation instruction file for git checkouts to README-DEV.rst. add ad9ce07e6 Remove sensitive headers from the mochiweb request in pdict add 6b5fadd31 Use HTTP rules for hostname verification add 0a5111453 Merge pull request #4759 from apache/wildcard_verification add b22fda31a Fix badrecord error when replicator is logging http usage add c8521cba9 mango: plug hole in unit test coverage of view cursor functions add 6f8fc480e chttpd: fix comment typo add 1ee46df84 Fix flaky mem3 reshard test add 8744b7bc9 avoid badmatch in error cases add 407e6188a Merge pull request #4767 from apache/nouveau-badmatch-fix add e9135acc1 Replace replicator open_doc_revs kaboom with something more descriptive add b4f3ca552 fix nouveau index updating ordering add 599c3da6e Merge pull request #4770 from apache/nouveau-index-ordering-bugfix add 07c35f46d fix gradle deprecation warning add 435db51a4 Merge pull request #4771 from apache/nouveau-fix-gradle-deprecation-warning add b6ea325cc Add new HTTP endpoint `/_node/_local/_smoosh/status`. (#4766) add ed14e269c Remove unused couch_event_os_listener module add 3c4aa61ec Rename find_bugs/find-bugs make target to xref add b9cd34888 A few more cleanups in couch_os_process add ecc52b515 Remove custom read and write callback functions in couch_os_process add 6ad1ba224 remsh extract wrong NODE name from ERL_FLAGS add e85454d03 upgrade nouveau's lucene version to 9.8.0 add f2ea85e8f Merge pull request #4785 from apache/nouveau-lucene-9.8.0 add 0a58f4e24 Add extra timing stats for couch_js engine commands add 82a7099e0 Remove `bcrypt` add 87e4a0196 Add calls counts to couch_js engine time stats add 33d3bbc1f upgrade dropwizard add 45aba685b Merge pull request #4788 from apache/upgrade-dropwizard-4.0.2 add aaf900531 Amend description of `use_index` on `/{db}/_find` add 686247e6d remove tryAcquire(duration, unit) add 1fc16b0cd remove volatile boolean closed add a15b56833 test deleteOnClose within commit() itself add eb3a9488d teach Caffeine not to evict active indexes add 2763d1110 switch to AsyncLoadingCache add f4a7a2152 move commit scheduling to refreshAfterWrite add f6d1a397b remove unused methods add 62edccac8 inject caffeine scheduler from application config add 891bd02fd simplify use of synchronized add 170c58d60 Merge pull request #4791 from apache/nouveau-indexmanager-improvements add baa3767b1 Fix incorrect raising of database_does_not_exist error add 44a357d3e Fix flaky fabric_bench test add dca403dab mango: add unit tests for text cursor add d6d4ad979 mango: prevent occasional duplication of paginated `text` results add ce2607a5c mango: de-duplicate results on returning them in `nouveau` add 1965b784d Send compatible AuthSession cookie when possible. add acd88aeae Merge pull request #4798 from apache/send-original-cookie-format add 93dfd4e04 mango: correct the fix for the duplicated `text` results add e083114e3 Another attempt at fixing the flaky ddoc_cache test add ede7ff2fe Configure hex, gradle, pip and npm caches. add 0ff754944 Remove suggestion to install curl/libcurl add b0dabd618 mango: do not skip json tests when clouseau installed add ffc9dd4a2 Merge pull request #4806 from apache/mango-run-tests add b1cc849d8 docs: Add Ubuntu 22.04 Jammy Jellyfish as supported OS add da6fb7920 Fix a few couch_os_process metrics add 6c2e50319 Fix flaky couch_stream test add 231055595 Prevent delayed opener error from crashing index servers add f0d577692 upgrade dropwizard to 4.0.3 add 63aff0546 Merge pull request #4817 from apache/dropwizard-4.0.3 add 5176f96fc Wait for compacted indexes to flip. add 15a362e79 Update MochiWeb to v3.2.1 (#4822) add 2c0ee5fa7 Update proper to latest commit add b44239857 Fix missing eunit include add 842ae031c When running configure in a dist skip proper is not present add 682f512d6 docs(find): add missing negation on talking about field mismatch add 26cfe5369 mango: add $beginsWith operator (#4810) add e9d703c21 Remove installation via snap package (#4826) add 359cc38de mango: fix $beginsWith range (#4828) new 53914174f Deno Test new 441990807 Restrict Deno to write to stdout only, read stdin and main.js only. This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (bb5722373) \ N -- N -- N refs/heads/couchdb-deno (441990807) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .asf.yaml | 6 + .devcontainer/devcontainer.json | 13 +- .gitignore | 7 +- .readthedocs.yaml | 37 + INSTALL.Unix.md | 2 +- LICENSE | 41 + Makefile | 137 +- Makefile.win | 144 +- README-DEV.rst | 19 +- README.rst | 4 +- build-aux/Jenkinsfile.full | 78 +- build-aux/Jenkinsfile.pr | 10 +- build-aux/print-committerlist.sh | 2 +- build-aux/xref-helper.sh | 24 + configure | 51 +- configure.ps1 | 13 +- dev/format_lib.py | 4 +- dev/remsh-tls | 8 +- dev/run | 82 +- mix.exs | 6 +- nouveau/.gitattributes | 1 + nouveau/.gitignore | 8 + nouveau/LICENSE | 201 + nouveau/README.md | 118 + nouveau/TODO | 8 + nouveau/build.gradle | 92 + nouveau/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 62076 bytes nouveau/gradle/wrapper/gradle-wrapper.properties | 6 + nouveau/gradlew | 245 + nouveau/gradlew.bat | 92 + nouveau/nouveau.yaml | 27 + nouveau/settings.gradle | 5 + .../apache/couchdb/nouveau/NouveauApplication.java | 83 + .../nouveau/NouveauApplicationConfiguration.java | 82 + .../apache/couchdb/nouveau/api/AnalyzeRequest.java | 48 + .../couchdb/nouveau/api/AnalyzeResponse.java | 41 + .../couchdb/nouveau/api/DocumentDeleteRequest.java | 62 + .../couchdb/nouveau/api/DocumentUpdateRequest.java | 73 + .../apache/couchdb/nouveau/api/DoubleField.java | 52 + .../apache/couchdb/nouveau/api/DoubleRange.java | 27 + .../java/org/apache/couchdb/nouveau/api/Field.java | 44 + .../couchdb/nouveau/api/IndexDefinition.java | 89 + .../org/apache/couchdb/nouveau/api/IndexInfo.java | 68 + .../couchdb/nouveau/api/IndexInfoRequest.java | 62 + .../java/org/apache/couchdb/nouveau/api/Range.java | 130 + .../org/apache/couchdb/nouveau/api/SearchHit.java | 60 + .../apache/couchdb/nouveau/api/SearchRequest.java | 160 + .../apache/couchdb/nouveau/api/SearchResults.java | 92 + .../apache/couchdb/nouveau/api/StoredField.java | 45 + .../apache/couchdb/nouveau/api/StringField.java | 53 + .../org/apache/couchdb/nouveau/api/TextField.java | 53 + .../org/apache/couchdb/nouveau/core/IOUtils.java | 63 + .../org/apache/couchdb/nouveau/core/Index.java | 185 + .../apache/couchdb/nouveau/core/IndexFunction.java | 22 + .../apache/couchdb/nouveau/core/IndexManager.java | 394 ++ .../apache/couchdb/nouveau/core/StripedLock.java | 42 + .../nouveau/core/UpdatesOutOfOrderException.java | 29 + .../couchdb/nouveau/core/ser/ByteArrayWrapper.java | 23 + .../couchdb/nouveau/core/ser/DoubleWrapper.java | 23 + .../couchdb/nouveau/core/ser/FloatWrapper.java | 23 + .../couchdb/nouveau/core/ser/IntWrapper.java | 23 + .../couchdb/nouveau/core/ser/LongWrapper.java | 23 + .../couchdb/nouveau/core/ser/PrimitiveWrapper.java | 45 + .../couchdb/nouveau/core/ser/StringWrapper.java | 23 + .../couchdb/nouveau/health/AnalyzeHealthCheck.java | 43 + .../couchdb/nouveau/health/IndexHealthCheck.java | 60 + .../nouveau/lucene9/Lucene9AnalyzerFactory.java | 139 + .../couchdb/nouveau/lucene9/Lucene9Index.java | 513 ++ .../couchdb/nouveau/lucene9/Lucene9Module.java | 29 + .../nouveau/lucene9/NouveauQueryParser.java | 184 + .../nouveau/lucene9/ParallelSearcherFactory.java | 34 + .../couchdb/nouveau/lucene9/QueryDeserializer.java | 134 + .../couchdb/nouveau/lucene9/QuerySerializer.java | 168 + .../lucene9/SimpleAsciiFoldingAnalyzer.java | 37 + .../couchdb/nouveau/resources/AnalyzeResource.java | 69 + .../couchdb/nouveau/resources/IndexResource.java | 127 + .../couchdb/nouveau/tasks/CloseAllIndexesTask.java | 35 + nouveau/src/main/resources/banner.txt | 7 + nouveau/src/main/resources/openapi.yaml | 9 + .../couchdb/nouveau/api/SearchRequestTest.java | 57 + .../nouveau/health/AnalyzeHealthCheckTest.java | 29 + .../nouveau/health/IndexHealthCheckTest.java | 49 + .../lucene9/Lucene9AnalyzerFactoryTest.java | 281 + .../couchdb/nouveau/lucene9/Lucene9IndexTest.java | 243 + .../nouveau/lucene9/NouveauQueryParserTest.java | 116 + .../nouveau/lucene9/QuerySerializationTest.java | 106 + .../resources/fixtures/DocumentUpdateRequest.json | 22 + .../src/test/resources/fixtures/SearchRequest.json | 17 + rebar.config.script | 11 +- rel/apps/couch_epi.config | 1 + rel/files/eunit.ini | 4 +- rel/overlay/bin/remsh | 23 +- rel/overlay/etc/default.ini | 44 + rel/overlay/etc/vm.args | 24 + rel/plugins/eunit_plugin.erl | 4 +- rel/reltool.config | 13 +- setup_eunit.template | 3 +- share/server/filter.js | 5 - share/server/loop.js | 29 +- share/server/nouveau.js | 108 + share/server/state.js | 12 +- share/server/util.js | 4 +- share/server/views.js | 2 + src/chttpd/priv/stats_descriptions.cfg | 4 + src/chttpd/src/chttpd.erl | 30 +- src/chttpd/src/chttpd_db.erl | 53 +- src/chttpd/src/chttpd_misc.erl | 15 +- src/chttpd/src/chttpd_node.erl | 85 +- src/chttpd/src/chttpd_show.erl | 5 +- src/chttpd/src/chttpd_util.erl | 57 +- src/chttpd/test/eunit/chttpd_changes_test.erl | 12 +- src/chttpd/test/eunit/chttpd_db_test.erl | 939 +-- src/chttpd/test/eunit/chttpd_purge_tests.erl | 742 +-- src/chttpd/test/eunit/chttpd_util_test.erl | 113 + src/chttpd/test/eunit/chttpd_view_test.erl | 473 +- src/config/src/config.erl | 40 +- src/couch/include/couch_db.hrl | 11 +- src/couch/include/couch_js_functions.hrl | 2 +- src/couch/priv/stats_descriptions.cfg | 136 + src/couch/src/couch.app.src | 3 +- src/couch/src/couch_att.erl | 10 +- src/couch/src/couch_bt_engine.erl | 4 +- src/couch/src/couch_changes.erl | 2 +- src/couch/src/couch_db.erl | 60 +- src/couch/src/couch_db_split.erl | 47 +- src/couch/src/couch_db_updater.erl | 44 +- src/couch/src/couch_disk_monitor.erl | 241 + src/couch/src/couch_doc.erl | 10 +- src/couch/src/couch_file.erl | 150 +- src/couch/src/couch_httpd.erl | 19 +- src/couch/src/couch_httpd_auth.erl | 77 +- src/couch/src/couch_httpd_db.erl | 31 +- src/couch/src/couch_httpd_multipart.erl | 2 +- .../src/couch_lists.erl} | 40 +- src/couch/src/couch_native_process.erl | 4 +- src/couch/src/couch_os_process.erl | 138 +- src/couch/src/couch_proc_manager.erl | 664 +- src/couch/src/couch_query_servers.erl | 108 +- src/couch/src/couch_secondary_sup.erl | 3 +- src/couch/src/couch_util.erl | 5 +- src/couch/src/test_util.erl | 6 + src/couch/test/eunit/couch_auth_cache_tests.erl | 3 +- src/couch/test/eunit/couch_ejson_compare_tests.erl | 4 + src/couch/test/eunit/couch_etag_tests.erl | 4 +- src/couch/test/eunit/couch_file_tests.erl | 297 +- src/couch/test/eunit/couch_flags_config_tests.erl | 2 +- src/couch/test/eunit/couch_js_tests.erl | 398 +- .../test/eunit/couch_lists_tests.erl} | 25 +- src/couch/test/eunit/couch_query_servers_tests.erl | 2 +- src/couch/test/eunit/couch_stream_tests.erl | 45 +- src/couch/test/eunit/couch_totp_tests.erl | 37 +- src/couch/test/eunit/couchdb_attachments_tests.erl | 30 +- .../test/eunit/couchdb_file_compression_tests.erl | 116 +- src/couch/test/eunit/couchdb_os_proc_pool.erl | 796 ++- src/couch_dist/.gitignore | 4 + src/couch_dist/README.md | 162 + src/couch_dist/certs/certs | 11 + src/couch_dist/certs/certs.exs | 209 + src/couch_dist/certs/parse_cert.escript | 8 + src/couch_dist/gen_certs | 43 + src/couch_epi/src/couch_epi.hrl | 3 + src/couch_epi/src/couch_epi_util.erl | 4 +- src/couch_event/src/couch_event_listener_mfa.erl | 25 +- src/couch_event/src/couch_event_os_listener.erl | 67 - src/couch_index/src/couch_index_compactor.erl | 2 +- src/couch_index/src/couch_index_server.erl | 180 +- .../test/eunit/couch_index_crash_tests.erl | 233 + .../test/eunit/couch_index_ddoc_updated_tests.erl | 3 +- src/couch_log/include/couch_log.hrl | 3 +- src/couch_log/priv/stats_descriptions.cfg | 8 + src/couch_log/src/couch_log.erl | 14 +- src/couch_log/src/couch_log_config.erl | 3 + src/couch_log/src/couch_log_config_dyn.erl | 1 + src/couch_log/src/couch_log_formatter.erl | 65 + src/couch_log/src/couch_log_sup.erl | 2 + src/couch_log/src/couch_log_trunc_io.erl | 2 +- src/couch_log/src/couch_log_util.erl | 13 +- src/couch_log/src/couch_log_writer_file.erl | 2 +- src/couch_log/src/couch_log_writer_stderr.erl | 4 +- src/couch_log/src/couch_log_writer_syslog.erl | 28 +- src/couch_log/test/eunit/couch_log_config_test.erl | 18 + .../test/eunit/couch_log_formatter_test.erl | 17 + src/couch_log/test/eunit/couch_log_writer_ets.erl | 7 +- .../test/eunit/couch_log_writer_syslog_test.erl | 40 + src/couch_mrview/src/couch_mrview.erl | 10 +- src/couch_mrview/src/couch_mrview_http.erl | 37 +- src/couch_mrview/src/couch_mrview_show.erl | 5 +- src/couch_mrview/src/couch_mrview_util.erl | 38 +- .../test/eunit/couch_mrview_all_docs_tests.erl | 39 + .../test/eunit/couch_mrview_http_tests.erl | 29 + src/couch_prometheus/src/couch_prometheus.app.src | 2 +- src/couch_prometheus/src/couch_prometheus.erl | 362 ++ src/couch_prometheus/src/couch_prometheus_http.erl | 5 +- .../src/couch_prometheus_server.erl | 236 - src/couch_prometheus/src/couch_prometheus_sup.erl | 4 +- src/couch_prometheus/src/couch_prometheus_util.erl | 185 +- .../test/eunit/couch_prometheus_e2e_tests.erl | 63 +- .../test/eunit/couch_prometheus_util_tests.erl | 70 - .../src/cpse_test_read_write_docs.erl | 5 +- src/couch_pse_tests/src/cpse_util.erl | 4 +- .../include/couch_replicator_api_wrap.hrl | 3 +- src/couch_replicator/src/couch_replicator.erl | 1 + .../src/couch_replicator_api_wrap.erl | 63 +- .../src/couch_replicator_auth_session.erl | 20 +- .../src/couch_replicator_doc_processor.erl | 1 + src/couch_replicator/src/couch_replicator_ids.erl | 2 +- .../src/couch_replicator_parse.erl | 95 +- .../src/couch_replicator_scheduler_job.erl | 26 +- .../src/couch_replicator_utils.erl | 177 +- .../src/couch_replicator_worker.erl | 104 +- .../couch_replicator_error_reporting_tests.erl | 254 +- src/couch_stats/README.md | 21 +- src/couch_stats/src/couch_stats.app.src | 2 +- src/couch_stats/src/couch_stats.erl | 209 +- src/couch_stats/src/couch_stats.hrl | 14 - src/couch_stats/src/couch_stats_aggregator.erl | 162 - src/couch_stats/src/couch_stats_counter.erl | 67 + src/couch_stats/src/couch_stats_gauge.erl | 54 + src/couch_stats/src/couch_stats_histogram.erl | 457 ++ src/couch_stats/src/couch_stats_httpd.erl | 9 - src/couch_stats/src/couch_stats_math.erl | 406 ++ src/couch_stats/src/couch_stats_server.erl | 250 + src/couch_stats/src/couch_stats_sup.erl | 2 +- src/couch_stats/src/couch_stats_util.erl | 190 + src/custodian/src/custodian_util.erl | 2 +- .../src/ddoc_cache_entry_validation_funs.erl | 2 +- src/ddoc_cache/src/ddoc_cache_value.erl | 4 +- src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl | 31 +- src/docs/images/index-selection-steps.svg | 276 + src/docs/requirements.txt | 2 +- src/docs/src/api/database/bulk-api.rst | 108 +- src/docs/src/api/database/compact.rst | 4 +- src/docs/src/api/database/find.rst | 667 +- src/docs/src/api/database/misc.rst | 50 + src/docs/src/api/database/security.rst | 2 +- src/docs/src/api/database/shard.rst | 9 +- src/docs/src/api/ddoc/index.rst | 1 + src/docs/src/api/ddoc/nouveau.rst | 145 + src/docs/src/api/ddoc/render.rst | 2 +- src/docs/src/api/ddoc/views.rst | 85 +- src/docs/src/api/document/attachments.rst | 8 +- src/docs/src/api/local.rst | 147 +- src/docs/src/api/server/authn.rst | 7 + src/docs/src/api/server/common.rst | 163 +- src/docs/src/best-practices/forms.rst | 6 +- src/docs/src/best-practices/iso-date.rst | 4 +- src/docs/src/best-practices/reverse-proxies.rst | 2 +- src/docs/src/cluster/sharding.rst | 15 +- src/docs/src/cluster/tls_erlang_distribution.rst | 53 +- src/docs/src/config/couchdb.rst | 17 + src/docs/src/config/disk-monitor.rst | 76 + src/docs/src/config/http.rst | 32 + src/docs/src/config/index.rst | 1 + src/docs/src/config/intro.rst | 6 +- src/docs/src/config/query-servers.rst | 37 +- src/docs/src/config/replicator.rst | 61 +- src/docs/src/cve/2023-26268.rst | 61 + src/docs/src/ddocs/index.rst | 1 + src/docs/src/ddocs/nouveau.rst | 692 +++ src/docs/src/ddocs/search.rst | 90 +- src/docs/src/ddocs/views/collation.rst | 2 +- src/docs/src/ddocs/views/pagination.rst | 4 +- src/docs/src/experimental.rst | 10 + src/docs/src/install/index.rst | 2 +- src/docs/src/install/nouveau.rst | 69 + src/docs/src/install/search.rst | 2 +- src/docs/src/install/snap.rst | 47 - src/docs/src/install/unix.rst | 32 +- src/docs/src/intro/api.rst | 43 +- src/docs/src/intro/curl.rst | 19 +- src/docs/src/intro/security.rst | 8 +- src/docs/src/maintenance/compaction.rst | 27 +- src/docs/src/maintenance/performance.rst | 4 +- src/docs/src/partitioned-dbs/index.rst | 18 +- src/docs/src/replication/conflicts.rst | 107 +- src/docs/src/replication/replicator.rst | 70 +- src/docs/src/setup/cluster.rst | 6 +- src/docs/src/setup/single-node.rst | 6 +- src/docs/src/whatsnew/3.2.rst | 16 + src/docs/src/whatsnew/3.3.rst | 50 + src/dreyfus/src/dreyfus_fabric_search.erl | 4 +- src/dreyfus/src/dreyfus_httpd.erl | 7 +- src/dreyfus/src/dreyfus_index.erl | 6 +- src/ets_lru/test/ets_lru_test.erl | 6 + src/exxhash/.gitignore | 7 + src/{b64url => exxhash}/Makefile | 0 src/exxhash/README.md | 27 + src/exxhash/c_src/exxhash.c | 31 + src/exxhash/c_src/xxhash.c | 43 + src/exxhash/c_src/xxhash.h | 6415 ++++++++++++++++++++ src/exxhash/rebar.config | 32 + .../mango_idx.hrl => exxhash/src/exxhash.app.src} | 15 +- src/exxhash/src/exxhash.erl | 55 + src/exxhash/test/exxhash_tests.erl | 54 + src/fabric/src/fabric.erl | 14 +- src/fabric/src/fabric_bench.erl | 371 ++ src/fabric/src/fabric_db_create.erl | 5 +- src/fabric/src/fabric_db_delete.erl | 2 +- src/fabric/src/fabric_db_purged_infos.erl | 79 + src/fabric/src/fabric_db_update_listener.erl | 16 +- src/fabric/src/fabric_doc_purge.erl | 591 +- src/fabric/src/fabric_rpc.erl | 25 +- src/fabric/src/fabric_streams.erl | 235 +- src/fabric/src/fabric_util.erl | 2 +- src/fabric/src/fabric_view.erl | 17 +- src/fabric/src/fabric_view_all_docs.erl | 44 +- src/fabric/src/fabric_view_changes.erl | 42 +- src/fabric/src/fabric_view_map.erl | 8 +- src/fabric/src/fabric_view_reduce.erl | 6 +- src/fabric/test/eunit/fabric_bench_test.erl | 101 + src/global_changes/src/global_changes_listener.erl | 6 +- src/global_changes/src/global_changes_server.erl | 6 +- src/ken/src/ken_server.erl | 71 +- src/ken/test/ken_server_test.erl | 10 +- src/mango/requirements.txt | 3 +- src/mango/src/mango.app.src | 3 +- src/mango/src/mango.hrl | 72 + src/mango/src/mango_crud.erl | 4 +- src/mango/src/mango_cursor.erl | 982 ++- src/mango/src/mango_cursor.hrl | 1 + ...go_cursor_text.erl => mango_cursor_nouveau.erl} | 187 +- src/mango/src/mango_cursor_special.erl | 66 +- src/mango/src/mango_cursor_text.erl | 896 ++- src/mango/src/mango_cursor_view.erl | 1305 +++- src/mango/src/mango_error.erl | 37 + src/mango/src/mango_execution_stats.erl | 78 +- src/mango/src/mango_httpd.erl | 50 +- src/mango/src/mango_idx.erl | 247 +- .../{mango_idx_text.erl => mango_idx_nouveau.erl} | 41 +- src/mango/src/mango_idx_special.erl | 31 +- src/mango/src/mango_idx_text.erl | 175 +- src/mango/src/mango_idx_view.erl | 205 +- src/mango/src/mango_native_proc.erl | 121 +- src/mango/src/mango_selector.erl | 128 +- src/mango/src/mango_selector_text.erl | 446 +- src/mango/test/01-index-crud-test.py | 51 + src/mango/test/02-basic-find-test.py | 18 + src/mango/test/03-operator-test.py | 339 +- src/mango/test/04-key-tests.py | 3 +- src/mango/test/05-index-selection-test.py | 33 +- src/mango/test/06-basic-text-test.py | 3 +- .../test/10-disable-array-length-field-test.py | 5 +- src/mango/test/15-execution-stats-test.py | 17 +- src/mango/test/16-index-selectors-test.py | 59 +- src/mango/test/18-json-sort.py | 8 +- src/mango/test/21-empty-selector-tests.py | 129 +- src/mango/test/22-covering-index-test.py | 183 + src/mango/test/23-explain-indexes-test.py | 447 ++ src/mango/test/24-text-paginated-test.py | 108 + src/mango/test/25-beginswith-test.py | 134 + src/mango/test/mango.py | 108 +- src/mango/test/user_docs.py | 15 +- src/mem3/src/mem3.erl | 53 +- src/mem3/src/mem3_hash.erl | 3 +- src/mem3/src/mem3_rep.erl | 156 +- src/mem3/src/mem3_reshard.erl | 2 +- src/mem3/src/mem3_reshard_index.erl | 44 +- src/mem3/src/mem3_reshard_job.erl | 26 +- src/mem3/src/mem3_rpc.erl | 3 + src/mem3/src/mem3_shards.erl | 4 +- src/mem3/src/mem3_sync.erl | 15 +- src/mem3/src/mem3_sync_event_listener.erl | 6 +- src/mem3/src/mem3_util.erl | 2 +- src/mem3/test/eunit/mem3_rep_test.erl | 229 +- src/mem3/test/eunit/mem3_reshard_api_test.erl | 32 + src/mem3/test/eunit/mem3_reshard_test.erl | 118 +- src/nouveau/include/nouveau.hrl | 23 + .../priv/stats_descriptions.cfg | 17 +- src/nouveau/src/nouveau.app.src | 29 + .../src/mango_idx.hrl => nouveau/src/nouveau.erl} | 17 +- src/nouveau/src/nouveau_api.erl | 328 + src/nouveau/src/nouveau_app.erl | 30 + src/nouveau/src/nouveau_bookmark.erl | 68 + src/nouveau/src/nouveau_epi.erl | 52 + src/nouveau/src/nouveau_fabric.erl | 36 + src/nouveau/src/nouveau_fabric_cleanup.erl | 43 + src/nouveau/src/nouveau_fabric_info.erl | 99 + src/nouveau/src/nouveau_fabric_search.erl | 227 + src/nouveau/src/nouveau_httpd.erl | 288 + src/nouveau/src/nouveau_httpd_handlers.erl | 35 + src/nouveau/src/nouveau_index_manager.erl | 161 + src/nouveau/src/nouveau_index_updater.erl | 291 + .../src/nouveau_plugin_couch_db.erl} | 13 +- src/nouveau/src/nouveau_rpc.erl | 57 + src/nouveau/src/nouveau_sup.erl | 31 + src/nouveau/src/nouveau_util.erl | 206 + src/smoosh/src/smoosh_channel.erl | 14 +- src/smoosh/src/smoosh_persist.erl | 24 +- src/smoosh/src/smoosh_priority_queue.erl | 31 +- src/smoosh/src/smoosh_server.erl | 16 +- src/smoosh/test/smoosh_tests.erl | 43 +- support/build_js.escript | 2 + test/elixir/lib/couch.ex | 25 +- test/elixir/test/attachments_test.exs | 23 - test/elixir/test/config/nouveau.elixir | 29 + test/elixir/test/config/search.elixir | 6 +- test/elixir/test/config/suite.elixir | 8 +- test/elixir/test/config/test-config.ini | 6 + test/elixir/test/config_test.exs | 12 + test/elixir/test/cookie_auth_test.exs | 42 + test/elixir/test/disk_monitor.exs | 55 + test/elixir/test/nouveau_test.exs | 606 ++ test/elixir/test/search_test.exs | 77 +- test/elixir/test/users_db_test.exs | 8 +- test/fixtures/allowed-xref.txt | 2 + version.mk | 2 +- 406 files changed, 34481 insertions(+), 5332 deletions(-) create mode 100644 .readthedocs.yaml create mode 100755 build-aux/xref-helper.sh create mode 100644 nouveau/.gitattributes create mode 100644 nouveau/.gitignore create mode 100644 nouveau/LICENSE create mode 100644 nouveau/README.md create mode 100644 nouveau/TODO create mode 100644 nouveau/build.gradle create mode 100644 nouveau/gradle/wrapper/gradle-wrapper.jar create mode 100644 nouveau/gradle/wrapper/gradle-wrapper.properties create mode 100755 nouveau/gradlew create mode 100644 nouveau/gradlew.bat create mode 100644 nouveau/nouveau.yaml create mode 100644 nouveau/settings.gradle create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplicationConfiguration.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeResponse.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleRange.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexDefinition.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfoRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchHit.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/StoredField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/StringField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/api/TextField.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IOUtils.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexFunction.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/StripedLock.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderException.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/ByteArrayWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/DoubleWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/FloatWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/IntWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/LongWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/PrimitiveWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/StringWrapper.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheck.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/health/IndexHealthCheck.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactory.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Module.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParser.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/ParallelSearcherFactory.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QueryDeserializer.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QuerySerializer.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/SimpleAsciiFoldingAnalyzer.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/resources/AnalyzeResource.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java create mode 100644 nouveau/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java create mode 100644 nouveau/src/main/resources/banner.txt create mode 100644 nouveau/src/main/resources/openapi.yaml create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/api/SearchRequestTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheckTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/health/IndexHealthCheckTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactoryTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParserTest.java create mode 100644 nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/QuerySerializationTest.java create mode 100644 nouveau/src/test/resources/fixtures/DocumentUpdateRequest.json create mode 100644 nouveau/src/test/resources/fixtures/SearchRequest.json create mode 100644 share/server/nouveau.js create mode 100644 src/couch/src/couch_disk_monitor.erl copy src/{couch_stats/src/couch_stats_sup.erl => couch/src/couch_lists.erl} (52%) copy src/{couch_mrview/test/eunit/couch_mrview_http_tests.erl => couch/test/eunit/couch_lists_tests.erl} (55%) create mode 100644 src/couch_dist/.gitignore create mode 100644 src/couch_dist/README.md create mode 100755 src/couch_dist/certs/certs create mode 100644 src/couch_dist/certs/certs.exs create mode 100755 src/couch_dist/certs/parse_cert.escript create mode 100755 src/couch_dist/gen_certs delete mode 100644 src/couch_event/src/couch_event_os_listener.erl create mode 100644 src/couch_index/test/eunit/couch_index_crash_tests.erl create mode 100644 src/couch_prometheus/src/couch_prometheus.erl delete mode 100644 src/couch_prometheus/src/couch_prometheus_server.erl delete mode 100644 src/couch_prometheus/test/eunit/couch_prometheus_util_tests.erl delete mode 100644 src/couch_stats/src/couch_stats.hrl delete mode 100644 src/couch_stats/src/couch_stats_aggregator.erl create mode 100644 src/couch_stats/src/couch_stats_counter.erl create mode 100644 src/couch_stats/src/couch_stats_gauge.erl create mode 100644 src/couch_stats/src/couch_stats_histogram.erl create mode 100644 src/couch_stats/src/couch_stats_math.erl create mode 100644 src/couch_stats/src/couch_stats_server.erl create mode 100644 src/couch_stats/src/couch_stats_util.erl create mode 100644 src/docs/images/index-selection-steps.svg create mode 100644 src/docs/src/api/ddoc/nouveau.rst create mode 100644 src/docs/src/config/disk-monitor.rst create mode 100644 src/docs/src/cve/2023-26268.rst create mode 100644 src/docs/src/ddocs/nouveau.rst create mode 100644 src/docs/src/install/nouveau.rst delete mode 100644 src/docs/src/install/snap.rst create mode 100644 src/exxhash/.gitignore copy src/{b64url => exxhash}/Makefile (100%) create mode 100644 src/exxhash/README.md create mode 100644 src/exxhash/c_src/exxhash.c create mode 100644 src/exxhash/c_src/xxhash.c create mode 100644 src/exxhash/c_src/xxhash.h create mode 100644 src/exxhash/rebar.config copy src/{mango/src/mango_idx.hrl => exxhash/src/exxhash.app.src} (76%) create mode 100644 src/exxhash/src/exxhash.erl create mode 100644 src/exxhash/test/exxhash_tests.erl create mode 100644 src/fabric/src/fabric_bench.erl create mode 100644 src/fabric/src/fabric_db_purged_infos.erl create mode 100644 src/fabric/test/eunit/fabric_bench_test.erl copy src/mango/src/{mango_cursor_text.erl => mango_cursor_nouveau.erl} (62%) copy src/mango/src/{mango_idx_text.erl => mango_idx_nouveau.erl} (92%) create mode 100644 src/mango/test/22-covering-index-test.py create mode 100644 src/mango/test/23-explain-indexes-test.py create mode 100644 src/mango/test/24-text-paginated-test.py create mode 100644 src/mango/test/25-beginswith-test.py create mode 100644 src/nouveau/include/nouveau.hrl copy src/{chttpd => nouveau}/priv/stats_descriptions.cfg (64%) create mode 100644 src/nouveau/src/nouveau.app.src rename src/{mango/src/mango_idx.hrl => nouveau/src/nouveau.erl} (76%) create mode 100644 src/nouveau/src/nouveau_api.erl create mode 100644 src/nouveau/src/nouveau_app.erl create mode 100644 src/nouveau/src/nouveau_bookmark.erl create mode 100644 src/nouveau/src/nouveau_epi.erl create mode 100644 src/nouveau/src/nouveau_fabric.erl create mode 100644 src/nouveau/src/nouveau_fabric_cleanup.erl create mode 100644 src/nouveau/src/nouveau_fabric_info.erl create mode 100644 src/nouveau/src/nouveau_fabric_search.erl create mode 100644 src/nouveau/src/nouveau_httpd.erl create mode 100644 src/nouveau/src/nouveau_httpd_handlers.erl create mode 100644 src/nouveau/src/nouveau_index_manager.erl create mode 100644 src/nouveau/src/nouveau_index_updater.erl rename src/{couch_prometheus/src/couch_prometheus.hrl => nouveau/src/nouveau_plugin_couch_db.erl} (66%) create mode 100644 src/nouveau/src/nouveau_rpc.erl create mode 100644 src/nouveau/src/nouveau_sup.erl create mode 100644 src/nouveau/src/nouveau_util.erl create mode 100644 test/elixir/test/config/nouveau.elixir create mode 100644 test/elixir/test/disk_monitor.exs create mode 100644 test/elixir/test/nouveau_test.exs create mode 100644 test/fixtures/allowed-xref.txt