sqlite-0.5.3: Haskell binding to sqlite3

Copyright(c) Galois, Inc. 2007
LicenseBSD3
Maintainerdocserver-dev-team@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Database.SQLite

Contents

Description

A Haskell binding to the sqlite3 database. See:

for more information.

The api is documented at:

Synopsis

Documentation

Opening and closing a database

openConnection :: String -> IO SQLiteHandle Source

Open a new database connection, whose name is given by the dbName argument. A sqlite3 handle is returned.

An exception is thrown if the database could not be opened.

openReadonlyConnection :: String -> IO SQLiteHandle Source

Open a new database connection read-only, whose name is given by the dbName argument. A sqlite3 handle is returned.

An exception is thrown if the database does not exist, or could not be opened.

closeConnection :: SQLiteHandle -> IO () Source

Close a database connection. Destroys the SQLite value associated with a database, closes all open files relating to the database, and releases all resources.

Executing SQL queries on the database

class SQLiteResultPrivate a => SQLiteResult a Source

Minimal complete definition

get_sqlite_val

execStatement :: SQLiteResult a => SQLiteHandle -> String -> IO (Either String [[Row a]]) Source

Evaluate the SQL statement specified by sqlStmt

execStatement_ :: SQLiteHandle -> String -> IO (Maybe String) Source

Returns an error, or Nothing if everything was OK.

execParamStatement :: SQLiteResult a => SQLiteHandle -> String -> [(String, Value)] -> IO (Either String [[Row a]]) Source

Prepare and execute a parameterized statment. Statement parameter names start with a colon (for example, :col_id). Note that for the moment, column names should not contain 0 characters because that part of the column name will be ignored.

execParamStatement_ :: SQLiteHandle -> String -> [(String, Value)] -> IO (Maybe String) Source

Prepare and execute a parameterized statment, ignoring the result. See also execParamStatement.

Basic insertion operations

insertRow :: SQLiteHandle -> TableName -> Row String -> IO (Maybe String) Source

Insert a row into the table tab.

defineTable :: SQLiteHandle -> SQLTable -> IO (Maybe String) Source

Define a new table, populated from tab in the database.

getLastRowID :: SQLiteHandle -> IO Integer Source

Return the rowid (as an Integer) of the most recent successful INSERT into the database.

type Row a = [(ColumnName, a)] Source

addRegexpSupport :: SQLiteHandle -> RegexpHandler -> IO () Source

This function registers a RegexpHandler to be called when REGEXP(regexp,str) is used in an SQL query.

type RegexpHandler = ByteString -> ByteString -> IO Bool Source

This is the type of the function supported by the addRegexpSupport function. The first argument is the regular expression to match with and the second argument is the string to match. The result shall be True for successful match and False otherwise.

User-defined callback functions

class IsFunctionHandler a where Source

Methods

funcArity :: a -> Arity Source

funcHandler :: a -> FunctionHandler Source

Instances

IsValue r => IsFunctionHandler r Source 
IsValue r => IsFunctionHandler (IO r) Source 
(IsValue a, IsValue r) => IsFunctionHandler ([a] -> IO r) Source 
(IsValue a, IsValue r) => IsFunctionHandler ([a] -> r) Source 
IsValue r => IsFunctionHandler (String -> IO r) Source 
IsValue r => IsFunctionHandler (String -> r) Source 
(IsValue a, IsValue b, IsValue c, IsValue d, IsValue r) => IsFunctionHandler (a -> b -> c -> d -> IO r) Source 
(IsValue a, IsValue b, IsValue c, IsValue r) => IsFunctionHandler (a -> b -> c -> IO r) Source 
(IsValue a, IsValue b, IsValue r) => IsFunctionHandler (a -> b -> IO r) Source 
(IsValue a, IsValue r) => IsFunctionHandler (a -> IO r) Source 
(IsValue a, IsValue b, IsValue c, IsValue d, IsValue r) => IsFunctionHandler (a -> b -> c -> d -> r) Source 
(IsValue a, IsValue b, IsValue c, IsValue r) => IsFunctionHandler (a -> b -> c -> r) Source 
(IsValue a, IsValue b, IsValue r) => IsFunctionHandler (a -> b -> r) Source 
(IsValue a, IsValue r) => IsFunctionHandler (a -> r) Source 

createFunction :: IsFunctionHandler a => SQLiteHandle -> FunctionName -> a -> IO () Source

createFunctionPrim :: SQLiteHandle -> FunctionName -> Arity -> FunctionHandler -> IO () Source

createAggregatePrim :: (IsValue i, IsValue o) => SQLiteHandle -> FunctionName -> Arity -> (a -> [i] -> IO a) -> a -> (a -> IO o) -> IO () Source