Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
03ed945
feat(sys): add taos wrapper
qevolg Apr 18, 2025
b92b07a
fix(sys): fix clippy errors
qevolg Apr 18, 2025
3fd96a3
refactor(sys): modify taos_options
qevolg Apr 18, 2025
d07f0d0
refactor(sys): delete allow(unused_variables)
qevolg Apr 18, 2025
9879f65
refactor(sys): init driver from env
qevolg Apr 18, 2025
8502795
refactor(sys): refactor driver
qevolg Apr 18, 2025
d5a524b
build(sys): modify libtaos build process
qevolg Apr 18, 2025
739f8d0
fix(sys): fix clippy errors
qevolg Apr 18, 2025
efcc50e
refactor(sys): modify log
qevolg Apr 21, 2025
f7f3c5b
test(sys): add mod test case
qevolg Apr 21, 2025
f59fc29
fix(sys): fix taos_data_type
qevolg Apr 21, 2025
0b993b9
test(sys): add query test case
qevolg Apr 21, 2025
fd789da
test(sys): add sml test case
qevolg Apr 21, 2025
4f303c6
test(sys): add stmt test case
qevolg Apr 21, 2025
020e8a4
test(sys): add stmt2 test case
qevolg Apr 21, 2025
929e1d0
test(sys): add tmq test case
qevolg Apr 21, 2025
94fed46
fix(sys): fix taos_errstr
qevolg Apr 21, 2025
03c96cd
test(sys): fix test_taos_fetch_block and test_taos_fetch_block_s
qevolg Apr 21, 2025
0cce760
test(sys): fix test_taos_get_client_info
qevolg Apr 21, 2025
0407d89
test(sys): modify test_taos_get_column_data_offset
qevolg Apr 22, 2025
5d70622
test(sys): modify test_taos_check_server_status
qevolg Apr 22, 2025
cdbc7f7
refactor(ws): add logs
qevolg Apr 22, 2025
e5ea6a8
test(sys): ignore failed test cases
qevolg Apr 23, 2025
4e8f886
fix(sys): fix clippy error
qevolg Apr 27, 2025
9250e03
refactor(sys): modify default driver
qevolg Apr 27, 2025
5c24007
chore: add sudo permission
qevolg Apr 27, 2025
3b4e20f
chore: create log dir
qevolg Apr 27, 2025
f3ef4fd
chore: setup debug session
qevolg Apr 27, 2025
32a4841
test(sys): ignore failed test case
qevolg Apr 27, 2025
a95f7dc
chore: set cargo
qevolg Apr 27, 2025
4e93022
chore: modify cargo build
qevolg Apr 27, 2025
d0ae234
chore: install Rust for root
qevolg Apr 27, 2025
2e4cff3
chore: modify test command
qevolg Apr 27, 2025
3108e37
test(sys): restore ignored test cases
qevolg Apr 28, 2025
7f1a8ee
fix(sys): initialize driver from environment in taos_options
qevolg Apr 28, 2025
90adcfd
chore: streamline coverage workflow by removing redundant installatio…
qevolg Apr 28, 2025
bf49254
test(sys): unignore previously ignored test cases
qevolg Apr 28, 2025
9b9a8c4
chore: remove unused debug session setup from coverage workflow
qevolg Apr 28, 2025
fed529f
chore: move Clippy step to correct position in build workflow
qevolg Apr 28, 2025
2963779
chore: add --no-fail-fast option to coverage generation command
qevolg Apr 28, 2025
cdb3d10
fix(sys): fix initializing driver from env
qevolg Apr 28, 2025
f3bd718
test(sys): ignore failed test cases
qevolg Apr 28, 2025
a36ed09
feat(coverage): enhance coverage workflow with additional report uplo…
qevolg Apr 28, 2025
8e8748b
test: ignore specific test cases to prevent failures during CI
qevolg Apr 28, 2025
b33daa2
chore: rename coverage job
qevolg Apr 28, 2025
1f8eac0
chore: rename coverage jobs and update report paths for clarity
qevolg Apr 28, 2025
388efd3
test: update database names in test cases
qevolg Apr 28, 2025
2ca9a38
test: refactor connection test functions for clarity and consistency
qevolg Apr 29, 2025
b156951
test(sys): modify test case
qevolg Apr 29, 2025
91b83bb
refactor(sys): refactor tmq_get_topic_assignment and modify test cases
qevolg Apr 29, 2025
4bf9d48
test(sys): fix failed test cases
qevolg Apr 29, 2025
3547a08
fix(sys): fix clippy error
qevolg Apr 29, 2025
b3c1a9a
refactor(sys): optimize memory management in taos_stmt_get_tag_fields…
qevolg Apr 29, 2025
fe1e5aa
refactor(sys): rename variable
qevolg Apr 29, 2025
e997432
refactor(sys): modify stmt test cases
qevolg Apr 30, 2025
f4df318
test(sys): fix stmt test case
qevolg Apr 30, 2025
935499a
test(sys): fix stmt2 test cases
qevolg Apr 30, 2025
8ce1458
style(sys): delete the commented code
qevolg Apr 30, 2025
c8d0f05
style(sys): format code
qevolg Apr 30, 2025
2ac93cc
test(sys): fix query test cases
qevolg Apr 30, 2025
6ab6444
fix(sys): fix clippy error
qevolg Apr 30, 2025
dc4935f
test(sys): fix query test cases
qevolg Apr 30, 2025
983f791
fix(*): fix taos_print_row and taos_get_raw_block
qevolg May 6, 2025
dc2719d
Merge branch 'main' into feat/TD-34596
qevolg May 6, 2025
1d506f1
fix(sys): fix clippy error
qevolg May 6, 2025
09e9df8
fix(sys): fix taos_fetch_raw_block_a
qevolg May 7, 2025
5aa8d4a
chore: add setup debug session step in coverage workflow
qevolg May 7, 2025
9459e40
fix(sys): fix taos_check_server_status
qevolg May 7, 2025
a0cbd25
chore: remove setup debug session step from coverage workflow
qevolg May 7, 2025
a258e63
refactor(sys): rename library from taos to taosws
qevolg May 7, 2025
b30b190
chore: add debug steps for merged coverage file
qevolg May 7, 2025
249b7a4
style: remove outdated FIXME comment regarding Decimal/Decimal64 type…
qevolg May 7, 2025
95a8a5b
chore: add setup debug session step to coverage workflow
qevolg May 7, 2025
600c992
chore: update coverage report file name to lcov-default-driver.info
qevolg May 7, 2025
23ecd6c
chore: update coverage upload steps to use Codecov action and remove …
qevolg May 7, 2025
fc88b38
chore: rename coverage job and update output file names for consistency
qevolg May 7, 2025
3b5ab34
test(sys): add query test case
qevolg May 7, 2025
c128f22
test(sys): fix stmt test case
qevolg May 7, 2025
9e720ac
fix(sys): validate bind parameter count in taos_stmt_bind_param function
qevolg May 7, 2025
de8d67e
feat(sys): impl taos_stmt2_bind_param_a
qevolg May 7, 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
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ jobs:
path: target
key: ${{ runner.os }}-taos-target-${{ steps.setup-rust.outputs.cachekey }}

