GoToSocial/vendor/github.com/uptrace/bun
tobi daf44ac2b7
[chore] Bump database dependencies (#1164)
github.com/uptrace/bun v1.1.8 -> v1.1.9
github.com/uptrace/bun/pgdialect v1.1.8 -> v1.1.9
github.com/uptrace/bun/sqlitedialect v1.1.8 -> v1.1.9
modernc.org/sqlite v1.18.2 -> v1.19.5
2022-11-28 11:19:39 +01:00
..
dialect [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
extra/bunjson Pg to bun (#148) 2021-08-25 15:34:33 +02:00
internal [chore] Update bun and sqlite dependencies (#478) 2022-04-24 12:26:22 +02:00
migrate [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
schema [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
.gitignore [chore] Update bun and sqlite dependencies (#478) 2022-04-24 12:26:22 +02:00
.prettierrc.yml upstep bun to v1.0.14 (#291) 2021-10-24 13:14:37 +02:00
CHANGELOG.md [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
CONTRIBUTING.md [chore] Update bun and sqlite dependencies (#478) 2022-04-24 12:26:22 +02:00
LICENSE Pg to bun (#148) 2021-08-25 15:34:33 +02:00
Makefile [chore] update dependencies, bump to Go 1.19.1 (#826) 2022-09-28 18:30:40 +01:00
README.md [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
bun.go [chore] Update bun and sqlite dependencies (#478) 2022-04-24 12:26:22 +02:00
commitlint.config.js update bun library to latest commit (#206) 2021-09-11 13:53:44 +02:00
db.go [chore] update dependencies, bump to Go 1.19.1 (#826) 2022-09-28 18:30:40 +01:00
hook.go [feature] Clean up/uncache remote media (#407) 2022-03-07 11:08:26 +01:00
model.go upstep bun to v1.0.14 (#291) 2021-10-24 13:14:37 +02:00
model_map.go upstep bun to v1.0.14 (#291) 2021-10-24 13:14:37 +02:00
model_map_slice.go upstep bun to v1.0.14 (#291) 2021-10-24 13:14:37 +02:00
model_scan.go upstep bun to v1.0.14 (#291) 2021-10-24 13:14:37 +02:00
model_slice.go upstep bun to v1.0.9 (#252) 2021-09-29 15:09:45 +02:00
model_table_has_many.go upstep bun to v1.0.9 (#252) 2021-09-29 15:09:45 +02:00
model_table_m2m.go upstep bun to v1.0.9 (#252) 2021-09-29 15:09:45 +02:00
model_table_slice.go [chore] Update bun and sqlite dependencies (#478) 2022-04-24 12:26:22 +02:00
model_table_struct.go upstep bun to v1.0.14 (#291) 2021-10-24 13:14:37 +02:00
package.json [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_base.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_column_add.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_column_drop.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_delete.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_index_create.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_index_drop.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_insert.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_raw.go [chore] update dependencies, bump to Go 1.19.1 (#826) 2022-09-28 18:30:40 +01:00
query_select.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_table_create.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_table_drop.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_table_truncate.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_update.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
query_values.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
relation_join.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00
util.go Pg to bun (#148) 2021-08-25 15:34:33 +02:00
version.go [chore] Bump database dependencies (#1164) 2022-11-28 11:19:39 +01:00

README.md

SQL-first Golang ORM for PostgreSQL, MySQL, MSSQL, and SQLite

build workflow PkgGoDev Documentation Chat

Bun is brought to you by uptrace/uptrace. Uptrace is an open-source APM tool that supports distributed tracing, metrics, and logs. You can use it to monitor applications and set up automatic alerts to receive notifications via email, Slack, Telegram, and others.

See OpenTelemetry example which demonstrates how you can use Uptrace to monitor Bun.

Features

Resources:

Featured projects using Bun:

Why another database client?

So you can elegantly write complex queries:

regionalSales := db.NewSelect().
	ColumnExpr("region").
	ColumnExpr("SUM(amount) AS total_sales").
	TableExpr("orders").
	GroupExpr("region")

topRegions := db.NewSelect().
	ColumnExpr("region").
	TableExpr("regional_sales").
	Where("total_sales > (SELECT SUM(total_sales) / 10 FROM regional_sales)")

var items []map[string]interface{}
err := db.NewSelect().
	With("regional_sales", regionalSales).
	With("top_regions", topRegions).
	ColumnExpr("region").
	ColumnExpr("product").
	ColumnExpr("SUM(quantity) AS product_units").
	ColumnExpr("SUM(amount) AS product_sales").
	TableExpr("orders").
	Where("region IN (SELECT region FROM top_regions)").
	GroupExpr("region").
	GroupExpr("product").
	Scan(ctx, &items)
WITH regional_sales AS (
    SELECT region, SUM(amount) AS total_sales
    FROM orders
    GROUP BY region
), top_regions AS (
    SELECT region
    FROM regional_sales
    WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
)
SELECT region,
       product,
       SUM(quantity) AS product_units,
       SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product

And scan results into scalars, structs, maps, slices of structs/maps/scalars:

users := make([]User, 0)
if err := db.NewSelect().Model(&users).OrderExpr("id ASC").Scan(ctx); err != nil {
	panic(err)
}

user1 := new(User)
if err := db.NewSelect().Model(user1).Where("id = ?", 1).Scan(ctx); err != nil {
	panic(err)
}

See Getting started guide and check examples.

See also

Contributors

Thanks to all the people who already contributed!