package sqlutil

import "github.com/teamwork/utils/sqlutil"

Package sqlutil provides some helpers for SQL databases.

Index

Types

type Bool

type Bool bool

Bool add the capability to handle more column types than the usual sql driver. The following types are supported when reading the data:

It is also prepared to be encoded and decoded to a human readable format.

func (Bool) MarshalText

func (b Bool) MarshalText() ([]byte, error)

MarshalText converts the bool to a human readable representation, that is also compatible with the JSON format.

func (*Bool) Scan

func (b *Bool) Scan(src interface{}) error

Scan converts the different types of representation of a boolean in the database into a bool type.

func (*Bool) UnmarshalText

func (b *Bool) UnmarshalText(text []byte) error

UnmarshalText parse different types of human representation of the boolean and convert it to the bool type. It is also compatible with the JSON format.

func (Bool) Value

func (b Bool) Value() (driver.Value, error)

Value converts a bool type into a number to persist it in the database.

type HTML

type HTML template.HTML

HTML is a string which indicates that the string has been HTML-escaped.

func (*HTML) Scan

func (h *HTML) Scan(v interface{}) error

Scan converts the data returned from the DB into the struct.

func (HTML) Value

func (h HTML) Value() (driver.Value, error)

Value implements the SQL Value function to determine what to store in the DB.

type IntList

type IntList []int64

IntList expands comma-separated values from a column to []int64, and stores []int64 as a comma-separated string.

This is safe for NULL values, in which case it will scan in to IntList(nil).

func (*IntList) Scan

func (l *IntList) Scan(v interface{}) error

Scan converts the data returned from the DB into the struct.

func (IntList) Value

func (l IntList) Value() (driver.Value, error)

Value implements the SQL Value function to determine what to store in the DB.

type StringList

type StringList []string

StringList expands comma-separated values from a column to []string, and stores []string as a comma-separated string.

Note that this only works for simple strings (e.g. enums), we DO NOT escape commas in strings and you will run in to problems.

This is safe for NULL values, in which case it will scan in to StringList(nil).

func (*StringList) Scan

func (l *StringList) Scan(v interface{}) error

Scan converts the data returned from the DB into the struct.

func (StringList) Value

func (l StringList) Value() (driver.Value, error)

Value implements the SQL Value function to determine what to store in the DB.

Source Files

sqlutil.go

Version
v1.0.0 (latest)
Published
Mar 14, 2022
Platform
darwin/amd64
Imports
6 packages
Last checked
1 hour ago

Tools for package owners.