Possible Index Corruption

BobbyB

New Member
Hi (first time poster !) ,

We have started experiencing problems retrieving records on a table using a logical field which is indexed.

Code that previously worked:

FOR EACH Job WHERE Job.Issued = FALSE :
......
Does not return any records any more.

However if we change the statement to:

FOR EACH Job WHERE NOT(Job.Issued) :
...

then records are returned.

The Job table has an index on Job.Issued.

Is this an index problem ?. I have run a proutil index check and no problems were highlighted.

Do I need to rebuild the index ?. I am running 10.1B on a sun solaris unix server.

Any help or advice on what to do next to identify the problem will be greatly appreciated.

Thanks
 

Cringer

ProgressTalk.com Moderator
Staff member
What happens when you do FOR EACH Job WHERE Job.Issued EQ FALSE

Edit: When did you notice the changes? What has changed recently?
 

RealHeavyDude

Well-Known Member
Smells like an index corruption. If I am not completely wrong then your second query will cause a table scan ( function used in the where clause ) and will therefore find the records. Whereas your first query utilizes the index. Did you try run the idxfix offline as, as far as I know, it performs a more through check offline.

Heavy Regards, RealHeavyDude.
 

BobbyB

New Member
Hi Cringer,

I've amended the code as requested but still have the same problem.
The problem just suddenly started yesterday morning. No database or program code has changed for weeks. No changes on unix server either. ?
 

Cringer

ProgressTalk.com Moderator
Staff member
Then I'd agree with RHD. Take the db offline to do the idx fix and let us know how you get on.
 

TomBascom

Curmudgeon
If the "missing" records turn up as having issued = ? then then problem isn't that issued = no stopped working. The problem would be "how did records that used to have issued = no come to have issued = ?".
 
Top