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.
Files changed (330) hide show
  1. questdb-2.0.1/CHANGELOG.rst +325 -0
  2. {questdb-1.2.0/src/questdb.egg-info → questdb-2.0.1}/PKG-INFO +58 -32
  3. questdb-2.0.1/README.rst +106 -0
  4. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/.bumpversion.cfg +5 -1
  5. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/CMakeLists.txt +24 -1
  6. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/README.md +10 -10
  7. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cbindgen.toml +1 -1
  8. questdb-2.0.1/c-questdb-client/ci/compile.yaml +14 -0
  9. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/ci/run_all_tests.py +2 -1
  10. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/ci/run_tests_pipeline.yaml +26 -38
  11. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/build_env.h +1 -1
  12. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/mock_server.cpp +1 -1
  13. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/mock_server.hpp +1 -1
  14. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/test_line_sender.cpp +171 -28
  15. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/C.md +8 -14
  16. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/CONSIDERATIONS.md +15 -5
  17. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/CPP.md +6 -8
  18. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/SECURITY.md +2 -2
  19. questdb-2.0.1/c-questdb-client/examples/concat.c +19 -0
  20. questdb-2.0.1/c-questdb-client/examples/concat.h +11 -0
  21. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example.c +14 -15
  22. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example_auth.c +19 -31
  23. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example_auth_tls.c +20 -38
  24. questdb-2.0.1/c-questdb-client/examples/line_sender_c_example_from_conf.c +83 -0
  25. questdb-2.0.1/c-questdb-client/examples/line_sender_c_example_from_env.c +82 -0
  26. questdb-2.0.1/c-questdb-client/examples/line_sender_c_example_http.c +129 -0
  27. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_c_example_tls_ca.c +21 -40
  28. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example.cpp +3 -7
  29. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example_auth.cpp +7 -16
  30. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example_auth_tls.cpp +8 -24
  31. questdb-2.0.1/c-questdb-client/examples/line_sender_cpp_example_from_conf.cpp +54 -0
  32. questdb-2.0.1/c-questdb-client/examples/line_sender_cpp_example_from_env.cpp +53 -0
  33. questdb-2.0.1/c-questdb-client/examples/line_sender_cpp_example_http.cpp +88 -0
  34. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples/line_sender_cpp_example_tls_ca.cpp +9 -23
  35. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/examples.manifest.yaml +21 -0
  36. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/include/questdb/ingress/line_sender.h +262 -61
  37. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/include/questdb/ingress/line_sender.hpp +350 -72
  38. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/Cargo.toml +30 -14
  39. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/README.md +35 -4
  40. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/examples/auth.rs +12 -14
  41. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/examples/auth_tls.rs +12 -16
  42. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/examples/basic.rs +3 -7
  43. questdb-2.0.1/c-questdb-client/questdb-rs/examples/from_conf.rs +17 -0
  44. questdb-2.0.1/c-questdb-client/questdb-rs/examples/from_env.rs +18 -0
  45. questdb-2.0.1/c-questdb-client/questdb-rs/examples/http.rs +17 -0
  46. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/error.rs +9 -0
  47. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/gai.rs +1 -1
  48. questdb-2.0.1/c-questdb-client/questdb-rs/src/ingress/conf.rs +75 -0
  49. questdb-2.0.1/c-questdb-client/questdb-rs/src/ingress/http.rs +235 -0
  50. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/ingress/mod.rs +1302 -432
  51. questdb-2.0.1/c-questdb-client/questdb-rs/src/ingress/tests.rs +461 -0
  52. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/lib.rs +1 -1
  53. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/f64_serializer.rs +1 -1
  54. questdb-2.0.1/c-questdb-client/questdb-rs/src/tests/http.rs +709 -0
  55. questdb-2.0.1/c-questdb-client/questdb-rs/src/tests/mock.rs +563 -0
  56. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/mod.rs +5 -1
  57. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/sender.rs +195 -26
  58. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs-ffi/Cargo.lock +374 -196
  59. questdb-2.0.1/c-questdb-client/questdb-rs-ffi/Cargo.toml +29 -0
  60. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs-ffi/src/lib.rs +497 -147
  61. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/fixture.py +86 -16
  62. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/questdb_line_sender.py +183 -67
  63. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/test.py +258 -77
  64. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/tls_proxy/Cargo.lock +167 -153
  65. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/system_test/tls_proxy/Cargo.toml +5 -3
  66. 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
  67. questdb-2.0.1/c-questdb-client/system_test/tls_proxy/src/main.rs +43 -0
  68. {questdb-1.2.0 → questdb-2.0.1}/proj.py +14 -0
  69. {questdb-1.2.0 → questdb-2.0.1}/pyproject.toml +2 -1
  70. {questdb-1.2.0 → questdb-2.0.1}/pystr-to-utf8/include/pystr_to_utf8.h +1 -1
  71. {questdb-1.2.0 → questdb-2.0.1}/setup.py +2 -2
  72. questdb-2.0.1/src/questdb/__init__.py +1 -0
  73. questdb-2.0.1/src/questdb/conf_str.h +55 -0
  74. questdb-2.0.1/src/questdb/conf_str.pxd +60 -0
  75. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/dataframe.html +4109 -3592
  76. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress.c +25031 -9479
  77. questdb-2.0.1/src/questdb/ingress.html +14331 -0
  78. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress.pyx +1039 -275
  79. questdb-2.0.1/src/questdb/line_sender.pxd +423 -0
  80. {questdb-1.2.0 → questdb-2.0.1/src/questdb.egg-info}/PKG-INFO +58 -32
  81. {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/SOURCES.txt +19 -0
  82. {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/requires.txt +5 -0
  83. questdb-2.0.1/test/test.py +1119 -0
  84. {questdb-1.2.0 → questdb-2.0.1}/test/test_dataframe.py +120 -103
  85. {questdb-1.2.0 → questdb-2.0.1}/test/test_dataframe_fuzz.py +1 -1
  86. {questdb-1.2.0 → questdb-2.0.1}/test/test_dataframe_leaks.py +1 -1
  87. questdb-1.2.0/CHANGELOG.rst +0 -137
  88. questdb-1.2.0/README.rst +0 -87
  89. questdb-1.2.0/c-questdb-client/questdb-rs/src/tests/mock.rs +0 -243
  90. questdb-1.2.0/c-questdb-client/questdb-rs-ffi/Cargo.toml +0 -22
  91. questdb-1.2.0/src/questdb/__init__.py +0 -1
  92. questdb-1.2.0/src/questdb/ingress.html +0 -8332
  93. questdb-1.2.0/src/questdb/line_sender.pxd +0 -211
  94. questdb-1.2.0/test/test.py +0 -558
  95. {questdb-1.2.0 → questdb-2.0.1}/DEV_NOTES.rst +0 -0
  96. {questdb-1.2.0 → questdb-2.0.1}/LICENSE.txt +0 -0
  97. {questdb-1.2.0 → questdb-2.0.1}/MANIFEST.in +0 -0
  98. {questdb-1.2.0 → questdb-2.0.1}/TODO.rst +0 -0
  99. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/.git +0 -0
  100. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/.gitignore +0 -0
  101. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/CODEOWNERS +0 -0
  102. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/LICENSE +0 -0
  103. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/api_seq/build_svg.sh +0 -0
  104. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/api_seq/seq.dot +0 -0
  105. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/api_seq/seq.svg +0 -0
  106. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/FUNDING.yml +0 -0
  107. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  108. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/actions/setup_test/action.yaml +0 -0
  109. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/scripts/determine_compiler.sh +0 -0
  110. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/workflows/gh-pages.yaml +0 -0
  111. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/workflows/test.yaml +0 -0
  112. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.github/workflows/test_legacy.yaml +0 -0
  113. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/.gitignore +0 -0
  114. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/CMakeLists.txt +0 -0
  115. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/LICENSE +0 -0
  116. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/README.md +0 -0
  117. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/RELEASES.md +0 -0
  118. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/Corrosion.cmake +0 -0
  119. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/CorrosionConfig.cmake.in +0 -0
  120. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/CorrosionGenerator.cmake +0 -0
  121. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/cmake/FindRust.cmake +0 -0
  122. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/.gitignore +0 -0
  123. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/book.toml +0 -0
  124. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/SUMMARY.md +0 -0
  125. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/advanced.md +0 -0
  126. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/common_issues.md +0 -0
  127. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/ffi_bindings.md +0 -0
  128. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/introduction.md +0 -0
  129. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/quick_start.md +0 -0
  130. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/setup_corrosion.md +0 -0
  131. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/doc/src/usage.md +0 -0
  132. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/CMakeLists.txt +0 -0
  133. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Cargo.lock +0 -0
  134. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Cargo.toml +0 -0
  135. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Compat.Cargo.lock +0 -0
  136. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/Compat.Cargo.toml +0 -0
  137. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/src/main.rs +0 -0
  138. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/src/subcommands/gen_cmake/target.rs +0 -0
  139. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/generator/src/subcommands/gen_cmake.rs +0 -0
  140. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/CMakeLists.txt +0 -0
  141. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/ConfigureAndBuild.cmake +0 -0
  142. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/README.md +0 -0
  143. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/CMakeLists.txt +0 -0
  144. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/CMakeLists.txt +0 -0
  145. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/main.cpp +0 -0
  146. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/rust/Cargo.lock +0 -0
  147. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/rust/Cargo.toml +0 -0
  148. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cargo_flags/cargo_flags/rust/src/lib.rs +0 -0
  149. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/CMakeLists.txt +0 -0
  150. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/CMakeLists.txt +0 -0
  151. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/main.cpp +0 -0
  152. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/Cargo.lock +0 -0
  153. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/Cargo.toml +0 -0
  154. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/cbindgen.toml +0 -0
  155. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cbindgen/rust2cpp/rust/src/lib.rs +0 -0
  156. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/CMakeLists.txt +0 -0
  157. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/CMakeLists.txt +0 -0
  158. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/lib.cpp +0 -0
  159. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/lib2.cpp +0 -0
  160. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/path with space/lib3.cpp +0 -0
  161. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/Cargo.lock +0 -0
  162. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/Cargo.toml +0 -0
  163. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/build.rs +0 -0
  164. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/rust_dependency/Cargo.toml +0 -0
  165. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/rust_dependency/src/lib.rs +0 -0
  166. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cpp2rust/cpp2rust/rust/src/bin/rust-exe.rs +0 -0
  167. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/CMakeLists.txt +0 -0
  168. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/CMakeLists.txt +0 -0
  169. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/main.cpp +0 -0
  170. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj1/Cargo.lock +0 -0
  171. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj1/Cargo.toml +0 -0
  172. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj1/src/lib.rs +0 -0
  173. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj2/Cargo.lock +0 -0
  174. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj2/Cargo.toml +0 -0
  175. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/crate_type/crate_type/proj2/src/lib.rs +0 -0
  176. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/CMakeLists.txt +0 -0
  177. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/CMakeLists.txt +0 -0
  178. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/main.cpp +0 -0
  179. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/rust/Cargo.lock +0 -0
  180. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/rust/Cargo.toml +0 -0
  181. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/basic_profiles/rust/src/lib.rs +0 -0
  182. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/CMakeLists.txt +0 -0
  183. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/main.cpp +0 -0
  184. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/rust/Cargo.lock +0 -0
  185. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/rust/Cargo.toml +0 -0
  186. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/custom_profiles/custom_profiles/rust/src/lib.rs +0 -0
  187. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/CMakeLists.txt +0 -0
  188. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/CMakeLists.txt +0 -0
  189. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/cpplib.cpp +0 -0
  190. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/include/cpplib.h +0 -0
  191. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/Cargo.lock +0 -0
  192. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/Cargo.toml +0 -0
  193. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/src/lib.rs +0 -0
  194. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_cpp2rust/rust/src/main.rs +0 -0
  195. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/CMakeLists.txt +0 -0
  196. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/main.cpp +0 -0
  197. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/Cargo.lock +0 -0
  198. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/Cargo.toml +0 -0
  199. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/src/foo/mod.rs +0 -0
  200. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/cxxbridge/cxxbridge_rust2cpp/rust/src/lib.rs +0 -0
  201. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/CMakeLists.txt +0 -0
  202. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/.cargo/config.toml +0 -0
  203. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/CMakeLists.txt +0 -0
  204. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/Cargo.lock +0 -0
  205. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/Cargo.toml +0 -0
  206. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/build.rs +0 -0
  207. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/main.cpp +0 -0
  208. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/envvar/envvar/src/lib.rs +0 -0
  209. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/external_corrosion_generator/CMakeLists.txt +0 -0
  210. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/external_corrosion_generator/ExternalCorrosionGenerator/CMakeLists.txt +0 -0
  211. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/external_corrosion_generator/ExternalCorrosionGenerator/Test.cmake +0 -0
  212. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/CMakeLists.txt +0 -0
  213. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/CMakeLists.txt +0 -0
  214. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/main.cpp +0 -0
  215. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/rust/Cargo.lock +0 -0
  216. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/rust/Cargo.toml +0 -0
  217. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/features/features/rust/src/lib.rs +0 -0
  218. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/find_rust/CMakeLists.txt +0 -0
  219. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/find_rust/find_rust/CMakeLists.txt +0 -0
  220. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/find_rust/rustup_proxy/CMakeLists.txt +0 -0
  221. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/CMakeLists.txt +0 -0
  222. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/.gitignore +0 -0
  223. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/CMakeLists.txt +0 -0
  224. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/Cargo.lock +0 -0
  225. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/Cargo.toml +0 -0
  226. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/CMakeLists.txt +0 -0
  227. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/Cargo.lock +0 -0
  228. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/Cargo.toml +0 -0
  229. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/generator/src/main.rs +0 -0
  230. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/gensource/gensource/src/lib.rs +0 -0
  231. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/CMakeLists.txt +0 -0
  232. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/CMakeLists.txt +0 -0
  233. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/Cargo.lock +0 -0
  234. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/Cargo.toml +0 -0
  235. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/build.rs +0 -0
  236. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/src/lib.c +0 -0
  237. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/hostbuild/hostbuild/src/main.rs +0 -0
  238. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/CMakeLists.txt +0 -0
  239. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/CMakeLists.txt +0 -0
  240. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/Cargo.lock +0 -0
  241. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/Cargo.toml +0 -0
  242. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/lib.cpp +0 -0
  243. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/bin/bin1.rs +0 -0
  244. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/bin/bin2.rs +0 -0
  245. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/bin/bin3.rs +0 -0
  246. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/multitarget/multitarget/src/lib.rs +0 -0
  247. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/CMakeLists.txt +0 -0
  248. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/CMakeLists.txt +0 -0
  249. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/main.cpp +0 -0
  250. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/rust/Cargo.lock +0 -0
  251. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/rust/Cargo.toml +0 -0
  252. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/nostd/nostd/rust/src/lib.rs +0 -0
  253. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/CMakeLists.txt +0 -0
  254. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/TestFileExists.cmake +0 -0
  255. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/CMakeLists.txt +0 -0
  256. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/consumer.cpp +0 -0
  257. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/Cargo.lock +0 -0
  258. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/Cargo.toml +0 -0
  259. {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
  260. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj1/src/lib.rs +0 -0
  261. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/Cargo.lock +0 -0
  262. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/Cargo.toml +0 -0
  263. {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
  264. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/output directory/output directory/proj2/src/lib.rs +0 -0
  265. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/parse_target_triple/CMakeLists.txt +0 -0
  266. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/parse_target_triple/parse_target_triple/CMakeLists.txt +0 -0
  267. {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
  268. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/CMakeLists.txt +0 -0
  269. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/CMakeLists.txt +0 -0
  270. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/main.cpp +0 -0
  271. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/Cargo.lock +0 -0
  272. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/Cargo.toml +0 -0
  273. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/build.rs +0 -0
  274. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rust2cpp/rust2cpp/rust/src/lib.rs +0 -0
  275. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/CMakeLists.txt +0 -0
  276. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/.cargo/config.toml +0 -0
  277. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/CMakeLists.txt +0 -0
  278. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/Cargo.lock +0 -0
  279. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/Cargo.toml +0 -0
  280. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/cargo_config_rustflags/src/main.rs +0 -0
  281. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/CMakeLists.txt +0 -0
  282. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/main.cpp +0 -0
  283. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/Cargo.lock +0 -0
  284. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/Cargo.toml +0 -0
  285. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/some_dependency/Cargo.toml +0 -0
  286. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/some_dependency/src/lib.rs +0 -0
  287. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/rustflags/rustflags/rust/src/lib.rs +0 -0
  288. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/CMakeLists.txt +0 -0
  289. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/CMakeLists.txt +0 -0
  290. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/Cargo.lock +0 -0
  291. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/Cargo.toml +0 -0
  292. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/main.cpp +0 -0
  293. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member1/Cargo.toml +0 -0
  294. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member1/src/lib.rs +0 -0
  295. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member2/Cargo.toml +0 -0
  296. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member2/src/lib.rs +0 -0
  297. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member3/Cargo.toml +0 -0
  298. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/corrosion/test/workspace/workspace/member3/src/main.rs +0 -0
  299. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/cpp_test/doctest.h +0 -0
  300. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/BUILD.md +0 -0
  301. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/DEPENDENCY.md +0 -0
  302. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/doc/DEV_NOTES.md +0 -0
  303. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/build.rs +0 -0
  304. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/ingress/timestamp.rs +0 -0
  305. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs/src/tests/interop/ilp-client-interop-test.json +0 -0
  306. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/questdb-rs-ffi/build.rs +0 -0
  307. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/README.md +0 -0
  308. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.crt +0 -0
  309. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.csr +0 -0
  310. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.key +0 -0
  311. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server.pem +0 -0
  312. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.csr.cnf +0 -0
  313. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.key +0 -0
  314. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.pem +0 -0
  315. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/server_rootCA.srl +0 -0
  316. {questdb-1.2.0 → questdb-2.0.1}/c-questdb-client/tls_certs/v3.ext +0 -0
  317. {questdb-1.2.0 → questdb-2.0.1}/install_rust.py +0 -0
  318. {questdb-1.2.0 → questdb-2.0.1}/proj +0 -0
  319. {questdb-1.2.0 → questdb-2.0.1}/proj.bat +0 -0
  320. {questdb-1.2.0 → questdb-2.0.1}/proj.ps1 +0 -0
  321. {questdb-1.2.0 → questdb-2.0.1}/setup.cfg +0 -0
  322. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/arrow_c_data_interface.h +0 -0
  323. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/arrow_c_data_interface.pxd +0 -0
  324. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/extra_cpython.pxd +0 -0
  325. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress_helper.inc +0 -0
  326. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/ingress_helper.pxd +0 -0
  327. {questdb-1.2.0 → questdb-2.0.1}/src/questdb/pystr_to_utf8.pxd +0 -0
  328. {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/dependency_links.txt +0 -0
  329. {questdb-1.2.0 → questdb-2.0.1}/src/questdb.egg-info/not-zip-safe +0 -0
  330. {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: 1.2.0
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
- License-File: LICENSE.txt
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 library makes it easy to insert data into `QuestDB <https://questdb.io>`_.
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/docs/reference/api/ilp/authenticate/>`_ and full-connection
46
- encryption with TLS.
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 1.2.0.
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
- from questdb.ingress import Sender, TimestampNanos
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
- You can also send Pandas dataframes:
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
- with Sender('localhost', 9009) as sender:
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
- Code
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
- Package on PyPI
99
- ===============
116
+ Links
117
+ =====
100
118
 
101
- https://pypi.org/project/questdb/
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, have additional questions or want to provide feedback, you
108
- may find us on `Slack <https://slack.questdb.io>`_.
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.
@@ -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 = 3.1.0
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 3.1.0)
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 via one of three protocols.
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/)| Errors in logs; Disconnect on error | **Best** |
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
- This library implements the **ILP protocol** and mitigates the lack of confirmation
28
- and error reporting by validating data ahead of time before any data is sent
29
- to the database instance.
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).