Commit dabca39
Keep the whole number field record in the character search batch (LMFDB#6008)
The batched postprocessing step kept only the label of each matched number
field, so formatfield built a WebNumberField holding just that label and
field_pretty reloaded the record from the database whenever the pretty name
needed more than the label: degree 3 wants disc_abs/disc_sign/coeffs, generic
degree 4 and degree 2^k want subfields/subfield_mults. Displaying the kernel
field 4.0.2197.1 (the order 4 characters of modulus 13) therefore still made
5 record level lookups, so a cold results page did database work proportional
to the number of distinct kernel fields on it.
Keep the whole nf_fields record in character_postprocess (one query either
way) and hand it to formatfield as the virtual column kernel_field_data.
Every column field_pretty consults lives in nf_fields, so no nf_fields_extra
batch is needed. Case 5b of field_pretty also looked up the unique quadratic
subfield of an imprimitive quartic by coefficients; read the squarefree
radicand off the stored subfield polynomial instead, the way cases 5a and 7
already do, which leaves no lucky/lookup call in the render path.
Verified: 5 record lookups -> 0 when displaying that kernel field, and 0 over
a 50 row page of order <= 12 characters; the new test_field_columns_no_lookups
patches nf_fields.lookup, nf_fields.lucky and nf_fields_extra.lookup to raise
and fails on the previous commit; rendered results tables and downloads are
byte identical before and after on 9 searches and 4 downloads; old and new
case 5b radicands agree on the 1450 quartics with a unique quadratic subfield
among the 4000 smallest discriminant quartics; cold render of
?modulus=1-500&order=4&showcol=first drops from 11.2s to 0.9s, order=8 from
7.9s to 0.9s and order=3 from 4.5s to 0.9s against devmirror.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 27cedf0 commit dabca39
3 files changed
Lines changed: 101 additions & 51 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
281 | 281 | | |
282 | | - | |
283 | | - | |
| 282 | + | |
284 | 283 | | |
285 | 284 | | |
286 | 285 | | |
| |||
306 | 305 | | |
307 | 306 | | |
308 | 307 | | |
309 | | - | |
310 | | - | |
| 308 | + | |
| 309 | + | |
311 | 310 | | |
312 | 311 | | |
313 | 312 | | |
| |||
327 | 326 | | |
328 | 327 | | |
329 | 328 | | |
330 | | - | |
| 329 | + | |
331 | 330 | | |
332 | 331 | | |
333 | | - | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
334 | 337 | | |
335 | | - | |
336 | | - | |
| 338 | + | |
337 | 339 | | |
338 | 340 | | |
339 | 341 | | |
340 | 342 | | |
341 | | - | |
| 343 | + | |
| 344 | + | |
342 | 345 | | |
343 | | - | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
344 | 349 | | |
345 | 350 | | |
346 | 351 | | |
| |||
351 | 356 | | |
352 | 357 | | |
353 | 358 | | |
354 | | - | |
| 359 | + | |
355 | 360 | | |
356 | 361 | | |
357 | 362 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
71 | 85 | | |
72 | 86 | | |
73 | 87 | | |
74 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
75 | 127 | | |
76 | 128 | | |
77 | 129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | 235 | | |
243 | 236 | | |
244 | 237 | | |
| |||
289 | 282 | | |
290 | 283 | | |
291 | 284 | | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
321 | 314 | | |
322 | 315 | | |
323 | 316 | | |
| |||
0 commit comments