Commit 5da682d
Fix MPR corruption from dangling GUIDs after attribute drop/add (#4)
The BSON parser was discarding $ID fields from StoredValue, CalculatedValue,
OqlViewValue, and AttributeType objects. The writer then always generated new
UUIDs, leaving orphaned GUID references that caused KeyNotFoundException in
Studio Pro and MxBuild.
Preserve existing $ID through parse→serialize roundtrips; only generate new
UUIDs for newly created attributes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 68e1662 commit 5da682d
4 files changed
Lines changed: 195 additions & 15 deletions
File tree
- docs/12-bug-reports
- mdl/executor
- sdk/mpr
Lines changed: 76 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
458 | 458 | | |
459 | 459 | | |
460 | 460 | | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
461 | 523 | | |
462 | 524 | | |
463 | 525 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
| 227 | + | |
227 | 228 | | |
228 | 229 | | |
229 | 230 | | |
230 | | - | |
| 231 | + | |
231 | 232 | | |
232 | 233 | | |
233 | 234 | | |
| 235 | + | |
| 236 | + | |
234 | 237 | | |
235 | | - | |
| 238 | + | |
236 | 239 | | |
237 | 240 | | |
238 | 241 | | |
| 242 | + | |
| 243 | + | |
239 | 244 | | |
240 | | - | |
| 245 | + | |
241 | 246 | | |
242 | 247 | | |
243 | 248 | | |
| 249 | + | |
| 250 | + | |
244 | 251 | | |
245 | | - | |
| 252 | + | |
246 | 253 | | |
247 | 254 | | |
| 255 | + | |
| 256 | + | |
248 | 257 | | |
249 | 258 | | |
250 | 259 | | |
251 | 260 | | |
252 | 261 | | |
| 262 | + | |
253 | 263 | | |
254 | 264 | | |
255 | 265 | | |
256 | 266 | | |
| 267 | + | |
257 | 268 | | |
258 | 269 | | |
259 | 270 | | |
260 | 271 | | |
261 | 272 | | |
262 | | - | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
263 | 276 | | |
264 | | - | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
265 | 280 | | |
266 | | - | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
267 | 284 | | |
268 | | - | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
269 | 288 | | |
270 | 289 | | |
| 290 | + | |
271 | 291 | | |
272 | 292 | | |
273 | 293 | | |
274 | 294 | | |
275 | 295 | | |
276 | 296 | | |
| 297 | + | |
277 | 298 | | |
278 | 299 | | |
279 | 300 | | |
| |||
282 | 303 | | |
283 | 304 | | |
284 | 305 | | |
285 | | - | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
286 | 309 | | |
287 | | - | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
288 | 313 | | |
289 | | - | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
290 | 317 | | |
291 | | - | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
292 | 321 | | |
293 | 322 | | |
294 | 323 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
785 | 785 | | |
786 | 786 | | |
787 | 787 | | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
788 | 794 | | |
789 | | - | |
| 795 | + | |
790 | 796 | | |
791 | 797 | | |
792 | 798 | | |
| |||
807 | 813 | | |
808 | 814 | | |
809 | 815 | | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
810 | 823 | | |
811 | 824 | | |
812 | 825 | | |
813 | | - | |
| 826 | + | |
814 | 827 | | |
815 | 828 | | |
816 | 829 | | |
| |||
821 | 834 | | |
822 | 835 | | |
823 | 836 | | |
824 | | - | |
| 837 | + | |
825 | 838 | | |
826 | 839 | | |
827 | 840 | | |
| |||
0 commit comments