Skip to content

Commit 9da324f

Browse files
authored
fix: max_files not work for transform on ndjson/csv/tsv. (#15441)
1 parent 5506ec7 commit 9da324f

File tree

3 files changed

+57
-27
lines changed

3 files changed

+57
-27
lines changed

src/query/sql/src/planner/binder/table.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -942,7 +942,7 @@ impl Binder {
942942
schema,
943943
stage_info,
944944
files_info,
945-
files_to_copy: None,
945+
files_to_copy,
946946
duplicated_files_detected: vec![],
947947
is_select: true,
948948
default_values: None,
@@ -977,7 +977,7 @@ impl Binder {
977977
schema,
978978
stage_info,
979979
files_info,
980-
files_to_copy: None,
980+
files_to_copy,
981981
duplicated_files_detected: vec![],
982982
is_select: true,
983983
default_values: None,

tests/suites/1_stateful/00_stage/00_0004_copy_with_max_files.result

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
1-
--- force = false, purge = false
1+
--- force = false, purge = false, transform = false
22
copied 2 files with 4 rows, remain 3 files
33
copied 1 files with 6 rows, remain 3 files
44
copied 0 files with 6 rows, remain 3 files
5-
--- force = false, purge = true
5+
--- force = false, purge = true, transform = false
66
copied 2 files with 4 rows, remain 1 files
77
copied 1 files with 6 rows, remain 0 files
88
copied 0 files with 6 rows, remain 0 files
9-
--- force = true, purge = false
9+
--- force = true, purge = false, transform = false
1010
copied 2 files with 4 rows, remain 3 files
1111
copied 2 files with 8 rows, remain 3 files
1212
copied 2 files with 12 rows, remain 3 files
13-
--- force = true, purge = true
13+
--- force = true, purge = true, transform = false
14+
copied 2 files with 4 rows, remain 1 files
15+
copied 1 files with 6 rows, remain 0 files
16+
copied 0 files with 6 rows, remain 0 files
17+
--- force = false, purge = false, transform = true
18+
copied 2 files with 4 rows, remain 3 files
19+
copied 1 files with 6 rows, remain 3 files
20+
copied 0 files with 6 rows, remain 3 files
21+
--- force = false, purge = true, transform = true
22+
copied 2 files with 4 rows, remain 1 files
23+
copied 1 files with 6 rows, remain 0 files
24+
copied 0 files with 6 rows, remain 0 files
25+
--- force = true, purge = false, transform = true
26+
copied 2 files with 4 rows, remain 3 files
27+
copied 2 files with 8 rows, remain 3 files
28+
copied 2 files with 12 rows, remain 3 files
29+
--- force = true, purge = true, transform = true
1430
copied 2 files with 4 rows, remain 1 files
1531
copied 1 files with 6 rows, remain 0 files
1632
copied 0 files with 6 rows, remain 0 files

tests/suites/1_stateful/00_stage/00_0004_copy_with_max_files.sh

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
66

77
# Should be <root>/tests/data/
88

9-
for force in 'false' 'true'
9+
for transform in 'false' 'true'
1010
do
11-
for purge in 'false' 'true'
11+
for force in 'false' 'true'
1212
do
13-
table="test_max_files_force_${force}_purge_${purge}"
14-
echo "drop table if exists ${table}" | $BENDSQL_CLIENT_CONNECT
15-
echo "CREATE TABLE ${table} (
16-
id INT,
17-
c1 INT
18-
) ENGINE=FUSE;" | $BENDSQL_CLIENT_CONNECT
13+
for purge in 'false' 'true'
14+
do
15+
table="test_max_files_force_${force}_purge_${purge}_transform_${transform}"
16+
echo "drop table if exists ${table}" | $BENDSQL_CLIENT_CONNECT
17+
echo "CREATE TABLE ${table} (
18+
id INT,
19+
c1 INT
20+
) ENGINE=FUSE;" | $BENDSQL_CLIENT_CONNECT
21+
done
1922
done
2023
done
2124

@@ -39,28 +42,39 @@ cat << EOF > /tmp/00_0004/f3.csv
3942
EOF
4043
}
4144

42-
for force in 'false' 'true'
45+
for transform in 'false' 'true'
4346
do
44-
for purge in 'false' 'true'
47+
for force in 'false' 'true'
4548
do
46-
gen_files
47-
echo "--- force = ${force}, purge = ${purge}"
48-
for i in {1..3}
49+
for purge in 'false' 'true'
4950
do
50-
table="test_max_files_force_${force}_purge_${purge}"
51-
copied=$(echo "copy into ${table} from 'fs:///tmp/00_0004/' FILE_FORMAT = (type = CSV) max_files=2 force=${force} purge=${purge}" | $BENDSQL_CLIENT_CONNECT | wc -l | sed 's/ //g')
52-
copied_rows=$(echo "select count(*) from ${table}" | $BENDSQL_CLIENT_CONNECT)
53-
remain=$(ls -1 /tmp/00_0004/ | wc -l | sed 's/ //g')
54-
echo "copied ${copied} files with ${copied_rows} rows, remain ${remain} files"
51+
gen_files
52+
echo "--- force = ${force}, purge = ${purge}, transform = ${transform}"
53+
for i in {1..3}
54+
do
55+
table="test_max_files_force_${force}_purge_${purge}_transform_${transform}"
56+
if [ "$transform" = true ]; then
57+
copied=$(echo "copy into ${table} from 'fs:///tmp/00_0004/' FILE_FORMAT = (type = CSV) max_files=2 force=${force} purge=${purge}" | $BENDSQL_CLIENT_CONNECT | wc -l | sed 's/ //g')
58+
else
59+
copied=$(echo "copy into ${table} from (select \$1, \$2 from 'fs:///tmp/00_0004/') FILE_FORMAT = (type = CSV) max_files=2 force=${force} purge=${purge}" | $BENDSQL_CLIENT_CONNECT | wc -l | sed 's/ //g')
60+
fi
61+
copied_rows=$(echo "select count(*) from ${table}" | $BENDSQL_CLIENT_CONNECT)
62+
remain=$(ls -1 /tmp/00_0004/ | wc -l | sed 's/ //g')
63+
echo "copied ${copied} files with ${copied_rows} rows, remain ${remain} files"
64+
done
5565
done
5666
done
5767
done
5868

59-
for force in 'false' 'true'
69+
for transform in 'false' 'true'
6070
do
61-
for purge in 'false' 'true'
71+
for force in 'false' 'true'
6272
do
63-
echo "drop table if exists test_max_files_force_${force}_purge_${purge}" | $BENDSQL_CLIENT_CONNECT
73+
for purge in 'false' 'true'
74+
do
75+
table="test_max_files_force_${force}_purge_${purge}"
76+
echo "drop table if exists ${table}" | $BENDSQL_CLIENT_CONNECT
77+
done
6478
done
6579
done
6680

0 commit comments

Comments
 (0)