diff --git a/amex-2022-10-20/0_setup/main.go b/amex-2022-10-20/0_setup/main.go index 2953b4e..df48234 100644 --- a/amex-2022-10-20/0_setup/main.go +++ b/amex-2022-10-20/0_setup/main.go @@ -15,14 +15,18 @@ func main() { q := flag.String("q", "show tables", "query to execute") flag.Parse() + query := strings.Trim(strings.TrimSpace(*q), ";") + if len(query) == 0 { + panic("refusing empty query") + } + query += ";" + log.Printf("%s", query) + db, err := sql.Open("sqlite3", *dbpath) if err != nil { panic(err) } - query := strings.Trim(strings.TrimSpace(*q), ";") + ";" - log.Printf("%s", query) - if strings.HasPrefix(strings.ToUpper(strings.TrimSpace(query)), "SELECT") { rows, err := db.Query(query) if err != nil { diff --git a/amex-2022-10-20/3_/db.db b/amex-2022-10-20/3_/db.db new file mode 100644 index 0000000..e52c3d0 Binary files /dev/null and b/amex-2022-10-20/3_/db.db differ diff --git a/amex-2022-10-20/3_/go.mod b/amex-2022-10-20/3_/go.mod deleted file mode 100644 index f39e3a7..0000000 --- a/amex-2022-10-20/3_/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module 3_ - -go 1.18 diff --git a/amex-2022-10-20/3_/mvp.sh b/amex-2022-10-20/3_/mvp.sh new file mode 100644 index 0000000..71c7512 --- /dev/null +++ b/amex-2022-10-20/3_/mvp.sh @@ -0,0 +1,31 @@ +#! /bin/bash + +main() { + set -e + set -o pipefail + + local bin=../0_setup/0_setup + local cmds=( + 'DROP TABLE IF EXISTS events' + ' + CREATE TABLE events ( + sensor_id integer not null, + event_type integer not null + ); + ' + 'INSERT INTO events VALUES (2, 2)' + 'INSERT INTO events VALUES (2, 4)' + 'INSERT INTO events VALUES (2, 2)' + 'INSERT INTO events VALUES (3, 2)' + 'INSERT INTO events VALUES (2, 3)' + "$@" + ) + + for cmd in "${cmds[@]}"; do + echo ================= + $bin -q "$cmd" + echo + done +} + +main "$@"