/Users/deen/code/yugabyte-db/src/postgres/src/backend/access/rmgrdesc/genericdesc.c
Line | Count | Source (jump to first uncovered line) |
1 | | /*------------------------------------------------------------------------- |
2 | | * |
3 | | * genericdesc.c |
4 | | * rmgr descriptor routines for access/transam/generic_xlog.c |
5 | | * |
6 | | * |
7 | | * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group |
8 | | * Portions Copyright (c) 1994, Regents of the University of California |
9 | | * |
10 | | * src/backend/access/rmgrdesc/genericdesc.c |
11 | | * |
12 | | *------------------------------------------------------------------------- |
13 | | */ |
14 | | #include "postgres.h" |
15 | | |
16 | | #include "access/generic_xlog.h" |
17 | | #include "lib/stringinfo.h" |
18 | | #include "storage/relfilenode.h" |
19 | | |
20 | | /* |
21 | | * Description of generic xlog record: write page regions that this record |
22 | | * overrides. |
23 | | */ |
24 | | void |
25 | | generic_desc(StringInfo buf, XLogReaderState *record) |
26 | 0 | { |
27 | 0 | Pointer ptr = XLogRecGetData(record), |
28 | 0 | end = ptr + XLogRecGetDataLen(record); |
29 | |
|
30 | 0 | while (ptr < end) |
31 | 0 | { |
32 | 0 | OffsetNumber offset, |
33 | 0 | length; |
34 | |
|
35 | 0 | memcpy(&offset, ptr, sizeof(offset)); |
36 | 0 | ptr += sizeof(offset); |
37 | 0 | memcpy(&length, ptr, sizeof(length)); |
38 | 0 | ptr += sizeof(length); |
39 | 0 | ptr += length; |
40 | |
|
41 | 0 | if (ptr < end) |
42 | 0 | appendStringInfo(buf, "offset %u, length %u; ", offset, length); |
43 | 0 | else |
44 | 0 | appendStringInfo(buf, "offset %u, length %u", offset, length); |
45 | 0 | } |
46 | |
|
47 | 0 | return; |
48 | 0 | } |
49 | | |
50 | | /* |
51 | | * Identification of generic xlog record: we don't distinguish any subtypes |
52 | | * inside generic xlog records. |
53 | | */ |
54 | | const char * |
55 | | generic_identify(uint8 info) |
56 | 0 | { |
57 | 0 | return "Generic"; |
58 | 0 | } |