[ 
https://issues.apache.org/jira/browse/DERBY-4032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12727004#action_12727004
 ] 

Chip Hartney commented on DERBY-4032:
-------------------------------------

I understand the difficulty in reproduction, but per my earlier entries, this 
is reproducible...having occurred a few times for a few of our customers.  Not 
often, but it has happened more than once.  Given the infrequency, I suggest 
Knut's idea of a problem handling page boundaries should be checked...if not 
done already...maybe by a code review.

Besides, I believe Knut has already pointed out a problem that needs resolution 
per his entry on 1/30: "When you scan a range in the index, both of the rows 
are found, and the one that's not deleted is returned."

So it appears that the scan logic DOES allow for the existence of duplicate 
rows in the index, but the B-tree lookup logic does not.  That is an 
inconsistency that should be addressed.  It seems to me that you have gone part 
way...allowing for duplicates in one case, but not the other, and should 
therefore change the B-tree logic to accommodate the duplicates also.

If, on the other hand, you decide the scan logic is wrong (and that dups should 
never be handled), perhaps it should be changed.  But I wouldn't be surprised 
if such logic was added to address an inconsistency discovered in the 
past...one much like mine.  In fact, given that SYSCS_UTIL.SYSCS_CHECK_TABLE 
reports such problems, it's clear you guys have found in the past that such 
dups do occur.  I'm uncomfortable acknowledging that they do occur, and cause 
problems when they do, but declaring the cause unresolvable.

Having said all that, be aware that I am no longer working for the client whom 
I wrote this app for.  Therefore I am unable to provide more information about 
the app (code samples, etc).  So I realize I will be of little help now and 
can't complain if you leave this as Not Reproducible.



> Record not found in some SQL
> ----------------------------
>
>                 Key: DERBY-4032
>                 URL: https://issues.apache.org/jira/browse/DERBY-4032
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.3.2.1
>         Environment: Windows XP
>            Reporter: Chip Hartney
>         Attachments: check-table.txt, OrderEntryDB-base.zip, 
> OrderEntryDB-seg0-part1.zip, OrderEntryDB-seg0-part2.zip, 
> OrderEntryDB-seg0-part3.zip, OrderEntryDB-seg0-part4.zip, 
> OrderEntryDB-seg0-part5.zip, OrderEntryDB-seg0-part6.zip, 
> OrderEntryDB-seg0-part7.zip
>
>
> Per discussion at 
> http://www.nabble.com/Record-not-found-in-some-SQL---Bug--td21700110.html...
> I have a "Product" table with a "Num" column that contains a record that is 
> only accessible by some SQL and not others.  I have tested this by JDBC 
> access from my Java app as well was from IJ directly.
> ij> select "Num", length("Num") as "Len" from app."Product" where "Num" like 
> 'HG1549%';
> Num            |Len
> ----------------------------
> HG15490        |7
> HG15493        |7
> HG15497        |7   <== Found as expected
> HG15499        |7
> 4 rows selected
> ij> select "Num" from app."Product" where "Num" = 'HG15490';
> Num
> ----------------
> HG15490  <== Found as expected
> 1 row selected
> ij> select "Num" from app."Product" where "Num" = 'HG15493';
> Num
> ----------------
> HG15493  <== Found as expected
> 1 row selected
> ij> select "Num" from app."Product" where "Num" = 'HG15499';
> Num
> ----------------
> HG15499  <== Found as expected
> 1 row selected
> ij> select "Num" from app."Product" where "Num" = 'HG15497';
> Num
> ----------------
> 0 rows selected  <== Not found!!!
> What could possibly hide the 'HG15497' record from the last SELECT?
> And it's not just a matter of equality versus inequality...as the following 
> SQL does return the record:
>     SELECT I."STYLE" FROM TEMP."ZJVINV2" AS I INNER JOIN APP."Product" AS P 
> ON I."STYLE" = P."Num" WHERE I."STYLE" = 'HG15497'; 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to