Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/vendor/github.com/Masterminds/squirrel
Peter Štibraný e60164bef6
Convert Loki modules to services (#1804)
5 years ago
..
.gitignore Convert Loki modules to services (#1804) 5 years ago
.travis.yml Convert Loki modules to services (#1804) 5 years ago
LICENSE.txt Convert Loki modules to services (#1804) 5 years ago
README.md Convert Loki modules to services (#1804) 5 years ago
case.go Convert Loki modules to services (#1804) 5 years ago
delete.go Convert Loki modules to services (#1804) 5 years ago
expr.go Convert Loki modules to services (#1804) 5 years ago
insert.go Convert Loki modules to services (#1804) 5 years ago
part.go Convert Loki modules to services (#1804) 5 years ago
placeholder.go Convert Loki modules to services (#1804) 5 years ago
row.go Convert Loki modules to services (#1804) 5 years ago
select.go Convert Loki modules to services (#1804) 5 years ago
squirrel.go Convert Loki modules to services (#1804) 5 years ago
statement.go Convert Loki modules to services (#1804) 5 years ago
stmtcacher.go Convert Loki modules to services (#1804) 5 years ago
update.go Convert Loki modules to services (#1804) 5 years ago
where.go Convert Loki modules to services (#1804) 5 years ago

README.md

Squirrel - fluent SQL generator for Go

import "gopkg.in/Masterminds/squirrel.v1"

or if you prefer using master (which may be arbitrarily ahead of or behind v1):

NOTE: as of Go 1.6, go get correctly clones the Github default branch (which is v1 in this repo).

import "github.com/Masterminds/squirrel"

GoDoc Build Status

_Note: This project has moved from github.com/lann/squirrel to github.com/Masterminds/squirrel. Lann remains the architect of the project, but we're helping him curate.

Squirrel is not an ORM. For an application of Squirrel, check out structable, a table-struct mapper

Squirrel helps you build SQL queries from composable parts:

import sq "github.com/Masterminds/squirrel"

users := sq.Select("*").From("users").Join("emails USING (email_id)")

active := users.Where(sq.Eq{"deleted_at": nil})

sql, args, err := active.ToSql()

sql == "SELECT * FROM users JOIN emails USING (email_id) WHERE deleted_at IS NULL"
sql, args, err := sq.
    Insert("users").Columns("name", "age").
    Values("moe", 13).Values("larry", sq.Expr("? + 5", 12)).
    ToSql()

sql == "INSERT INTO users (name,age) VALUES (?,?),(?,? + 5)"

Squirrel can also execute queries directly:

stooges := users.Where(sq.Eq{"username": []string{"moe", "larry", "curly", "shemp"}})
three_stooges := stooges.Limit(3)
rows, err := three_stooges.RunWith(db).Query()

// Behaves like:
rows, err := db.Query("SELECT * FROM users WHERE username IN (?,?,?,?) LIMIT 3",
                      "moe", "larry", "curly", "shemp")

Squirrel makes conditional query building a breeze:

if len(q) > 0 {
    users = users.Where("name LIKE ?", fmt.Sprint("%", q, "%"))
}

Squirrel wants to make your life easier:

// StmtCache caches Prepared Stmts for you
dbCache := sq.NewStmtCacher(db)

// StatementBuilder keeps your syntax neat
mydb := sq.StatementBuilder.RunWith(dbCache)
select_users := mydb.Select("*").From("users")

Squirrel loves PostgreSQL:

psql := sq.StatementBuilder.PlaceholderFormat(sq.Dollar)

// You use question marks for placeholders...
sql, _, _ := psql.Select("*").From("elephants").Where("name IN (?,?)", "Dumbo", "Verna")

/// ...squirrel replaces them using PlaceholderFormat.
sql == "SELECT * FROM elephants WHERE name IN ($1,$2)"


/// You can retrieve id ...
query := sq.Insert("nodes").
    Columns("uuid", "type", "data").
    Values(node.Uuid, node.Type, node.Data).
    Suffix("RETURNING \"id\"").
    RunWith(m.db).
    PlaceholderFormat(sq.Dollar)

query.QueryRow().Scan(&node.id)

You can escape question mask by inserting two question marks:

SELECT * FROM nodes WHERE meta->'format' ??| array[?,?]

will generate with the Dollar Placeholder:

SELECT * FROM nodes WHERE meta->'format' ?| array[$1,$2]

License

Squirrel is released under the MIT License.