questdb 1.2.0__tar.gz → 2.0.1__tar.gz
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.
- questdb-2.0.1/CHANGELOG.rst +325 -0
- {questdb-1.2.0/src/questdb.egg-info → questdb-2.0.1}/PKG-INFO +58 -32
- questdb-2.0.1/README.rst +106 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/.bumpversion.cfg +5 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/CMakeLists.txt +24 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/README.md +10 -10
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cbindgen.toml +1 -1
- questdb-2.0.1/c-questdb-client/ci/compile.yaml +14 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/ci/run_all_tests.py +2 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/ci/run_tests_pipeline.yaml +26 -38
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/build_env.h +1 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/mock_server.cpp +1 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/mock_server.hpp +1 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/test_line_sender.cpp +171 -28
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/C.md +8 -14
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/CONSIDERATIONS.md +15 -5
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/CPP.md +6 -8
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/SECURITY.md +2 -2
- questdb-2.0.1/c-questdb-client/examples/concat.c +19 -0
- questdb-2.0.1/c-questdb-client/examples/concat.h +11 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example.c +14 -15
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example_auth.c +19 -31
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example_auth_tls.c +20 -38
- questdb-2.0.1/c-questdb-client/examples/line_sender_c_example_from_conf.c +83 -0
- questdb-2.0.1/c-questdb-client/examples/line_sender_c_example_from_env.c +82 -0
- questdb-2.0.1/c-questdb-client/examples/line_sender_c_example_http.c +129 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example_tls_ca.c +21 -40
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example.cpp +3 -7
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example_auth.cpp +7 -16
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example_auth_tls.cpp +8 -24
- questdb-2.0.1/c-questdb-client/examples/line_sender_cpp_example_from_conf.cpp +54 -0
- questdb-2.0.1/c-questdb-client/examples/line_sender_cpp_example_from_env.cpp +53 -0
- questdb-2.0.1/c-questdb-client/examples/line_sender_cpp_example_http.cpp +88 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example_tls_ca.cpp +9 -23
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples.manifest.yaml +21 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/include/questdb/ingress/line_sender.h +262 -61
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/include/questdb/ingress/line_sender.hpp +350 -72
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/Cargo.toml +30 -14
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/README.md +35 -4
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/examples/auth.rs +12 -14
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/examples/auth_tls.rs +12 -16
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/examples/basic.rs +3 -7
- questdb-2.0.1/c-questdb-client/questdb-rs/examples/from_conf.rs +17 -0
- questdb-2.0.1/c-questdb-client/questdb-rs/examples/from_env.rs +18 -0
- questdb-2.0.1/c-questdb-client/questdb-rs/examples/http.rs +17 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/error.rs +9 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/gai.rs +1 -1
- questdb-2.0.1/c-questdb-client/questdb-rs/src/ingress/conf.rs +75 -0
- questdb-2.0.1/c-questdb-client/questdb-rs/src/ingress/http.rs +235 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/ingress/mod.rs +1302 -432
- questdb-2.0.1/c-questdb-client/questdb-rs/src/ingress/tests.rs +461 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/lib.rs +1 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/f64_serializer.rs +1 -1
- questdb-2.0.1/c-questdb-client/questdb-rs/src/tests/http.rs +709 -0
- questdb-2.0.1/c-questdb-client/questdb-rs/src/tests/mock.rs +563 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/mod.rs +5 -1
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/sender.rs +195 -26
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs-ffi/Cargo.lock +374 -196
- questdb-2.0.1/c-questdb-client/questdb-rs-ffi/Cargo.toml +29 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs-ffi/src/lib.rs +497 -147
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/fixture.py +86 -16
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/questdb_line_sender.py +183 -67
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/test.py +258 -77
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/tls_proxy/Cargo.lock +167 -153
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/tls_proxy/Cargo.toml +5 -3
- questdb-1.2.0/c-questdb-client/system_test/tls_proxy/src/main.rs → questdb-2.0.1/c-questdb-client/system_test/tls_proxy/src/lib.rs +89 -55
- questdb-2.0.1/c-questdb-client/system_test/tls_proxy/src/main.rs +43 -0
- {questdb-1.2.0 → questdb-2.0.1}/proj.py +14 -0
- {questdb-1.2.0 → questdb-2.0.1}/pyproject.toml +2 -1
- {questdb-1.2.0 → questdb-2.0.1}/pystr-to-utf8/include/pystr_to_utf8.h +1 -1
- {questdb-1.2.0 → questdb-2.0.1}/setup.py +2 -2
- questdb-2.0.1/src/questdb/__init__.py +1 -0
- questdb-2.0.1/src/questdb/conf_str.h +55 -0
- questdb-2.0.1/src/questdb/conf_str.pxd +60 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/dataframe.html +4109 -3592
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress.c +25031 -9479
- questdb-2.0.1/src/questdb/ingress.html +14331 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress.pyx +1039 -275
- questdb-2.0.1/src/questdb/line_sender.pxd +423 -0
- {questdb-1.2.0 → questdb-2.0.1/src/questdb.egg-info}/PKG-INFO +58 -32
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/SOURCES.txt +19 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/requires.txt +5 -0
- questdb-2.0.1/test/test.py +1119 -0
- {questdb-1.2.0 → questdb-2.0.1}/test/test_dataframe.py +120 -103
- {questdb-1.2.0 → questdb-2.0.1}/test/test_dataframe_fuzz.py +1 -1
- {questdb-1.2.0 → questdb-2.0.1}/test/test_dataframe_leaks.py +1 -1
- questdb-1.2.0/CHANGELOG.rst +0 -137
- questdb-1.2.0/README.rst +0 -87
- questdb-1.2.0/c-questdb-client/questdb-rs/src/tests/mock.rs +0 -243
- questdb-1.2.0/c-questdb-client/questdb-rs-ffi/Cargo.toml +0 -22
- questdb-1.2.0/src/questdb/__init__.py +0 -1
- questdb-1.2.0/src/questdb/ingress.html +0 -8332
- questdb-1.2.0/src/questdb/line_sender.pxd +0 -211
- questdb-1.2.0/test/test.py +0 -558
- {questdb-1.2.0 → questdb-2.0.1}/DEV_NOTES.rst +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/LICENSE.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/MANIFEST.in +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/TODO.rst +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/.git +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/.gitignore +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/CODEOWNERS +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/LICENSE +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/api_seq/build_svg.sh +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/api_seq/seq.dot +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/api_seq/seq.svg +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/FUNDING.yml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/actions/setup_test/action.yaml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/scripts/determine_compiler.sh +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/workflows/gh-pages.yaml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/workflows/test.yaml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/workflows/test_legacy.yaml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.gitignore +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/LICENSE +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/README.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/RELEASES.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/Corrosion.cmake +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/CorrosionConfig.cmake.in +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/CorrosionGenerator.cmake +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/FindRust.cmake +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/.gitignore +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/book.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/SUMMARY.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/advanced.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/common_issues.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/ffi_bindings.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/introduction.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/quick_start.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/setup_corrosion.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/usage.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Compat.Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Compat.Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/src/main.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/src/subcommands/gen_cmake/target.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/src/subcommands/gen_cmake.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/ConfigureAndBuild.cmake +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/README.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/cbindgen.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/lib.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/lib2.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/path with space/lib3.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/build.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/rust_dependency/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/rust_dependency/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/src/bin/rust-exe.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj1/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj1/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj1/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj2/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj2/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj2/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/cpplib.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/include/cpplib.h +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/src/main.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/src/foo/mod.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/.cargo/config.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/build.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/external_corrosion_generator/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/external_corrosion_generator/ExternalCorrosionGenerator/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/external_corrosion_generator/ExternalCorrosionGenerator/Test.cmake +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/find_rust/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/find_rust/find_rust/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/find_rust/rustup_proxy/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/.gitignore +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/src/main.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/build.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/src/lib.c +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/src/main.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/lib.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/bin/bin1.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/bin/bin2.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/bin/bin3.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/TestFileExists.cmake +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/consumer.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/src/bin/rust_bin1.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/src/bin/rust_bin2.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/parse_target_triple/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/parse_target_triple/parse_target_triple/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/parse_target_triple/parse_target_triple_should_fail/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/build.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/.cargo/config.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/src/main.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/some_dependency/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/some_dependency/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/CMakeLists.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/Cargo.lock +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/main.cpp +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member1/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member1/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member2/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member2/src/lib.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member3/Cargo.toml +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member3/src/main.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/doctest.h +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/BUILD.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/DEPENDENCY.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/DEV_NOTES.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/build.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/ingress/timestamp.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/interop/ilp-client-interop-test.json +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs-ffi/build.rs +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/README.md +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.crt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.csr +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.key +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.pem +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.csr.cnf +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.key +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.pem +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.srl +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/v3.ext +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/install_rust.py +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/proj +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/proj.bat +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/proj.ps1 +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/setup.cfg +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/arrow_c_data_interface.h +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/arrow_c_data_interface.pxd +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/extra_cpython.pxd +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress_helper.inc +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress_helper.pxd +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb/pystr_to_utf8.pxd +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/dependency_links.txt +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/not-zip-safe +0 -0
- {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
.. _changelog:
|
|
2
|
+
|
|
3
|
+
Changelog
|
|
4
|
+
=========
|
|
5
|
+
|
|
6
|
+
2.0.1 (2024-03-22)
|
|
7
|
+
------------------
|
|
8
|
+
|
|
9
|
+
Patch release with bug fixes, no API changes and some documentation tweaks.
|
|
10
|
+
|
|
11
|
+
Bug fixes
|
|
12
|
+
~~~~~~~~~
|
|
13
|
+
* Fixed a bug where an internal "last flushed" timestamp used
|
|
14
|
+
by ``auto_flush_interval`` wasn't updated correctly causing the auto-flush
|
|
15
|
+
logic to trigger after each row.
|
|
16
|
+
|
|
17
|
+
* Removed two unnecessary debugging ``print()`` statements that were
|
|
18
|
+
accidentally left in the code in ``Sender.from_conf()`` and
|
|
19
|
+
``Sender.from_env()``.
|
|
20
|
+
|
|
21
|
+
Documentation
|
|
22
|
+
~~~~~~~~~~~~~
|
|
23
|
+
* Introduced the ability to optionally install ``pandas`` and ``pyarrow`` via
|
|
24
|
+
``python3 -m pip install -U questdb[dataframe]`` and updated the documentation
|
|
25
|
+
to reflect this.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
2.0.0 (2024-03-19)
|
|
29
|
+
------------------
|
|
30
|
+
|
|
31
|
+
This is a major release with new features and breaking changes.
|
|
32
|
+
|
|
33
|
+
Features
|
|
34
|
+
~~~~~~~~
|
|
35
|
+
|
|
36
|
+
* Support for ILP over HTTP. The sender can now send data to QuestDB via HTTP
|
|
37
|
+
instead of TCP. This provides error feedback from the server and new features.
|
|
38
|
+
|
|
39
|
+
.. code-block:: python
|
|
40
|
+
|
|
41
|
+
conf = 'http::addr=localhost:9000;'
|
|
42
|
+
with Sender.from_conf(conf) as sender:
|
|
43
|
+
sender.row(...)
|
|
44
|
+
sender.dataframe(...)
|
|
45
|
+
|
|
46
|
+
# Will raise `IngressError` if there is an error from the server.
|
|
47
|
+
sender.flush()
|
|
48
|
+
|
|
49
|
+
* New configuration string construction. The sender can now be also constructed
|
|
50
|
+
from a :ref:`configuration string <sender_conf>` in addition to the
|
|
51
|
+
constructor arguments.
|
|
52
|
+
This allows for more flexible configuration and is the recommended way to
|
|
53
|
+
construct a sender.
|
|
54
|
+
The same string can also be loaded from the ``QDB_CLIENT_CONF`` environment
|
|
55
|
+
variable.
|
|
56
|
+
The constructor arguments have been updated and some options have changed.
|
|
57
|
+
|
|
58
|
+
* Explicit transaction support over HTTP. A set of rows for a single table can
|
|
59
|
+
now be committed via the sender transactionally. You can do this using a
|
|
60
|
+
``with sender.transaction('table_name') as txn:`` block.
|
|
61
|
+
|
|
62
|
+
.. code-block:: python
|
|
63
|
+
|
|
64
|
+
conf = 'http::addr=localhost:9000;'
|
|
65
|
+
with Sender.from_conf(conf) as sender:
|
|
66
|
+
with sender.transaction('test_table') as txn:
|
|
67
|
+
# Same arguments as the sender methods, minus the table name.
|
|
68
|
+
txn.row(...)
|
|
69
|
+
txn.dataframe(...)
|
|
70
|
+
|
|
71
|
+
* A number of documentation improvements.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Breaking Changes
|
|
75
|
+
~~~~~~~~~~~~~~~~
|
|
76
|
+
|
|
77
|
+
* New ``protocol`` parameter in the
|
|
78
|
+
:ref:`Sender <sender_programmatic_construction>` constructor.
|
|
79
|
+
|
|
80
|
+
In previous version the protocol was always TCP.
|
|
81
|
+
In this new version you must specify the protocol explicitly.
|
|
82
|
+
|
|
83
|
+
* New auto-flush defaults. In previous versions
|
|
84
|
+
:ref:`auto-flushing <sender_auto_flush>` was enabled by
|
|
85
|
+
default and triggered by a maximum buffer size. In this new version
|
|
86
|
+
auto-flushing is enabled by row count (600 rows by default) and interval
|
|
87
|
+
(1 second by default), while auto-flushing by buffer size is disabled by
|
|
88
|
+
default.
|
|
89
|
+
|
|
90
|
+
The old behaviour can be still be achieved by tweaking the auto-flush
|
|
91
|
+
settings.
|
|
92
|
+
|
|
93
|
+
.. list-table::
|
|
94
|
+
:header-rows: 1
|
|
95
|
+
|
|
96
|
+
* - Setting
|
|
97
|
+
- Old default
|
|
98
|
+
- New default
|
|
99
|
+
* - **auto_flush_rows**
|
|
100
|
+
- off
|
|
101
|
+
- 600
|
|
102
|
+
* - **auto_flush_interval**
|
|
103
|
+
- off
|
|
104
|
+
- 1000
|
|
105
|
+
* - **auto_flush_bytes**
|
|
106
|
+
- 64512
|
|
107
|
+
- off
|
|
108
|
+
|
|
109
|
+
* The ``at=..`` argument of :func:`row <questdb.ingress.Sender.row>` and
|
|
110
|
+
:func:`dataframe <questdb.ingress.Sender.dataframe>` methods is now mandatory.
|
|
111
|
+
Omitting it would previously use a server-generated timestamp for the row.
|
|
112
|
+
Now if you want a server generated timestamp, you can pass the :ref:`ServerTimestamp <sender_server_timestamp>`
|
|
113
|
+
singleton to this parameter. _The ``ServerTimestamp`` behaviour is considered legacy._
|
|
114
|
+
|
|
115
|
+
* The ``auth=(u, t, x, y)`` argument of the ``Sender`` constructor has now been
|
|
116
|
+
broken up into multiple arguments: ``username``, ``token``, ``token_x``, ``token_y``.
|
|
117
|
+
|
|
118
|
+
* The ``tls`` argument of the ``Sender`` constructor has been removed and
|
|
119
|
+
replaced with the ``protocol`` argument. Use ``Protocol.Tcps``
|
|
120
|
+
(or ``Protocol.Https``) to enable TLS.
|
|
121
|
+
The ``tls`` values have been moved to new ``tls_ca`` and ``tls_roots``
|
|
122
|
+
:ref:`configuration settings <sender_conf_tls>`.
|
|
123
|
+
|
|
124
|
+
* The ``net_interface`` argument of the ``Sender`` constructor has been renamed
|
|
125
|
+
to ``bind_interface`` and is now only available for TCP connections.
|
|
126
|
+
|
|
127
|
+
The following example shows how to migrate to the new API.
|
|
128
|
+
|
|
129
|
+
**Old questdb 1.x code**
|
|
130
|
+
|
|
131
|
+
.. code-block:: python
|
|
132
|
+
|
|
133
|
+
from questdb.ingress import Sender
|
|
134
|
+
|
|
135
|
+
auth = (
|
|
136
|
+
'testUser1',
|
|
137
|
+
'5UjEMuA0Pj5pjK8a-fa24dyIf-Es5mYny3oE_Wmus48',
|
|
138
|
+
'token_x=fLKYEaoEb9lrn3nkwLDA-M_xnuFOdSt9y0Z7_vWSHLU',
|
|
139
|
+
'token_y=Dt5tbS1dEDMSYfym3fgMv0B99szno-dFc1rYF9t0aac')
|
|
140
|
+
with Sender('localhost', 9009, auth=auth, tls=True) as sender:
|
|
141
|
+
sender.row(
|
|
142
|
+
'test_table',
|
|
143
|
+
symbols={'sym': 'AAPL'},
|
|
144
|
+
columns={'price': 100.0}) # `at=None` was defaulted for server time
|
|
145
|
+
|
|
146
|
+
**Equivalent questdb 2.x code**
|
|
147
|
+
|
|
148
|
+
.. code-block:: python
|
|
149
|
+
|
|
150
|
+
from questdb.ingress import Sender, Protocol, ServerTimestamp
|
|
151
|
+
|
|
152
|
+
sender = Sender(
|
|
153
|
+
Protocol.Tcps,
|
|
154
|
+
'localhost',
|
|
155
|
+
9009,
|
|
156
|
+
username='testUser1',
|
|
157
|
+
token='5UjEMuA0Pj5pjK8a-fa24dyIf-Es5mYny3oE_Wmus48',
|
|
158
|
+
token_x='token_x=fLKYEaoEb9lrn3nkwLDA-M_xnuFOdSt9y0Z7_vWSHLU',
|
|
159
|
+
token_y='token_y=Dt5tbS1dEDMSYfym3fgMv0B99szno-dFc1rYF9t0aac',
|
|
160
|
+
auto_flush_rows='off',
|
|
161
|
+
auto_flush_interval='off',
|
|
162
|
+
auto_flush_bytes=64512)
|
|
163
|
+
with sender:
|
|
164
|
+
sender.row(
|
|
165
|
+
'test_table',
|
|
166
|
+
symbols={'sym': 'AAPL'},
|
|
167
|
+
columns={'price': 100.0},
|
|
168
|
+
at=ServerTimestamp)
|
|
169
|
+
|
|
170
|
+
**Equivalent questdb 2.x code with configuration string**
|
|
171
|
+
|
|
172
|
+
.. code-block:: python
|
|
173
|
+
|
|
174
|
+
from questdb.ingress import Sender
|
|
175
|
+
|
|
176
|
+
conf = (
|
|
177
|
+
'tcp::addr=localhost:9009;' +
|
|
178
|
+
'username=testUser1;' +
|
|
179
|
+
'token=5UjEMuA0Pj5pjK8a-fa24dyIf-Es5mYny3oE_Wmus48;' +
|
|
180
|
+
'token_x=token_x=fLKYEaoEb9lrn3nkwLDA-M_xnuFOdSt9y0Z7_vWSHLU;' +
|
|
181
|
+
'token_y=token_y=Dt5tbS1dEDMSYfym3fgMv0B99szno-dFc1rYF9t0aac;' +
|
|
182
|
+
'auto_flush_rows=off;' +
|
|
183
|
+
'auto_flush_interval=off;' +
|
|
184
|
+
'auto_flush_bytes=64512;')
|
|
185
|
+
with Sender.from_conf(conf) as sender:
|
|
186
|
+
sender.row(
|
|
187
|
+
'test_table',
|
|
188
|
+
symbols={'sym': 'AAPL'},
|
|
189
|
+
columns={'price': 100.0},
|
|
190
|
+
at=ServerTimestamp)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
1.2.0 (2023-11-23)
|
|
194
|
+
------------------
|
|
195
|
+
|
|
196
|
+
This is a minor release bringing in minor new features and a few bug fixes,
|
|
197
|
+
without any breaking changes.
|
|
198
|
+
|
|
199
|
+
Most changes are inherited by internally upgrading to version ``3.1.0`` of
|
|
200
|
+
the ``c-questdb-client``.
|
|
201
|
+
|
|
202
|
+
Features
|
|
203
|
+
~~~~~~~~
|
|
204
|
+
|
|
205
|
+
* ``Sender(..., tls=True)`` now also uses the OS-provided certificate store.
|
|
206
|
+
The `tls` argument can now also be set to ``tls='os_roots'`` (to *only* use
|
|
207
|
+
the OS-provided certs) or ``tls='webpki_roots'`` (to *only* use the certs
|
|
208
|
+
provided by the ``webpki-roots``, i.e. the old behaviour prior to this
|
|
209
|
+
release). The new default behaviour for ``tls=True`` is equivalent to setting
|
|
210
|
+
``tls='webpki_and_os_roots'``.
|
|
211
|
+
|
|
212
|
+
* Upgraded dependencies to newer library versions. This also includes the latest
|
|
213
|
+
`webpki-roots <https://github.com/rustls/webpki-roots>`_ crate providing
|
|
214
|
+
updated TLS CA certificate roots.
|
|
215
|
+
|
|
216
|
+
* Various example code and documentation improvements.
|
|
217
|
+
|
|
218
|
+
Bug fixes
|
|
219
|
+
~~~~~~~~~
|
|
220
|
+
|
|
221
|
+
* Fixed a bug where timestamp columns could not accept values before Jan 1st
|
|
222
|
+
1970 UTC.
|
|
223
|
+
|
|
224
|
+
* TCP connections now enable ``SO_KEEPALIVE``: This should ensure that
|
|
225
|
+
connections don't drop after a period of inactivity.
|
|
226
|
+
|
|
227
|
+
1.1.0 (2023-01-04)
|
|
228
|
+
------------------
|
|
229
|
+
|
|
230
|
+
Features
|
|
231
|
+
~~~~~~~~
|
|
232
|
+
|
|
233
|
+
* High-performance ingestion of `Pandas <https://pandas.pydata.org/>`_
|
|
234
|
+
dataframes into QuestDB via ILP.
|
|
235
|
+
We now support most Pandas column types. The logic is implemented in native
|
|
236
|
+
code and is orders of magnitude faster than iterating the dataframe
|
|
237
|
+
in Python and calling the ``Buffer.row()`` or ``Sender.row()`` methods: The
|
|
238
|
+
``Buffer`` can be written from Pandas at hundreds of MiB/s per CPU core.
|
|
239
|
+
The new ``dataframe()`` method continues working with the ``auto_flush``
|
|
240
|
+
feature.
|
|
241
|
+
See API documentation and examples for the new ``dataframe()`` method
|
|
242
|
+
available on both the ``Sender`` and ``Buffer`` classes.
|
|
243
|
+
|
|
244
|
+
* New ``TimestampNanos.now()`` and ``TimestampMicros.now()`` methods.
|
|
245
|
+
*These are the new recommended way of getting the current timestamp.*
|
|
246
|
+
|
|
247
|
+
* The Python GIL is now released during calls to ``Sender.flush()`` and when
|
|
248
|
+
``auto_flush`` is triggered. This should improve throughput when using the
|
|
249
|
+
``Sender`` from multiple threads.
|
|
250
|
+
|
|
251
|
+
Errata
|
|
252
|
+
~~~~~~
|
|
253
|
+
|
|
254
|
+
* In previous releases the documentation for the ``from_datetime()`` methods of
|
|
255
|
+
the ``TimestampNanos`` and ``TimestampMicros`` types recommended calling
|
|
256
|
+
``datetime.datetime.utcnow()`` to get the current timestamp. This is incorrect
|
|
257
|
+
as it will (confusinly) return object with the local timezone instead of UTC.
|
|
258
|
+
This documentation has been corrected and now recommends calling
|
|
259
|
+
``datetime.datetime.now(tz=datetime.timezone.utc)`` or (more efficiently) the
|
|
260
|
+
new ``TimestampNanos.now()`` and ``TimestampMicros.now()`` methods.
|
|
261
|
+
|
|
262
|
+
1.0.2 (2022-10-31)
|
|
263
|
+
------------------
|
|
264
|
+
|
|
265
|
+
Features
|
|
266
|
+
~~~~~~~~
|
|
267
|
+
|
|
268
|
+
* Support for Python 3.11.
|
|
269
|
+
* Updated to version 2.1.1 of the ``c-questdb-client`` library:
|
|
270
|
+
|
|
271
|
+
* Setting ``SO_REUSEADDR`` on outbound socket. This is helpful to users with large number of connections who previously ran out of outbound network ports.
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
1.0.1 (2022-08-16)
|
|
275
|
+
------------------
|
|
276
|
+
|
|
277
|
+
Features
|
|
278
|
+
~~~~~~~~
|
|
279
|
+
|
|
280
|
+
* As a matter of convenience, the ``Buffer.row`` method can now take ``None`` column
|
|
281
|
+
values. This has the same semantics as skipping the column altogether.
|
|
282
|
+
Closes `#3 <https://github.com/questdb/py-questdb-client/issues/3>`_.
|
|
283
|
+
|
|
284
|
+
Bug fixes
|
|
285
|
+
~~~~~~~~~
|
|
286
|
+
|
|
287
|
+
* Fixed a major bug where Python ``int`` and ``float`` types were handled with
|
|
288
|
+
32-bit instead of 64-bit precision. This caused certain ``int`` values to be
|
|
289
|
+
rejected and other ``float`` values to be rounded incorrectly.
|
|
290
|
+
Closes `#13 <https://github.com/questdb/py-questdb-client/issues/13>`_.
|
|
291
|
+
* Fixed a minor bug where an error auto-flush caused a second clean-up error.
|
|
292
|
+
Closes `#4 <https://github.com/questdb/py-questdb-client/issues/4>`_.
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
1.0.0 (2022-07-15)
|
|
296
|
+
------------------
|
|
297
|
+
|
|
298
|
+
Features
|
|
299
|
+
~~~~~~~~
|
|
300
|
+
|
|
301
|
+
* First stable release.
|
|
302
|
+
* Insert data into QuestDB via ILP.
|
|
303
|
+
* Sender and Buffer APIs.
|
|
304
|
+
* Authentication and TLS support.
|
|
305
|
+
* Auto-flushing of buffers.
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
0.0.3 (2022-07-14)
|
|
309
|
+
------------------
|
|
310
|
+
|
|
311
|
+
Features
|
|
312
|
+
~~~~~~~~
|
|
313
|
+
|
|
314
|
+
* Initial set of features to connect to the database.
|
|
315
|
+
* ``Buffer`` and ``Sender`` classes.
|
|
316
|
+
* First release where ``pip install questdb`` should work.
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
0.0.1 (2022-07-08)
|
|
320
|
+
------------------
|
|
321
|
+
|
|
322
|
+
Features
|
|
323
|
+
~~~~~~~~
|
|
324
|
+
|
|
325
|
+
* First release on PyPI.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: questdb
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: QuestDB client library for Python
|
|
5
5
|
Author-email: Adam Cimarosti <adam@questdb.io>
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -25,48 +25,46 @@ Classifier: Topic :: Database :: Front-Ends
|
|
|
25
25
|
Classifier: Topic :: Scientific/Engineering
|
|
26
26
|
Requires-Python: >=3.8
|
|
27
27
|
Description-Content-Type: text/x-rst
|
|
28
|
+
License-File: LICENSE.txt
|
|
28
29
|
Provides-Extra: publish
|
|
30
|
+
Requires-Dist: twine; extra == "publish"
|
|
31
|
+
Requires-Dist: wheel; extra == "publish"
|
|
29
32
|
Provides-Extra: ci
|
|
30
|
-
|
|
33
|
+
Requires-Dist: cibuildwheel; extra == "ci"
|
|
34
|
+
Provides-Extra: dataframe
|
|
35
|
+
Requires-Dist: pandas; extra == "dataframe"
|
|
36
|
+
Requires-Dist: pyarrow; extra == "dataframe"
|
|
37
|
+
Requires-Dist: numpy; extra == "dataframe"
|
|
31
38
|
|
|
32
39
|
=================================
|
|
33
40
|
QuestDB Client Library for Python
|
|
34
41
|
=================================
|
|
35
42
|
|
|
36
|
-
This
|
|
43
|
+
This is the official Python client library for `QuestDB <https://questdb.io>`_.
|
|
37
44
|
|
|
38
45
|
This client library implements QuestDB's variant of the
|
|
39
46
|
`InfluxDB Line Protocol <https://questdb.io/docs/reference/api/ilp/overview/>`_
|
|
40
|
-
(ILP) over TCP.
|
|
47
|
+
(ILP) over HTTP and TCP.
|
|
41
48
|
|
|
42
49
|
ILP provides the fastest way to insert data into QuestDB.
|
|
43
50
|
|
|
44
51
|
This implementation supports `authentication
|
|
45
|
-
<https://questdb.io/
|
|
46
|
-
encryption with
|
|
52
|
+
<https://py-questdb-client.readthedocs.io/en/latest/conf.html#authentication>`_
|
|
53
|
+
and full-connection encryption with
|
|
54
|
+
`TLS <https://py-questdb-client.readthedocs.io/en/latest/conf.html#tls>`_.
|
|
47
55
|
|
|
48
56
|
Quickstart
|
|
49
57
|
==========
|
|
50
58
|
|
|
51
|
-
The latest version of the library is
|
|
59
|
+
The latest version of the library is 2.0.1 (`changelog <https://py-questdb-client.readthedocs.io/en/latest/changelog.html>`_).
|
|
52
60
|
|
|
53
61
|
::
|
|
54
62
|
|
|
55
|
-
python3 -m pip install questdb
|
|
56
|
-
|
|
57
|
-
.. code-block:: python
|
|
63
|
+
python3 -m pip install -U questdb[dataframe]
|
|
58
64
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
with Sender('localhost', 9009) as sender:
|
|
62
|
-
sender.row(
|
|
63
|
-
'sensors',
|
|
64
|
-
symbols={'id': 'toronto1'},
|
|
65
|
-
columns={'temperature': 20.0, 'humidity': 0.5},
|
|
66
|
-
at=TimestampNanos.now())
|
|
67
|
-
sender.flush()
|
|
65
|
+
Please start by `setting up QuestDB <https://questdb.io/docs/quick-start/>`_ . Once set up, you can use this library to insert data.
|
|
68
66
|
|
|
69
|
-
|
|
67
|
+
The most common way to insert data is from a Pandas dataframe.
|
|
70
68
|
|
|
71
69
|
.. code-block:: python
|
|
72
70
|
|
|
@@ -79,33 +77,61 @@ You can also send Pandas dataframes:
|
|
|
79
77
|
'humidity': [0.5, 0.6],
|
|
80
78
|
'timestamp': pd.to_datetime(['2021-01-01', '2021-01-02'])})
|
|
81
79
|
|
|
82
|
-
|
|
80
|
+
conf = f'http::addr=localhost:9000;'
|
|
81
|
+
with Sender.from_conf(conf) as sender:
|
|
83
82
|
sender.dataframe(df, table_name='sensors', at='timestamp')
|
|
84
83
|
|
|
84
|
+
You can also send individual rows. This only requires a more minimal installation::
|
|
85
|
+
|
|
86
|
+
python3 -m pip install -U questdb
|
|
87
|
+
|
|
88
|
+
.. code-block:: python
|
|
89
|
+
|
|
90
|
+
from questdb.ingress import Sender, TimestampNanos
|
|
91
|
+
|
|
92
|
+
conf = f'http::addr=localhost:9000;'
|
|
93
|
+
with Sender.from_conf(conf) as sender:
|
|
94
|
+
sender.row(
|
|
95
|
+
'sensors',
|
|
96
|
+
symbols={'id': 'toronto1'},
|
|
97
|
+
columns={'temperature': 20.0, 'humidity': 0.5},
|
|
98
|
+
at=TimestampNanos.now())
|
|
99
|
+
sender.flush()
|
|
85
100
|
|
|
86
|
-
Docs
|
|
87
|
-
====
|
|
88
101
|
|
|
89
|
-
https://py-questdb-client.readthedocs.io/
|
|
102
|
+
To connect via the `older TCP protocol <https://py-questdb-client.readthedocs.io/en/latest/sender.html#ilp-tcp-or-ilp-http>`_, set the
|
|
103
|
+
`configuration string <https://py-questdb-client.readthedocs.io/en/latest/conf.html>`_ to:
|
|
90
104
|
|
|
105
|
+
.. code-block:: python
|
|
91
106
|
|
|
92
|
-
|
|
93
|
-
|
|
107
|
+
conf = f'tcp::addr=localhost:9009;'
|
|
108
|
+
with Sender.from_conf(conf) as sender:
|
|
109
|
+
...
|
|
94
110
|
|
|
95
|
-
https://github.com/questdb/py-questdb-client
|
|
96
111
|
|
|
112
|
+
You can continue by reading the
|
|
113
|
+
`Sending Data Over ILP <https://py-questdb-client.readthedocs.io/en/latest/sender.html>`_
|
|
114
|
+
guide.
|
|
97
115
|
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
Links
|
|
117
|
+
=====
|
|
100
118
|
|
|
101
|
-
https://
|
|
119
|
+
* `Core database documentation <https://questdb.io/docs/>`_
|
|
102
120
|
|
|
121
|
+
* `Python library documentation <https://py-questdb-client.readthedocs.io/>`_
|
|
122
|
+
|
|
123
|
+
* `GitHub repository <https://github.com/questdb/py-questdb-client>`_
|
|
124
|
+
|
|
125
|
+
* `Package on PyPI <https://pypi.org/project/questdb/>`_
|
|
103
126
|
|
|
104
127
|
Community
|
|
105
128
|
=========
|
|
106
129
|
|
|
107
|
-
If you need help,
|
|
108
|
-
|
|
130
|
+
If you need help, you can ask on `Stack Overflow
|
|
131
|
+
<https://stackoverflow.com/questions/ask?tags=questdb&tags=py-questdb-client>`_:
|
|
132
|
+
We monitor the ``#questdb`` and ``#py-questdb-client`` tags.
|
|
133
|
+
|
|
134
|
+
Alternatively, you may find us on `Slack <https://slack.questdb.io>`_.
|
|
109
135
|
|
|
110
136
|
You can also `sign up to our mailing list <https://questdb.io/community/>`_
|
|
111
137
|
to get notified of new releases.
|
questdb-2.0.1/README.rst
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
=================================
|
|
2
|
+
QuestDB Client Library for Python
|
|
3
|
+
=================================
|
|
4
|
+
|
|
5
|
+
This is the official Python client library for `QuestDB <https://questdb.io>`_.
|
|
6
|
+
|
|
7
|
+
This client library implements QuestDB's variant of the
|
|
8
|
+
`InfluxDB Line Protocol <https://questdb.io/docs/reference/api/ilp/overview/>`_
|
|
9
|
+
(ILP) over HTTP and TCP.
|
|
10
|
+
|
|
11
|
+
ILP provides the fastest way to insert data into QuestDB.
|
|
12
|
+
|
|
13
|
+
This implementation supports `authentication
|
|
14
|
+
<https://py-questdb-client.readthedocs.io/en/latest/conf.html#authentication>`_
|
|
15
|
+
and full-connection encryption with
|
|
16
|
+
`TLS <https://py-questdb-client.readthedocs.io/en/latest/conf.html#tls>`_.
|
|
17
|
+
|
|
18
|
+
Quickstart
|
|
19
|
+
==========
|
|
20
|
+
|
|
21
|
+
The latest version of the library is 2.0.1 (`changelog <https://py-questdb-client.readthedocs.io/en/latest/changelog.html>`_).
|
|
22
|
+
|
|
23
|
+
::
|
|
24
|
+
|
|
25
|
+
python3 -m pip install -U questdb[dataframe]
|
|
26
|
+
|
|
27
|
+
Please start by `setting up QuestDB <https://questdb.io/docs/quick-start/>`_ . Once set up, you can use this library to insert data.
|
|
28
|
+
|
|
29
|
+
The most common way to insert data is from a Pandas dataframe.
|
|
30
|
+
|
|
31
|
+
.. code-block:: python
|
|
32
|
+
|
|
33
|
+
import pandas as pd
|
|
34
|
+
from questdb.ingress import Sender
|
|
35
|
+
|
|
36
|
+
df = pd.DataFrame({
|
|
37
|
+
'id': pd.Categorical(['toronto1', 'paris3']),
|
|
38
|
+
'temperature': [20.0, 21.0],
|
|
39
|
+
'humidity': [0.5, 0.6],
|
|
40
|
+
'timestamp': pd.to_datetime(['2021-01-01', '2021-01-02'])})
|
|
41
|
+
|
|
42
|
+
conf = f'http::addr=localhost:9000;'
|
|
43
|
+
with Sender.from_conf(conf) as sender:
|
|
44
|
+
sender.dataframe(df, table_name='sensors', at='timestamp')
|
|
45
|
+
|
|
46
|
+
You can also send individual rows. This only requires a more minimal installation::
|
|
47
|
+
|
|
48
|
+
python3 -m pip install -U questdb
|
|
49
|
+
|
|
50
|
+
.. code-block:: python
|
|
51
|
+
|
|
52
|
+
from questdb.ingress import Sender, TimestampNanos
|
|
53
|
+
|
|
54
|
+
conf = f'http::addr=localhost:9000;'
|
|
55
|
+
with Sender.from_conf(conf) as sender:
|
|
56
|
+
sender.row(
|
|
57
|
+
'sensors',
|
|
58
|
+
symbols={'id': 'toronto1'},
|
|
59
|
+
columns={'temperature': 20.0, 'humidity': 0.5},
|
|
60
|
+
at=TimestampNanos.now())
|
|
61
|
+
sender.flush()
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
To connect via the `older TCP protocol <https://py-questdb-client.readthedocs.io/en/latest/sender.html#ilp-tcp-or-ilp-http>`_, set the
|
|
65
|
+
`configuration string <https://py-questdb-client.readthedocs.io/en/latest/conf.html>`_ to:
|
|
66
|
+
|
|
67
|
+
.. code-block:: python
|
|
68
|
+
|
|
69
|
+
conf = f'tcp::addr=localhost:9009;'
|
|
70
|
+
with Sender.from_conf(conf) as sender:
|
|
71
|
+
...
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
You can continue by reading the
|
|
75
|
+
`Sending Data Over ILP <https://py-questdb-client.readthedocs.io/en/latest/sender.html>`_
|
|
76
|
+
guide.
|
|
77
|
+
|
|
78
|
+
Links
|
|
79
|
+
=====
|
|
80
|
+
|
|
81
|
+
* `Core database documentation <https://questdb.io/docs/>`_
|
|
82
|
+
|
|
83
|
+
* `Python library documentation <https://py-questdb-client.readthedocs.io/>`_
|
|
84
|
+
|
|
85
|
+
* `GitHub repository <https://github.com/questdb/py-questdb-client>`_
|
|
86
|
+
|
|
87
|
+
* `Package on PyPI <https://pypi.org/project/questdb/>`_
|
|
88
|
+
|
|
89
|
+
Community
|
|
90
|
+
=========
|
|
91
|
+
|
|
92
|
+
If you need help, you can ask on `Stack Overflow
|
|
93
|
+
<https://stackoverflow.com/questions/ask?tags=questdb&tags=py-questdb-client>`_:
|
|
94
|
+
We monitor the ``#questdb`` and ``#py-questdb-client`` tags.
|
|
95
|
+
|
|
96
|
+
Alternatively, you may find us on `Slack <https://slack.questdb.io>`_.
|
|
97
|
+
|
|
98
|
+
You can also `sign up to our mailing list <https://questdb.io/community/>`_
|
|
99
|
+
to get notified of new releases.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
License
|
|
103
|
+
=======
|
|
104
|
+
|
|
105
|
+
The code is released under the `Apache License 2.0
|
|
106
|
+
<https://github.com/questdb/py-questdb-client/blob/main/LICENSE.txt>`_.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[bumpversion]
|
|
2
|
-
current_version =
|
|
2
|
+
current_version = 4.0.0
|
|
3
3
|
commit = True
|
|
4
4
|
tag = False
|
|
5
5
|
|
|
@@ -26,3 +26,7 @@ replace = questdb-rs/{new_version}/
|
|
|
26
26
|
[bumpversion:file:questdb-rs-ffi/Cargo.toml]
|
|
27
27
|
search = version = "{current_version}"
|
|
28
28
|
replace = version = "{new_version}"
|
|
29
|
+
|
|
30
|
+
[bumpversion:file:include/questdb/ingress/line_sender.hpp]
|
|
31
|
+
search = questdb/c++/{current_version}
|
|
32
|
+
replace = questdb/c++/{new_version}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
cmake_minimum_required(VERSION 3.15.0)
|
|
2
|
-
project(c-questdb-client VERSION
|
|
2
|
+
project(c-questdb-client VERSION 4.0.0)
|
|
3
3
|
|
|
4
4
|
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
|
|
5
5
|
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
|
|
@@ -90,16 +90,30 @@ endfunction()
|
|
|
90
90
|
if (QUESTDB_TESTS_AND_EXAMPLES)
|
|
91
91
|
compile_example(
|
|
92
92
|
line_sender_c_example
|
|
93
|
+
examples/concat.c
|
|
93
94
|
examples/line_sender_c_example.c)
|
|
94
95
|
compile_example(
|
|
95
96
|
line_sender_c_example_auth
|
|
97
|
+
examples/concat.c
|
|
96
98
|
examples/line_sender_c_example_auth.c)
|
|
97
99
|
compile_example(
|
|
98
100
|
line_sender_c_example_tls_ca
|
|
101
|
+
examples/concat.c
|
|
99
102
|
examples/line_sender_c_example_tls_ca.c)
|
|
100
103
|
compile_example(
|
|
101
104
|
line_sender_c_example_auth_tls
|
|
105
|
+
examples/concat.c
|
|
102
106
|
examples/line_sender_c_example_auth_tls.c)
|
|
107
|
+
compile_example(
|
|
108
|
+
line_sender_c_example_http
|
|
109
|
+
examples/concat.c
|
|
110
|
+
examples/line_sender_c_example_http.c)
|
|
111
|
+
compile_example(
|
|
112
|
+
line_sender_c_example_from_conf
|
|
113
|
+
examples/line_sender_c_example_from_conf.c)
|
|
114
|
+
compile_example(
|
|
115
|
+
line_sender_c_example_from_env
|
|
116
|
+
examples/line_sender_c_example_from_env.c)
|
|
103
117
|
compile_example(
|
|
104
118
|
line_sender_cpp_example
|
|
105
119
|
examples/line_sender_cpp_example.cpp)
|
|
@@ -112,6 +126,15 @@ if (QUESTDB_TESTS_AND_EXAMPLES)
|
|
|
112
126
|
compile_example(
|
|
113
127
|
line_sender_cpp_example_auth_tls
|
|
114
128
|
examples/line_sender_cpp_example_auth_tls.cpp)
|
|
129
|
+
compile_example(
|
|
130
|
+
line_sender_cpp_example_http
|
|
131
|
+
examples/line_sender_cpp_example_http.cpp)
|
|
132
|
+
compile_example(
|
|
133
|
+
line_sender_cpp_example_from_conf
|
|
134
|
+
examples/line_sender_cpp_example_from_conf.cpp)
|
|
135
|
+
compile_example(
|
|
136
|
+
line_sender_cpp_example_from_env
|
|
137
|
+
examples/line_sender_cpp_example_from_env.cpp)
|
|
115
138
|
|
|
116
139
|
# Include Rust tests as part of the tests run
|
|
117
140
|
add_test(
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
This library makes it easy to insert data into [QuestDB](https://questdb.io/).
|
|
5
5
|
|
|
6
6
|
This client library implements the [InfluxDB Line Protocol](
|
|
7
|
-
https://questdb.io/docs/reference/api/ilp/overview/) (ILP) over TCP.
|
|
7
|
+
https://questdb.io/docs/reference/api/ilp/overview/) (ILP) over TCP or HTTP.
|
|
8
8
|
|
|
9
9
|
* Implementation is in Rust, with no additional
|
|
10
10
|
[run-time or link-time dependencies](doc/BUILD.md#pre-requisites-and-dependencies)
|
|
@@ -16,21 +16,21 @@ https://questdb.io/docs/reference/api/ilp/overview/) (ILP) over TCP.
|
|
|
16
16
|
|
|
17
17
|
## Insertion Protocols Overview
|
|
18
18
|
|
|
19
|
-
Inserting data into QuestDB can be done
|
|
19
|
+
Inserting data into QuestDB can be done in several ways.
|
|
20
|
+
|
|
21
|
+
This library supports ILP/HTTP (default-recommended) and ILP/TCP (specific
|
|
22
|
+
streaming use cases).
|
|
20
23
|
|
|
21
24
|
| Protocol | Record Insertion Reporting | Data Insertion Performance |
|
|
22
25
|
| -------- | -------------------------- | -------------------------- |
|
|
23
|
-
| [ILP](https://questdb.io/docs/reference/api/ilp/overview/)|
|
|
26
|
+
| **[ILP/HTTP](https://questdb.io/docs/reference/api/ilp/overview/)** | Transaction-level (on flush) | **Excellent** |
|
|
27
|
+
| [ILP/TCP](https://questdb.io/docs/reference/api/ilp/overview/)| Errors in logs; Disconnect on error | **Best** (tolerates higher latency networks) |
|
|
24
28
|
| [CSV Upload via HTTP](https://questdb.io/docs/reference/api/rest/#imp---import-data) | Configurable | Very Good |
|
|
25
29
|
| [PostgreSQL](https://questdb.io/docs/reference/api/postgres/) | Transaction-level | Good |
|
|
26
30
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
to
|
|
30
|
-
|
|
31
|
-
For example, the client library will report that a supplied string isn't encoded
|
|
32
|
-
in UTF-8. Some issues unfortunately can't be caught by the library and require
|
|
33
|
-
some [care and diligence to avoid data problems](doc/CONSIDERATIONS.md).
|
|
31
|
+
Server errors are only reported back to the client for ILP/HTTP.
|
|
32
|
+
See the [flush troubleshooting](doc/CONSIDERATIONS.md) docs for more details on
|
|
33
|
+
how to debug ILP/TCP.
|
|
34
34
|
|
|
35
35
|
For an overview and code examples, see the
|
|
36
36
|
[ILP page of the developer docs](https://questdb.io/docs/develop/insert-data/#influxdb-line-protocol).
|