[MEGOLDVA] sqlite like és index

A problémám a következő:
A sqlite like nem használja az indexet, ha számmal kezdődik a string.

teszt:


DROP TABLE IF EXISTS partners;
CREATE TABLE partners (id INTEGER PRIMARY KEY  NOT NULL , name TEXT NOT NULL );
INSERT INTO partners VALUES(1,'1 Próba');
INSERT INTO partners VALUES(2,'2 Próba');
INSERT INTO partners VALUES(3,'3 Próba');
CREATE INDEX hex_name_index ON partners ( hex(name) COLLATE NOCASE );

EXPLAIN QUERY PLAN SELECT name FROM partners WHERE hex(name) LIKE 'Foo%' ; 
      -> SEARCH TABLE partners USING INDEX hex_name_index (<expr>>? AND <expr><?)            //Ez jó !

EXPLAIN QUERY PLAN SELECT name FROM partners WHERE hex(name) LIKE '1Foo%'
      -> SCAN TABLE partners                                                     //Ez miért nem használja az indexet ?
  
select sqlite_version();
      -> 3.20.1

Nem a hex függvényt szeretném használni hanem egy saját determinisztikus függvényt, de a hiba ezzel is előjön.
Már mindent kipróbáltam, de sehogy sem tudom rábírni, hogy az indexet használja, ha számmal kezdődik a string.
Ha a tábla nevét így adom meg:"partners INDEXED BY hex_name_index" akkor "Likely SQL syntax error"-t dob a második esetben.

Ha valakinél működne akkor írja már meg a verziót
, előre is köszönöm.

update:
https://www.sqlite.org/optoverview.html#the_like_optimization
"There are many conditions on this optimization:"
....
"B. the right-hand side pattern argument does not begin with a minus sign ("-") or a digit."

Hozzászólások