merge with main

This commit is contained in:
James Cor
2022-03-04 10:02:35 -08:00
12 changed files with 117 additions and 8 deletions

View File

@@ -29,6 +29,10 @@ inputs:
description: 'json string list of reply to addresses'
required: false
default: "[]"
workflowURL:
description: 'url of the workflow run'
default: ''
required: false
runs:
using: 'node12'
main: 'dist/index.js'

View File

@@ -2,7 +2,7 @@
"Template": {
"TemplateName": "BatsWindowsFailureTemplate",
"SubjectPart": "Bats on Windows failed for ref: {{version}}",
"HtmlPart": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Bats on Windows Failed</title>\n</head><body>Bats on Windows failed for ref: {{version}}</body></html>",
"HtmlPart": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Bats on Windows Failed</title>\n</head><body>Bats on Windows failed for ref: {{version}}\n <a href={{workflowURL}}>{{workflowURL}}</a></body></html>",
"TextPart": "Bats on Windows failed for ref {{version}}\r\n"
}
}

View File

@@ -37418,12 +37418,14 @@ const dataFilePath = core.getInput('dataFile');
const CcAddresses = JSON.parse(core.getInput('ccAddresses'));
const ToAddresses = JSON.parse(core.getInput('toAddresses'));
const ReplyToAddresses = JSON.parse(core.getInput('replyToAddresses'));
const workflowURL = core.getInput('workflowURL');
const data = dataFilePath ? fs.readFileSync(dataFilePath, { encoding: 'utf-8' }) : "";
const templated = {
version,
results: data,
workflowURL,
};
// Set the region

View File

@@ -9,12 +9,14 @@ const dataFilePath = core.getInput('dataFile');
const CcAddresses = JSON.parse(core.getInput('ccAddresses'));
const ToAddresses = JSON.parse(core.getInput('toAddresses'));
const ReplyToAddresses = JSON.parse(core.getInput('replyToAddresses'));
const workflowURL = core.getInput('workflowURL');
const data = dataFilePath ? fs.readFileSync(dataFilePath, { encoding: 'utf-8' }) : "";
const templated = {
version,
results: data,
workflowURL,
};
// Set the region

View File

