On Mon, Dec 13, 2021 at 10:29 AM Tiago Cardoso <honeyryderch...@gmail.com> wrote:
> A segunda-feira, 13 de dezembro de 2021 à(s) 18:12:19 UTC, Jeremy Evans > escreveu: > >> On Mon, Dec 13, 2021 at 9:03 AM Tiago Cardoso <honeyry...@gmail.com> >> wrote: >> >>> .intersect is definitely not covering my use-case. >>> >> >> Could you explain why? For the example you gave, results should be >> identical. >> > > The example above is probably not matching the real use-case I'd like to > cover, which is found here: > https://gitlab.com/honeyryderchuck/rodauth-oauth/-/merge_requests/69/diffs#eba3d8d3b7f624088a30cbc09948382d6dd2354e_687_702, > which blows with "Sequel::DatabaseError: SQLite3::SQLException: SELECTs to > the left and right of INTERSECT do not have the same number of result > columns" in the test suite if I use ".intersect", which I assume isn't to > be used with joined tables. > You can use #intersect, you just need to make sure the same columns are selected in both datasets (or at least, the same number). This is definitely a case where even if Dataset#merge was supported, I would have it raise an error. > If you ever change your mind about Dataset#merge, I guess that it'd be >> possible to constrain it to handle only "simple" cases (i.e. no different >> tables, but potentially handling merging joins, conditions, ...). I know >> that AR supports something of the kind, which has worked in the past for me >> for the simple cases, but you might know quite a bit more about the >> implementation overhead than me. >> >> I 100% want to avoid AR's issues with #merge. Look Rails 7.0 CHANGELOG >> for AR ( >> https://github.com/rails/rails/blob/7-0-stable/activerecord/CHANGELOG.md) >> and search for "merge". Please let me know what you think about the >> behavior. >> >> > >> If you look at the reasoning behind merge given in the AR documentation: >> "This is mainly intended for sharing common conditions between multiple >> associations.". Due to Sequel's extensive support for SQL expression >> objects as part of it's API (instead of SQL string fragments with >> placeholders), you can almost always share common conditions in a Sequel >> object, and use the shared conditions in multiple datasets. >> > > I'm definitely in favour of not importing AR's maintenance burden to > sequel. I guess I was looking for a "terser" way for doing what I am in the > linked example above, but perhaps it's not AR's merge feature, and I'm best > served with Dataset#opts already. > Agreed. Thanks, Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to sequel-talk+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sequel-talk/CADGZSScsDrkGGWoet2EYPnmAMj_rSLph%2BR147uG69ExZwGntWA%40mail.gmail.com.