mirror of
https://github.com/dolthub/dolt.git
synced 2026-05-04 03:11:52 -05:00
119 lines
2.0 KiB
Bash
119 lines
2.0 KiB
Bash
|
|
two_pk_header="pk1,pk2,c1,c2"
|
|
one_pk_header="pk1,c1,c2"
|
|
|
|
two_pk="$two_pk_header
|
|
1,9,128,32
|
|
2,8,129,31
|
|
3,7,130,30
|
|
4,6,131,29
|
|
5,5,132,28"
|
|
one_pk="$one_pk_header
|
|
1,128,32
|
|
2,129,31
|
|
3,130,30
|
|
4,131,29
|
|
5,132,28"
|
|
|
|
two_pk_all_updated="$two_pk_header
|
|
1,9,128,256
|
|
2,8,129,256
|
|
3,7,130,256
|
|
4,6,131,256
|
|
5,5,132,256"
|
|
one_pk_all_updated="$one_pk_header
|
|
1,128,256
|
|
2,129,256
|
|
3,130,256
|
|
4,131,256
|
|
5,132,256"
|
|
|
|
two_pk_one_row_deleted="$two_pk_header
|
|
1,9,128,32
|
|
3,7,130,30
|
|
4,6,131,29
|
|
5,5,132,28"
|
|
one_pk_one_row_deleted="$one_pk_header
|
|
1,128,32
|
|
3,130,30
|
|
4,131,29
|
|
5,132,28"
|
|
|
|
two_pk_two_row_deleted="$two_pk_header
|
|
1,9,128,32
|
|
4,6,131,29
|
|
5,5,132,28"
|
|
one_pk_two_row_deleted="$one_pk_header
|
|
1,128,32
|
|
4,131,29
|
|
5,132,28"
|
|
|
|
two_pk_one_row_updated="$two_pk_header
|
|
1,9,128,32
|
|
2,8,129,256
|
|
3,7,130,30
|
|
4,6,131,29
|
|
5,5,132,28"
|
|
one_pk_one_row_updated="$one_pk_header
|
|
1,128,32
|
|
2,129,256
|
|
3,130,30
|
|
4,131,29
|
|
5,132,28"
|
|
|
|
two_pk_two_row_updated="$two_pk_header
|
|
1,9,128,32
|
|
2,8,129,256
|
|
3,7,130,256
|
|
4,6,131,29
|
|
5,5,132,28"
|
|
one_pk_two_row_updated="$one_pk_header
|
|
1,128,32
|
|
2,129,256
|
|
3,130,256
|
|
4,131,29
|
|
5,132,28"
|
|
|
|
min_pk1=1
|
|
max_pk1=5
|
|
min_pk2=5
|
|
max_pk2=9
|
|
min_c1=128
|
|
max_c1=132
|
|
min_c2=28
|
|
max_c2=32
|
|
|
|
create_tables() {
|
|
cat <<EOF > two_pk.csv
|
|
$two_pk
|
|
EOF
|
|
cat <<EOF > one_pk.csv
|
|
$one_pk
|
|
EOF
|
|
dolt table import -c -pk pk1,pk2 --file-type=csv two_pk two_pk.csv
|
|
dolt table import -c -pk pk1 --file-type=csv one_pk one_pk.csv
|
|
}
|
|
|
|
test_mutation() {
|
|
dml="$1"
|
|
table="$2"
|
|
expected="$3"
|
|
uses_pk="$4"
|
|
dolt sql -q "$dml"
|
|
run dolt sql -q "select * from $table ORDER BY pk1" -r csv
|
|
[ "$status" -eq "0" ]
|
|
[ "$output" == "$expected" ] || (echo $output && exit 1)
|
|
dolt reset --hard
|
|
dolt sql --batch -q "$dml ; $dml"
|
|
run dolt sql -q "select * from $table ORDER BY pk1" -r csv
|
|
[ "$status" -eq "0" ]
|
|
[ "$output" == "$expected" ] || (echo $output && exit 1)
|
|
run dolt sql -q "explain plan $dml"
|
|
[ "$status" -eq "0" ]
|
|
if ! [ -z "$uses_pk" ]; then
|
|
[[ "$output" =~ "IndexedTableAccess" ]] || exit 1
|
|
else
|
|
if [[ "$output" =~ "IndexedTableAccess" ]]; then exit 1; fi
|
|
fi
|
|
}
|