* Dump locallock, and relevant lock/proclock (if they exist) */
| 2509 | * Dump locallock, and relevant lock/proclock (if they exist) |
| 2510 | */ |
| 2511 | void DumpResQueueLockInfo(LOCALLOCK *locallock) |
| 2512 | { |
| 2513 | if(locallock) |
| 2514 | { |
| 2515 | LOCALLOCKTAG localtag = locallock->tag; |
| 2516 | elog(LOG, |
| 2517 | "\n\tDumping locallock: \n" |
| 2518 | "\t%-40s %d\n" |
| 2519 | "\t%-40s %d\n" |
| 2520 | "\t%-40s %d\n" |
| 2521 | "\t%-40s %d\n" |
| 2522 | "\t%-40s %d\n" |
| 2523 | "\t%-40s %p\n" |
| 2524 | "\t%-40s %p\n" |
| 2525 | "\t%-40s %ld\n" |
| 2526 | "\t%-40s %d\n" |
| 2527 | "\t%-40s %d\n" |
| 2528 | "\t%-40s %ld\n" |
| 2529 | "\t%-40s %s\n" |
| 2530 | "\t%-40s %s\n" |
| 2531 | "\t%-40s %s\n", |
| 2532 | "tag.lock.locktag_field1:", |
| 2533 | localtag.lock.locktag_field1, |
| 2534 | "tag.lock.locktag_field2:", |
| 2535 | localtag.lock.locktag_field2, |
| 2536 | "tag.lock.locktag_field3:", |
| 2537 | localtag.lock.locktag_field3, |
| 2538 | "tag.lock.locktag_field4:", |
| 2539 | localtag.lock.locktag_field4, |
| 2540 | "tag.mode:", |
| 2541 | localtag.mode, |
| 2542 | "lock:", |
| 2543 | locallock->lock, |
| 2544 | "proclock:", |
| 2545 | locallock->proclock, |
| 2546 | "nLocks:", |
| 2547 | locallock->nLocks, |
| 2548 | "numLockOwners:", |
| 2549 | locallock->numLockOwners, |
| 2550 | "maxLockOwners:", |
| 2551 | locallock->maxLockOwners, |
| 2552 | "lockOwners.nLocks:", |
| 2553 | locallock->lockOwners->nLocks, |
| 2554 | "holdsStrongLockCount:", |
| 2555 | locallock->holdsStrongLockCount ? "true" : "false", |
| 2556 | "lockCleared:", |
| 2557 | locallock->lockCleared ? "true" : "false", |
| 2558 | "istemptable:", |
| 2559 | locallock->istemptable ? "true" : "false"); |
| 2560 | if(locallock->lock) |
| 2561 | { |
| 2562 | LOCK *lock = locallock->lock; |
| 2563 | LOCKTAG locktag = lock->tag; |
| 2564 | elog(LOG, |
| 2565 | "\n\tDumping lock: \n" |
| 2566 | "\t%-40s %d\n" |
| 2567 | "\t%-40s %d\n" |
| 2568 | "\t%-40s %d\n" |
no test coverage detected