Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/admpub/dotsql

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/admpub/dotsql

  • v0.1.0
  • Source
  • Go
  • Socket score

Version published
Created
Source

dotsql Build Status

A Golang library for using SQL.

It is not an ORM, it is not a query builder. Dotsql is a library that helps you keep sql files in one place and use it with ease.

Dotsql is heavily inspired by yesql.

Installation

Simple install the package to your $GOPATH with the go tool from shell:

$ go get github.com/gchaincl/dotsql

Make sure Git is installed on your machine and in your system's $PATH

Usage GoDoc

First of all, you need to define queries into a file:

-- name: create-users-table
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name VARCHAR(255),
email VARCHAR(255)
);
-- name: create-user
INSERT INTO users (name, email) VALUES(?, ?)
-- name: find-one-user-by-email
SELECT id,name,email FROM users WHERE email = ? LIMIT 1
--name: drop-users-table
DROP TABLE users

Notice that every query has a name tag (--name:<some name>), this will be helpful for referring to a specific query

Then you should be able to run something like:

// Get a database handle
db, err := sql.Open("sqlite3", ":memory:")

// Loads queries from file
dot, err := dotsql.LoadFromFile("queries.sql")

// Run queries
res, err := dot.Exec(db, "create-users-table")
res, err := dot.Exec(db, "create-user", "User Name", "main@example.com")
rows, err := dot.Query(db, "find-one-user-by-email", "main@example.com")

stmt, err := dot.Prepare(db, "drop-users-table")
result, err := stmt.Exec()

For a complete example please refer to integration_test.go and test_schema.sql

Development

Dotsql is in a very early stage so api may change. Contributions are welcome! Integration tests are tagged with +integration, so if you want to run them you should:

go test -tags=integration

If integration tests takes too long remember to go install code.google.com/p/go-sqlite/go1/sqlite3

Otherwise just run:

go test

FAQs

Package last updated on 13 Jan 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc