06:54
abraxxa joined
06:59
abraxxa left
07:00
abraxxa joined
10:51
patrickb joined
12:04
abraxxa left
12:06
abraxxa joined
|
|||
patrickb | o/ | 12:07 | |
Are there any plans to support literal SQL in queries? (So that I provide some SELECT statement that returns one or many table rows and then have Red automatically map the result to objects and hand me those?) | 12:09 | ||
12:11
abraxxa left
|
|||
SmokeMachine | it already support literal SQL, but it do not convert it to anything... | 12:11 | |
patrickb: ^^ | |||
12:12
abraxxa joined
|
|||
SmokeMachine | you can always do `red-do { .execute: "SELECT 1" }` (if you are using `red-defaults`) or `$*RED-DB.execute: "select 1"` (if you are defining `$*RED-DB`) | 12:13 | |
patrickb | is that documented | ||
Thanks :-) | |||
SmokeMachine | no sure... :( | ||
not | |||
patrickb: that's not the best way of documenting it, but you can run this on the driver object: fco.github.io/Red/api/Red/Driver | 12:21 | ||
you can also hand create an AST tree and send it to the driver as well to make it translatable to any driver you want... | 12:40 | ||
(by AST I mean Red::AST and not RakuAST (yet)) | |||
patrickb | Understood. Thanks for explaining. I'm mostly interested in writing DB dependent SQL though. (And still be able to benefit of the OR-Mapping, that Red does.) Does something like this fit into the broader Red vision in general? | 13:40 | |
SmokeMachine | I’ve been thinking on a generic model for custom queries… but i think I’m still far from that… | 13:44 | |
patrickb | OK. | 13:47 | |
SmokeMachine | I have to do at least this (github.com/FCO/Red/issues/470) before that | ||
patrickb: Could you give me an example of query you’d like to run? Please? | 13:49 | ||
patrickb | gist.github.com/patrickbkr/0822bb6...ea1ef7ccab | 13:56 | |
I reformatted it a bit, but otherwise directly copied out of a production codebase | 13:57 | ||
Basic idea: There is a major and minor version column. I'd like the row with the latest version of a specific type. | 13:59 | ||
There is also a no-subselect variant, but I find it quite a bit harder to understand, so I went with the subselect variant. | 14:00 | ||
SmokeMachine | Have your tried doing that with Red? | 14:09 | |
patrickb | Not yet, I have to admit. | 14:11 | |
Apart from this specific case I'd enjoy being able to just write plain SQL in situations where the SQL turns out simpler or the knowledge of the Red DSL is lacking and I (or a team mate) is faster in putting some SQL together than working out the corresponding Red DSL fragment. | 14:16 | ||
In my experience that's typically the case when doing data analysis tasks. | |||
I have to leave for a bit, but will backlog. Thanks for your interest so far! | 14:17 | ||
SmokeMachine | fernando@Fernandos-MBP-2 ~/Red master raku -I. -MRed -e ' | 14:30 | |
model ModuleVersion { ... } | |||
model Module is table<my_module> { | |||
has $.id is id; | |||
has $.name is column; | |||
14:30
SmokeMachine left,
SmokeMachine joined
|
|||
SmokeMachine | patrickb: does that make sense? ^^ | 14:31 | |
the query (the internal one) would be only this: `.say for ModuleVersion.^all.grep(*.module."{ get-db-column-name }"() == 1).sort({ -.major, -.minor })` | 14:32 | ||
patrickb: I've forgotten the limit 1: www.irccloud.com/pastebin/zhpmmRlT/ | 14:35 | ||
(the first one I've clicked on the wrong button, sorry) | 14:36 | ||
16:43
ChanServ sets mode: +o SmokeMachine
|
|||
SmokeMachine | Red ORM for the Raku language - #red logs are going to be saved on logs.liz.nl, and later logs.raku.org | 16:44 | |
16:46
SmokeMachine sets mode: -o SmokeMachine
|
|||
patrickb | SmokeMachine: Looks good. Thanks! | 17:04 | |
17:04
patrickb left
17:09
patrickb joined
17:24
SmokeMachine left
17:25
SmokeMachine joined
20:06
patrickb left
20:18
japhb left
20:20
japhb joined
21:40
abraxxa left
21:44
abraxxa joined
|