本文整理汇总了Golang中github.com/lib/pq/hstore.Hstore类的典型用法代码示例。如果您正苦于以下问题:Golang Hstore类的具体用法?Golang Hstore怎么用?Golang Hstore使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Hstore类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Value
func (h Hstore) Value() (driver.Value, error) {
hstore := hstore.Hstore{Map: map[string]sql.NullString{}}
if len(h) == 0 {
return nil, nil
}
for key, value := range h {
hstore.Map[key] = sql.NullString{String: *value, Valid: true}
}
return hstore.Value()
}
示例2: saveBallotToDB
func saveBallotToDB(ballot *Ballot) error {
// Frist transform the tagset into an hstore
var tags hstore.Hstore
tags.Map = make(map[string]sql.NullString, len(ballot.TagSet))
for key, value := range ballot.TagSet.Map() {
tags.Map[key] = sql.NullString{value, true}
}
_, err := db.Exec("INSERT INTO ballots_"+ballot.ElectionID+" (ballot_id, ballot, tags) VALUES ($1, $2, $3)", ballot.BallotID, ballot.String(), tags)
return err
}
示例3: Value
func (h Hstore) Value() (driver.Value, error) {
hstore := hstore.Hstore{Map: map[string]sql.NullString{}}
if len(h) == 0 {
return nil, nil
}
for key, value := range h {
var s sql.NullString
if value != nil {
s.String = *value
s.Valid = true
}
hstore.Map[key] = s
}
return hstore.Value()
}
示例4: Value
// Value implements the driver.Value interface.
func (cm CommandMap) Value() (driver.Value, error) {
m := make(map[string]sql.NullString)
for k, v := range cm {
m[string(k)] = sql.NullString{
Valid: true,
String: string(v),
}
}
h := hstore.Hstore{
Map: m,
}
return h.Value()
}
示例5: Scan
// Scan implements the sql.Scanner interface.
func (cm *CommandMap) Scan(src interface{}) error {
h := hstore.Hstore{}
if err := h.Scan(src); err != nil {
return err
}
m := make(CommandMap)
for k, v := range h.Map {
m[ProcessType(k)] = Command(v.String)
}
*cm = m
return nil
}
示例6: Value
// Value implements the driver.Value interface.
func (v Vars) Value() (driver.Value, error) {
m := make(map[string]sql.NullString)
for k, v := range v {
m[string(k)] = sql.NullString{
Valid: true,
String: *v,
}
}
h := hstore.Hstore{
Map: m,
}
return h.Value()
}
示例7: Scan
// Scan implements the sql.Scanner interface.
func (v *Vars) Scan(src interface{}) error {
h := hstore.Hstore{}
if err := h.Scan(src); err != nil {
return err
}
vars := make(Vars)
for k, v := range h.Map {
// Go reuses the same address space for v, so &v.String would always
// return the same address
tmp := v.String
vars[Variable(k)] = &tmp
}
*v = vars
return nil
}
示例8: Scan
func (h *Hstore) Scan(value interface{}) error {
hstore := hstore.Hstore{}
if err := hstore.Scan(value); err != nil {
return err
}
if len(hstore.Map) == 0 {
return nil
}
*h = Hstore{}
for k := range hstore.Map {
if hstore.Map[k].Valid {
s := hstore.Map[k].String
(*h)[k] = &s
} else {
(*h)[k] = nil
}
}
return nil
}
示例9: saveElectionToDB
func saveElectionToDB(election *Election) error {
// Frist transform the tagset into an hstore
var tags hstore.Hstore
tags.Map = make(map[string]sql.NullString, len(election.TagSet))
for key, value := range election.TagSet.Map() {
tags.Map[key] = sql.NullString{String: value, Valid: true}
}
_, err := db.Exec("INSERT INTO elections (election_id, election, startdate, enddate, tags) VALUES ($1, $2, $3, $4, $5)", election.ElectionID, election.String(), election.Start, election.End, tags)
if err != nil {
return err
}
// Create the sigreqa table for storing signature requests
_, err = db.Exec(strings.Replace(sigreqsQuery, "<election-id>", election.ElectionID, -1))
if err != nil {
return err
}
//@@TODO - tell ballotbox database about election
return nil
}