Also, things like the SQLite module could check the actual datatype to figure out what to do. In my version of the Oracle module (I don't know if it works the same in the new one), I used (<"foo">) and "foo" to differentiate BLOBs (which are octet sequences) from strings (which are character sequences), since Oracle had very firm opinions on what a character is.
On Thu, Nov 04, 2004 at 09:05:01PM +0100, Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum wrote:
are character sequences), since Oracle had very firm opinions on what a character is.
sqlite (the library) doesn't have any opinion of what a character is (unless used in caseless comparisons). There is no strict typing (that's feature, not a bug). It accepts strings - a sequences of 8-bit characters (16-bit characters will be converted using UTF-8 encoding, if used).
Even integers and floats are strings in sqlite (it implies that if any given number cannot be converted to "native" 8-128 bit integer or 64-bit float, it will be stored as string).
Regards, /Al
Well, it if converts 16-bit characters using UTF-8, then it must have an opinion of the interpretation of those 16-bit characters (probably UCS-2 or UTF-16). So I'd say that it _does_ have an opinion of what a (16-bit) character is, which it differentiates from (not necessarily character) 8-bit sequences. Just like Oracle differentiates character and binary data.
pike-devel@lists.lysator.liu.se