Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
8a0e6df
feat: Add support for decimal.Decimal object
RaphDal Oct 13, 2025
4826301
feat: add support to arrow's decimals
RaphDal Oct 15, 2025
7aae3a8
tests: add serialization tests for decimals
RaphDal Oct 16, 2025
856c809
feat: uses binary format for decimal object
RaphDal Oct 16, 2025
5772e0e
fix: correct enum value for col_source_decimal_pyobj
RaphDal Oct 17, 2025
1d4c69f
Merge branch 'main' into rd_decimal
RaphDal Oct 20, 2025
b62520a
fix: hold GIL when working with py_obj
RaphDal Nov 7, 2025
5d7ee5e
tests: fix test to work with new protocol version 3
RaphDal Nov 7, 2025
0d7017f
adding print to debug failing test
RaphDal Nov 7, 2025
48e9709
Remove GIL requirement for arrow decimals
RaphDal Nov 7, 2025
5b4cbfa
fix: update decimal source enum values for compatibility
RaphDal Nov 7, 2025
c2c19d7
test: add debug print for bad protocol version handling
RaphDal Nov 7, 2025
9b00b39
refactor: remove debug print statements for protocol version handling
RaphDal Nov 7, 2025
cad427c
fix: restore conditional for expected timestamp type based on QuestDB…
RaphDal Nov 7, 2025
674e83c
tests: add decimal support tests for pyarrow and decimal types
RaphDal Nov 7, 2025
784d8b9
feat: support decimal serialization directly from column
RaphDal Nov 7, 2025
94dba61
fix: adjust byte length calculation for unscaled object in decimal co…
RaphDal Nov 7, 2025
3a57ea4
fix: add decimal repo test in ci
RaphDal Nov 7, 2025
00ff8a4
fix: correct byte length calculation for unscaled object in decimal c…
RaphDal Nov 7, 2025
6990a20
fix: update pyarrow import handling
RaphDal Nov 7, 2025
0de7bfd
fix: remove decimal branch compilation from CI pipeline
RaphDal Nov 11, 2025
ec21a54
fix: add table creation for decimal tests in system tests
RaphDal Nov 11, 2025
ac4350a
fix: update subproject commit reference for c-questdb-client
RaphDal Nov 11, 2025
6b1f263
fix: update decimal column name in table creation for system tests
RaphDal Nov 11, 2025
8c3b485
updated submodule
amunra Nov 17, 2025
17fb410
updated submodule
amunra Nov 18, 2025
cabe2df
bumped CI to MacOS-14 since -13 is deprecated and in a brownout
amunra Nov 18, 2025
0a6c1b9
removed debris
amunra Nov 18, 2025
8d70bb2
removed dead code
amunra Nov 18, 2025
1cfca36
pragma once
amunra Nov 19, 2025
f0d6987
bumped test QuestDB version from 9.1.1 to 9.2.0
amunra Nov 19, 2025
9db429f
fix: Fix bswap* function signature
RaphDal Nov 20, 2025
6143de9
tests: Fix test that was sending None in decimals
RaphDal Nov 20, 2025
df26e75
feat: Added zero-allocation serialization of python decimal
RaphDal Nov 20, 2025
989c4e0
build: Add depends so that python library is rebuilt on dependencies …
RaphDal Nov 20, 2025
e80cd37
Update src/questdb/mpdecimal_compat.pxd
RaphDal Nov 21, 2025
aeebd96
tests: add test to cover error cases in mpdecimal
RaphDal Nov 21, 2025
d4ed559
docs: Fix incomplete comment
RaphDal Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion c-questdb-client
Submodule c-questdb-client updated 58 files
+1 −1 .bumpversion.toml
+11 −1 CMakeLists.txt
+10 −5 ci/compile.yaml
+2 −16 ci/run_all_tests.py
+15 −15 ci/run_tests_pipeline.yaml
+42 −39 cpp_test/test_line_sender.cpp
+15 −1 doc/C.md
+14 −1 doc/CPP.md
+2 −2 doc/SECURITY.md
+5 −2 examples/line_sender_c_example.c
+1 −0 examples/line_sender_c_example_array_byte_strides.c
+2 −1 examples/line_sender_c_example_array_c_major.c
+2 −1 examples/line_sender_c_example_array_elem_strides.c
+5 −2 examples/line_sender_c_example_auth.c
+5 −2 examples/line_sender_c_example_auth_tls.c
+130 −0 examples/line_sender_c_example_decimal_binary.c
+5 −2 examples/line_sender_c_example_from_conf.c
+4 −1 examples/line_sender_c_example_from_env.c
+4 −1 examples/line_sender_c_example_http.c
+5 −2 examples/line_sender_c_example_tls_ca.c
+4 −2 examples/line_sender_cpp_example.cpp
+1 −1 examples/line_sender_cpp_example_array_c_major.cpp
+1 −1 examples/line_sender_cpp_example_array_elem_strides.cpp
+4 −2 examples/line_sender_cpp_example_auth.cpp
+3 −2 examples/line_sender_cpp_example_auth_tls.cpp
+85 −0 examples/line_sender_cpp_example_decimal_binary.cpp
+138 −0 examples/line_sender_cpp_example_decimal_custom.cpp
+4 −2 examples/line_sender_cpp_example_from_conf.cpp
+3 −1 examples/line_sender_cpp_example_from_env.cpp
+10 −7 examples/line_sender_cpp_example_http.cpp
+4 −2 examples/line_sender_cpp_example_tls_ca.cpp
+57 −0 include/questdb/ingress/line_sender.h
+107 −603 include/questdb/ingress/line_sender.hpp
+266 −0 include/questdb/ingress/line_sender_array.hpp
+432 −0 include/questdb/ingress/line_sender_core.hpp
+288 −0 include/questdb/ingress/line_sender_decimal.hpp
+2 −2 questdb-rs-ffi/Cargo.lock
+1 −1 questdb-rs-ffi/Cargo.toml
+111 −2 questdb-rs-ffi/src/lib.rs
+22 −6 questdb-rs/Cargo.toml
+9 −9 questdb-rs/README.md
+39 −9 questdb-rs/build.rs
+3 −3 questdb-rs/examples/basic.rs
+8 −2 questdb-rs/examples/http.rs
+10 −6 questdb-rs/examples/protocol_version.rs
+3 −0 questdb-rs/src/error.rs
+102 −2 questdb-rs/src/ingress/buffer.rs
+274 −0 questdb-rs/src/ingress/decimal.rs
+16 −1 questdb-rs/src/ingress/mod.md
+34 −13 questdb-rs/src/ingress/mod.rs
+1 −0 questdb-rs/src/ingress/sender/http.rs
+633 −0 questdb-rs/src/tests/decimal.rs
+2 −2 questdb-rs/src/tests/http.rs
+44 −1 questdb-rs/src/tests/interop/ilp-client-interop-test.json
+1 −0 questdb-rs/src/tests/mod.rs
+8 −5 questdb-rs/src/tests/sender.rs
+29 −2 system_test/questdb_line_sender.py
+108 −19 system_test/test.py
2 changes: 1 addition & 1 deletion ci/cibuildwheel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ stages:
inputs: {pathtoPublish: 'wheelhouse'}

