Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Haskell HDBC-Sqlite3 always returns SqlByteString values

I am using HDBC sqlite3 haskell driver to access local sqlite3 database which

PRAGMA encoding

is

UTF-8

And as result, for example for

SELECT id, title FROM some_table

I'm always getting the result like this:

[[SqlByteString "1", SqlByteString "\210\129\123\211"], ... ]

That's weird! Yes, title contains 'national' symbols and yes, I'm sure that id has type of INTEGER.

So the questions are:

  1. Why 1 unicode symbol are threated as 2 ascii-like symbols?
  2. Why integer columns results bytestring values?
like image 806
pechenie Avatar asked Jun 18 '26 00:06

pechenie


1 Answers

SQLite is an untyped database, so the fields in your database don't really have a type at all. You should be converting them to a more Haskellish value by using fromSql or safeFromSql from Database.HDBC.SqlValue.

like image 152
dave4420 Avatar answered Jun 19 '26 15:06

dave4420