- name: Run Clippy
run: cargo clippy -- -D warnings

- name: Cargo Build
run: |
cargo build -p taos --no-default-features --features ws-rustls
cargo build -p taos-ws-sys

- name: Run Clippy
run: cargo clippy -- -D warnings

test:
runs-on: ubuntu-latest
steps:
Expand Down
90 changes: 87 additions & 3 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ jobs:
with:
toolchain: 1.78.0

- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- uses: taiki-e/install-action@cargo-llvm-cov
- uses: taiki-e/install-action@cargo-nextest

- uses: actions/cache@v4
with:
Expand Down Expand Up @@ -188,7 +188,91 @@ jobs:
sleep 1

- name: Generate code coverage
run: RUST_BACKTRACE=1 cargo llvm-cov -j 2 --workspace --lcov --output-path lcov.info
run: RUST_BACKTRACE=1 cargo llvm-cov nextest -j 2 --workspace --lcov --output-path lcov.info --no-fail-fast

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: true
verbose: true

coverage-sys-native:
runs-on: ubuntu-latest
needs: build-tdengine
steps:
- name: Get cache server by push
if: github.event_name == 'push'
id: get-cache-server-push
uses: actions/cache@v4
with:
path: server.tar.gz
key: ${{ runner.os }}-build-main-${{ needs.build-tdengine.outputs.commit_id }}
restore-keys: ${{ runner.os }}-build-main-

- name: Get cache server manually
if: github.event_name == 'workflow_dispatch'
id: get-cache-server-manually
uses: actions/cache@v4
with:
path: server.tar.gz
key: ${{ runner.os }}-build-${{ inputs.tdengine_branch }}-${{ needs.build-tdengine.outputs.commit_id }}
restore-keys: ${{ runner.os }}-build-${{ inputs.tdengine_branch }}-

- name: Install TDengine
run: |
tar -zxvf server.tar.gz
cd release && sudo sh install.sh

- uses: actions/checkout@v4

- name: Set up Rust
id: setup-rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.78.0

- uses: taiki-e/install-action@cargo-llvm-cov
- uses: taiki-e/install-action@cargo-nextest

- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-cargo-${{ steps.setup-rust.outputs.rustc_hash }}

- uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-taos-target-${{ steps.setup-rust.outputs.rustc_hash }}

