nsql

package module
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

README

nsql

Go Report Card GitHub license codecov

SQL Utility for Golang. Compatible with jmoiron/sqlx. Features:

  • Query Builder (PostgreSQL / MySQL)

Installing

WARNING

API is not yet stable and we might introduce breaking changes until we reached version v1.0.0. See Breaking Changes section for deprecation notes.

go get -u github.com/nbs-go/nsql

Usage

TODO

Breaking Changes

v0.13.0
  • From() and Join() option setter option.As() is deprecated. Use schema.New() option setter schema.As() instead.
    // <= v0.12.0
    person := schema.New(schema.FromModelRef(Person{}))
    query.Select(query.Column("*")).
        From(person, option.As("p")) // <- Set table alias with option.As()
    
    // >= v0.13.0
    person := schema.New(schema.FromModelRef(Person{}), schema.As("p")) // <- Set table alias with schema.As()
    query.Select(query.Column("*")).From(person)
    

Contributors

contributors

Documentation

Index

Constants

View Source
const (
	Separator = ", "
)

Variables

This section is empty.

Functions

func ScanJSON added in v0.15.0

func ScanJSON(src interface{}, target interface{}) error

ScanJSON is a generic scanner function that can be added to a struct that implements sql.Scanner.

func (o *Object) Scan(src interface{}) error {
		 return nsql.ScanJSON(src, o)
}

Types

type AliasSetter

type AliasSetter interface {
	SetTableAs(as string)
}

type ColumnGetter

type ColumnGetter interface {
	GetColumn() string
}

type ColumnWriter

type ColumnWriter interface {
	ColumnQuery() string
	SetFormat(format op.ColumnFormat)
	ColumnGetter
	AliasSetter
	SchemaReference
}

type Expander

type Expander interface {
	Expand(args ...interface{}) SelectWriter
}

type FilterParser

type FilterParser = func(queryValue string) (WhereWriter, []interface{})

type FromWriter

type FromWriter interface {
	FromQuery() string
	Join(j JoinWriter)
	SchemaRefGetter
}

FromWriter must be implemented by part of query that will generate query in FROM

type JoinWriter

type JoinWriter interface {
	JoinQuery() string
	GetTableName() string
	GetIndex() int
	SetIndex(s int)
	SchemaRefGetter
}

type OrderByWriter

type OrderByWriter interface {
	OrderByQuery() string
	AliasSetter
	SchemaReference
}

type SchemaRefGetter added in v0.13.0

type SchemaRefGetter interface {
	GetSchemaRef() schema.Reference
}

type SchemaReference added in v0.13.0

type SchemaReference interface {
	TableGetter
	SchemaRefGetter
	SetSchema(s *schema.Schema)
}

SchemaReference must be implemented by part of query that may not require defining schema, but will be set later. For example, Selected fields can only set without defining schema and will be referred to schema that is defined in FROM

type SelectWriter

type SelectWriter interface {
	SelectQuery() string
	SetFormat(format op.ColumnFormat)
	IsAllColumns() bool
	AliasSetter
	SchemaReference
}

SelectWriter must be implemented by part of query that will generate query in SELECT

type TableGetter

type TableGetter interface {
	GetTableName() string
}

type VariableWriter

type VariableWriter interface {
	VariableQuery() string
}

type WhereCompareWriter

type WhereCompareWriter interface {
	GetVariable() VariableWriter
	SetVariable(v VariableWriter)
	ColumnGetter
	AliasSetter
	SchemaReference
}

type WhereLogicWriter

type WhereLogicWriter interface {
	GetConditions() []WhereWriter
	SetConditions(conditions []WhereWriter)
}

type WhereWriter

type WhereWriter interface {
	WhereQuery() string
}

Directories

Path Synopsis
mysql
pq

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL