Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

Commit b5a2318

Browse files
authored
Merge pull request #841 from erizocosmico/feature/better-errors-pilosa-driver
sql/index/pilosa: better error messages
2 parents 151d56b + 412960b commit b5a2318

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

Diff for: sql/index/config.go

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ func NewConfig(
2424
driverID string,
2525
driverConfig map[string]string,
2626
) *Config {
27-
2827
cfg := &Config{
2928
DB: db,
3029
Table: table,

Diff for: sql/index/pilosa/driver.go

+17-8
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ func (*Driver) ID() string {
110110
return DriverID
111111
}
112112

113+
var errWriteConfigFile = errors.NewKind("unable to write indexes configuration file")
114+
113115
// Create a new index.
114116
func (d *Driver) Create(
115117
db, table, id string,
@@ -133,7 +135,7 @@ func (d *Driver) Create(
133135
cfg := index.NewConfig(db, table, id, exprs, d.ID(), config)
134136
err = index.WriteConfigFile(d.configFilePath(db, table, id), cfg)
135137
if err != nil {
136-
return nil, err
138+
return nil, errWriteConfigFile.Wrap(err)
137139
}
138140

139141
idx, err := d.newPilosaIndex(db, table)
@@ -146,12 +148,14 @@ func (d *Driver) Create(
146148
processingFile,
147149
[]byte{processingFileOnCreate},
148150
); err != nil {
149-
return nil, err
151+
return nil, errWriteConfigFile.Wrap(err)
150152
}
151153

152154
return newPilosaIndex(idx, cfg), nil
153155
}
154156

157+
var errReadIndexes = errors.NewKind("error loading all indexes for table %s of database %s: %s")
158+
155159
// LoadAll loads all indexes for given db and table
156160
func (d *Driver) LoadAll(db, table string) ([]sql.Index, error) {
157161
var (
@@ -165,7 +169,7 @@ func (d *Driver) LoadAll(db, table string) ([]sql.Index, error) {
165169
if os.IsNotExist(err) {
166170
return indexes, nil
167171
}
168-
return nil, err
172+
return nil, errReadIndexes.New(table, db, err)
169173
}
170174
for _, info := range dirs {
171175
if info.IsDir() && !strings.HasPrefix(info.Name(), ".") {
@@ -187,6 +191,11 @@ func (d *Driver) LoadAll(db, table string) ([]sql.Index, error) {
187191
return indexes, nil
188192
}
189193

194+
var (
195+
errLoadingIndexConfig = errors.NewKind("unable to load index configuration")
196+
errReadIndexConfig = errors.NewKind("unable to read index configuration")
197+
)
198+
190199
func (d *Driver) loadIndex(db, table, id string) (*pilosaIndex, error) {
191200
idx, err := d.newPilosaIndex(db, table)
192201
if err != nil {
@@ -206,7 +215,7 @@ func (d *Driver) loadIndex(db, table, id string) (*pilosaIndex, error) {
206215
processing := d.processingFilePath(db, table, id)
207216
ok, err := index.ExistsProcessingFile(processing)
208217
if err != nil {
209-
return nil, err
218+
return nil, errLoadingIndexConfig.Wrap(err)
210219
}
211220
if ok {
212221
log := logrus.WithFields(logrus.Fields{
@@ -226,7 +235,7 @@ func (d *Driver) loadIndex(db, table, id string) (*pilosaIndex, error) {
226235

227236
cfg, err := index.ReadConfigFile(config)
228237
if err != nil {
229-
return nil, err
238+
return nil, errReadIndexConfig.Wrap(err)
230239
}
231240
cfgDriver := cfg.Driver(DriverID)
232241
if cfgDriver == nil {
@@ -382,13 +391,13 @@ func (d *Driver) Save(
382391
[]byte{processingFileOnSave},
383392
)
384393
if err != nil {
385-
return err
394+
return errWriteConfigFile.Wrap(err)
386395
}
387396

388397
cfgPath := d.configFilePath(i.Database(), i.Table(), i.ID())
389398
cfg, err := index.ReadConfigFile(cfgPath)
390399
if err != nil {
391-
return err
400+
return errReadIndexConfig.Wrap(err)
392401
}
393402
driverCfg := cfg.Driver(DriverID)
394403

@@ -462,7 +471,7 @@ func (d *Driver) Save(
462471
return errors[0]
463472
}
464473
if err = index.WriteConfigFile(cfgPath, cfg); err != nil {
465-
return err
474+
return errWriteConfigFile.Wrap(err)
466475
}
467476

468477
observeIndex(time.Since(start), timePilosa, timeMapping, rows)

0 commit comments

Comments
 (0)