Skip to content

Commit

Permalink
feat(service/sqlite): Support sqlite for opendal (#3212)
Browse files Browse the repository at this point in the history
  • Loading branch information
Zheaoli authored Sep 29, 2023
1 parent b58ef2c commit e759da4
Show file tree
Hide file tree
Showing 10 changed files with 513 additions and 0 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/service_test_sqlite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: Service Test Sqlite

on:
push:
branches:
- main
pull_request:
branches:
- main
paths:
- "core/src/**"
- "core/tests/**"
- "!core/src/docs/**"
- "!core/src/services/**"
- "core/src/services/sqlite/**"
- ".github/workflows/service_test_sqlite.yml"
- "fixtures/sqlite/**"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true

jobs:
sqlite:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Setup Sqlite
shell: bash
working-directory: fixtures/sqlite
run: mkdir -p /tmp/opendal && sqlite3 /tmp/opendal/test.db < data.sql

- name: Setup Rust toolchain
uses: ./.github/actions/setup
with:
need-nextest: true

- name: Test
shell: bash
working-directory: core
run: cargo nextest run sqlite --features services-sqlite
env:
OPENDAL_SQLITE_TEST: on
OPENDAL_SQLITE_CONNECTION_STRING: file:///tmp/opendal/test.db
OPENDAL_SQLITE_TABLE: data
OPENDAL_SQLITE_KEY_FIELD: key
OPENDAL_SQLITE_VALUE_FIELD: data
51 changes: 51 additions & 0 deletions Cargo.lock

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

2 changes: 2 additions & 0 deletions core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ services-wasabi = [
services-webdav = []
services-webhdfs = []
services-mysql = ["dep:mysql_async"]
services-sqlite = ["dep:rusqlite"]

[lib]
bench = false
Expand Down Expand Up @@ -276,6 +277,7 @@ tracing = { version = "0.1", optional = true }
uuid = { version = "1", features = ["serde", "v4"] }
mysql_async = { version = "0.32.2", optional = true }
bb8-postgres = { version = "0.8.1", optional = true }
rusqlite = { version = "0.25.0", optional = true, features = ["bundled"] }

[dev-dependencies]
criterion = { version = "0.4", features = ["async", "async_tokio"] }
Expand Down
5 changes: 5 additions & 0 deletions core/src/services/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -218,3 +218,8 @@ pub use self::atomicserver::Atomicserver;
mod mysql;
#[cfg(feature = "services-mysql")]
pub use self::mysql::Mysql;

#[cfg(feature = "services-sqlite")]
mod sqlite;
#[cfg(feature = "services-sqlite")]
pub use self::sqlite::Sqlite;
Loading

0 comments on commit e759da4

Please sign in to comment.