mt-libcouchbase 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/.travis.yml +38 -0
- data/Gemfile +4 -0
- data/LICENSE +24 -0
- data/README.md +445 -0
- data/Rakefile +76 -0
- data/ext/README.md +6 -0
- data/ext/Rakefile +19 -0
- data/ext/libcouchbase/.gitignore +132 -0
- data/ext/libcouchbase/CMakeLists.txt +455 -0
- data/ext/libcouchbase/CONTRIBUTING.md +105 -0
- data/ext/libcouchbase/LICENSE +202 -0
- data/ext/libcouchbase/README.markdown +195 -0
- data/ext/libcouchbase/RELEASE_NOTES.markdown +3523 -0
- data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +52 -0
- data/ext/libcouchbase/cmake/Modules/CopyPDB.cmake +42 -0
- data/ext/libcouchbase/cmake/Modules/DistScript.cmake +17 -0
- data/ext/libcouchbase/cmake/Modules/DownloadLcbDep.cmake +18 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseHdrHistogram.cmake +15 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibev.cmake +73 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibevent.cmake +54 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +57 -0
- data/ext/libcouchbase/cmake/Modules/FindProfiler.cmake +16 -0
- data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +49 -0
- data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +142 -0
- data/ext/libcouchbase/cmake/Modules/GetPlatformCCInfo.cmake +45 -0
- data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +70 -0
- data/ext/libcouchbase/cmake/config-cmake.h.in +80 -0
- data/ext/libcouchbase/cmake/configure +355 -0
- data/ext/libcouchbase/cmake/defs.mk.in +6 -0
- data/ext/libcouchbase/cmake/dtrace-instr-link.pl +51 -0
- data/ext/libcouchbase/cmake/libcouchbase.stp.in +829 -0
- data/ext/libcouchbase/cmake/source_files.cmake +104 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.c +1022 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
- data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +25 -0
- data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
- data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +259 -0
- data/ext/libcouchbase/contrib/cbsasl/src/client.c +419 -0
- data/ext/libcouchbase/contrib/cbsasl/src/common.c +50 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.c +67 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.h +33 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.c +296 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.h +45 -0
- data/ext/libcouchbase/contrib/cbsasl/src/hash.c +573 -0
- data/ext/libcouchbase/contrib/cbsasl/src/hash.h +15 -0
- data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.c +500 -0
- data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.h +99 -0
- data/ext/libcouchbase/contrib/cbsasl/src/util.h +31 -0
- data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.c +938 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.h +610 -0
- data/ext/libcouchbase/contrib/genhash/genhash.c +371 -0
- data/ext/libcouchbase/contrib/genhash/genhash.h +241 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CHANGES +157 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CMakeLists.txt +252 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CONTRIBUTORS +37 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/LICENSE +28 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/MINIFY.sh +15 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/README +435 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/cmake/internal_utils.cmake +227 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-death-test.h +294 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-message.h +250 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h +1421 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h.pump +487 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-printers.h +855 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-spi.h +232 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-test-part.h +179 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-typed-test.h +259 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest.h +2291 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_pred_impl.h +358 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_prod.h +58 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h +319 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-filepath.h +206 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-internal.h +1158 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h +233 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h +5143 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump +301 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util.h +619 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-port.h +1947 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-string.h +167 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h +1012 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump +339 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h +3331 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump +297 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-all.cc +48 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-death-test.cc +1344 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-filepath.cc +382 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-internal-inl.h +1218 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-port.cc +805 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-printers.cc +363 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-test-part.cc +110 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-typed-test.cc +110 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest.cc +5015 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest_main.cc +38 -0
- data/ext/libcouchbase/contrib/http_parser/LICENSE-MIT +23 -0
- data/ext/libcouchbase/contrib/http_parser/README.md +178 -0
- data/ext/libcouchbase/contrib/http_parser/http_parser.c +2060 -0
- data/ext/libcouchbase/contrib/http_parser/http_parser.h +321 -0
- data/ext/libcouchbase/contrib/jsonsl/LICENSE +20 -0
- data/ext/libcouchbase/contrib/jsonsl/jsonsl.c +1452 -0
- data/ext/libcouchbase/contrib/jsonsl/jsonsl.h +971 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/CMakeLists.txt +6 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/LICENSE +55 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp-forwards.h +255 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +4893 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
- data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +7 -0
- data/ext/libcouchbase/contrib/snappy/COPYING +28 -0
- data/ext/libcouchbase/contrib/snappy/snappy-c.cc +90 -0
- data/ext/libcouchbase/contrib/snappy/snappy-c.h +138 -0
- data/ext/libcouchbase/contrib/snappy/snappy-internal.h +150 -0
- data/ext/libcouchbase/contrib/snappy/snappy-lcb-msvc.h +5 -0
- data/ext/libcouchbase/contrib/snappy/snappy-sinksource.cc +75 -0
- data/ext/libcouchbase/contrib/snappy/snappy-sinksource.h +137 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.cc +42 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.h +491 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-public.h +100 -0
- data/ext/libcouchbase/contrib/snappy/snappy.cc +1312 -0
- data/ext/libcouchbase/contrib/snappy/snappy.h +184 -0
- data/ext/libcouchbase/contrib/win32-defs/iocpdefs.h +133 -0
- data/ext/libcouchbase/contrib/win32-defs/mingwdefs.h +4396 -0
- data/ext/libcouchbase/contrib/win32-defs/win_stdint.h +258 -0
- data/ext/libcouchbase/doc/Doxyfile +2495 -0
- data/ext/libcouchbase/doc/DoxygenLayout.xml +109 -0
- data/ext/libcouchbase/doc/Makefile +44 -0
- data/ext/libcouchbase/doc/apiattr.h +117 -0
- data/ext/libcouchbase/doc/cbc-n1qlback.markdown +88 -0
- data/ext/libcouchbase/doc/cbc-pillowfight.markdown +296 -0
- data/ext/libcouchbase/doc/cbc-subdoc.markdown +299 -0
- data/ext/libcouchbase/doc/cbc.markdown +763 -0
- data/ext/libcouchbase/doc/cbcrc.markdown +52 -0
- data/ext/libcouchbase/doc/common-additional-options.markdown +82 -0
- data/ext/libcouchbase/doc/common-options.markdown +71 -0
- data/ext/libcouchbase/doc/environment.h +93 -0
- data/ext/libcouchbase/doc/example/threads.c +77 -0
- data/ext/libcouchbase/doc/footer.html +22 -0
- data/ext/libcouchbase/doc/genman.sh +25 -0
- data/ext/libcouchbase/doc/header.html +52 -0
- data/ext/libcouchbase/doc/intro.h +130 -0
- data/ext/libcouchbase/doc/mainpage.h +136 -0
- data/ext/libcouchbase/doc/man/cbc-admin.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-bucket-create.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-bucket-delete.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-cat.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-connstr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-cp.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-create.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-decr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-flush.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-hash.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-incr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-lock.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-mcflush.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-mcversion.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-n1ql.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-n1qlback.1 +198 -0
- data/ext/libcouchbase/doc/man/cbc-observe.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-pillowfight.1 +499 -0
- data/ext/libcouchbase/doc/man/cbc-ping.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-rm.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-role-list.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-stats.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-subdoc.1 +494 -0
- data/ext/libcouchbase/doc/man/cbc-unlock.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-delete.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-list.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-upsert.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-verbosity.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-version.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-view.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-watch.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc.1 +1035 -0
- data/ext/libcouchbase/doc/man/cbcrc.4 +71 -0
- data/ext/libcouchbase/doc/style.css +1162 -0
- data/ext/libcouchbase/example/CMakeLists.txt +52 -0
- data/ext/libcouchbase/example/README.markdown +47 -0
- data/ext/libcouchbase/example/analytics/.gitignore +1 -0
- data/ext/libcouchbase/example/analytics/analytics.c +158 -0
- data/ext/libcouchbase/example/analytics/build-queries.rb +34 -0
- data/ext/libcouchbase/example/analytics/cJSON.c +1 -0
- data/ext/libcouchbase/example/analytics/cJSON.h +1 -0
- data/ext/libcouchbase/example/analytics/queries/00-show-dataverse.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/01-setup-dataset-breweries.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/02-setup-dataset-beers.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/03-initiate-shadow.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/04-list-datasets.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/05-count-breweries.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/06-first-brewery.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/07-key-based-lookup.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/08-exact-match-lookup.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/09-exact-match-lookup-different-shape.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/10-other-query-filters.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/11-equijoin.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/12-equijoin-select-star.json +10 -0
- data/ext/libcouchbase/example/analytics/queries/13-ansi-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/14-join-select-values.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/15-nested-outer-join.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/16-theta-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/17-existential-quantification.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/18-universal-quantification.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/19-simple-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/20-simple-aggregation-unwrapped-value.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/21-simple-aggregation-explicit.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/22-grouping-and-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/23-grouping-and-aggregation-with-hint.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/24-grouping-and-limits.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/25-named-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/26-positional-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries.h +113 -0
- data/ext/libcouchbase/example/crypto/.gitignore +2 -0
- data/ext/libcouchbase/example/crypto/Makefile +13 -0
- data/ext/libcouchbase/example/crypto/common_provider.c +26 -0
- data/ext/libcouchbase/example/crypto/common_provider.h +33 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_decrypt.c +144 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_encrypt.c +146 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.c +271 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.h +29 -0
- data/ext/libcouchbase/example/db/db.c +171 -0
- data/ext/libcouchbase/example/db/vb.c +227 -0
- data/ext/libcouchbase/example/fts/.gitignore +1 -0
- data/ext/libcouchbase/example/fts/build-queries.rb +33 -0
- data/ext/libcouchbase/example/fts/fts.c +142 -0
- data/ext/libcouchbase/example/fts/queries/00-simple-text-query.json +12 -0
- data/ext/libcouchbase/example/fts/queries/01-simple-text-query-on-non-default-index.json +9 -0
- data/ext/libcouchbase/example/fts/queries/02-simple-text-query-on-stored-field.json +13 -0
- data/ext/libcouchbase/example/fts/queries/03-match-query-with-facet.json +19 -0
- data/ext/libcouchbase/example/fts/queries/04-docid-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/05-unanalyzed-term-query-with-fuzziness-level-of-0.json +13 -0
- data/ext/libcouchbase/example/fts/queries/06-unanalyzed-term-query-with-fuzziness-level-of-2.json +14 -0
- data/ext/libcouchbase/example/fts/queries/07-match-phrase-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/08-phrase-query.json +16 -0
- data/ext/libcouchbase/example/fts/queries/09-query-string-query.json +9 -0
- data/ext/libcouchbase/example/fts/queries/10-conjunction-query.json +21 -0
- data/ext/libcouchbase/example/fts/queries/11-wild-card-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/12-numeric-range-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/13-regexp-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries.h +61 -0
- data/ext/libcouchbase/example/instancepool/main.cc +112 -0
- data/ext/libcouchbase/example/instancepool/pool.cc +102 -0
- data/ext/libcouchbase/example/instancepool/pool.h +69 -0
- data/ext/libcouchbase/example/libeventdirect/main.c +222 -0
- data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
- data/ext/libcouchbase/example/minimal/.gitignore +1 -0
- data/ext/libcouchbase/example/minimal/minimal.c +132 -0
- data/ext/libcouchbase/example/minimal/query.c +185 -0
- data/ext/libcouchbase/example/observe/durability.c +102 -0
- data/ext/libcouchbase/example/observe/observe.c +159 -0
- data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +143 -0
- data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +201 -0
- data/ext/libcouchbase/example/subdoc/subdoc-xattrs.c +286 -0
- data/ext/libcouchbase/example/tick/tick.c +119 -0
- data/ext/libcouchbase/example/tracing/.gitignore +2 -0
- data/ext/libcouchbase/example/tracing/Makefile +8 -0
- data/ext/libcouchbase/example/tracing/cJSON.c +1 -0
- data/ext/libcouchbase/example/tracing/cJSON.h +1 -0
- data/ext/libcouchbase/example/tracing/tracing.c +439 -0
- data/ext/libcouchbase/example/tracing/views.c +444 -0
- data/ext/libcouchbase/example/users/README +48 -0
- data/ext/libcouchbase/example/users/users.c +147 -0
- data/ext/libcouchbase/example/views/views-example.cc +83 -0
- data/ext/libcouchbase/include/libcouchbase/_cxxwrap.h +150 -0
- data/ext/libcouchbase/include/libcouchbase/api-legacy.h +1689 -0
- data/ext/libcouchbase/include/libcouchbase/api3.h +2 -0
- data/ext/libcouchbase/include/libcouchbase/assert.h +44 -0
- data/ext/libcouchbase/include/libcouchbase/auth.h +297 -0
- data/ext/libcouchbase/include/libcouchbase/cbft.h +151 -0
- data/ext/libcouchbase/include/libcouchbase/cntl-private.h +319 -0
- data/ext/libcouchbase/include/libcouchbase/cntl.h +1418 -0
- data/ext/libcouchbase/include/libcouchbase/configuration.h.in +29 -0
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +4089 -0
- data/ext/libcouchbase/include/libcouchbase/crypto.h +306 -0
- data/ext/libcouchbase/include/libcouchbase/deprecated.h +312 -0
- data/ext/libcouchbase/include/libcouchbase/error.h +680 -0
- data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
- data/ext/libcouchbase/include/libcouchbase/iops.h +1053 -0
- data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
- data/ext/libcouchbase/include/libcouchbase/kvbuf.h +137 -0
- data/ext/libcouchbase/include/libcouchbase/metrics.h +79 -0
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +539 -0
- data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +370 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr-inl.c +76 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr.h +199 -0
- data/ext/libcouchbase/include/libcouchbase/subdoc.h +347 -0
- data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
- data/ext/libcouchbase/include/libcouchbase/tracing.h +437 -0
- data/ext/libcouchbase/include/libcouchbase/vbucket.h +680 -0
- data/ext/libcouchbase/include/libcouchbase/views.h +357 -0
- data/ext/libcouchbase/include/libcouchbase/visibility.h +66 -0
- data/ext/libcouchbase/include/memcached/COPYING +30 -0
- data/ext/libcouchbase/include/memcached/README +10 -0
- data/ext/libcouchbase/include/memcached/protocol_binary.h +885 -0
- data/ext/libcouchbase/packaging/README +7 -0
- data/ext/libcouchbase/packaging/abicheck/.gitignore +4 -0
- data/ext/libcouchbase/packaging/abicheck/Makefile +17 -0
- data/ext/libcouchbase/packaging/abicheck/README.md +27 -0
- data/ext/libcouchbase/packaging/abicheck/template.xml +3 -0
- data/ext/libcouchbase/packaging/deb/compat +1 -0
- data/ext/libcouchbase/packaging/deb/control +72 -0
- data/ext/libcouchbase/packaging/deb/copyright +10 -0
- data/ext/libcouchbase/packaging/deb/libcouchbase-dev.docs +3 -0
- data/ext/libcouchbase/packaging/deb/package.mk +31 -0
- data/ext/libcouchbase/packaging/deb/rules +46 -0
- data/ext/libcouchbase/packaging/deb/source/format +1 -0
- data/ext/libcouchbase/packaging/distinfo/README +1 -0
- data/ext/libcouchbase/packaging/distinfo/distinfo.cmake.in +4 -0
- data/ext/libcouchbase/packaging/dllversion.rc.in +39 -0
- data/ext/libcouchbase/packaging/libcouchbase.pc.in +10 -0
- data/ext/libcouchbase/packaging/nuget/libcouchbase.autopkg +76 -0
- data/ext/libcouchbase/packaging/parse-git-describe.pl +166 -0
- data/ext/libcouchbase/packaging/rpm/libcouchbase.spec.in +101 -0
- data/ext/libcouchbase/packaging/rpm/package.mk +40 -0
- data/ext/libcouchbase/plugins/io/iocp/CMakeLists.txt +9 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_iops.c +467 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_iops.h +217 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_loop.c +295 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_timer.c +79 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_util.c +229 -0
- data/ext/libcouchbase/plugins/io/libev/CMakeLists.txt +31 -0
- data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +66 -0
- data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
- data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +31 -0
- data/ext/libcouchbase/plugins/io/libevent/libevent_io_opts.h +67 -0
- data/ext/libcouchbase/plugins/io/libevent/plugin-libevent.c +292 -0
- data/ext/libcouchbase/plugins/io/libuv/CMakeLists.txt +44 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +218 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +155 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +709 -0
- data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +13 -0
- data/ext/libcouchbase/plugins/io/select/plugin-select.c +451 -0
- data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
- data/ext/libcouchbase/src/README.md +101 -0
- data/ext/libcouchbase/src/aspend.h +105 -0
- data/ext/libcouchbase/src/auth-priv.h +85 -0
- data/ext/libcouchbase/src/auth.cc +146 -0
- data/ext/libcouchbase/src/bootstrap.cc +263 -0
- data/ext/libcouchbase/src/bootstrap.h +149 -0
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +450 -0
- data/ext/libcouchbase/src/bucketconfig/bc_file.cc +281 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.cc +527 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.h +107 -0
- data/ext/libcouchbase/src/bucketconfig/bc_static.cc +150 -0
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +700 -0
- data/ext/libcouchbase/src/bucketconfig/confmon.cc +403 -0
- data/ext/libcouchbase/src/callbacks.c +380 -0
- data/ext/libcouchbase/src/cbft.cc +253 -0
- data/ext/libcouchbase/src/cntl.cc +1057 -0
- data/ext/libcouchbase/src/config_static.h +176 -0
- data/ext/libcouchbase/src/connspec.cc +555 -0
- data/ext/libcouchbase/src/connspec.h +155 -0
- data/ext/libcouchbase/src/crypto.cc +399 -0
- data/ext/libcouchbase/src/ctx-log-inl.h +44 -0
- data/ext/libcouchbase/src/dns-srv.cc +146 -0
- data/ext/libcouchbase/src/dump.cc +103 -0
- data/ext/libcouchbase/src/errmap.cc +173 -0
- data/ext/libcouchbase/src/errmap.h +271 -0
- data/ext/libcouchbase/src/getconfig.cc +72 -0
- data/ext/libcouchbase/src/gethrtime.c +109 -0
- data/ext/libcouchbase/src/handler.cc +1101 -0
- data/ext/libcouchbase/src/hashtable.c +75 -0
- data/ext/libcouchbase/src/hdr_timings.c +92 -0
- data/ext/libcouchbase/src/hostlist.cc +293 -0
- data/ext/libcouchbase/src/hostlist.h +160 -0
- data/ext/libcouchbase/src/http/http-priv.h +326 -0
- data/ext/libcouchbase/src/http/http.cc +672 -0
- data/ext/libcouchbase/src/http/http.h +1 -0
- data/ext/libcouchbase/src/http/http_io.cc +316 -0
- data/ext/libcouchbase/src/instance.cc +917 -0
- data/ext/libcouchbase/src/internal.h +285 -0
- data/ext/libcouchbase/src/iofactory.c +575 -0
- data/ext/libcouchbase/src/jsparse/parser.cc +445 -0
- data/ext/libcouchbase/src/jsparse/parser.h +159 -0
- data/ext/libcouchbase/src/lcbht/lcbht.cc +177 -0
- data/ext/libcouchbase/src/lcbht/lcbht.h +210 -0
- data/ext/libcouchbase/src/lcbio/connect.cc +603 -0
- data/ext/libcouchbase/src/lcbio/connect.h +400 -0
- data/ext/libcouchbase/src/lcbio/ctx.c +658 -0
- data/ext/libcouchbase/src/lcbio/ctx.h +405 -0
- data/ext/libcouchbase/src/lcbio/iotable.c +290 -0
- data/ext/libcouchbase/src/lcbio/iotable.h +169 -0
- data/ext/libcouchbase/src/lcbio/ioutils.cc +356 -0
- data/ext/libcouchbase/src/lcbio/ioutils.h +144 -0
- data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
- data/ext/libcouchbase/src/lcbio/manager.cc +579 -0
- data/ext/libcouchbase/src/lcbio/manager.h +195 -0
- data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
- data/ext/libcouchbase/src/lcbio/rw-inl.h +137 -0
- data/ext/libcouchbase/src/lcbio/ssl.h +159 -0
- data/ext/libcouchbase/src/lcbio/timer-cxx.h +87 -0
- data/ext/libcouchbase/src/lcbio/timer-ng.h +179 -0
- data/ext/libcouchbase/src/lcbio/timer.c +132 -0
- data/ext/libcouchbase/src/legacy.c +431 -0
- data/ext/libcouchbase/src/list.c +144 -0
- data/ext/libcouchbase/src/list.h +127 -0
- data/ext/libcouchbase/src/logging.c +244 -0
- data/ext/libcouchbase/src/logging.h +88 -0
- data/ext/libcouchbase/src/mc/compress.cc +171 -0
- data/ext/libcouchbase/src/mc/compress.h +56 -0
- data/ext/libcouchbase/src/mc/forward.c +186 -0
- data/ext/libcouchbase/src/mc/forward.h +90 -0
- data/ext/libcouchbase/src/mc/iovcursor-inl.h +279 -0
- data/ext/libcouchbase/src/mc/iovcursor.h +66 -0
- data/ext/libcouchbase/src/mc/mcreq-flush-inl.h +115 -0
- data/ext/libcouchbase/src/mc/mcreq.c +983 -0
- data/ext/libcouchbase/src/mc/mcreq.h +1015 -0
- data/ext/libcouchbase/src/mcserver/mcserver.cc +1055 -0
- data/ext/libcouchbase/src/mcserver/mcserver.h +221 -0
- data/ext/libcouchbase/src/mcserver/negotiate.cc +757 -0
- data/ext/libcouchbase/src/mcserver/negotiate.h +128 -0
- data/ext/libcouchbase/src/mctx-helper.h +62 -0
- data/ext/libcouchbase/src/metrics.cc +132 -0
- data/ext/libcouchbase/src/n1ql/ixmgmt.cc +857 -0
- data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
- data/ext/libcouchbase/src/n1ql/n1ql.cc +830 -0
- data/ext/libcouchbase/src/n1ql/params.cc +260 -0
- data/ext/libcouchbase/src/netbuf/netbuf-defs.h +89 -0
- data/ext/libcouchbase/src/netbuf/netbuf-mblock.h +235 -0
- data/ext/libcouchbase/src/netbuf/netbuf.c +929 -0
- data/ext/libcouchbase/src/netbuf/netbuf.h +452 -0
- data/ext/libcouchbase/src/newconfig.cc +365 -0
- data/ext/libcouchbase/src/nodeinfo.cc +184 -0
- data/ext/libcouchbase/src/operations/cbflush.cc +63 -0
- data/ext/libcouchbase/src/operations/counter.cc +117 -0
- data/ext/libcouchbase/src/operations/durability-cas.cc +251 -0
- data/ext/libcouchbase/src/operations/durability-seqno.cc +170 -0
- data/ext/libcouchbase/src/operations/durability.cc +668 -0
- data/ext/libcouchbase/src/operations/durability_internal.h +306 -0
- data/ext/libcouchbase/src/operations/get.cc +409 -0
- data/ext/libcouchbase/src/operations/observe-seqno.cc +94 -0
- data/ext/libcouchbase/src/operations/observe.cc +367 -0
- data/ext/libcouchbase/src/operations/ping.cc +496 -0
- data/ext/libcouchbase/src/operations/pktfwd.cc +86 -0
- data/ext/libcouchbase/src/operations/remove.cc +84 -0
- data/ext/libcouchbase/src/operations/stats.cc +459 -0
- data/ext/libcouchbase/src/operations/store.cc +358 -0
- data/ext/libcouchbase/src/operations/subdoc.cc +614 -0
- data/ext/libcouchbase/src/operations/touch.cc +84 -0
- data/ext/libcouchbase/src/packetutils.h +388 -0
- data/ext/libcouchbase/src/probes.d +182 -0
- data/ext/libcouchbase/src/rdb/bigalloc.c +225 -0
- data/ext/libcouchbase/src/rdb/bigalloc.h +73 -0
- data/ext/libcouchbase/src/rdb/chunkalloc.c +174 -0
- data/ext/libcouchbase/src/rdb/libcalloc.c +94 -0
- data/ext/libcouchbase/src/rdb/rope.c +419 -0
- data/ext/libcouchbase/src/rdb/rope.h +488 -0
- data/ext/libcouchbase/src/retrychk.cc +113 -0
- data/ext/libcouchbase/src/retryq.cc +458 -0
- data/ext/libcouchbase/src/retryq.h +170 -0
- data/ext/libcouchbase/src/ringbuffer.c +442 -0
- data/ext/libcouchbase/src/ringbuffer.h +100 -0
- data/ext/libcouchbase/src/rnd.cc +61 -0
- data/ext/libcouchbase/src/rnd.h +39 -0
- data/ext/libcouchbase/src/settings.c +125 -0
- data/ext/libcouchbase/src/settings.h +273 -0
- data/ext/libcouchbase/src/sllist-inl.h +197 -0
- data/ext/libcouchbase/src/sllist.h +76 -0
- data/ext/libcouchbase/src/ssl/CMakeLists.txt +11 -0
- data/ext/libcouchbase/src/ssl/ssl_c.c +442 -0
- data/ext/libcouchbase/src/ssl/ssl_common.c +478 -0
- data/ext/libcouchbase/src/ssl/ssl_e.c +421 -0
- data/ext/libcouchbase/src/ssl/ssl_iot_common.h +182 -0
- data/ext/libcouchbase/src/strcodecs/base64.c +307 -0
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +302 -0
- data/ext/libcouchbase/src/timings.c +207 -0
- data/ext/libcouchbase/src/trace.h +117 -0
- data/ext/libcouchbase/src/tracing/span.cc +421 -0
- data/ext/libcouchbase/src/tracing/threshold_logging_tracer.cc +213 -0
- data/ext/libcouchbase/src/tracing/tracer.cc +53 -0
- data/ext/libcouchbase/src/tracing/tracing-internal.h +198 -0
- data/ext/libcouchbase/src/utilities.c +176 -0
- data/ext/libcouchbase/src/vbucket/CMakeLists.txt +2 -0
- data/ext/libcouchbase/src/vbucket/aliases.h +35 -0
- data/ext/libcouchbase/src/vbucket/crc32.h +83 -0
- data/ext/libcouchbase/src/vbucket/hash.h +30 -0
- data/ext/libcouchbase/src/vbucket/json-inl.h +112 -0
- data/ext/libcouchbase/src/vbucket/ketama.c +66 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/global.h +32 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/md5.h +35 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/md5c-inl.h +335 -0
- data/ext/libcouchbase/src/vbucket/vbucket.c +1735 -0
- data/ext/libcouchbase/src/views/docreq.cc +213 -0
- data/ext/libcouchbase/src/views/docreq.h +94 -0
- data/ext/libcouchbase/src/views/viewreq.cc +381 -0
- data/ext/libcouchbase/src/views/viewreq.h +87 -0
- data/ext/libcouchbase/src/wait.cc +156 -0
- data/ext/libcouchbase/tests/CMakeLists.txt +149 -0
- data/ext/libcouchbase/tests/basic/t_base64.cc +109 -0
- data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
- data/ext/libcouchbase/tests/basic/t_connstr.cc +456 -0
- data/ext/libcouchbase/tests/basic/t_creds.cc +96 -0
- data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
- data/ext/libcouchbase/tests/basic/t_host.cc +210 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.cc +82 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.h +589 -0
- data/ext/libcouchbase/tests/basic/t_list.cc +155 -0
- data/ext/libcouchbase/tests/basic/t_logger.cc +65 -0
- data/ext/libcouchbase/tests/basic/t_misc.cc +24 -0
- data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +17 -0
- data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
- data/ext/libcouchbase/tests/basic/t_packet.cc +215 -0
- data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -0
- data/ext/libcouchbase/tests/basic/t_scram.cc +514 -0
- data/ext/libcouchbase/tests/basic/t_slist.cc +429 -0
- data/ext/libcouchbase/tests/basic/t_strerror.cc +64 -0
- data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
- data/ext/libcouchbase/tests/check-all.cc +612 -0
- data/ext/libcouchbase/tests/htparse/t_basic.cc +173 -0
- data/ext/libcouchbase/tests/ioserver/connection.cc +166 -0
- data/ext/libcouchbase/tests/ioserver/future.cc +50 -0
- data/ext/libcouchbase/tests/ioserver/ioserver.cc +117 -0
- data/ext/libcouchbase/tests/ioserver/ioserver.h +478 -0
- data/ext/libcouchbase/tests/ioserver/socket.cc +88 -0
- data/ext/libcouchbase/tests/ioserver/ssl_connection.cc +145 -0
- data/ext/libcouchbase/tests/ioserver/threads-pthreads.cc +119 -0
- data/ext/libcouchbase/tests/ioserver/threads-win32.cc +117 -0
- data/ext/libcouchbase/tests/ioserver/threads.h +66 -0
- data/ext/libcouchbase/tests/iotests/iotests.h +15 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.cc +632 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.h +480 -0
- data/ext/libcouchbase/tests/iotests/mock-unit-test.cc +67 -0
- data/ext/libcouchbase/tests/iotests/mock-unit-test.h +61 -0
- data/ext/libcouchbase/tests/iotests/serverparams.h +76 -0
- data/ext/libcouchbase/tests/iotests/t_arithmetic.cc +143 -0
- data/ext/libcouchbase/tests/iotests/t_behavior.cc +220 -0
- data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
- data/ext/libcouchbase/tests/iotests/t_confmon.cc +223 -0
- data/ext/libcouchbase/tests/iotests/t_durability.cc +1108 -0
- data/ext/libcouchbase/tests/iotests/t_eerrs.cc +121 -0
- data/ext/libcouchbase/tests/iotests/t_errmap.cc +181 -0
- data/ext/libcouchbase/tests/iotests/t_forward.cc +118 -0
- data/ext/libcouchbase/tests/iotests/t_get.cc +512 -0
- data/ext/libcouchbase/tests/iotests/t_http.cc +438 -0
- data/ext/libcouchbase/tests/iotests/t_iops.cc +175 -0
- data/ext/libcouchbase/tests/iotests/t_lock.cc +274 -0
- data/ext/libcouchbase/tests/iotests/t_misc.cc +777 -0
- data/ext/libcouchbase/tests/iotests/t_mutate.cc +609 -0
- data/ext/libcouchbase/tests/iotests/t_n1ql.cc +270 -0
- data/ext/libcouchbase/tests/iotests/t_netfail.cc +778 -0
- data/ext/libcouchbase/tests/iotests/t_obseqno.cc +156 -0
- data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
- data/ext/libcouchbase/tests/iotests/t_sched.cc +87 -0
- data/ext/libcouchbase/tests/iotests/t_serverops.cc +231 -0
- data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
- data/ext/libcouchbase/tests/iotests/t_snappy.cc +316 -0
- data/ext/libcouchbase/tests/iotests/t_subdoc.cc +857 -0
- data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
- data/ext/libcouchbase/tests/iotests/t_views.cc +417 -0
- data/ext/libcouchbase/tests/iotests/testutil.cc +251 -0
- data/ext/libcouchbase/tests/iotests/testutil.h +163 -0
- data/ext/libcouchbase/tests/mc/mctest.h +119 -0
- data/ext/libcouchbase/tests/mc/pktmaker.h +101 -0
- data/ext/libcouchbase/tests/mc/t_alloc.cc +269 -0
- data/ext/libcouchbase/tests/mc/t_context.cc +100 -0
- data/ext/libcouchbase/tests/mc/t_flush.cc +185 -0
- data/ext/libcouchbase/tests/mc/t_forward.cc +239 -0
- data/ext/libcouchbase/tests/mc/t_ioflush.cc +102 -0
- data/ext/libcouchbase/tests/mc/t_iovcursor.cc +173 -0
- data/ext/libcouchbase/tests/mocksupport/procutil.c +305 -0
- data/ext/libcouchbase/tests/mocksupport/procutil.h +89 -0
- data/ext/libcouchbase/tests/mocksupport/server.c +391 -0
- data/ext/libcouchbase/tests/mocksupport/server.h +72 -0
- data/ext/libcouchbase/tests/mocksupport/timeout.c +69 -0
- data/ext/libcouchbase/tests/nonio_tests.cc +23 -0
- data/ext/libcouchbase/tests/rdb/rdbtest.h +133 -0
- data/ext/libcouchbase/tests/rdb/t_basic.cc +128 -0
- data/ext/libcouchbase/tests/rdb/t_bigalloc.cc +93 -0
- data/ext/libcouchbase/tests/rdb/t_refs.cc +112 -0
- data/ext/libcouchbase/tests/socktests/socktest.cc +344 -0
- data/ext/libcouchbase/tests/socktests/socktest.h +447 -0
- data/ext/libcouchbase/tests/socktests/t_basic.cc +143 -0
- data/ext/libcouchbase/tests/socktests/t_ctx.cc +73 -0
- data/ext/libcouchbase/tests/socktests/t_manager.cc +159 -0
- data/ext/libcouchbase/tests/socktests/t_putex.cc +256 -0
- data/ext/libcouchbase/tests/socktests/t_read.cc +187 -0
- data/ext/libcouchbase/tests/socktests/t_reentrant.cc +143 -0
- data/ext/libcouchbase/tests/socktests/t_ssl.cc +80 -0
- data/ext/libcouchbase/tests/socktests/t_write.cc +95 -0
- data/ext/libcouchbase/tests/start_mock.bat +15 -0
- data/ext/libcouchbase/tests/start_mock.sh +42 -0
- data/ext/libcouchbase/tests/unit_tests.cc +43 -0
- data/ext/libcouchbase/tests/vbucket/confdata/bad.json +101 -0
- data/ext/libcouchbase/tests/vbucket/confdata/full_25.json +363 -0
- data/ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json +2562 -0
- data/ext/libcouchbase/tests/vbucket/confdata/map_node_present_nodesext_missing_nodes.json +94 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_25.json +90 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_45.json +1 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json +31 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_25.json +291 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +386 -0
- data/ext/libcouchbase/tools/CMakeLists.txt +80 -0
- data/ext/libcouchbase/tools/cbc-handlers.h +636 -0
- data/ext/libcouchbase/tools/cbc-n1qlback.cc +496 -0
- data/ext/libcouchbase/tools/cbc-pillowfight.cc +1230 -0
- data/ext/libcouchbase/tools/cbc-proxy.cc +534 -0
- data/ext/libcouchbase/tools/cbc-subdoc.cc +825 -0
- data/ext/libcouchbase/tools/cbc.cc +1928 -0
- data/ext/libcouchbase/tools/common/histogram.cc +44 -0
- data/ext/libcouchbase/tools/common/histogram.h +23 -0
- data/ext/libcouchbase/tools/common/options.cc +451 -0
- data/ext/libcouchbase/tools/common/options.h +90 -0
- data/ext/libcouchbase/tools/docgen/docgen.h +495 -0
- data/ext/libcouchbase/tools/docgen/loc.h +211 -0
- data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
- data/ext/libcouchbase/tools/docgen/seqgen.h +122 -0
- data/ext/libcouchbase/tools/extract-packets.rb +110 -0
- data/ext/libcouchbase/tools/linenoise/linenoise.c +1199 -0
- data/ext/libcouchbase/tools/linenoise/linenoise.h +73 -0
- data/lib/mt-libcouchbase/bucket.rb +825 -0
- data/lib/mt-libcouchbase/callbacks.rb +69 -0
- data/lib/mt-libcouchbase/connection.rb +896 -0
- data/lib/mt-libcouchbase/design_docs.rb +92 -0
- data/lib/mt-libcouchbase/error.rb +68 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdbase.rb +23 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdcounter.rb +36 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdendure.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdfts.rb +24 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdget.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdgetreplica.rb +49 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdhttp.rb +58 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdn1ql.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobseqno.rb +33 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobserve.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstore.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstoredur.rb +45 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdsubdoc.rb +61 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdverbosity.rb +29 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdviewquery.rb +61 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/contigbuf.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st.rb +15 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st0.rb +23 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st1.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st2.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st3.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/crst_u.rb +20 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_st_v.rb +11 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_t.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durabilityopt_sv0.rb +63 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/enums.rb +1007 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/fragbuf.rb +18 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/ftshandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/histogram.rb +34 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/http_request_t.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/keybuf.rb +20 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/multicmd_ctx.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/mutation_token.rb +17 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlhandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlparams.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respbase.rb +29 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respcounter.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respendure.rb +49 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respfts.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respget.rb +44 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/resphttp.rb +48 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respmcversion.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respn1ql.rb +41 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobseqno.rb +52 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobserve.rb +41 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respserverbase.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstats.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstore.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstoredur.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respsubdoc.rb +35 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respviewquery.rb +67 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdentry.rb +22 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdspec.rb +31 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/t.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf.rb +22 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf_u_buf.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/viewhandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase.rb +1175 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase_libuv.rb +22 -0
- data/lib/mt-libcouchbase/ext/tasks.rb +39 -0
- data/lib/mt-libcouchbase/n1ql.rb +80 -0
- data/lib/mt-libcouchbase/query_full_text.rb +147 -0
- data/lib/mt-libcouchbase/query_n1ql.rb +123 -0
- data/lib/mt-libcouchbase/query_view.rb +135 -0
- data/lib/mt-libcouchbase/results_fiber.rb +281 -0
- data/lib/mt-libcouchbase/results_native.rb +220 -0
- data/lib/mt-libcouchbase/subdoc_request.rb +139 -0
- data/lib/mt-libcouchbase/version.rb +5 -0
- data/lib/mt-libcouchbase.rb +40 -0
- data/mt-libcouchbase.gemspec +68 -0
- data/spec/bucket_spec.rb +290 -0
- data/spec/connection_spec.rb +257 -0
- data/spec/design_docs_spec.rb +31 -0
- data/spec/error_spec.rb +26 -0
- data/spec/fts_spec.rb +135 -0
- data/spec/n1ql_spec.rb +260 -0
- data/spec/results_libuv_spec.rb +244 -0
- data/spec/results_native_spec.rb +259 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/design.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/data-0000.cbb +0 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/failover.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json +1 -0
- data/spec/subdoc_spec.rb +192 -0
- data/spec/view_spec.rb +201 -0
- data/windows_build.md +36 -0
- metadata +873 -0
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017 Couchbase, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
**/
|
|
16
|
+
|
|
17
|
+
#ifndef LCB_N1QL_API_H
|
|
18
|
+
#define LCB_N1QL_API_H
|
|
19
|
+
#include <libcouchbase/couchbase.h>
|
|
20
|
+
#include <libcouchbase/api3.h>
|
|
21
|
+
|
|
22
|
+
#ifdef __cplusplus
|
|
23
|
+
extern "C" {
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @ingroup lcb-public-api
|
|
28
|
+
* @defgroup lcb-n1ql-api N1QL/Analytics
|
|
29
|
+
* @brief Execute N1QL/Analytics queries.
|
|
30
|
+
*
|
|
31
|
+
* Query language based on SQL, but designed for structured and flexible JSON
|
|
32
|
+
* documents. Querying can solve typical programming tasks such as finding a
|
|
33
|
+
* user profile by email address, performing aggregations etc.
|
|
34
|
+
*
|
|
35
|
+
* @code{.c}
|
|
36
|
+
* const char *query = "{\"statement\":\"SELECT * FROM breweries LIMIT 10\"}";
|
|
37
|
+
* lcb_CMDN1QL cmd = {0};
|
|
38
|
+
* int idx = 0;
|
|
39
|
+
* // NOTE: with this flag, the request will be issued to Analytics service
|
|
40
|
+
* cmd.cmdflags = LCB_CMDN1QL_F_ANALYTICSQUERY;
|
|
41
|
+
* cmd.callback = row_callback;
|
|
42
|
+
* cmd.query = query;
|
|
43
|
+
* cmd.nquery = strlen(query);
|
|
44
|
+
* lcb_n1ql_query(instance, &idx, &cmd);
|
|
45
|
+
* lcb_wait(instance);
|
|
46
|
+
* @endcode
|
|
47
|
+
*
|
|
48
|
+
* Where row_callback might be implemented like this:
|
|
49
|
+
*
|
|
50
|
+
* @code{.c}
|
|
51
|
+
* static void row_callback(lcb_t instance, int type, const lcb_RESPN1QL *resp)
|
|
52
|
+
* {
|
|
53
|
+
* int *idx = (int *)resp->cookie;
|
|
54
|
+
* if (resp->rc != LCB_SUCCESS) {
|
|
55
|
+
* printf("failed to execute query: %s\n", lcb_strerror_short(resp->rc));
|
|
56
|
+
* exit(EXIT_FAILURE);
|
|
57
|
+
* }
|
|
58
|
+
* if (resp->rflags & LCB_RESP_F_FINAL) {
|
|
59
|
+
* printf("META: ");
|
|
60
|
+
* } else {
|
|
61
|
+
* printf("ROW #%d: ", (*idx)++);
|
|
62
|
+
* }
|
|
63
|
+
* printf("%.*s\n", (int)resp->nrow, (char *)resp->row);
|
|
64
|
+
* }
|
|
65
|
+
* @endcode
|
|
66
|
+
*
|
|
67
|
+
* @see more details on @ref lcb_n1ql_query and @ref lcb_CMDN1QL.
|
|
68
|
+
*
|
|
69
|
+
* Also there is a query builder available for N1QL queries: @ref lcb_n1p_new/@ref lcb_n1p_mkcmd.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @addtogroup lcb-n1ql-api
|
|
74
|
+
* @{
|
|
75
|
+
*/
|
|
76
|
+
typedef struct lcb_RESPN1QL lcb_RESPN1QL;
|
|
77
|
+
typedef struct lcb_CMDN1QL lcb_CMDN1QL;
|
|
78
|
+
/**
|
|
79
|
+
* Pointer for request instance
|
|
80
|
+
*/
|
|
81
|
+
typedef struct lcb_N1QLREQ* lcb_N1QLHANDLE;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Callback to be invoked for each row
|
|
85
|
+
* @param The instance
|
|
86
|
+
* @param Callback type. This is set to @ref LCB_CALLBACK_N1QL
|
|
87
|
+
* @param The response.
|
|
88
|
+
*/
|
|
89
|
+
typedef void (*lcb_N1QLCALLBACK)(lcb_t, int, const lcb_RESPN1QL*);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @name N1QL Parameters
|
|
93
|
+
*
|
|
94
|
+
* The following APIs simply provide wrappers for creating the proper HTTP
|
|
95
|
+
* form parameters for N1QL requests. The general flow is to create a
|
|
96
|
+
* parameters (@ref lcb_N1QLPARAMS) object, set various options and properties
|
|
97
|
+
* on it, and populate an @ref lcb_CMDN1QL object using the lcb_n1p_mkcmd()
|
|
98
|
+
* function.
|
|
99
|
+
*
|
|
100
|
+
* @{
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Opaque object representing N1QL parameters.
|
|
105
|
+
* This object is created via lcb_n1p_new(), may be cleared
|
|
106
|
+
* (for use with another query) via lcb_n1p_reset(), and may be freed via
|
|
107
|
+
* lcb_n1p_free().
|
|
108
|
+
*/
|
|
109
|
+
typedef struct lcb_N1QLPARAMS_st lcb_N1QLPARAMS;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Create a new N1QL Parameters object. The returned object is an opaque
|
|
113
|
+
* pointer which may be used to set various properties on a N1QL query. This
|
|
114
|
+
* may then be used to populate relevant fields of an @ref lcb_CMDN1QL
|
|
115
|
+
* structure.
|
|
116
|
+
*/
|
|
117
|
+
LIBCOUCHBASE_API
|
|
118
|
+
lcb_N1QLPARAMS *
|
|
119
|
+
lcb_n1p_new(void);
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Reset the parameters structure so that it may be reused for a subsequent
|
|
123
|
+
* query. Internally this resets the buffer positions to 0, but does not free
|
|
124
|
+
* them, making this function optimal for issusing subsequent queries.
|
|
125
|
+
* @param params the object to reset
|
|
126
|
+
*/
|
|
127
|
+
LIBCOUCHBASE_API
|
|
128
|
+
void
|
|
129
|
+
lcb_n1p_reset(lcb_N1QLPARAMS *params);
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Free the parameters structure. This should be done when it is no longer
|
|
133
|
+
* needed
|
|
134
|
+
* @param params the object to reset
|
|
135
|
+
*/
|
|
136
|
+
LIBCOUCHBASE_API
|
|
137
|
+
void
|
|
138
|
+
lcb_n1p_free(lcb_N1QLPARAMS *params);
|
|
139
|
+
|
|
140
|
+
/** Query is a statement string */
|
|
141
|
+
#define LCB_N1P_QUERY_STATEMENT 1
|
|
142
|
+
|
|
143
|
+
/** @internal */
|
|
144
|
+
#define LCB_N1P_QUERY_PREPARED 2
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Sets the actual statement to be executed
|
|
148
|
+
* @param params the params object
|
|
149
|
+
* @param qstr the query string (either N1QL statement or prepared JSON)
|
|
150
|
+
* @param nqstr the length of the string. Set to -1 if NUL-terminated
|
|
151
|
+
* @param type the type of statement. Should be ::LCB_N1P_QUERY_STATEMENT,
|
|
152
|
+
* currently.
|
|
153
|
+
*/
|
|
154
|
+
LIBCOUCHBASE_API
|
|
155
|
+
lcb_error_t
|
|
156
|
+
lcb_n1p_setquery(lcb_N1QLPARAMS *params, const char *qstr, size_t nqstr, int type);
|
|
157
|
+
|
|
158
|
+
/** Shortcut to set NUL-terminated string as statement via @ref lcb_n1p_setquery */
|
|
159
|
+
#define lcb_n1p_setstmtz(params, qstr) \
|
|
160
|
+
lcb_n1p_setquery(params, qstr, -1, LCB_N1P_QUERY_STATEMENT)
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Sets a named argument for the query.
|
|
164
|
+
* @param params the object
|
|
165
|
+
* @param name The argument name (e.g. `$age`)
|
|
166
|
+
* @param n_name
|
|
167
|
+
* @param value The argument value (e.g. `42`)
|
|
168
|
+
* @param n_value
|
|
169
|
+
*/
|
|
170
|
+
LIBCOUCHBASE_API
|
|
171
|
+
lcb_error_t
|
|
172
|
+
lcb_n1p_namedparam(lcb_N1QLPARAMS *params, const char *name, size_t n_name,
|
|
173
|
+
const char *value, size_t n_value);
|
|
174
|
+
|
|
175
|
+
/** Shortcut to set NUL-terminated string as named param via @ref lcb_n1p_namedparam */
|
|
176
|
+
#define lcb_n1p_namedparamz(params, name, value) \
|
|
177
|
+
lcb_n1p_namedparam(params, name, -1, value, -1)
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Adds a _positional_ argument for the query
|
|
181
|
+
* @param params the params object
|
|
182
|
+
* @param value the argument
|
|
183
|
+
* @param n_value the length of the argument.
|
|
184
|
+
*/
|
|
185
|
+
LIBCOUCHBASE_API
|
|
186
|
+
lcb_error_t
|
|
187
|
+
lcb_n1p_posparam(lcb_N1QLPARAMS *params, const char *value, size_t n_value);
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Marks query as read-only.
|
|
192
|
+
*
|
|
193
|
+
* If the user knows the request is only ever a select, for security
|
|
194
|
+
* reasons it can make sense to tell the server this thing is readonly
|
|
195
|
+
* and it will prevent mutations from happening.
|
|
196
|
+
*
|
|
197
|
+
* If readonly is set, then the following statements are not allowed:
|
|
198
|
+
* * CREATE INDEX
|
|
199
|
+
* * DROP INDEX
|
|
200
|
+
* * INSERT
|
|
201
|
+
* * MERGE
|
|
202
|
+
* * UPDATE
|
|
203
|
+
* * UPSERT
|
|
204
|
+
* * DELETE
|
|
205
|
+
*
|
|
206
|
+
* @param params the params object
|
|
207
|
+
* @param readonly if non-zero, the query will be read-only
|
|
208
|
+
*/
|
|
209
|
+
LIBCOUCHBASE_API
|
|
210
|
+
lcb_error_t
|
|
211
|
+
lcb_n1p_readonly(lcb_N1QLPARAMS *params, int readonly);
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Sets maximum buffered channel size between the indexer client
|
|
215
|
+
* and the query service for index scans.
|
|
216
|
+
*
|
|
217
|
+
* This parameter controls when to use scan backfill. Use 0 or
|
|
218
|
+
* a negative number to disable.
|
|
219
|
+
*
|
|
220
|
+
* @param params the params object
|
|
221
|
+
* @param scancap channel size
|
|
222
|
+
*/
|
|
223
|
+
LIBCOUCHBASE_API
|
|
224
|
+
lcb_error_t
|
|
225
|
+
lcb_n1p_scancap(lcb_N1QLPARAMS *params, int scancap);
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Sets maximum number of items each execution operator can buffer
|
|
229
|
+
* between various operators.
|
|
230
|
+
*
|
|
231
|
+
* @param params the params object
|
|
232
|
+
* @param pipelinecap number of items
|
|
233
|
+
*/
|
|
234
|
+
LIBCOUCHBASE_API
|
|
235
|
+
lcb_error_t
|
|
236
|
+
lcb_n1p_pipelinecap(lcb_N1QLPARAMS *params, int pipelinecap);
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Sets the number of items execution operators can batch for
|
|
240
|
+
* fetch from the KV.
|
|
241
|
+
*
|
|
242
|
+
* @param params the params object
|
|
243
|
+
* @param pipelinebatch number of items
|
|
244
|
+
*/
|
|
245
|
+
LIBCOUCHBASE_API
|
|
246
|
+
lcb_error_t
|
|
247
|
+
lcb_n1p_pipelinebatch(lcb_N1QLPARAMS *params, int pipelinebatch);
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Set a query option
|
|
251
|
+
* @param params the params object
|
|
252
|
+
* @param name the name of the option
|
|
253
|
+
* @param n_name
|
|
254
|
+
* @param value the value of the option
|
|
255
|
+
* @param n_value
|
|
256
|
+
*/
|
|
257
|
+
LIBCOUCHBASE_API
|
|
258
|
+
lcb_error_t
|
|
259
|
+
lcb_n1p_setopt(lcb_N1QLPARAMS *params, const char *name, size_t n_name,
|
|
260
|
+
const char *value, size_t n_value);
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Convenience function to set a string parameter with a string value
|
|
264
|
+
* @param params the parameter object
|
|
265
|
+
* @param key the NUL-terminated option name
|
|
266
|
+
* @param value the NUL-terminated option value
|
|
267
|
+
*/
|
|
268
|
+
#define lcb_n1p_setoptz(params, key, value) \
|
|
269
|
+
lcb_n1p_setopt(params, key, -1, value, -1)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
/** No consistency constraints */
|
|
273
|
+
#define LCB_N1P_CONSISTENCY_NONE 0
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* This is implicitly set by the lcb_n1p_synctok() family of functions. This
|
|
277
|
+
* will ensure that mutations up to the vector indicated by the mutation token
|
|
278
|
+
* passed to lcb_n1p_synctok() are used.
|
|
279
|
+
*/
|
|
280
|
+
#define LCB_N1P_CONSISTENCY_RYOW 1
|
|
281
|
+
|
|
282
|
+
/** Refresh the snapshot for each request */
|
|
283
|
+
#define LCB_N1P_CONSISTENCY_REQUEST 2
|
|
284
|
+
|
|
285
|
+
/** Refresh the snapshot for each statement */
|
|
286
|
+
#define LCB_N1P_CONSISTENCY_STATEMENT 3
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Sets the consistency mode for the request.
|
|
290
|
+
* By default results are read from a potentially stale snapshot of the data.
|
|
291
|
+
* This may be good for most cases; however at times you want the absolutely
|
|
292
|
+
* most recent data.
|
|
293
|
+
* @param params the parameters object
|
|
294
|
+
* @param mode one of the `LCB_N1P_CONSISTENT_*` constants.
|
|
295
|
+
*/
|
|
296
|
+
LIBCOUCHBASE_API
|
|
297
|
+
lcb_error_t
|
|
298
|
+
lcb_n1p_setconsistency(lcb_N1QLPARAMS *params, int mode);
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Indicate that the query should synchronize its internal snapshot to reflect
|
|
302
|
+
* the changes indicated by the given mutation token (`ss`).
|
|
303
|
+
* @param params the parameters object
|
|
304
|
+
* @param keyspace the keyspace (or bucket name) which this mutation token
|
|
305
|
+
* pertains to
|
|
306
|
+
* @param st the mutation token
|
|
307
|
+
*/
|
|
308
|
+
LIBCOUCHBASE_API
|
|
309
|
+
lcb_error_t
|
|
310
|
+
lcb_n1p_setconsistent_token(lcb_N1QLPARAMS *params,
|
|
311
|
+
const char *keyspace, const lcb_MUTATION_TOKEN *st);
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Indicate that the query should synchronize its internal snapshot to reflect
|
|
315
|
+
* any past changes made by the given instance `instance`.
|
|
316
|
+
*
|
|
317
|
+
* This iterates over all the vbuckets for the given instance and inserts
|
|
318
|
+
* the relevant mutation token, using @ref lcb_get_mutation_token
|
|
319
|
+
*/
|
|
320
|
+
LIBCOUCHBASE_API
|
|
321
|
+
lcb_error_t
|
|
322
|
+
lcb_n1p_setconsistent_handle(lcb_N1QLPARAMS *params, lcb_t instance);
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Encodes the request and returns it as a string. The string is valid
|
|
326
|
+
* until the next call to the params function.
|
|
327
|
+
* @param params the parameter object
|
|
328
|
+
* @param[out] rc an error code if there was an issue in encoding
|
|
329
|
+
* @return the NUL-terminated query string.
|
|
330
|
+
*
|
|
331
|
+
* @note Calling this function regenerates the query string internally,
|
|
332
|
+
* and is implicitly called by lcb_n1p_mkcmd().
|
|
333
|
+
*/
|
|
334
|
+
LIBCOUCHBASE_API
|
|
335
|
+
const char *
|
|
336
|
+
lcb_n1p_encode(lcb_N1QLPARAMS *params, lcb_error_t *rc);
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Populates the given low-level lcb_CMDN1QL structure with the relevant fields
|
|
340
|
+
* from the params structure. If this function returns successfuly, you must
|
|
341
|
+
* ensure that the params object is not modified until the command is
|
|
342
|
+
* submitted.
|
|
343
|
+
*
|
|
344
|
+
* @note
|
|
345
|
+
* This may also set some lcb_CMDN1QL::cmdflags fields. If setting your own
|
|
346
|
+
* flags, ensure that those flags do not replace the existing ones set by
|
|
347
|
+
* this function.
|
|
348
|
+
*/
|
|
349
|
+
LIBCOUCHBASE_API
|
|
350
|
+
lcb_error_t
|
|
351
|
+
lcb_n1p_mkcmd(lcb_N1QLPARAMS *params, lcb_CMDN1QL *cmd);
|
|
352
|
+
|
|
353
|
+
/**@}*/
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* @name Low-level N1QL interface
|
|
357
|
+
* @{
|
|
358
|
+
*/
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Prepare and cache the query if required. This may be used on frequently
|
|
362
|
+
* issued queries, so they perform better.
|
|
363
|
+
*/
|
|
364
|
+
#define LCB_CMDN1QL_F_PREPCACHE (1 << 16)
|
|
365
|
+
|
|
366
|
+
/** The lcb_CMDN1QL::query member is an internal JSON structure. @internal */
|
|
367
|
+
#define LCB_CMDN1QL_F_JSONQUERY (1 << 17)
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* This is an Analytics query.
|
|
371
|
+
*
|
|
372
|
+
* @committed
|
|
373
|
+
*/
|
|
374
|
+
#define LCB_CMDN1QL_F_ANALYTICSQUERY (1 << 18)
|
|
375
|
+
/* @private an alias for compatibility */
|
|
376
|
+
#define LCB_CMDN1QL_F_CBASQUERY LCB_CMDN1QL_F_ANALYTICSQUERY
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Command structure for N1QL queries. Typically an application will use the
|
|
380
|
+
* lcb_N1QLPARAMS structure to populate the #query and #content_type fields.
|
|
381
|
+
*
|
|
382
|
+
* The #callback field must be specified, and indicates the function the
|
|
383
|
+
* library should call when more response data has arrived.
|
|
384
|
+
*/
|
|
385
|
+
struct lcb_CMDN1QL {
|
|
386
|
+
lcb_U32 cmdflags;
|
|
387
|
+
/**Query to be placed in the POST request. The library will not perform
|
|
388
|
+
* any conversions or validation on this string, so it is up to the user
|
|
389
|
+
* (or wrapping library) to ensure that the string is well formed.
|
|
390
|
+
*
|
|
391
|
+
* If using the @ref lcb_N1QLPARAMS structure, the lcb_n1p_mkcmd() function
|
|
392
|
+
* will properly populate this field.
|
|
393
|
+
*
|
|
394
|
+
* In general the string should either be JSON (in which case, the
|
|
395
|
+
* #content_type field should be `application/json`) or url-encoded
|
|
396
|
+
* (in which case the #content_type field should be
|
|
397
|
+
* `application/x-www-form-urlencoded`)
|
|
398
|
+
*/
|
|
399
|
+
const char *query;
|
|
400
|
+
|
|
401
|
+
/** Length of the query data */
|
|
402
|
+
size_t nquery;
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Ignored since version 2.5.3.
|
|
406
|
+
* Starting from version 2.7.3, is used for experimental CBAS support
|
|
407
|
+
*/
|
|
408
|
+
const char *host;
|
|
409
|
+
|
|
410
|
+
/** Ignored since version 2.5.3 */
|
|
411
|
+
const char *content_type;
|
|
412
|
+
|
|
413
|
+
/** Callback to be invoked for each row */
|
|
414
|
+
lcb_N1QLCALLBACK callback;
|
|
415
|
+
|
|
416
|
+
/**Request handle. Will be set to the handle which may be passed to
|
|
417
|
+
* lcb_n1ql_cancel() */
|
|
418
|
+
lcb_N1QLHANDLE *handle;
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Response for a N1QL query. This is delivered in the @ref lcb_N1QLCALLBACK
|
|
423
|
+
* callback function for each result row received. The callback is also called
|
|
424
|
+
* one last time when all
|
|
425
|
+
*/
|
|
426
|
+
struct lcb_RESPN1QL {
|
|
427
|
+
#ifndef __LCB_DOXYGEN__
|
|
428
|
+
LCB_RESP_BASE
|
|
429
|
+
#else
|
|
430
|
+
lcb_U16 rflags; /**< Flags for response structure */
|
|
431
|
+
#endif
|
|
432
|
+
|
|
433
|
+
/**Current result row. If #rflags has the ::LCB_RESP_F_FINAL bit set, then
|
|
434
|
+
* this field does not contain the actual row, but the remainder of the
|
|
435
|
+
* data not included with the resultset; e.g. the JSON surrounding
|
|
436
|
+
* the "results" field with any errors or metadata for the response.
|
|
437
|
+
*/
|
|
438
|
+
const char *row;
|
|
439
|
+
/** Length of the row */
|
|
440
|
+
size_t nrow;
|
|
441
|
+
/** Raw HTTP response, if applicable */
|
|
442
|
+
const lcb_RESPHTTP *htresp;
|
|
443
|
+
};
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* @volatile
|
|
447
|
+
*
|
|
448
|
+
* Execute a N1QL query.
|
|
449
|
+
*
|
|
450
|
+
* This function will send the query to a query server in the cluster
|
|
451
|
+
* and will invoke the callback (lcb_CMDN1QL::callback) for each result returned.
|
|
452
|
+
* By default it will run query as N1QL flavour, for Analytics set
|
|
453
|
+
* @ref LCB_CMDN1QL_F_ANALYTICSQUERY flag in cmdflags of @ref lcb_CMDN1QL argument.
|
|
454
|
+
*
|
|
455
|
+
* @param instance The instance
|
|
456
|
+
* @param cookie Pointer to application data
|
|
457
|
+
* @param cmd the command
|
|
458
|
+
* @return Scheduling success or failure.
|
|
459
|
+
*/
|
|
460
|
+
LIBCOUCHBASE_API
|
|
461
|
+
lcb_error_t
|
|
462
|
+
lcb_n1ql_query(lcb_t instance, const void *cookie, const lcb_CMDN1QL *cmd);
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Cancels an in-progress request. This will ensure that further callbacks
|
|
467
|
+
* for the given request are not delivered.
|
|
468
|
+
*
|
|
469
|
+
* @param instance the instance
|
|
470
|
+
* @param handle the handle for the request. This is obtained during the
|
|
471
|
+
* request as an 'out' parameter (see lcb_CMDN1QL::handle)
|
|
472
|
+
*
|
|
473
|
+
* To obtain the `handle` parameter, do something like this:
|
|
474
|
+
*
|
|
475
|
+
* @code{.c}
|
|
476
|
+
* lcb_N1QLHANDLE handle;
|
|
477
|
+
* lcb_CMDN1QL cmd;
|
|
478
|
+
* // (Initialize command...)
|
|
479
|
+
* cmd.handle = &handle;
|
|
480
|
+
* lcb_n1ql_query(instance, cookie, &cmd);
|
|
481
|
+
* @endcode.
|
|
482
|
+
*
|
|
483
|
+
* If the lcb_n1ql_query() function returns `LCB_SUCCESS` then the `handle`
|
|
484
|
+
* above is populated with the opaque handle. You can then use this handle
|
|
485
|
+
* to cancel the query at a later point, such as within the callback.
|
|
486
|
+
*
|
|
487
|
+
* @code{.c}
|
|
488
|
+
* lcb_n1ql_cancel(instance, handle);
|
|
489
|
+
* @endcode
|
|
490
|
+
*/
|
|
491
|
+
LIBCOUCHBASE_API
|
|
492
|
+
void
|
|
493
|
+
lcb_n1ql_cancel(lcb_t instance, lcb_N1QLHANDLE handle);
|
|
494
|
+
|
|
495
|
+
/**@}*/
|
|
496
|
+
|
|
497
|
+
/**@}*/
|
|
498
|
+
|
|
499
|
+
/**
|
|
500
|
+
* @ingroup lcb-public-api
|
|
501
|
+
* @addtogroup lcb-tracing-api
|
|
502
|
+
* @{
|
|
503
|
+
*/
|
|
504
|
+
#ifdef LCB_TRACING
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* Associate parent tracing span with the N1QL request.
|
|
508
|
+
*
|
|
509
|
+
* @param instance the instance
|
|
510
|
+
* @param handle N1QL request handle
|
|
511
|
+
* @param span parent span
|
|
512
|
+
*
|
|
513
|
+
* @par Attach parent tracing span to request object.
|
|
514
|
+
* @code{.c}
|
|
515
|
+
* lcb_CMDN1QL cmd = {};
|
|
516
|
+
* // initialize N1QL command...
|
|
517
|
+
*
|
|
518
|
+
* lcb_N1QLHANDLE handle = NULL;
|
|
519
|
+
* cmd->handle = &handle;
|
|
520
|
+
*
|
|
521
|
+
* lcb_error_t err = lcb_fts_query(instance, cookie, cmd);
|
|
522
|
+
* if (err == LCB_SUCCESS) {
|
|
523
|
+
* lcb_n1ql_set_parent_span(instance, handle, span);
|
|
524
|
+
* }
|
|
525
|
+
* @endcode
|
|
526
|
+
*
|
|
527
|
+
* @committed
|
|
528
|
+
*/
|
|
529
|
+
LIBCOUCHBASE_API
|
|
530
|
+
void lcb_n1ql_set_parent_span(lcb_t instance, lcb_N1QLHANDLE handle, lcbtrace_SPAN *span);
|
|
531
|
+
|
|
532
|
+
#endif
|
|
533
|
+
/**
|
|
534
|
+
* @} (Group: Tracing)
|
|
535
|
+
*/
|
|
536
|
+
#ifdef __cplusplus
|
|
537
|
+
}
|
|
538
|
+
#endif
|
|
539
|
+
#endif
|