...

Source file src/github.com/DATA-DOG/go-sqlmock/column.go

Documentation: github.com/DATA-DOG/go-sqlmock

     1  package sqlmock
     2  
     3  import "reflect"
     4  
     5  // Column is a mocked column Metadata for rows.ColumnTypes()
     6  type Column struct {
     7  	name       string
     8  	dbType     string
     9  	nullable   bool
    10  	nullableOk bool
    11  	length     int64
    12  	lengthOk   bool
    13  	precision  int64
    14  	scale      int64
    15  	psOk       bool
    16  	scanType   reflect.Type
    17  }
    18  
    19  func (c *Column) Name() string {
    20  	return c.name
    21  }
    22  
    23  func (c *Column) DbType() string {
    24  	return c.dbType
    25  }
    26  
    27  func (c *Column) IsNullable() (bool, bool) {
    28  	return c.nullable, c.nullableOk
    29  }
    30  
    31  func (c *Column) Length() (int64, bool) {
    32  	return c.length, c.lengthOk
    33  }
    34  
    35  func (c *Column) PrecisionScale() (int64, int64, bool) {
    36  	return c.precision, c.scale, c.psOk
    37  }
    38  
    39  func (c *Column) ScanType() reflect.Type {
    40  	return c.scanType
    41  }
    42  
    43  // NewColumn returns a Column with specified name
    44  func NewColumn(name string) *Column {
    45  	return &Column{
    46  		name: name,
    47  	}
    48  }
    49  
    50  // Nullable returns the column with nullable metadata set
    51  func (c *Column) Nullable(nullable bool) *Column {
    52  	c.nullable = nullable
    53  	c.nullableOk = true
    54  	return c
    55  }
    56  
    57  // OfType returns the column with type metadata set
    58  func (c *Column) OfType(dbType string, sampleValue interface{}) *Column {
    59  	c.dbType = dbType
    60  	c.scanType = reflect.TypeOf(sampleValue)
    61  	return c
    62  }
    63  
    64  // WithLength returns the column with length metadata set.
    65  func (c *Column) WithLength(length int64) *Column {
    66  	c.length = length
    67  	c.lengthOk = true
    68  	return c
    69  }
    70  
    71  // WithPrecisionAndScale returns the column with precision and scale metadata set.
    72  func (c *Column) WithPrecisionAndScale(precision, scale int64) *Column {
    73  	c.precision = precision
    74  	c.scale = scale
    75  	c.psOk = true
    76  	return c
    77  }
    78  

View as plain text