mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-12-23 03:11:32 +00:00
only call random_smallint once for filter
This commit is contained in:
parent
bd020ebb0f
commit
77aea3362e
1 changed files with 5 additions and 1 deletions
|
@ -252,7 +252,11 @@ impl Community {
|
||||||
.filter(
|
.filter(
|
||||||
community::id.nullable().eq(coalesce_2_nullable(
|
community::id.nullable().eq(coalesce_2_nullable(
|
||||||
try_pick()
|
try_pick()
|
||||||
.filter(community::random_number.ge(random_smallint()))
|
.filter(community::random_number.nullable().ge(
|
||||||
|
// Without `select` and `single_value`, this would call `random_smallint` separately
|
||||||
|
// for each row
|
||||||
|
select(random_smallint()).single_value(),
|
||||||
|
))
|
||||||
.single_value(),
|
.single_value(),
|
||||||
// Wrap to the beginning if the generated number is higher than all
|
// Wrap to the beginning if the generated number is higher than all
|
||||||
// `community::random_number` values, just like in the MediaWiki algorithm
|
// `community::random_number` values, just like in the MediaWiki algorithm
|
||||||
|
|
Loading…
Reference in a new issue