There are 10 rows, so the result of count() is 10. The col_char(20)_signed field of the first row is 'you'. So a result tuple of (10, 'you') is perfectly plausible and just as correct as returning any other value from the aforementioned column. I have no idea where your value of -11 comes from. BTW: SQLite does not care about the declared dimension of a text or blob field, as only the actual content gets stored. You can also store any type of value in any field independent of its declared type.