Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Insert ¶
Insert generates a SQL insert statement for each colName. There are several variations of SQL that need to be produced for each driver. This has been tested with the following: PostgreSQL - github.com/lib/pq MySQL/MariaDB - github.com/go-sql-driver/mysql SQLite - github.com/mattn/go-sqlite3
"Parameter markers" are used to specify placeholders for values scanned by the implementing driver: PostgreSQL accepts "incrementing" markers e.g. $1..$2 While MySQL/MariaDB and SQLite accept ?..?.
func Int64ToBool ¶
Int64ToBool casts an int64 type into a boolean. This is useful for casting columns in SQLite which stores BOOL as INT types natively.
Types ¶
type ArgBuilder ¶
func NewArgBuilder ¶
func NewArgBuilder(col column.Column) (ArgBuilder, error)
type CoerceFunc ¶
CoerceFunc returns a function that does an explicit type cast from one input type and sets an internal column type.
type Column ¶
type Column struct {
// contains filtered or unexported fields
}
Column implements the sql.Scanner interface and allows arbitrary data types to be loaded from any database/sql/driver into a QFrame.
type SQLConfig ¶
type SQLConfig struct {
// Query is a Raw SQL statement which must return
// appropriate types which can be inferred
// and loaded into a new QFrame.
Query string
// Incrementing indicates the PostgreSQL variant
// of parameter markers will be used, e.g. $1..$2.
// The default style is ?..?.
Incrementing bool
// Table is the name of the table to be used
// for generating an INSERT statement.
Table string
// EscapeChar is a rune which column and table
// names will be escaped with. PostgreSQL and SQLite
// both accept double quotes "" while MariaDB/MySQL
// only accept backticks.
EscapeChar rune
// CoerceMap is a map of columns to perform explicit
// type coercion on.
CoerceMap map[string]CoerceFunc
// Precision specifies how much precision float values
// should have. 0 has no effect.
Precision int
}