CQL 3允许使用如下定义的"复合"主键:
CREATE TABLE timeline (
user_id varchar,
tweet_id uuid,
author varchar,
body varchar,
PRIMARY KEY (user_id, tweet_id)
);
Run Code Online (Sandbox Code Playgroud)
使用这样的模式,分区键(存储引擎行键)将包含user_id值,而tweet_id将组合成列名.相反,我正在寻找的是分区键(存储引擎行键)具有类似user_id的复合值:tweet_id.显然我可以key = user_id + ':' + tweet_id在我的应用程序中做一些事情,但有没有办法让CQL 3为我做这个?
我想要一个带有时间戳值的类型,它具有适当的Semigroup实例(最新值获胜).事实证明,Max (Arg UTCTime a)这正是我想要的,但直接合作真的很尴尬,所以我写了这个:
import Data.Semigroup
import Data.Thyme ()
import Data.Thyme.Clock
newtype Stamped a =
Stamped' (Max (Arg UTCTime a))
deriving (Show, Eq, Semigroup, Functor)
-- Many other useful classes could be added here
pattern Stamped :: UTCTime -> a -> Stamped a
pattern Stamped s v = Stamped' (Max (Arg s v))
unstamp :: Max (Arg a b) -> b
unstamp (Max (Arg _ v)) = v
stamp :: IO a -> IO (Stamped a) …Run Code Online (Sandbox Code Playgroud) 我有一些Python代码看起来像这样:
rates = {3: [((17500, 99999), Decimal('23425.00'), Decimal('7234.24'))],
4: [(( 0, 3510), Decimal( '4563.00'), Decimal('5234.00')),
(( 3510, 17500), Decimal('34578.00'), Decimal('3464.50')),
((17500, 99999), Decimal('18268.00'), Decimal('5734.66'))],
5: [((17500, 99999), Decimal('83564.00'), Decimal('3475.60'))]}
Run Code Online (Sandbox Code Playgroud)
请注意,十进制值在小数点周围对齐,而整数是右对齐的.
是否有一些软件能够以自动化方式执行这种复杂的对齐?我会对任何接近的东西感兴趣,即使它与上述不完全匹配.