Strongly typed is orthogonal to strictly typed, so these two properties alone are not contradictory.
However, it is a bit unsettling that, if a column has an INTEGER type affinity, and you try to put a string in it, then the string is implicitly converted to an integer if it represents an integer and just stored silently as-is otherwise.
But they silently converted the string ‘1’ into the number 1. So now in my same code, I want to select back my stringy ‘1’ that I putted in the type affined INTEGER column.
And you are telling me its normal that I don’t get it back ? Or maybe I’m misunderstanding something?
To clarify: I am saying that it is not “normal” that the type you get back out is not only not necessarily the type that you put in, but may be different depending on the value that you put in. Put another way, sqlite is strongly typed unless you mistakenly thought that type affinities by themselves made it be strictly typed, in which case it becomes neither strictly nor strictly typed.
Strongly typed is orthogonal to strictly typed, so these two properties alone are not contradictory.
However, it is a bit unsettling that, if a column has an INTEGER type affinity, and you try to put a string in it, then the string is implicitly converted to an integer if it represents an integer and just stored silently as-is otherwise.
But they silently converted the string ‘1’ into the number 1. So now in my same code, I want to select back my stringy ‘1’ that I putted in the type affined INTEGER column.
And you are telling me its normal that I don’t get it back ? Or maybe I’m misunderstanding something?
To clarify: I am saying that it is not “normal” that the type you get back out is not only not necessarily the type that you put in, but may be different depending on the value that you put in. Put another way, sqlite is strongly typed unless you mistakenly thought that type affinities by themselves made it be strictly typed, in which case it becomes neither strictly nor strictly typed.