I'm seeing some weird behavior in the build-in People view and I'm going to try to explain it.
There are 168 users in my site. If I change the view to show them all (and not paginate), it shows them all fine. If I revert to default pagination (50 per page), it still shows a total of 168 records across 4 pages, but some users are duplicated and others left out.
In trying to understand what is happening, I took the query and ran it directly on my database ...
SELECT users_field_data.uid
FROM users_field_data users_field_data
WHERE (users_field_data.default_langcode = '1') AND (users_field_data.uid != '0')
ORDER BY users_field_data.created DESC
LIMIT 50 OFFSET 0
Changing the offset to 50, 100, 150 simulates pushing the next page button. When I run these queries, some uids (e.g. uid = 101) show up multiple times and some are not present at all.
If I take out the LIMIT 50 OFFSET 0
so that it returns all 168 rows at once, this does not happen. Similarly, if I change the sort to ORDER BY users_field_data.created DESC
, this does not happen even if I add the pagination back in.
I copied all the results to Excel and sorted them and below is what I end up with - notice how 101 is present 3 times in the first column but not the second and 45 is not even in the first column. Anyone have any idea why this is happening? I'm at a complete loss.
Thanks!
Paginated | Not Paginated |
---|---|
1 | 1 |
12 | 12 |
47 | 45 |
48 | 46 |
49 | 47 |
51 | 48 |
52 | 49 |
53 | 50 |
54 | 51 |
55 | 52 |
55 | 53 |
56 | 54 |
56 | 55 |
57 | 56 |
57 | 57 |
60 | 58 |
62 | 59 |
63 | 60 |
64 | 61 |
65 | 62 |
66 | 63 |
66 | 64 |
67 | 65 |
67 | 66 |
68 | 67 |
69 | 68 |
70 | 69 |
71 | 70 |
72 | 71 |
73 | 72 |
86 | 73 |
87 | 74 |
87 | 75 |
88 | 76 |
88 | 77 |
89 | 78 |
89 | 79 |
90 | 80 |
90 | 81 |
90 | 82 |
91 | 83 |
91 | 84 |
91 | 85 |
92 | 86 |
92 | 87 |
92 | 88 |
93 | 89 |
93 | 90 |
93 | 91 |
94 | 92 |
94 | 93 |
95 | 94 |
95 | 95 |
96 | 96 |
96 | 97 |
96 | 98 |
97 | 99 |
97 | 100 |
97 | 101 |
98 | 102 |
98 | 103 |
98 | 104 |
99 | 106 |
99 | 107 |
99 | 108 |
100 | 109 |
100 | 110 |
100 | 111 |
101 | 112 |
101 | 113 |
101 | 114 |
102 | 115 |
102 | 116 |
102 | 117 |
103 | 121 |
103 | 122 |
103 | 123 |
104 | 125 |
104 | 126 |
104 | 127 |
106 | 128 |
106 | 129 |
114 | 130 |
115 | 131 |
116 | 132 |
117 | 133 |
121 | 134 |
122 | 135 |
123 | 136 |
125 | 137 |
126 | 138 |
127 | 139 |
128 | 140 |
129 | 141 |
130 | 142 |
148 | 148 |
149 | 149 |
153 | 153 |
270 | 270 |
272 | 272 |
273 | 273 |
274 | 274 |
285 | 285 |
286 | 286 |
287 | 287 |
288 | 288 |
292 | 292 |
299 | 299 |
300 | 300 |
301 | 301 |
302 | 302 |
303 | 303 |
304 | 304 |
305 | 305 |
307 | 307 |
315 | 315 |
316 | 316 |
324 | 324 |
339 | 339 |
351 | 351 |
353 | 353 |
356 | 356 |
357 | 357 |
358 | 358 |
362 | 362 |
363 | 363 |
364 | 364 |
365 | 365 |
366 | 366 |
367 | 367 |
379 | 379 |
380 | 380 |
381 | 381 |
382 | 382 |
384 | 384 |
421 | 421 |
424 | 424 |
425 | 425 |
426 | 426 |
427 | 427 |
433 | 433 |
436 | 436 |
438 | 438 |
439 | 439 |
440 | 440 |
441 | 441 |
442 | 442 |
443 | 443 |
444 | 444 |
445 | 445 |
446 | 446 |
448 | 448 |
449 | 449 |
450 | 450 |
451 | 451 |
452 | 452 |
453 | 453 |
454 | 454 |
455 | 455 |
456 | 456 |
458 | 458 |
459 | 459 |
460 | 460 |
461 | 461 |
462 | 462 |
463 | 463 |
464 | 464 |
465 | 465 |
If it helps, here is all the data for uid=101:
|101|en|en|bill.moody|[hashed pass]|[unique email]|America/New_York|0|1547769784|1579710354|1579706734|1579706734|1
And here is the data for one not showing up (uid=45):
|45|en|en|joyce.pelz|[hashed pass]|[unique email]|America/New_York|1|1547769784|1669957934|1681242515|1681241569|1