- name: Prepare development tools
run: |
sudo apt update
sudo apt install libjansson-dev libsnappy-dev liblzma-dev libz-dev pkg-config libgflags2.2 libgflags-dev libgeos-dev -y
sudo timedatectl set-timezone Asia/Shanghai
sudo date

- name: Copy taos.cfg
run: |
sudo mkdir -p /etc/taos
sudo cp ./.github/workflows/taos.cfg /etc/taos/taos.cfg

- name: Start TDengine
run: |
mkdir -p /tmp/taos/v3/log /tmp/taos/v3/data
taosd &
TAOS_ADAPTER_LOG_PATH=/tmp/taos/v3/log taosadapter &
sleep 1

- name: Generate code coverage
run: |
export TAOS_DRIVER=native
RUST_BACKTRACE=1 cargo llvm-cov nextest -j 2 --workspace --lcov --output-path lcov.info --no-fail-fast

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
Expand Down
2 changes: 1 addition & 1 deletion taos-optin/tests/query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ fn ws_sync_json() -> anyhow::Result<()> {
let dsn = std::env::var("TEST_DSN").unwrap_or("taos://localhost:6030".to_string());
let dsn = Dsn::from_str(&dsn)?;
let client = TaosBuilder::from_dsn(dsn)?.build()?;
let db = "ws_sync_json";
let db = "ws_sync_json_1745828338";
assert_eq!(client.exec(format!("drop database if exists {db}"))?, 0);
assert_eq!(client.exec(format!("create database {db} keep 36500"))?, 0);
assert_eq!(
Expand Down
2 changes: 1 addition & 1 deletion taos-optin/tests/query_with_req_id.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ fn sync_json_with_req_id() -> anyhow::Result<()> {
let dsn = std::env::var("TEST_DSN").unwrap_or("taos://localhost:6030".to_string());
let dsn = Dsn::from_str(&dsn)?;
let client = TaosBuilder::from_dsn(dsn)?.build()?;
let db = "ws_sync_json";
let db = "ws_sync_json_1745828307";
assert_eq!(client.exec(format!("drop database if exists {db}"))?, 0);
assert_eq!(client.exec(format!("create database {db} keep 36500"))?, 0);
assert_eq!(
Expand Down
1 change: 0 additions & 1 deletion taos-query/src/common/raw/views/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,6 @@ impl ColumnView {
}

/// Get pointer to value.
/// FIXME: for Decimal/Decimal64 type, we can not get complete data from data ptr, we also need precision/scale in schema
#[inline]
pub(super) unsafe fn get_raw_value_unchecked(&self, row: usize) -> (Ty, u32, *const c_void) {
match self {
Expand Down
6 changes: 2 additions & 4 deletions taos-query/src/util/inline_str.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,17 +88,15 @@ macro_rules! _impl_inline_str {
}

#[inline]
#[rustversion::attr(nightly, const)]
pub fn as_bytes(&self) -> &[u8] {
pub const fn as_bytes(&self) -> &[u8] {
if self.len() == 0 {
return &[]
}
unsafe { std::slice::from_raw_parts(self.data.as_ptr(), self.len()) }
}

#[inline]
#[rustversion::attr(nightly, const)]
pub fn as_str(&self) -> &str {
pub const fn as_str(&self) -> &str {
unsafe { std::str::from_utf8_unchecked(self.as_bytes()) }
}

Expand Down
1 change: 1 addition & 0 deletions taos-ws-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ edition = "2021"
publish = false

[lib]
# FIXME: rename taos
name = "taosws"
crate-type = ["cdylib", "staticlib"]

Expand Down
2 changes: 1 addition & 1 deletion taos-ws-sys/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use syn::visit::Visit;
use syn::{ItemConst, ItemFn, Visibility};

fn main() -> Result<(), Box<dyn Error>> {
write_header("taos.h", "src/ws", "cbindgen_ws.toml")?;
write_header("taos.h", "src/taos", "cbindgen.toml")?;
write_header("taosws.h", "src/old_ws", "cbindgen_old_ws.toml")?;
Ok(())
}
Expand Down
13 changes: 12 additions & 1 deletion taos-ws-sys/cbindgen_ws.toml → taos-ws-sys/cbindgen.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
language = "C"
cpp_compat = true
include_guard = "TDENGINE_TAOS_H"
header = """
/*
* Copyright (c) 2024 TAOS Data, Inc. <[email protected]>
Expand All @@ -16,3 +15,15 @@ header = """
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/"""

include_guard = "TDENGINE_TAOS_H"
after_includes = """

#if defined(_WIN32) || defined(_WIN64)
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT
#endif"""

[fn]
prefix = "DLL_EXPORT"
2 changes: 2 additions & 0 deletions taos-ws-sys/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#![feature(c_variadic)]

pub mod native;
pub mod old_ws;
pub mod taos;
pub mod ws;
Loading