我在理解如何升级一个密谋沙箱中的包时遇到了一些问题。我想将esqueleto-1.3.4.5升级到esqueleto-1.3.5,并将我的myapp.cabal改为依赖esqueleto >= 1.3.5 && < 1.4。
$ cabal --version cabal-install version 1.18.0.2 using version 1.18.1.2 of the Cabal library $ cabal install --upgrade-dependencies Resolving dependencies... cabal: Could no
我试图绘制两个不同的图(一个是由带有色阶的矩阵生成的简单图形),另一个是表示骨架的一组点的x和y轴的图。矩阵颜色标度与骨架图相关联。它必须在一个循环中显示n次,每次画布关闭时,然后显示下一个情节。
但是我只能同时显示每个图形,比方说,我必须有43个画布,每个画布上有一个图形和一个色阶矩阵,相反,我得到了86幅图,一个是点图,另一个是比例尺矩阵,等等。
代码在下面,所以每个情节的图片。我用gridspec来生成图形,用一个简单的img图来生成色阶矩阵。
from pylab import *
from matplotlib import gridspec
import numpy as np
i
我可以在Esqueleto中用entryId更改一行字段,如下所示:
update $ \entry -> do
set entry [ EntryFoo =. val bar ]
where_ (entry ^. EntryId ==. val entryId)
然而,写它的所有时间变得烦人。我希望能写出这样的东西:
updateById entryId $ \entry ->
set entry [ EntryFoo =. val bar ]
我试图自己编写这个助手,但是我发现我不知道如何以通用的方式编写^. EntryId (也就是一种适用于任
我正在尝试计算Esqueleto内部连接的行数(版本2.1.2.1)。不幸的是,我的代码没有编译,我也不明白为什么。我看了以下如何做这件事的例子,但不知道我做错了什么:,。
我的模式看起来如下(简化):
User
Game
state
Player
user UserId Maybe
game GameId
用户可以在网站上注册玩游戏。你也可以在不注册的情况下玩。因此,有一个单独的表Player。游戏是有状态的。可以是Ongoing,也可以是某种形式的游戏结束。现在我想数一数用户正在玩的所有正在进行的游戏。
下面的SQL-查询可以做到这一点(对于固定的userId为1):
SELE
是否可以使用esqueleto执行以下查询?
DELETE Table1
FROM Table1
INNER JOIN Table2 ON Table1.ID = Table2.ItemID
我试过了:
delete $
from $ \(table1 `InnerJoin` table2) ->
on (table1 ^. Table1ID ==. table2 ^. Table2ItemID)
奇怪的是,它生成了我在Haskell中见过的仅有的运行时错误之一
ERROR: syntax error at or near "INNER"
LINE 2
以下是我从三个表中进行选择的尝试。但是他们不编译,我也不明白这个错误(我不知道为什么它需要一个元组(Entity Issue, b0),而不是我认为代码试图得到的三元组)。
尝试1:
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
我有一个原始的sql,我想把它转换成Esqueleto。它应该带来用户ID为1的所有未通过group_membership表注册到的group。
SELECT *
FROM group
LEFT OUTER JOIN group_membership
ON (group.id = group_membership.group_id AND group_membership.user_id=1)
WHERE group_membership.group_id IS NULL
我有下面的Entities
Group
name Text
GroupUser
user UserId
group GroupId
我想做一个这样的查询:
select g.* /* Everything from g */
, count(gu.id) groupUsersCount
from Group g
left outer join GroupUser gu on gu.groupId = g.id
group by g.id
这能用Esqueleto做吗
我放了Import.hs
import qualified Database.Esqueleto as E
但是在我的Handler文件中
import Import
但它找不到E
module Handler.MyProfile where
import Import
getMyProfileR :: Handler Html
getMyProfileR = do
now <- liftIO getCurrentTime
wordList <- (runDB $ E.select $ E.from $ \v -> do
w
我有一个包含教师、学校和学区的数据库模式。TEACHERS表有一个可以为空的SCHOOL_ID列(教师可以属于一个学校,也可以不属于一个学校),SCHOOLS表有一个可以为空的DISTRICT_ID列(一个学校可以属于一个学区,也可以不属于一个学区)。
使用Esqueleto,我想要一个教师列表,每个教师都有一个学校(如果他们属于一个学校)和一个地区(如果他们属于一个地区的学校)。我花了一段时间才找出正确的表达式,只是教师->学校左连接,但我最终得到了正确的:
select $
from $ \(teacher `LeftOuterJoin` school) -> do
on
我有一个Esqueleto查询,它选择了所有的StatusUpdate和它们各自的User,我想把它限制为每个User只有一个StatusUpdate,而现在只限于StatusUpdate。
我有一个有效的SQL查询,我只是在努力将其转换为有效的Esqueleto。
SELECT "email", "subject"
FROM "status_update"
LEFT JOIN "user"
ON ("status_update"."user" = "user"."id
我希望基于存储在数据库中的数据动态创建Database.Esqueleto查询(参见下面代码片段中的DynamicQuery Database.Persist实体)。下面的代码编译,但由于重复的定义(op用于文本字段类型,op2用于日期字段类型,op3用于Bool字段类型),所以并不是很优雅。
是否有可能编写一个与op类似的更通用的函数,可以在expr定义的所有情况下使用?
尝试将op重用到使用op2的Day字段类型会导致以下错误消息:
test.hs:68:46:
Couldn't match expected type `Text' with actual type `Da
我正在做一个分页的资源,这将需要一个内部选择,我已经设计了sql术语。它的结构如下:
select *
from (
select w.*, d.distance
from `Work` w
inner join AdrDistance d on d.nhood2 = w.nhood
where d.nhood1 = 1 -- this will be a variable
order by d.distance
limit 0, 10 -- this will be pagination
) w
inner join WI
我正在开发一个非常简单的玩具API来提高我的Haskell技能。相关的数据库表称为ingredients,并有一些字段(id, name, category)。
我现在试图让一个显示可能重复的选择查询正常工作。它以一种天真的方式来做这件事。如果两种原料的名称相同,它可能是重复的。然而,它被允许有相同名称的成分,只是它们可能是重复的。如果这种限制没有意义的话,这并不重要,因为这只是一个玩具项目。
基本上,我想在esqueleto中获得以下查询:
SELECT name FROM ingredients
GROUP BY name
HAVING count(*) > 1;
我成功地创建了以下
数据类型定义为: data ComitteeView = CommitteeView { committeeId :: CommitteeId
, committeeMembers :: [Person]
}
data CommitteesView = CommitteesView { committeeView :: [CommitteeView] } 有一个持久的模型: Person
name Text
Committee
name T
我试图使用来自Esqueleto的一个示例查询,但我无法编译它。唯一的变化是我使用它时没有加入。
我有张桌子看起来像这样:
sqlite> select * from my_table;
id|category|amount
1|A|1.0
2|A|2.0
3|B|2.0
4|B|8.0
我想这样做:
select category,sum(amount) from my_table group by category;
category|sum(amount)
A|3.0
B|10.0
这是我的疑问:
import qualified Database.Esqueleto as E
我正在尝试将以下SQL转换为Esqueleto:
SELECT id, task_id, author_id
FROM scenario
INNER JOIN ( SELECT task_id as tId, author_id as aId, MAX(last_update) as lastUp
FROM scenario
GROUP BY task_id, author_id
) t
ON task_id = tId AND author_id = aId AND last_update = lastUp
我正在学习一门关于Node.js和Angular的课程。我在Nodejs上只注册了两个路由。我访问的所有路径都记录在控制台屏幕上。
问题是,我得到了两行日志,而这两行日志不在我的代码中,这看起来非常奇怪:
GET /user_avatar/localhost/esqueleto/40/1246_1.png 200 5.748 ms - 462
GET /user_avatar/localhost/cristianonasciment/40/3720_1.png 200 7.032 ms - 462
由于我的开发笔记本电脑中没有这些路径(或目录),谁会知道这到底是怎么回事呢?
非常感谢。
对于这样简单的查询
runDb . select . from $ \cell -> do
where_ $ cell ^. CellCode ==. val "x"
return cell
我想在将字段值与"x“进行比较之前应用一个函数。原因是单元格代码在数据库中有尾随空格,没有什么比修剪它们更容易的了,例如使用来自的Data.Text。然而,我最初使用fmap的方法(两次)导致了
No Instance for (Functor SqlExpr)
我知道Esqueleto提供的一些函数,比如just,专门完成了类似的任务(不过,我找不到just的实现)
我正在尝试找出如何使用Esqueleto编写以下查询
SELECT COUNT("person"."id")
FROM "person"
WHERE (("person"."admin" = 't' OR "person"."vip" = 't') // 't' as in True
OR "person"."karma" >= 5000 AND "person".
从脚手架上的人造config/models:
Inventory
name Text
description Text
Container
name Text
ContainerSlot
container ContainerId
item InventoryId Maybe
现在,使用Esqueleto,我希望使用LeftOuterJoin来获取容器中的槽,如果未分配实际库存,则实际库存为空。
selectContainerSlots containerKey = do
stuff <- select $ from
我构建了一个查询,该查询连接几个表,并进一步限制结果,除非有一个名为IncludeAll等于True的字段。
我想写成这样
fetch i = runDb . select . from $ \(a, b, c) -> do
where_ $
a ^. AId ==. valkey i
&&. b ^. BField1 ==. a ^. AField2
&&. c ^. CField1 ==. a ^. AField3
unless (unValue $ b ^. BIncludeAll) $
where_
如何使用persistLowerCase拟商器使用两个或多个字段构建唯一的密钥?
当使用使用来自的指导为简单网站创建模型时,会出现以下错误:
Build FAILED
$PREFIX/App/Models.hs: line 42, column 18:
Not in scope: data constructor `GroupSlug'
$PREFIX/App/Models.hs: line 43, column 19:
Not in scope: data constructor `GroupName'
App/Models.hs
{-# LANGUAGE Empty
我有一个描述Notification和Notified实体的片段:
Notification
type NotiType
release ReleaseId
date UTCTime
Notified
aboutWhat NotificationId
unread Bool
user UserId
现在我想写这个:
-- | Mark specified notification as already seen by specific user. Note that
-- we us