You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksey Plekhanov (Jira)" <ji...@apache.org> on 2022/12/21 09:48:00 UTC

[jira] [Created] (IGNITE-18439) Calcite engine. Expired entries are not filtered by scans

Aleksey Plekhanov created IGNITE-18439:
------------------------------------------

             Summary: Calcite engine. Expired entries are not filtered by scans
                 Key: IGNITE-18439
                 URL: https://issues.apache.org/jira/browse/IGNITE-18439
             Project: Ignite
          Issue Type: Bug
            Reporter: Aleksey Plekhanov
            Assignee: Aleksey Plekhanov


Expired entries should be filtered when it's possible (table scans, regular index scans). Some types of optimizations (inline scans) don't have access to expireTime field, perhaps we should disable these optimizations for caches with {{{}eagerTtl == false{}}}.
Reproducer:
{code:java}
    public void testExpiration() throws Exception {
        IgniteCache<Integer, Developer> cache = client.getOrCreateCache(new CacheConfiguration<Integer, Developer>()
            .setName("dev")
            .setSqlSchema("PUBLIC")
            .setIndexedTypes(Integer.class, Developer.class)
            .setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.MILLISECONDS, 1)))
            .setEagerTtl(false)
        );
 
        for (int i = 0; i < 10; i++)
            cache.put(i, new Developer("name" + i, i));

        doSleep(100);

        assertQuery("SELECT * FROM PUBLIC.DEVELOPER").resultSize(0).check();
    }
{code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)