mirror of
https://github.com/dolthub/dolt.git
synced 2026-05-20 19:38:55 -05:00
More tests
This commit is contained in:
@@ -8,28 +8,26 @@ teardown() {
|
||||
teardown_common
|
||||
}
|
||||
|
||||
# These tests use batch mode since the in memory db spawned by CREATE DATABASE expire after each session.
|
||||
@test "sql-create-database: create new database" {
|
||||
run dolt sql << SQL
|
||||
CREATE DATABASE mydb;
|
||||
SHOW DATABASES;
|
||||
USE mydb;
|
||||
CREATE TABLE test (
|
||||
pk int primary key
|
||||
);
|
||||
INSERT INTO test VALUES (222);
|
||||
SELECT COUNT(*) FROM test WHERE pk=222;
|
||||
DROP DATABASE mydb;
|
||||
SQL
|
||||
[ "$status" -eq 0 ]
|
||||
|
||||
run dolt sql -q "SHOW DATABASES;"
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "dolt_repo_$$" ]] || false
|
||||
[[ "$output" =~ "information_schema" ]] || false
|
||||
[[ "$output" =~ "mydb" ]] || false
|
||||
# From COUNT
|
||||
|
||||
run dolt sql -b -q "use mydb; SELECT COUNT(*) FROM test WHERE pk=222;"
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "1" ]] || false
|
||||
|
||||
run dolt sql -q "SHOW DATABASES"
|
||||
[[ "$output" =~ "mydb" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-create-database: drop database" {
|
||||
@@ -54,26 +52,72 @@ SQL
|
||||
[ ! -d mydb ]
|
||||
}
|
||||
|
||||
@test "sql-create-database: create database that already exists throws an error" {
|
||||
run dolt sql << SQL
|
||||
CREATE DATABASE mydb;
|
||||
CREATE DATABASE mydb;
|
||||
@test "sql-create-database: with multi-db-dir" {
|
||||
mkdir db_dir
|
||||
|
||||
dolt sql --multi-db-dir db_dir <<SQL
|
||||
create database mydb1;
|
||||
create database mydb2;
|
||||
use mydb1;
|
||||
create table test(a int primary key);
|
||||
select dolt_commit("-am", "first commit mydb1");
|
||||
use mydb2;
|
||||
begin;
|
||||
create table test(a int primary key);
|
||||
select dolt_commit("-am", "first commit mydb2");
|
||||
SQL
|
||||
|
||||
[ -d db_dir/mydb1 ]
|
||||
[ -d db_dir/mydb2 ]
|
||||
cd db_dir/mydb1
|
||||
|
||||
run dolt log -n 1
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "first commit mydb1" ]] || false
|
||||
|
||||
cd ../mydb2
|
||||
run dolt log -n 1
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "first commit mydb2" ]] || false
|
||||
|
||||
cd ../../
|
||||
|
||||
dolt sql --multi-db-dir db_dir -q "drop database mydb1"
|
||||
|
||||
[ ! -d mydb1 ]
|
||||
[ -d mydb2 ]
|
||||
|
||||
run dolt sql --multi-db-dir db_dir -q "show databases"
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "mydb2" ]] || false
|
||||
[[ ! "$output" =~ "mydb1" ]] || false
|
||||
[[ ! "$output" =~ "dolt_repo_$$" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-create-database: drop current database" {
|
||||
skip "unsupported to drop the current DB, but need to have a way"
|
||||
|
||||
dolt sql -q "drop database dolt_repo_$$"
|
||||
|
||||
[ ! -d mydb ]
|
||||
}
|
||||
|
||||
@test "sql-create-database: create database that already exists throws an error" {
|
||||
dolt sql -q "CREATE DATABASE mydb"
|
||||
run dolt sql -q "CREATE DATABASE mydb"
|
||||
|
||||
[ "$status" -eq 1 ]
|
||||
[[ "$output" =~ "can't create database mydb; database exists" ]] || false
|
||||
[[ "$output" =~ "database exists" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-create-database: create database IF NOT EXISTS on database that already exists doesn't throw an error" {
|
||||
run dolt sql << SQL
|
||||
CREATE DATABASE mydb;
|
||||
CREATE DATABASE IF NOT EXISTS mydb;
|
||||
SQL
|
||||
dolt sql -q "CREATE DATABASE mydb"
|
||||
run dolt sql -q "CREATE DATABASE IF NOT EXISTS mydb"
|
||||
|
||||
[ "$status" -eq 0 ]
|
||||
}
|
||||
|
||||
@test "sql-create-database: create and drop new database" {
|
||||
@test "sql-create-database: create and drop new database in same session" {
|
||||
run dolt sql << SQL
|
||||
CREATE DATABASE mydb;
|
||||
DROP DATABASE mydb;
|
||||
@@ -87,7 +131,7 @@ SQL
|
||||
[[ "$output" =~ "database not found: mydb" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-create-database: create new database IF EXISTS works" {
|
||||
@test "sql-create-database: create new database IF NOT EXISTS" {
|
||||
# Test bad syntax.
|
||||
run dolt sql -q "CREATE DATABASE IF EXISTS test;"
|
||||
[ "$status" -eq 1 ]
|
||||
@@ -150,24 +194,12 @@ SQL
|
||||
}
|
||||
|
||||
@test "sql-create-database: create new database via SCHEMA alias" {
|
||||
run dolt sql << SQL
|
||||
CREATE SCHEMA mydb;
|
||||
SHOW DATABASES;
|
||||
USE mydb;
|
||||
CREATE TABLE test (
|
||||
pk int primary key
|
||||
);
|
||||
INSERT INTO test VALUES (222);
|
||||
SELECT COUNT(*) FROM test WHERE pk=222;
|
||||
DROP SCHEMA mydb;
|
||||
SQL
|
||||
dolt sql -q "CREATE SCHEMA mydb"
|
||||
|
||||
run dolt sql -q "SHOW DATABASES;"
|
||||
[[ "$output" =~ "dolt_repo_$$" ]] || false
|
||||
[[ "$output" =~ "information_schema" ]] || false
|
||||
[[ "$output" =~ "mydb" ]] || false
|
||||
[[ "$output" =~ "1" ]] || false
|
||||
|
||||
run dolt sql -q "SHOW DATABASES"
|
||||
[[ "$output" =~ "mydb" ]] || false
|
||||
[[ "$output" =~ "mydb" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-create-database: use for non existing database throws an error" {
|
||||
|
||||
Reference in New Issue
Block a user