NewSimpleColumnStore returns a new fact store backed by a simple column file. The input closure is called immediately to parse the header.
(input func() (io.ReadCloser, error))
| 207 | // NewSimpleColumnStore returns a new fact store backed by a simple column file. |
| 208 | // The input closure is called immediately to parse the header. |
| 209 | func NewSimpleColumnStore(input func() (io.ReadCloser, error)) (*SimpleColumnStore, error) { |
| 210 | f, err := input() |
| 211 | if err != nil { |
| 212 | return nil, err |
| 213 | } |
| 214 | defer f.Close() |
| 215 | scanner := bufio.NewScanner(f) |
| 216 | preds, predFactCount, err := readHeader(scanner) |
| 217 | if err != nil { |
| 218 | return nil, err |
| 219 | } |
| 220 | return &SimpleColumnStore{input, preds, predFactCount}, nil |
| 221 | } |
| 222 | |
| 223 | func (sc SimpleColumn) writeHeader(preds []ast.PredicateSym, predFactCount []int, w io.Writer) error { |
| 224 | // line 1. <number of predicates> |