Skip to content

Commit a0a597e

Browse files
authored
Merge branch 'main' into feat/auto_discover_ip
2 parents b27ae3d + 768d005 commit a0a597e

File tree

23 files changed

+924
-824
lines changed

23 files changed

+924
-824
lines changed

.github/actions/fuse_compat/action.yml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ inputs:
1212
runs:
1313
using: "composite"
1414
steps:
15-
- name: Setup Build Tool
16-
uses: ./.github/actions/setup_build_tool
17-
1815
- name: Download artifact
1916
uses: ./.github/actions/artifact_download
2017
with:
@@ -26,8 +23,20 @@ runs:
2623
- name: Test compatibility
2724
shell: bash
2825
run: |
29-
build-tool bash ./tests/fuse-compat/test-fuse-compat.sh 0.7.150
30-
build-tool bash ./tests/fuse-compat/test-fuse-compat.sh 0.7.151
26+
docker run --rm --tty --net=host \
27+
--user $(id -u):$(id -g) \
28+
--env BUILD_PROFILE \
29+
--volume "${PWD}:/workspace" \
30+
--workdir "/workspace" \
31+
datafuselabs/build-tool:sqllogic \
32+
bash ./tests/fuse-compat/test-fuse-compat.sh 0.7.150
33+
docker run --rm --tty --net=host \
34+
--user $(id -u):$(id -g) \
35+
--env BUILD_PROFILE \
36+
--volume "${PWD}:/workspace" \
37+
--workdir "/workspace" \
38+
datafuselabs/build-tool:sqllogic \
39+
bash ./tests/fuse-compat/test-fuse-compat.sh 0.7.151
3140
3241
- name: Upload failure
3342
if: failure()

Cargo.lock

