Skip to content

Instantly share code, notes, and snippets.

@justinj
Created November 7, 2017 21:04
Show Gist options
  • Save justinj/ec08e30c4547c4a4d07b863a537bc9e6 to your computer and use it in GitHub Desktop.
Save justinj/ec08e30c4547c4a4d07b863a537bc9e6 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"github.com/jackc/pgx"
)
func main() {
if err := run(); err != nil {
panic(err)
}
}
func run() error {
db, err := pgx.Connect(pgx.ConnConfig{
Host: "localhost",
Port: 26257,
User: "root",
})
if err != nil {
return err
}
_, err = db.Exec(`DROP DATABASE IF EXISTS test`)
_, err = db.Exec(`CREATE DATABASE test`)
_, err = db.Exec(`USE test`)
_, err = db.Exec(`CREATE TABLE activity_categories (
id INT NOT NULL DEFAULT unique_rowid(),
ref_name STRING NOT NULL,
parent_ids INT[] NULL,
CONSTRAINT "primary" PRIMARY KEY (id ASC),
FAMILY "primary" (id, ref_name, parent_ids)
)`)
if err != nil {
return err
}
_, err = db.Exec(`INSERT INTO activity_categories VALUES (0, 'yolo', ARRAY[1,2,3])`)
if err != nil {
return err
}
_, err = db.Exec(`CREATE TABLE activity_category_strings (
id INT NOT NULL DEFAULT unique_rowid(),
lang STRING NOT NULL,
"name" STRING NOT NULL,
abbr STRING NULL,
activity_category_id INT NOT NULL,
CONSTRAINT "primary" PRIMARY KEY (id ASC),
CONSTRAINT activity_category_strings_activity_category_id_fkey FOREIGN KEY (activity_category_id) REFERENCES activity_categories (id),
INDEX activity_category_strings_auto_index_activity_category_strings_activity_category_id_fkey (activity_category_id ASC),
FAMILY "primary" (id, lang, "name", abbr, activity_category_id)
)`)
if err != nil {
return err
}
_, err = db.Exec(`INSERT INTO activity_category_strings VALUES (0, 'en', 'justin', 'abbr', 0)`)
if err != nil {
return err
}
var n []int64
err = db.QueryRow(`SELECT a0."parent_ids" FROM "activity_categories" AS a0 INNER JOIN "activity_category_strings" AS a1 ON a1."activity_category_id" = a0."id"`).Scan(&n)
fmt.Println(n)
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment