Commit 85b7038
authored
[To dev/1.3] refactor client-cpp (#17803)
* refactor(client-cpp): port SDK refactor to dev/1.3 without table model
Reorganize the C++ client into include/session/rpc with CMake-driven
build, embedded Thrift, Windows DLL packaging, SessionC API, and CI
release workflows. Scope excludes 2.x table-model APIs and Thrift fields.
* fix(client-cpp): align cmake plugin and clang-format for CI
Replace pluginManagement cmake-maven-plugin with io.github 4.2.3-b1 so with-cpp Maven builds resolve the plugin. Pin clang.format.version to 17.0.6 and apply Spotless formatting to C++ sources.
* fix(ci): pin clang-format 17 in multi-language-client cpp job
ubuntu-latest ships clang-format 18.x which breaks Spotless when clang.format.version is 17.0.6. Install LLVM 17 clang-format on Linux, macOS, and Windows like refactor/cpp-client-sdk.
* fix(build): bump Maven wrapper to 3.9.12 for cmake-maven-plugin
cmake-maven-plugin 4.2.3-b1 requires Maven 3.9.9+. The wrapper was on 3.9.6, causing with-cpp CI to fail even when using ./mvnw.
* fix(client-cpp): include vector in AbstractSessionBuilder.h
GCC on Linux CI fails when Session.h includes AbstractSessionBuilder.h before vector; add missing #include <vector> for nodeUrls member.
* fix(client-cpp): fix query result parsing and IT on IoTDB 1.3
Apply server columnNameIndexMap for TsBlock reads, align Time column handling with the Java client, and read text types by physical column type. Defer C API session open, disable auto-fetch in tests, and fall back when SHOW AVAILABLE URLS is unsupported.
* fix(client-cpp): address PR review items for public API and Catch2
- Revert unrelated .gitignore changes (.run, .claude, relational-grammar)
- Remove using namespace std from public headers Session.h and Common.h
- Download Catch2 at build time via Maven/CMake instead of vendoring catch.hpp
* style(client-cpp): apply clang-format to Session.h
* fix(client-cpp): download Catch2 before CMake compile phase
Run wget in generate-resources (not generate-test-resources, which runs after compile). CMake also downloads catch.hpp when the header is still missing.
* fix(client-cpp): qualify std types for MSVC after removing using namespace std
- SessionConnection.h/cpp: std::string, std::vector, std::exception, std::shared_ptr
- IoTDBRpcDataSet.cpp: std::exception in catch handlers
- Session.h: (std::max) to avoid Windows max macro conflict
* fix(client-cpp): use sbin start/stop scripts on Windows
Align Windows profile paths with the 1.3 distribution layout (scripts under sbin/, not windows/).
* refactor(client-cpp): remove table-model docs and dead code from dev/1.3 port
Align example READMEs with the tree-only scope, drop unused table-model
API surface, and remove IDeviceID redirect helpers that have no callers.
* fix(ci): auto-detect Visual Studio generator for cpp on Windows
windows-latest now ships VS 2026 while pom.xml defaults to VS 2022.
Use vswhere in the multi-language-client workflow and pass -Dcmake.generator
so CMake matches the installed toolchain.
* fix(ci): align cpp Windows matrix with refactor/cpp-client-sdk workflow
Replace windows-latest and broken vswhere detection with explicit
windows-2022 and windows-2025-vs2026 runners; pass Visual Studio 18 2026
generator only on the VS 2026 image. Also match ubuntu/mac matrix and
add Spotless check from the refactor branch.
* Sync C++ client packaging updates to 1.3
* Fix VS2017 C++ package Boost setup
* Fix Windows C++ client CI dependencies
* Fix C++ client workflow verification1 parent 56a0fcc commit 85b7038
101 files changed
Lines changed: 17409 additions & 10385 deletions
File tree
- .github
- scripts
- workflows
- .mvn/wrapper
- distribution
- example/client-cpp-example
- src
- iotdb-client/client-cpp
- cmake
- src
- assembly
- package-metadata/third_party
- include
- main
- rpc
- session
- test
- cpp
- test
- catch2
- cpp
- third-party
- linux
- mac
- windows
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
0 commit comments