Skip to content

SQL: Filters not using BY-ITEM index #2774

@gramian

Description

@gramian

ArcadeDB Server v25.11.1-SNAPSHOT (build f397d6d4e14740391e5c25e5fa7445365b9d97b8/1762811570052/main)

Running on Mac OS X 15.6 - OpenJDK 64-Bit Server VM 25 (Homebrew)

Given this database:

CREATE DOCUMENT TYPE doc;
CREATE PROPERTY doc.nums LIST OF INTEGER;
CREATE INDEX ON doc (nums BY ITEM) NOTUNIQUE;
INSERT INTO doc SET nums = [1,2,3];

This query uses the index:

EXPLAIN SELECT FROM doc WHERE nums CONTAINSANY [1]

as shown in the explain:

+ FETCH FROM INDEX doc[numsbyitem]\n  nums CONTAINSANY [1]\n+ EXTRACT VALUE FROM INDEX ENTRY\n  filtering buckets [1]\n+ DISTINCT\n+ FILTER ITEMS BY TYPE \n  doc

while these queries do not use the index:

EXPLAIN SELECT FROM doc WHERE nums CONTAINS 1

see:

+ FETCH FROM TYPE doc\n  + FETCH FROM BUCKET 1 (doc_0) ASC = 1 RECORDS\n+ FILTER ITEMS WHERE \n  nums CONTAINS 1

EXPLAIN SELECT FROM doc WHERE 1 IN nums

see:

+ FETCH FROM TYPE doc\n  + FETCH FROM BUCKET 1 (doc_0) ASC = 1 RECORDS\n+ FILTER ITEMS WHERE \n  1 IN nums

EXPLAIN SELECT FROM doc WHERE nums CONTAINSALL [1]

see:

+ FETCH FROM TYPE doc\n  + FETCH FROM BUCKET 1 (doc_0) ASC = 1 RECORDS\n+ FILTER ITEMS WHERE \n  nums CONTAINSALL [1]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions