Partial SQL insert in haskelldb

Я только начал новый проект и хотел сначала использовать HaskellDB. Я создал базу данных с 2 столбцами:

create table sensor (
    service text,
    name text
);

.. узнал, как сделать основной механизм HaskellDB (ооо ... документация) и хотел сделать вставку. Тем не менее, я хотел сделать частичную вставку (там должно быть больше столбцов), что-то вроде:

insert into sensor (service) values ('myservice');

Переведено на HaskellDB:

transaction db $ insert db SE.sensor (SE.service <<- (Just $ senService sensor))

Но ... это просто не работает. Что также не работает, так это если я указываю имена столбцов в другом порядке, что также не совсем удобно. Есть ли способ сделать частичную вставку в haskelldb?

Коды ошибок, которые я получаю, - когда я просто вставляю другой столбец («имя») в качестве первого:

Couldn't match expected type `SEI.Service'
       against inferred type `SEI.Name'
  Expected type: SEI.Intsensor
  Inferred type: Database.HaskellDB.HDBRec.RecCons
                   SEI.Name (Expr String) er
When using functional dependencies to combine
  Database.HaskellDB.Query.InsertRec
    (Database.HaskellDB.HDBRec.RecCons f (e a) r)
    (Database.HaskellDB.HDBRec.RecCons f (Expr a) er),
etc..

И когда я делаю «сервис» 'в качестве первого и единственного поля я получаю:

Couldn't match expected type `Database.HaskellDB.HDBRec.RecCons
                                SEI.Name
                                (Expr String)
                                (Database.HaskellDB.HDBRec.RecCons
                                   SEI.Time
                                   (Expr Int)
                                   (Database.HaskellDB.HDBRec.RecCons
                                      SEI.Intval (Expr Int) Database.HaskellDB.HDBRec.RecNil))'
       against inferred type `Database.HaskellDB.HDBRec.RecNil'

(у меня есть пара других столбцов в таблице) This looks really like 'by design', unfortunately :(

5
задан ondra 29 August 2010 в 13:00
поделиться