libcouchbase 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/.travis.yml +35 -0
- data/Gemfile +4 -0
- data/LICENSE +24 -0
- data/README.md +389 -0
- data/Rakefile +75 -0
- data/ext/README.md +6 -0
- data/ext/Rakefile +20 -0
- data/ext/libcouchbase/.gitignore +130 -0
- data/ext/libcouchbase/.travis.yml +19 -0
- data/ext/libcouchbase/CMakeLists.txt +429 -0
- data/ext/libcouchbase/CONTRIBUTING.md +124 -0
- data/ext/libcouchbase/LICENSE +202 -0
- data/ext/libcouchbase/README.markdown +163 -0
- data/ext/libcouchbase/RELEASE_NOTES.markdown +2691 -0
- data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +27 -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 +20 -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 +52 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +56 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseSnappy.cmake +11 -0
- data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +29 -0
- data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +133 -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 +60 -0
- data/ext/libcouchbase/cmake/configure +357 -0
- data/ext/libcouchbase/cmake/defs.mk.in +8 -0
- data/ext/libcouchbase/cmake/dtrace-instr-link.pl +38 -0
- data/ext/libcouchbase/cmake/source_files.cmake +73 -0
- data/ext/libcouchbase/configure.pl +1 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.c +624 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
- data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +9 -0
- data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
- data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +217 -0
- data/ext/libcouchbase/contrib/cbsasl/src/client.c +205 -0
- data/ext/libcouchbase/contrib/cbsasl/src/common.c +46 -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/util.h +31 -0
- data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.c +747 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.h +493 -0
- data/ext/libcouchbase/contrib/genhash/genhash.c +372 -0
- data/ext/libcouchbase/contrib/genhash/genhash.h +235 -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 +4892 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
- data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +8 -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 +71 -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 +98 -0
- data/ext/libcouchbase/contrib/snappy/snappy.cc +1307 -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/example/CMakeLists.txt +37 -0
- data/ext/libcouchbase/example/README.markdown +47 -0
- data/ext/libcouchbase/example/db/db.c +167 -0
- data/ext/libcouchbase/example/db/vb.c +227 -0
- data/ext/libcouchbase/example/instancepool/main.cc +102 -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 +148 -0
- data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
- data/ext/libcouchbase/example/minimal/minimal.c +130 -0
- data/ext/libcouchbase/example/observe/observe.c +146 -0
- data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +132 -0
- data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +191 -0
- data/ext/libcouchbase/example/tick/tick.c +119 -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/cbft.h +109 -0
- data/ext/libcouchbase/include/libcouchbase/cntl-private.h +356 -0
- data/ext/libcouchbase/include/libcouchbase/cntl.h +937 -0
- data/ext/libcouchbase/include/libcouchbase/configuration.h.in +23 -0
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +3677 -0
- data/ext/libcouchbase/include/libcouchbase/deprecated.h +300 -0
- data/ext/libcouchbase/include/libcouchbase/error.h +595 -0
- data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
- data/ext/libcouchbase/include/libcouchbase/iops.h +1050 -0
- data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
- data/ext/libcouchbase/include/libcouchbase/kvbuf.h +132 -0
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +364 -0
- data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +367 -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 +312 -0
- data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
- data/ext/libcouchbase/include/libcouchbase/vbucket.h +643 -0
- data/ext/libcouchbase/include/libcouchbase/views.h +298 -0
- data/ext/libcouchbase/include/libcouchbase/visibility.h +65 -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 +1916 -0
- data/ext/libcouchbase/include/memcached/vbucket.h +42 -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 +73 -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 +108 -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 +466 -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 +29 -0
- data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +65 -0
- data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
- data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +29 -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 +42 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +212 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +148 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +648 -0
- data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +11 -0
- data/ext/libcouchbase/plugins/io/select/plugin-select.c +448 -0
- data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
- data/ext/libcouchbase/src/README.md +103 -0
- data/ext/libcouchbase/src/aspend.h +106 -0
- data/ext/libcouchbase/src/auth.cc +74 -0
- data/ext/libcouchbase/src/auth.h +54 -0
- data/ext/libcouchbase/src/bootstrap.c +269 -0
- data/ext/libcouchbase/src/bootstrap.h +129 -0
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.c +495 -0
- data/ext/libcouchbase/src/bucketconfig/bc_file.c +347 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.c +630 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.h +82 -0
- data/ext/libcouchbase/src/bucketconfig/bc_mcraw.c +150 -0
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +681 -0
- data/ext/libcouchbase/src/bucketconfig/confmon.c +474 -0
- data/ext/libcouchbase/src/callbacks.c +378 -0
- data/ext/libcouchbase/src/cbft.cc +210 -0
- data/ext/libcouchbase/src/cntl.cc +847 -0
- data/ext/libcouchbase/src/config_static.h +159 -0
- data/ext/libcouchbase/src/connspec.cc +462 -0
- data/ext/libcouchbase/src/connspec.h +105 -0
- data/ext/libcouchbase/src/ctx-log-inl.h +27 -0
- data/ext/libcouchbase/src/dump.c +98 -0
- data/ext/libcouchbase/src/getconfig.c +100 -0
- data/ext/libcouchbase/src/gethrtime.c +109 -0
- data/ext/libcouchbase/src/handler.c +922 -0
- data/ext/libcouchbase/src/hashset.c +164 -0
- data/ext/libcouchbase/src/hashset.h +86 -0
- data/ext/libcouchbase/src/hashtable.c +75 -0
- data/ext/libcouchbase/src/hdr_timings.c +92 -0
- data/ext/libcouchbase/src/hostlist.cc +301 -0
- data/ext/libcouchbase/src/hostlist.h +171 -0
- data/ext/libcouchbase/src/http/http-priv.h +307 -0
- data/ext/libcouchbase/src/http/http.cc +633 -0
- data/ext/libcouchbase/src/http/http.h +34 -0
- data/ext/libcouchbase/src/http/http_io.cc +307 -0
- data/ext/libcouchbase/src/instance.cc +722 -0
- data/ext/libcouchbase/src/internal.h +244 -0
- data/ext/libcouchbase/src/iofactory.c +575 -0
- data/ext/libcouchbase/src/jsparse/parser.cc +519 -0
- data/ext/libcouchbase/src/jsparse/parser.h +173 -0
- data/ext/libcouchbase/src/lcbht/lcbht.c +282 -0
- data/ext/libcouchbase/src/lcbht/lcbht.h +199 -0
- data/ext/libcouchbase/src/lcbio/connect.c +557 -0
- data/ext/libcouchbase/src/lcbio/connect.h +364 -0
- data/ext/libcouchbase/src/lcbio/ctx.c +611 -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 +84 -0
- data/ext/libcouchbase/src/lcbio/ioutils.c +350 -0
- data/ext/libcouchbase/src/lcbio/ioutils.h +203 -0
- data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
- data/ext/libcouchbase/src/lcbio/manager.c +584 -0
- data/ext/libcouchbase/src/lcbio/manager.h +156 -0
- data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
- data/ext/libcouchbase/src/lcbio/rw-inl.h +115 -0
- data/ext/libcouchbase/src/lcbio/ssl.h +149 -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 +430 -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 +86 -0
- data/ext/libcouchbase/src/mc/compress.c +90 -0
- data/ext/libcouchbase/src/mc/compress.h +61 -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 +111 -0
- data/ext/libcouchbase/src/mc/mcreq.c +954 -0
- data/ext/libcouchbase/src/mc/mcreq.h +977 -0
- data/ext/libcouchbase/src/mcserver/mcserver.c +784 -0
- data/ext/libcouchbase/src/mcserver/mcserver.h +121 -0
- data/ext/libcouchbase/src/mcserver/negotiate.c +656 -0
- data/ext/libcouchbase/src/mcserver/negotiate.h +119 -0
- data/ext/libcouchbase/src/n1ql/ixmgmt.cc +860 -0
- data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
- data/ext/libcouchbase/src/n1ql/n1ql.cc +729 -0
- data/ext/libcouchbase/src/n1ql/params.cc +215 -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.c +385 -0
- data/ext/libcouchbase/src/nodeinfo.cc +194 -0
- data/ext/libcouchbase/src/operations/cbflush.c +71 -0
- data/ext/libcouchbase/src/operations/counter.c +116 -0
- data/ext/libcouchbase/src/operations/durability-cas.c +224 -0
- data/ext/libcouchbase/src/operations/durability-seqno.c +157 -0
- data/ext/libcouchbase/src/operations/durability.c +668 -0
- data/ext/libcouchbase/src/operations/durability_internal.h +199 -0
- data/ext/libcouchbase/src/operations/get.c +409 -0
- data/ext/libcouchbase/src/operations/observe-seqno.c +96 -0
- data/ext/libcouchbase/src/operations/observe.c +340 -0
- data/ext/libcouchbase/src/operations/pktfwd.c +86 -0
- data/ext/libcouchbase/src/operations/remove.c +83 -0
- data/ext/libcouchbase/src/operations/stats.c +461 -0
- data/ext/libcouchbase/src/operations/store.c +360 -0
- data/ext/libcouchbase/src/operations/subdoc.cc +510 -0
- data/ext/libcouchbase/src/operations/touch.c +81 -0
- data/ext/libcouchbase/src/packetutils.c +60 -0
- data/ext/libcouchbase/src/packetutils.h +147 -0
- data/ext/libcouchbase/src/probes.d +211 -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.c +113 -0
- data/ext/libcouchbase/src/retryq.c +424 -0
- data/ext/libcouchbase/src/retryq.h +157 -0
- data/ext/libcouchbase/src/ringbuffer.c +442 -0
- data/ext/libcouchbase/src/ringbuffer.h +100 -0
- data/ext/libcouchbase/src/settings.c +95 -0
- data/ext/libcouchbase/src/settings.h +188 -0
- data/ext/libcouchbase/src/simplestring.c +211 -0
- data/ext/libcouchbase/src/simplestring.h +228 -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 +23 -0
- data/ext/libcouchbase/src/ssl/ssl_c.c +415 -0
- data/ext/libcouchbase/src/ssl/ssl_common.c +454 -0
- data/ext/libcouchbase/src/ssl/ssl_e.c +408 -0
- data/ext/libcouchbase/src/ssl/ssl_iot_common.h +180 -0
- data/ext/libcouchbase/src/ssobuf.h +82 -0
- data/ext/libcouchbase/src/strcodecs/base64.c +123 -0
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +285 -0
- data/ext/libcouchbase/src/timings.c +208 -0
- data/ext/libcouchbase/src/trace.h +105 -0
- data/ext/libcouchbase/src/utilities.c +171 -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 +1543 -0
- data/ext/libcouchbase/src/views/docreq.c +194 -0
- data/ext/libcouchbase/src/views/docreq.h +83 -0
- data/ext/libcouchbase/src/views/viewreq.c +358 -0
- data/ext/libcouchbase/src/views/viewreq.h +36 -0
- data/ext/libcouchbase/src/wait.c +161 -0
- data/ext/libcouchbase/tests/CMakeLists.txt +140 -0
- data/ext/libcouchbase/tests/basic/t_base64.cc +81 -0
- data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
- data/ext/libcouchbase/tests/basic/t_connstr.cc +404 -0
- data/ext/libcouchbase/tests/basic/t_creds.cc +32 -0
- data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
- data/ext/libcouchbase/tests/basic/t_hashset.cc +262 -0
- data/ext/libcouchbase/tests/basic/t_host.cc +198 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.cc +137 -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 +18 -0
- data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
- data/ext/libcouchbase/tests/basic/t_packet.cc +222 -0
- data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -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_string.cc +112 -0
- data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
- data/ext/libcouchbase/tests/check-all.cc +608 -0
- data/ext/libcouchbase/tests/htparse/t_basic.cc +193 -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 +104 -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 +524 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.h +385 -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 +226 -0
- data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
- data/ext/libcouchbase/tests/iotests/t_confmon.cc +241 -0
- data/ext/libcouchbase/tests/iotests/t_durability.cc +1059 -0
- data/ext/libcouchbase/tests/iotests/t_forward.cc +110 -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 +275 -0
- data/ext/libcouchbase/tests/iotests/t_misc.cc +713 -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 +654 -0
- data/ext/libcouchbase/tests/iotests/t_obseqno.cc +157 -0
- data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
- data/ext/libcouchbase/tests/iotests/t_sched.cc +88 -0
- data/ext/libcouchbase/tests/iotests/t_serverops.cc +230 -0
- data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
- data/ext/libcouchbase/tests/iotests/t_subdoc.cc +822 -0
- data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
- data/ext/libcouchbase/tests/iotests/t_views.cc +405 -0
- data/ext/libcouchbase/tests/iotests/testutil.cc +250 -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 +347 -0
- data/ext/libcouchbase/tests/socktests/socktest.h +448 -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 +179 -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/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/terse_25.json +291 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +341 -0
- data/ext/libcouchbase/tools/CMakeLists.txt +51 -0
- data/ext/libcouchbase/tools/cbc-handlers.h +462 -0
- data/ext/libcouchbase/tools/cbc-n1qlback.cc +439 -0
- data/ext/libcouchbase/tools/cbc-pillowfight.cc +822 -0
- data/ext/libcouchbase/tools/cbc.cc +1541 -0
- data/ext/libcouchbase/tools/common/histogram.cc +43 -0
- data/ext/libcouchbase/tools/common/histogram.h +23 -0
- data/ext/libcouchbase/tools/common/my_inttypes.h +22 -0
- data/ext/libcouchbase/tools/common/options.cc +420 -0
- data/ext/libcouchbase/tools/common/options.h +81 -0
- data/ext/libcouchbase/tools/docgen/docgen.h +469 -0
- data/ext/libcouchbase/tools/docgen/loc.h +210 -0
- data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
- data/ext/libcouchbase/tools/docgen/seqgen.h +94 -0
- data/lib/libcouchbase.rb +36 -0
- data/lib/libcouchbase/bucket.rb +819 -0
- data/lib/libcouchbase/callbacks.rb +72 -0
- data/lib/libcouchbase/connection.rb +790 -0
- data/lib/libcouchbase/design_docs.rb +86 -0
- data/lib/libcouchbase/error.rb +68 -0
- data/lib/libcouchbase/ext/libcouchbase.rb +1135 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdbase.rb +23 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdcounter.rb +36 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdendure.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdfts.rb +24 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdget.rb +30 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdgetreplica.rb +49 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdhttp.rb +58 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdn1ql.rb +40 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdobseqno.rb +33 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdobserve.rb +30 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdstore.rb +40 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdstoredur.rb +45 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdsubdoc.rb +49 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdverbosity.rb +29 -0
- data/lib/libcouchbase/ext/libcouchbase/cmdviewquery.rb +61 -0
- data/lib/libcouchbase/ext/libcouchbase/contigbuf.rb +14 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st.rb +15 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st0.rb +23 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st1.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st2.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/create_st3.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/crst_u.rb +20 -0
- data/lib/libcouchbase/ext/libcouchbase/durability_opts_st_v.rb +11 -0
- data/lib/libcouchbase/ext/libcouchbase/durability_opts_t.rb +14 -0
- data/lib/libcouchbase/ext/libcouchbase/durabilityopt_sv0.rb +63 -0
- data/lib/libcouchbase/ext/libcouchbase/enums.rb +991 -0
- data/lib/libcouchbase/ext/libcouchbase/fragbuf.rb +18 -0
- data/lib/libcouchbase/ext/libcouchbase/ftshandle.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/histogram.rb +34 -0
- data/lib/libcouchbase/ext/libcouchbase/http_request_t.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/keybuf.rb +20 -0
- data/lib/libcouchbase/ext/libcouchbase/multicmd_ctx.rb +30 -0
- data/lib/libcouchbase/ext/libcouchbase/mutation_token.rb +17 -0
- data/lib/libcouchbase/ext/libcouchbase/n1qlhandle.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/n1qlparams.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/respbase.rb +29 -0
- data/lib/libcouchbase/ext/libcouchbase/respcounter.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/respendure.rb +49 -0
- data/lib/libcouchbase/ext/libcouchbase/respfts.rb +40 -0
- data/lib/libcouchbase/ext/libcouchbase/respget.rb +44 -0
- data/lib/libcouchbase/ext/libcouchbase/resphttp.rb +48 -0
- data/lib/libcouchbase/ext/libcouchbase/respmcversion.rb +38 -0
- data/lib/libcouchbase/ext/libcouchbase/respn1ql.rb +41 -0
- data/lib/libcouchbase/ext/libcouchbase/respobseqno.rb +52 -0
- data/lib/libcouchbase/ext/libcouchbase/respobserve.rb +41 -0
- data/lib/libcouchbase/ext/libcouchbase/respserverbase.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/respstats.rb +38 -0
- data/lib/libcouchbase/ext/libcouchbase/respstore.rb +32 -0
- data/lib/libcouchbase/ext/libcouchbase/respstoredur.rb +38 -0
- data/lib/libcouchbase/ext/libcouchbase/respsubdoc.rb +35 -0
- data/lib/libcouchbase/ext/libcouchbase/respviewquery.rb +67 -0
- data/lib/libcouchbase/ext/libcouchbase/sdentry.rb +22 -0
- data/lib/libcouchbase/ext/libcouchbase/sdspec.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase/t.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase/valbuf.rb +22 -0
- data/lib/libcouchbase/ext/libcouchbase/valbuf_u_buf.rb +14 -0
- data/lib/libcouchbase/ext/libcouchbase/viewhandle.rb +7 -0
- data/lib/libcouchbase/ext/libcouchbase_iocp.rb +26 -0
- data/lib/libcouchbase/ext/libcouchbase_libuv.rb +18 -0
- data/lib/libcouchbase/ext/tasks.rb +87 -0
- data/lib/libcouchbase/n1ql.rb +73 -0
- data/lib/libcouchbase/query_full_text.rb +147 -0
- data/lib/libcouchbase/query_n1ql.rb +121 -0
- data/lib/libcouchbase/query_view.rb +129 -0
- data/lib/libcouchbase/results_fiber.rb +262 -0
- data/lib/libcouchbase/results_native.rb +211 -0
- data/lib/libcouchbase/version.rb +5 -0
- data/libcouchbase.gemspec +61 -0
- data/spec/bucket_spec.rb +270 -0
- data/spec/connection_spec.rb +277 -0
- data/spec/design_docs_spec.rb +23 -0
- data/spec/error_spec.rb +26 -0
- data/spec/fts_spec.rb +129 -0
- data/spec/n1ql_spec.rb +201 -0
- data/spec/results_libuv_spec.rb +229 -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/view_spec.rb +195 -0
- metadata +775 -0
@@ -0,0 +1,259 @@
|
|
1
|
+
# frozen_string_literal: true, encoding: ASCII-8BIT
|
2
|
+
|
3
|
+
require 'libcouchbase'
|
4
|
+
require 'uv-rays'
|
5
|
+
|
6
|
+
|
7
|
+
class NativeMockQuery
|
8
|
+
def initialize(log, thread = nil, preloaded = 0)
|
9
|
+
@count = 4
|
10
|
+
@preloaded = preloaded
|
11
|
+
@log = log
|
12
|
+
@thread = thread
|
13
|
+
end
|
14
|
+
|
15
|
+
attr_accessor :preloaded
|
16
|
+
|
17
|
+
def get_count(metadata)
|
18
|
+
metadata[:total_rows]
|
19
|
+
end
|
20
|
+
|
21
|
+
def perform(limit: @count, **options, &blk)
|
22
|
+
@wait = Thread.new do
|
23
|
+
@thread.run {
|
24
|
+
@curr = 0
|
25
|
+
@callback = blk
|
26
|
+
@limit = limit
|
27
|
+
@error = nil
|
28
|
+
|
29
|
+
preloaded.times { |i| blk.call(false, i) }
|
30
|
+
next_item(preloaded)
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def wait_join
|
36
|
+
@wait.join
|
37
|
+
end
|
38
|
+
|
39
|
+
def next_item(i = 0)
|
40
|
+
if i == @limit
|
41
|
+
@sched = @thread.scheduler.in(50) do
|
42
|
+
@sched = nil
|
43
|
+
@callback.call(:final, {total_rows: @count})
|
44
|
+
end
|
45
|
+
else
|
46
|
+
@sched = @thread.scheduler.in(100) do
|
47
|
+
@log << :new_row
|
48
|
+
next_item(i + 1)
|
49
|
+
@callback.call(false, i)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def cancel
|
55
|
+
return if @error
|
56
|
+
@error = :cancelled
|
57
|
+
|
58
|
+
@thread.schedule {
|
59
|
+
if @sched
|
60
|
+
@sched.cancel
|
61
|
+
@sched = @thread.scheduler.in(50) do
|
62
|
+
@sched = nil
|
63
|
+
@callback.call(:final, {total_rows: @count})
|
64
|
+
end
|
65
|
+
end
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
describe Libcouchbase::ResultsNative do
|
72
|
+
before :each do
|
73
|
+
reactor = ::Libuv::Reactor.default
|
74
|
+
@qlog = []
|
75
|
+
@query = NativeMockQuery.new(@qlog, reactor)
|
76
|
+
@log = []
|
77
|
+
@view = Libcouchbase::ResultsNative.new(@query)
|
78
|
+
expect(@log).to eq([])
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should stream the response" do
|
82
|
+
@view.each {|i| @log << i }
|
83
|
+
|
84
|
+
@query.wait_join
|
85
|
+
|
86
|
+
expect(@view.complete_result_set).to be(true)
|
87
|
+
expect(@view.query_in_progress).to be(false)
|
88
|
+
expect(@view.query_completed).to be(true)
|
89
|
+
expect(@qlog).to eq([:new_row, :new_row, :new_row, :new_row])
|
90
|
+
expect(@log).to eq([0, 1, 2, 3])
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should continue to stream the response even if some has already been loaded" do
|
94
|
+
@query.preloaded = 2
|
95
|
+
@view.each {|i| @log << i }
|
96
|
+
|
97
|
+
@query.wait_join
|
98
|
+
|
99
|
+
expect(@view.complete_result_set).to be(true)
|
100
|
+
expect(@view.query_in_progress).to be(false)
|
101
|
+
expect(@view.query_completed).to be(true)
|
102
|
+
expect(@qlog).to eq([:new_row, :new_row])
|
103
|
+
expect(@log).to eq([0, 1, 2, 3])
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should only load what is required" do
|
107
|
+
@log << @view.take(2)
|
108
|
+
expect(@view.complete_result_set).to be(false)
|
109
|
+
expect(@view.query_in_progress).to be(false)
|
110
|
+
expect(@view.query_completed).to be(true)
|
111
|
+
|
112
|
+
@log << @view.first
|
113
|
+
expect(@view.complete_result_set).to be(false)
|
114
|
+
expect(@view.query_in_progress).to be(false)
|
115
|
+
expect(@view.query_completed).to be(true)
|
116
|
+
|
117
|
+
# Wait join here as the default loop will
|
118
|
+
# be started again on a new thread
|
119
|
+
# without this wait we might end up in a deadlock...
|
120
|
+
# Don't worry, the test is sound - seriously
|
121
|
+
@query.wait_join
|
122
|
+
|
123
|
+
@log << @view.to_a
|
124
|
+
expect(@view.complete_result_set).to be(true)
|
125
|
+
expect(@view.query_in_progress).to be(false)
|
126
|
+
expect(@view.query_completed).to be(true)
|
127
|
+
|
128
|
+
@query.wait_join
|
129
|
+
|
130
|
+
expect(@qlog).to eq([:new_row, :new_row, :new_row, :new_row, :new_row, :new_row])
|
131
|
+
expect(@log).to eq([[0, 1], 0, [0, 1, 2, 3]])
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should load only once" do
|
135
|
+
@log << @view.to_a
|
136
|
+
@log << @view.to_a
|
137
|
+
|
138
|
+
@query.wait_join
|
139
|
+
expect(@qlog).to eq([:new_row, :new_row, :new_row, :new_row])
|
140
|
+
expect(@log).to eq([[0, 1, 2, 3], [0, 1, 2, 3]])
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should work as an enumerable" do
|
144
|
+
enum = @view.each
|
145
|
+
@log << enum.next
|
146
|
+
@log << enum.next
|
147
|
+
|
148
|
+
@query.wait_join
|
149
|
+
|
150
|
+
expect(@qlog).to eq([:new_row, :new_row, :new_row, :new_row])
|
151
|
+
expect(@log).to eq([0, 1])
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should return count" do
|
155
|
+
@log << @view.count
|
156
|
+
@log << @view.count
|
157
|
+
|
158
|
+
@query.wait_join
|
159
|
+
|
160
|
+
expect(@qlog).to eq([:new_row])
|
161
|
+
expect(@log).to eq([4, 4])
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should handle exceptions" do
|
165
|
+
begin
|
166
|
+
@view.each {|i|
|
167
|
+
@log << i
|
168
|
+
raise 'what what'
|
169
|
+
}
|
170
|
+
rescue => e
|
171
|
+
@log << e.message
|
172
|
+
end
|
173
|
+
|
174
|
+
@query.wait_join
|
175
|
+
|
176
|
+
expect(@qlog).to eq([:new_row, :new_row, :new_row, :new_row])
|
177
|
+
expect(@log).to eq([0, 'what what'])
|
178
|
+
end
|
179
|
+
|
180
|
+
it "should handle row modifier exceptions" do
|
181
|
+
count = 0
|
182
|
+
|
183
|
+
@view = Libcouchbase::ResultsNative.new(@query) { |view|
|
184
|
+
if count == 1
|
185
|
+
raise 'what what'
|
186
|
+
end
|
187
|
+
count += 1
|
188
|
+
view
|
189
|
+
}
|
190
|
+
|
191
|
+
begin
|
192
|
+
@view.each {|i| @log << i }
|
193
|
+
rescue => e
|
194
|
+
@log << e.message
|
195
|
+
end
|
196
|
+
|
197
|
+
@query.wait_join
|
198
|
+
|
199
|
+
expect(@qlog).to eq([:new_row, :new_row])
|
200
|
+
expect(@log).to eq([0, 'what what'])
|
201
|
+
end
|
202
|
+
|
203
|
+
it "should handle row modifier exceptions on a short query" do
|
204
|
+
count = 0
|
205
|
+
|
206
|
+
@view = Libcouchbase::ResultsNative.new(@query) { |view|
|
207
|
+
raise 'what what'
|
208
|
+
}
|
209
|
+
|
210
|
+
begin
|
211
|
+
@view.first
|
212
|
+
rescue => e
|
213
|
+
@log << e.message
|
214
|
+
end
|
215
|
+
|
216
|
+
@query.wait_join
|
217
|
+
|
218
|
+
expect(@qlog).to eq([:new_row])
|
219
|
+
expect(@log).to eq(['what what'])
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should handle multiple exceptions" do
|
223
|
+
count = 0
|
224
|
+
|
225
|
+
@view = Libcouchbase::ResultsNative.new(@query) { |view|
|
226
|
+
if count == 1
|
227
|
+
raise 'second'
|
228
|
+
end
|
229
|
+
count += 1
|
230
|
+
view
|
231
|
+
}
|
232
|
+
|
233
|
+
begin
|
234
|
+
@view.each {|i|
|
235
|
+
@log << i
|
236
|
+
raise 'first'
|
237
|
+
}
|
238
|
+
rescue => e
|
239
|
+
@log << e.message
|
240
|
+
end
|
241
|
+
|
242
|
+
@query.wait_join
|
243
|
+
|
244
|
+
expect(@qlog).to eq([:new_row, :new_row])
|
245
|
+
expect(@log).to eq([0, 'first'])
|
246
|
+
end
|
247
|
+
|
248
|
+
it "should support streaming the response so results are not all stored in memory" do
|
249
|
+
@view.stream {|i| @log << i }
|
250
|
+
|
251
|
+
@query.wait_join
|
252
|
+
|
253
|
+
expect(@view.complete_result_set).to be(false)
|
254
|
+
expect(@view.query_in_progress).to be(false)
|
255
|
+
expect(@view.query_completed).to be(true)
|
256
|
+
expect(@qlog).to eq([:new_row, :new_row, :new_row, :new_row])
|
257
|
+
expect(@log).to eq([0, 1, 2, 3])
|
258
|
+
end
|
259
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fapj/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fapj/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "4069482466f97adcf9a83f4b26d0f027", "language": "javascript", "views": {"by_article_id": {"map": "function(doc) {\n if(doc.type === \"apj\") {\n emit(doc.article_id, null);\n }\n}"}, "by_playlist_revision_id": {"map": "function(doc) {\n if(doc.type === \"apj\") {\n emit(doc.playlist_revision_id, null);\n }\n}"}}}, "meta": {"rev": "1-2def23cb", "id": "_design/apj"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fart/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fart/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "534867a162ac70c4ccfccd708e20b972", "language": "javascript", "views": {"by_user_id": {"map": "function(doc) {\n if(doc.type === \"art\") {\n emit(doc.user_id, null);\n }\n}"}, "by_group_id": {"map": "function(doc) {\n if(doc.type === \"art\") {\n emit(doc.group_id, null);\n }\n}"}, "by_location_id": {"map": "function(doc) {\n if(doc.type === \"art\") {\n emit(doc.location_id, null);\n }\n}"}}}, "meta": {"rev": "1-008892c4", "id": "_design/art"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fcgj/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fcgj/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "6079e92d50dba8f2103c79c7f82e17d7", "language": "javascript", "views": {"by_channel_id": {"map": "function(doc) {\n if(doc.type === \"cgj\") {\n emit(doc.channel_id, null);\n }\n}"}, "by_group_id": {"map": "function(doc) {\n if(doc.type === \"cgj\") {\n emit(doc.group_id, null);\n }\n}"}}}, "meta": {"rev": "1-0d66f57f", "id": "_design/cgj"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fcha/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fcha/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534189, "signature": "70af4456ab7aadf24664ee7923900ede", "language": "javascript", "views": {"by_authority_id": {"map": "function(doc, meta) {\n if(doc.type === \"cha\") {\n emit(doc.authority_id, null);\n }\n}"}, "by_group_id": {"map": "function(doc, meta) {\n if(doc.type === \"cha\") {\n emit(doc.group_id, null);\n }\n}"}}}, "meta": {"rev": "1-0ff341a5", "id": "_design/cha"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fcom/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fcom/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "d95ecdee424507f07b2931da53734038", "language": "javascript", "views": {"by_article_id": {"map": "function(doc) {\n if(doc.type === \"com\") {\n emit(doc.article_id, null);\n }\n}"}, "by_parent_id": {"map": "function(doc) {\n if(doc.type === \"com\" && doc.in_reply_to_id) {\n emit(doc.in_reply_to_id, null);\n }\n}"}, "by_user_id": {"map": "function(doc) {\n if(doc.type === \"com\") {\n emit(doc.user_id, null);\n }\n}"}}}, "meta": {"rev": "1-6dd715e7", "id": "_design/com"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fdev_co_upld/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fdev_co_upld/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1456725608, "signature": "2c2251df30d0e571f26ca01aafe5e8e4", "language": "javascript", "views": {"by_user_id": {"map": "function(doc) {\n if(doc.type === 'co_upld') {\n emit(doc.user_id, null);\n }\n}"}}}, "meta": {"rev": "1-43966799", "id": "_design/dev_co_upld"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fdk_ag/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fdk_ag/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1440135846, "signature": "38b93a75feba55556ad0e33944d2ad4e", "language": "javascript", "views": {"by_application_id": {"map": "function(doc) {\n if(doc.type === 'dk_ag' && doc.application_id) {\n emit([doc.application_id], null);\n }\n}"}}}, "meta": {"rev": "1-595617a4", "id": "_design/dk_ag"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fdk_app/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fdk_app/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1440135846, "signature": "7d9784d62037da92df6d0952a8fdc7ef", "language": "javascript", "views": {"show_all": {"map": "function (doc, meta)\n{\n if(doc.type === 'dk_app') {\n emit(null, [doc.name, doc.secret, doc.redirect_uri]);\n }\n}"}, "by_user_id": {"map": "function(doc) {\n if(doc.type === 'dk_app') {\n emit([doc.user_id], null);\n }\n}"}}}, "meta": {"rev": "1-4c3cfb4e", "id": "_design/dk_app"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fdk_at/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fdk_at/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1440135846, "signature": "2aed88e1bcdded7f43fa7336c212ec27", "language": "javascript", "views": {"by_application_id_and_resource_owner_id": {"map": "function(doc) {\n if(doc.type === 'dk_at' && doc.application_id && doc.resource_owner_id && !doc.revoked_at) {\n emit([doc.application_id, doc.resource_owner_id], null);\n }\n}"}, "by_application_id": {"map": "function(doc) {\n if(doc.type === 'dk_at' && doc.application_id) {\n emit([doc.application_id], null);\n }\n}"}, "by_resource_owner_id": {"map": "function(doc) {\n if(doc.type === 'dk_at' && doc.resource_owner_id && !doc.revoked_at) {\n emit([doc.resource_owner_id], null);\n }\n}"}}}, "meta": {"rev": "1-6a22e611", "id": "_design/dk_at"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fedge/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fedge/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1459901603, "signature": "32ad67723b2ce9e2122f72b2a9c2778c", "language": "javascript", "views": {"by_master_id": {"map": "function(doc, meta) {\n if(doc.type === \"edge\") {\n emit(meta.master_id, null);\n }\n}"}}}, "meta": {"rev": "1-27779ca1", "id": "_design/edge"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fgrp/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fgrp/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534189, "signature": "cfff7fffecbfc0d542128b85e0503999", "language": "javascript", "views": {"by_default_playlist_id": {"map": "function(doc) {\n if(doc.type === \"grp\") {\n emit(doc.default_playlist_id, null);\n }\n}"}, "by_authority_id": {"map": "function(doc, meta) {\n if(doc.type === \"grp\") {\n emit(doc.authority_id, null);\n }\n}"}}}, "meta": {"rev": "1-4ba8ce66", "id": "_design/grp"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Finv/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Finv/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1420417617, "signature": "76e7bcb8575a9c02d72be10ddeb88232", "language": "javascript", "views": {"by_group_id": {"map": "function(doc) {\n if(doc.type === \"inv\") {\n emit(doc.group_id, null);\n }\n}"}, "by_user_id": {"map": "function(doc) {\n if(doc.type === \"inv\") {\n emit(doc.user_id, null);\n }\n}"}}}, "meta": {"rev": "1-6af78cb6", "id": "_design/inv"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fmod/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fmod/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1473819281, "signature": "d7d3bfe1bfffe7075952f24843110274", "language": "javascript", "views": {"by_node": {"map": "function(doc) {\n if(doc.type === \"mod\") {\n emit(doc.edge_id, null);\n }\n}"}, "by_module_type": {"map": "function(doc) {\n if(doc.type === \"mod\") {\n emit(doc.role, null);\n }\n}"}, "by_dependency": {"map": "function(doc) {\n if(doc.type === \"mod\" && doc.dependency_id) {\n emit(doc.dependency_id, null);\n }\n}"}}}, "meta": {"rev": "11-57b63d8d", "id": "_design/mod"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Foauth/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Foauth/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1474531273, "signature": "d1e55f525baae771487bad50e893e004", "language": "javascript", "views": {"by_user_id": {"map": "function(doc) {\n if(doc.type === \"oauth\") {\n emit(doc.user_id, null);\n }\n}"}}}, "meta": {"rev": "3-c4b78aa6", "id": "_design/oauth"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fone/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fone/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "44158ceb763160a8e8af92256c5f5027", "language": "javascript", "views": {"by_owner_id": {"map": "function(doc) {\n if(doc.type === \"one\") {\n emit(doc.owner_id, null);\n }\n}"}}}, "meta": {"rev": "1-0b5aae9a", "id": "_design/one"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fpgj/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fpgj/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "199e3a411f684a5c69e3a25c6a5e67d9", "language": "javascript", "views": {"by_group_id": {"map": "function(doc) {\n if(doc.type === \"pgj\") {\n emit(doc.group_id, null);\n }\n}"}, "by_playlist_id": {"map": "function(doc) {\n if(doc.type === \"pgj\") {\n emit(doc.playlist_id, null);\n }\n}"}}}, "meta": {"rev": "1-45aef866", "id": "_design/pgj"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fply/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fply/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "d0984aed4108bd5018e6096070d83e19", "language": "javascript", "views": {"by_group_id": {"map": "function(doc) {\n if(doc.type === \"ply\") {\n emit(doc.group_id, null);\n }\n}"}}}, "meta": {"rev": "1-071182a4", "id": "_design/ply"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fstrat/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fstrat/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1444389773, "signature": "a5980fa50d4f89bb693ce321e2d063f9", "language": "javascript", "views": {"by_name": {"map": "function(doc) {\n if(doc.type === \"strat\") {\n emit(doc.name, null);\n }\n}"}}}, "meta": {"rev": "1-430d0c83", "id": "_design/strat"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fsys/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fsys/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1473819281, "signature": "9c88821ef9f7a6dcbafc753bb3d0471e", "language": "javascript", "views": {"by_node": {"map": "function(doc) {\n if(doc.type === \"sys\") {\n emit(doc.edge_id, null);\n }\n}"}, "by_modules": {"map": "function(doc) {\n if(doc.type === \"sys\") {\n var i;\n for (i = 0; i < doc.modules.length; i += 1) {\n emit(doc.modules[i], null);\n }\n }\n}"}, "by_zones": {"map": "function(doc) {\n if(doc.type === \"sys\") {\n var i;\n for (i = 0; i < doc.zones.length; i++) {\n emit(doc.zones[i], null);\n }\n }\n}"}}}, "meta": {"rev": "11-2df10318", "id": "_design/sys"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Ftrig/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Ftrig/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1450308991, "signature": "5cbe2f53ec35e6cb6464ca27e729f15e", "language": "javascript", "views": {"by_system_id": {"map": "function(doc) {\n if(doc.type === \"trig\") {\n emit(doc.control_system_id, null);\n }\n}"}, "by_trigger_id": {"map": "function(doc) {\n if(doc.type === \"trig\") {\n emit(doc.trigger_id, null);\n }\n}"}}}, "meta": {"rev": "1-a5d9b8c0", "id": "_design/trig"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fugj/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fugj/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1449534183, "signature": "5570cdeb962793ed2a32da516e499bf5", "language": "javascript", "views": {"by_group_id": {"map": "function(doc) {\n if(doc.type === \"ugj\") {\n emit(doc.group_id, null);\n }\n}"}, "by_user_id": {"map": "function(doc) {\n if(doc.type === \"ugj\") {\n emit(doc.user_id, null);\n }\n}"}}}, "meta": {"rev": "1-6d59aa6b", "id": "_design/ugj"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fuser/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fuser/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1450308991, "signature": "6f1b618dca27de1d6e66147678f1c8bc", "language": "javascript", "views": {"is_sys_admin": {"map": "function(doc) {\n if(doc.type === \"user\") {\n emit(doc.sys_admin, null);\n }\n}"}}}, "meta": {"rev": "54-5d7f91d5", "id": "_design/user"}}}, {"controllers": {"compact": "/pools/default/buckets/default/ddocs/_design%2Fzone/controller/compactView", "setUpdateMinChanges": "/pools/default/buckets/default/ddocs/_design%2Fzone/controller/setUpdateMinChanges"}, "doc": {"json": {"timestamp": 1473819281, "signature": "f9b03c494d9867051e935ec6f24f3fac", "language": "javascript", "views": {"all": {"map": "function(doc, meta) {\n if(doc.type === \"zone\") {\n emit(meta.id, null);\n }\n}"}}}, "meta": {"rev": "11-8bebbd9c", "id": "_design/zone"}}}]
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
{"56": [[42449419426105, 57], [253088081217913, 0]], "54": [[162201745281900, 69], [195179543573105, 0]], "42": [[114858039659261, 38], [108257448043855, 0]], "48": [[1804497062527, 31], [21948309493873, 0]], "43": [[221402225886203, 70], [160963155286436, 0]], "60": [[268942750003774, 125], [247989376995555, 0]], "61": [[223640469719678, 59], [219457887134182, 0]], "62": [[139791041923058, 45], [84703924882030, 0]], "63": [[254849306208375, 25], [135067130969623, 0]], "49": [[179189724841062, 103], [230275367254723, 0]], "52": [[104963082399531, 24], [266235778469523, 0]], "53": [[44376446670743, 130], [3915336486596, 0]], "24": [[22740492541543, 50], [216402437546745, 0]], "25": [[81173336144657, 43], [217560333449550, 0]], "26": [[102677538467385, 64], [119816168670315, 0]], "27": [[205923291766978, 367], [203716637023979, 0]], "20": [[99035733432583, 66], [260683107156201, 0]], "21": [[127813596753381, 46], [213757540460416, 0]], "22": [[92879747213450, 66], [57579329978784, 0]], "23": [[213729760774170, 47], [7036202856455, 0]], "46": [[181201894620710, 36], [256306839259559, 0]], "47": [[270397595997813, 70], [46006603018088, 0]], "44": [[131891739479476, 196], [116956814505223, 0]], "45": [[263630506892207, 53], [243709602938783, 0]], "28": [[232247998660695, 51], [258584920542151, 0]], "29": [[90351597494001, 38], [89207708894630, 0]], "40": [[27994518248241, 60], [5974709834551, 0]], "41": [[187452997419276, 77], [108620773223935, 0]], "1": [[203965907439099, 82], [185943553555221, 0]], "0": [[22761749970989, 52], [183402860277167, 0]], "3": [[261634211184183, 43], [53751070124458, 0]], "2": [[122415381790204, 57], [50424095935982, 0]], "5": [[109910742961044, 57], [33494617450058, 0]], "4": [[42133860166790, 53], [122682660641243, 0]], "7": [[45307592693900, 51], [74868115989434, 0]], "6": [[198247629538367, 51], [56292430541970, 0]], "9": [[8626652371396, 418], [194873299335900, 0]], "8": [[237322956791274, 98], [189259812994842, 0]], "51": [[240478534025888, 25], [97057916786073, 0]], "39": [[178444930418573, 59], [259582663188927, 0]], "38": [[224580299070612, 50], [235170934487601, 0]], "59": [[166526025012530, 35], [187653510646750, 0]], "58": [[199231837558187, 50], [155022911874273, 0]], "11": [[46642237056764, 25], [106731066681389, 0]], "10": [[193506125738549, 25], [271376598838983, 0]], "13": [[200585130045249, 57], [161145614243961, 0]], "12": [[21764434456679, 32], [76233998458112, 0]], "15": [[110836611606735, 87], [231766306625151, 0]], "14": [[155905930931841, 523], [195570648869090, 0]], "17": [[182780105393980, 42], [212843328403709, 0]], "16": [[256620850789431, 213], [91963329745567, 0]], "19": [[155705547742576, 39], [241845666844441, 0]], "18": [[13935337450779, 346], [115268731524988, 0]], "31": [[84205401485134, 61], [56683335467391, 0]], "30": [[96382718082182, 165], [189231437091045, 0]], "37": [[173533360500213, 45], [77549636710959, 0]], "36": [[257479147039839, 55], [261595129139126, 0]], "35": [[38473900898526, 183], [110704553858424, 0]], "34": [[197583061668583, 92], [80092352509699, 0]], "33": [[140025289883450, 346], [14535271323203, 0]], "55": [[104030549841653, 83], [218737416399533, 0]], "32": [[53914380920527, 36], [159770310740105, 0]], "57": [[203256941096694, 46], [3184462002917, 0]], "50": [[70919300537036, 138], [202287430248329, 0]]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"pred": []}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"56": 292, "54": 545, "42": 1390, "48": 125, "43": 217, "60": 179, "61": 249, "62": 158, "63": 228, "49": 583, "52": 149, "53": 237, "24": 138, "25": 213, "26": 210, "27": 973, "20": 455, "21": 420, "22": 154, "23": 130, "46": 121, "47": 186, "44": 2102, "45": 165, "28": 139, "29": 850, "40": 616, "41": 771, "1": 368, "0": 213, "3": 376, "2": 183, "5": 2853, "4": 316, "7": 176, "6": 179, "9": 16049, "8": 222, "51": 117, "39": 168, "38": 645, "59": 142, "58": 967, "11": 214, "10": 142, "13": 200, "12": 157, "15": 183, "14": 596, "17": 131, "16": 312, "19": 423, "18": 801, "31": 161, "30": 324, "37": 117, "36": 211, "35": 366, "34": 285, "33": 954, "55": 243, "32": 188, "57": 259, "50": 216}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"56": [0, 292], "54": [0, 545], "42": [0, 1390], "48": [0, 125], "43": [0, 217], "60": [0, 179], "61": [0, 249], "62": [0, 158], "63": [0, 228], "49": [0, 583], "52": [0, 149], "53": [0, 237], "24": [0, 138], "25": [0, 213], "26": [0, 210], "27": [0, 973], "20": [0, 455], "21": [0, 420], "22": [0, 154], "23": [0, 130], "46": [0, 121], "47": [0, 186], "44": [0, 2102], "45": [0, 165], "28": [0, 139], "29": [0, 850], "40": [0, 616], "41": [0, 771], "1": [0, 368], "0": [0, 213], "3": [0, 376], "2": [0, 183], "5": [0, 2853], "4": [0, 316], "7": [0, 176], "6": [0, 179], "9": [0, 16049], "8": [0, 222], "51": [0, 117], "39": [0, 168], "38": [0, 645], "59": [0, 142], "58": [0, 967], "11": [0, 214], "10": [0, 142], "13": [0, 200], "12": [0, 157], "15": [0, 183], "14": [0, 596], "17": [0, 131], "16": [0, 312], "19": [0, 423], "18": [0, 801], "31": [0, 161], "30": [0, 324], "37": [0, 117], "36": [0, 211], "35": [0, 366], "34": [0, 285], "33": [0, 954], "55": [0, 243], "32": [0, 188], "57": [0, 259], "50": [0, 216]}
|
data/spec/view_spec.rb
ADDED
@@ -0,0 +1,195 @@
|
|
1
|
+
# frozen_string_literal: true, encoding: ASCII-8BIT
|
2
|
+
|
3
|
+
require 'libcouchbase'
|
4
|
+
|
5
|
+
|
6
|
+
describe Libcouchbase::QueryView do
|
7
|
+
before :each do
|
8
|
+
# This will load the couchbase connection on a different thread
|
9
|
+
@bucket = Libcouchbase::Bucket.new
|
10
|
+
@reactor = ::Libuv::Reactor.default
|
11
|
+
@log = []
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'perform native queries' do
|
15
|
+
it "should iterate a view" do
|
16
|
+
view = @bucket.view('zone', 'all')
|
17
|
+
expect(view.first.value[:type]).to eq('zone')
|
18
|
+
@log << view.metadata[:total_rows]
|
19
|
+
@log << view.count
|
20
|
+
|
21
|
+
expect(@log).to eq([2, 2])
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should iterate a view without getting documents" do
|
25
|
+
view = @bucket.view('zone', 'all', include_docs: false)
|
26
|
+
expect(view.first.key).to eq('zone_1-10')
|
27
|
+
expect(view.first.value).to be(nil)
|
28
|
+
@log << view.metadata[:total_rows]
|
29
|
+
@log << view.count
|
30
|
+
|
31
|
+
expect(@log).to eq([2, 2])
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should fail if a view doesn't exist" do
|
35
|
+
view = @bucket.view('zone', 'alling')
|
36
|
+
expect { view.first }.to raise_error(Libcouchbase::Error::HttpError)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should cancel the request on error" do
|
40
|
+
view = @bucket.view('zone', 'all')
|
41
|
+
begin
|
42
|
+
view.each do |item|
|
43
|
+
@log << :callback
|
44
|
+
raise 'runtime error'
|
45
|
+
end
|
46
|
+
@log << :wtf
|
47
|
+
rescue => e
|
48
|
+
@log << view.metadata[:total_rows]
|
49
|
+
end
|
50
|
+
|
51
|
+
expect(@log).to eq([:callback, 2])
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should create a design document" do
|
55
|
+
doc = {
|
56
|
+
_id: "_design/blog",
|
57
|
+
language: "javascript",
|
58
|
+
views: {
|
59
|
+
recent_posts: {
|
60
|
+
map: "function(doc){if(doc.date && doc.title){emit(doc.date, doc.title);}}"
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
@log << @bucket.save_design_doc(doc).status
|
65
|
+
expect(@log).to eq([201])
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should delete a design document" do
|
69
|
+
@log << @bucket.delete_design_doc('_design/blog').status
|
70
|
+
expect(@log).to eq([200])
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe 'perform queries in libuv reactor' do
|
75
|
+
it "should iterate a view" do
|
76
|
+
@reactor.run { |reactor|
|
77
|
+
begin
|
78
|
+
view = @bucket.view('zone', 'all')
|
79
|
+
expect(view.first.value[:type]).to eq('zone')
|
80
|
+
@log << view.metadata[:total_rows]
|
81
|
+
@log << view.count
|
82
|
+
ensure
|
83
|
+
@bucket = nil
|
84
|
+
end
|
85
|
+
}
|
86
|
+
expect(@log).to eq([2, 2])
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should iterate a view without getting documents" do
|
90
|
+
@reactor.run { |reactor|
|
91
|
+
begin
|
92
|
+
view = @bucket.view('zone', 'all', include_docs: false)
|
93
|
+
expect(view.first.key).to eq('zone_1-10')
|
94
|
+
expect(view.first.value).to be(nil)
|
95
|
+
@log << view.metadata[:total_rows]
|
96
|
+
@log << view.count
|
97
|
+
ensure
|
98
|
+
@bucket = nil
|
99
|
+
end
|
100
|
+
}
|
101
|
+
expect(@log).to eq([2, 2])
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should fail if a view doesn't exist" do
|
105
|
+
@reactor.run { |reactor|
|
106
|
+
view = @bucket.view('zone', 'alling')
|
107
|
+
expect { view.first }.to raise_error(Libcouchbase::Error::HttpError)
|
108
|
+
}
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should cancel the request on error" do
|
112
|
+
@reactor.run { |reactor|
|
113
|
+
view = @bucket.view('zone', 'all')
|
114
|
+
begin
|
115
|
+
view.each do |item|
|
116
|
+
@log << :callback
|
117
|
+
raise 'runtime error'
|
118
|
+
end
|
119
|
+
rescue => e
|
120
|
+
@log << view.metadata[:total_rows]
|
121
|
+
end
|
122
|
+
}
|
123
|
+
|
124
|
+
expect(@log).to eq([:callback, 2])
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe 'perform queries in event machine' do
|
129
|
+
require 'em-synchrony'
|
130
|
+
|
131
|
+
it "should iterate a view" do
|
132
|
+
EM.synchrony {
|
133
|
+
begin
|
134
|
+
view = @bucket.view('zone', 'all')
|
135
|
+
expect(view.first.value[:type]).to eq('zone')
|
136
|
+
@log << view.metadata[:total_rows]
|
137
|
+
@log << view.count
|
138
|
+
ensure
|
139
|
+
@bucket = nil
|
140
|
+
end
|
141
|
+
|
142
|
+
EM.stop
|
143
|
+
}
|
144
|
+
expect(@log).to eq([2, 2])
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should iterate a view without getting documents" do
|
148
|
+
EM.synchrony {
|
149
|
+
begin
|
150
|
+
view = @bucket.view('zone', 'all', include_docs: false)
|
151
|
+
expect(view.first.key).to eq('zone_1-10')
|
152
|
+
expect(view.first.value).to be(nil)
|
153
|
+
@log << view.metadata[:total_rows]
|
154
|
+
@log << view.count
|
155
|
+
ensure
|
156
|
+
@bucket = nil
|
157
|
+
end
|
158
|
+
|
159
|
+
EM.stop
|
160
|
+
}
|
161
|
+
expect(@log).to eq([2, 2])
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should fail if a view doesn't exist" do
|
165
|
+
EM.synchrony {
|
166
|
+
begin
|
167
|
+
view = @bucket.view('zone', 'alling')
|
168
|
+
expect { view.first }.to raise_error(Libcouchbase::Error::HttpError)
|
169
|
+
@log << :made_it_here
|
170
|
+
ensure
|
171
|
+
EM.stop
|
172
|
+
end
|
173
|
+
}
|
174
|
+
expect(@log).to eq([:made_it_here])
|
175
|
+
end
|
176
|
+
|
177
|
+
it "should cancel the request on error" do
|
178
|
+
EM.synchrony {
|
179
|
+
view = @bucket.view('zone', 'all')
|
180
|
+
begin
|
181
|
+
view.each do |item|
|
182
|
+
@log << :callback
|
183
|
+
raise 'runtime error'
|
184
|
+
end
|
185
|
+
rescue => e
|
186
|
+
@log << view.metadata[:total_rows]
|
187
|
+
end
|
188
|
+
|
189
|
+
EM.stop
|
190
|
+
}
|
191
|
+
|
192
|
+
expect(@log).to eq([:callback, 2])
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|