@@ -172,6 +172,7 @@ jobs:
version: ${{ github.ref }}
template: 'BatsWindowsFailureTemplate'
toAddresses: '["${{ github.event.inputs.email }}"]'
workflowURL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: Send Email
if: ${{ github.event_name == 'repository_dispatch' }}
uses: ./.github/actions/ses-email-action
@@ -180,3 +181,4 @@ jobs:
version: ${{ github.event.client_payload.ref }}
template: 'BatsWindowsFailureTemplate'
toAddresses: '["${{ github.event.client_payload.actor_email }}"]'
workflowURL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@@ -86,7 +86,7 @@ func (cmd DumpCmd) ArgParser() *argparser.ArgParser {
ap := argparser.NewArgParser()
ap.SupportsFlag(forceParam, "f", "If data already exists in the destination, the force flag will allow the target to be overwritten.")
ap.SupportsFlag(batchFlag, "", "Returns batch insert statements wherever possible.")
ap.SupportsString(FormatFlag, "r", "result_file_type", "Define the type of the output file. Defaults to sql. Valid values are sql, csv and json.")
ap.SupportsString(FormatFlag, "r", "result_file_type", "Define the type of the output file. Defaults to sql. Valid values are sql, csv, json and parquet.")
ap.SupportsString(filenameFlag, "", "file_name", "Define file name for dump file. Defaults to `doltdump.sql`.")
ap.SupportsString(directoryFlag, "", "directory_name", "Define directory name to dump the files in. Defaults to `doltdump/`.")

View File

@@ -19,7 +19,7 @@ require (
github.com/dolthub/ishell v0.0.0-20220112232610-14e753f0f371
github.com/dolthub/mmap-go v1.0.4-0.20201107010347-f9f2a9588a66
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81
github.com/dolthub/vitess v0.0.0-20220223194108-24701de779d1
github.com/dolthub/vitess v0.0.0-20220225182101-e6b5b1c33b82
github.com/dustin/go-humanize v1.0.0
github.com/fatih/color v1.9.0
github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568
@@ -68,7 +68,7 @@ require (
)
require (
github.com/dolthub/go-mysql-server v0.11.1-0.20220228230658-12162b45c47f
github.com/dolthub/go-mysql-server v0.11.1-0.20220302174219-fb31d55ac16f
github.com/google/flatbuffers v2.0.5+incompatible
github.com/gosuri/uilive v0.0.4
github.com/kch42/buzhash v0.0.0-20160816060738-9bdec3dec7c6

View File

@@ -170,8 +170,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dolthub/fslock v0.0.3 h1:iLMpUIvJKMKm92+N1fmHVdxJP5NdyDK5bK7z7Ba2s2U=
github.com/dolthub/fslock v0.0.3/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0=
github.com/dolthub/go-mysql-server v0.11.1-0.20220228230658-12162b45c47f h1:0BEzHdo8IKG0xMM2PYEqz9yZ3E4OEhpW6GY+ulBaox0=
github.com/dolthub/go-mysql-server v0.11.1-0.20220228230658-12162b45c47f/go.mod h1:ct7PnuZHbNpgCKjH4G2j19Txx45AxegofCgBgbaw3L8=
github.com/dolthub/go-mysql-server v0.11.1-0.20220302174219-fb31d55ac16f h1:yPBJTPf9BqZ6L8SX7nXsHNIhJftdD2TKQH250FrsWJY=
github.com/dolthub/go-mysql-server v0.11.1-0.20220302174219-fb31d55ac16f/go.mod h1:uyD5IY5YnlV3aSa6vK/GEOcwrvOaG5hl0eDyWZu249w=
github.com/dolthub/ishell v0.0.0-20220112232610-14e753f0f371 h1:oyPHJlzumKta1vnOQqUnfdz+pk3EmnHS3Nd0cCT0I2g=
github.com/dolthub/ishell v0.0.0-20220112232610-14e753f0f371/go.mod h1:dhGBqcCEfK5kuFmeO5+WOx3hqc1k3M29c1oS/R7N4ms=
github.com/dolthub/jsonpath v0.0.0-20210609232853-d49537a30474 h1:xTrR+l5l+1Lfq0NvhiEsctylXinUMFhhsqaEcl414p8=
@@ -180,8 +180,8 @@ github.com/dolthub/mmap-go v1.0.4-0.20201107010347-f9f2a9588a66 h1:WRPDbpJWEnPxP
github.com/dolthub/mmap-go v1.0.4-0.20201107010347-f9f2a9588a66/go.mod h1:N5ZIbMGuDUpTpOFQ7HcsN6WSIpTGQjHP+Mz27AfmAgk=
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81 h1:7/v8q9XGFa6q5Ap4Z/OhNkAMBaK5YeuEzwJt+NZdhiE=
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81/go.mod h1:siLfyv2c92W1eN/R4QqG/+RjjX5W2+gCTRjZxBjI3TY=
github.com/dolthub/vitess v0.0.0-20220223194108-24701de779d1 h1:ozSYBchp+pfPXE26ANxz+cWszqqHnFXANHlTd6T40F8=
github.com/dolthub/vitess v0.0.0-20220223194108-24701de779d1/go.mod h1:qpZ4j0dval04OgZJ5fyKnlniSFUosTH280pdzUjUJig=
github.com/dolthub/vitess v0.0.0-20220225182101-e6b5b1c33b82 h1:zBKJsD8Fkg64VkMgXXwQUoc8TF4LCY3WPq6lHNy4aYo=
github.com/dolthub/vitess v0.0.0-20220225182101-e6b5b1c33b82/go.mod h1:qpZ4j0dval04OgZJ5fyKnlniSFUosTH280pdzUjUJig=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=

View File

@@ -308,6 +308,12 @@ func (kte *keylessTableEditor) StatementStarted(ctx context.Context) {}
// StatementFinished implements TableEditor.
func (kte *keylessTableEditor) StatementFinished(ctx context.Context, errored bool) error {
// If there was an error, clear all deltas
if errored {
for k := range kte.acc.deltas {
delete(kte.acc.deltas, k)
}
}
return nil
}

View File

@@ -307,6 +307,7 @@ DELIM
[[ "$output" =~ "Import completed successfully." ]] || false
run dolt sql -r csv -q "select * from persons"
skip "this only worked b/c no rollback on keyless tables; this also fails on primary key tables"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "ID,LastName,FirstName,Age" ]] || false
[[ "$output" =~ "1,jon,doe,20" ]] || false
@@ -365,6 +366,35 @@ DELIM
[[ "$output" =~ "Lines skipped: 2" ]] || false
}
@test "import-update-tables: error during primary key table just skips" {
cat <<DELIM > bad-updates.csv
pk
1
2
100
3
DELIM
dolt sql -q "CREATE TABLE test(pk int PRIMARY KEY CHECK (pk < 10))"
run dolt table import -u test bad-updates.csv
[ "$status" -eq 1 ]
[[ "$output" =~ "A bad row was encountered while moving data" ]] || false
[[ "$output" =~ "[100]" ]] || false
run dolt table import -u --continue test bad-updates.csv
[ "$status" -eq 0 ]
[[ "$output" =~ "Lines skipped: 1" ]] || false
run dolt sql -r csv -q "select * from test"
skip "table editors need to handle continue flag"
[ "${#lines[@]}" -eq 4 ]
[[ "$output" =~ "pk" ]] || false
[[ "$output" =~ "1" ]] || false
[[ "$output" =~ "2" ]] || false
[[ "$output" =~ "3" ]] || false
}
@test "import-update-tables: compare tables in database with table imported from parquet file" {
dolt sql -q "CREATE TABLE testTypes (pk BIGINT PRIMARY KEY, v1 TIME, v2 YEAR, v3 DATETIME, v4 BOOL, v5 ENUM('one', 'two', 'three'));"
dolt add .

View File

@@ -928,3 +928,59 @@ SQL
[[ "${lines[1]}" = "3" ]] || false
[ "${#lines[@]}" -eq 2 ]
}
@test "keyless: check constraint violation rolls back" {
dolt sql -q "create table test (i int check (i < 10))"
run dolt sql -q "insert into test values (1)"
[ $status -eq 0 ]
run dolt sql -r csv -q "select * from test"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "i" ]] || false
[[ "$output" =~ "1" ]] || false
run dolt sql -q "insert into test values (100)"
[ $status -eq 1 ]
run dolt sql -r csv -q "select * from test"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "i" ]] || false
[[ "$output" =~ "1" ]] || false
run dolt sql -q "insert into test values (2), (3), (100), (4)"
[ $status -eq 1 ]
run dolt sql -r csv -q "select * from test"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "i" ]] || false
[[ "$output" =~ "1" ]] || false
}
@test "keyless: inserting invalid values are rolled back" {
dolt sql -q "create table test (i int check (i < 10))"
run dolt sql -q "insert into test values (1)"
[ $status -eq 0 ]
run dolt sql -r csv -q "select * from test"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "i" ]] || false
[[ "$output" =~ "1" ]] || false
run dolt sql -q "insert into test values ('thisisastring')"
[ $status -eq 1 ]
run dolt sql -r csv -q "select * from test"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "i" ]] || false
[[ "$output" =~ "1" ]] || false
run dolt sql -q "insert into test values (2), (3), ('thisisastring'), (4)"
[ $status -eq 1 ]
run dolt sql -r csv -q "select * from test"
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "i" ]] || false
[[ "$output" =~ "1" ]] || false
}

View File

@@ -100,6 +100,13 @@ teardown() {
[[ "$output" =~ $regex ]] || false
}
@test "no-repo: dolt version does not need write permissions" {
chmod 111 .
run dolt version
skip "dolt version needs write perms"
[ "$status" -eq 0 ]
chmod 755 .
}
# Tests for dolt commands outside of a dolt repository
NOT_VALID_REPO_ERROR="The current directory is not a valid dolt repository."