master
bel 2022-10-20 07:57:21 -06:00
parent 8f7e4b7095
commit 31e3547268
4 changed files with 38 additions and 3 deletions

View File

View File

@ -1,3 +1,5 @@
module 0_setup
go 1.18
require github.com/mattn/go-sqlite3 v1.14.15

View File

@ -0,0 +1,2 @@
github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI=
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=

View File

@ -3,8 +3,11 @@ package main
import (
"database/sql"
"flag"
"fmt"
"log"
"strings"
_ "github.com/mattn/go-sqlite3"
)
func main() {
@ -17,10 +20,38 @@ func main() {
panic(err)
}
if strings.HasPrefix(strings.ToUpper(strings.TrimSpace(*q)), "SELECT") {
panic("not impl")
query := strings.Trim(strings.TrimSpace(*q), ";") + ";"
if strings.HasPrefix(strings.ToUpper(strings.TrimSpace(query)), "SELECT") {
rows, err := db.Query(query)
if err != nil {
panic(err)
}
defer rows.Close()
columns, err := rows.Columns()
if err != nil {
panic(err)
}
ptrs := make([]any, len(columns))
for i := range ptrs {
var v interface{}
ptrs[i] = &v
}
for rows.Next() {
if err := rows.Scan(ptrs...); err != nil {
panic(err)
}
for i := range ptrs {
ptr := ptrs[i].(*interface{})
columns[i] = fmt.Sprint(*ptr)
}
log.Println(columns)
}
} else {
stmt, err := db.Prepare(*q)
stmt, err := db.Prepare(query)
if err != nil {
panic(err)
}