Skip to content

Stability changes for version 5.0.0 #105

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open

Stability changes for version 5.0.0 #105

wants to merge 24 commits into from

Conversation

amunra
Copy link
Collaborator

@amunra amunra commented Jun 3, 2025

Overview

This PR is about introducing stability changes targeting the release of version 5.0.0.

Task list

  • @javier: Updated front page doc and examples that are consistent across all clients.
  • JSON-driven array tests
  • Reword doc sections around protocol version, make it clear that selecting the protocol
    is only suggested for TCP and we advise "auto" for HTTP.
  • Add a test for max_line_len from /settings (see point above).
  • Introduce a new simpler array C API that doesn't require strides:
    line_sender_buffer_column_f64_arr_row_major (we will use this from Python).
  • Investigate if the two APIs that take strides can be optimised further.
    You mentioned that these are slower than the equivalent Rust ndarray APIs.
  • Consolidate array error codes into a single ArrayError code. These should be consolidated:
    • ArrayHasTooManyDims
    • ArrayViewError
    • ArrayWriteToBufferError
  • Introduce a lower-level C++ API that just takes pointers and lengths for
    data and strides.
  • Introduce an overloaded C++ API that just takes an array data pointer and
    length, and assumes default strides (calling _f64_arr_row_major).
  • Fix warnings when generating docs with (cd questdb-rs && cargo doc --open)
    E.g.: warning: unresolved link to Sender::new_buffer_with_max_name_len.
  • Add the C++ API change from PR Implement C++ line_sender::flush_and_keep_with_flags() #88
  • Update and document (front page + examples + api docs) which is the first
    version of QuestDB supports arrays.
    My guess is that it is going to be 8.4.0, but we need to confirm this.
    (I've also added this todo to the Python client TODO list.)
  • Improved C++ API ergonomics:
    • Lower-level API that is similar to the C API
    • Higher-level API that takes a vectors and spans in C++20.
  • Once the next QuestDB release is cut, we should revert the CI hacks that test
    against the nd_arr branch. We should also retain a CI test run that runs
    against an older version of QuestDB (e.g. 8.3.3) to ensure that we don't
    introduce regressions against protocol version 1.

Tandem PR

See related py-questdb-client PR: questdb/py-questdb-client#108

@amunra amunra marked this pull request as draft June 3, 2025 09:54
@kafka1991 kafka1991 marked this pull request as ready for review June 6, 2025 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants