Skip to content

Commit 1260b68

Browse files
LocNguyenHuuclaude
andcommitted
feat: add Cassandra and ScyllaDB database support
Add Cassandra as the 11th database engine in TablePro, with ScyllaDB as a secondary type sharing the same plugin (like MySQL/MariaDB). Uses the DataStax C/C++ driver via a C bridge module. - CassandraDriverPlugin with full CQL support (keyspaces, tables, views, indexes, schema introspection via system_schema) - DatabaseType enum: .cassandra and .scylladb cases across all switch sites - Connection URL schemes: cassandra://, cql://, scylladb://, scylla:// - Theme colors, icon assets, default port 9042 - CQL dialect with keywords, functions, and data types for autocomplete - CI workflow support for building downloadable plugin (build-plugin.yml) - Build script for DataStax cpp-driver + libuv static libraries - Documentation (English + Vietnamese) - Tests for DatabaseType properties and URL parsing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5d5113b commit 1260b68

50 files changed

Lines changed: 14121 additions & 86 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-plugin.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ jobs:
7373
DISPLAY_NAME="DuckDB Driver"; SUMMARY="DuckDB analytical database driver"
7474
DB_TYPE_IDS='["DuckDB"]'; ICON="bird"; BUNDLE_NAME="DuckDBDriver"
7575
HOMEPAGE="https://tablepro.app" ;;
76+
cassandra)
77+
TARGET="CassandraDriver"; BUNDLE_ID="com.TablePro.CassandraDriver"
78+
DISPLAY_NAME="Cassandra Driver"; SUMMARY="Apache Cassandra and ScyllaDB driver via DataStax C driver"
79+
DB_TYPE_IDS='["Cassandra"]'; ICON="cassandra-icon"; BUNDLE_NAME="CassandraDriver"
80+
HOMEPAGE="https://tablepro.app/databases/cassandra" ;;
7681
*) echo "Unknown plugin: $plugin_name"; return 1 ;;
7782
esac
7883
}
@@ -91,6 +96,12 @@ jobs:
9196
9297
echo "Building $TARGET v$VERSION"
9398
99+
# Build Cassandra dependencies if needed
100+
if [ "$PLUGIN_NAME" = "cassandra" ]; then
101+
./scripts/build-cassandra.sh arm64
102+
./scripts/build-cassandra.sh x86_64
103+
fi
104+
94105
# Build both architectures
95106
./scripts/build-plugin.sh "$TARGET" arm64
96107
./scripts/build-plugin.sh "$TARGET" x86_64

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2727
- Pre-connect script: run a shell command before each connection (e.g., to refresh credentials or update ~/.pgpass)
2828
- `ParameterStyle` enum in TableProPluginKit: plugins declare `?` or `$1` placeholder style via `parameterStyle` property on `PluginDatabaseDriver`
2929
- DML statement generation in ClickHouse, MSSQL, and Oracle plugins via `generateStatements()` for database-specific UPDATE/DELETE syntax
30+
- Cassandra and ScyllaDB database support via DataStax C driver (downloadable plugin)
3031

3132
### Changed
3233

Libs/libcassandra.a

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:4ca80d0764d15c1f96dc9dac8919477c71fc437e5f452f5c25128faa03e6f32f
3+
size 5525840

Libs/libcassandra_arm64.a

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:4ca80d0764d15c1f96dc9dac8919477c71fc437e5f452f5c25128faa03e6f32f
3+
size 5525840

Libs/libuv.a

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:f68094acef3ad60d58a59dd3c0d77f49f149a2868da15b38f82fbdc1aff63299
3+
size 251656

Libs/libuv_arm64.a

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:f68094acef3ad60d58a59dd3c0d77f49f149a2868da15b38f82fbdc1aff63299
3+
size 251656
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//
2+
// CCassandra.h
3+
// TablePro
4+
//
5+
// C bridging header for the DataStax Cassandra C driver.
6+
// Headers are bundled in the include/ subdirectory.
7+
//
8+
9+
#ifndef CCassandra_h
10+
#define CCassandra_h
11+
12+
#include "include/cassandra.h"
13+
14+
#endif /* CCassandra_h */

0 commit comments

Comments
 (0)