Documentation
¶
Overview ¶
Package gosbee provides a fluent SQL query builder for Go.
This package re-exports commonly used types and functions from subpackages for convenience. Advanced users can import subpackages directly:
- github.com/bawdo/gosbee/managers (query builders)
- github.com/bawdo/gosbee/nodes (AST nodes)
- github.com/bawdo/gosbee/visitors (SQL generation)
- github.com/bawdo/gosbee/plugins (query transformers)
Index ¶
- func Avg(expr nodes.Node) *nodes.AggregateNode
- func BindParam(value any) *nodes.BindParamNode
- func Count(expr nodes.Node) *nodes.AggregateNode
- func CountDistinct(expr nodes.Node) *nodes.AggregateNode
- func Literal(value any) nodes.Node
- func Max(expr nodes.Node) *nodes.AggregateNode
- func Min(expr nodes.Node) *nodes.AggregateNode
- func NewDelete(from nodes.Node) *managers.DeleteManager
- func NewInsert(into nodes.Node) *managers.InsertManager
- func NewMySQLVisitor(opts ...visitors.Option) *visitors.MySQLVisitor
- func NewPostgresVisitor(opts ...visitors.Option) *visitors.PostgresVisitor
- func NewSQLiteVisitor(opts ...visitors.Option) *visitors.SQLiteVisitor
- func NewSelect(from nodes.Node) *managers.SelectManager
- func NewTable(name string) *nodes.Table
- func NewUpdate(table nodes.Node) *managers.UpdateManager
- func Star() *nodes.StarNode
- func Sum(expr nodes.Node) *nodes.AggregateNode
- func WithParams() visitors.Option
- func WithoutParams() visitors.Option
- type Attribute
- type DeleteManager
- type InsertManager
- type MySQLVisitor
- type Node
- type PostgresVisitor
- type SQLiteVisitor
- type SelectManager
- type Table
- type UpdateManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BindParam ¶
func BindParam(value any) *nodes.BindParamNode
BindParam creates a parameterised placeholder (e.g., $1, ?).
func Count ¶
func Count(expr nodes.Node) *nodes.AggregateNode
Count creates a COUNT(expr) aggregate.
func CountDistinct ¶
func CountDistinct(expr nodes.Node) *nodes.AggregateNode
CountDistinct creates a COUNT(DISTINCT expr) aggregate.
func NewDelete ¶
func NewDelete(from nodes.Node) *managers.DeleteManager
NewDelete creates a new DeleteManager for deleting from the given table.
func NewInsert ¶
func NewInsert(into nodes.Node) *managers.InsertManager
NewInsert creates a new InsertManager for inserting into the given table.
func NewMySQLVisitor ¶
func NewMySQLVisitor(opts ...visitors.Option) *visitors.MySQLVisitor
NewMySQLVisitor creates a new MySQL visitor.
func NewPostgresVisitor ¶
func NewPostgresVisitor(opts ...visitors.Option) *visitors.PostgresVisitor
NewPostgresVisitor creates a new PostgreSQL visitor.
func NewSQLiteVisitor ¶
func NewSQLiteVisitor(opts ...visitors.Option) *visitors.SQLiteVisitor
NewSQLiteVisitor creates a new SQLite visitor.
func NewSelect ¶
func NewSelect(from nodes.Node) *managers.SelectManager
NewSelect creates a new SelectManager with the given table as FROM.
func NewUpdate ¶
func NewUpdate(table nodes.Node) *managers.UpdateManager
NewUpdate creates a new UpdateManager for updating the given table.
func WithParams ¶
WithParams enables parameterisation mode for visitors.
Note: Parameterisation is now enabled by default. This option is kept for backwards compatibility and has no effect.
func WithoutParams ¶
WithoutParams disables parameterised query mode.
⚠️ WARNING: Disables SQL injection protection. Only use for debugging or when you're certain all values are trusted. Production code should NEVER use this option.
Types ¶
type DeleteManager ¶
type DeleteManager = managers.DeleteManager
DeleteManager provides a fluent API for building DELETE queries.
type InsertManager ¶
type InsertManager = managers.InsertManager
InsertManager provides a fluent API for building INSERT queries.
type MySQLVisitor ¶
type MySQLVisitor = visitors.MySQLVisitor
MySQLVisitor generates MySQL-compatible SQL.
type PostgresVisitor ¶
type PostgresVisitor = visitors.PostgresVisitor
PostgresVisitor generates PostgreSQL-compatible SQL.
type SQLiteVisitor ¶
type SQLiteVisitor = visitors.SQLiteVisitor
SQLiteVisitor generates SQLite-compatible SQL.
type SelectManager ¶
type SelectManager = managers.SelectManager
SelectManager provides a fluent API for building SELECT queries.
type UpdateManager ¶
type UpdateManager = managers.UpdateManager
UpdateManager provides a fluent API for building UPDATE queries.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
repl
command
REPL binary for interactively building and executing SQL queries.
|
REPL binary for interactively building and executing SQL queries. |
|
internal
|
|
|
quoting
Package quoting provides shared identifier quoting utilities.
|
Package quoting provides shared identifier quoting utilities. |
|
testutil
Package testutil provides shared test helpers for the gosbee project.
|
Package testutil provides shared test helpers for the gosbee project. |
|
Package managers provides high-level fluent APIs for building SQL ASTs.
|
Package managers provides high-level fluent APIs for building SQL ASTs. |
|
Package nodes defines the AST node types used to represent SQL query elements.
|
Package nodes defines the AST node types used to represent SQL query elements. |
|
Package plugins defines the Transformer interface for AST middleware.
|
Package plugins defines the Transformer interface for AST middleware. |
|
opa
Package opa provides a Transformer that enforces Open Policy Agent policies on queries by injecting policy-derived WHERE conditions.
|
Package opa provides a Transformer that enforces Open Policy Agent policies on queries by injecting policy-derived WHERE conditions. |
|
softdelete
Package softdelete provides a Transformer that automatically injects "column IS NULL" conditions into SELECT queries, filtering out soft-deleted rows.
|
Package softdelete provides a Transformer that automatically injects "column IS NULL" conditions into SELECT queries, filtering out soft-deleted rows. |
|
Package visitors provides SQL dialect generators that walk the AST.
|
Package visitors provides SQL dialect generators that walk the AST. |
