- make setpos on last element
di->dp = solvid2data(di->data, di->solvid, &schema);
if (!di->dp)
goto di_nextrepodata;
+ if (di->solvid == SOLVID_POS)
+ di->solvid = di->pool->pos.solvid;
/* reset key iterator */
di->keyp = di->data->schemadata + di->data->schemata[schema];
/* FALLTHROUGH */
void
dataiterator_setpos(Dataiterator *di)
{
- if (di->kv.eof)
+ if (di->kv.eof == 2)
{
pool_clear_pos(di->pool);
return;
void
dataiterator_setpos_parent(Dataiterator *di)
{
- if (!di->kv.parent)
+ if (!di->kv.parent || di->kv.parent->eof == 2)
{
pool_clear_pos(di->pool);
return;