X-Sharp / XSharpPublic

Public repository for the source code for the XSharp Compiler, Runtime, Project System and Tools.
Apache License 2.0
113 stars 38 forks source link

DBF: Deleted() is true on a table with all records deleted #1370

Closed Serggio closed 11 months ago

Serggio commented 1 year ago

If table consists of deleted records (and no undeleted) then it has Deleted() = true even in EOF, so that after opening it we have:

? BOF()     // prints TRUE
? EOF()     // prints TRUE
? Deleted() // prints TRUE

SetDeleted() is TRUE, meaning that deleted records must be ignored.

RobertvanderHulst commented 1 year ago

It looks like in this special case the "physical" record pointer is on a deleted record. Although logically there are now rows, the RDD still sees the deleted flag. With which RDD did you see this?

Serggio commented 1 year ago

DBFCDX, but it doesn't matter whether table has indexes.

cpyrgas commented 11 months ago

Confirmed fixed