Documentation ¶
Overview ¶
datatable project datatable.go
datatable document
Index ¶
- Constants
- Variables
- func ColumnNotFoundError(cname string) error
- func NumberOfValueError(valNum, colNum int) error
- func PrimaryKeyTypeError(t string) error
- func ValueOf(v interface{}) reflect.Value
- type ChangeRow
- type ColumnType
- type DataColumn
- func BoolColumn(name string, notnull bool) *DataColumn
- func ByteaColumn(name string, notnull bool) *DataColumn
- func Float64Column(name string, notnull bool) *DataColumn
- func Int64Column(name string, notnull bool) *DataColumn
- func NewBoolColumn(name string) *DataColumn
- func NewByteaColumn(name string) *DataColumn
- func NewDataColumn(name string, dataType ColumnType, maxsize int, notnull bool) *DataColumn
- func NewFloat64Column(name string) *DataColumn
- func NewInt64Column(name string) *DataColumn
- func NewStringColumn(name string) *DataColumn
- func NewTimeColumn(name string) *DataColumn
- func StringColumn(name string, maxsize int, notnull bool) *DataColumn
- func TimeColumn(name string, notnull bool) *DataColumn
- func (d *DataColumn) Clone() *DataColumn
- func (d *DataColumn) Decode(v interface{}) interface{}
- func (d *DataColumn) DecodeString(value string) (interface{}, error)
- func (d *DataColumn) Encode(v interface{}) interface{}
- func (d *DataColumn) EncodeString(value interface{}) string
- func (d *DataColumn) Index() int
- func (d *DataColumn) ReflectType() reflect.Type
- func (d *DataColumn) StoreType() reflect.Type
- func (d *DataColumn) Valid(value interface{}) error
- func (d *DataColumn) ZeroValue() interface{}
- type DataTable
- func (d *DataTable) AcceptChange()
- func (d *DataTable) AddColumn(c *DataColumn) *DataColumn
- func (d *DataTable) AddRow(r map[string]interface{}) error
- func (d *DataTable) AddValues(vs ...interface{}) error
- func (d *DataTable) AsCsv(columns ...string) string
- func (d *DataTable) AsJSONP(callback string, columns ...string) string
- func (d *DataTable) AsTabText(columns ...string) string
- func (d *DataTable) Clear()
- func (d *DataTable) Clone() *DataTable
- func (d *DataTable) ColumnCount() int
- func (d *DataTable) ColumnIndex(col string) int
- func (d *DataTable) ColumnNames() []string
- func (d *DataTable) DeleteAll()
- func (d *DataTable) DeleteRow(rowIndex int) error
- func (d *DataTable) Find(data ...interface{}) int
- func (d *DataTable) GetChange() *TableChange
- func (d *DataTable) GetColumnValues(columnIndex int) []interface{}
- func (d *DataTable) GetOriginRow(rowIndex int) map[string]interface{}
- func (d *DataTable) GetString(rowIndex, colIndex int) string
- func (d *DataTable) GetValue(rowIndex, colIndex int) interface{}
- func (d *DataTable) GetValues(rowIndex int) []interface{}
- func (d *DataTable) HasChange() bool
- func (d *DataTable) HasPrimaryKey() bool
- func (d *DataTable) IsPrimaryKey(cname string) bool
- func (d *DataTable) KeyValues(rowIndex int) []interface{}
- func (d *DataTable) Merge(srcTable *DataTable) error
- func (d *DataTable) NewRow() map[string]interface{}
- func (d *DataTable) Row(rowIndex int) map[string]interface{}
- func (d *DataTable) RowCount() int
- func (d *DataTable) Rows() []map[string]interface{}
- func (d *DataTable) Search(data ...interface{}) []map[string]interface{}
- func (d *DataTable) SetPK(names ...string)
- func (d *DataTable) SetValues(rowIndex int, values ...interface{}) error
- func (d *DataTable) UpdateRow(rowIndex int, r map[string]interface{}) error
- type TableChange
Examples ¶
Constants ¶
View Source
const ( UNCHANGE byte = iota UPDATE INSERT DELETE )
Variables ¶
Functions ¶
func ColumnNotFoundError ¶
func NumberOfValueError ¶
func PrimaryKeyTypeError ¶
Types ¶
type ColumnType ¶
type ColumnType string
const ( String ColumnType = "string" Int64 ColumnType = "int64" Float64 ColumnType = "float64" Bool ColumnType = "bool" Time ColumnType = "time" Bytea ColumnType = "bytea" )
type DataColumn ¶
type DataColumn struct { DataType ColumnType Name string MaxSize int NotNull bool // contains filtered or unexported fields }
func BoolColumn ¶
func BoolColumn(name string, notnull bool) *DataColumn
func ByteaColumn ¶
func ByteaColumn(name string, notnull bool) *DataColumn
func Float64Column ¶
func Float64Column(name string, notnull bool) *DataColumn
func Int64Column ¶
func Int64Column(name string, notnull bool) *DataColumn
func NewBoolColumn ¶
func NewBoolColumn(name string) *DataColumn
func NewByteaColumn ¶
func NewByteaColumn(name string) *DataColumn
func NewDataColumn ¶
func NewDataColumn(name string, dataType ColumnType, maxsize int, notnull bool) *DataColumn
func NewFloat64Column ¶
func NewFloat64Column(name string) *DataColumn
func NewInt64Column ¶
func NewInt64Column(name string) *DataColumn
func NewStringColumn ¶
func NewStringColumn(name string) *DataColumn
func NewTimeColumn ¶
func NewTimeColumn(name string) *DataColumn
func StringColumn ¶
func StringColumn(name string, maxsize int, notnull bool) *DataColumn
func TimeColumn ¶
func TimeColumn(name string, notnull bool) *DataColumn
func (*DataColumn) Clone ¶
func (d *DataColumn) Clone() *DataColumn
func (*DataColumn) Decode ¶
func (d *DataColumn) Decode(v interface{}) interface{}
func (*DataColumn) DecodeString ¶
func (d *DataColumn) DecodeString(value string) (interface{}, error)
func (*DataColumn) Encode ¶
func (d *DataColumn) Encode(v interface{}) interface{}
func (*DataColumn) EncodeString ¶
func (d *DataColumn) EncodeString(value interface{}) string
Encodes strings, raw strings will be encoded with double quotes
func (*DataColumn) Index ¶
func (d *DataColumn) Index() int
func (*DataColumn) ReflectType ¶
func (d *DataColumn) ReflectType() reflect.Type
func (*DataColumn) StoreType ¶
func (d *DataColumn) StoreType() reflect.Type
func (*DataColumn) Valid ¶
func (d *DataColumn) Valid(value interface{}) error
func (*DataColumn) ZeroValue ¶
func (d *DataColumn) ZeroValue() interface{}
type DataTable ¶
type DataTable struct { TableName string Columns []*DataColumn PK []string // contains filtered or unexported fields }
func NewDataTable ¶
func (*DataTable) AcceptChange ¶
func (d *DataTable) AcceptChange()
func (*DataTable) AddColumn ¶
func (d *DataTable) AddColumn(c *DataColumn) *DataColumn
func (*DataTable) AddValues ¶
Example ¶
table := NewDataTable("table1") table.AddColumn(NewStringColumn("column1")) table.AddColumn(NewInt64Column("column2")) table.AddColumn(NewStringColumn("column3")) table.AddColumn(NewStringColumn("column4")) table.AddColumn(NewStringColumn("column5")) table.AddColumn(NewStringColumn("column6")) table.AddColumn(NewStringColumn("column7")) table.AddColumn(NewStringColumn("column8")) table.SetPK("column2", "column1") for i := 10; i >= 1; i-- { table.AddValues(fmt.Sprint("row", i), int64(i), "field3", "field4", "field5", "field6", "field7", "field8") } table.AddValues(fmt.Sprint("row", 200), int64(2), "field3", "field4", "field5", "field6", "field7", "field8") err := table.SetValues(0, fmt.Sprint("row", 201), int64(6), "field3", "field4", "field5", "field6", "field7", "field8") if err != nil { fmt.Print(err) } r := table.Row(3) r["column1"] = "row101" r["column2"] = int64(2) if err := table.UpdateRow(3, r); err != nil { fmt.Print(err) } fmt.Print(table.AsTabText("column1", "column2"))
Output: column1 column2 row101 2 row2 2 row200 2 row3 3 row5 5 row201 6 row6 6 row7 7 row8 8 row9 9 row10 10
func (*DataTable) ColumnCount ¶
func (*DataTable) ColumnIndex ¶
func (*DataTable) ColumnNames ¶
func (*DataTable) GetChange ¶
func (d *DataTable) GetChange() *TableChange
func (*DataTable) GetColumnValues ¶
func (*DataTable) GetOriginRow ¶
func (*DataTable) HasPrimaryKey ¶
func (*DataTable) IsPrimaryKey ¶
func (*DataTable) SetPK ¶
the primary key data type must in int int64 float32 float64 string []byte time.Time and/or above type's slice
Click to show internal directories.
Click to hide internal directories.