Lines changed: 21 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/doc/30-reference/30-sql/10-dml/dml-copy-into-table.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,16 @@ COPY INTO mytable
224224
FROM 's3://mybucket/data.csv'
225225
FILE_FORMAT = (type = 'CSV' field_delimiter = ',' record_delimiter = '\n' skip_header = 1) size_limit=10;
226226
```
227+
228+
`Parquet` file example:
229+
```sql
230+
COPY INTO mytable
231+
FROM 's3://mybucket/data.parquet'
232+
CONNECTION = (
233+
ACCESS_KEY_ID = '<your-access-key-ID>'
234+
SECRET_ACCESS_KEY = '<your-secret-access-key>')
235+
FILE_FORMAT = (type = 'PARQUET');
236+
```
227237

228238
**Azure Blob storage**
229239

@@ -236,4 +246,4 @@ COPY INTO mytable
236246
ACCOUNT_NAME = '<account_name>'
237247
ACCOUNT_KEY = '<account_key>'
238248
)
239-
```
249+
```

scripts/ci/ci-run-sqllogic-tests-cluster.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ if [ $# -gt 0 ]; then
1515
fi
1616
echo "Run suites using argument: $RUN_DIR"
1717

18+
echo "pip list"
19+
python3 -m pip list
20+
1821
echo "Starting databend-sqllogic tests"
1922
python3 main.py $RUN_DIR
2023

scripts/ci/ci-run-sqllogic-tests.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ if [ $# -gt 0 ]; then
1515
fi
1616
echo "Run suites using argument: $RUN_DIR"
1717

18+
echo "pip list"
19+
python3 -m pip list
20+
1821
echo "Starting databend-sqllogic tests"
1922
python3 main.py --skip-dir=mode $RUN_DIR
2023

src/common/contexts/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ test = false
1212
common-base = { path = "../base" }
1313

1414
async-trait = "0.1.56"
15-
opendal = { version = "0.16.0", features = ["layers-retry"] }
15+
opendal = { version = "0.17.0", features = ["layers-retry"] }

src/common/contexts/src/dal/dal_context.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,14 @@ impl Accessor for DalContext {
8383
.metadata()
8484
}
8585

86-
fn presign(&self, args: &OpPresign) -> Result<PresignedRequest> {
87-
self.get_inner()?.presign(args)
86+
async fn create(&self, path: &str, args: OpCreate) -> Result<()> {
87+
self.get_inner()?.create(path, args).await
8888
}
8989

90-
async fn create(&self, args: &OpCreate) -> Result<()> {
91-
self.get_inner()?.create(args).await
92-
}
93-
94-
async fn read(&self, args: &OpRead) -> Result<BytesReader> {
90+
async fn read(&self, path: &str, args: OpRead) -> Result<BytesReader> {
9591
let metric = self.metrics.clone();
9692

97-
self.get_inner()?.read(args).await.map(|r| {
93+
self.get_inner()?.read(path, args).await.map(|r| {
9894
let mut last_pending = None;
9995
let r = observe_read(r, move |e| {
10096
let start = match last_pending {
@@ -117,7 +113,7 @@ impl Accessor for DalContext {
117113
})
118114
}
119115

120-
async fn write(&self, args: &OpWrite, r: BytesReader) -> Result<u64> {
116+
async fn write(&self, path: &str, args: OpWrite, r: BytesReader) -> Result<u64> {
121117
let metric = self.metrics.clone();
122118

123119
let mut last_pending = None;
@@ -139,18 +135,22 @@ impl Accessor for DalContext {
139135
metric.inc_write_bytes_cost(start.elapsed().as_millis() as u64);
140136
});
141137

142-
self.get_inner()?.write(args, Box::new(r)).await
138+
self.get_inner()?.write(path, args, Box::new(r)).await
139+
}
140+
141+
async fn stat(&self, path: &str, args: OpStat) -> Result<ObjectMetadata> {
142+
self.get_inner()?.stat(path, args).await
143143
}
144144

145-
async fn stat(&self, args: &OpStat) -> Result<ObjectMetadata> {
146-
self.get_inner()?.stat(args).await
145+
async fn delete(&self, path: &str, args: OpDelete) -> Result<()> {
146+
self.get_inner()?.delete(path, args).await
147147
}
148148

149-
async fn delete(&self, args: &OpDelete) -> Result<()> {
150-
self.get_inner()?.delete(args).await
149+
async fn list(&self, path: &str, args: OpList) -> Result<DirStreamer> {
150+
self.get_inner()?.list(path, args).await
151151
}
152152

153-
async fn list(&self, args: &OpList) -> Result<DirStreamer> {
154-
self.get_inner()?.list(args).await
153+
fn presign(&self, path: &str, args: OpPresign) -> Result<PresignedRequest> {
154+
self.get_inner()?.presign(path, args)
155155
}
156156
}

src/common/contexts/src/dal/dal_runtime.rs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -83,61 +83,61 @@ impl Accessor for DalRuntime {
8383
.metadata()
8484
}
8585

86-
fn presign(&self, args: &OpPresign) -> Result<PresignedRequest> {
87-
self.get_inner()?.presign(args)
88-
}
89-
90-
async fn create(&self, args: &OpCreate) -> Result<()> {
86+
async fn create(&self, path: &str, args: OpCreate) -> Result<()> {
9187
let op = self.get_inner()?;
92-
let args = args.clone();
88+
let path = path.to_string();
9389
self.runtime
94-
.spawn(async move { op.create(&args).await })
90+
.spawn(async move { op.create(&path, args).await })
9591
.await
9692
.expect("join must success")
9793
}
9894

99-
async fn read(&self, args: &OpRead) -> Result<BytesReader> {
95+
async fn read(&self, path: &str, args: OpRead) -> Result<BytesReader> {
10096
let op = self.get_inner()?;
101-
let args = args.clone();
97+
let path = path.to_string();
10298
self.runtime
103-
.spawn(async move { op.read(&args).await })
99+
.spawn(async move { op.read(&path, args).await })
104100
.await
105101
.expect("join must success")
106102
}
107103

108-
async fn write(&self, args: &OpWrite, r: BytesReader) -> Result<u64> {
104+
async fn write(&self, path: &str, args: OpWrite, r: BytesReader) -> Result<u64> {
109105
let op = self.get_inner()?;
110-
let args = args.clone();
106+
let path = path.to_string();
111107
self.runtime
112-
.spawn(async move { op.write(&args, r).await })
108+
.spawn(async move { op.write(&path, args, r).await })
113109
.await
114110
.expect("join must success")
115111
}
116112

117-
async fn stat(&self, args: &OpStat) -> Result<ObjectMetadata> {
113+
async fn stat(&self, path: &str, args: OpStat) -> Result<ObjectMetadata> {
118114
let op = self.get_inner()?;
119-
let args = args.clone();
115+
let path = path.to_string();
120116
self.runtime
121-
.spawn(async move { op.stat(&args).await })
117+
.spawn(async move { op.stat(&path, args).await })
122118
.await
123119
.expect("join must success")
124120
}
125121

126-
async fn delete(&self, args: &OpDelete) -> Result<()> {
122+
async fn delete(&self, path: &str, args: OpDelete) -> Result<()> {
127123
let op = self.get_inner()?;
128-
let args = args.clone();
124+
let path = path.to_string();
129125
self.runtime
130-
.spawn(async move { op.delete(&args).await })
126+
.spawn(async move { op.delete(&path, args).await })
131127
.await
132128
.expect("join must success")
133129
}
134130

135-
async fn list(&self, args: &OpList) -> Result<DirStreamer> {
131+
async fn list(&self, path: &str, args: OpList) -> Result<DirStreamer> {
136132
let op = self.get_inner()?;
137-
let args = args.clone();
133+
let path = path.to_string();
138134
self.runtime
139-
.spawn(async move { op.list(&args).await })
135+
.spawn(async move { op.list(&path, args).await })
140136
.await
141137
.expect("join must success")
142138
}
139+
140+
fn presign(&self, path: &str, args: OpPresign) -> Result<PresignedRequest> {
141+
self.get_inner()?.presign(path, args)
142+
}
143143
}

src/common/storage/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ anyhow = "1.0.64"
1818
backon = "0.1.0"
1919
globiter = "0.1.0"
2020
once_cell = "1.12.0"
21-
opendal = { version = "0.16.0", features = [
21+
opendal = { version = "0.17.0", features = [
2222
"layers-retry",
2323
"layers-tracing",
2424
"layers-metrics",

src/query/catalog/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ common-users = { path = "../users" }
2626

2727
async-trait = "0.1.56"
2828
dyn-clone = "1.0.6"
29-
opendal = { version = "0.16.0", features = ["layers-retry"] }
29+
opendal = { version = "0.17.0", features = ["layers-retry"] }
3030
parking_lot = "0.12.1"

0 commit comments

Comments
 (0)