
I agree with you. We can have different strategy for different back ends. For relational databases back ends such as persistent-postgres, it's reasonable to add some useful sql features, to get high performance in the production scenarios, and avoid reinventing the same wheels in the application layer. As for NoSql back ends, we can do nothing just like now, or provide some application layer tools for developers to use quickly. On Tue, 2011-02-22 at 13:04 +0100, Paolo Losi wrote:
2011/2/22 Антон Чешков
I want join its by some rule and take only first "N" results. In this case i do not want serve all datasets entirely. I would like to make as little as possible. I think this algorithms are exist. Those algorithms exist indeed and have been implemented in last 25 years inside RDBMS as query optimizers. The question is, how much is that reasonable to re-implement in Haskell/Persistent? My 2 cent guess is that there are two viable options:
1) For Relational Backends, when scalability concerns raised by Max are not important, the approach of a monadic DSL a la HaskellDB is the best. Basically the library job is to build the SQL query and let the RDBMS optmizer do its job.
2) For NOSQL Backends, the solution is to code your hand rolled queries as it can be done with persistent now (the "do nothing" solution). That is the approach suggested for redis, for example...
Paolo
-- Paolo Losi e-mail: paolo@enuan.com mob: +39 348 7705261
ENUAN Srl Via XX Settembre, 12 - 29100 Piacenza _______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel