Skip to content

Instantly share code, notes, and snippets.

@ainar-g
Created February 24, 2016 10:39
Show Gist options
  • Save ainar-g/8495832a8cd670295ebc to your computer and use it in GitHub Desktop.
Save ainar-g/8495832a8cd670295ebc to your computer and use it in GitHub Desktop.
Testing bigserial on a 64-bit system
package main
import (
"database/sql"
"log"
"math"
_ "github.com/lib/pq"
)
func main() {
db, err := sql.Open("postgres", "dbname=postgres host=localhost port=5432 user=postgres password=postgres")
if err != nil {
log.Printf("open: %v", err)
}
if err = db.Ping(); err != nil {
log.Printf("open ping: %v", err)
}
defer db.Close()
sqlInit := `CREATE TABLE IF NOT EXISTS test (id bigserial)`
if _, err = db.Exec(sqlInit); err != nil {
log.Printf("init: %v", err)
}
sqlDelete := `DELETE FROM test`
if _, err = db.Exec(sqlDelete); err != nil {
log.Printf("delete: %v", err)
}
nums := []int{
1,
math.MaxInt64,
math.MinInt64,
}
sqlInsert := `INSERT INTO test (id) VALUES ($1)`
for i, n := range nums {
if _, err = db.Exec(sqlInsert, n); err != nil {
log.Printf("num #%d: %v", i, err)
}
}
gotNums := make([]int, len(nums))
sqlSelect := `SELECT * FROM test`
rows, err := db.Query(sqlSelect)
if err != nil {
log.Printf("select: %v", err)
}
defer rows.Close()
i := 0
for rows.Next() {
if err = rows.Scan(&gotNums[i]); err != nil {
log.Printf("scan #%d: %v", i, err)
}
i++
}
log.Printf("nums: %v", nums)
log.Printf(" got: %v", gotNums)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment