Bats tests for --data-dir and --use-db

This commit is contained in:
Neil Macneale IV
2023-05-10 15:35:25 -07:00
parent f4f4c200be
commit 63ee4eb798
+55 -1
View File
@@ -1031,7 +1031,7 @@ SQL
run dolt sql -r csv -q "select @@character_set_client"
[ $status -eq 0 ]
[[ "$output" =~ "utf8mb4" ]] || false
run dolt sql -r json -q "select * from test order by a"
[ $status -eq 0 ]
[ "$output" == '{"rows": [{"a":1,"b":1.5,"c":"1","d":"2020-01-01 00:00:00"},{"a":2,"b":2.5,"c":"2","d":"2020-02-02 00:00:00"},{"a":3,"c":"3","d":"2020-03-03 00:00:00"},{"a":4,"b":4.5,"d":"2020-04-04 00:00:00"},{"a":5,"b":5.5,"c":"5"}]}' ]
@@ -2776,3 +2776,57 @@ SQL
[[ "$output" =~ "Query OK, 1 row affected (2".*" sec)" ]] || false
[[ "$output" =~ "Query OK, 1 row affected (3".*" sec)" ]] || false
}
@test "sql: check --data-dir used from a completely different location and still resolve DB names" {
# remove config files
rm -rf .doltcfg
rm -rf db_dir
mkdir db_dir
cd db_dir
ROOT_DIR=$(pwd)
# create an alternate database, without the table
mkdir dba
cd dba
dolt init
cd ..
dolt sql -q "create table dba_tbl (id int)"
mkdir dbb
cd dbb
dolt init
dolt sql -q "create table dbb_tbl (id int)"
# Ensure --data-dir flag is really used by changing the cwd.
cd /tmp
run dolt --data-dir="$ROOT_DIR/dbb" sql -q "show tables"
[ "$status" -eq 0 ]
[[ "$output" =~ "dbb_tbl" ]] || false
run dolt --data-dir="$ROOT_DIR/dba" sql -q "show tables"
[ "$status" -eq 0 ]
[[ "$output" =~ "dba_tbl" ]] || false
# Default to first DB alphabetically.
run dolt --data-dir="$ROOT_DIR" sql -q "show tables"
[ "$status" -eq 0 ]
[[ "$output" =~ "dba_tbl" ]] || false
# --use-db arg can be used to be specific.
run dolt --data-dir="$ROOT_DIR" --use-db=dbb sql -q "show tables"
[ "$status" -eq 0 ]
[[ "$output" =~ "dbb_tbl" ]] || false
# Redundant use of the flag is OK.
run dolt --data-dir="$ROOT_DIR/dbb" --use-db=dbb sql -q "show tables"
[ "$status" -eq 0 ]
[[ "$output" =~ "dbb_tbl" ]] || false
# Use of the use-db flag when we have a different DB specified by data-dir should error.
run dolt --data-dir="$ROOT_DIR/dbb" --use-db=dba sql -q "show tables"
[ "$status" -eq 1 ]
[[ "$output" =~ "database not found" ]] || false
}