- job: macos_x64
pool: {vmImage: 'macOS-13'}
pool: {vmImage: 'macOS-14'}
timeoutInMinutes: 90
steps:
- task: UsePythonVersion@0
Expand Down
18 changes: 9 additions & 9 deletions ci/run_tests_pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,28 +36,28 @@ stages:
submodules: true
- task: UsePythonVersion@0
inputs:
versionSpec: '3.12'
versionSpec: "3.12"
- script: |
python3 --version
python3 -m pip install cython
displayName: "Install cython"
- script: python3 ci/pip_install_deps.py
displayName: "Install pandas latest"
condition: eq(variables.pandasVersion, '')
- script: python3 ci/pip_install_deps.py --pandas-version==$(pandasVersion)
- script: python3 ci/pip_install_deps.py --pandas-version==$(pandasVersion)
displayName: "Install pandas older"
condition: ne(variables.pandasVersion, '')
- script: python3 proj.py build
displayName: "Build"
- script: |
git clone --depth 1 https://github.com/questdb/questdb.git
displayName: git clone questdb
displayName: git clone questdb master
condition: eq(variables.vsQuestDbMaster, true)
- task: Maven@3
displayName: "Compile QuestDB"
displayName: "Compile QuestDB master"
inputs:
mavenPOMFile: 'questdb/pom.xml'
jdkVersionOption: '1.17'
mavenPOMFile: "questdb/pom.xml"
jdkVersionOption: "1.17"
options: "-DskipTests -Pbuild-web-console"
condition: eq(variables.vsQuestDbMaster, true)
- script: python3 proj.py test 1
Expand All @@ -68,7 +68,7 @@ stages:
displayName: "Test vs master"
env:
JAVA_HOME: $(JAVA_HOME_17_X64)
QDB_REPO_PATH: './questdb'
QDB_REPO_PATH: "./questdb"
condition: eq(variables.vsQuestDbMaster, true)
- job: TestsAgainstVariousNumpyVersion1x
pool:
Expand All @@ -82,7 +82,7 @@ stages:
submodules: true
- task: UsePythonVersion@0
inputs:
versionSpec: '3.9'
versionSpec: "3.9"
- script: |
python3 --version
python3 -m pip install uv
Expand All @@ -106,7 +106,7 @@ stages:
submodules: true
- task: UsePythonVersion@0
inputs:
versionSpec: '3.11'
versionSpec: "3.11"
- script: |
python3 --version
python3 -m pip install uv
Expand Down
7 changes: 7 additions & 0 deletions rpyutils/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions rpyutils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ crate-type = ["staticlib"]

[dev-dependencies]
rand = "0.9.1"

[dependencies]
i256 = "0.2.3"
11 changes: 11 additions & 0 deletions rpyutils/include/rpyutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,17 @@ uint32_t qdb_active_senders_track_established(int* warn); // bint* warn

void qdb_active_senders_track_closed(uint32_t slot);

/**
* Converts an mpdecimal limb array to its big-endian two's complement bytes.
*/
bool qdb_mpd_to_bigendian(const size_t *limbs,
size_t limbs_len,
size_t radix,
uint32_t exp,
bool negative,
uint8_t *out,
size_t *out_size);

#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
1 change: 1 addition & 0 deletions rpyutils/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@
******************************************************************************/

mod active_senders;
mod mpd_to_bigendian;
mod pystr_to_utf8;
Loading