mirror of
https://github.com/dolthub/dolt.git
synced 2025-12-30 16:12:39 -06:00
integration-tests/go-sql-server-driver: Start migrating over some simple tests from sql-server.bats.
This commit is contained in:
@@ -140,131 +140,6 @@ SQL
|
||||
}
|
||||
|
||||
|
||||
@test "sql-server: port in use" {
|
||||
cd repo1
|
||||
|
||||
let PORT="$$ % (65536-1024) + 1024"
|
||||
dolt sql-server --host 0.0.0.0 --port=$PORT --user dolt &
|
||||
SERVER_PID=$! # will get killed by teardown_common
|
||||
sleep 5 # not using python wait so this works on windows
|
||||
|
||||
run dolt sql-server --host 0.0.0.0 --port=$PORT --user dolt
|
||||
[ "$status" -eq 1 ]
|
||||
[[ "$output" =~ "in use" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-server: test autocommit" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
start_sql_server repo1
|
||||
|
||||
# No tables at the start
|
||||
run dolt ls
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "No tables in working set" ]] || false
|
||||
|
||||
# create table with autocommit off and verify there are still no tables
|
||||
server_query repo1 0 dolt "" "CREATE TABLE one_pk (
|
||||
pk BIGINT NOT NULL COMMENT 'tag:0',
|
||||
c1 BIGINT COMMENT 'tag:1',
|
||||
c2 BIGINT COMMENT 'tag:2',
|
||||
PRIMARY KEY (pk)
|
||||
)" ""
|
||||
run dolt ls
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "No tables in working set" ]] || false
|
||||
|
||||
# create table with autocommit on and verify table creation
|
||||
server_query repo1 1 dolt "" "CREATE TABLE one_pk (
|
||||
pk BIGINT NOT NULL COMMENT 'tag:0',
|
||||
c1 BIGINT COMMENT 'tag:1',
|
||||
c2 BIGINT COMMENT 'tag:2',
|
||||
PRIMARY KEY (pk)
|
||||
)" ""
|
||||
run dolt ls
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "one_pk" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-server: read-only flag prevents modification" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
|
||||
DEFAULT_DB="$1"
|
||||
let PORT="$$ % (65536-1024) + 1024"
|
||||
echo "
|
||||
read_only: true" > server.yaml
|
||||
start_sql_server_with_config repo1 server.yaml
|
||||
|
||||
# No tables at the start
|
||||
run dolt ls
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "No tables in working set" ]] || false
|
||||
|
||||
# attempt to create table (autocommit on), expect either some exception
|
||||
server_query repo1 1 dolt "" "CREATE TABLE i_should_not_exist (
|
||||
c0 INT
|
||||
)" "" "database server is set to read only mode"
|
||||
|
||||
# Expect that there are still no tables
|
||||
run dolt ls
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "No tables in working set" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-server: read-only flag still allows select" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
dolt sql -q "create table t(c0 int)"
|
||||
dolt sql -q "insert into t values (1)"
|
||||
|
||||
DEFAULT_DB="$1"
|
||||
let PORT="$$ % (65536-1024) + 1024"
|
||||
echo "
|
||||
read_only: true" > server.yaml
|
||||
start_sql_server_with_config repo1 server.yaml
|
||||
|
||||
# make a select query
|
||||
server_query repo1 1 dolt "" "select * from t" "c0\n1"
|
||||
}
|
||||
|
||||
@test "sql-server: read-only flag prevents dolt_commit" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
|
||||
DEFAULT_DB="$1"
|
||||
let PORT="$$ % (65536-1024) + 1024"
|
||||
echo "
|
||||
read_only: true" > server.yaml
|
||||
start_sql_server_with_config repo1 server.yaml
|
||||
|
||||
# make a dolt_commit query
|
||||
skip "read-only flag does not prevent dolt_commit"
|
||||
server_query repo1 1 dolt "" "call dolt_commit('--allow-empty', '-m', 'msg')" "" "database server is set to read only mode: user does not have permission: write"
|
||||
}
|
||||
|
||||
@test "sql-server: read-only flag prevents dolt_reset" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
run dolt commit --allow-empty -m 'empty test commit'
|
||||
|
||||
DEFAULT_DB="$1"
|
||||
let PORT="$$ % (65536-1024) + 1024"
|
||||
echo "
|
||||
read_only: true" > server.yaml
|
||||
start_sql_server_with_config repo1 server.yaml
|
||||
|
||||
# try to execute dolt_reset
|
||||
skip "read-only flag does not prevent dolt_reset"
|
||||
server_query repo1 1 dolt "" "call dolt_reset('--hard', 'HEAD~1')" "" "database server is set to read only mode: user does not have permission: write"
|
||||
}
|
||||
|
||||
|
||||
@test "sql-server: test command line modification" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
@@ -361,47 +236,6 @@ SQL
|
||||
[[ "$output" =~ "Commit1" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-server: test basic querying via dolt sql-server" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
start_sql_server repo1
|
||||
|
||||
server_query repo1 1 dolt "" "SHOW tables" ""
|
||||
server_query repo1 1 dolt "" "CREATE TABLE one_pk (
|
||||
pk BIGINT NOT NULL COMMENT 'tag:0',
|
||||
c1 BIGINT COMMENT 'tag:1',
|
||||
c2 BIGINT COMMENT 'tag:2',
|
||||
PRIMARY KEY (pk)
|
||||
)" ""
|
||||
server_query repo1 1 dolt "" "SHOW tables" "Tables_in_repo1\none_pk"
|
||||
server_query repo1 1 dolt "" "INSERT INTO one_pk (pk) VALUES (0)"
|
||||
server_query repo1 1 dolt "" "SELECT * FROM one_pk ORDER BY pk" "pk,c1,c2\n0,None,None"
|
||||
server_query repo1 1 dolt "" "INSERT INTO one_pk (pk,c1) VALUES (1,1)"
|
||||
server_query repo1 1 dolt "" "INSERT INTO one_pk (pk,c1,c2) VALUES (2,2,2),(3,3,3)"
|
||||
server_query repo1 1 dolt "" "SELECT * FROM one_pk ORDER by pk" "pk,c1,c2\n0,None,None\n1,1,None\n2,2,2\n3,3,3"
|
||||
server_query repo1 1 dolt "" "UPDATE one_pk SET c2=c1 WHERE c2 is NULL and c1 IS NOT NULL"
|
||||
}
|
||||
|
||||
@test "sql-server: test multiple queries on the same connection" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
start_sql_server repo1
|
||||
|
||||
server_query repo1 1 dolt "" "CREATE TABLE one_pk (
|
||||
pk BIGINT NOT NULL COMMENT 'tag:0',
|
||||
c1 BIGINT COMMENT 'tag:1',
|
||||
c2 BIGINT COMMENT 'tag:2',
|
||||
PRIMARY KEY (pk)
|
||||
);
|
||||
INSERT INTO one_pk (pk) VALUES (0);
|
||||
INSERT INTO one_pk (pk,c1) VALUES (1,1);
|
||||
INSERT INTO one_pk (pk,c1,c2) VALUES (2,2,2),(3,3,3);"
|
||||
|
||||
server_query repo1 1 dolt "" "SELECT * FROM one_pk ORDER by pk" "pk,c1,c2\n0,None,None\n1,1,None\n2,2,2\n3,3,3"
|
||||
}
|
||||
|
||||
@test "sql-server: test reset_hard" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
@@ -553,24 +387,6 @@ SQL
|
||||
server_query repo1 1 dolt "" "SELECT * FROM repo2.r2_one_pk" "pk,c3,c4\n1,1,1\n2,2,2\n3,3,3"
|
||||
}
|
||||
|
||||
@test "sql-server: test CREATE and DROP database via sql-server" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
start_sql_server repo1
|
||||
|
||||
server_query repo1 1 dolt "" "
|
||||
CREATE DATABASE test;
|
||||
USE test;
|
||||
CREATE TABLE pk(pk int primary key);
|
||||
INSERT INTO pk (pk) VALUES (0);
|
||||
"
|
||||
|
||||
server_query repo1 1 dolt "" "SELECT * FROM test.pk ORDER BY pk" "pk\n0"
|
||||
server_query repo1 1 dolt "" "DROP DATABASE test" ""
|
||||
server_query repo1 1 dolt "" "SHOW DATABASES" "Database\ninformation_schema\nmysql\nrepo1"
|
||||
}
|
||||
|
||||
@test "sql-server: DOLT_ADD, DOLT_COMMIT, DOLT_CHECKOUT, DOLT_MERGE work together in server mode" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
@@ -648,21 +464,6 @@ SQL
|
||||
server_query repo1 1 dolt "" "SELECT COUNT(*) FROM dolt_log" "COUNT(*)\n3"
|
||||
}
|
||||
|
||||
@test "sql-server: LOAD DATA LOCAL INFILE works" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
start_sql_server repo1
|
||||
|
||||
server_query repo1 1 dolt "" "
|
||||
CREATE TABLE test(pk int primary key, c1 int, c2 int, c3 int, c4 int, c5 int);
|
||||
SET GLOBAL local_infile = 1;
|
||||
LOAD DATA LOCAL INFILE '$BATS_TEST_DIRNAME/helper/1pk5col-ints.csv' INTO TABLE test CHARACTER SET UTF8MB4 FIELDS TERMINATED BY ',' ESCAPED BY '' LINES TERMINATED BY '\n' IGNORE 1 LINES;
|
||||
"
|
||||
|
||||
server_query repo1 1 dolt "" "SELECT * FROM test" "pk,c1,c2,c3,c4,c5\n0,1,2,3,4,5\n1,1,2,3,4,5"
|
||||
}
|
||||
|
||||
@test "sql-server: Run queries on database without ever selecting it" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
@@ -734,25 +535,6 @@ SQL
|
||||
[[ "$output" =~ "test" ]] || false
|
||||
}
|
||||
|
||||
@test "sql-server: JSON queries" {
|
||||
skip_nbf_dolt
|
||||
cd repo1
|
||||
start_sql_server repo1
|
||||
|
||||
# create table with autocommit on and verify table creation
|
||||
server_query repo1 1 dolt "" "CREATE TABLE js_test (
|
||||
pk int NOT NULL,
|
||||
js json,
|
||||
PRIMARY KEY (pk)
|
||||
)" ""
|
||||
run dolt ls
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" =~ "js_test" ]] || false
|
||||
|
||||
server_query repo1 1 dolt "" "INSERT INTO js_test VALUES (1, '{\"a\":1}');"
|
||||
server_query repo1 1 dolt "" "SELECT * FROM js_test;" "pk,js\n1,{\"a\": 1}"
|
||||
}
|
||||
|
||||
@test "sql-server: manual commit table can be dropped (validates superschema structure)" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
@@ -858,27 +640,6 @@ SQL
|
||||
server_query "repo1/$hash" 1 dolt "" "select count(*) from test" "count(*)\n3"
|
||||
}
|
||||
|
||||
@test "sql-server: select a branch with the USE syntax" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
cd repo1
|
||||
dolt checkout -b "feature-branch"
|
||||
dolt checkout main
|
||||
start_sql_server repo1
|
||||
|
||||
server_query repo1 1 dolt "" '
|
||||
USE `repo1/feature-branch`;
|
||||
CREATE TABLE test (
|
||||
pk int,
|
||||
c1 int,
|
||||
PRIMARY KEY (pk)
|
||||
)' ""
|
||||
|
||||
server_query repo1 1 dolt "" "SHOW tables" "" # no tables on main
|
||||
|
||||
server_query "repo1/feature-branch" 1 dolt "" "SHOW Tables" "Tables_in_repo1/feature-branch\ntest"
|
||||
}
|
||||
|
||||
@test "sql-server: SET GLOBAL default branch as ref" {
|
||||
skiponwindows "Missing dependencies"
|
||||
|
||||
|
||||
@@ -278,7 +278,11 @@ func (s *SqlServer) Restart(newargs *[]string) error {
|
||||
}
|
||||
|
||||
func (s *SqlServer) DB() (*sql.DB, error) {
|
||||
db, err := sql.Open("mysql", fmt.Sprintf("root@tcp(127.0.0.1:%d)/%s", s.Port, s.DBName))
|
||||
authority := "root"
|
||||
location := fmt.Sprintf("tcp(127.0.0.1:%d)", s.Port)
|
||||
dbname := s.DBName
|
||||
dsn := fmt.Sprintf("%s@%s/%s?allowAllFiles=true", authority, location, dbname)
|
||||
db, err := sql.Open("mysql", dsn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -25,3 +25,7 @@ func TestConfig(t *testing.T) {
|
||||
func TestCluster(t *testing.T) {
|
||||
RunTestsFile(t, "tests/sql-server-cluster.yaml")
|
||||
}
|
||||
|
||||
func TestOriginal(t *testing.T) {
|
||||
RunTestsFile(t, "tests/sql-server-orig.yaml")
|
||||
}
|
||||
|
||||
3
integration-tests/go-sql-server-driver/testdata/1pk5col-ints.csv
vendored
Normal file
3
integration-tests/go-sql-server-driver/testdata/1pk5col-ints.csv
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
pk,c1,c2,c3,c4,c5
|
||||
0,1,2,3,4,5
|
||||
1,1,2,3,4,5
|
||||
|
@@ -39,6 +39,9 @@ type Test struct {
|
||||
Repos []TestRepo `yaml:"repos"`
|
||||
MultiRepos []MultiRepo `yaml:"multi_repos"`
|
||||
Conns []Connection `yaml:"connections"`
|
||||
|
||||
// Skip the entire test with this reason.
|
||||
Skip string `yaml:"skip"`
|
||||
}
|
||||
|
||||
// |Connection| represents a single connection to a sql-server instance defined
|
||||
@@ -213,6 +216,10 @@ func MakeServer(t *testing.T, dc DoltCmdable, s *Server) (*SqlServer, func()) {
|
||||
}
|
||||
|
||||
func (test Test) Run(t *testing.T) {
|
||||
if test.Skip != "" {
|
||||
t.Skip(test.Skip)
|
||||
}
|
||||
|
||||
u, err := NewDoltUser()
|
||||
require.NoError(t, err)
|
||||
rs, err := u.MakeRepoStore()
|
||||
@@ -234,6 +241,10 @@ func (test Test) Run(t *testing.T) {
|
||||
server.DBName = r.Name
|
||||
servers[r.Name] = server
|
||||
defer close()
|
||||
|
||||
db, err := server.DB()
|
||||
require.NoError(t, err)
|
||||
dbs[r.Name] = db
|
||||
}
|
||||
}
|
||||
for _, mr := range test.MultiRepos {
|
||||
@@ -253,13 +264,11 @@ func (test Test) Run(t *testing.T) {
|
||||
if server != nil {
|
||||
servers[mr.Name] = server
|
||||
defer close()
|
||||
}
|
||||
}
|
||||
|
||||
for n, s := range servers {
|
||||
db, err := s.DB()
|
||||
require.NoError(t, err)
|
||||
dbs[n] = db
|
||||
db, err := server.DB()
|
||||
require.NoError(t, err)
|
||||
dbs[mr.Name] = db
|
||||
}
|
||||
}
|
||||
|
||||
for i, c := range test.Conns {
|
||||
|
||||
@@ -0,0 +1,291 @@
|
||||
tests:
|
||||
- name: read-only flag prevents modification
|
||||
repos:
|
||||
- name: repo1
|
||||
server:
|
||||
args: ["--config", "readonly.yaml"]
|
||||
with_files:
|
||||
- name: readonly.yaml
|
||||
contents: |
|
||||
log_level: trace
|
||||
behavior:
|
||||
read_only: true
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "show tables"
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: []
|
||||
- exec: "create table i_should_not_exist (c0 INT)"
|
||||
error_match: "database server is set to read only mode"
|
||||
- query: "show tables"
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: []
|
||||
- name: read-only flag still allows select
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
with_files:
|
||||
- name: readonly.yaml
|
||||
contents: |
|
||||
behavior:
|
||||
read_only: true
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "create table t(c0 int)"
|
||||
- exec: "insert into t values (1)"
|
||||
restart_server:
|
||||
args: ["--config", "readonly.yaml"]
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "select * from t"
|
||||
result:
|
||||
columns: ["c0"]
|
||||
rows: [["1"]]
|
||||
- name: read-only flag prevents dolt_commit
|
||||
skip: read-only flag does not prevent dolt_commit
|
||||
repos:
|
||||
- name: repo1
|
||||
server:
|
||||
args: ["--config", "readonly.yaml"]
|
||||
with_files:
|
||||
- name: readonly.yaml
|
||||
contents: |
|
||||
log_level: trace
|
||||
behavior:
|
||||
read_only: true
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "call dolt_commit('--allow-empty', '-m', 'msg')"
|
||||
error_match: "database server is set to read only mode: user does not have permission: write"
|
||||
- name: read-only flag prevents dolt_reset
|
||||
skip: read-only flag does not prevent dolt_reset
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
with_files:
|
||||
- name: readonly.yaml
|
||||
contents: |
|
||||
log_level: trace
|
||||
behavior:
|
||||
read_only: true
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "call dolt_commit('--allow-empty', '-m', 'msg')"
|
||||
restart_server:
|
||||
args: ["--config", "readonly.yaml"]
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "call dolt_reset('--hard', 'HEAD~1')"
|
||||
error_match: "database server is set to read only mode: user does not have permission: write"
|
||||
- name: port in use
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
- name: repo2
|
||||
server:
|
||||
error_matches:
|
||||
- "already in use"
|
||||
- name: test autocommit
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: 'set autocommit=0'
|
||||
- exec: 'create table t(c0 int)'
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: 'show tables'
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: []
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: 'create table t(c0 int)'
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: 'show tables'
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: [["t"]]
|
||||
- name: test basic querying via dolt sql-server
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: 'show tables'
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: []
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: |
|
||||
CREATE TABLE one_pk (
|
||||
pk BIGINT NOT NULL COMMENT 'tag:0',
|
||||
c1 BIGINT COMMENT 'tag:1',
|
||||
c2 BIGINT COMMENT 'tag:2',
|
||||
PRIMARY KEY (pk)
|
||||
)
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: 'show tables'
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: [["one_pk"]]
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "INSERT INTO one_pk (pk) VALUES (0)"
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "SELECT * FROM one_pk ORDER BY pk"
|
||||
result:
|
||||
columns: ["pk","c1","c2"]
|
||||
rows: [["0","NULL","NULL"]]
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "INSERT INTO one_pk (pk,c1) VALUES (1,1)"
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "INSERT INTO one_pk (pk,c1,c2) VALUES (2,2,2),(3,3,3)"
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "SELECT * FROM one_pk ORDER BY pk"
|
||||
result:
|
||||
columns: ["pk","c1","c2"]
|
||||
rows:
|
||||
- ["0","NULL","NULL"]
|
||||
- ["1","1","NULL"]
|
||||
- ["2","2","2"]
|
||||
- ["3","3","3"]
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "UPDATE one_pk SET c2=c1 WHERE c2 is NULL and c1 IS NOT NULL"
|
||||
- name: test multiple queries on same connection
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: |
|
||||
CREATE TABLE one_pk (
|
||||
pk BIGINT NOT NULL COMMENT 'tag:0',
|
||||
c1 BIGINT COMMENT 'tag:1',
|
||||
c2 BIGINT COMMENT 'tag:2',
|
||||
PRIMARY KEY (pk)
|
||||
)
|
||||
- exec: "INSERT INTO one_pk (pk) VALUES (0)"
|
||||
- exec: "INSERT INTO one_pk (pk,c1) VALUES (1,1)"
|
||||
- exec: "INSERT INTO one_pk (pk,c1,c2) VALUES (2,2,2),(3,3,3)"
|
||||
- query: "SELECT * FROM one_pk ORDER BY pk"
|
||||
result:
|
||||
columns: ["pk","c1","c2"]
|
||||
rows:
|
||||
- ["0","NULL","NULL"]
|
||||
- ["1","1","NULL"]
|
||||
- ["2","2","2"]
|
||||
- ["3","3","3"]
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "SELECT * FROM one_pk ORDER BY pk"
|
||||
result:
|
||||
columns: ["pk","c1","c2"]
|
||||
rows:
|
||||
- ["0","NULL","NULL"]
|
||||
- ["1","1","NULL"]
|
||||
- ["2","2","2"]
|
||||
- ["3","3","3"]
|
||||
- name: test CREATE and DROP database via sql-server
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "CREATE DATABASE test"
|
||||
- exec: "USE test"
|
||||
- exec: "CREATE TABLE pk(pk int primary key)"
|
||||
- exec: "INSERT INTO pk (pk) VALUES (0)"
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "SELECT * FROM test.pk ORDER BY pk"
|
||||
result:
|
||||
columns: ["pk"]
|
||||
rows: [["0"]]
|
||||
- exec: "drop database test"
|
||||
- query: "show databases"
|
||||
result:
|
||||
columns: ["Database"]
|
||||
rows:
|
||||
- ["information_schema"]
|
||||
- ["mysql"]
|
||||
- ["repo1"]
|
||||
- name: LOAD DATA LOCAL INFILE works
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "CREATE TABLE test(pk int primary key, c1 int, c2 int, c3 int, c4 int, c5 int)"
|
||||
- exec: "SET GLOBAL local_infile = 1"
|
||||
- exec: "LOAD DATA LOCAL INFILE 'testdata/1pk5col-ints.csv' INTO TABLE test CHARACTER SET UTF8MB4 FIELDS TERMINATED BY ',' ESCAPED BY '' LINES TERMINATED BY '\n' IGNORE 1 LINES"
|
||||
- query: "SELECT * FROM test"
|
||||
result:
|
||||
columns: ["pk","c1","c2","c3","c4","c5"]
|
||||
rows:
|
||||
- ["0","1","2","3","4","5"]
|
||||
- ["1","1","2","3","4","5"]
|
||||
- name: JSON queries
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: |
|
||||
CREATE TABLE js_test (
|
||||
pk int NOT NULL,
|
||||
js json,
|
||||
PRIMARY KEY (pk)
|
||||
)
|
||||
- exec: |
|
||||
INSERT INTO js_test VALUES (1, '{"a":1}')
|
||||
- query: "SELECT * FROM js_test"
|
||||
result:
|
||||
columns: ["pk","js"]
|
||||
rows: [["1", '{"a":1}']]
|
||||
- name: select a branch with the USE syntax
|
||||
repos:
|
||||
- name: repo1
|
||||
server: {}
|
||||
connections:
|
||||
- on: repo1
|
||||
queries:
|
||||
- exec: "call dolt_branch('feature-branch')"
|
||||
- exec: "use `repo1/feature-branch`"
|
||||
- exec: |
|
||||
CREATE TABLE test (
|
||||
pk int,
|
||||
c1 int,
|
||||
PRIMARY KEY (pk)
|
||||
)
|
||||
- on: repo1
|
||||
queries:
|
||||
- query: "show tables"
|
||||
result:
|
||||
columns: ["Tables_in_repo1"]
|
||||
rows: []
|
||||
- exec: "use `repo1/feature-branch`"
|
||||
result:
|
||||
columns: ["Tables_in_repo1/feature-branch"]
|
||||
rows: [["test"]]
|
||||
Reference in New Issue
Block a user