Alberto Gomez created GEODE-9004:
------------------------------------

             Summary: Issues with queries targeting a map field
                 Key: GEODE-9004
                 URL: https://issues.apache.org/jira/browse/GEODE-9004
             Project: Geode
          Issue Type: Bug
          Components: querying
            Reporter: Alberto Gomez


When defining indexes on a map field several issues have been found:
 * If the index is defined for one specific key in the map, e.g. 
positions['SUN'], then an index entry is created for every entry, no matter if 
the entry contains the 'SUN' key in its map or not. This makes the index take a 
lot of memory (unnecessarily?).
 * If the index is specified for more than one keys in the map or for all 
('*'), then queries in which the where contains a != condition for the map, 
e.g. "p.positions['SUN'] != '3'" return less values than those returned when 
the query is run without the index.
 * If the index is specified for more than one keys in the map or for all 
('*'), then queries in which the where contains a "= null" condition for the 
map, e.g. "p.positions['SUN'] = null" return less values than those returned 
when the query is run without the index.
 * If the index is defined for one specific key in the map, e.g. 
positions['SUN'], queries in which the where contains a != condition for the 
map or a " = null" condition sometimes return less values than those returned 
when the query is run without the index. 

Apart from the above, looking at the indexes documentation, it seems that Map 
indexes are only those indexes for which more than one key or '*' is specified 
for the Map. But if just one key is specified for the Map in the index, then 
the index is not a Map index but a range index. This should be clarified.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to