[Glass] [3.4.0] Strange behaviour with indices ...

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Mon Mar 19 16:48:52 PDT 2018


Marten,

Just want to let you know that I've finally cleared enough time to 
reproduce the issue you've reported and I hopefully I will get to the 
bottom of the problem shortly ...

Dale


On 02/27/2018 03:24 PM, Dale Henrichs wrote:
>
> Marten,
>
> This is indeed strange behavior ... the code paths used by these two 
> indexSpecs _is_ different, but at the end of the day, the index 
> behavior should have been the same ... I''m assuming that you are 
> using a GsDevKit/GLASS repository and that `CharacterCollection 
> isInUnicodeComparisonMode` evaluates to true...
>
> Could you supply me with a simplified test case that reproduces the 
> problem?
>
> I am suspicious that the problem might be related to the data 
> involved. I’m not at my computer right now so I’m not able to 
> determine whether a trivial data set reproduces the problem or not.
>
> Dale
>
> On 02/27/2018 11:20 AM, Marten Feldtmann via Glass wrote:
>>
>> Ok, I changed the GsIndexSpec to:
>>
>> |/GsIndexSpec new
>> /|
>>
>> |/...
>> /|
>>
>> |stringOptimizedIndex: 'each.address.pm_telnr'|
>> |collator: (IcuCollator forLocaleNamed: 'de_DE')|
>> |options: GsIndexOptions btreePlusIndex + GsIndexOptions 
>> optimizedComparison;|
>>
>> |...|
>>
>> and now the query with (a <= each <= b) is working and returns 
>> results. Reason unknown, since the unicode indices should also work. 
>> The attribute values were always Strings or Unicode7 instances.
>>
>> Marten
>>
>>
>> ||||
>>
>>> Marten Feldtmann via Glass <glass at lists.gemtalksystems.com> hat am 
>>> 27. Februar 2018 um 18:36 geschrieben:
>>>
>>> I've created several indices on an IdentitySet holding domain 
>>> objects and one attribute is a telephone number, which is a string 
>>> (or unicode). The GsIndexSpec looks like this:
>>>
>>> |GsIndexSpec new
>>> ...
>>> unicodeStringOptimizedIndex: 'each.address.pm_telnr'
>>> collator: (IcuCollator forLocaleNamed: 'de_DE')
>>> options: GsIndexOptions btreePlusIndex + GsIndexOptions 
>>> optimizedComparison;
>>> ...
>>> yourself.|
>>>
>>> Now I created a combined query WITH indices build and get NO results:
>>>
>>> || telephone aqmListFound eachCATIGeneralStudy aSet aGsQuery ||
>>> |eachCATIGeneralStudy := WCATIServiceClass dataRootInstance 
>>> searchStudyGlobalViaNumber: '18020201'.|
>>> |aGsQuery := GsQuery fromString: 'lowerBound <= 
>>> each.address.pm_telnr <= upperBound'.|
>>> |aGsQuery|
>>> |bind: 'lowerBound' to: '047' ;|
>>> |bind: 'upperBound' to: '0479'.|
>>> |(aGsQuery on: eachCATIGeneralStudy getAddressManagement 
>>> getAddressQueueMemberships) asArray.|
>>>
>>> The same query WITHOUT indices build brings up a result of 155 
>>> entries (and the results seem to be ok).
>>>
>>> Now I split the query into two sub queries and I get answers - 
>>> regardless of having indices or not:
>>>
>>> || telephone aqmListFound eachCATIGeneralStudy aSet aGsQuery ||
>>>
>>> |eachCATIGeneralStudy := WCATIServiceClass dataRootInstance 
>>> searchStudyGlobalViaNumber: '18020201'.|
>>>
>>> |aGsQuery := GsQuery fromString: 'each.address.pm_telnr <= upperBound'.|
>>> |aGsQuery|
>>> |bind: 'upperBound' to: '0479'.|
>>> |(aGsQuery on: eachCATIGeneralStudy getAddressManagement 
>>> getAddressQueueMemberships) asArray.|
>>>
>>> This brings up 200 items (and the result seems to be ok).
>>>
>>> Then I execute the lowerBound query and I get answers - regardless 
>>> of having indices or not:
>>>
>>> || telephone aqmListFound eachCATIGeneralStudy aSet aGsQuery ||
>>>
>>> |eachCATIGeneralStudy := WCATIServiceClass dataRootInstance 
>>> searchStudyGlobalViaNumber: '18020201'.|
>>>
>>> |aGsQuery := GsQuery fromString: 'lowerBound <= each.address.pm_telnr'.|
>>> |aGsQuery|
>>> |bind: 'lowerBound' to: '047'.|
>>> |(aGsQuery on: eachCATIGeneralStudy getAddressManagement 
>>> getAddressQueueMemberships) asArray.|
>>>
>>>
>>> That does not look promising ...
>>>
>>
>>> _______________________________________________ Glass mailing list 
>>> Glass at lists.gemtalksystems.com 
>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>>
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20180319/6a1fa254/attachment.html>


More information about the Glass mailing list