| SELECT w.lexeme, w.sense, d.definition, d.part_of_speech, dc.def_count | |
| FROM v_english_curated w | |
| LEFT JOIN definitions d ON d.lexeme = lower(w.lexeme) | |
| AND d.entry_idx = 0 AND d.meaning_idx = 0 AND d.def_idx = 0 | |
| LEFT JOIN ( | |
| SELECT lexeme, COUNT(*) as def_count | |
| FROM definitions | |
| GROUP BY lexeme | |
| ) dc ON dc.lexeme = lower(w.lexeme) | |
| WHERE lower(w.lexeme) LIKE lower(?) || '%' | |
| ORDER BY | |
| CASE WHEN lower(w.lexeme) = lower(?) THEN 0 ELSE 1 END, | |
| length(w.lexeme), | |
| w.lexeme, | |
| w.word_ix | |