forked from mystiq/dex
57 lines
1.6 KiB
Go
57 lines
1.6 KiB
Go
|
// Copyright 2012 James Cooper. All rights reserved.
|
||
|
// Use of this source code is governed by a MIT-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
// Package gorp provides a simple way to marshal Go structs to and from
|
||
|
// SQL databases. It uses the database/sql package, and should work with any
|
||
|
// compliant database/sql driver.
|
||
|
//
|
||
|
// Source code and project home:
|
||
|
// https://github.com/go-gorp/gorp
|
||
|
//
|
||
|
package gorp
|
||
|
|
||
|
// IndexMap represents a mapping between a Go struct field and a single
|
||
|
// index in a table.
|
||
|
// Unique and MaxSize only inform the
|
||
|
// CreateTables() function and are not used by Insert/Update/Delete/Get.
|
||
|
type IndexMap struct {
|
||
|
// Index name in db table
|
||
|
IndexName string
|
||
|
|
||
|
// If true, " unique" is added to create index statements.
|
||
|
// Not used elsewhere
|
||
|
Unique bool
|
||
|
|
||
|
// Index type supported by Dialect
|
||
|
// Postgres: B-tree, Hash, GiST and GIN.
|
||
|
// Mysql: Btree, Hash.
|
||
|
// Sqlite: nil.
|
||
|
IndexType string
|
||
|
|
||
|
// Columns name for single and multiple indexes
|
||
|
columns []string
|
||
|
}
|
||
|
|
||
|
// Rename allows you to specify the index name in the table
|
||
|
//
|
||
|
// Example: table.IndMap("customer_test_idx").Rename("customer_idx")
|
||
|
//
|
||
|
func (idx *IndexMap) Rename(indname string) *IndexMap {
|
||
|
idx.IndexName = indname
|
||
|
return idx
|
||
|
}
|
||
|
|
||
|
// SetUnique adds "unique" to the create index statements for this
|
||
|
// index, if b is true.
|
||
|
func (idx *IndexMap) SetUnique(b bool) *IndexMap {
|
||
|
idx.Unique = b
|
||
|
return idx
|
||
|
}
|
||
|
|
||
|
// SetIndexType specifies the index type supported by chousen SQL Dialect
|
||
|
func (idx *IndexMap) SetIndexType(indtype string) *IndexMap {
|
||
|
idx.IndexType = indtype
|
||
|
return idx
|
||
|
}
|