package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/lib/pq"
"github.com/omniql-engine/omniql"
)
func main() {
// Connect to database
db, err := sql.Open("postgres", "postgres://localhost/myapp?sslmode=disable")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// Wrap with OmniQL
client := oql.WrapSQL(db, "PostgreSQL")
// Create a user
result, err := client.Query(`:CREATE User WITH name:"John", age:25, email:"[email protected]"`)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Created user with ID: %v\n", result[0]["inserted_id"])
// Query users
users, err := client.Query(":GET User WHERE age > 21 ORDER BY name ASC")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found %d users:\n", len(users))
for _, user := range users {
fmt.Printf(" - %s (%v years old)\n", user["name"], user["age"])
}
// Count users
countResult, _ := client.Query(":COUNT User WHERE active = true")
fmt.Printf("Active users: %v\n", countResult[0]["count"])
// Update user
client.Query(`:UPDATE User SET verified:true WHERE email = "[email protected]"`)
// Delete inactive users
deleteResult, _ := client.Query(`:DELETE User WHERE active = false`)
fmt.Printf("Deleted %v inactive users\n", deleteResult[0]["rows_affected"])
}