Типы данных с haskelldb на практике (Text, UTCTime) - PullRequest
2 голосов
/ 10 января 2012

Я только начал рассматривать haskelldb как более мощный компаньон persistent, так как мне нужен более мощный инструмент для запросов к базе данных. Почти сразу я столкнулся с трудностями с типами данных; в частности, я использую Data.Text довольно широко, UTCTime также и некоторые пользовательские типы данных. К сожалению, хотя HDBC, похоже, довольно хорошо поддерживает эти типы данных, haskelldb скрывает все это, и вы должны написать свои собственные преобразования, начиная с String input.

Я не хочу дублировать работу, уже проделанную для HDBC; что вы предлагаете делать в этом случае?

Я думаю, что, вероятно, добавлю атрибут getHdbcValue в класс GetInstances, чтобы я мог писать простые GetValue экземпляры, которые использовали бы инфраструктуру HDBC; есть идеи получше? Я что-то упускаю из виду?

(Кстати: мне кажется, что эта библиотека - может быть, по историческим причинам - немного чрезмерно обобщена; не может ли она просто поддерживать hdbc ..?)

1 Ответ

2 голосов
/ 23 октября 2012

Я действительно люблю PostgreSQL и его богатую коллекцию типов, особенно массивы.Наиболее распространенным из дополнительных типов PG в проектах за пределами Haskell является [int4], типичный массив целых чисел.Предоставление поддержки для HaskellDB стало одной из самых захватывающих задач, с которыми я столкнулся на пути к пониманию Haskell, особенно программирования на уровне типов (и TH / QQ тоже).Добавление нового типа для поддержки выглядит довольно просто, если оно поддерживается HDBC.

Надеюсь, этот небольшой патч покажет, как добавить поддержку для нового типа.Вот запрос на вытягивание для этого, здесь рассмотрены почти все необходимые изменения (все, что осталось, это FlexibleInstances):

Запрос на извлечение

Main Changeset

...