Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness - API / Semantic Implementation
-
Critical
-
Normal
-
Fuzz Test
-
All
-
None
-
- new tests around empty text values for literal indexes through the write lifecycle
- new general randomized tests for supported index data types
Description
This is easy to reproduce with a test that looks something like this:
@Test public void testEmptyString() { createTable("CREATE TABLE %s (k TEXT PRIMARY KEY, v text)"); createIndex(String.format(CREATE_INDEX_TEMPLATE, 'v')); execute("INSERT INTO %s (k, v) VALUES ('0', '')"); execute("INSERT INTO %s (k) VALUES ('1')"); // flush(); <---- there is not always a memtable index involved, a fix will have to pay attention to this List<Row> rows = executeNet("SELECT * FROM %s WHERE v = ''").all(); assertEquals(1, rows.size()); <— FAILS! No matches... }