| 645 | } |
| 646 | |
| 647 | func (a *StringArray) scanBytes(src []byte) error { |
| 648 | elems, err := scanLinearArray(src, []byte{','}, "StringArray") |
| 649 | if err != nil { |
| 650 | return err |
| 651 | } |
| 652 | if *a != nil && len(elems) == 0 { |
| 653 | *a = (*a)[:0] |
| 654 | } else { |
| 655 | b := make(StringArray, len(elems)) |
| 656 | for i, v := range elems { |
| 657 | if b[i] = string(v); v == nil { |
| 658 | return fmt.Errorf("pq: parsing array element index %d: cannot convert nil to string", i) |
| 659 | } |
| 660 | } |
| 661 | *a = b |
| 662 | } |
| 663 | return nil |
| 664 | } |
| 665 | |
| 666 | // Value implements the driver.Valuer interface. |
| 667 | func (a StringArray) Value() (driver.Value, error) { |