diff --git a/amex-2022-10-20/0_setup/db.db b/amex-2022-10-20/0_setup/db.db index e69de29..4cfce5a 100644 Binary files a/amex-2022-10-20/0_setup/db.db and b/amex-2022-10-20/0_setup/db.db differ diff --git a/amex-2022-10-20/0_setup/main.go b/amex-2022-10-20/0_setup/main.go index 57f13e3..2953b4e 100644 --- a/amex-2022-10-20/0_setup/main.go +++ b/amex-2022-10-20/0_setup/main.go @@ -21,6 +21,7 @@ func main() { } query := strings.Trim(strings.TrimSpace(*q), ";") + ";" + log.Printf("%s", query) if strings.HasPrefix(strings.ToUpper(strings.TrimSpace(query)), "SELECT") { rows, err := db.Query(query) @@ -44,11 +45,12 @@ func main() { if err := rows.Scan(ptrs...); err != nil { panic(err) } + result := make([]string, len(columns)) for i := range ptrs { ptr := ptrs[i].(*interface{}) - columns[i] = fmt.Sprint(*ptr) + result[i] = fmt.Sprintf("%s:%+v", columns[i], *ptr) } - log.Println(columns) + log.Println(result) } } else { stmt, err := db.Prepare(query) diff --git a/amex-2022-10-20/0_setup/mvp.sh b/amex-2022-10-20/0_setup/mvp.sh new file mode 100644 index 0000000..a310e7a --- /dev/null +++ b/amex-2022-10-20/0_setup/mvp.sh @@ -0,0 +1,51 @@ +#! /bin/bash + +main() { + set -e + set -o pipefail + + local bin=./0_setup + local cmds=( + 'DROP TABLE IF EXISTS a' + 'CREATE TABLE a( + x INT, + y VARCHAR(20), + PRIMARY KEY (x) + )' + 'DROP TABLE IF EXISTS b' + 'CREATE TABLE b( + x INT, + y VARCHAR(20), + PRIMARY KEY (x) + )' + 'SELECT * FROM a' + 'INSERT INTO a + (x, y) + VALUES + (4, "a") + ' + 'SELECT * FROM a' + 'SELECT * FROM b' + 'INSERT INTO b + (x, y) + VALUES + (5, "b") + ' + 'SELECT * FROM b' + 'UPDATE b + SET x=4 + WHERE y="b" + ' + 'SELECT * FROM b' + 'SELECT * FROM a JOIN b WHERE a.x == b.x' + 'SELECT a.y, b.y FROM a JOIN b WHERE a.x == b.x' + ) + + for cmd in "${cmds[@]}"; do + echo ================= + $bin -q "$cmd" + echo + done +} + +main "$@"