Hi Igor, thank you for your effort!
I have a question about the `Index.find(Args)` method. IEP says that it will return `a cursor over found rows`. But what if we don't need a row itself? For example in the case of possible optimizations of index scan that we can implement later. I can name a couple of them: - index-only scan [1]: we don't need a materialized row itself, we need only the indexed value from the index page. - multi-index scan (aka PG's bitmap scan [2]) where we can retrieve only row links from index(es), then perform union/intersection operations over them and retrieve from the RowStore only those rows that are actually needed. In this case we don't need a row itself, but a row's physical id (aka link) or the indexed value from the index page. What do you think? Should we have several `Index.find` methods with different return value? Or there might be another solution for such optimizations? Thank you. [1] https://www.postgresql.org/docs/10/indexes-index-only-scans.html [2] https://www.postgresql.org/message-id/12553.1135634...@sss.pgh.pa.us -- Kind Regards Roman Kondakov On 22.05.2020 22:37, Igor Seliverstov wrote: > Igniters, > > Some of you knows I'm working on a new Apache Calcite based SQL query > execution engine now[1] and I succeeded a little in this [2]. > > This activity becomes more important after H2 community decided to remove a > set of interfaces that we are using in our integration[3]. > > In scope of my current activity I need to separate indexes related system > parts from H2, and reuse them in Calcite. > > I prepared an IEP[4] that is aimed to bring basic various index types > support to Ignite. > > In addition to solve my issue, It, I hope, will help to integrate full text > search indexes into Ignite better and provide a way to add new index types > support (like geospatial indexes). > > Also, as a next step, it allows to implement lightweight sorted bounded > scan queries, this feature, as far as I know, was requested several times. > > I'll appreciate it you, guys share your thoughts on that. > > 1. > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=130028084 > 2. https://github.com/apache/ignite/pull/7071 > 3. https://github.com/h2database/h2database/issues/2226 > 4. > https://cwiki.apache.org/confluence/display/IGNITE/IEP-49%3A+Basic+index+infrastructure+as+a+part+of+core+Ignite+APIs > > Regards, > Igor >