ormx icon indicating copy to clipboard operation
ormx copied to clipboard

Discussion: get_many getters are impractical

Open OtaK opened this issue 4 years ago • 1 comments

Hey!

I've been trying to work with the get_many getters lately and they're essentially useless IMO because:

  • They take a single argument and perform a = test on it in the SQL query
  • They will return a single row in cases you're searching something like a UNIQUE index.

Meaning that you will have to resort to manual SQL queries if you're doing something as trivial as looking multiple records by a batched id/unique key.

I suggest changing the query in get_many to use a IN() statement instead of = and accepting a slice of arguments instead of a single one as it would semantically work as well.

But of course, as it'd be a breaking change, I'm triggering a discussion here.

I can take care of the implementation.

OtaK avatar Feb 16 '21 12:02 OtaK

I agree, get_many is pretty limited right now. It was intended for something simple like User::get_by_role(Role). As far as I can remember, sqlx is still picky when it comes to encoding arrays of user-defined types to postgres. Therefor, I'd suggest we just create a new attribute for this, maybe #[ormx(get_any)]?

NyxCode avatar Feb 16 '21 15:02 NyxCode