Repository: petergeoghegan/pg_hexedit Branch: master Commit: 24ca0af9ed66 Files: 22 Total size: 1.5 MB Directory structure: gitextract_go4qiv8m/ ├── .cirrus.yml ├── .editorconfig ├── .gitignore ├── LICENSE.md ├── Makefile ├── README.md ├── __open_relation ├── btree_hexedit ├── gin_hexedit ├── hexedit.cfg ├── pg_hexedit.c ├── relation_hexedit └── t/ ├── .gitignore ├── 1249 ├── 2685 ├── expected_attributes.tags ├── expected_attributes_idx.tags ├── expected_empty_lsn.tags ├── expected_leaf_idx.tags ├── expected_no_attributes.tags ├── expected_no_attributes_idx.tags └── test_pg_hexedit ================================================ FILE CONTENTS ================================================ ================================================ FILE: .cirrus.yml ================================================ task: name: Linux - Debian Bullseye - Autoconf env: CPUS: 4 BUILD_JOBS: 4 CCACHE_DIR: /tmp/ccache_dir CFLAGS: -Og -g3 CXXFLAGS: $CFLAGS CC: ccache gcc CXX: ccache g++ matrix: - PGBRANCH: master - PGBRANCH: REL_18_STABLE - PGBRANCH: REL_17_STABLE - PGBRANCH: REL_16_STABLE - PGBRANCH: REL_15_STABLE - PGBRANCH: REL_14_STABLE PGHOME: /tmp/postgres-${PGBRANCH} compute_engine_instance: image_project: pg-ci-images image: family/pg-ci-bullseye platform: linux cpu: $CPUS memory: 4G ccache_cache: folder: ${CCACHE_DIR} sysinfo_script: | id uname -a cat /proc/cmdline ulimit -a -H && ulimit -a -S export create_user_script: | useradd -m postgres chown -R postgres:postgres . mkdir -p ${CCACHE_DIR} chown -R postgres:postgres ${CCACHE_DIR} echo '* - memlock 134217728' > /etc/security/limits.d/postgres.conf su postgres -c "ulimit -l -H && ulimit -l -S" setup_core_files_script: | mkdir -m 770 /tmp/cores chown root:postgres /tmp/cores sysctl kernel.core_pattern='/tmp/cores/%e-%s-%p.core' configure_script: | su postgres <<-EOF git clone https://github.com/postgres/postgres.git cd ./postgres git checkout ${PGBRANCH} ./configure --prefix=${PGHOME} --enable-cassert EOF build_script: | su postgres <<-EOF cd ./postgres make -j${BUILD_JOBS} EOF upload_caches: ccache install_script: | su postgres <<-EOF cd ./postgres make install EOF test_script: | su postgres <<-EOF export PATH=${PGHOME}/bin:${PATH} make PG_CONFIG=${PGHOME}/bin/pg_config make PG_CONFIG=${PGHOME}/bin/pg_config dist make check EOF ================================================ FILE: .editorconfig ================================================ # EditorConfig, for indentation on Github # Per http://EditorConfig.org root = true # Unix-style newlines [*] end_of_line = lf charset = utf-8 # 4 space tabs for indentation [*.{c,h,y,l}] indent_style = tab indent_size = 4 ================================================ FILE: .gitignore ================================================ *.swp .wxHexEditor /*.o /pg_filenodemapdata /pg_hexedit ================================================ FILE: LICENSE.md ================================================ The GNU General Public License, Version 2, June 1991 (GPLv2) ============================================================ Copyright (c) 2018-2021, Crunchy Data Solutions, Inc. Copyright (c) 2017-2018, VMware, Inc. Copyright (c) 2002-2010, Red Hat, Inc. Copyright (c) 2011-2021, PostgreSQL Global Development Group Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble -------- The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. Terms And Conditions For Copying, Distribution And Modification --------------------------------------------------------------- **0.** This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. **1.** You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. **2.** You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: * **a)** You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. * **b)** You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. * **c)** If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. **3.** You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: * **a)** Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * **b)** Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * **c)** Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. **4.** You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. **5.** You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. **6.** Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. **7.** If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. **8.** If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. **9.** The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. **10.** If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. No Warranty ----------- **11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. **12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ================================================ FILE: Makefile ================================================ #------------------------------------------------------------------------- # # Makefile for pg_hexedit # # Copyright (c) 2018-2021, Crunchy Data Solutions, Inc. # Copyright (c) 2017-2018, VMware, Inc. # Copyright (c) 2002-2010, Red Hat, Inc. # Copyright (c) 2011-2021, PostgreSQL Global Development Group # #------------------------------------------------------------------------- PGFILEDESC = "pg_hexedit - emits descriptive XML tag format for PostgreSQL relation files" PGAPPICON=win32 HEXEDIT_VERSION = 0.1 PG_CONFIG = pg_config PGSQL_CFLAGS = $(shell $(PG_CONFIG) --cflags) PGSQL_INCLUDE_DIR = $(shell $(PG_CONFIG) --includedir-server) PGSQL_LDFLAGS = $(shell $(PG_CONFIG) --ldflags) PGSQL_LIB_DIR = $(shell $(PG_CONFIG) --libdir) PGSQL_PKGLIB_DIR = $(shell $(PG_CONFIG) --pkglibdir) PGSQL_BIN_DIR = $(shell $(PG_CONFIG) --bindir) DISTFILES= README.md Makefile pg_hexedit.c TESTFILES= t/1249 t/2685 t/expected_attributes.tags \ t/expected_attributes_idx.tags t/expected_empty_lsn.tags \ t/expected_leaf_idx.tags t/expected_no_attributes.tags \ t/expected_no_attributes_idx.tags t/test_pg_hexedit all: pg_hexedit pg_hexedit: pg_hexedit.o ${CC} ${PGSQL_LDFLAGS} ${LDFLAGS} -o pg_hexedit pg_hexedit.o -L${PGSQL_LIB_DIR} -L${PGSQL_PKGLIB_DIR} -lpgport -lpgcommon pg_hexedit.o: pg_hexedit.c ${CC} ${PGSQL_CFLAGS} ${CFLAGS} -I${PGSQL_INCLUDE_DIR} pg_hexedit.c -c check: t/test_pg_hexedit dist: rm -rf pg_hexedit-${HEXEDIT_VERSION} pg_hexedit-${HEXEDIT_VERSION}.tar.gz mkdir pg_hexedit-${HEXEDIT_VERSION} cp -p ${DISTFILES} pg_hexedit-${HEXEDIT_VERSION} mkdir pg_hexedit-${HEXEDIT_VERSION}/t cp -p ${TESTFILES} pg_hexedit-${HEXEDIT_VERSION}/t tar cfz pg_hexedit-${HEXEDIT_VERSION}.tar.gz pg_hexedit-${HEXEDIT_VERSION} rm -rf pg_hexedit-${HEXEDIT_VERSION} install: mkdir -p $(DESTDIR)$(PGSQL_BIN_DIR) install pg_hexedit $(DESTDIR)$(PGSQL_BIN_DIR) uninstall: rm -f '$(DESTDIR)$(PGSQL_BIN_DIR)/pg_hexedit$(X)' clean: rm -f t/*diff rm -f t/output*tags distclean: rm -f t/*diff rm -f t/output*tags rm -rf pg_hexedit-${HEXEDIT_VERSION} pg_hexedit-${HEXEDIT_VERSION}.tar.gz ================================================ FILE: README.md ================================================ pg_hexedit ========== ## Open PostgreSQL relation files in a hex editor with tags and annotations Copyright (c) 2018-2021, Crunchy Data Solutions, Inc. Copyright (c) 2017-2018, VMware, Inc. Copyright (c) 2002-2010, Red Hat, Inc. Copyright (c) 2011-2021, PostgreSQL Global Development Group Author: Peter Geoghegan [``](mailto:pg@bowt.ie) Author (pg_filedump): Patrick Macdonald [``](mailto:patrickm@redhat.com) License: [GNU General Public License version 2](https://opensource.org/licenses/GPL-2.0) [![Build Status](https://img.shields.io/cirrus/github/petergeoghegan/pg_hexedit/master)](https://cirrus-ci.com/github/petergeoghegan/pg_hexedit) ## Overview pg_hexedit is an experimental toolkit to format PostgreSQL heap, sequence, and index files (B-Tree, GiST, GIN, hash, BRIN, and SP-GiST indexes) when opened within the open source GUI hex editor [wxHexEditor](https://github.com/EUA/wxHexEditor). It makes viewing and editing PostgreSQL relation files *significantly* easier. PostgreSQL versions 14+ are supported. ![wxHexEditor with pg_type](./pg_type.png) *wxHexEditor with pg_type system catalog table* ![wxHexEditor with pg_type_typname_nsp_index](./pg_type_typname_nsp_index.png) *wxHexEditor with pg_type_typname_nsp_index system catalog index* __CAUTION:__ Do not use pg_hexedit with a PostgreSQL data directory if you are not prepared to have it __corrupt data__! pg_hexedit is primarily made available for educational purposes. It is an *experimental* tool, originally used for simulating corruption/corruption analysis. pg_hexedit is a fork of [pg_filedump](https://wiki.postgresql.org/wiki/Pg_filedump). The pg_hexedit frontend executable generates wxHexEditor format XML. pg_hexedit also provides "convenience" bash scripts. The scripts automate everything: they take the name of a table or index as an argument, connect to a database and find where the underlying file for the table or index is located, generate wxHexEditor format XML for the relevant file, and open the wxHexEditor GUI to display the relevant file with tags and annotations. ### Annotation, tags, and the use of color pg_hexedit uses color to convey conceptual similarities between distinct fields. For example, the `t_infomask2` and `t_infomask` heap tuple fields are both green. *Font* color is sometimes used to convey the status of a value contained within a particular field, without that information necessarily being directly inferred from the affected field (it could come from another metadata field within the same tuple). For example, MultiXact `xmax` values have green text, though the enclosing `xmax` tag's color is unaffected (it is always red). Similarly, non-contrasting font colors are used to deemphasize the contents of a field where the contents are redundant or otherwise insignificant. For example, in the common case where a never-updated heap tuple's `t_ctid` fields point to the heap tuple itself, a non-contrasting font color is used (a shade of blue is used that is very similar to the enclosing `t_ctid` field color). pg_hexedit annotations use field names and status flags that are grep'able from a PostgreSQL source code directory. While pg_hexedit aims to make interpreting the contents of pages as intuitive as possible, it does not go as far as interpreting the contents on the user's behalf. For example, `t_infomask` flag bits appear in annotations as a simple combination of "base" flag bits, rather than presenting the user with the logical state of `t_infomask` bits based on the combination of bits set: composite/logical flags such as `HEAP_XMIN_FROZEN` and `HEAP_XMAX_SHR_LOCK` will never appear in `t_infomask` annotations. pg_hexedit dynamically assigns colors to columns/attributes based on the attribute name. Indexes will have the same attribute field colors as the corresponding attributes in the tables that are indexed, since their `pg_attribute.attname` values will match. See also: [PostgreSQL documentation - heap_tuple_infomask_flags() contrib/pageinspect function](https://www.postgresql.org/docs/13/pageinspect.html#id-1.11.7.31.5) [PostgreSQL documentation - Database Page Layout](https://www.postgresql.org/docs/current/static/storage-page-layout.html) [PostgreSQL documentation - Preventing Transaction ID Wraparound Failures (xmin and xmax fields, Multixacts, and freezing)](https://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND) ## Initial setup on Linux There are no pg_hexedit packages available. pg_hexedit follows a simple trunk-based development model without any formal assigned versions. The only way to get pg_hexedit is to build it from source yourself. This is a deliberate trade-off; pg_hexedit is experimental, and it's not difficult to build from source anyway. ### Building pg_hexedit To build pg_hexedit you will need to have a PostgreSQL source tree or complete install tree (with include files). PostgreSQL system packages should provide all you need. If you run into trouble when building against system packages, please open a Github issue. The Makefile builds the pg_hexedit frontend utility program. [pg_config](https://www.postgresql.org/docs/current/app-pgconfig.html) must be visible in your $PATH. To build pg_hexedit from within the source directory: ```shell $ which pg_config # Check which Postgres installation you'll build against: /code/postgresql/REL_16_STABLE/install/bin/pg_config $ make ``` Once this step succeeds, you can usually move on to the next initial setup step (which is to install wxHexEditor). You probably won't need to actually install the pg_hexedit executables you just built. (You'll probably only ever use pg_hexedit through the convenience bash scripts, which are designed to be run from the pg_hexedit source directory directly. The convenience scripts expect to find the pg_hexedit frontend program in the current working directory.) If you really want to install the pg_hexedit frontend utility programs, you can do so in the usual way: ```shell $ make install ``` Note that the convenience scripts won't be installed. ### Installing wxHexEditor There are wxHexEditor packages available on major Linux platforms, though they all seem to use older versions. It is recommended that you use wxHexEditor version 0.25 or higher, since that version has fixes for a couple of bugs that affect the tag feature that pg_hexedit targets (see also: [wxHexEditor bug 87](https://github.com/EUA/wxHexEditor/issues/87)). At the time of writing there are no version 0.25 packages, so installing 0.25 actually means building wxHexEditor from its git master branch. You can get by with an older version, though you can expect some aspects of how tags are displayed to be glitchy. #### Installing wxHexEditor system package (easier, currently not recommended) On Debian-based systems you can install wxhexeditor in the usual way: ```shell $ sudo apt-get install wxhexeditor ``` #### Building wxHexEditor from source It's only mildly inconvenient to build wxHexEditor on a modern desktop Linux system. On Debian-based systems with source repositories set up, obtaining all build dependencies quickly should be straightforward: ```shell $ sudo apt-get build-dep wxhexeditor $ # (Install dependencies) $ sudo apt-get install libtool ``` Note that this doesn't actually install any wxHexEditor package. It just installs the dependencies to build the wxHexEditor source package, which, along with libtool, should be all we need to build wxHexEditor from git tip. Build wxHexEditor's master branch from source/git by cloning the official git repo, and following the instructions that it provides: [https://github.com/EUA/wxHexEditor](https://github.com/EUA/wxHexEditor) ## Initial setup on MacOS These steps should help you install pg_hexedit on MacOS (tested on Catalina with installed [Homebrew](https://brew.sh/)): 1. `brew install automake autoconf libtool wxmac` 1. Get [wxHexEditor source code](https://github.com/EUA/wxHexEditor) and edit `Makefile` removing the line mentioning OpenMP (`LIBS += -lgomp`) 1. Build wxHexEditor (`make`) 1. Get pg_hexedit source code, build (`make`) with `$PATH` including path to PostgreSQL binaries (Postgres installed via Homebrew – `brew install postgresql` – should be enough) 1. In hexedit.cfg, check `export HEXEDITOR`, it needs to point to the `wxHexEditor` binary (created above) Note: The convenience scripts set `$HOME` to the current working directory so that wxHexEditor reads its settings from a convenience-script-generated .wxHexEditor config file rather than the true user-wide/system-wide config file. This is like an `.ini` file. This hack is currently broken on MacOS. The relation_hexedit script works, but not exactly as designed. For example, the optimal "Bytes per line limit" for pg_hexedit seems to be 32, but that's not the default. (When wxHexEditor is built on MacOS, it will look for the config file in /Library/Preferences or ~/Library/Preferences - not in the user's home directory. It's not clear how the hack that works on Linux can be adopted to MacOS.) Suggested partial workaround: comment out the `HOME=$(pwd)` line in the `__open_relation` file (which is used by relation_hexedit). This will at least allow you to start up pg_hexedit in a way that works with your system/user wide wxHexEditor config. ## Quickstart guide - Using the convenience scripts pg_hexedit and wxHexEditor can be invoked using convenience scripts that take care of everything. These are designed to be run on a PostgreSQL backend hacker's laptop, while the target PostgreSQL server is actually running. The server is queried to locate the relevant relation files. The scripts also take care of adding convenience offsets to the wxHexEditor cache, which can be used to quickly locate internal pages of a B-Tree, for example. The wxHexEditor shortcut for accessing the offsets is Ctrl + G. The convenience scripts will download a portion of the relation using psql in the event of not finding relation files at the expected location on the filesystem. For the fallback to work, `contrib/pageinspect` must be installed and tagging must start at the beginning of the relation file (see `hexedit.cfg`). The convenience scripts automate away starting pg_hexedit in test environments, but it is still highly recommended that you familiarize yourself with PostgreSQL's file layout. See: [PostgreSQL documentation - Database File Layout](https://www.postgresql.org/docs/current/static/storage-file-layout.html). ### Requirements `psql` should be within your $PATH when the scripts are invoked. libpq environment variables like $PGDATABASE can be set within the `hexedit.cfg` file. These control what database is opened by wxHexEditor, and other such standard details. Note that just like pg_filedump, pg_hexeditor has no dependency on a running server, and is generally safer to use offline, despite the fact that it is typically used online. It is convenient to invoke wxHexEditor using the scripts provided during analysis of *in situ* issues, or when learning about PostgreSQL internals. Having a PostgreSQL relfilenode file open in a hex editor __risks data corruption__, especially when the PostgreSQL server is actually running throughout. The scripts were designed with backend development convenience in mind, where __the database should only contain disposable test data__. Convenience script assumptions: * The scripts initially assume that they're run as an OS user that has the operating system level permissions needed to open/read all PostgreSQL relation files, using the same absolute paths as PostgreSQL. Be very careful if the Postgres data directory is containerized; a convenience script might open relation files from an unrelated installation if this assumption is not fully met. * Most convenience scripts rely on `CREATE EXTENSION IF NOT EXISTS pageinspect` running and making available various SQL-callable functions. These functions are used to generate interesting offsets, or to display hints on index structure. (This is highly recommended, but not actually required.) * `psql` must connect using a PostgreSQL role with superuser permissions. This is needed to determine the path of Postgres relfiles (and to install `contrib/pageinspect`). [`contrib/pageinspect`](https://www.postgresql.org/docs/current/static/pageinspect.html) must be available (the extensions supporting files must be installed) to use the convenience scripts that depend on `contrib/pageinspect`. Note that the relation_hexedit script does not depend on `contrib/pageinspect`. relation_hexedit is designed to work equally well with relations of any access method, and uses simple convenience offsets (decile offsets). To open the Postgres table `pg_type` with tags and annotations: ```shell # Should be invoked with CWD that finds pg_hexedit executable: $ pwd /home/pg/code/pg_hexedit # Confirm configuration: $ $EDITOR hexedit.cfg # Invoke generic script (works on tables and indexes): $ ./relation_hexedit pg_type Replacing /home/pg/code/pg_hexedit/.wxHexEditor with pg_hexedit optimized settings... ... ``` To open the Postgres B-Tree `pg_type_typname_nsp_index` with tags and annotations: ```shell $ ./btree_hexedit pg_type_typname_nsp_index Replacing /home/pg/code/pg_hexedit/.wxHexEditor with pg_hexedit optimized settings... ... ``` The advantage of using the btree_hexedit script for B-Tree indexes over the generic relation_hexedit script is that btree_hexedit sets offsets for every non-leaf block that is a direct child of the root page (and for the root page itself). There is also a gin_hexedit convenience script. This does not set offsets automatically. Instead, it runs an SQL query that summarizes contiguous ranges within the index based on block type (this is output to stdout). Byte-wise offsets are output, which may be manually input using the offsets dialog. GIN indexes are often made up of a fairly small number of contiguous ranges of a single page type (e.g., 'data', 'leaf'), so a high level summary can help when locating the section that is of interest. Note that there might be fragmentation (many distinct, smaller contiguous ranges) in uncommon cases. The scripts will only open the first 1GB segment file in the relation. Note also that these convenience scripts limit the range of blocks that are summarized, to keep the overhead acceptable. (This can be changed by modifying hexedit.cfg.) If there is concurrent write activity by Postgres, the process of building XML tags may error out before finishing. In practice there is unlikely to be trouble. The scripts perform a `CHECKPOINT` before opening relation files. ### Getting acceptable performance While wxHexEditor compares favorably with other hex editors when tasked with editing very large files, it appears to be far more likely to become unresponsive when there are many tags. It may be necessary to work around this limitation at some point. Generalize from the example of the convenience scripts for guidance on this. Limiting the range that is summarized can be very effective in simple cases. pg_hexedit's `-x` flag can be used to specify a page LSN before which pages should not have tags emitted. This is another option to reduce the overhead of tags within wxHexEditor by avoiding generating tags for non-interesting blocks/pages in the first place. It can be useful during debugging to specify an LSN that is only a few checkpoints old, to limit annotations to recently modified blocks. This advanced option isn't used by the convenience scripts. [pg_waldump](https://www.postgresql.org/docs/current/static/pgwaldump.html) may be used to find a relevant cutoff point's LSN value (e.g., based on a commit WAL record's timestamp value). pg_hexedit's `-l` flag can be used when the target is an nbtree, GiST, GIN, or SP-GiST index relation. This will have pg_hexedit emit all-green, single-page tags for leaf pages. Leaf pages can be much less interesting than internal pages in some debugging scenarios. For example, when the balance of a tree structure must be examined, only the internal pages are relevant. This is yet another option for limiting the number of tags generated to control overhead within wxHexEditor. This advanced option isn't currently used by the convenience scripts. ## Direct invocation Invoking pg_hexedit directly (not using convenience scripts) is useful when you want to work on a copy of the database that is not under the control of a running PostgreSQL server, or when a psql connection to the running PostgreSQL server cannot be established. pg_hexedit should have stdout redirected to a file. wxHexEditor will automatically open tags for a target file when it is opened and a tag file is found in the same directory (provided the tag file has the same name as the target file with a ".tags" extension postfixed). Alternatively, tags can be directly imported once wxHexEditor has opened a file. pg_hexedit retains a minority of the flags that appear in pg_filedump. Usage: ```shell pg_hexedit [options] file ``` The `-D` flag can be used to decode tuples. The flag should be followed by a tuple descriptor string in pg_hexedit's "attrlist" format. Decoding allows pg_hexedit to generate distinct tags for each user attribute/column value in each tuple, rather than just creating a single tag for all column data within each tuple. The attrlist format consists of a list with an entry for each pg_attribute entry's attlen, attname, and attalign, which should be specified as: `-D 'attlen,attname,attalign,attlen,attname,attalign,...'` Each attribute's triple of metadata should appear in pg_attribute.attnum order. The convenience scripts use an SQL query to form the string (see the `__open_relation` utility script). The attrlist SQL query will produce a correct `-D` argument when run against a relation with the same schema as the target relation/file, even when run against an unrelated PostgreSQL installation, provided a compatible CPU architecture is used. Note that dropped columns need to be represented in the attrlist string. Elements that contain whitespace or comma characters can be parsed as a single element by appearing within double quotes. It's good practice to use single quotes for the attrlist argument as a whole. See `pg_hexedit -h` for full details of all available options. ### Using pg_hexedit while debugging Postgres with GDB Sometimes, it is useful to invoke pg_hexedit/wxHexEditor to visualize an arbitrary Postgres page image from within an interactive GDB debugging session that is attached to a Postgres backend. This also works well with core dumps. Generalize from the following example, which can be added to your .gdbinit dotfile: ``` define dump_page dump binary memory /tmp/gdb_postgres_page.dump $arg0 ($arg0 + 8192) echo Invoking pg_hexedit + wxHexEditor on page...\n ! ~/code/pg_hexedit/pg_hexedit -n 1 /tmp/gdb_postgres_page.dump > /tmp/gdb_postgres_page.dump.tags ! ~/code/wxHexEditor/wxHexEditor /tmp/gdb_postgres_page.dump &> /dev/null end ``` This creates a user-defined GDB command that dumps 8192 bytes (default BLCKSZ) at an arbitrary memory address to a temp file. From there, pg_hexedit is invoked on the temp file. If we wanted to see a page image of an nbtree page that is about to be split, we can set a breakpoint within `_bt_split()`, insert tuples until there is a page split, and invoke pg_hexedit using the `dump_page` GDB command: ``` Breakpoint 1, _bt_split (rel=0x7f555b6f3460, itup_key=0x55d03a745d40, buf=232, cbuf=0, firstright=366, newitemoff=216, newitemsz=16, newitem=0x55d03a745d18, newitemonleft=true) at nbtinsert.c:1205 1205 { (gdb) n 1215 Buffer sbuf = InvalidBuffer; (gdb) 1216 Page spage = NULL; (gdb) 1217 BTPageOpaque sopaque = NULL; (gdb) 1227 int indnatts = IndexRelationGetNumberOfAttributes(rel); (gdb) 1228 int indnkeyatts = IndexRelationGetNumberOfKeyAttributes(rel); (gdb) 1231 rbuf = _bt_getbuf(rel, P_NEW, BT_WRITE); (gdb) 1244 origpage = BufferGetPage(buf); (gdb) 1245 leftpage = PageGetTempPage(origpage); (gdb) 1246 rightpage = BufferGetPage(rbuf); (gdb) 1248 origpagenumber = BufferGetBlockNumber(buf); (gdb) 1249 rightpagenumber = BufferGetBlockNumber(rbuf); (gdb) dump_page origpage Invoking pg_hexedit + wxHexEditor on page... ``` Note that the block number displayed by pg_hexedit's annotations will be spurious when produced by `dump_page`, because there is no general way to determine the correct block number without more context. This is usually only a minor annoyance, though. ## Supporting other hex editors While pg_hexedit targets wxHexEditor, it should not be difficult to adopt it to other hex editors with a similar tag import feature if that becomes a requirement in the future. (Alternative hex editors should ideally be able to represent tag color using HTML color codes, and support setting both font and tag colors.) Actually generating raw tag output is confined to the following simple C functions: ``` EmitXmlDocHeader() EmitXmlFooter() EmitXmlTag() EmitXmlItemId() EmitXmlTupleTag() EmitXmlTupleTagFont() EmitXmlTupleTagFontTwoName() ``` These routines could be changed to call a per-hexeditor callback. Each supported hex editor could have its own "provider" routines. ================================================ FILE: __open_relation ================================================ #!/bin/bash # # This script contains code that is common to all convenience scripts. # # Utility scripts mostly consist of some logic for exporting wxHexEditor-format # offset cache entries to the OFFSETS environment variable, and/or logic for # printing something to stdout that's useful to the user. Everything else # happens here. # # Most convenience scripts set the $OFFSETS env var to something useful for us. # Utility scripts must have run "source ./hexedit.cfg" for us. relname=$1 # Spoof home director, to avoid clobbering real /.wxHexEditor file HOME=$(pwd) wxconfig="$HOME/.wxHexEditor" if ! psql --no-psqlrc -c "CHECKPOINT" then echo "CHECKPOINT failed" exit 1 fi if ! RFN=$(psql --no-psqlrc -tA -c "SELECT pg_relation_filepath('$relname')") then echo "invoking pg_relation_filepath() failed" exit 1 fi if [ "$RFN" = "" ] then echo "relation $relname has no associated relfile" exit 1 fi # Put minimal .wxHexEditor registry style config file in place, so old tags are # forgotten. This is also where we generate convenience "Go to Offset" dialog # offsets in the registry/cache (this comes from OFFSETS env var). echo "Replacing $wxconfig with pg_hexedit optimized settings..." cat > "$wxconfig" <<- EOM UpdateCheck=0 FakeBlockLines=1 FakeBlockSize=8k ColourHexBackground=#FFFFFF ColourHexBackgroundZebra=#FFFFFF UseBytesPerLineLimit=1 BytesPerLineLimit=$BYTES_PER_LINE_LIMIT FontSize=$FONTSIZE CharacterEncodingFamily=Code for Information Interchange CharacterEncoding=ASCII - American Standard Code for Information Interchange ScreenFullScreen=1 AutoShowTagPanel=0 GoToOptions=7 $OFFSETS EOM PGDATA=$(psql --no-psqlrc -tA -c "SELECT setting FROM pg_settings WHERE name = 'data_directory'") echo "Determined that data directory is $PGDATA" # wxHexEditor XML encoding is always UTF-8. Make sure that attname fields come # back as UTF-8. export PGCLIENTENCODING="UTF8" if ! ATTRLIST=$(psql --no-psqlrc -tA -c "SELECT string_agg(attlen || ',\"' || attname || '\",' || attalign::text, ',') FROM (SELECT * FROM pg_attribute WHERE attrelid = '$relname'::regclass AND attnum > 0 ORDER BY attnum ASC) t;") then echo "failed to generate attrlist string for -D option" exit 1 fi # Check if data file exists locally, download $MAX_BLOCK_TAGS to /tmp if it doesn't FULLPATH="$PGDATA/$RFN" if [ -f "$FULLPATH" ]; then echo "Running pg_hexedit against $FULLPATH, the first segment in relation $relname..." echo "Note: Only blocks $MIN_BLOCK_TAGS - $MAX_BLOCK_TAGS will be annotated, to keep overhead low." else PAGEINSPECT_INSTALLED=$(psql -XAtc "select count(*) from pg_extension where extname='pageinspect'") if (( PAGEINSPECT_INSTALLED && MIN_BLOCK_TAGS == 0 )); then TMPDIR="/tmp/postgresql-relfiles/$PGHOST-$PGPORT-DB/$(dirname "$RFN")" mkdir -p "$TMPDIR" FULLPATH="$TMPDIR/$(basename "$RFN")" echo "Downloading blocks from $MIN_BLOCK_TAGS to $MAX_BLOCK_TAGS inclusive from relation $relname to $FULLPATH..." psql -XAtc "SELECT encode(get_raw_page('$relname', block::int4),'base64') FROM generate_series(0, least(pg_relation_size('$relname') / 8192 - 1, $MAX_BLOCK_TAGS)) block" | base64 -d > "$FULLPATH" echo "Opening local temp file..." else echo "File $FULLPATH doesn't exist." if (( MIN_BLOCK_TAGS == 0 )); then echo "Tip: Install pageinspect to automatically download remote files." else echo "Note: Cannot automatically download remote files when MIN_BLOCK_TAGS is non-zero." fi exit 1 fi fi # Deliberately put space before pg_hexedit frontend debug output here: echo -e "pg_hexedit frontend utility debug/notice output:\n" # Generate tags at a path that we know wxHexEditor will look for them: # shellcheck disable=SC2086 if ! ./pg_hexedit $EXTRAFLAGS -D "$ATTRLIST" -z -R "$MIN_BLOCK_TAGS" "$MAX_BLOCK_TAGS" "$FULLPATH" > "$FULLPATH.tags" then echo "Error encountered by pg_hexedit. Could not generate all tags." echo "You may still wish to run: $HEXEDITOR $FULLPATH" exit 1 fi if [ ! -f "$HEXEDITOR" ] then echo "\"$HEXEDITOR\" executable not found" echo "\"$FULLPATH.tags\" annotation file was still created" exit 1 fi # Deliberately put space after pg_hexedit frontend debug output here: echo echo "Opening $FULLPATH with $HEXEDITOR..." # Output from wxHexEditor is verbose, and not terribly useful, so we redirect: $HEXEDITOR "$FULLPATH" &> /dev/null ================================================ FILE: btree_hexedit ================================================ #!/bin/bash # # btree_hexedit: Similar to relation_hexedit, but sets the B-Tree non-leaf # children of the root as offsets, as well as an offset to the root itself. usage() { cat < 1)) ) SELECT string_agg(line, chr(10)) FROM offset_strings;") then echo "obtaining non-leaf children of root block for offset dialog failed" exit 1 fi # The root page is also added as a separate offset. OFFSETS="${TRUE_ROOT_OFFSET}"$'\n'"${ROOT_CHILD_OFFSETS}" export OFFSETS echo "Tip: 'Go to Offset' dialog (shortcut: Ctrl + G) will have children of root and root offsets cached" ./__open_relation "$relname" ================================================ FILE: gin_hexedit ================================================ #!/bin/bash # # gin_hexedit: Don't set any offsets in wxHexEditor cache. Instead, output # a summary of interesting offsets for the GIN index to stdout for user. # # Unlike relation_hexedit, this script does not set any offsets in the # wxHexEditor cache/registry. usage() { cat < TAG Panel" to see it #export EXTRAFLAGS="-x 0/167F070" # -l flag in $EXTRAFLAGS: Only emit whole-page annotations for leaf pages. # # Leaf pages are typically the great majority within nbtree, GiST, GIN, or # SP-GiST index relations. This option is useful with larger indexes in cases # where only the root and other internal pages are of interest. #export EXTRAFLAGS="-l" ================================================ FILE: pg_hexedit.c ================================================ /* * pg_hexedit.c - PostgreSQL file dump utility for * viewing heap (data) and index files in wxHexEditor. * * Copyright (c) 2018-2021, Crunchy Data Solutions, Inc. * Copyright (c) 2017-2018, VMware, Inc. * Copyright (c) 2002-2010, Red Hat, Inc. * Copyright (c) 2011-2021, PostgreSQL Global Development Group * * This specialized fork of pg_filedump is modified to output XML that can be * used to annotate pages within the wxHexEditor hex editor. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Original pg_filedump Author: Patrick Macdonald * pg_hexedit author: Peter Geoghegan */ #define FRONTEND 1 #include "postgres.h" #include "common/fe_memutils.h" #include "utils/elog.h" /* * We must #undef frontend because certain headers are not really supposed to * be included in frontend utilities because they include atomics.h. */ #undef FRONTEND /* * Define TrapMacro() as a no-op expression on builds that have assertions * enabled. This is redundant though harmless when building without * assertions, since the same macro definition happens to be visible there. It * is only visible there because no-op definitions for all assert-related * macros happen to be shared by frontend and backend code. */ #define TrapMacro(condition, errorType) (true) #include #include "access/brin_page.h" #include "access/brin_tuple.h" #include "access/gin_private.h" #include "access/gist.h" #include "access/hash.h" #include "access/htup.h" #include "access/htup_details.h" #include "access/itup.h" #include "access/nbtree.h" #include "access/spgist_private.h" #include "storage/checksum.h" #include "storage/checksum_impl.h" #include "utils/pg_crc.h" /* * Backend error-reporting stubs. * * Because we #undef FRONTEND before including the access headers, a few * static inline functions that live outside the headers' own FRONTEND guards * (notably typalign_to_alignby() in access/tupmacs.h) are compiled with their * backend elog(ERROR, ...) paths. Those paths are unreachable for valid input * but still produce undefined references at link time. Provide minimal stubs * so the binary links; if we ever do reach one, abort loudly. */ bool errstart_cold(int elevel, const char *domain) { fprintf(stderr, "pg_hexedit: unexpected backend error path reached\n"); abort(); } bool errstart(int elevel, const char *domain) { fprintf(stderr, "pg_hexedit: unexpected backend error path reached\n"); abort(); } void errfinish(const char *filename, int lineno, const char *funcname) { abort(); } int errmsg_internal(const char *fmt,...) { return 0; } #define HEXEDIT_VERSION "0.1" #define SEQUENCE_MAGIC 0x1717 /* PostgreSQL defined magic number */ #define EOF_ENCOUNTERED (-1) /* Indicator for partial read */ /* * Postgres 12 removed WITH OIDS support. Preserve on-disk compatibility with * prior versions, even though they're generally unsupported by us */ #define HEAP_HASOID HEAP_HASOID_OLD #define COLOR_FONT_STANDARD "#313739" #define COLOR_BLACK "#000000" #define COLOR_BLUE_DARK "#2980B9" #define COLOR_BLUE_LIGHT "#3498DB" #define COLOR_BROWN "#97333D" #define COLOR_GREEN_BRIGHT "#50E964" #define COLOR_GREEN_DARK "#16A085" #define COLOR_GREEN_LIGHT "#1ABC9C" #define COLOR_MAROON "#E96950" #define COLOR_ORANGE "#FF8C00" #define COLOR_PINK "#E949D1" #define COLOR_RED_DARK "#912C21" #define COLOR_RED_LIGHT "#E74C3C" #define COLOR_WHITE "#CCD1D1" #define COLOR_YELLOW_DARK "#F1C40F" #define COLOR_YELLOW_LIGHT "#E9E850" typedef enum blockSwitches { BLOCK_RANGE = 0x00000020, /* -R: Specific block range to dump */ BLOCK_CHECKSUMS = 0x00000040, /* -k: verify block checksums */ BLOCK_ZEROSUMS = 0x00000080, /* -z: verify block checksums when * non-zero */ BLOCK_SKIP_LEAF = 0x00000100, /* -l: Skip leaf pages (use whole page * tag) */ BLOCK_SKIP_LSN = 0x00000200, /* -x: Skip pages before LSN */ BLOCK_DECODE = 0x00000400 /* -D: Decode tuple attributes */ } blockSwitches; typedef enum segmentSwitches { SEGMENT_SIZE_FORCED = 0x00000001, /* -s: Segment size forced */ SEGMENT_NUMBER_FORCED = 0x00000002 /* -n: Segment number forced */ } segmentSwitches; /* -R[start]:Block range start */ static int blockStart = -1; /* -R[end]:Block range end */ static int blockEnd = -1; /* -x:Skip pages whose LSN is before point */ static XLogRecPtr afterThreshold = InvalidXLogRecPtr; static XLogRecPtr minPageLSN = (XLogRecPtr) PG_UINT64_MAX; static XLogRecPtr maxPageLSN = InvalidXLogRecPtr; static BlockNumber minPageLSNBlock = InvalidBlockNumber; static BlockNumber maxPageLSNBlock = InvalidBlockNumber; static BlockNumber maxBlockNumber = 0; static uint32 nblockstagged = 0; static uint32 nblocksskipped = 0; /* Possible value types for the Special Section */ typedef enum specialSectionTypes { SPEC_SECT_NONE, /* No special section on block */ SPEC_SECT_SEQUENCE, /* Sequence info in special section */ SPEC_SECT_INDEX_BTREE, /* BTree index info in special section */ SPEC_SECT_INDEX_HASH, /* Hash index info in special section */ SPEC_SECT_INDEX_GIST, /* GIST index info in special section */ SPEC_SECT_INDEX_GIN, /* GIN index info in special section */ SPEC_SECT_INDEX_SPGIST, /* SP - GIST index info in special section */ SPEC_SECT_INDEX_BRIN, /* BRIN index info in special section */ SPEC_SECT_ERROR_UNKNOWN, /* Unknown error */ SPEC_SECT_ERROR_BOUNDARY /* Boundary error */ } specialSectionTypes; /* Special section type that was encountered first */ static unsigned int firstType = SPEC_SECT_ERROR_UNKNOWN; /* Current block special section type */ static unsigned int specialType = SPEC_SECT_NONE; /* * Possible return codes from option validation routine. * * pg_hexedit doesn't do much with them now but maybe in the future... */ typedef enum optionReturnCodes { OPT_RC_VALID, /* All options are valid */ OPT_RC_INVALID, /* Improper option string */ OPT_RC_FILE, /* File problems */ OPT_RC_DUPLICATE, /* Duplicate option encountered */ OPT_RC_COPYRIGHT /* Copyright should be displayed */ } optionReturnCodes; /* * Simple macro to check for duplicate options and then set an option flag for * later consumption */ #define SET_OPTION(_x,_y,_z) if (_x & _y) \ { \ rc = OPT_RC_DUPLICATE; \ duplicateSwitch = _z; \ } \ else \ _x |= _y; /* * Global variables for ease of use mostly */ /* Segment-related options */ static unsigned int segmentOptions = 0; /* Options for Block formatting operations */ static unsigned int blockOptions = 0; /* File to dump or format */ static FILE *fp = NULL; /* File name for display */ static char *fileName = NULL; /* Cache for current block */ static char *buffer = NULL; /* Current block size */ static unsigned int blockSize = 0; /* Current block in file */ static unsigned int currentBlock = 0; /* Segment size in bytes */ static unsigned int segmentSize = RELSEG_SIZE * BLCKSZ; /* Relation-relative block offset to beginning of the segment (our file) */ static unsigned int segmentBlockDelta = 0; /* Number of current segment */ static unsigned int segmentNumber = 0; /* Current wxHexEditor output tag number */ static unsigned int tagNumber = 0; /* Offset of current block (in bytes) */ static unsigned int pageOffset = 0; /* Number of bytes to format */ static unsigned int bytesToFormat = 0; /* Block version number */ static unsigned int blockVersion = 0; /* Number of attributes (used when decoding) */ static int nrelatts = 0; /* attlen catalog metadata for relation (used when decoding) */ static int *attlenrel = NULL; /* attnamerel catalog metadata for relation (used when decoding) */ static char **attnamerel = NULL; /* attcolorrel attribute colors for relation (used when decoding) */ static char **attcolorrel = NULL; /* attalign catalog metadata for relation (used when decoding) */ static char *attalignrel = NULL; /* Program exit code */ static int exitCode = 0; typedef enum formatChoice { ITEM_HEAP, /* Blocks contain HeapTuple items */ ITEM_INDEX, /* Blocks contain IndexTuple items */ ITEM_SPG_INN, /* Blocks contain SpGistInnerTuple items */ ITEM_SPG_LEAF, /* Blocks contain SpGistLeafTuple items */ ITEM_BRIN /* Blocks contain BrinTuple items */ } formatChoice; static void DisplayOptions(unsigned int validOptions); static unsigned int GetSegmentNumberFromFileName(const char *fileName); static uint32 sdbmhash(const unsigned char *elem, size_t len); static char *GetColorFromAttrname(const char *attrName); static unsigned int ConsumeOptions(int numOptions, char **options); static int GetOptionValue(char *optionString); static XLogRecPtr GetOptionXlogRecPtr(char *optionString); static bool ParseAttributeListString(const char *str); static unsigned int GetBlockSize(void); static unsigned int GetSpecialSectionType(Page page); static const char *GetSpecialSectionString(unsigned int type); static XLogRecPtr GetPageLsn(Page page); static char *GetHeapTupleHeaderFlags(HeapTupleHeader htup, bool isInfomask2); static char *GetIndexTupleFlags(IndexTuple itup); static const char *GetSpGistStateString(unsigned int code); static char *GetSpGistInnerTupleState(SpGistInnerTuple itup); static char *GetSpGistLeafTupleState(SpGistLeafTuple itup); static char *GetBrinTupleFlags(BrinTuple *itup); static bool IsBrinPage(Page page); static bool IsHashBitmapPage(Page page); static bool IsLeafPage(Page page); static void EmitXmlPage(BlockNumber blkno); static void EmitXmlDocHeader(int numOptions, char **options); static void EmitXmlFooter(void); static void EmitXmlTag(BlockNumber blkno, uint32 level, const char *name, const char *color, uint32 relfileOff, uint32 relfileOffEnd); static void EmitXmlItemId(BlockNumber blkno, OffsetNumber offset, ItemId itemId, uint32 relfileOff, const char *textFlags); static inline void EmitXmlTupleTag(BlockNumber blkno, OffsetNumber offset, const char *name, const char *color, uint32 relfileOff, uint32 relfileOffEnd); static void EmitXmlTupleTagFont(BlockNumber blkno, OffsetNumber offset, const char *name, const char *color, const char *fontColor, uint32 relfileOff, uint32 relfileOffEnd); static void EmitXmlTupleTagFontTwoName(BlockNumber blkno, OffsetNumber offset, const char *name1, const char *name2, const char *color, const char *fontColor, uint32 relfileOff, uint32 relfileOffEnd); static void EmitXmlAttributesHeap(BlockNumber blkno, OffsetNumber offset, uint32 relfileOff, HeapTupleHeader htup, int itemSize); static void EmitXmlAttributesIndex(BlockNumber blkno, OffsetNumber offset, uint32 relfileOff, IndexTuple itup, uint32 tupHeaderOff, int itemSize); static void EmitXmlAttributesData(BlockNumber blkno, OffsetNumber offset, uint32 relfileOff, unsigned char *tupdata, uint8 *t_bits, int nattrs, int datalen); static void EmitXmlHeapTuple(BlockNumber blkno, OffsetNumber offset, HeapTupleHeader htup, uint32 relfileOff, int itemSize); static void EmitXmlIndexTuple(Page page, BlockNumber blkno, OffsetNumber offset, IndexTuple tuple, uint32 relfileOff, int itemSize, bool dead); static void EmitXmlSpGistInnerTuple(Page page, BlockNumber blkno, OffsetNumber offset, SpGistInnerTuple tuple, uint32 relfileOff); static void EmitXmlSpGistLeafTuple(Page page, BlockNumber blkno, OffsetNumber offset, SpGistLeafTuple tuple, uint32 relfileOff); static void EmitXmlBrinTuple(Page page, BlockNumber blkno, OffsetNumber offset, BrinTuple *tuple, uint32 relfileOff, int itemSize); static int EmitXmlPageHeader(Page page, BlockNumber blkno, uint32 level); static void EmitXmlPageMeta(BlockNumber blkno, uint32 level); static void EmitXmlPageItemIdArray(Page page, BlockNumber blkno); static void EmitXmlTuples(Page page, BlockNumber blkno); static void EmitXmlPostingTreeTids(Page page, BlockNumber blkno); static void EmitXmlHashBitmap(Page page, BlockNumber blkno); static void EmitXmlRevmap(Page page, BlockNumber blkno); static void EmitXmlSpecial(BlockNumber blkno, uint32 level); static void EmitXmlBody(void); /* Send properly formed usage information to the user. */ static void DisplayOptions(unsigned int validOptions) { if (validOptions == OPT_RC_COPYRIGHT) printf ("pg_hexedit %s (for PostgreSQL %s)" "\nCopyright (c) 2018-2021, Crunchy Data Solutions, Inc." "\nCopyright (c) 2017-2018, VMware, Inc." "\nCopyright (c) 2002-2010, Red Hat, Inc." "\nCopyright (c) 2011-2021, PostgreSQL Global Development Group\n", HEXEDIT_VERSION, PG_VERSION); printf ("\nUsage: pg_hexedit [-hklz] [-D attrlist] [-n segnumber] [-R startblock [endblock]] [-s segsize] [-x lsn] file\n\n" "Output contents of PostgreSQL relation file as wxHexEditor XML tags\n" " -D Decode tuples using given comma separated list of attribute metadata\n" " See README.md for an explanation of the attrlist format\n" " -h Display this information\n" " -k Verify all block checksums\n" " -l Skip leaf pages\n" " -n Force segment number to [segnumber]\n" " -R Display specific block ranges within the file (Blocks are\n" " indexed from 0)\n" " [startblock]: block to start at\n" " [endblock]: block to end at\n" " A startblock without an endblock will format the single block\n" " -s Force segment size to [segsize]\n" " -x Skip pages whose LSN is before [lsn]\n" " -z Verify block checksums when non-zero\n" "\nReport bugs to \n"); } /* * Determine segment number by segment file name. For instance, if file * name is /path/to/xxxx.7 procedure returns 7. Default return value is 0. */ static unsigned int GetSegmentNumberFromFileName(const char *fileName) { int segnumOffset = strlen(fileName) - 1; if (segnumOffset < 0) return 0; while (isdigit(fileName[segnumOffset])) { segnumOffset--; if (segnumOffset < 0) return 0; } if (fileName[segnumOffset] != '.') return 0; return atoi(&fileName[segnumOffset + 1]); } /* * Hash function is taken from sdbm, a public-domain reimplementation of the * ndbm database library. */ static uint32 sdbmhash(const unsigned char *elem, size_t len) { uint32 hash = 0; int i; for (i = 0; i < len; elem++, i++) { hash = (*elem) + (hash << 6) + (hash << 16) - hash; } return hash; } /* * Return a cstring of an html color that is a function of attrName argument. */ static char * GetColorFromAttrname(const char *attrName) { uint32 hash; uint8 red; uint8 green; uint8 blue; char *colorStr = pg_malloc(8); hash = sdbmhash((const unsigned char *) attrName, strlen(attrName) + 1); /* Use muted pastel shades for user attributes */ red = 150 + ((uint8) hash % 90); green = 150 + ((uint8) (hash >> 8) % 90); blue = 150 + ((uint8) (hash >> 16) % 90); snprintf(colorStr, 8, "#%02X%02X%02X", red, green, blue); return colorStr; } /* * Iterate through the provided options and set the option flags. An error * will result in a positive rc and will force a display of the usage * information. This routine returns enum option ReturnCode values. */ static unsigned int ConsumeOptions(int numOptions, char **options) { unsigned int rc = OPT_RC_VALID; unsigned int x; unsigned int optionStringLength; char *optionString; char duplicateSwitch = 0x00; for (x = 1; x < numOptions; x++) { optionString = options[x]; optionStringLength = strlen(optionString); /* * Range is a special case where we have to consume the next 1 or 2 * parameters to mark the range start and end */ if ((optionStringLength == 2) && (strcmp(optionString, "-R") == 0)) { int range = 0; SET_OPTION(blockOptions, BLOCK_RANGE, 'R'); /* Only accept the range option once */ if (rc == OPT_RC_DUPLICATE) break; /* Make sure there are options after the range identifier */ if (x >= (numOptions - 2)) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: missing range start identifier\n"); exitCode = 1; break; } /* * Mark that we have the range and advance the option to what * should be the range start. Check the value of the next * parameter. */ optionString = options[++x]; if ((range = GetOptionValue(optionString)) < 0) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: invalid range start identifier \"%s\"\n", optionString); exitCode = 1; break; } /* The default is to dump only one block */ blockStart = blockEnd = (unsigned int) range; /* * We have our range start marker, check if there is an end marker * on the option line. Assume that the last option is the file we * are dumping, so check if there are options range start marker * and the file. */ if (x <= (numOptions - 3)) { if ((range = GetOptionValue(options[x + 1])) >= 0) { /* End range must be => start range */ if (blockStart <= range) { blockEnd = (unsigned int) range; x++; } else { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: requested block range start %d is greater than end %d\n", blockStart, range); exitCode = 1; break; } } } } /* Check for the special case where the user requires tuple decoding */ else if ((optionStringLength == 2) && (strcmp(optionString, "-D") == 0)) { SET_OPTION(blockOptions, BLOCK_DECODE, 'D'); /* Only accept the decode option once */ if (rc == OPT_RC_DUPLICATE) break; /* * The string immediately following -D is a list of attlen, * attname, and attalign tokens separated by commas. There is one * set of each per attribute (i.e. there should be three times as * many entries in the list as there are user attributes in the * relation). */ if (x >= (numOptions - 2)) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: missing attrlist string\n"); exitCode = 1; break; } /* Next option encountered must be attribute metadata string */ optionString = options[++x]; if (!ParseAttributeListString(optionString)) { /* Give details of problem in ParseAttributeListString() */ rc = OPT_RC_INVALID; fprintf(stderr, "invalid attrlist string %s\n", optionString); exitCode = 1; break; } } /* * Check for the special case where the user only requires tags for * pages whose LSN equals or exceeds a supplied threshold. */ else if ((optionStringLength == 2) && (strcmp(optionString, "-x") == 0)) { SET_OPTION(blockOptions, BLOCK_SKIP_LSN, 'x'); /* Only accept the LSN option once */ if (rc == OPT_RC_DUPLICATE) break; /* Make sure that there is an LSN option */ if (x >= (numOptions - 2)) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: missing LSN\n"); exitCode = 1; break; } /* * Mark that we have the LSN and advance the option to what should * be the LSN argument. Check the value of the next parameter. */ optionString = options[++x]; if ((afterThreshold = GetOptionXlogRecPtr(optionString)) == InvalidXLogRecPtr) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: invalid LSN identifier \"%s\"\n", optionString); exitCode = 1; break; } } /* Check for the special case where the user forces a segment size. */ else if ((optionStringLength == 2) && (strcmp(optionString, "-s") == 0)) { int localSegmentSize; SET_OPTION(segmentOptions, SEGMENT_SIZE_FORCED, 's'); /* Only accept the forced size option once */ if (rc == OPT_RC_DUPLICATE) break; /* The token immediately following -s is the segment size */ if (x >= (numOptions - 2)) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: missing segment size identifier\n"); exitCode = 1; break; } /* Next option encountered must be forced segment size */ optionString = options[++x]; if ((localSegmentSize = GetOptionValue(optionString)) > 0) segmentSize = (unsigned int) localSegmentSize; else { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: invalid segment size requested \"%s\"\n", optionString); exitCode = 1; break; } } /* * Check for the special case where the user forces a segment number * instead of having the tool determine it by file name. */ else if ((optionStringLength == 2) && (strcmp(optionString, "-n") == 0)) { int localSegmentNumber; SET_OPTION(segmentOptions, SEGMENT_NUMBER_FORCED, 'n'); /* Only accept the forced segment number option once */ if (rc == OPT_RC_DUPLICATE) break; /* The token immediately following -n is the segment number */ if (x >= (numOptions - 2)) { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: missing segment number identifier\n"); exitCode = 1; break; } /* Next option encountered must be forced segment number */ optionString = options[++x]; if ((localSegmentNumber = GetOptionValue(optionString)) > 0) segmentNumber = (unsigned int) localSegmentNumber; else { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: invalid segment number requested \"%s\"\n", optionString); exitCode = 1; break; } } /* The last option MUST be the file name */ else if (x == (numOptions - 1)) { /* Check to see if this looks like an option string before opening */ if (optionString[0] != '-') { fp = fopen(optionString, "rb"); if (fp) { fileName = options[x]; if (!(segmentOptions & SEGMENT_NUMBER_FORCED)) segmentNumber = GetSegmentNumberFromFileName(fileName); } else { rc = OPT_RC_FILE; fprintf(stderr, "pg_hexedit error: could not open file \"%s\"\n", optionString); exitCode = 1; break; } } else { /* * Could be the case where the help flag is used without a * filename. Otherwise, the last option isn't a file */ if (strcmp(optionString, "-h") == 0) rc = OPT_RC_COPYRIGHT; else { rc = OPT_RC_FILE; fprintf(stderr, "pg_hexedit error: missing file name to dump\n"); exitCode = 1; } break; } } else { unsigned int y; /* Option strings must start with '-' and contain switches */ if (optionString[0] != '-') { rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: invalid option string \"%s\"\n", optionString); exitCode = 1; break; } /* * Iterate through the singular option string, throw out garbage, * duplicates and set flags to be used in formatting */ for (y = 1; y < optionStringLength; y++) { switch (optionString[y]) { /* Display the usage screen */ case 'h': rc = OPT_RC_COPYRIGHT; break; /* Verify all block checksums */ case 'k': SET_OPTION(blockOptions, BLOCK_CHECKSUMS, 'k'); break; /* Verify block checksums when non-zero */ case 'z': SET_OPTION(blockOptions, BLOCK_ZEROSUMS, 'z'); break; /* Skip non-root leaf pages */ case 'l': SET_OPTION(blockOptions, BLOCK_SKIP_LEAF, 'l'); break; default: rc = OPT_RC_INVALID; fprintf(stderr, "pg_hexedit error: unknown option '%c'\n", optionString[y]); exitCode = 1; break; } if (rc) break; } } } if (rc == OPT_RC_DUPLICATE) { fprintf(stderr, "pg_hexedit error: duplicate option listed '%c'\n", duplicateSwitch); exitCode = 1; } return (rc); } /* * Given the index into the parameter list, convert and return the current * string to a number if possible */ static int GetOptionValue(char *optionString) { unsigned int x; int value = -1; int optionStringLength = strlen(optionString); /* Verify the next option looks like a number */ for (x = 0; x < optionStringLength; x++) { if (!isdigit((int) optionString[x])) break; } /* Convert the string to a number if it looks good */ if (x == optionStringLength) value = atoi(optionString); return value; } /* * Given an alphanumeric LSN, convert and return it to an XLogRecPtr if * possible */ static XLogRecPtr GetOptionXlogRecPtr(char *optionString) { uint32 xlogid; uint32 xrecoff; XLogRecPtr value = InvalidXLogRecPtr; if (sscanf(optionString, "%X/%X", &xlogid, &xrecoff) == 2) value = (uint64) xlogid << 32 | xrecoff; return value; } /* * Given an attrlist string (pg_hexedit -D argument string), deserialize into * data structures used by tuple decoding to create per-tuple, per-attribute * tags. * * Returns false on failure, allowing caller to set exitCode and print * supplemental information common to all parse failures. */ static bool ParseAttributeListString(const char *arg) { char *attrlist; int lennamealign; char *curropt; char *nextopt; /* Allocate space for decoding state */ attlenrel = pg_malloc(sizeof(int) * MaxTupleAttributeNumber); attnamerel = pg_malloc(sizeof(char *) * MaxTupleAttributeNumber); attcolorrel = pg_malloc(sizeof(char *) * MaxTupleAttributeNumber); attalignrel = pg_malloc(sizeof(char) * MaxTupleAttributeNumber); /* Create copy of argument string to scribble on */ attrlist = pg_strdup(arg); nrelatts = 0; lennamealign = 0; curropt = attrlist; while (curropt) { if (*curropt == '"') { /* Move past leading " character, omitting it */ curropt++; /* Find terminating " character, skipping any contained ',' char */ nextopt = strchr(curropt, '"'); if (!nextopt) return false; /* Eliminate trailing " character from current option */ *nextopt = '\0'; /* Prepare next option */ nextopt++; nextopt = strchr(nextopt, ','); } else nextopt = strchr(curropt, ','); if (nextopt) { /* Eliminate , character from current option */ *nextopt = '\0'; nextopt++; } if (lennamealign == 0) { int attlen; if (sscanf(curropt, "%d", &attlen) != 1) { fprintf(stderr, "pg_hexedit error: could not parse attlen from attrlist argument\n"); return false; } attlenrel[nrelatts] = attlen; /* Prepare for next item */ lennamealign++; } else if (lennamealign == 1) { /* * Copy attribute name, and dynamically generate color for * attribute */ attnamerel[nrelatts] = pg_strdup(curropt); attcolorrel[nrelatts] = GetColorFromAttrname(curropt); /* Prepare for next item */ lennamealign++; } else { char attalign = *curropt; if (attalign != 'i' && attalign != 'c' && attalign != 'd' && attalign != 's') { fprintf(stderr, "pg_hexedit error: invalid attalign value '%c' in attrlist argument\n", attalign); return false; } if (attlenrel[nrelatts] == -2 && attalign != 'c') { fprintf(stderr, "pg_hexedit error: unexpected attalign '%c' for cstring in attrlist argument\n", attalign); return false; } attalignrel[nrelatts] = attalign; /* Prepare for next item, and next attribute in "descriptor" */ if (nrelatts >= MaxTupleAttributeNumber) { fprintf(stderr, "pg_hexedit error: too many attributes represented in attrlist argument\n"); return false; } lennamealign = 0; nrelatts++; } curropt = nextopt; } /* Be tidy */ pg_free(attrlist); /* * Should be at least one attribute, and should have attlen, attname, and * attalign for each attribute */ return nrelatts > 0 && lennamealign == 0; } /* * Read the page header off of block 0 to determine the block size used in this * file. Can be overridden using the -s option. The returned value is the * block size of block 0 on disk. If a valid page size could not be read, * assumes BLCKSZ. */ static unsigned int GetBlockSize(void) { unsigned int pageHeaderSize = sizeof(PageHeaderData); unsigned int localSize = BLCKSZ; int bytesRead = 0; char localCache[sizeof(PageHeaderData)]; /* Read the first header off of block 0 to determine the block size */ bytesRead = fread(&localCache, 1, pageHeaderSize, fp); rewind(fp); if (bytesRead == pageHeaderSize) localSize = (unsigned int) PageGetPageSize((Page) &localCache); else { fprintf(stderr, "pg_hexedit error: unable to read full page header from first block\n" "read %u bytes\n", bytesRead); exitCode = 1; } if (localSize == 0 || ((localSize - 1) & localSize) != 0) { fprintf(stderr, "pg_hexedit error: invalid block size %u encountered in first block\n", localSize); exitCode = 1; localSize = BLCKSZ; } return localSize; } /* * Determine the LSN of page as an XLogRecPtr */ static XLogRecPtr GetPageLsn(Page page) { PageHeader pageHeader = (PageHeader) page; #if PG_VERSION_NUM < 190000 return PageXLogRecPtrGet(pageHeader->pd_lsn); #else return PageXLogRecPtrGet(&pageHeader->pd_lsn); #endif } /* * Determine the contents of the special section on the block and return this * enum value */ static unsigned int GetSpecialSectionType(Page page) { unsigned int rc; unsigned int specialOffset; unsigned int specialSize; unsigned int specialValue; PageHeader pageHeader = (PageHeader) page; /* * If this is not a partial header, check the validity of the special * section offset and contents */ if (bytesToFormat > sizeof(PageHeaderData)) { specialOffset = (unsigned int) pageHeader->pd_special; /* * Check that the special offset can remain on the block or the * partial block */ if ((specialOffset == 0) || (specialOffset > blockSize) || (specialOffset > bytesToFormat)) rc = SPEC_SECT_ERROR_BOUNDARY; else { /* we may need to examine last 2 bytes of page to identify index */ uint16 *ptype = (uint16 *) (buffer + blockSize - sizeof(uint16)); specialSize = blockSize - specialOffset; /* * If there is a special section, use its size to guess its * contents, checking the last 2 bytes of the page in cases that * are ambiguous. Note we don't attempt to dereference the * pointers without checking bytesToFormat == blockSize. */ if (specialSize == 0) rc = SPEC_SECT_NONE; else if (specialSize == MAXALIGN(sizeof(uint32))) { /* * If MAXALIGN is 8, this could be either a sequence or * SP-GiST or GIN. */ if (bytesToFormat == blockSize) { specialValue = *((int *) (buffer + specialOffset)); if (specialValue == SEQUENCE_MAGIC) rc = SPEC_SECT_SEQUENCE; else if (specialSize == MAXALIGN(sizeof(SpGistPageOpaqueData)) && *ptype == SPGIST_PAGE_ID) rc = SPEC_SECT_INDEX_SPGIST; else if (specialSize == MAXALIGN(sizeof(BrinSpecialSpace)) && IsBrinPage(page)) rc = SPEC_SECT_INDEX_BRIN; else if (specialSize == MAXALIGN(sizeof(GinPageOpaqueData))) rc = SPEC_SECT_INDEX_GIN; else rc = SPEC_SECT_ERROR_UNKNOWN; } else rc = SPEC_SECT_ERROR_UNKNOWN; } /* * SP-GiST and GIN have same size special section, so check the * page ID bytes first */ else if (specialSize == MAXALIGN(sizeof(SpGistPageOpaqueData)) && bytesToFormat == blockSize && *ptype == SPGIST_PAGE_ID) rc = SPEC_SECT_INDEX_SPGIST; else if (specialSize == MAXALIGN(sizeof(BrinSpecialSpace)) && IsBrinPage(page)) rc = SPEC_SECT_INDEX_BRIN; else if (specialSize == MAXALIGN(sizeof(GinPageOpaqueData))) rc = SPEC_SECT_INDEX_GIN; else if (specialSize > 2 && bytesToFormat == blockSize) { /* * As of 8.3, BTree, Hash, and GIST all have the same size * special section, but the last two bytes of the section can * be checked to determine what's what. */ if (*ptype <= MAX_BT_CYCLE_ID && specialSize == MAXALIGN(sizeof(BTPageOpaqueData))) rc = SPEC_SECT_INDEX_BTREE; else if (*ptype == HASHO_PAGE_ID && specialSize == MAXALIGN(sizeof(HashPageOpaqueData))) rc = SPEC_SECT_INDEX_HASH; else if (*ptype == GIST_PAGE_ID && specialSize == MAXALIGN(sizeof(GISTPageOpaqueData))) rc = SPEC_SECT_INDEX_GIST; else rc = SPEC_SECT_ERROR_UNKNOWN; } else rc = SPEC_SECT_ERROR_UNKNOWN; } } else rc = SPEC_SECT_ERROR_UNKNOWN; return rc; } static const char * GetSpecialSectionString(unsigned int type) { switch (type) { case SPEC_SECT_NONE: return "SPEC_SECT_NONE"; case SPEC_SECT_SEQUENCE: return "SPEC_SECT_SEQUENCE"; case SPEC_SECT_INDEX_BTREE: return "SPEC_SECT_INDEX_BTREE"; case SPEC_SECT_INDEX_HASH: return "SPEC_SECT_INDEX_HASH"; case SPEC_SECT_INDEX_GIST: return "SPEC_SECT_INDEX_GIST"; case SPEC_SECT_INDEX_GIN: return "SPEC_SECT_INDEX_GIN"; case SPEC_SECT_INDEX_SPGIST: return "SPEC_SECT_INDEX_SPGIST"; case SPEC_SECT_INDEX_BRIN: return "SPEC_SECT_INDEX_BRIN"; case SPEC_SECT_ERROR_UNKNOWN: return "SPEC_SECT_ERROR_UNKNOWN"; case SPEC_SECT_ERROR_BOUNDARY: return "SPEC_SECT_ERROR_BOUNDARY"; default: return "???"; } } /* * Given Heap tuple header, return string buffer with t_infomask or t_infomask2 * flags. * * Note: Caller is responsible for pg_free()'ing returned buffer. */ static char * GetHeapTupleHeaderFlags(HeapTupleHeader htup, bool isInfomask2) { unsigned int bitmapLength = 0; unsigned int oidLength = 0; unsigned int computedLength; unsigned int localHoff; unsigned int localBitOffset; char *flagString = NULL; flagString = pg_malloc(512); localHoff = htup->t_hoff; localBitOffset = offsetof(HeapTupleHeaderData, t_bits); /* * Place readable versions of the tuple info mask into a buffer. Assume * that the string can not expand beyond 512 bytes. */ flagString[0] = '\0'; if (!isInfomask2) { strcat(flagString, "t_infomask ("); if (htup->t_infomask & HEAP_HASNULL) strcat(flagString, "HEAP_HASNULL|"); if (htup->t_infomask & HEAP_HASVARWIDTH) strcat(flagString, "HEAP_HASVARWIDTH|"); if (htup->t_infomask & HEAP_HASEXTERNAL) strcat(flagString, "HEAP_HASEXTERNAL|"); if (htup->t_infomask & HEAP_HASOID) strcat(flagString, "HEAP_HASOID|"); if (htup->t_infomask & HEAP_XMAX_KEYSHR_LOCK) strcat(flagString, "HEAP_XMAX_KEYSHR_LOCK|"); if (htup->t_infomask & HEAP_COMBOCID) strcat(flagString, "HEAP_COMBOCID|"); if (htup->t_infomask & HEAP_XMAX_EXCL_LOCK) strcat(flagString, "HEAP_XMAX_EXCL_LOCK|"); if (htup->t_infomask & HEAP_XMAX_LOCK_ONLY) strcat(flagString, "HEAP_XMAX_LOCK_ONLY|"); if (htup->t_infomask & HEAP_XMIN_COMMITTED) strcat(flagString, "HEAP_XMIN_COMMITTED|"); if (htup->t_infomask & HEAP_XMIN_INVALID) strcat(flagString, "HEAP_XMIN_INVALID|"); if (htup->t_infomask & HEAP_XMAX_COMMITTED) strcat(flagString, "HEAP_XMAX_COMMITTED|"); if (htup->t_infomask & HEAP_XMAX_INVALID) strcat(flagString, "HEAP_XMAX_INVALID|"); if (htup->t_infomask & HEAP_XMAX_IS_MULTI) strcat(flagString, "HEAP_XMAX_IS_MULTI|"); if (htup->t_infomask & HEAP_UPDATED) strcat(flagString, "HEAP_UPDATED|"); if (htup->t_infomask & HEAP_MOVED_OFF) strcat(flagString, "HEAP_MOVED_OFF|"); if (htup->t_infomask & HEAP_MOVED_IN) strcat(flagString, "HEAP_MOVED_IN|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; strcat(flagString, ")"); } else { sprintf(flagString, "t_infomask2 HeapTupleHeaderGetNatts(): %d ", HeapTupleHeaderGetNatts(htup)); if (htup->t_infomask2 & ~HEAP_NATTS_MASK) strcat(flagString, "("); if (htup->t_infomask2 & HEAP_KEYS_UPDATED) strcat(flagString, "HEAP_KEYS_UPDATED|"); if (htup->t_infomask2 & HEAP_HOT_UPDATED) strcat(flagString, "HEAP_HOT_UPDATED|"); if (htup->t_infomask2 & HEAP_ONLY_TUPLE) strcat(flagString, "HEAP_ONLY_TUPLE|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; if (htup->t_infomask2 & ~HEAP_NATTS_MASK) strcat(flagString, ")"); } /* * As t_bits is a variable length array, and may contain an Oid field, * determine the length of the header proper as a sanity check. */ if (htup->t_infomask & HEAP_HASNULL) bitmapLength = BITMAPLEN(HeapTupleHeaderGetNatts(htup)); else bitmapLength = 0; if (htup->t_infomask & HEAP_HASOID) oidLength += sizeof(Oid); computedLength = MAXALIGN(localBitOffset + bitmapLength + oidLength); /* * Inform the user of a header size mismatch or dump the t_bits array */ if (computedLength != localHoff) { fprintf (stderr, "pg_hexedit error: computed header length not equal to header size.\n" "computed: %u header: %d\n", computedLength, localHoff); exitCode = 1; } return flagString; } /* * Given IndexTuple, return string buffer with t_info reported tuple length, * and flags. * * Note: Caller is responsible for pg_free()'ing returned buffer. */ static char * GetIndexTupleFlags(IndexTuple itup) { char *flagString = NULL; flagString = pg_malloc(512); /* * Place readable versions of the tuple info mask into a buffer. Assume * that the string can not expand beyond 128 bytes. */ flagString[0] = '\0'; sprintf(flagString, "t_info IndexTupleSize(): %zu", IndexTupleSize(itup)); if (itup->t_info & ~INDEX_SIZE_MASK) strcat(flagString, ", ("); /* * Use specific index AM local name for generic reserved * INDEX_AM_RESERVED_BIT IndexTuple status bit */ if (itup->t_info & INDEX_AM_RESERVED_BIT) { if (specialType == SPEC_SECT_INDEX_HASH) strcat(flagString, "INDEX_MOVED_BY_SPLIT_MASK|"); else if (specialType == SPEC_SECT_INDEX_BTREE) strcat(flagString, "INDEX_ALT_TID_MASK|"); else strcat(flagString, "INDEX_AM_RESERVED_BIT|"); } if (itup->t_info & INDEX_VAR_MASK) strcat(flagString, "INDEX_VAR_MASK|"); if (itup->t_info & INDEX_NULL_MASK) strcat(flagString, "INDEX_NULL_MASK|"); if (itup->t_info & ~INDEX_SIZE_MASK) { flagString[strlen(flagString) - 1] = '\0'; strcat(flagString, ")"); } return flagString; } static const char * GetSpGistStateString(unsigned int code) { switch (code) { case SPGIST_LIVE: return "SPGIST_LIVE"; case SPGIST_REDIRECT: return "SPGIST_REDIRECT"; case SPGIST_DEAD: return "SPGIST_DEAD"; case SPGIST_PLACEHOLDER: return "SPGIST_PLACEHOLDER"; default: return "???"; } } /* * Given SpGistInnerTuple, return string buffer with tuple-reported state from * bitfields. * * Note: Caller is responsible for pg_free()'ing returned buffer. */ static char * GetSpGistInnerTupleState(SpGistInnerTuple itup) { char *flagString = NULL; flagString = pg_malloc(128); sprintf(flagString, "tupstate: %s, allTheSame: %u, nNodes: %u, prefixSize: %u", GetSpGistStateString(itup->tupstate), itup->allTheSame, itup->nNodes, itup->prefixSize); return flagString; } /* * Given SpGistLeafTuple, return string buffer with tuple-reported state from * bitfields. * * Note: Caller is responsible for pg_free()'ing returned buffer. */ static char * GetSpGistLeafTupleState(SpGistLeafTuple itup) { char *flagString = NULL; flagString = pg_malloc(128); sprintf(flagString, "tupstate: %s, size: %u", GetSpGistStateString(itup->tupstate), itup->size); return flagString; } /* * Given BrinTuple, return string buffer with bt_info reported data offset, and * tuple flags. * * Note: Caller is responsible for pg_free()'ing returned buffer. */ static char * GetBrinTupleFlags(BrinTuple *itup) { char *flagString = NULL; flagString = pg_malloc(128); /* * Place readable versions of the tuple info mask into a buffer. Assume * that the string can not expand beyond 128 bytes. */ flagString[0] = '\0'; sprintf(flagString, "bt_info BrinTupleDataOffset(): %zu", BrinTupleDataOffset(itup)); if (itup->bt_info & (BRIN_PLACEHOLDER_MASK | BRIN_NULLS_MASK)) strcat(flagString, ", ("); if (itup->bt_info & BRIN_PLACEHOLDER_MASK) strcat(flagString, "BRIN_PLACEHOLDER_MASK|"); if (itup->bt_info & BRIN_NULLS_MASK) strcat(flagString, "BRIN_NULLS_MASK|"); if (itup->bt_info & (BRIN_PLACEHOLDER_MASK | BRIN_NULLS_MASK)) { flagString[strlen(flagString) - 1] = '\0'; strcat(flagString, ")"); } return flagString; } /* Check whether page is a BRIN meta page */ static bool IsBrinPage(Page page) { if (bytesToFormat != blockSize) return false; if (BRIN_IS_META_PAGE(page) || BRIN_IS_REVMAP_PAGE(page) || BRIN_IS_REGULAR_PAGE(page)) return true; return false; } /* Check whether page is a hash bitmap page */ static bool IsHashBitmapPage(Page page) { HashPageOpaque opaque; /* Defensive */ if (bytesToFormat != blockSize) return false; if (specialType != SPEC_SECT_INDEX_HASH) return false; opaque = (HashPageOpaque) PageGetSpecialPointer(page); if (opaque->hasho_flag & LH_BITMAP_PAGE) return true; return false; } /* Check whether page is a leaf page */ static bool IsLeafPage(Page page) { if (specialType == SPEC_SECT_INDEX_BTREE) { BTPageOpaque btreeSection = (BTPageOpaque) PageGetSpecialPointer(page); /* * Don't count a root page as a leaf (i.e. the root before the first * root page split). */ if ((btreeSection->btpo_flags & BTP_LEAF) && !(btreeSection->btpo_flags & BTP_ROOT)) return true; } else if (specialType == SPEC_SECT_INDEX_GIST) { if (GistPageIsLeaf(page)) return true; } else if (specialType == SPEC_SECT_INDEX_GIN) { /* This works for both posting trees, and the main entry tree */ if (GinPageIsLeaf(page)) return true; } else if (specialType == SPEC_SECT_INDEX_SPGIST) { if (SpGistPageIsLeaf(page)) return true; } return false; } /* * For each block, dump out formatted header and content information */ static void EmitXmlPage(BlockNumber blkno) { Page page = (Page) buffer; uint32 level = UINT_MAX; int rc; /* * Maintain max block number for blocks that have some kind of content * (could just be zero block, could be block that we'd skip due to current * -x option) */ maxBlockNumber = Max(maxBlockNumber, blkno); if (PageIsNew(page)) { /* * Assume new/zeroed block has LSN 0 for -x option (but don't update * minPageLSN because it's not useful to consider that 0) */ if ((blockOptions & BLOCK_SKIP_LSN)) { nblocksskipped++; } return; } /* Get details of page first */ pageOffset = blockSize * currentBlock; specialType = GetSpecialSectionType(page); /* * A Postgres segment file should consists of blocks that are all of the * same special section reported type (excluding those blocks that have * yet to be initialized by PageInit()). Raise error when this * expectation is not met. */ if (firstType == SPEC_SECT_ERROR_UNKNOWN) firstType = specialType; if (firstType != specialType) { fprintf(stderr, "pg_hexedit error: special section indicated type unexpectedly changed from \"%s\" to \"%s\" at file block %u\n", GetSpecialSectionString(firstType), GetSpecialSectionString(specialType), blkno); exitCode = 1; } /* * Check to see if we must skip this block due to it falling behind LSN * threshold */ if ((blockOptions & BLOCK_SKIP_LSN)) { XLogRecPtr pageLSN = GetPageLsn(page); if (pageLSN < afterThreshold) { rc = 0; nblocksskipped++; return; } else { nblockstagged++; /* Maintain Min and Max LSNs for annotated pages */ if (pageLSN < minPageLSN) { minPageLSN = pageLSN; minPageLSNBlock = blkno; } if (pageLSN > maxPageLSN) { maxPageLSN = pageLSN; maxPageLSNBlock = blkno; } } } /* Get "level" for page. Only B-Tree tags get a "level" */ if (specialType == SPEC_SECT_INDEX_BTREE) { BTPageOpaque btreeSection = (BTPageOpaque) PageGetSpecialPointer(page); level = btreeSection->btpo_level; } /* * We optionally itemize leaf blocks as whole tags, in order to limit the * size of tag files sharply. Internal pages can be more interesting when * debugging certain types of problems, such as problems with the balance * of some tree structure. */ if ((blockOptions & BLOCK_SKIP_LEAF) && IsLeafPage(page)) { EmitXmlTag(blkno, level, "leaf page", COLOR_GREEN_DARK, pageOffset, (pageOffset + BLCKSZ) - 1); rc = 0; return; } /* * Every block that we aren't skipping will have header, items and * possibly special section tags created. Beware of partial block reads, * though. */ rc = EmitXmlPageHeader(page, blkno, level); /* If we didn't encounter a partial read in header, carry on... */ if (rc != EOF_ENCOUNTERED) { /* * All AMs have a single metapage at block zero of the first segment, * with the exception of heapam and GiST. (Sequences more or less * reuse the heap format, and so don't have a metapage.) */ if (blkno == 0 && segmentNumber == 0 && specialType != SPEC_SECT_NONE && specialType != SPEC_SECT_INDEX_GIST && specialType != SPEC_SECT_SEQUENCE) { /* If it's a meta page, the meta block will have no tuples */ EmitXmlPageMeta(blkno, level); } else if (specialType == SPEC_SECT_INDEX_BTREE && P_ISDELETED((BTPageOpaque) PageGetSpecialPointer(page))) { /* * Deleted nbtree pages only contain BTDeletedPageData on Postgres * 14+ -- don't bother distinguishing deleted pages. Cannot trust * maxoff from page. */ } else if (specialType == SPEC_SECT_INDEX_HASH && IsHashBitmapPage(page)) { /* Hash bitmap pages don't use IndexTuple or ItemId */ EmitXmlHashBitmap(page, blkno); } else if (specialType == SPEC_SECT_INDEX_GIST && GistPageIsDeleted(page)) { /* * Deleted GiST pages only contain GISTDeletedPageContents on * Postgres 12+ -- don't bother distinguishing deleted pages. * Cannot trust maxoff from page. */ } else if (specialType == SPEC_SECT_INDEX_GIN && GinPageIsDeleted(page)) { /* * Unfortunately, GIN_DELETED pages don't have page state needed * by GinPageIsData(). Don't attempt to emit tags for tuples on * deleted GIN pages. */ } else if (specialType == SPEC_SECT_INDEX_GIN && GinPageIsData(page)) { /* GIN data/posting tree pages don't use IndexTuple or ItemId */ EmitXmlPostingTreeTids(page, blkno); } else if (specialType == SPEC_SECT_INDEX_BRIN && BRIN_IS_REVMAP_PAGE(page)) { /* BRIN revmap pages don't use IndexTuple/BrinTuple or ItemId */ EmitXmlRevmap(page, blkno); } else { /* Conventional heap/index page format */ EmitXmlPageItemIdArray(page, blkno); EmitXmlTuples(page, blkno); } /* Only heapam doesn't have a special area (even sequences have one) */ if (specialType != SPEC_SECT_NONE) EmitXmlSpecial(blkno, level); } } /* * Display a header for the dump so we know the file name, the options and the * time the dump was taken */ static void EmitXmlDocHeader(int numOptions, char **options) { unsigned int x; char optionBuffer[52] = "\0"; char timeStr[1000]; /* Format time without newline */ time_t rightNow = time(NULL); struct tm *localNow = localtime(&rightNow); strftime(timeStr, sizeof(timeStr), "%H:%M:%S %A, %B %d %Y", localNow); /* * Iterate through the options and cache them. The maximum we can display * is 50 option characters + spaces. */ for (x = 1; x < (numOptions - 1); x++) { if ((strlen(optionBuffer) + strlen(options[x])) > 50) break; strcat(optionBuffer, options[x]); strcat(optionBuffer, " "); } printf("\n"); printf("\n", timeStr); printf("\n", (strlen(optionBuffer)) ? optionBuffer : "None"); printf("\n", blockSize); printf("\n", HEXEDIT_VERSION); printf("\n", PG_VERSION); printf("\n"); printf(" \n", fileName); } static void EmitXmlFooter(void) { printf(" \n"); printf("\n"); } /* * Emit a generic wxHexEditor tag for tuple data. * * Note: endOffset is an offset to the last byte whose range the tag covers, so * callers generally pass (relfileOff + length) - 1. This is slightly less * verbose than getting callers to pass length. * * B-Tree index callers may optionally pass a "level". Passing * InvalidBlockNumber avoids emitting any block number. */ static void EmitXmlTag(BlockNumber blkno, uint32 level, const char *name, const char *color, uint32 relfileOff, uint32 relfileOffEnd) { Assert(relfileOff <= relfileOffEnd); printf(" \n", tagNumber++); printf(" %u\n", relfileOff); printf(" %u\n", relfileOffEnd); if (blkno == InvalidBlockNumber) printf(" %s\n", name); else if (level != UINT_MAX) printf(" block %u (level %u) %s\n", blkno + segmentBlockDelta, level, name); else printf(" block %u %s\n", blkno + segmentBlockDelta, name); printf(" " COLOR_FONT_STANDARD "\n"); printf(" %s\n", color); printf(" \n"); } /* * Emit a wxHexEditor tag for a line pointer (ItemId). */ static void EmitXmlItemId(BlockNumber blkno, OffsetNumber offset, ItemId itemId, uint32 relfileOff, const char *textFlags) { char *fontColor; char *itemIdColor; fontColor = COLOR_FONT_STANDARD; itemIdColor = COLOR_BLUE_LIGHT; /* * The color of the tag and tag font is chosen to give a cue about line * pointer details. Unused line pointers (which are reusable) have a * non-contrasting font color to deemphasize their importance. LP_DEAD * line pointers (which are dead but not necessarily reusable yet) don't * stay around for long in most real world workloads, and so it seems * useful to make them stick out. */ if (ItemIdIsRedirected(itemId)) itemIdColor = COLOR_BLUE_DARK; else if (ItemIdIsDead(itemId)) itemIdColor = COLOR_BROWN; else if (!ItemIdIsUsed(itemId)) fontColor = COLOR_BLUE_DARK; /* Interpret the content of each ItemId separately */ printf(" \n", tagNumber++); printf(" %u\n", relfileOff); printf(" %lu\n", (relfileOff + sizeof(ItemIdData)) - 1); printf(" (%u,%d) lp_len: %u, lp_off: %u, lp_flags: %s\n", blkno + segmentBlockDelta, offset, ItemIdGetLength(itemId), ItemIdGetOffset(itemId), textFlags); printf(" %s\n", fontColor); printf(" %s\n", itemIdColor); printf(" \n"); } /* * Emit a wxHexEditor tag for individual tuple, whose TID is to be represented * in the tag annotation. Could be an IndexTuple, heap tuple, or special * tuple-like structure (e.g., GIN data/posting tree page item). * * Note: relfileOffEnd is an offset to the last byte whose range the tag * covers, so callers generally pass (relfileOff + length) - 1. This is * slightly less verbose than getting callers to pass length. */ static inline void EmitXmlTupleTag(BlockNumber blkno, OffsetNumber offset, const char *name, const char *color, uint32 relfileOff, uint32 relfileOffEnd) { EmitXmlTupleTagFont(blkno, offset, name, color, COLOR_FONT_STANDARD, relfileOff, relfileOffEnd); } /* * Like EmitXmlTupleTag(), but lets caller specify font color */ static void EmitXmlTupleTagFont(BlockNumber blkno, OffsetNumber offset, const char *name, const char *color, const char *fontColor, uint32 relfileOff, uint32 relfileOffEnd) { if (relfileOff > relfileOffEnd) { fprintf(stderr, "pg_hexedit error: (%u,%u) tuple tag \"%s\" is malformed (%u > %u)\n", blkno + segmentBlockDelta, offset, name, relfileOff, relfileOffEnd); exitCode = 1; return; } printf(" \n", tagNumber++); printf(" %u\n", relfileOff); printf(" %u\n", relfileOffEnd); printf(" (%u,%u) %s\n", blkno + segmentBlockDelta, offset, name); printf(" %s\n", fontColor); printf(" %s\n", color); printf(" \n"); } /* * Like EmitXmlTupleTagFont(), but lets caller specify name in two parts */ static void EmitXmlTupleTagFontTwoName(BlockNumber blkno, OffsetNumber offset, const char *name1, const char *name2, const char *color, const char *fontColor, uint32 relfileOff, uint32 relfileOffEnd) { char *combinednames; if (relfileOff > relfileOffEnd) { fprintf(stderr, "pg_hexedit error: (%u,%u) tuple tag \"%s - %s\" is malformed (%u > %u)\n", blkno + segmentBlockDelta, offset, name1, name2, relfileOff, relfileOffEnd); exitCode = 1; return; } combinednames = pg_malloc(strlen(name1) + strlen(name2) + 5); combinednames[0] = '\0'; strcat(combinednames, name1); strcat(combinednames, " - "); strcat(combinednames, name2); printf(" \n", tagNumber++); printf(" %u\n", relfileOff); printf(" %u\n", relfileOffEnd); printf(" (%u,%u) %s\n", blkno + segmentBlockDelta, offset, combinednames); printf(" %s\n", fontColor); printf(" %s\n", color); printf(" \n"); pg_free(combinednames); } /* * Emit wxHexEditor tags for individual non-NULL attributes in heap tuple */ static void EmitXmlAttributesHeap(BlockNumber blkno, OffsetNumber offset, uint32 relfileOff, HeapTupleHeader htup, int itemSize) { unsigned char *tupdata = (unsigned char *) htup + htup->t_hoff; uint8 *t_bits; int nattrs = HeapTupleHeaderGetNatts(htup); int datalen = itemSize - htup->t_hoff; /* * If an argument describing the relation's tuples was not provided, just * create a single tag */ if (nrelatts == 0) { EmitXmlTupleTag(blkno, offset, "contents", COLOR_WHITE, relfileOff, (relfileOff + datalen) - 1); return; } if (nattrs > nrelatts) { fprintf(stderr, "pg_hexedit error: %d attributes found in (%u,%u) exceeds the number inferred for relation from -D argument %d\n", nattrs, blkno, offset, nrelatts); exitCode = 1; nattrs = nrelatts; } t_bits = (htup->t_infomask & HEAP_HASNULL) != 0 ? htup->t_bits : NULL; EmitXmlAttributesData(blkno, offset, relfileOff, tupdata, t_bits, nattrs, datalen); } /* * Emit wxHexEditor tags for individual non-NULL attributes in index tuple */ static void EmitXmlAttributesIndex(BlockNumber blkno, OffsetNumber offset, uint32 relfileOff, IndexTuple itup, uint32 tupHeaderOff, int itemSize) { unsigned char *tupdata; uint8 *t_bits; int datalen; int nattrs = nrelatts; bool haveargreltuple = true; /* * If an argument describing the relation's tuples was not provided, just * create a single tag, but show pivot tuple heap TID representation, or * posting list representation, since we don't need -D metadata for that. * * Play it safe here -- don't attempt to emit attribute values when an * error was already encountered. We may be able to limp on for much * longer this way, especially in the event of an access method that we * know nothing about but follows the familiar bufpage.c conventions, such * as zheap. * * Multi-column GIN entries have two attributes in main entry key tuples: * an implicit int16 leading attribute that indicates which pg_attribute * listing the entry relates to, as well as the actual value. This isn't * something that we currently support, though, so just treat this case as * if we had no catalog metadata. */ if (nrelatts == 0 || exitCode != 0 || (specialType == SPEC_SECT_INDEX_GIN && nrelatts > 1)) { /* Won't be able to emit tags based on tuple metadata argument */ haveargreltuple = false; } /* Set up state for emitting attributes */ tupdata = (unsigned char *) itup + IndexInfoFindDataOffset(itup->t_info); t_bits = IndexTupleHasNulls(itup) ? (uint8 *) ((unsigned char *) itup + sizeof(IndexTupleData)) : NULL; datalen = itemSize - IndexInfoFindDataOffset(itup->t_info) - 1; /* * This is based on BTreeTupleGetNAtts(), which cannot be called from * frontend code. * * On Postgres v12+, account for possible heap TID tiebreaker attribute in * pivot tuples. These TIDs are white because they are considered keys, * not pointers. This color scheme is based on the precedent set by GIN's * internal posting tree pages. */ if (specialType == SPEC_SECT_INDEX_BTREE && BTreeTupleIsPivot(itup)) { nattrs = (ItemPointerGetOffsetNumberNoCheck(&(itup)->t_tid) & BT_OFFSET_MASK); if (haveargreltuple && nattrs > nrelatts) { fprintf(stderr, "pg_hexedit error: %d attributes found in (%u,%u) exceeds the number inferred for relation from -D argument %d\n", nattrs, blkno, offset, nrelatts); exitCode = 1; nattrs = nrelatts; } if (BTreeTupleGetHeapTID(itup) != NULL) { /* * Heap TID attribute is considered a column internally, but has * no pg_attribute entry. * * Note that this only handles the special representation of heap * TID that's used in pivot tuples (includes leaf page high key). * Non-pivot tuples represent heap TID using IndexTupleData.t_tid, * or by using a posting list. */ uint32 htidoffset; htidoffset = (tupHeaderOff + IndexTupleSize(itup)) - sizeof(ItemPointerData); datalen -= sizeof(ItemPointerData); EmitXmlTupleTag(blkno, offset, "BTreeTupleGetHeapTID()->bi_hi", COLOR_PINK, htidoffset, (htidoffset + sizeof(uint16)) - 1); htidoffset += sizeof(uint16); EmitXmlTupleTag(blkno, offset, "BTreeTupleGetHeapTID()->bi_lo", COLOR_PINK, htidoffset, (htidoffset + sizeof(uint16)) - 1); htidoffset += sizeof(uint16); EmitXmlTupleTag(blkno, offset, "BTreeTupleGetHeapTID()->offsetNumber", COLOR_PINK, htidoffset, (htidoffset + sizeof(uint16)) - 1); } } /* * nbtree posting list tuples */ else if (specialType == SPEC_SECT_INDEX_BTREE && BTreeTupleIsPosting(itup)) { uint32 postoffset = tupHeaderOff + BTreeTupleGetPostingOffset(itup); int i; datalen = postoffset - relfileOff - 1; /* * Annotate each posting list TID individually, while alternating the * color to increase legibility. * * This deliberately doesn't look anything like pivot tuple heap TID * annotations, and deliberately doesn't recreate the slight variation * in color within TIDs from tuple headers. Small posting list tuples * should appear prominently among duplicates that aren't posting * lists. */ for (i = 0; i < BTreeTupleGetNPosting(itup); i++) { char *color = (i % 2 == 0 ? COLOR_RED_LIGHT : COLOR_GREEN_LIGHT); char tidstr[30]; sprintf(tidstr, "TID[%d] bi_hi", i); EmitXmlTupleTag(blkno, offset, tidstr, color, postoffset, (postoffset + sizeof(uint16)) - 1); postoffset += sizeof(uint16); sprintf(tidstr, "TID[%d] bi_lo", i); EmitXmlTupleTag(blkno, offset, tidstr, color, postoffset, (postoffset + sizeof(uint16)) - 1); postoffset += sizeof(uint16); sprintf(tidstr, "TID[%d] offsetNumber", i); EmitXmlTupleTag(blkno, offset, tidstr, color, postoffset, (postoffset + sizeof(uint16)) - 1); postoffset += sizeof(uint16); } } /* * Finally, emit pg_attribute-wise columns, or plain gray tag that * represents where the pg_attribute-wise tuple values would go if we had * valid -D info */ if (haveargreltuple) EmitXmlAttributesData(blkno, offset, relfileOff, tupdata, t_bits, nattrs, MAXALIGN(datalen)); else EmitXmlTupleTag(blkno, offset, "contents", COLOR_WHITE, relfileOff, relfileOff + datalen); } /* * Emit wxHexEditor tags for individual non-NULL attributes. * * This relies on catalog metadata passed by user, since frontend code cannot * use tuple descriptors or access system catalog metadata itself. * * This code is loosely based on nocachegetattr(), though it works with both * heap and index tuple data areas. */ static void EmitXmlAttributesData(BlockNumber blkno, OffsetNumber offset, uint32 relfileOff, unsigned char *tupdata, uint8 *t_bits, int nattrs, int datalen) { unsigned char *attptr = tupdata; int off = 0; int i; for (i = 0; i < nattrs; i++) { int attlen = attlenrel[i]; char *attname = attnamerel[i]; char *attcolor = attcolorrel[i]; char attalign = attalignrel[i]; int truestartoff = 0; int truelen; if (t_bits && att_isnull(i, t_bits)) continue; if (attlen == -1) { char *hdrname = ""; /* Varlena header receives its own minimal tag */ off = att_align_pointer(off, attalign, -1, attptr); truelen = VARSIZE_ANY(tupdata + off); if (VARATT_IS_1B(attptr)) { truestartoff = 1; truelen -= 1; if (VARATT_IS_1B_E(attptr)) hdrname = "varattrib_1b_e"; else hdrname = "varattrib_1b"; EmitXmlTupleTagFontTwoName(blkno, offset, attname, hdrname, attcolor, COLOR_BROWN, relfileOff + off, relfileOff + off); } else if (VARATT_IS_4B(attptr)) { truestartoff = 4; truelen -= 4; if (VARATT_IS_4B_U(attptr)) hdrname = "va_4byte"; else if (VARATT_IS_4B_C(attptr)) hdrname = "va_compressed"; EmitXmlTupleTagFontTwoName(blkno, offset, attname, hdrname, attcolor, COLOR_BROWN, relfileOff + off, relfileOff + off + 3); } } else if (attlen == -2) { off = att_align_nominal(off, attalign); truelen = strnlen((char *) attptr, datalen - off) + 1; } else { off = att_align_nominal(off, attalign); truelen = attlen; } if (datalen < off + attlen) { fprintf(stderr, "pg_hexedit error: unexpected out of bounds tuple data for attnum %d in (%u,%u)\n", i + 1, blkno, offset); exitCode = 1; return; } EmitXmlTupleTag(blkno, offset, attname, attcolor, relfileOff + off + truestartoff, relfileOff + off + truestartoff + truelen - 1); /* Get possible address of next attribute, handling alignment */ off = att_addlength_pointer(off, attlen, tupdata + off); attptr = tupdata + off; } } /* * Emit a wxHexEditor tag for entire heap tuple. * * Note: Caller passes itemSize from ItemId because that's the only place that * it's available from. */ static void EmitXmlHeapTuple(BlockNumber blkno, OffsetNumber offset, HeapTupleHeader htup, uint32 relfileOff, int itemSize) { TransactionId rawXmin = HeapTupleHeaderGetRawXmin(htup); TransactionId rawXmax = HeapTupleHeaderGetRawXmax(htup); char xmin[90]; char xmax[90]; char *xminFontColor; char *xmaxFontColor; BlockNumber logBlock = blkno + segmentBlockDelta; char *blkFontColor; char *offsetFontColor; char *flagString; uint32 relfileOffNext = 0; uint32 relfileOffOrig = relfileOff; /* * Produce xmin and xmax tags for tuple. * * The choice of colors here is not completely arbitrary. There is some * attempt at analogy in the choice of colors. For example, xmin and xmax * are symmetric, and so are both COLOR_RED_LIGHT. * * Tuple freezing and MultiXacts leave us with a lot of potentially * interesting information to represent here. We use special font colors * to represent special transaction IDs, and include certain special * status information about the TransactionId/MultiXact contained within * each field. The extra information in the tags is redundant with the * infomask tags (tags for where the information is actually represented), * but it seems useful to add some visual cues. */ strcpy(xmin, "xmin"); strcpy(xmax, "xmax"); xminFontColor = COLOR_FONT_STANDARD; xmaxFontColor = COLOR_FONT_STANDARD; /* * HeapTupleHeaderXminFrozen() doesn't actually consider pre-9.4 * pg_upgrad'ed tuples that have FrozenTransactionId as their raw xmin */ if (!HeapTupleHeaderXminFrozen(htup) && rawXmin != FrozenTransactionId) { if (rawXmin == BootstrapTransactionId) { strcat(xmin, " - BootstrapTransactionId"); xminFontColor = COLOR_WHITE; } else if (rawXmin == InvalidTransactionId) { strcat(xmin, " - InvalidTransactionId"); xminFontColor = COLOR_YELLOW_LIGHT; } } else { /* * Raw xmin is frozen. Frozen xmin XIDs are only preserved for * forensic reasons (on Postgres 9.4+), so use low-contrast font to * deemphasize the XID. (Raw xmin could be FrozenTransactionId here * in a pg_upgrade'd database, which is just as uninteresting.) */ strcat(xmin, " - Frozen"); xminFontColor = COLOR_RED_DARK; } /* * Deliberately tag InvalidTransactionId and HEAP_XMAX_INVALID separately * for xmax annotation, since they can be set separately in a way that * might be interesting. Also indicate (redundantly) if the xmax is a * MultiXactId, or is the XID on a non-updating locker xact. * * Representing HEAP_XMAX_IS_MULTI and HEAP_XMAX_LOCK_ONLY but not * HEAP_XMAX_COMMITTED here is a bit arbitrary. We do this because * HEAP_XMAX_IS_MULTI and HEAP_XMAX_LOCK_ONLY are basic facts about the * class of data that the xmax field contains, as opposed to status * information for the tuple as a whole. * * The general idea is to make it as easy as possible for the user to get * a sense of the structure of update chains on the page. */ if ((htup->t_infomask & HEAP_XMAX_IS_MULTI) != 0) { strcat(xmax, " - HEAP_XMAX_IS_MULTI"); xmaxFontColor = COLOR_GREEN_DARK; } if (rawXmax == InvalidTransactionId) { strcat(xmax, " - InvalidTransactionId"); xmaxFontColor = COLOR_YELLOW_LIGHT; } if ((htup->t_infomask & HEAP_XMAX_INVALID) != 0) { strcat(xmax, " - HEAP_XMAX_INVALID"); /* Matches InvalidTransactionId case */ xmaxFontColor = COLOR_YELLOW_LIGHT; } /* * Handle HEAP_XMAX_LOCK_ONLY last, since the HEAP_XMAX_INVALID hint seems * like it shouldn't affect font color. */ if ((htup->t_infomask & HEAP_XMAX_LOCK_ONLY) != 0) { /* * This color is deliberately chosen to be similar to the special * t_ctid font colors */ strcat(xmax, " - HEAP_XMAX_LOCK_ONLY"); xmaxFontColor = COLOR_BLUE_DARK; } relfileOffNext = relfileOff + sizeof(TransactionId); EmitXmlTupleTagFont(blkno, offset, xmin, COLOR_RED_LIGHT, xminFontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(TransactionId); EmitXmlTupleTagFont(blkno, offset, xmax, COLOR_RED_LIGHT, xmaxFontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; if (!(htup->t_infomask & HEAP_MOVED)) { /* * t_cid is COLOR_RED_DARK in order to signal that it's associated * with though somewhat different to xmin and xmax. */ relfileOffNext += sizeof(CommandId); EmitXmlTupleTag(blkno, offset, "t_cid", COLOR_RED_DARK, relfileOff, relfileOffNext - 1); } else { /* * This must be a rare case where pg_upgrade has been run, and we're * left with a tuple with a t_xvac field instead of a t_cid field, * because at some point old-style VACUUM FULL was run. (This would * have had to have been on or before version 9.0, which has been out * of support for some time.) * * Make it COLOR_PINK, so that it sticks out like a sore thumb. */ StaticAssertStmt(sizeof(CommandId) == sizeof(TransactionId), "t_cid width must match t_xvac"); relfileOffNext += sizeof(TransactionId); EmitXmlTupleTag(blkno, offset, "t_xvac", COLOR_PINK, relfileOff, relfileOffNext - 1); } /* * Don't use ItemPointerData directly, to avoid having apparent mix in * endianness in these fields. Delineate which subfield is which by using * multiple tags. * * The block component of each TID is COLOR_BLUE_LIGHT. The same color is * used for ItemIds, since both are physical pointers. offsetNumber is a * logical pointer, though, and so we make that COLOR_BLUE_DARK to * slightly distinguish it. * * It seems useful to provide a subtle cue about whether or not the tuple * is the latest version within the t_ctid subfields, since this helps the * user to notice update chains. Check if tuple's t_ctid points to the * tuple itself; if it does, use non-contrasting font colors to * deemphasize. */ blkFontColor = COLOR_FONT_STANDARD; offsetFontColor = COLOR_FONT_STANDARD; if (ItemPointerGetBlockNumber(&htup->t_ctid) == logBlock && ItemPointerGetOffsetNumber(&htup->t_ctid) == offset) { blkFontColor = COLOR_BLUE_DARK; offsetFontColor = COLOR_BLUE_LIGHT; } relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTagFont(blkno, offset, "t_ctid->bi_hi", COLOR_BLUE_LIGHT, blkFontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTagFont(blkno, offset, "t_ctid->bi_lo", COLOR_BLUE_LIGHT, blkFontColor, relfileOff, relfileOffNext - 1); /* * Note: offsetNumber could be SpecTokenOffsetNumber, but we don't * annotate that */ relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTagFont(blkno, offset, "t_ctid->offsetNumber", COLOR_BLUE_DARK, offsetFontColor, relfileOff, relfileOffNext - 1); flagString = GetHeapTupleHeaderFlags(htup, true); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTag(blkno, offset, flagString, COLOR_GREEN_LIGHT, relfileOff, relfileOffNext - 1); pg_free(flagString); flagString = GetHeapTupleHeaderFlags(htup, false); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTag(blkno, offset, flagString, COLOR_GREEN_DARK, relfileOff, relfileOffNext - 1); pg_free(flagString); /* * Metadata about the tuple shape and width is COLOR_YELLOW_DARK, in line * with general convention. t_hoff is a fixed addressable field, so we * make it COLOR_YELLOW_LIGHT to represent that it's associated but * distinct. */ relfileOff = relfileOffNext; relfileOffNext += sizeof(uint8); EmitXmlTupleTag(blkno, offset, "t_hoff", COLOR_YELLOW_LIGHT, relfileOff, relfileOffNext - 1); /* * We consider the size of the t_bits field (if any) to be what the * att_isnull() macro requires. There is one bit per attribute, which is * rounded up to the nearest byte boundary. * * This often leaves a conspicuous empty space between the t_bits area and * the first attribute/beginning of tuple contents. This happens because * the first attribute of the tuple must be accessed at a MAXALIGN()'d * offset relative to the start of the tuple (often 32 bytes from the * beginning of the tuple). The empty space for alignment doesn't seem * like it should count as t_bits overhead. * * (t_bits doesn't have any alignment requirements, which is why there can * be a one byte t_bits array when there aren't so many attributes. That * can fit snugly before the first attribute, which will only have a 24 * byte offset from the beginning of the tuple provided there is no oid * field.) */ relfileOff = relfileOffNext; relfileOffNext = relfileOffOrig + htup->t_hoff; if (htup->t_infomask & HEAP_HASOID) relfileOffNext -= sizeof(Oid); if (htup->t_infomask & HEAP_HASNULL) EmitXmlTupleTag(blkno, offset, "t_bits", COLOR_YELLOW_DARK, relfileOff, relfileOff + ((HeapTupleHeaderGetNatts(htup) + 0x07) >> 3) - 1); /* * Represent Oid as a distinct field with the same color as t_bits, since * it's also an optional heap tuple header. */ if (htup->t_infomask & HEAP_HASOID) { relfileOff = relfileOffNext; relfileOffNext += sizeof(Oid); EmitXmlTupleTag(blkno, offset, "HeapTupleHeaderGetOid()", COLOR_YELLOW_DARK, relfileOff, relfileOffNext - 1); } /* * Handle rare edge case where tuple has no contents because it consists * entirely of NULL attributes. We trust lp_len to handle this, which is * what caller passed us. */ if (itemSize == (relfileOffNext - relfileOffOrig)) return; else if (itemSize < (relfileOffNext - relfileOffOrig)) { fprintf(stderr, "pg_hexedit error: lp_len %d from (%u,%u) is undersized\n", itemSize, blkno + segmentBlockDelta, offset); exitCode = 1; return; } relfileOff = relfileOffNext; EmitXmlAttributesHeap(blkno, offset, relfileOff, htup, itemSize); } /* * Emit a wxHexEditor tag for entire index tuple. * * Function deals with B-Tree, GiST, and hash tuples in a generic way, because * they use the IndexTuple format without adornment. These index AMs use line * pointer metadata to represent that index tuples are logically dead by * setting the LP_DEAD bit. Unlike the heap LP_DEAD case, there will still be * a tuple on the page when this is set (the tuple "has storage"). Caller * passes an argument that has us redundantly use color to represent that the * index tuple is dead, meaning that the space it occupies will soon be * recycled. * * This function is also used for GIN tuples in pending list and main B-Tree * key pages, and so must deal with the various abuses of the IndexTuple format * that GIN makes to store posting lists in main B-Tree key pages (pending * pages don't compress TIDs, and posting tree pages are dealt with in special * GIN-only paths). * * This function is not used for BrinTuples, because they share nothing with * IndexTuples in terms of layout, despite being conceptually similar (BRIN * tuples store blocks, not exact TIDs). * * Note: Caller does not need to pass itemSize from ItemId, because that's * redundant in the case of IndexTuples, and because SP-GiST callers will not * be able to pass an lp_len for an inner-node-contained IndexTuple. However, * most still pass it, since it's a useful cross-check in the event of * corruption such as a torn page. */ static void EmitXmlIndexTuple(Page page, BlockNumber blkno, OffsetNumber offset, IndexTuple tuple, uint32 relfileOff, int itemSize, bool dead) { uint32 relfileOffNext = 0; uint32 relfileOffOrig = relfileOff; char *tagColor; char *fontColor; char *flagString; /* Make font color indicate if LP_DEAD bit is set */ fontColor = dead ? COLOR_BROWN : COLOR_FONT_STANDARD; if (itemSize < 0) itemSize = IndexTupleSize(tuple); else if (itemSize != IndexTupleSize(tuple)) { fprintf(stderr, "pg_hexedit error: (%u,%u) lp_len %u does not equal IndexTupleSize() %lu\n", blkno + segmentBlockDelta, offset, itemSize, IndexTupleSize(tuple)); exitCode = 1; itemSize = Max(sizeof(IndexTupleData), Min(itemSize, IndexTupleSize(tuple))); } if (specialType != SPEC_SECT_INDEX_GIN || !GinPageIsLeaf(page) || GinIsPostingTree(tuple)) { /* * Emit t_tid tags. TID tag style should be kept consistent with * EmitXmlHeapTuple(). */ relfileOffNext = relfileOff + sizeof(uint16); tagColor = dead ? COLOR_BLACK : COLOR_BLUE_LIGHT; EmitXmlTupleTagFont(blkno, offset, "t_tid->bi_hi", tagColor, fontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTagFont(blkno, offset, "t_tid->bi_lo", tagColor, fontColor, relfileOff, relfileOffNext - 1); /* * Handle cases where item pointer offset is abused, but t_tid still * contains a valid block number. These cases are handled here * because they involve IndexTuples that contain a t_tid that is still * essentially a conventional TID. These cases are: * * 1. GIN posting tree pointers (within the leaf level of the main * entry tree). The fact that it's a posting tree pointer (and not * the start of a posting list) is indicated by using the magic offset * number GIN_TREE_POSTING. We use GinIsPostingTree() to test this. * * 2. nbtree pivot tuples, which use the item offset field to * represent how many suffix attributes remain (suffix truncation * optimization makes the number variable for pivot tuples). This is * indicated by the INDEX_ALT_TID_MASK bit having been set. Note that * nbtree uses BTreeTupleGetNAtts() to obtain the number of suffix * attributes. */ relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); tagColor = dead ? COLOR_BLACK : COLOR_BLUE_DARK; if (specialType == SPEC_SECT_INDEX_GIN && GinIsPostingTree(tuple)) EmitXmlTupleTagFont(blkno, offset, "t_tid->offsetNumber/GinIsPostingTree()", tagColor, fontColor, relfileOff, relfileOffNext - 1); else if (specialType == SPEC_SECT_INDEX_BTREE && BTreeTupleIsPivot(tuple)) EmitXmlTupleTagFont(blkno, offset, "t_tid->offsetNumber/BTreeTupleGetNAtts()", tagColor, fontColor, relfileOff, relfileOffNext - 1); else if (specialType == SPEC_SECT_INDEX_BTREE && BTreeTupleIsPosting(tuple)) EmitXmlTupleTagFont(blkno, offset, "t_tid->offsetNumber/BTreeTupleGetNPosting()", tagColor, fontColor, relfileOff, relfileOffNext - 1); /* * Regular/common case, where offset number is actually intended to be * accessed as a conventional offset (i.e. accessed using macros such * as ItemPointerGetOffsetNumber()) */ else EmitXmlTupleTagFont(blkno, offset, "t_tid->offsetNumber", tagColor, fontColor, relfileOff, relfileOffNext - 1); } else { /* * GIN posting lists (within the leaf level of the main entry tree) * abuse every item pointer field, so everything is handled here all * at once. Naturally, there are block numbers (as well as offset * numbers) contained within posting lists, since a posting list is * literally a list of TIDs. However, none of this information is * accessed in the conventional manner. */ relfileOffNext = relfileOff + sizeof(uint16); tagColor = dead ? COLOR_BLACK : COLOR_BLUE_LIGHT; EmitXmlTupleTagFont(blkno, offset, "t_tid->bi_hi/GinItupIsCompressed()", tagColor, fontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTagFont(blkno, offset, "t_tid->bi_lo/GinGetPostingOffset()", tagColor, fontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); tagColor = dead ? COLOR_BLACK : COLOR_BLUE_DARK; EmitXmlTupleTagFont(blkno, offset, "t_tid->offsetNumber/GinGetNPosting()", tagColor, fontColor, relfileOff, relfileOffNext - 1); } /* * Metadata about the tuple shape and width is COLOR_YELLOW_DARK, which * also matches EmitXmlHeapTuple() */ relfileOff = relfileOffNext; relfileOffNext += sizeof(unsigned short); flagString = GetIndexTupleFlags(tuple); tagColor = dead ? COLOR_BLACK : COLOR_YELLOW_DARK; EmitXmlTupleTagFont(blkno, offset, flagString, tagColor, fontColor, relfileOff, relfileOffNext - 1); pg_free(flagString); relfileOff = relfileOffNext; /* * NULL bitmap, if any, is counted as a separate tag, and not an extension * of t_info. This is a little arbitrary, but makes more sense overall. * This matches heap tuple header tags. * * GIN has special rules for multicolumn indexes. We don't break down the * structure of GIN's special representation of NULLness because doing so * requires access to catalog metadata. See the GIN README for details. * * SP-GiST node tuples (from internal SP-GiST pages) do not have a NULL * bitmap, since there is implicitly only ever one attribute that could be * NULL, so the bit alone suffices. See comments above * SpGistNodeTupleData. */ Assert(specialType != SPEC_SECT_INDEX_SPGIST || !SpGistPageIsLeaf(page)); if (IndexTupleHasNulls(tuple) && specialType != SPEC_SECT_INDEX_SPGIST) { relfileOffNext += (IndexInfoFindDataOffset(tuple->t_info) - (relfileOff - relfileOffOrig)); tagColor = dead ? COLOR_BLACK : COLOR_YELLOW_DARK; EmitXmlTupleTagFont(blkno, offset, "IndexAttributeBitMapData array", tagColor, fontColor, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; } /* * Tuple contents, plus possible posting list for GIN leaf pages. * * All-attributes-NULL IndexTuples will not have any contents here, so we * avoid creating a tuple content tag entirely. The same applies to * "minus infinity" items from nbtree internal pages (though they don't * have a NULL bitmap). * * Tuple contents is represented in the same way in the event of a dead * tuple. */ relfileOffNext = relfileOffOrig + itemSize; if (relfileOff < relfileOffNext) { /* * If this is a GIN page, we've already determined that this tuple is * from the main key B-Tree (posting trees don't use IndexTuples at * all). We should only treat it as containing a posting list (in * addition to tuple contents) if: * * 1. It does not point to a posting tree. Pointers to posting trees * are always simple block numbers (the posting tree root page block) * with magic offset number GIN_TREE_POSTING. * * 2. The posting list consists of one or more items. See * ginReadTuple(). * * 3. This isn't an internal page IndexTuple. These use the item * pointer representation in the conventional way. * * 4. This isn't a pending list page. These also don't abuse the item * pointer representation. * * The !GinPageIsLeaf() part of the test handles points 3 and 4. */ if (specialType != SPEC_SECT_INDEX_GIN || !GinPageIsLeaf(page) || GinIsPostingTree(tuple) || GinGetNPosting(tuple) == 0) EmitXmlAttributesIndex(blkno, offset, relfileOff, tuple, relfileOffOrig, itemSize); else { Size postoffset = itemSize - GinGetPostingOffset(tuple); const char *color; EmitXmlAttributesIndex(blkno, offset, relfileOff, tuple, relfileOffOrig, GinGetPostingOffset(tuple)); relfileOff = relfileOffNext - postoffset; /* * Compressed TIDs are orange. Old Postgres versions have * old-style uncompressed lists of TIDs in leaf pages, so their * posting lists should be blue instead of orange, like regular * block number item pointer fields. See ginPostingListDecode() * for details on how this representation is decompressed. */ color = GinItupIsCompressed(tuple) ? COLOR_ORANGE : COLOR_BLUE_LIGHT; EmitXmlTupleTag(blkno, offset, "posting list", color, relfileOff, relfileOffNext - 1); } } } /* * Emit a wxHexEditor tag for internal SP-GiST page tuple. * * This is similar to EmitXmlIndexTuple(), but SP-GiST never directly uses * IndexTuple representation, so requires this custom tuple formatting * function. (Actually, SP-GiST internal/inner tuples end up reusing the * IndexTuple representation internally, which we must deal with here.) * * We are prepared for the possibility that tuple is actually SpGistDeadTuple. * * Note that lp_len isn't needed here, since it's redundant, just as it is with * the IndexTuple representation. */ static void EmitXmlSpGistInnerTuple(Page page, BlockNumber blkno, OffsetNumber offset, SpGistInnerTuple tuple, uint32 relfileOff) { SpGistNodeTuple node; uint32 relfileOffNext = 0; uint32 relfileOffOrig = relfileOff; char *flagString; bool dead = (tuple->tupstate != SPGIST_LIVE); int i; Assert(!SpGistPageIsLeaf(page)); Assert(!SpGistPageIsMeta(page)); /* * Reuse dead tuple handling within leaf tuple routine. This correctly * indicates "inner page leaf tuple" size by interpreting the leaf tuple * "size" field, and there are no other fields that could be interpreted * incorrectly, so this seems to be the right approach. */ if (dead) { EmitXmlSpGistLeafTuple(page, blkno, offset, (SpGistLeafTuple) tuple, relfileOff); return; } /* * Metadata about the tuple shape and width is COLOR_YELLOW_LIGHT, to * indicate that the field is metadata, but to create a contrast with * IndexTuple metadata fields (which are COLOR_YELLOW_DARK). */ flagString = GetSpGistInnerTupleState(tuple); relfileOffNext = relfileOff + sizeof(unsigned int); EmitXmlTupleTag(blkno, offset, flagString, COLOR_YELLOW_LIGHT, relfileOff, relfileOffNext - 1); pg_free(flagString); relfileOff = relfileOffNext; relfileOffNext = relfileOff + sizeof(uint16); EmitXmlTupleTag(blkno, offset, "SpGistInnerTuple size", COLOR_YELLOW_LIGHT, relfileOff, relfileOffNext - 1); /* * Emit node tuple's contents (prefix). The prefix value is optional. * Some SP-GiST operator classes never use them. See spgist/README. */ relfileOff = relfileOffOrig + SGNTHDRSZ; relfileOffNext = relfileOffOrig + SGNTHDRSZ + tuple->prefixSize; if (relfileOff < relfileOffNext) EmitXmlTupleTag(blkno, offset, "contents (prefix)", COLOR_WHITE, relfileOff, relfileOffNext - 1); /* * Print all SpGistNodeTuple entries, which actually share IndexTuple * representation */ SGITITERATE(tuple, i, node) { EmitXmlIndexTuple(page, blkno, offset, node, relfileOffOrig + ((char *) node - (char *) tuple), -1, false); } } /* * Emit a wxHexEditor tag for leaf SP-GiST page tuple. * * We are prepared for the possibility that tuple is actually SpGistDeadTuple. */ static void EmitXmlSpGistLeafTuple(Page page, BlockNumber blkno, OffsetNumber offset, SpGistLeafTuple tuple, uint32 relfileOff) { uint32 relfileOffNext = 0; uint32 relfileOffOrig = relfileOff; char *flagString; bool dead = (tuple->tupstate != SPGIST_LIVE); Assert(!SpGistPageIsMeta(page)); /* * Metadata about the tuple shape and width is COLOR_YELLOW_LIGHT, to * indicate that the field is metadata, but to create a contrast with * IndexTuple metadata fields (which are COLOR_YELLOW_DARK). */ flagString = GetSpGistLeafTupleState(tuple); relfileOffNext = relfileOff + sizeof(unsigned int); EmitXmlTupleTag(blkno, offset, flagString, COLOR_YELLOW_LIGHT, relfileOff, relfileOffNext - 1); pg_free(flagString); relfileOff = relfileOffNext; relfileOffNext = relfileOff + sizeof(OffsetNumber); EmitXmlTupleTag(blkno, offset, "nextOffset", COLOR_YELLOW_DARK, relfileOff, relfileOffNext - 1); /* Heap pointer */ relfileOff = relfileOffNext; relfileOffNext = relfileOff + sizeof(uint16); EmitXmlTupleTag(blkno, offset, dead ? "pointer->bi_hi" : "heapPtr->bi_hi", COLOR_BLUE_LIGHT, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTag(blkno, offset, dead ? "pointer->bi_lo" : "heapPtr->bi_lo", COLOR_BLUE_LIGHT, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTag(blkno, offset, dead ? "pointer->offsetNumber" : "heapPtr->offsetNumber", COLOR_BLUE_DARK, relfileOff, relfileOffNext - 1); if (!dead) { /* Must not be inner tuple if not dead */ Assert(SpGistPageIsLeaf(page)); /* Emit tuple contents */ relfileOff = relfileOffOrig + SGLTHDRSZ(SGLT_GET_HASNULLMASK(tuple)); relfileOffNext = relfileOffOrig + tuple->size; if (relfileOff < relfileOffNext) EmitXmlTupleTag(blkno, offset, "contents", COLOR_WHITE, relfileOff, relfileOffNext - 1); } else { /* XID */ relfileOff = relfileOffNext; relfileOffNext = relfileOff + sizeof(TransactionId); EmitXmlTupleTag(blkno, offset, "xid", COLOR_RED_LIGHT, relfileOff, relfileOffNext - 1); } } /* * Emit a wxHexEditor tag for entire BRIN regular page tuple. * * This is similar to EmitXmlIndexTuple(), but BRIN never uses IndexTuple * representation, so requires this custom tuple formatting function. */ static void EmitXmlBrinTuple(Page page, BlockNumber blkno, OffsetNumber offset, BrinTuple *tuple, uint32 relfileOff, int itemSize) { uint32 relfileOffNext = 0; uint32 relfileOffOrig = relfileOff; char *flagString; if (!BRIN_IS_REGULAR_PAGE(page)) { fprintf(stderr, "pg_hexedit error: non-regular BRIN page formatted as regular"); exitCode = 1; } /* * Emit bt_info tags. A straight block number is used here, in contrast * to the legacy bi_hi/bi_lo representation used everywhere else. We * still match color/style, though. */ relfileOffNext = relfileOff + sizeof(BlockNumber); EmitXmlTupleTag(blkno, offset, "bt_blkno", COLOR_BLUE_LIGHT, relfileOff, relfileOffNext - 1); /* * Metadata about the tuple shape and width is COLOR_YELLOW_DARK, which * also matches EmitXmlHeapTuple() */ relfileOff = relfileOffNext; relfileOffNext += sizeof(unsigned short); flagString = GetBrinTupleFlags(tuple); EmitXmlTupleTag(blkno, offset, flagString, COLOR_YELLOW_DARK, relfileOff, relfileOffNext - 1); pg_free(flagString); relfileOff = relfileOffNext; /* * NULL bitmap, if any, is counted as a separate tag, and not an extension * of bt_info. This matches index tuples. */ if (BrinTupleHasNulls(tuple)) { relfileOffNext += (BrinTupleDataOffset(tuple) - (relfileOff - relfileOffOrig)); EmitXmlTupleTag(blkno, offset, "IndexAttributeBitMapData array", COLOR_YELLOW_DARK, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; } /* * Tuple contents. * * All-attributes-NULL BrinTuples will not have any contents here, so we * avoid creating a tuple content tag entirely. * * We use the lp_len value here, since there is no IndexTupleSize() * equivalent -- lp_len is really all we have to go on in the case of BRIN * tuples. * * Tagging individual attributes is hard for BRIN indexes, so we don't do * that here. We'd need to know how many columns are stored for each * attribute, which isn't stored in the system catalogs or in the on-disk * representation. BrinOpcInfo.oi_nstored stores this information, which * is returned by one of the opclass methods, so full backend access is * truly necessary (in practice it's 2 for minmax operator classes, and 3 * for inclusion operator classes). */ relfileOffNext = relfileOffOrig + itemSize; if (relfileOff < relfileOffNext) EmitXmlTupleTag(blkno, offset, "contents", COLOR_WHITE, relfileOff, relfileOffNext - 1); } /* * Dump out a formatted block header for the requested block. */ static int EmitXmlPageHeader(Page page, BlockNumber blkno, uint32 level) { int rc = 0; unsigned int headerBytes; /* * Only attempt to format the header if the entire header (minus the item * array) is available */ if (bytesToFormat < offsetof(PageHeaderData, pd_linp[0])) { headerBytes = bytesToFormat; rc = EOF_ENCOUNTERED; } else { /* Interpret the contents of the header */ PageHeader pageHeader = (PageHeader) page; XLogRecPtr pageLSN = GetPageLsn(page); int maxOffset = PageGetMaxOffsetNumber(page); char *flagString; headerBytes = offsetof(PageHeaderData, pd_linp[0]); blockVersion = (unsigned int) PageGetPageLayoutVersion(page); /* We don't count itemidarray as header */ if (maxOffset > 0) { unsigned int itemsLength = maxOffset * sizeof(ItemIdData); if (bytesToFormat < (headerBytes + itemsLength)) { headerBytes = bytesToFormat; rc = EOF_ENCOUNTERED; } } /* * For historical reasons, the 64-bit page header LSN value is stored * as two 32-bit values. This makes interpreting what is really just * a 64-bit unsigned int confusing on little-endian systems, because * the bytes are "in big endian order" across its two 32-bit halves, * but are in the expected little-endian order *within* each half. * * This is rather similar to the situation with t_ctid. Unlike in * that case, we choose to make LSN a single field here, because we * don't want to have two tooltips with the format value for each * field. */ flagString = pg_malloc(128); sprintf(flagString, "LSN: %X/%08X", (uint32) (pageLSN >> 32), (uint32) pageLSN); EmitXmlTag(blkno, level, flagString, COLOR_YELLOW_LIGHT, pageOffset, (pageOffset + sizeof(PageXLogRecPtr)) - 1); EmitXmlTag(blkno, level, "checksum", COLOR_GREEN_DARK, pageOffset + offsetof(PageHeaderData, pd_checksum), (pageOffset + offsetof(PageHeaderData, pd_flags)) - 1); /* Generate generic page header flags (reuse buffer) */ flagString[0] = '\0'; strcat(flagString, "pd_flags - "); if (pageHeader->pd_flags & PD_HAS_FREE_LINES) strcat(flagString, "PD_HAS_FREE_LINES|"); if (pageHeader->pd_flags & PD_PAGE_FULL) strcat(flagString, "PD_PAGE_FULL|"); if (pageHeader->pd_flags & PD_ALL_VISIBLE) strcat(flagString, "PD_ALL_VISIBLE|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_YELLOW_DARK, pageOffset + offsetof(PageHeaderData, pd_flags), (pageOffset + offsetof(PageHeaderData, pd_lower)) - 1); pg_free(flagString); EmitXmlTag(blkno, level, "pd_lower", COLOR_MAROON, pageOffset + offsetof(PageHeaderData, pd_lower), (pageOffset + offsetof(PageHeaderData, pd_upper)) - 1); EmitXmlTag(blkno, level, "pd_upper", COLOR_MAROON, pageOffset + offsetof(PageHeaderData, pd_upper), (pageOffset + offsetof(PageHeaderData, pd_special)) - 1); EmitXmlTag(blkno, level, "pd_special", COLOR_GREEN_BRIGHT, pageOffset + offsetof(PageHeaderData, pd_special), (pageOffset + offsetof(PageHeaderData, pd_pagesize_version)) - 1); EmitXmlTag(blkno, level, "pd_pagesize_version", COLOR_BROWN, pageOffset + offsetof(PageHeaderData, pd_pagesize_version), (pageOffset + offsetof(PageHeaderData, pd_prune_xid)) - 1); EmitXmlTag(blkno, level, "pd_prune_xid", COLOR_RED_LIGHT, pageOffset + offsetof(PageHeaderData, pd_prune_xid), (pageOffset + offsetof(PageHeaderData, pd_linp[0])) - 1); /* * Eye the contents of the header and alert the user to possible * problems */ if ((maxOffset < 0) || (maxOffset > blockSize) || (blockVersion != PG_PAGE_LAYOUT_VERSION) || /* only one we support */ (pageHeader->pd_upper > blockSize) || (pageHeader->pd_upper > pageHeader->pd_special) || (pageHeader->pd_lower < (sizeof(PageHeaderData) - sizeof(ItemIdData))) || (pageHeader->pd_lower > blockSize) || (pageHeader->pd_upper < pageHeader->pd_lower) || (pageHeader->pd_special > blockSize)) { fprintf(stderr, "pg_hexedit error: invalid header information\n"); exitCode = 1; } /* * Verify checksums as valid if requested. * * Caller may want us to skip zero checksums. */ if (blockOptions & BLOCK_CHECKSUMS || ((blockOptions & BLOCK_ZEROSUMS) && pageHeader->pd_checksum != 0)) { uint16 calc_checksum; calc_checksum = pg_checksum_page(page, blkno + segmentBlockDelta); if (calc_checksum != pageHeader->pd_checksum) { fprintf(stderr, "pg_hexedit error: checksum failure in block %u (calculated 0x%04x)\n", blkno, calc_checksum); exitCode = 1; } } } /* * If we have reached the end of file while interpreting the header, give * up */ if (rc == EOF_ENCOUNTERED) { fprintf(stderr, "pg_hexedit error: end of block encountered within page header with bytes read: %4u\n", bytesToFormat); exitCode = 1; } return rc; } /* * Dump out a formatted metapage tags for metapage block. */ static void EmitXmlPageMeta(BlockNumber blkno, uint32 level) { uint32 metaStartOffset = pageOffset + MAXALIGN(SizeOfPageHeaderData); if (specialType == SPEC_SECT_INDEX_BTREE && blkno == BTREE_METAPAGE) { EmitXmlTag(InvalidBlockNumber, level, "btm_magic", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_magic), (metaStartOffset + offsetof(BTMetaPageData, btm_version) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_version", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_version), (metaStartOffset + offsetof(BTMetaPageData, btm_root) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_root", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_root), (metaStartOffset + offsetof(BTMetaPageData, btm_level) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_level", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_level), (metaStartOffset + offsetof(BTMetaPageData, btm_fastroot) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_fastroot", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_fastroot), (metaStartOffset + offsetof(BTMetaPageData, btm_fastlevel) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_fastlevel", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_fastlevel), (metaStartOffset + offsetof(BTMetaPageData, btm_last_cleanup_num_delpages) - 1)); /* * These fields are only actually active when btm_version >= 3 (which * is v11's standard BTREE_VERSION) */ EmitXmlTag(InvalidBlockNumber, level, "btm_last_cleanup_num_delpages", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_last_cleanup_num_delpages), (metaStartOffset + offsetof(BTMetaPageData, btm_last_cleanup_num_heap_tuples) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_last_cleanup_num_heap_tuples", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_last_cleanup_num_heap_tuples), (metaStartOffset + offsetof(BTMetaPageData, btm_allequalimage) - 1)); EmitXmlTag(InvalidBlockNumber, level, "btm_allequalimage", COLOR_PINK, metaStartOffset + offsetof(BTMetaPageData, btm_allequalimage), (metaStartOffset + sizeof(BTMetaPageData) - 1)); } else if (specialType == SPEC_SECT_INDEX_HASH && blkno == HASH_METAPAGE) { EmitXmlTag(InvalidBlockNumber, level, "hashm_magic", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_magic), (metaStartOffset + offsetof(HashMetaPageData, hashm_version) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_version", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_version), (metaStartOffset + offsetof(HashMetaPageData, hashm_ntuples) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_ntuples", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_ntuples), (metaStartOffset + offsetof(HashMetaPageData, hashm_ffactor) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_ffactor", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_ffactor), (metaStartOffset + offsetof(HashMetaPageData, hashm_bsize) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_bsize", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_bsize), (metaStartOffset + offsetof(HashMetaPageData, hashm_bmsize) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_bmsize", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_bmsize), (metaStartOffset + offsetof(HashMetaPageData, hashm_bmshift) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_bmshift", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_bmshift), (metaStartOffset + offsetof(HashMetaPageData, hashm_maxbucket) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_maxbucket", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_maxbucket), (metaStartOffset + offsetof(HashMetaPageData, hashm_highmask) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_highmask", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_highmask), (metaStartOffset + offsetof(HashMetaPageData, hashm_lowmask) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_lowmask", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_lowmask), (metaStartOffset + offsetof(HashMetaPageData, hashm_ovflpoint) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_ovflpoint", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_ovflpoint), (metaStartOffset + offsetof(HashMetaPageData, hashm_firstfree) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_firstfree", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_firstfree), (metaStartOffset + offsetof(HashMetaPageData, hashm_nmaps) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_nmaps", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_nmaps), (metaStartOffset + offsetof(HashMetaPageData, hashm_procid) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_procid", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_procid), (metaStartOffset + offsetof(HashMetaPageData, hashm_spares) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_spares", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_spares), (metaStartOffset + offsetof(HashMetaPageData, hashm_mapp) - 1)); EmitXmlTag(InvalidBlockNumber, level, "hashm_mapp", COLOR_PINK, metaStartOffset + offsetof(HashMetaPageData, hashm_mapp), (metaStartOffset + sizeof(HashMetaPageData)) - 1); } else if (specialType == SPEC_SECT_INDEX_GIN && blkno == GIN_METAPAGE_BLKNO) { EmitXmlTag(InvalidBlockNumber, level, "head", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, head), (metaStartOffset + offsetof(GinMetaPageData, tail) - 1)); EmitXmlTag(InvalidBlockNumber, level, "tail", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, tail), (metaStartOffset + offsetof(GinMetaPageData, tailFreeSize) - 1)); EmitXmlTag(InvalidBlockNumber, level, "tailFreeSize", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, tailFreeSize), (metaStartOffset + offsetof(GinMetaPageData, nPendingPages) - 1)); EmitXmlTag(InvalidBlockNumber, level, "nPendingPages", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, nPendingPages), (metaStartOffset + offsetof(GinMetaPageData, nPendingHeapTuples) - 1)); EmitXmlTag(InvalidBlockNumber, level, "nPendingHeapTuples", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, nPendingHeapTuples), (metaStartOffset + offsetof(GinMetaPageData, nTotalPages) - 1)); EmitXmlTag(InvalidBlockNumber, level, "nTotalPages", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, nTotalPages), (metaStartOffset + offsetof(GinMetaPageData, nEntryPages) - 1)); EmitXmlTag(InvalidBlockNumber, level, "nEntryPages", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, nEntryPages), (metaStartOffset + offsetof(GinMetaPageData, nDataPages) - 1)); EmitXmlTag(InvalidBlockNumber, level, "nDataPages", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, nDataPages), (metaStartOffset + offsetof(GinMetaPageData, nEntries) - 1)); EmitXmlTag(InvalidBlockNumber, level, "nEntries", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, nEntries), (metaStartOffset + offsetof(GinMetaPageData, ginVersion) - 1)); EmitXmlTag(InvalidBlockNumber, level, "ginVersion", COLOR_PINK, metaStartOffset + offsetof(GinMetaPageData, ginVersion), (metaStartOffset + sizeof(GinMetaPageData)) - 1); } else if (specialType == SPEC_SECT_INDEX_SPGIST && blkno == SPGIST_METAPAGE_BLKNO) { uint32 cachedOffset = metaStartOffset; int i; EmitXmlTag(InvalidBlockNumber, level, "magicNumber", COLOR_PINK, metaStartOffset + offsetof(SpGistMetaPageData, magicNumber), (metaStartOffset + offsetof(SpGistMetaPageData, lastUsedPages) - 1)); cachedOffset += offsetof(SpGistMetaPageData, lastUsedPages); for (i = 0; i < SPGIST_CACHED_PAGES; i++) { EmitXmlTag(InvalidBlockNumber, level, "lastUsedPages.blkno", COLOR_PINK, cachedOffset, (cachedOffset + offsetof(SpGistLastUsedPage, freeSpace)) - 1); cachedOffset += offsetof(SpGistLastUsedPage, freeSpace); EmitXmlTag(InvalidBlockNumber, level, "lastUsedPages.freeSpace", COLOR_PINK, cachedOffset, (cachedOffset + sizeof(int) - 1)); cachedOffset += sizeof(int); } } else if (specialType == SPEC_SECT_INDEX_BRIN && blkno == BRIN_METAPAGE_BLKNO) { EmitXmlTag(InvalidBlockNumber, level, "brinMagic", COLOR_PINK, metaStartOffset + offsetof(BrinMetaPageData, brinMagic), (metaStartOffset + offsetof(BrinMetaPageData, brinVersion) - 1)); EmitXmlTag(InvalidBlockNumber, level, "brinVersion", COLOR_PINK, metaStartOffset + offsetof(BrinMetaPageData, brinVersion), (metaStartOffset + offsetof(BrinMetaPageData, pagesPerRange) - 1)); EmitXmlTag(InvalidBlockNumber, level, "pagesPerRange", COLOR_PINK, metaStartOffset + offsetof(BrinMetaPageData, pagesPerRange), (metaStartOffset + offsetof(BrinMetaPageData, lastRevmapPage) - 1)); EmitXmlTag(InvalidBlockNumber, level, "lastRevmapPage", COLOR_PINK, metaStartOffset + offsetof(BrinMetaPageData, lastRevmapPage), (metaStartOffset + sizeof(BrinMetaPageData)) - 1); } else { fprintf(stderr, "pg_hexedit error: unsupported metapage special section type \"%s\"\n", GetSpecialSectionString(specialType)); exitCode = 1; } } /* * Emit formatted ItemId tags for tuples that reside on this block. */ static void EmitXmlPageItemIdArray(Page page, BlockNumber blkno) { int maxOffset = PageGetMaxOffsetNumber(page); OffsetNumber offset; unsigned int headerBytes; headerBytes = offsetof(PageHeaderData, pd_linp[0]); /* * It's either a non-meta index page, or a heap page. Create tags for all * ItemId entries/line pointers on page. */ for (offset = FirstOffsetNumber; offset <= maxOffset; offset = OffsetNumberNext(offset)) { ItemId itemId; unsigned int itemFlags; char textFlags[16]; itemId = PageGetItemId(page, offset); itemFlags = (unsigned int) ItemIdGetFlags(itemId); switch (itemFlags) { case LP_UNUSED: strcpy(textFlags, "LP_UNUSED"); break; case LP_NORMAL: strcpy(textFlags, "LP_NORMAL"); break; case LP_REDIRECT: strcpy(textFlags, "LP_REDIRECT"); break; case LP_DEAD: strcpy(textFlags, "LP_DEAD"); break; default: sprintf(textFlags, "0x%02x", itemFlags); fprintf(stderr, "pg_hexedit error: invalid line pointer flags for (%u,%u): %s\n", blkno + segmentBlockDelta, offset, textFlags); exitCode = 1; break; } EmitXmlItemId(blkno, offset, itemId, pageOffset + headerBytes + (sizeof(ItemIdData) * (offset - 1)), textFlags); } } /* * Emit formatted tuples that reside on this block. * * This is responsible for emitting tuples from all pages that use an ItemId * array. This includes heapam, sequences, B-Tree, GiST, hash, regular BRIN * pages, and GIN pages for the main B-Tree over key values (not data/posting * tree pages). It's also responsible for pending list GIN pages, which are * similar to GIN pages for the main B-Tree. */ static void EmitXmlTuples(Page page, BlockNumber blkno) { OffsetNumber offset; int itemSize; int itemOffset; unsigned int itemFlags; ItemId itemId; int formatAs; int maxOffset = PageGetMaxOffsetNumber(page); /* Loop through the items on the block */ if (maxOffset == 0) return; else if ((maxOffset < 0) || (maxOffset > blockSize)) { fprintf(stderr, "pg_hexedit error: corrupt PageGetMaxOffsetNumber() offset %d found on file block %u\n", maxOffset, blkno); exitCode = 1; return; } /* Use the special section to determine the format style */ switch (specialType) { case SPEC_SECT_NONE: case SPEC_SECT_SEQUENCE: formatAs = ITEM_HEAP; break; case SPEC_SECT_INDEX_BTREE: case SPEC_SECT_INDEX_HASH: case SPEC_SECT_INDEX_GIST: case SPEC_SECT_INDEX_GIN: formatAs = ITEM_INDEX; break; case SPEC_SECT_INDEX_SPGIST: if (!SpGistPageIsLeaf(page)) formatAs = ITEM_SPG_INN; else formatAs = ITEM_SPG_LEAF; break; case SPEC_SECT_INDEX_BRIN: formatAs = ITEM_BRIN; break; default: /* Only complain the first time an error like this is seen */ if (exitCode == 0) fprintf(stderr, "pg_hexedit error: unsupported special section type \"%s\"\n", GetSpecialSectionString(specialType)); formatAs = ITEM_INDEX; exitCode = 1; } for (offset = FirstOffsetNumber; offset <= maxOffset; offset = OffsetNumberNext(offset)) { itemId = PageGetItemId(page, offset); itemSize = (int) ItemIdGetLength(itemId); itemOffset = (int) ItemIdGetOffset(itemId); itemFlags = (unsigned int) ItemIdGetFlags(itemId); /* LD_DEAD items may have storage, so we go by lp_len alone */ if (itemSize == 0) { if (itemFlags == LP_NORMAL) { fprintf(stderr, "pg_hexedit error: (%u,%u) LP_NORMAL item has lp_len 0\n", blkno + segmentBlockDelta, offset); exitCode = 1; } continue; } /* Sanitize */ if (itemFlags == LP_REDIRECT || itemFlags == LP_UNUSED) { fprintf(stderr, "pg_hexedit error: (%u,%u) LP_REDIRECT or LP_UNUSED item has lp_len %u\n", blkno + segmentBlockDelta, offset, itemSize); exitCode = 1; continue; } /* * Make sure the item can physically fit on this block before * formatting */ if (itemOffset + itemSize > blockSize || itemOffset + itemSize > bytesToFormat) { fprintf(stderr, "pg_hexedit error: (%u,%u) item contents extend beyond block.\n" "blocksize %d bytes, read %d bytes, item start offset %d.\n", blkno + segmentBlockDelta, offset, blockSize, bytesToFormat, itemOffset + itemSize); exitCode = 1; continue; } if (formatAs == ITEM_HEAP) { HeapTupleHeader htup; htup = (HeapTupleHeader) PageGetItem(page, itemId); EmitXmlHeapTuple(blkno, offset, htup, pageOffset + itemOffset, itemSize); } else if (formatAs == ITEM_INDEX) { IndexTuple tuple; bool dead; tuple = (IndexTuple) PageGetItem(page, itemId); dead = ItemIdIsDead(itemId); EmitXmlIndexTuple(page, blkno, offset, tuple, pageOffset + itemOffset, itemSize, dead); } else if (formatAs == ITEM_SPG_INN) { SpGistInnerTuple tuple; tuple = (SpGistInnerTuple) PageGetItem(page, itemId); EmitXmlSpGistInnerTuple(page, blkno, offset, tuple, pageOffset + itemOffset); } else if (formatAs == ITEM_SPG_LEAF) { SpGistLeafTuple tuple; tuple = (SpGistLeafTuple) PageGetItem(page, itemId); EmitXmlSpGistLeafTuple(page, blkno, offset, tuple, pageOffset + itemOffset); } else if (formatAs == ITEM_BRIN) { BrinTuple *tuple; tuple = (BrinTuple *) PageGetItem(page, itemId); EmitXmlBrinTuple(page, blkno, offset, tuple, pageOffset + itemOffset, itemSize); } } } /* * Emit posting tree page pseudo-tuples. * * Posting tree pages don't store regular tuples. Non-leaf pages contain * PostingItems, which are pairs of ItemPointers and child block numbers. Leaf * pages contain GinPostingLists and an uncompressed array of item pointers. * * In a leaf page, the compressed posting lists are stored after the regular * page header, one after each other. Although GIN does not store regular * tuples, pd_lower is used to indicate the end of the posting lists. After * that, free space follows. */ static void EmitXmlPostingTreeTids(Page page, BlockNumber blkno) { OffsetNumber offsetnum; OffsetNumber maxoff = GinPageGetOpaque(page)->maxoff; unsigned int itemOffset; unsigned int itemOffsetNext; Assert(GinPageIsData(page)); if (!GinPageIsLeaf(page)) { itemOffset = GinDataPageGetData(page) - page; for (offsetnum = FirstOffsetNumber; offsetnum <= maxoff; offsetnum = OffsetNumberNext(offsetnum)) { EmitXmlTupleTag(blkno, offsetnum, "PostingItem->child_blkno->bi_hi", COLOR_BLUE_LIGHT, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "PostingItem->child_blkno->bi_lo", COLOR_BLUE_LIGHT, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); /* * These TIDs are white because within this page (an internal * posting tree page) they are keys, not pointers. This is * similar to nbtree internal pages (pivot tuples). */ EmitXmlTupleTag(blkno, offsetnum, "PostingItem->key->bi_hi", COLOR_WHITE, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "PostingItem->key->bi_lo", COLOR_WHITE, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "PostingItem->key->offsetNumber", COLOR_WHITE, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); } } else { GinPostingList *seg, *nextseg; Pointer endptr; /* * See description of posting page/data page format at top of * ginpostlinglist.c for more information. * * We don't emit anything for pre-9.4 uncompressed data pages * versions, since those versions are unsupported by pg_hexedit. They * could still be encountered if the database underwent pg_upgrade, * but that should be rare. */ if (!GinPageIsCompressed(page)) return; itemOffset = GinDataPageGetData(page) - page; offsetnum = FirstOffsetNumber; seg = GinDataLeafPageGetPostingList(page); nextseg = GinNextPostingListSegment(seg); itemOffsetNext = itemOffset + ((char *) nextseg - (char *) seg); endptr = ((char *) seg) + GinDataLeafPageGetPostingListSize(page); do { EmitXmlTupleTag(blkno, offsetnum, "GinPostingList->first->bi_hi", COLOR_BLUE_LIGHT, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "GinPostingList->first->bi_lo", COLOR_BLUE_LIGHT, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "GinPostingList->first->offsetNumber", COLOR_BLUE_DARK, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); /* Make nbytes dark yellow, to match similar IndexTuple metadata */ EmitXmlTupleTag(blkno, offsetnum, "GinPostingList->nbytes", COLOR_YELLOW_DARK, pageOffset + itemOffset, (pageOffset + itemOffset + sizeof(uint16)) - 1); itemOffset += sizeof(uint16); /* Compressed TIDs are orange */ EmitXmlTupleTag(blkno, offsetnum, "varbyte encoded TIDs", COLOR_ORANGE, pageOffset + itemOffset, (pageOffset + itemOffset + seg->nbytes) - 1); itemOffset = itemOffsetNext; seg = nextseg; nextseg = GinNextPostingListSegment(seg); itemOffsetNext = itemOffset + ((char *) nextseg - (char *) seg); offsetnum = OffsetNumberNext(offsetnum); } while ((Pointer) nextseg <= endptr); } } /* * Emit hash bitmap page. * * This is just a matter of emitting a single tag for everything after the page * header, but before pd_lower. */ static void EmitXmlHashBitmap(Page page, BlockNumber blkno) { uint32 relfileOff = pageOffset + (PageGetContents(page) - page); uint32 relfileOffNext = pageOffset + ((PageHeader) (page))->pd_lower; EmitXmlTag(blkno, UINT_MAX, "hash bitmap", COLOR_YELLOW_DARK, relfileOff, relfileOffNext - 1); } /* * Emit BRIN revmap TIDs as pseudo-tuples. * * BRIN revmap pages don't store an ItemId array, or regular tuples. Instead, * the page contains an array of straight TIDs. * * We don't look at pd_upper, in keeping with pageinspect's brin_revmap_data(), * which also always emits REVMAP_PAGE_MAXITEMS entries. */ static void EmitXmlRevmap(Page page, BlockNumber blkno) { OffsetNumber offsetnum; uint32 relfileOff = pageOffset + (PageGetContents(page) - page); uint32 relfileOffNext; for (offsetnum = FirstOffsetNumber; offsetnum <= REVMAP_PAGE_MAXITEMS; offsetnum = OffsetNumberNext(offsetnum)) { /* * Emit t_tid tags. TID tag style should be kept consistent with * EmitXmlHeapTuple(). * * Note: We use pseudo offset numbers here. This is a somewhat * subjective interpretation of revmap page contents. We want to * impose some conventions, even if they aren't particularly well * justified by struct definitions. */ relfileOffNext = relfileOff + sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "rm_tids[i]->bi_hi", COLOR_BLUE_LIGHT, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "rm_tids[i]->bi_lo", COLOR_BLUE_LIGHT, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; relfileOffNext += sizeof(uint16); EmitXmlTupleTag(blkno, offsetnum, "rm_tids[i]->offsetNumber", COLOR_BLUE_DARK, relfileOff, relfileOffNext - 1); relfileOff = relfileOffNext; } } /* * On blocks that have special sections, print the contents according to * previously determined special section type. * * Color of special section fields should be COLOR_GREEN_BRIGHT, to match * pd_special field in page header. */ static void EmitXmlSpecial(BlockNumber blkno, uint32 level) { PageHeader pageHeader = (PageHeader) buffer; unsigned int specialOffset = pageHeader->pd_special; char *flagString; flagString = pg_malloc(256); flagString[0] = '\0'; switch (specialType) { case SPEC_SECT_NONE: case SPEC_SECT_ERROR_UNKNOWN: case SPEC_SECT_ERROR_BOUNDARY: fprintf(stderr, "pg_hexedit error: invalid special section type \"%s\"\n", GetSpecialSectionString(specialType)); exitCode = 1; break; case SPEC_SECT_SEQUENCE: { /* Special area consists of a single uint32, "magic" */ EmitXmlTag(blkno, level, "magic", COLOR_GREEN_BRIGHT, pageOffset + specialOffset, (pageOffset + specialOffset + sizeof(uint32) - 1)); } break; case SPEC_SECT_INDEX_BTREE: { BTPageOpaque btreeSection = (BTPageOpaque) (buffer + specialOffset); EmitXmlTag(blkno, level, "btpo_prev", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_prev), (pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_next)) - 1); EmitXmlTag(blkno, level, "btpo_next", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_next), (pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_level)) - 1); EmitXmlTag(blkno, level, "btpo_level", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_level), (pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_flags)) - 1); /* Generate B-Tree special area flags */ strcat(flagString, "btpo_flags - "); if (btreeSection->btpo_flags & BTP_LEAF) strcat(flagString, "BTP_LEAF|"); if (btreeSection->btpo_flags & BTP_ROOT) strcat(flagString, "BTP_ROOT|"); if (btreeSection->btpo_flags & BTP_DELETED) strcat(flagString, "BTP_DELETED|"); if (btreeSection->btpo_flags & BTP_META) strcat(flagString, "BTP_META|"); if (btreeSection->btpo_flags & BTP_HALF_DEAD) strcat(flagString, "BTP_HALF_DEAD|"); if (btreeSection->btpo_flags & BTP_SPLIT_END) strcat(flagString, "BTP_SPLIT_END|"); if (btreeSection->btpo_flags & BTP_HAS_GARBAGE) strcat(flagString, "BTP_HAS_GARBAGE|"); if (btreeSection->btpo_flags & BTP_INCOMPLETE_SPLIT) strcat(flagString, "BTP_INCOMPLETE_SPLIT|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_flags), (pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_cycleid)) - 1); EmitXmlTag(blkno, level, "btpo_cycleid", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BTPageOpaqueData, btpo_cycleid), (pageOffset + specialOffset + sizeof(BTPageOpaqueData) - 1)); } break; case SPEC_SECT_INDEX_HASH: { HashPageOpaque hashSection = (HashPageOpaque) (buffer + specialOffset); EmitXmlTag(blkno, level, "hasho_prevblkno", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_prevblkno), (pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_nextblkno)) - 1); EmitXmlTag(blkno, level, "hasho_nextblkno", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_nextblkno), (pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_bucket)) - 1); EmitXmlTag(blkno, level, "hasho_bucket", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_bucket), (pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_flag)) - 1); /* Generate hash special area flags */ strcat(flagString, "hasho_flag - "); if (hashSection->hasho_flag & LH_OVERFLOW_PAGE) strcat(flagString, "LH_OVERFLOW_PAGE|"); if (hashSection->hasho_flag & LH_BUCKET_PAGE) strcat(flagString, "LH_BUCKET_PAGE|"); if (hashSection->hasho_flag & LH_BITMAP_PAGE) strcat(flagString, "LH_BITMAP_PAGE|"); if (hashSection->hasho_flag & LH_META_PAGE) strcat(flagString, "LH_META_PAGE|"); if (hashSection->hasho_flag & LH_BUCKET_BEING_POPULATED) strcat(flagString, "LH_BUCKET_BEING_POPULATED|"); if (hashSection->hasho_flag & LH_BUCKET_BEING_SPLIT) strcat(flagString, "LH_BUCKET_BEING_SPLIT|"); if (hashSection->hasho_flag & LH_BUCKET_NEEDS_SPLIT_CLEANUP) strcat(flagString, "LH_BUCKET_NEEDS_SPLIT_CLEANUP|"); if (hashSection->hasho_flag & LH_PAGE_HAS_DEAD_TUPLES) strcat(flagString, "LH_PAGE_HAS_DEAD_TUPLES|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_flag), (pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_page_id)) - 1); EmitXmlTag(blkno, level, "hasho_page_id", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(HashPageOpaqueData, hasho_page_id), (pageOffset + specialOffset + sizeof(HashPageOpaqueData) - 1)); } break; case SPEC_SECT_INDEX_GIST: { GISTPageOpaque gistSection = (GISTPageOpaque) (buffer + specialOffset); EmitXmlTag(blkno, level, "nsn", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GISTPageOpaqueData, nsn), (pageOffset + specialOffset + offsetof(GISTPageOpaqueData, rightlink)) - 1); EmitXmlTag(blkno, level, "rightlink", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GISTPageOpaqueData, rightlink), (pageOffset + specialOffset + offsetof(GISTPageOpaqueData, flags)) - 1); /* Generate GiST special area flags */ strcat(flagString, "flags - "); if (gistSection->flags & F_LEAF) strcat(flagString, "F_LEAF|"); if (gistSection->flags & F_DELETED) strcat(flagString, "F_DELETED|"); if (gistSection->flags & F_TUPLES_DELETED) strcat(flagString, "F_TUPLES_DELETED|"); if (gistSection->flags & F_FOLLOW_RIGHT) strcat(flagString, "F_FOLLOW_RIGHT|"); if (gistSection->flags & F_HAS_GARBAGE) strcat(flagString, "F_HAS_GARBAGE|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GISTPageOpaqueData, flags), (pageOffset + specialOffset + offsetof(GISTPageOpaqueData, gist_page_id)) - 1); EmitXmlTag(blkno, level, "gist_page_id", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GISTPageOpaqueData, gist_page_id), (pageOffset + specialOffset + sizeof(GISTPageOpaqueData) - 1)); } break; case SPEC_SECT_INDEX_GIN: { GinPageOpaque ginSection = (GinPageOpaque) (buffer + specialOffset); EmitXmlTag(blkno, level, "rightlink", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GinPageOpaqueData, rightlink), (pageOffset + specialOffset + offsetof(GinPageOpaqueData, maxoff)) - 1); EmitXmlTag(blkno, level, "maxoff", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GinPageOpaqueData, maxoff), (pageOffset + specialOffset + offsetof(GinPageOpaqueData, flags)) - 1); /* Generate GIN special area flags */ strcat(flagString, "flags - "); if (ginSection->flags & GIN_DATA) strcat(flagString, "GIN_DATA|"); if (ginSection->flags & GIN_LEAF) strcat(flagString, "GIN_LEAF|"); if (ginSection->flags & GIN_DELETED) strcat(flagString, "GIN_DELETED|"); if (ginSection->flags & GIN_META) strcat(flagString, "GIN_META|"); if (ginSection->flags & GIN_LIST) strcat(flagString, "GIN_LIST|"); if (ginSection->flags & GIN_LIST_FULLROW) strcat(flagString, "GIN_LIST_FULLROW|"); if (ginSection->flags & GIN_INCOMPLETE_SPLIT) strcat(flagString, "GIN_INCOMPLETE_SPLIT|"); if (ginSection->flags & GIN_COMPRESSED) strcat(flagString, "GIN_COMPRESSED|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(GinPageOpaqueData, flags), (pageOffset + specialOffset + sizeof(GinPageOpaqueData) - 1)); } break; case SPEC_SECT_INDEX_SPGIST: { SpGistPageOpaque spGistSection = (SpGistPageOpaque) (buffer + specialOffset); /* Generate SP-GiST special area flags */ strcat(flagString, "flags - "); if (spGistSection->flags & SPGIST_META) strcat(flagString, "SPGIST_META|"); if (spGistSection->flags & SPGIST_DELETED) strcat(flagString, "SPGIST_DELETED|"); if (spGistSection->flags & SPGIST_LEAF) strcat(flagString, "SPGIST_LEAF|"); if (spGistSection->flags & SPGIST_NULLS) strcat(flagString, "SPGIST_NULLS|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, flags), (pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, nRedirection)) - 1); EmitXmlTag(blkno, level, "nRedirection", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, nRedirection), (pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, nPlaceholder)) - 1); EmitXmlTag(blkno, level, "nPlaceholder", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, nPlaceholder), (pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, spgist_page_id)) - 1); EmitXmlTag(blkno, level, "spgist_page_id", COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(SpGistPageOpaqueData, spgist_page_id), (pageOffset + specialOffset + sizeof(SpGistPageOpaqueData) - 1)); } break; case SPEC_SECT_INDEX_BRIN: { /* * Details of array subscription are taken from * BrinPageFlags() and BringPageTupe() macros */ BrinSpecialSpace *brinSection = (BrinSpecialSpace *) (buffer + specialOffset); /* Flags, of which there is currently only one, come first. */ strcat(flagString, "BrinPageFlags() - "); if (brinSection->vector[MAXALIGN(1) / sizeof(uint16) - 2] & BRIN_EVACUATE_PAGE) strcat(flagString, "BRIN_EVACUATE_PAGE|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BrinSpecialSpace, vector[MAXALIGN(1) / sizeof(uint16) - 2]), (pageOffset + specialOffset + offsetof(BrinSpecialSpace, vector[MAXALIGN(1) / sizeof(uint16) - 1])) - 1); /* Generate BRIN special page type */ flagString[0] = '\0'; strcat(flagString, "BrinPageType() - "); if (brinSection->vector[MAXALIGN(1) / sizeof(uint16) - 1] == BRIN_PAGETYPE_META) strcat(flagString, "BRIN_PAGETYPE_META|"); else if (brinSection->vector[MAXALIGN(1) / sizeof(uint16) - 1] == BRIN_PAGETYPE_REVMAP) strcat(flagString, "BRIN_PAGETYPE_REVMAP|"); else if (brinSection->vector[MAXALIGN(1) / sizeof(uint16) - 1] == BRIN_PAGETYPE_REGULAR) strcat(flagString, "BRIN_PAGETYPE_REGULAR|"); if (strlen(flagString)) flagString[strlen(flagString) - 1] = '\0'; EmitXmlTag(blkno, level, flagString, COLOR_GREEN_BRIGHT, pageOffset + specialOffset + offsetof(BrinSpecialSpace, vector[MAXALIGN(1) / sizeof(uint16) - 1]), (pageOffset + specialOffset + sizeof(BrinSpecialSpace) - 1)); } break; default: /* Only complain the first time an error like this is seen */ if (exitCode == 0) fprintf(stderr, "pg_hexedit error: unsupported special section type \"%s\"\n", GetSpecialSectionString(specialType)); exitCode = 1; } pg_free(flagString); } /* * Dump the main body of XML tags (does not include header, header comments, or * footer.) */ static void EmitXmlBody(void) { unsigned int initialRead = 1; unsigned int contentsToDump = 1; /* * Calculate an offset in blocks to the segment file, from the start of * the logical relation (or from the start of segment 0, if you prefer). * This is needed so that annotations and error messages do not emit * file-relative block numbers within TIDs. * * Relation-relative block numbers should always be used in annotations, * including when a raw block number is required, but should only be used * for TIDs in error messages. If an error message references a block * number, then it is naturally file-relative; otherwise, a TID would have * been used. The distinction between relation-relative and file-relative * block numbers is not just an implementation detail, since input options * like BLOCK_RANGE are always in terms of file-relative block numbers. */ segmentBlockDelta = (segmentSize / blockSize) * segmentNumber; /* * If the user requested a block range, seek to the correct position * within the file for the start block. */ if (blockOptions & BLOCK_RANGE) { unsigned int position = blockSize * blockStart; if (fseek(fp, position, SEEK_SET) != 0) { fprintf(stderr, "pg_hexedit error: seek error encountered before requested start block %d\n", blockStart); contentsToDump = 0; exitCode = 1; } else currentBlock = blockStart; } /* * Iterate through the blocks in the file until you reach the end or the * requested range end */ while (contentsToDump) { bytesToFormat = fread(buffer, 1, blockSize, fp); if (bytesToFormat == 0) { /* * fseek() won't pop an error if you seek passed eof. The next * subsequent read gets the error. */ if (initialRead) { fprintf(stderr, "pg_hexedit error: premature end of file encountered\n"); exitCode = 1; } contentsToDump = 0; } else EmitXmlPage(currentBlock); /* Check to see if we are at the end of the requested range. */ if ((blockOptions & BLOCK_RANGE) && (currentBlock >= blockEnd) && (contentsToDump)) { contentsToDump = 0; } else currentBlock++; initialRead = 0; } } /* * Consume the options and iterate through the given file, formatting as * requested. */ int main(int argv, char **argc) { /* If there is a parameter list, validate the options */ unsigned int validOptions; validOptions = (argv < 2) ? OPT_RC_COPYRIGHT : ConsumeOptions(argv, argc); /* * Display valid options if no parameters are received or invalid options * where encountered */ if (validOptions != OPT_RC_VALID) DisplayOptions(validOptions); else { blockSize = GetBlockSize(); /* * On a positive block size, allocate a local buffer to store the * subsequent blocks, and generate main body of XML tags. */ EmitXmlDocHeader(argv, argc); if (blockSize > 0) { buffer = (char *) pg_malloc(blockSize); EmitXmlBody(); } EmitXmlFooter(); } /* * Finally, print debug output to stderr. This is a convenient way of * informing user that options such as -x flag are working more or less as * expected. */ if ((blockOptions & BLOCK_SKIP_LSN)) { if (nblockstagged == 0) { fprintf(stderr, "pg_hexedit warning: -x option skipped every block (is -x option's LSN value %X/%08X too recent?)\n", (uint32) (afterThreshold >> 32), (uint32) afterThreshold); } else { /* * Handle case where -x option is combined with non-range * argument. This combination of options is rather pointless, but * be consistent and handle it anyway. */ if (blockStart != -1) fprintf(stderr, "pg_hexedit notice: -x option skipped %u blocks from blocks %u - %u (%u blocks tagged)\n", nblocksskipped, blockStart, maxBlockNumber, nblockstagged); else fprintf(stderr, "pg_hexedit notice: -x option skipped %u blocks (%u blocks tagged)\n", nblocksskipped, nblockstagged); fprintf(stderr, "pg_hexedit notice: low watermark LSN among tagged blocks: %X/%08X (which is page LSN for block %u)\n", (uint32) (minPageLSN >> 32), (uint32) minPageLSN, minPageLSNBlock); fprintf(stderr, "pg_hexedit notice: high watermark LSN among tagged blocks: %X/%08X (which is page LSN for block %u)\n", (uint32)(maxPageLSN >> 32), (uint32) maxPageLSN, maxPageLSNBlock); } fprintf(stderr, "pg_hexedit tip: to show the TAG panel in wxHexEditor, click \"View -> TAG Panel\"\n"); } if (exitCode == 0) fprintf(stderr, "pg_hexedit notice: PostgreSQL frontend program return code is 0 (success)\n"); else fprintf(stderr, "pg_hexedit notice: PostgreSQL frontend program return code is %d (failure)\n", exitCode); /* Close out the file and get rid of the allocated block buffer */ if (fp) fclose(fp); if (buffer) pg_free(buffer); exit(exitCode); } ================================================ FILE: relation_hexedit ================================================ #!/bin/bash # # relation_hexedit: Sets generic decile offsets in wxHexEditor cache/registry, # before opening relation. Unlike the other convenience scripts, this works # with any kind of relation, and has no dependency on contrib/pageinspect. usage() { cat < 0 7 block 0 LSN: 0/00000028 #313739 #E9E850 8 9 block 0 checksum #313739 #16A085 10 11 block 0 pd_flags - PD_ALL_VISIBLE #313739 #F1C40F 12 13 block 0 pd_lower #313739 #E96950 14 15 block 0 pd_upper #313739 #E96950 16 17 block 0 pd_special #313739 #50E964 18 19 block 0 pd_pagesize_version #313739 #97333D 20 23 block 0 pd_prune_xid #313739 #E74C3C 24 27 (0,1) lp_len: 144, lp_off: 8048, lp_flags: LP_NORMAL #313739 #3498DB 28 31 (0,2) lp_len: 144, lp_off: 7904, lp_flags: LP_NORMAL #313739 #3498DB 32 35 (0,3) lp_len: 144, lp_off: 7760, lp_flags: LP_NORMAL #313739 #3498DB 36 39 (0,4) lp_len: 144, lp_off: 7616, lp_flags: LP_NORMAL #313739 #3498DB 40 43 (0,5) lp_len: 144, lp_off: 7472, lp_flags: LP_NORMAL #313739 #3498DB 44 47 (0,6) lp_len: 144, lp_off: 7328, lp_flags: LP_NORMAL #313739 #3498DB 48 51 (0,7) lp_len: 144, lp_off: 7184, lp_flags: LP_NORMAL #313739 #3498DB 52 55 (0,8) lp_len: 144, lp_off: 7040, lp_flags: LP_NORMAL #313739 #3498DB 56 59 (0,9) lp_len: 144, lp_off: 6896, lp_flags: LP_NORMAL #313739 #3498DB 60 63 (0,10) lp_len: 144, lp_off: 6752, lp_flags: LP_NORMAL #313739 #3498DB 64 67 (0,11) lp_len: 144, lp_off: 6608, lp_flags: LP_NORMAL #313739 #3498DB 68 71 (0,12) lp_len: 144, lp_off: 6464, lp_flags: LP_NORMAL #313739 #3498DB 72 75 (0,13) lp_len: 144, lp_off: 6320, lp_flags: LP_NORMAL #313739 #3498DB 76 79 (0,14) lp_len: 144, lp_off: 6176, lp_flags: LP_NORMAL #313739 #3498DB 80 83 (0,15) lp_len: 144, lp_off: 6032, lp_flags: LP_NORMAL #313739 #3498DB 84 87 (0,16) lp_len: 144, lp_off: 5888, lp_flags: LP_NORMAL #313739 #3498DB 88 91 (0,17) lp_len: 144, lp_off: 5744, lp_flags: LP_NORMAL #313739 #3498DB 92 95 (0,18) lp_len: 144, lp_off: 5600, lp_flags: LP_NORMAL #313739 #3498DB 96 99 (0,19) lp_len: 144, lp_off: 5456, lp_flags: LP_NORMAL #313739 #3498DB 100 103 (0,20) lp_len: 144, lp_off: 5312, lp_flags: LP_NORMAL #313739 #3498DB 104 107 (0,21) lp_len: 144, lp_off: 5168, lp_flags: LP_NORMAL #313739 #3498DB 108 111 (0,22) lp_len: 144, lp_off: 5024, lp_flags: LP_NORMAL #313739 #3498DB 112 115 (0,23) lp_len: 144, lp_off: 4880, lp_flags: LP_NORMAL #313739 #3498DB 116 119 (0,24) lp_len: 144, lp_off: 4736, lp_flags: LP_NORMAL #313739 #3498DB 120 123 (0,25) lp_len: 144, lp_off: 4592, lp_flags: LP_NORMAL #313739 #3498DB 124 127 (0,26) lp_len: 144, lp_off: 4448, lp_flags: LP_NORMAL #313739 #3498DB 128 131 (0,27) lp_len: 144, lp_off: 4304, lp_flags: LP_NORMAL #313739 #3498DB 132 135 (0,28) lp_len: 144, lp_off: 4160, lp_flags: LP_NORMAL #313739 #3498DB 136 139 (0,29) lp_len: 144, lp_off: 4016, lp_flags: LP_NORMAL #313739 #3498DB 140 143 (0,30) lp_len: 144, lp_off: 3872, lp_flags: LP_NORMAL #313739 #3498DB 144 147 (0,31) lp_len: 144, lp_off: 3728, lp_flags: LP_NORMAL #313739 #3498DB 148 151 (0,32) lp_len: 144, lp_off: 3584, lp_flags: LP_NORMAL #313739 #3498DB 152 155 (0,33) lp_len: 144, lp_off: 3440, lp_flags: LP_NORMAL #313739 #3498DB 156 159 (0,34) lp_len: 144, lp_off: 3296, lp_flags: LP_NORMAL #313739 #3498DB 160 163 (0,35) lp_len: 144, lp_off: 3152, lp_flags: LP_NORMAL #313739 #3498DB 164 167 (0,36) lp_len: 144, lp_off: 3008, lp_flags: LP_NORMAL #313739 #3498DB 168 171 (0,37) lp_len: 144, lp_off: 2864, lp_flags: LP_NORMAL #313739 #3498DB 172 175 (0,38) lp_len: 144, lp_off: 2720, lp_flags: LP_NORMAL #313739 #3498DB 176 179 (0,39) lp_len: 144, lp_off: 2576, lp_flags: LP_NORMAL #313739 #3498DB 180 183 (0,40) lp_len: 144, lp_off: 2432, lp_flags: LP_NORMAL #313739 #3498DB 184 187 (0,41) lp_len: 144, lp_off: 2288, lp_flags: LP_NORMAL #313739 #3498DB 188 191 (0,42) lp_len: 144, lp_off: 2144, lp_flags: LP_NORMAL #313739 #3498DB 192 195 (0,43) lp_len: 144, lp_off: 2000, lp_flags: LP_NORMAL #313739 #3498DB 196 199 (0,44) lp_len: 144, lp_off: 1856, lp_flags: LP_NORMAL #313739 #3498DB 200 203 (0,45) lp_len: 144, lp_off: 1712, lp_flags: LP_NORMAL #313739 #3498DB 204 207 (0,46) lp_len: 144, lp_off: 1568, lp_flags: LP_NORMAL #313739 #3498DB 208 211 (0,47) lp_len: 144, lp_off: 1424, lp_flags: LP_NORMAL #313739 #3498DB 212 215 (0,48) lp_len: 144, lp_off: 1280, lp_flags: LP_NORMAL #313739 #3498DB 216 219 (0,49) lp_len: 144, lp_off: 1136, lp_flags: LP_NORMAL #313739 #3498DB 220 223 (0,50) lp_len: 144, lp_off: 992, lp_flags: LP_NORMAL #313739 #3498DB 224 227 (0,51) lp_len: 144, lp_off: 848, lp_flags: LP_NORMAL #313739 #3498DB 228 231 (0,52) lp_len: 144, lp_off: 704, lp_flags: LP_NORMAL #313739 #3498DB 232 235 (0,53) lp_len: 144, lp_off: 560, lp_flags: LP_NORMAL #313739 #3498DB 236 239 (0,54) lp_len: 144, lp_off: 416, lp_flags: LP_NORMAL #313739 #3498DB 240 243 (0,55) lp_len: 144, lp_off: 272, lp_flags: LP_NORMAL #313739 #3498DB 8048 8051 (0,1) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 8052 8055 (0,1) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 8056 8059 (0,1) t_cid #313739 #912C21 8060 8061 (0,1) t_ctid->bi_hi #2980B9 #3498DB 8062 8063 (0,1) t_ctid->bi_lo #2980B9 #3498DB 8064 8065 (0,1) t_ctid->offsetNumber #3498DB #2980B9 8066 8067 (0,1) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 8068 8069 (0,1) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 8070 8070 (0,1) t_hoff #313739 #E9E850 8071 8073 (0,1) t_bits #313739 #F1C40F 8080 8083 (0,1) attrelid #313739 #CFCBCC 8084 8147 (0,1) attname #313739 #D6AFDE 8148 8151 (0,1) atttypid #313739 #B797B8 8152 8155 (0,1) attstattarget #313739 #96E3A4 8156 8157 (0,1) attlen #313739 #A8A7C1 8158 8159 (0,1) attnum #313739 #9D9AAF 8160 8163 (0,1) attndims #313739 #A4B7A1 8164 8167 (0,1) attcacheoff #313739 #E8CFDC 8168 8171 (0,1) atttypmod #313739 #A4C5BB 8172 8172 (0,1) attbyval #313739 #B3D1D9 8173 8173 (0,1) attstorage #313739 #9CAFDB 8174 8174 (0,1) attalign #313739 #DEBACA 8175 8175 (0,1) attnotnull #313739 #BD96DE 8176 8176 (0,1) atthasdef #313739 #CAA5AC 8177 8177 (0,1) atthasmissing #313739 #EFE998 8178 8178 (0,1) attidentity #313739 #9DADB4 8179 8179 (0,1) attisdropped #313739 #C7C5D5 8180 8180 (0,1) attislocal #313739 #BCD4D5 8184 8187 (0,1) attinhcount #313739 #E9CCB8 8188 8191 (0,1) attcollation #313739 #BAA3C9 7904 7907 (0,2) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7908 7911 (0,2) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7912 7915 (0,2) t_cid #313739 #912C21 7916 7917 (0,2) t_ctid->bi_hi #2980B9 #3498DB 7918 7919 (0,2) t_ctid->bi_lo #2980B9 #3498DB 7920 7921 (0,2) t_ctid->offsetNumber #3498DB #2980B9 7922 7923 (0,2) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7924 7925 (0,2) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7926 7926 (0,2) t_hoff #313739 #E9E850 7927 7929 (0,2) t_bits #313739 #F1C40F 7936 7939 (0,2) attrelid #313739 #CFCBCC 7940 8003 (0,2) attname #313739 #D6AFDE 8004 8007 (0,2) atttypid #313739 #B797B8 8008 8011 (0,2) attstattarget #313739 #96E3A4 8012 8013 (0,2) attlen #313739 #A8A7C1 8014 8015 (0,2) attnum #313739 #9D9AAF 8016 8019 (0,2) attndims #313739 #A4B7A1 8020 8023 (0,2) attcacheoff #313739 #E8CFDC 8024 8027 (0,2) atttypmod #313739 #A4C5BB 8028 8028 (0,2) attbyval #313739 #B3D1D9 8029 8029 (0,2) attstorage #313739 #9CAFDB 8030 8030 (0,2) attalign #313739 #DEBACA 8031 8031 (0,2) attnotnull #313739 #BD96DE 8032 8032 (0,2) atthasdef #313739 #CAA5AC 8033 8033 (0,2) atthasmissing #313739 #EFE998 8034 8034 (0,2) attidentity #313739 #9DADB4 8035 8035 (0,2) attisdropped #313739 #C7C5D5 8036 8036 (0,2) attislocal #313739 #BCD4D5 8040 8043 (0,2) attinhcount #313739 #E9CCB8 8044 8047 (0,2) attcollation #313739 #BAA3C9 7760 7763 (0,3) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7764 7767 (0,3) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7768 7771 (0,3) t_cid #313739 #912C21 7772 7773 (0,3) t_ctid->bi_hi #2980B9 #3498DB 7774 7775 (0,3) t_ctid->bi_lo #2980B9 #3498DB 7776 7777 (0,3) t_ctid->offsetNumber #3498DB #2980B9 7778 7779 (0,3) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7780 7781 (0,3) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7782 7782 (0,3) t_hoff #313739 #E9E850 7783 7785 (0,3) t_bits #313739 #F1C40F 7792 7795 (0,3) attrelid #313739 #CFCBCC 7796 7859 (0,3) attname #313739 #D6AFDE 7860 7863 (0,3) atttypid #313739 #B797B8 7864 7867 (0,3) attstattarget #313739 #96E3A4 7868 7869 (0,3) attlen #313739 #A8A7C1 7870 7871 (0,3) attnum #313739 #9D9AAF 7872 7875 (0,3) attndims #313739 #A4B7A1 7876 7879 (0,3) attcacheoff #313739 #E8CFDC 7880 7883 (0,3) atttypmod #313739 #A4C5BB 7884 7884 (0,3) attbyval #313739 #B3D1D9 7885 7885 (0,3) attstorage #313739 #9CAFDB 7886 7886 (0,3) attalign #313739 #DEBACA 7887 7887 (0,3) attnotnull #313739 #BD96DE 7888 7888 (0,3) atthasdef #313739 #CAA5AC 7889 7889 (0,3) atthasmissing #313739 #EFE998 7890 7890 (0,3) attidentity #313739 #9DADB4 7891 7891 (0,3) attisdropped #313739 #C7C5D5 7892 7892 (0,3) attislocal #313739 #BCD4D5 7896 7899 (0,3) attinhcount #313739 #E9CCB8 7900 7903 (0,3) attcollation #313739 #BAA3C9 7616 7619 (0,4) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7620 7623 (0,4) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7624 7627 (0,4) t_cid #313739 #912C21 7628 7629 (0,4) t_ctid->bi_hi #2980B9 #3498DB 7630 7631 (0,4) t_ctid->bi_lo #2980B9 #3498DB 7632 7633 (0,4) t_ctid->offsetNumber #3498DB #2980B9 7634 7635 (0,4) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7636 7637 (0,4) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7638 7638 (0,4) t_hoff #313739 #E9E850 7639 7641 (0,4) t_bits #313739 #F1C40F 7648 7651 (0,4) attrelid #313739 #CFCBCC 7652 7715 (0,4) attname #313739 #D6AFDE 7716 7719 (0,4) atttypid #313739 #B797B8 7720 7723 (0,4) attstattarget #313739 #96E3A4 7724 7725 (0,4) attlen #313739 #A8A7C1 7726 7727 (0,4) attnum #313739 #9D9AAF 7728 7731 (0,4) attndims #313739 #A4B7A1 7732 7735 (0,4) attcacheoff #313739 #E8CFDC 7736 7739 (0,4) atttypmod #313739 #A4C5BB 7740 7740 (0,4) attbyval #313739 #B3D1D9 7741 7741 (0,4) attstorage #313739 #9CAFDB 7742 7742 (0,4) attalign #313739 #DEBACA 7743 7743 (0,4) attnotnull #313739 #BD96DE 7744 7744 (0,4) atthasdef #313739 #CAA5AC 7745 7745 (0,4) atthasmissing #313739 #EFE998 7746 7746 (0,4) attidentity #313739 #9DADB4 7747 7747 (0,4) attisdropped #313739 #C7C5D5 7748 7748 (0,4) attislocal #313739 #BCD4D5 7752 7755 (0,4) attinhcount #313739 #E9CCB8 7756 7759 (0,4) attcollation #313739 #BAA3C9 7472 7475 (0,5) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7476 7479 (0,5) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7480 7483 (0,5) t_cid #313739 #912C21 7484 7485 (0,5) t_ctid->bi_hi #2980B9 #3498DB 7486 7487 (0,5) t_ctid->bi_lo #2980B9 #3498DB 7488 7489 (0,5) t_ctid->offsetNumber #3498DB #2980B9 7490 7491 (0,5) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7492 7493 (0,5) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7494 7494 (0,5) t_hoff #313739 #E9E850 7495 7497 (0,5) t_bits #313739 #F1C40F 7504 7507 (0,5) attrelid #313739 #CFCBCC 7508 7571 (0,5) attname #313739 #D6AFDE 7572 7575 (0,5) atttypid #313739 #B797B8 7576 7579 (0,5) attstattarget #313739 #96E3A4 7580 7581 (0,5) attlen #313739 #A8A7C1 7582 7583 (0,5) attnum #313739 #9D9AAF 7584 7587 (0,5) attndims #313739 #A4B7A1 7588 7591 (0,5) attcacheoff #313739 #E8CFDC 7592 7595 (0,5) atttypmod #313739 #A4C5BB 7596 7596 (0,5) attbyval #313739 #B3D1D9 7597 7597 (0,5) attstorage #313739 #9CAFDB 7598 7598 (0,5) attalign #313739 #DEBACA 7599 7599 (0,5) attnotnull #313739 #BD96DE 7600 7600 (0,5) atthasdef #313739 #CAA5AC 7601 7601 (0,5) atthasmissing #313739 #EFE998 7602 7602 (0,5) attidentity #313739 #9DADB4 7603 7603 (0,5) attisdropped #313739 #C7C5D5 7604 7604 (0,5) attislocal #313739 #BCD4D5 7608 7611 (0,5) attinhcount #313739 #E9CCB8 7612 7615 (0,5) attcollation #313739 #BAA3C9 7328 7331 (0,6) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7332 7335 (0,6) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7336 7339 (0,6) t_cid #313739 #912C21 7340 7341 (0,6) t_ctid->bi_hi #2980B9 #3498DB 7342 7343 (0,6) t_ctid->bi_lo #2980B9 #3498DB 7344 7345 (0,6) t_ctid->offsetNumber #3498DB #2980B9 7346 7347 (0,6) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7348 7349 (0,6) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7350 7350 (0,6) t_hoff #313739 #E9E850 7351 7353 (0,6) t_bits #313739 #F1C40F 7360 7363 (0,6) attrelid #313739 #CFCBCC 7364 7427 (0,6) attname #313739 #D6AFDE 7428 7431 (0,6) atttypid #313739 #B797B8 7432 7435 (0,6) attstattarget #313739 #96E3A4 7436 7437 (0,6) attlen #313739 #A8A7C1 7438 7439 (0,6) attnum #313739 #9D9AAF 7440 7443 (0,6) attndims #313739 #A4B7A1 7444 7447 (0,6) attcacheoff #313739 #E8CFDC 7448 7451 (0,6) atttypmod #313739 #A4C5BB 7452 7452 (0,6) attbyval #313739 #B3D1D9 7453 7453 (0,6) attstorage #313739 #9CAFDB 7454 7454 (0,6) attalign #313739 #DEBACA 7455 7455 (0,6) attnotnull #313739 #BD96DE 7456 7456 (0,6) atthasdef #313739 #CAA5AC 7457 7457 (0,6) atthasmissing #313739 #EFE998 7458 7458 (0,6) attidentity #313739 #9DADB4 7459 7459 (0,6) attisdropped #313739 #C7C5D5 7460 7460 (0,6) attislocal #313739 #BCD4D5 7464 7467 (0,6) attinhcount #313739 #E9CCB8 7468 7471 (0,6) attcollation #313739 #BAA3C9 7184 7187 (0,7) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7188 7191 (0,7) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7192 7195 (0,7) t_cid #313739 #912C21 7196 7197 (0,7) t_ctid->bi_hi #2980B9 #3498DB 7198 7199 (0,7) t_ctid->bi_lo #2980B9 #3498DB 7200 7201 (0,7) t_ctid->offsetNumber #3498DB #2980B9 7202 7203 (0,7) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7204 7205 (0,7) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7206 7206 (0,7) t_hoff #313739 #E9E850 7207 7209 (0,7) t_bits #313739 #F1C40F 7216 7219 (0,7) attrelid #313739 #CFCBCC 7220 7283 (0,7) attname #313739 #D6AFDE 7284 7287 (0,7) atttypid #313739 #B797B8 7288 7291 (0,7) attstattarget #313739 #96E3A4 7292 7293 (0,7) attlen #313739 #A8A7C1 7294 7295 (0,7) attnum #313739 #9D9AAF 7296 7299 (0,7) attndims #313739 #A4B7A1 7300 7303 (0,7) attcacheoff #313739 #E8CFDC 7304 7307 (0,7) atttypmod #313739 #A4C5BB 7308 7308 (0,7) attbyval #313739 #B3D1D9 7309 7309 (0,7) attstorage #313739 #9CAFDB 7310 7310 (0,7) attalign #313739 #DEBACA 7311 7311 (0,7) attnotnull #313739 #BD96DE 7312 7312 (0,7) atthasdef #313739 #CAA5AC 7313 7313 (0,7) atthasmissing #313739 #EFE998 7314 7314 (0,7) attidentity #313739 #9DADB4 7315 7315 (0,7) attisdropped #313739 #C7C5D5 7316 7316 (0,7) attislocal #313739 #BCD4D5 7320 7323 (0,7) attinhcount #313739 #E9CCB8 7324 7327 (0,7) attcollation #313739 #BAA3C9 7040 7043 (0,8) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7044 7047 (0,8) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7048 7051 (0,8) t_cid #313739 #912C21 7052 7053 (0,8) t_ctid->bi_hi #2980B9 #3498DB 7054 7055 (0,8) t_ctid->bi_lo #2980B9 #3498DB 7056 7057 (0,8) t_ctid->offsetNumber #3498DB #2980B9 7058 7059 (0,8) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7060 7061 (0,8) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7062 7062 (0,8) t_hoff #313739 #E9E850 7063 7065 (0,8) t_bits #313739 #F1C40F 7072 7075 (0,8) attrelid #313739 #CFCBCC 7076 7139 (0,8) attname #313739 #D6AFDE 7140 7143 (0,8) atttypid #313739 #B797B8 7144 7147 (0,8) attstattarget #313739 #96E3A4 7148 7149 (0,8) attlen #313739 #A8A7C1 7150 7151 (0,8) attnum #313739 #9D9AAF 7152 7155 (0,8) attndims #313739 #A4B7A1 7156 7159 (0,8) attcacheoff #313739 #E8CFDC 7160 7163 (0,8) atttypmod #313739 #A4C5BB 7164 7164 (0,8) attbyval #313739 #B3D1D9 7165 7165 (0,8) attstorage #313739 #9CAFDB 7166 7166 (0,8) attalign #313739 #DEBACA 7167 7167 (0,8) attnotnull #313739 #BD96DE 7168 7168 (0,8) atthasdef #313739 #CAA5AC 7169 7169 (0,8) atthasmissing #313739 #EFE998 7170 7170 (0,8) attidentity #313739 #9DADB4 7171 7171 (0,8) attisdropped #313739 #C7C5D5 7172 7172 (0,8) attislocal #313739 #BCD4D5 7176 7179 (0,8) attinhcount #313739 #E9CCB8 7180 7183 (0,8) attcollation #313739 #BAA3C9 6896 6899 (0,9) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6900 6903 (0,9) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6904 6907 (0,9) t_cid #313739 #912C21 6908 6909 (0,9) t_ctid->bi_hi #2980B9 #3498DB 6910 6911 (0,9) t_ctid->bi_lo #2980B9 #3498DB 6912 6913 (0,9) t_ctid->offsetNumber #3498DB #2980B9 6914 6915 (0,9) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6916 6917 (0,9) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6918 6918 (0,9) t_hoff #313739 #E9E850 6919 6921 (0,9) t_bits #313739 #F1C40F 6928 6931 (0,9) attrelid #313739 #CFCBCC 6932 6995 (0,9) attname #313739 #D6AFDE 6996 6999 (0,9) atttypid #313739 #B797B8 7000 7003 (0,9) attstattarget #313739 #96E3A4 7004 7005 (0,9) attlen #313739 #A8A7C1 7006 7007 (0,9) attnum #313739 #9D9AAF 7008 7011 (0,9) attndims #313739 #A4B7A1 7012 7015 (0,9) attcacheoff #313739 #E8CFDC 7016 7019 (0,9) atttypmod #313739 #A4C5BB 7020 7020 (0,9) attbyval #313739 #B3D1D9 7021 7021 (0,9) attstorage #313739 #9CAFDB 7022 7022 (0,9) attalign #313739 #DEBACA 7023 7023 (0,9) attnotnull #313739 #BD96DE 7024 7024 (0,9) atthasdef #313739 #CAA5AC 7025 7025 (0,9) atthasmissing #313739 #EFE998 7026 7026 (0,9) attidentity #313739 #9DADB4 7027 7027 (0,9) attisdropped #313739 #C7C5D5 7028 7028 (0,9) attislocal #313739 #BCD4D5 7032 7035 (0,9) attinhcount #313739 #E9CCB8 7036 7039 (0,9) attcollation #313739 #BAA3C9 6752 6755 (0,10) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6756 6759 (0,10) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6760 6763 (0,10) t_cid #313739 #912C21 6764 6765 (0,10) t_ctid->bi_hi #2980B9 #3498DB 6766 6767 (0,10) t_ctid->bi_lo #2980B9 #3498DB 6768 6769 (0,10) t_ctid->offsetNumber #3498DB #2980B9 6770 6771 (0,10) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6772 6773 (0,10) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6774 6774 (0,10) t_hoff #313739 #E9E850 6775 6777 (0,10) t_bits #313739 #F1C40F 6784 6787 (0,10) attrelid #313739 #CFCBCC 6788 6851 (0,10) attname #313739 #D6AFDE 6852 6855 (0,10) atttypid #313739 #B797B8 6856 6859 (0,10) attstattarget #313739 #96E3A4 6860 6861 (0,10) attlen #313739 #A8A7C1 6862 6863 (0,10) attnum #313739 #9D9AAF 6864 6867 (0,10) attndims #313739 #A4B7A1 6868 6871 (0,10) attcacheoff #313739 #E8CFDC 6872 6875 (0,10) atttypmod #313739 #A4C5BB 6876 6876 (0,10) attbyval #313739 #B3D1D9 6877 6877 (0,10) attstorage #313739 #9CAFDB 6878 6878 (0,10) attalign #313739 #DEBACA 6879 6879 (0,10) attnotnull #313739 #BD96DE 6880 6880 (0,10) atthasdef #313739 #CAA5AC 6881 6881 (0,10) atthasmissing #313739 #EFE998 6882 6882 (0,10) attidentity #313739 #9DADB4 6883 6883 (0,10) attisdropped #313739 #C7C5D5 6884 6884 (0,10) attislocal #313739 #BCD4D5 6888 6891 (0,10) attinhcount #313739 #E9CCB8 6892 6895 (0,10) attcollation #313739 #BAA3C9 6608 6611 (0,11) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6612 6615 (0,11) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6616 6619 (0,11) t_cid #313739 #912C21 6620 6621 (0,11) t_ctid->bi_hi #2980B9 #3498DB 6622 6623 (0,11) t_ctid->bi_lo #2980B9 #3498DB 6624 6625 (0,11) t_ctid->offsetNumber #3498DB #2980B9 6626 6627 (0,11) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6628 6629 (0,11) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6630 6630 (0,11) t_hoff #313739 #E9E850 6631 6633 (0,11) t_bits #313739 #F1C40F 6640 6643 (0,11) attrelid #313739 #CFCBCC 6644 6707 (0,11) attname #313739 #D6AFDE 6708 6711 (0,11) atttypid #313739 #B797B8 6712 6715 (0,11) attstattarget #313739 #96E3A4 6716 6717 (0,11) attlen #313739 #A8A7C1 6718 6719 (0,11) attnum #313739 #9D9AAF 6720 6723 (0,11) attndims #313739 #A4B7A1 6724 6727 (0,11) attcacheoff #313739 #E8CFDC 6728 6731 (0,11) atttypmod #313739 #A4C5BB 6732 6732 (0,11) attbyval #313739 #B3D1D9 6733 6733 (0,11) attstorage #313739 #9CAFDB 6734 6734 (0,11) attalign #313739 #DEBACA 6735 6735 (0,11) attnotnull #313739 #BD96DE 6736 6736 (0,11) atthasdef #313739 #CAA5AC 6737 6737 (0,11) atthasmissing #313739 #EFE998 6738 6738 (0,11) attidentity #313739 #9DADB4 6739 6739 (0,11) attisdropped #313739 #C7C5D5 6740 6740 (0,11) attislocal #313739 #BCD4D5 6744 6747 (0,11) attinhcount #313739 #E9CCB8 6748 6751 (0,11) attcollation #313739 #BAA3C9 6464 6467 (0,12) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6468 6471 (0,12) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6472 6475 (0,12) t_cid #313739 #912C21 6476 6477 (0,12) t_ctid->bi_hi #2980B9 #3498DB 6478 6479 (0,12) t_ctid->bi_lo #2980B9 #3498DB 6480 6481 (0,12) t_ctid->offsetNumber #3498DB #2980B9 6482 6483 (0,12) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6484 6485 (0,12) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6486 6486 (0,12) t_hoff #313739 #E9E850 6487 6489 (0,12) t_bits #313739 #F1C40F 6496 6499 (0,12) attrelid #313739 #CFCBCC 6500 6563 (0,12) attname #313739 #D6AFDE 6564 6567 (0,12) atttypid #313739 #B797B8 6568 6571 (0,12) attstattarget #313739 #96E3A4 6572 6573 (0,12) attlen #313739 #A8A7C1 6574 6575 (0,12) attnum #313739 #9D9AAF 6576 6579 (0,12) attndims #313739 #A4B7A1 6580 6583 (0,12) attcacheoff #313739 #E8CFDC 6584 6587 (0,12) atttypmod #313739 #A4C5BB 6588 6588 (0,12) attbyval #313739 #B3D1D9 6589 6589 (0,12) attstorage #313739 #9CAFDB 6590 6590 (0,12) attalign #313739 #DEBACA 6591 6591 (0,12) attnotnull #313739 #BD96DE 6592 6592 (0,12) atthasdef #313739 #CAA5AC 6593 6593 (0,12) atthasmissing #313739 #EFE998 6594 6594 (0,12) attidentity #313739 #9DADB4 6595 6595 (0,12) attisdropped #313739 #C7C5D5 6596 6596 (0,12) attislocal #313739 #BCD4D5 6600 6603 (0,12) attinhcount #313739 #E9CCB8 6604 6607 (0,12) attcollation #313739 #BAA3C9 6320 6323 (0,13) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6324 6327 (0,13) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6328 6331 (0,13) t_cid #313739 #912C21 6332 6333 (0,13) t_ctid->bi_hi #2980B9 #3498DB 6334 6335 (0,13) t_ctid->bi_lo #2980B9 #3498DB 6336 6337 (0,13) t_ctid->offsetNumber #3498DB #2980B9 6338 6339 (0,13) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6340 6341 (0,13) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6342 6342 (0,13) t_hoff #313739 #E9E850 6343 6345 (0,13) t_bits #313739 #F1C40F 6352 6355 (0,13) attrelid #313739 #CFCBCC 6356 6419 (0,13) attname #313739 #D6AFDE 6420 6423 (0,13) atttypid #313739 #B797B8 6424 6427 (0,13) attstattarget #313739 #96E3A4 6428 6429 (0,13) attlen #313739 #A8A7C1 6430 6431 (0,13) attnum #313739 #9D9AAF 6432 6435 (0,13) attndims #313739 #A4B7A1 6436 6439 (0,13) attcacheoff #313739 #E8CFDC 6440 6443 (0,13) atttypmod #313739 #A4C5BB 6444 6444 (0,13) attbyval #313739 #B3D1D9 6445 6445 (0,13) attstorage #313739 #9CAFDB 6446 6446 (0,13) attalign #313739 #DEBACA 6447 6447 (0,13) attnotnull #313739 #BD96DE 6448 6448 (0,13) atthasdef #313739 #CAA5AC 6449 6449 (0,13) atthasmissing #313739 #EFE998 6450 6450 (0,13) attidentity #313739 #9DADB4 6451 6451 (0,13) attisdropped #313739 #C7C5D5 6452 6452 (0,13) attislocal #313739 #BCD4D5 6456 6459 (0,13) attinhcount #313739 #E9CCB8 6460 6463 (0,13) attcollation #313739 #BAA3C9 6176 6179 (0,14) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6180 6183 (0,14) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6184 6187 (0,14) t_cid #313739 #912C21 6188 6189 (0,14) t_ctid->bi_hi #2980B9 #3498DB 6190 6191 (0,14) t_ctid->bi_lo #2980B9 #3498DB 6192 6193 (0,14) t_ctid->offsetNumber #3498DB #2980B9 6194 6195 (0,14) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6196 6197 (0,14) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6198 6198 (0,14) t_hoff #313739 #E9E850 6199 6201 (0,14) t_bits #313739 #F1C40F 6208 6211 (0,14) attrelid #313739 #CFCBCC 6212 6275 (0,14) attname #313739 #D6AFDE 6276 6279 (0,14) atttypid #313739 #B797B8 6280 6283 (0,14) attstattarget #313739 #96E3A4 6284 6285 (0,14) attlen #313739 #A8A7C1 6286 6287 (0,14) attnum #313739 #9D9AAF 6288 6291 (0,14) attndims #313739 #A4B7A1 6292 6295 (0,14) attcacheoff #313739 #E8CFDC 6296 6299 (0,14) atttypmod #313739 #A4C5BB 6300 6300 (0,14) attbyval #313739 #B3D1D9 6301 6301 (0,14) attstorage #313739 #9CAFDB 6302 6302 (0,14) attalign #313739 #DEBACA 6303 6303 (0,14) attnotnull #313739 #BD96DE 6304 6304 (0,14) atthasdef #313739 #CAA5AC 6305 6305 (0,14) atthasmissing #313739 #EFE998 6306 6306 (0,14) attidentity #313739 #9DADB4 6307 6307 (0,14) attisdropped #313739 #C7C5D5 6308 6308 (0,14) attislocal #313739 #BCD4D5 6312 6315 (0,14) attinhcount #313739 #E9CCB8 6316 6319 (0,14) attcollation #313739 #BAA3C9 6032 6035 (0,15) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6036 6039 (0,15) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6040 6043 (0,15) t_cid #313739 #912C21 6044 6045 (0,15) t_ctid->bi_hi #2980B9 #3498DB 6046 6047 (0,15) t_ctid->bi_lo #2980B9 #3498DB 6048 6049 (0,15) t_ctid->offsetNumber #3498DB #2980B9 6050 6051 (0,15) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6052 6053 (0,15) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6054 6054 (0,15) t_hoff #313739 #E9E850 6055 6057 (0,15) t_bits #313739 #F1C40F 6064 6067 (0,15) attrelid #313739 #CFCBCC 6068 6131 (0,15) attname #313739 #D6AFDE 6132 6135 (0,15) atttypid #313739 #B797B8 6136 6139 (0,15) attstattarget #313739 #96E3A4 6140 6141 (0,15) attlen #313739 #A8A7C1 6142 6143 (0,15) attnum #313739 #9D9AAF 6144 6147 (0,15) attndims #313739 #A4B7A1 6148 6151 (0,15) attcacheoff #313739 #E8CFDC 6152 6155 (0,15) atttypmod #313739 #A4C5BB 6156 6156 (0,15) attbyval #313739 #B3D1D9 6157 6157 (0,15) attstorage #313739 #9CAFDB 6158 6158 (0,15) attalign #313739 #DEBACA 6159 6159 (0,15) attnotnull #313739 #BD96DE 6160 6160 (0,15) atthasdef #313739 #CAA5AC 6161 6161 (0,15) atthasmissing #313739 #EFE998 6162 6162 (0,15) attidentity #313739 #9DADB4 6163 6163 (0,15) attisdropped #313739 #C7C5D5 6164 6164 (0,15) attislocal #313739 #BCD4D5 6168 6171 (0,15) attinhcount #313739 #E9CCB8 6172 6175 (0,15) attcollation #313739 #BAA3C9 5888 5891 (0,16) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5892 5895 (0,16) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5896 5899 (0,16) t_cid #313739 #912C21 5900 5901 (0,16) t_ctid->bi_hi #2980B9 #3498DB 5902 5903 (0,16) t_ctid->bi_lo #2980B9 #3498DB 5904 5905 (0,16) t_ctid->offsetNumber #3498DB #2980B9 5906 5907 (0,16) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5908 5909 (0,16) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5910 5910 (0,16) t_hoff #313739 #E9E850 5911 5913 (0,16) t_bits #313739 #F1C40F 5920 5923 (0,16) attrelid #313739 #CFCBCC 5924 5987 (0,16) attname #313739 #D6AFDE 5988 5991 (0,16) atttypid #313739 #B797B8 5992 5995 (0,16) attstattarget #313739 #96E3A4 5996 5997 (0,16) attlen #313739 #A8A7C1 5998 5999 (0,16) attnum #313739 #9D9AAF 6000 6003 (0,16) attndims #313739 #A4B7A1 6004 6007 (0,16) attcacheoff #313739 #E8CFDC 6008 6011 (0,16) atttypmod #313739 #A4C5BB 6012 6012 (0,16) attbyval #313739 #B3D1D9 6013 6013 (0,16) attstorage #313739 #9CAFDB 6014 6014 (0,16) attalign #313739 #DEBACA 6015 6015 (0,16) attnotnull #313739 #BD96DE 6016 6016 (0,16) atthasdef #313739 #CAA5AC 6017 6017 (0,16) atthasmissing #313739 #EFE998 6018 6018 (0,16) attidentity #313739 #9DADB4 6019 6019 (0,16) attisdropped #313739 #C7C5D5 6020 6020 (0,16) attislocal #313739 #BCD4D5 6024 6027 (0,16) attinhcount #313739 #E9CCB8 6028 6031 (0,16) attcollation #313739 #BAA3C9 5744 5747 (0,17) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5748 5751 (0,17) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5752 5755 (0,17) t_cid #313739 #912C21 5756 5757 (0,17) t_ctid->bi_hi #2980B9 #3498DB 5758 5759 (0,17) t_ctid->bi_lo #2980B9 #3498DB 5760 5761 (0,17) t_ctid->offsetNumber #3498DB #2980B9 5762 5763 (0,17) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5764 5765 (0,17) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5766 5766 (0,17) t_hoff #313739 #E9E850 5767 5769 (0,17) t_bits #313739 #F1C40F 5776 5779 (0,17) attrelid #313739 #CFCBCC 5780 5843 (0,17) attname #313739 #D6AFDE 5844 5847 (0,17) atttypid #313739 #B797B8 5848 5851 (0,17) attstattarget #313739 #96E3A4 5852 5853 (0,17) attlen #313739 #A8A7C1 5854 5855 (0,17) attnum #313739 #9D9AAF 5856 5859 (0,17) attndims #313739 #A4B7A1 5860 5863 (0,17) attcacheoff #313739 #E8CFDC 5864 5867 (0,17) atttypmod #313739 #A4C5BB 5868 5868 (0,17) attbyval #313739 #B3D1D9 5869 5869 (0,17) attstorage #313739 #9CAFDB 5870 5870 (0,17) attalign #313739 #DEBACA 5871 5871 (0,17) attnotnull #313739 #BD96DE 5872 5872 (0,17) atthasdef #313739 #CAA5AC 5873 5873 (0,17) atthasmissing #313739 #EFE998 5874 5874 (0,17) attidentity #313739 #9DADB4 5875 5875 (0,17) attisdropped #313739 #C7C5D5 5876 5876 (0,17) attislocal #313739 #BCD4D5 5880 5883 (0,17) attinhcount #313739 #E9CCB8 5884 5887 (0,17) attcollation #313739 #BAA3C9 5600 5603 (0,18) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5604 5607 (0,18) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5608 5611 (0,18) t_cid #313739 #912C21 5612 5613 (0,18) t_ctid->bi_hi #2980B9 #3498DB 5614 5615 (0,18) t_ctid->bi_lo #2980B9 #3498DB 5616 5617 (0,18) t_ctid->offsetNumber #3498DB #2980B9 5618 5619 (0,18) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5620 5621 (0,18) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5622 5622 (0,18) t_hoff #313739 #E9E850 5623 5625 (0,18) t_bits #313739 #F1C40F 5632 5635 (0,18) attrelid #313739 #CFCBCC 5636 5699 (0,18) attname #313739 #D6AFDE 5700 5703 (0,18) atttypid #313739 #B797B8 5704 5707 (0,18) attstattarget #313739 #96E3A4 5708 5709 (0,18) attlen #313739 #A8A7C1 5710 5711 (0,18) attnum #313739 #9D9AAF 5712 5715 (0,18) attndims #313739 #A4B7A1 5716 5719 (0,18) attcacheoff #313739 #E8CFDC 5720 5723 (0,18) atttypmod #313739 #A4C5BB 5724 5724 (0,18) attbyval #313739 #B3D1D9 5725 5725 (0,18) attstorage #313739 #9CAFDB 5726 5726 (0,18) attalign #313739 #DEBACA 5727 5727 (0,18) attnotnull #313739 #BD96DE 5728 5728 (0,18) atthasdef #313739 #CAA5AC 5729 5729 (0,18) atthasmissing #313739 #EFE998 5730 5730 (0,18) attidentity #313739 #9DADB4 5731 5731 (0,18) attisdropped #313739 #C7C5D5 5732 5732 (0,18) attislocal #313739 #BCD4D5 5736 5739 (0,18) attinhcount #313739 #E9CCB8 5740 5743 (0,18) attcollation #313739 #BAA3C9 5456 5459 (0,19) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5460 5463 (0,19) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5464 5467 (0,19) t_cid #313739 #912C21 5468 5469 (0,19) t_ctid->bi_hi #2980B9 #3498DB 5470 5471 (0,19) t_ctid->bi_lo #2980B9 #3498DB 5472 5473 (0,19) t_ctid->offsetNumber #3498DB #2980B9 5474 5475 (0,19) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5476 5477 (0,19) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5478 5478 (0,19) t_hoff #313739 #E9E850 5479 5481 (0,19) t_bits #313739 #F1C40F 5488 5491 (0,19) attrelid #313739 #CFCBCC 5492 5555 (0,19) attname #313739 #D6AFDE 5556 5559 (0,19) atttypid #313739 #B797B8 5560 5563 (0,19) attstattarget #313739 #96E3A4 5564 5565 (0,19) attlen #313739 #A8A7C1 5566 5567 (0,19) attnum #313739 #9D9AAF 5568 5571 (0,19) attndims #313739 #A4B7A1 5572 5575 (0,19) attcacheoff #313739 #E8CFDC 5576 5579 (0,19) atttypmod #313739 #A4C5BB 5580 5580 (0,19) attbyval #313739 #B3D1D9 5581 5581 (0,19) attstorage #313739 #9CAFDB 5582 5582 (0,19) attalign #313739 #DEBACA 5583 5583 (0,19) attnotnull #313739 #BD96DE 5584 5584 (0,19) atthasdef #313739 #CAA5AC 5585 5585 (0,19) atthasmissing #313739 #EFE998 5586 5586 (0,19) attidentity #313739 #9DADB4 5587 5587 (0,19) attisdropped #313739 #C7C5D5 5588 5588 (0,19) attislocal #313739 #BCD4D5 5592 5595 (0,19) attinhcount #313739 #E9CCB8 5596 5599 (0,19) attcollation #313739 #BAA3C9 5312 5315 (0,20) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5316 5319 (0,20) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5320 5323 (0,20) t_cid #313739 #912C21 5324 5325 (0,20) t_ctid->bi_hi #2980B9 #3498DB 5326 5327 (0,20) t_ctid->bi_lo #2980B9 #3498DB 5328 5329 (0,20) t_ctid->offsetNumber #3498DB #2980B9 5330 5331 (0,20) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5332 5333 (0,20) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5334 5334 (0,20) t_hoff #313739 #E9E850 5335 5337 (0,20) t_bits #313739 #F1C40F 5344 5347 (0,20) attrelid #313739 #CFCBCC 5348 5411 (0,20) attname #313739 #D6AFDE 5412 5415 (0,20) atttypid #313739 #B797B8 5416 5419 (0,20) attstattarget #313739 #96E3A4 5420 5421 (0,20) attlen #313739 #A8A7C1 5422 5423 (0,20) attnum #313739 #9D9AAF 5424 5427 (0,20) attndims #313739 #A4B7A1 5428 5431 (0,20) attcacheoff #313739 #E8CFDC 5432 5435 (0,20) atttypmod #313739 #A4C5BB 5436 5436 (0,20) attbyval #313739 #B3D1D9 5437 5437 (0,20) attstorage #313739 #9CAFDB 5438 5438 (0,20) attalign #313739 #DEBACA 5439 5439 (0,20) attnotnull #313739 #BD96DE 5440 5440 (0,20) atthasdef #313739 #CAA5AC 5441 5441 (0,20) atthasmissing #313739 #EFE998 5442 5442 (0,20) attidentity #313739 #9DADB4 5443 5443 (0,20) attisdropped #313739 #C7C5D5 5444 5444 (0,20) attislocal #313739 #BCD4D5 5448 5451 (0,20) attinhcount #313739 #E9CCB8 5452 5455 (0,20) attcollation #313739 #BAA3C9 5168 5171 (0,21) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5172 5175 (0,21) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5176 5179 (0,21) t_cid #313739 #912C21 5180 5181 (0,21) t_ctid->bi_hi #2980B9 #3498DB 5182 5183 (0,21) t_ctid->bi_lo #2980B9 #3498DB 5184 5185 (0,21) t_ctid->offsetNumber #3498DB #2980B9 5186 5187 (0,21) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5188 5189 (0,21) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5190 5190 (0,21) t_hoff #313739 #E9E850 5191 5193 (0,21) t_bits #313739 #F1C40F 5200 5203 (0,21) attrelid #313739 #CFCBCC 5204 5267 (0,21) attname #313739 #D6AFDE 5268 5271 (0,21) atttypid #313739 #B797B8 5272 5275 (0,21) attstattarget #313739 #96E3A4 5276 5277 (0,21) attlen #313739 #A8A7C1 5278 5279 (0,21) attnum #313739 #9D9AAF 5280 5283 (0,21) attndims #313739 #A4B7A1 5284 5287 (0,21) attcacheoff #313739 #E8CFDC 5288 5291 (0,21) atttypmod #313739 #A4C5BB 5292 5292 (0,21) attbyval #313739 #B3D1D9 5293 5293 (0,21) attstorage #313739 #9CAFDB 5294 5294 (0,21) attalign #313739 #DEBACA 5295 5295 (0,21) attnotnull #313739 #BD96DE 5296 5296 (0,21) atthasdef #313739 #CAA5AC 5297 5297 (0,21) atthasmissing #313739 #EFE998 5298 5298 (0,21) attidentity #313739 #9DADB4 5299 5299 (0,21) attisdropped #313739 #C7C5D5 5300 5300 (0,21) attislocal #313739 #BCD4D5 5304 5307 (0,21) attinhcount #313739 #E9CCB8 5308 5311 (0,21) attcollation #313739 #BAA3C9 5024 5027 (0,22) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5028 5031 (0,22) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5032 5035 (0,22) t_cid #313739 #912C21 5036 5037 (0,22) t_ctid->bi_hi #2980B9 #3498DB 5038 5039 (0,22) t_ctid->bi_lo #2980B9 #3498DB 5040 5041 (0,22) t_ctid->offsetNumber #3498DB #2980B9 5042 5043 (0,22) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5044 5045 (0,22) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5046 5046 (0,22) t_hoff #313739 #E9E850 5047 5049 (0,22) t_bits #313739 #F1C40F 5056 5059 (0,22) attrelid #313739 #CFCBCC 5060 5123 (0,22) attname #313739 #D6AFDE 5124 5127 (0,22) atttypid #313739 #B797B8 5128 5131 (0,22) attstattarget #313739 #96E3A4 5132 5133 (0,22) attlen #313739 #A8A7C1 5134 5135 (0,22) attnum #313739 #9D9AAF 5136 5139 (0,22) attndims #313739 #A4B7A1 5140 5143 (0,22) attcacheoff #313739 #E8CFDC 5144 5147 (0,22) atttypmod #313739 #A4C5BB 5148 5148 (0,22) attbyval #313739 #B3D1D9 5149 5149 (0,22) attstorage #313739 #9CAFDB 5150 5150 (0,22) attalign #313739 #DEBACA 5151 5151 (0,22) attnotnull #313739 #BD96DE 5152 5152 (0,22) atthasdef #313739 #CAA5AC 5153 5153 (0,22) atthasmissing #313739 #EFE998 5154 5154 (0,22) attidentity #313739 #9DADB4 5155 5155 (0,22) attisdropped #313739 #C7C5D5 5156 5156 (0,22) attislocal #313739 #BCD4D5 5160 5163 (0,22) attinhcount #313739 #E9CCB8 5164 5167 (0,22) attcollation #313739 #BAA3C9 4880 4883 (0,23) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4884 4887 (0,23) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4888 4891 (0,23) t_cid #313739 #912C21 4892 4893 (0,23) t_ctid->bi_hi #2980B9 #3498DB 4894 4895 (0,23) t_ctid->bi_lo #2980B9 #3498DB 4896 4897 (0,23) t_ctid->offsetNumber #3498DB #2980B9 4898 4899 (0,23) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4900 4901 (0,23) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4902 4902 (0,23) t_hoff #313739 #E9E850 4903 4905 (0,23) t_bits #313739 #F1C40F 4912 4915 (0,23) attrelid #313739 #CFCBCC 4916 4979 (0,23) attname #313739 #D6AFDE 4980 4983 (0,23) atttypid #313739 #B797B8 4984 4987 (0,23) attstattarget #313739 #96E3A4 4988 4989 (0,23) attlen #313739 #A8A7C1 4990 4991 (0,23) attnum #313739 #9D9AAF 4992 4995 (0,23) attndims #313739 #A4B7A1 4996 4999 (0,23) attcacheoff #313739 #E8CFDC 5000 5003 (0,23) atttypmod #313739 #A4C5BB 5004 5004 (0,23) attbyval #313739 #B3D1D9 5005 5005 (0,23) attstorage #313739 #9CAFDB 5006 5006 (0,23) attalign #313739 #DEBACA 5007 5007 (0,23) attnotnull #313739 #BD96DE 5008 5008 (0,23) atthasdef #313739 #CAA5AC 5009 5009 (0,23) atthasmissing #313739 #EFE998 5010 5010 (0,23) attidentity #313739 #9DADB4 5011 5011 (0,23) attisdropped #313739 #C7C5D5 5012 5012 (0,23) attislocal #313739 #BCD4D5 5016 5019 (0,23) attinhcount #313739 #E9CCB8 5020 5023 (0,23) attcollation #313739 #BAA3C9 4736 4739 (0,24) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4740 4743 (0,24) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4744 4747 (0,24) t_cid #313739 #912C21 4748 4749 (0,24) t_ctid->bi_hi #2980B9 #3498DB 4750 4751 (0,24) t_ctid->bi_lo #2980B9 #3498DB 4752 4753 (0,24) t_ctid->offsetNumber #3498DB #2980B9 4754 4755 (0,24) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4756 4757 (0,24) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4758 4758 (0,24) t_hoff #313739 #E9E850 4759 4761 (0,24) t_bits #313739 #F1C40F 4768 4771 (0,24) attrelid #313739 #CFCBCC 4772 4835 (0,24) attname #313739 #D6AFDE 4836 4839 (0,24) atttypid #313739 #B797B8 4840 4843 (0,24) attstattarget #313739 #96E3A4 4844 4845 (0,24) attlen #313739 #A8A7C1 4846 4847 (0,24) attnum #313739 #9D9AAF 4848 4851 (0,24) attndims #313739 #A4B7A1 4852 4855 (0,24) attcacheoff #313739 #E8CFDC 4856 4859 (0,24) atttypmod #313739 #A4C5BB 4860 4860 (0,24) attbyval #313739 #B3D1D9 4861 4861 (0,24) attstorage #313739 #9CAFDB 4862 4862 (0,24) attalign #313739 #DEBACA 4863 4863 (0,24) attnotnull #313739 #BD96DE 4864 4864 (0,24) atthasdef #313739 #CAA5AC 4865 4865 (0,24) atthasmissing #313739 #EFE998 4866 4866 (0,24) attidentity #313739 #9DADB4 4867 4867 (0,24) attisdropped #313739 #C7C5D5 4868 4868 (0,24) attislocal #313739 #BCD4D5 4872 4875 (0,24) attinhcount #313739 #E9CCB8 4876 4879 (0,24) attcollation #313739 #BAA3C9 4592 4595 (0,25) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4596 4599 (0,25) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4600 4603 (0,25) t_cid #313739 #912C21 4604 4605 (0,25) t_ctid->bi_hi #2980B9 #3498DB 4606 4607 (0,25) t_ctid->bi_lo #2980B9 #3498DB 4608 4609 (0,25) t_ctid->offsetNumber #3498DB #2980B9 4610 4611 (0,25) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4612 4613 (0,25) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4614 4614 (0,25) t_hoff #313739 #E9E850 4615 4617 (0,25) t_bits #313739 #F1C40F 4624 4627 (0,25) attrelid #313739 #CFCBCC 4628 4691 (0,25) attname #313739 #D6AFDE 4692 4695 (0,25) atttypid #313739 #B797B8 4696 4699 (0,25) attstattarget #313739 #96E3A4 4700 4701 (0,25) attlen #313739 #A8A7C1 4702 4703 (0,25) attnum #313739 #9D9AAF 4704 4707 (0,25) attndims #313739 #A4B7A1 4708 4711 (0,25) attcacheoff #313739 #E8CFDC 4712 4715 (0,25) atttypmod #313739 #A4C5BB 4716 4716 (0,25) attbyval #313739 #B3D1D9 4717 4717 (0,25) attstorage #313739 #9CAFDB 4718 4718 (0,25) attalign #313739 #DEBACA 4719 4719 (0,25) attnotnull #313739 #BD96DE 4720 4720 (0,25) atthasdef #313739 #CAA5AC 4721 4721 (0,25) atthasmissing #313739 #EFE998 4722 4722 (0,25) attidentity #313739 #9DADB4 4723 4723 (0,25) attisdropped #313739 #C7C5D5 4724 4724 (0,25) attislocal #313739 #BCD4D5 4728 4731 (0,25) attinhcount #313739 #E9CCB8 4732 4735 (0,25) attcollation #313739 #BAA3C9 4448 4451 (0,26) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4452 4455 (0,26) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4456 4459 (0,26) t_cid #313739 #912C21 4460 4461 (0,26) t_ctid->bi_hi #2980B9 #3498DB 4462 4463 (0,26) t_ctid->bi_lo #2980B9 #3498DB 4464 4465 (0,26) t_ctid->offsetNumber #3498DB #2980B9 4466 4467 (0,26) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4468 4469 (0,26) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4470 4470 (0,26) t_hoff #313739 #E9E850 4471 4473 (0,26) t_bits #313739 #F1C40F 4480 4483 (0,26) attrelid #313739 #CFCBCC 4484 4547 (0,26) attname #313739 #D6AFDE 4548 4551 (0,26) atttypid #313739 #B797B8 4552 4555 (0,26) attstattarget #313739 #96E3A4 4556 4557 (0,26) attlen #313739 #A8A7C1 4558 4559 (0,26) attnum #313739 #9D9AAF 4560 4563 (0,26) attndims #313739 #A4B7A1 4564 4567 (0,26) attcacheoff #313739 #E8CFDC 4568 4571 (0,26) atttypmod #313739 #A4C5BB 4572 4572 (0,26) attbyval #313739 #B3D1D9 4573 4573 (0,26) attstorage #313739 #9CAFDB 4574 4574 (0,26) attalign #313739 #DEBACA 4575 4575 (0,26) attnotnull #313739 #BD96DE 4576 4576 (0,26) atthasdef #313739 #CAA5AC 4577 4577 (0,26) atthasmissing #313739 #EFE998 4578 4578 (0,26) attidentity #313739 #9DADB4 4579 4579 (0,26) attisdropped #313739 #C7C5D5 4580 4580 (0,26) attislocal #313739 #BCD4D5 4584 4587 (0,26) attinhcount #313739 #E9CCB8 4588 4591 (0,26) attcollation #313739 #BAA3C9 4304 4307 (0,27) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4308 4311 (0,27) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4312 4315 (0,27) t_cid #313739 #912C21 4316 4317 (0,27) t_ctid->bi_hi #2980B9 #3498DB 4318 4319 (0,27) t_ctid->bi_lo #2980B9 #3498DB 4320 4321 (0,27) t_ctid->offsetNumber #3498DB #2980B9 4322 4323 (0,27) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4324 4325 (0,27) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4326 4326 (0,27) t_hoff #313739 #E9E850 4327 4329 (0,27) t_bits #313739 #F1C40F 4336 4339 (0,27) attrelid #313739 #CFCBCC 4340 4403 (0,27) attname #313739 #D6AFDE 4404 4407 (0,27) atttypid #313739 #B797B8 4408 4411 (0,27) attstattarget #313739 #96E3A4 4412 4413 (0,27) attlen #313739 #A8A7C1 4414 4415 (0,27) attnum #313739 #9D9AAF 4416 4419 (0,27) attndims #313739 #A4B7A1 4420 4423 (0,27) attcacheoff #313739 #E8CFDC 4424 4427 (0,27) atttypmod #313739 #A4C5BB 4428 4428 (0,27) attbyval #313739 #B3D1D9 4429 4429 (0,27) attstorage #313739 #9CAFDB 4430 4430 (0,27) attalign #313739 #DEBACA 4431 4431 (0,27) attnotnull #313739 #BD96DE 4432 4432 (0,27) atthasdef #313739 #CAA5AC 4433 4433 (0,27) atthasmissing #313739 #EFE998 4434 4434 (0,27) attidentity #313739 #9DADB4 4435 4435 (0,27) attisdropped #313739 #C7C5D5 4436 4436 (0,27) attislocal #313739 #BCD4D5 4440 4443 (0,27) attinhcount #313739 #E9CCB8 4444 4447 (0,27) attcollation #313739 #BAA3C9 4160 4163 (0,28) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4164 4167 (0,28) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4168 4171 (0,28) t_cid #313739 #912C21 4172 4173 (0,28) t_ctid->bi_hi #2980B9 #3498DB 4174 4175 (0,28) t_ctid->bi_lo #2980B9 #3498DB 4176 4177 (0,28) t_ctid->offsetNumber #3498DB #2980B9 4178 4179 (0,28) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4180 4181 (0,28) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4182 4182 (0,28) t_hoff #313739 #E9E850 4183 4185 (0,28) t_bits #313739 #F1C40F 4192 4195 (0,28) attrelid #313739 #CFCBCC 4196 4259 (0,28) attname #313739 #D6AFDE 4260 4263 (0,28) atttypid #313739 #B797B8 4264 4267 (0,28) attstattarget #313739 #96E3A4 4268 4269 (0,28) attlen #313739 #A8A7C1 4270 4271 (0,28) attnum #313739 #9D9AAF 4272 4275 (0,28) attndims #313739 #A4B7A1 4276 4279 (0,28) attcacheoff #313739 #E8CFDC 4280 4283 (0,28) atttypmod #313739 #A4C5BB 4284 4284 (0,28) attbyval #313739 #B3D1D9 4285 4285 (0,28) attstorage #313739 #9CAFDB 4286 4286 (0,28) attalign #313739 #DEBACA 4287 4287 (0,28) attnotnull #313739 #BD96DE 4288 4288 (0,28) atthasdef #313739 #CAA5AC 4289 4289 (0,28) atthasmissing #313739 #EFE998 4290 4290 (0,28) attidentity #313739 #9DADB4 4291 4291 (0,28) attisdropped #313739 #C7C5D5 4292 4292 (0,28) attislocal #313739 #BCD4D5 4296 4299 (0,28) attinhcount #313739 #E9CCB8 4300 4303 (0,28) attcollation #313739 #BAA3C9 4016 4019 (0,29) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4020 4023 (0,29) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4024 4027 (0,29) t_cid #313739 #912C21 4028 4029 (0,29) t_ctid->bi_hi #2980B9 #3498DB 4030 4031 (0,29) t_ctid->bi_lo #2980B9 #3498DB 4032 4033 (0,29) t_ctid->offsetNumber #3498DB #2980B9 4034 4035 (0,29) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4036 4037 (0,29) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4038 4038 (0,29) t_hoff #313739 #E9E850 4039 4041 (0,29) t_bits #313739 #F1C40F 4048 4051 (0,29) attrelid #313739 #CFCBCC 4052 4115 (0,29) attname #313739 #D6AFDE 4116 4119 (0,29) atttypid #313739 #B797B8 4120 4123 (0,29) attstattarget #313739 #96E3A4 4124 4125 (0,29) attlen #313739 #A8A7C1 4126 4127 (0,29) attnum #313739 #9D9AAF 4128 4131 (0,29) attndims #313739 #A4B7A1 4132 4135 (0,29) attcacheoff #313739 #E8CFDC 4136 4139 (0,29) atttypmod #313739 #A4C5BB 4140 4140 (0,29) attbyval #313739 #B3D1D9 4141 4141 (0,29) attstorage #313739 #9CAFDB 4142 4142 (0,29) attalign #313739 #DEBACA 4143 4143 (0,29) attnotnull #313739 #BD96DE 4144 4144 (0,29) atthasdef #313739 #CAA5AC 4145 4145 (0,29) atthasmissing #313739 #EFE998 4146 4146 (0,29) attidentity #313739 #9DADB4 4147 4147 (0,29) attisdropped #313739 #C7C5D5 4148 4148 (0,29) attislocal #313739 #BCD4D5 4152 4155 (0,29) attinhcount #313739 #E9CCB8 4156 4159 (0,29) attcollation #313739 #BAA3C9 3872 3875 (0,30) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3876 3879 (0,30) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3880 3883 (0,30) t_cid #313739 #912C21 3884 3885 (0,30) t_ctid->bi_hi #2980B9 #3498DB 3886 3887 (0,30) t_ctid->bi_lo #2980B9 #3498DB 3888 3889 (0,30) t_ctid->offsetNumber #3498DB #2980B9 3890 3891 (0,30) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3892 3893 (0,30) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3894 3894 (0,30) t_hoff #313739 #E9E850 3895 3897 (0,30) t_bits #313739 #F1C40F 3904 3907 (0,30) attrelid #313739 #CFCBCC 3908 3971 (0,30) attname #313739 #D6AFDE 3972 3975 (0,30) atttypid #313739 #B797B8 3976 3979 (0,30) attstattarget #313739 #96E3A4 3980 3981 (0,30) attlen #313739 #A8A7C1 3982 3983 (0,30) attnum #313739 #9D9AAF 3984 3987 (0,30) attndims #313739 #A4B7A1 3988 3991 (0,30) attcacheoff #313739 #E8CFDC 3992 3995 (0,30) atttypmod #313739 #A4C5BB 3996 3996 (0,30) attbyval #313739 #B3D1D9 3997 3997 (0,30) attstorage #313739 #9CAFDB 3998 3998 (0,30) attalign #313739 #DEBACA 3999 3999 (0,30) attnotnull #313739 #BD96DE 4000 4000 (0,30) atthasdef #313739 #CAA5AC 4001 4001 (0,30) atthasmissing #313739 #EFE998 4002 4002 (0,30) attidentity #313739 #9DADB4 4003 4003 (0,30) attisdropped #313739 #C7C5D5 4004 4004 (0,30) attislocal #313739 #BCD4D5 4008 4011 (0,30) attinhcount #313739 #E9CCB8 4012 4015 (0,30) attcollation #313739 #BAA3C9 3728 3731 (0,31) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3732 3735 (0,31) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3736 3739 (0,31) t_cid #313739 #912C21 3740 3741 (0,31) t_ctid->bi_hi #2980B9 #3498DB 3742 3743 (0,31) t_ctid->bi_lo #2980B9 #3498DB 3744 3745 (0,31) t_ctid->offsetNumber #3498DB #2980B9 3746 3747 (0,31) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3748 3749 (0,31) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3750 3750 (0,31) t_hoff #313739 #E9E850 3751 3753 (0,31) t_bits #313739 #F1C40F 3760 3763 (0,31) attrelid #313739 #CFCBCC 3764 3827 (0,31) attname #313739 #D6AFDE 3828 3831 (0,31) atttypid #313739 #B797B8 3832 3835 (0,31) attstattarget #313739 #96E3A4 3836 3837 (0,31) attlen #313739 #A8A7C1 3838 3839 (0,31) attnum #313739 #9D9AAF 3840 3843 (0,31) attndims #313739 #A4B7A1 3844 3847 (0,31) attcacheoff #313739 #E8CFDC 3848 3851 (0,31) atttypmod #313739 #A4C5BB 3852 3852 (0,31) attbyval #313739 #B3D1D9 3853 3853 (0,31) attstorage #313739 #9CAFDB 3854 3854 (0,31) attalign #313739 #DEBACA 3855 3855 (0,31) attnotnull #313739 #BD96DE 3856 3856 (0,31) atthasdef #313739 #CAA5AC 3857 3857 (0,31) atthasmissing #313739 #EFE998 3858 3858 (0,31) attidentity #313739 #9DADB4 3859 3859 (0,31) attisdropped #313739 #C7C5D5 3860 3860 (0,31) attislocal #313739 #BCD4D5 3864 3867 (0,31) attinhcount #313739 #E9CCB8 3868 3871 (0,31) attcollation #313739 #BAA3C9 3584 3587 (0,32) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3588 3591 (0,32) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3592 3595 (0,32) t_cid #313739 #912C21 3596 3597 (0,32) t_ctid->bi_hi #2980B9 #3498DB 3598 3599 (0,32) t_ctid->bi_lo #2980B9 #3498DB 3600 3601 (0,32) t_ctid->offsetNumber #3498DB #2980B9 3602 3603 (0,32) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3604 3605 (0,32) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3606 3606 (0,32) t_hoff #313739 #E9E850 3607 3609 (0,32) t_bits #313739 #F1C40F 3616 3619 (0,32) attrelid #313739 #CFCBCC 3620 3683 (0,32) attname #313739 #D6AFDE 3684 3687 (0,32) atttypid #313739 #B797B8 3688 3691 (0,32) attstattarget #313739 #96E3A4 3692 3693 (0,32) attlen #313739 #A8A7C1 3694 3695 (0,32) attnum #313739 #9D9AAF 3696 3699 (0,32) attndims #313739 #A4B7A1 3700 3703 (0,32) attcacheoff #313739 #E8CFDC 3704 3707 (0,32) atttypmod #313739 #A4C5BB 3708 3708 (0,32) attbyval #313739 #B3D1D9 3709 3709 (0,32) attstorage #313739 #9CAFDB 3710 3710 (0,32) attalign #313739 #DEBACA 3711 3711 (0,32) attnotnull #313739 #BD96DE 3712 3712 (0,32) atthasdef #313739 #CAA5AC 3713 3713 (0,32) atthasmissing #313739 #EFE998 3714 3714 (0,32) attidentity #313739 #9DADB4 3715 3715 (0,32) attisdropped #313739 #C7C5D5 3716 3716 (0,32) attislocal #313739 #BCD4D5 3720 3723 (0,32) attinhcount #313739 #E9CCB8 3724 3727 (0,32) attcollation #313739 #BAA3C9 3440 3443 (0,33) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3444 3447 (0,33) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3448 3451 (0,33) t_cid #313739 #912C21 3452 3453 (0,33) t_ctid->bi_hi #2980B9 #3498DB 3454 3455 (0,33) t_ctid->bi_lo #2980B9 #3498DB 3456 3457 (0,33) t_ctid->offsetNumber #3498DB #2980B9 3458 3459 (0,33) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3460 3461 (0,33) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3462 3462 (0,33) t_hoff #313739 #E9E850 3463 3465 (0,33) t_bits #313739 #F1C40F 3472 3475 (0,33) attrelid #313739 #CFCBCC 3476 3539 (0,33) attname #313739 #D6AFDE 3540 3543 (0,33) atttypid #313739 #B797B8 3544 3547 (0,33) attstattarget #313739 #96E3A4 3548 3549 (0,33) attlen #313739 #A8A7C1 3550 3551 (0,33) attnum #313739 #9D9AAF 3552 3555 (0,33) attndims #313739 #A4B7A1 3556 3559 (0,33) attcacheoff #313739 #E8CFDC 3560 3563 (0,33) atttypmod #313739 #A4C5BB 3564 3564 (0,33) attbyval #313739 #B3D1D9 3565 3565 (0,33) attstorage #313739 #9CAFDB 3566 3566 (0,33) attalign #313739 #DEBACA 3567 3567 (0,33) attnotnull #313739 #BD96DE 3568 3568 (0,33) atthasdef #313739 #CAA5AC 3569 3569 (0,33) atthasmissing #313739 #EFE998 3570 3570 (0,33) attidentity #313739 #9DADB4 3571 3571 (0,33) attisdropped #313739 #C7C5D5 3572 3572 (0,33) attislocal #313739 #BCD4D5 3576 3579 (0,33) attinhcount #313739 #E9CCB8 3580 3583 (0,33) attcollation #313739 #BAA3C9 3296 3299 (0,34) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3300 3303 (0,34) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3304 3307 (0,34) t_cid #313739 #912C21 3308 3309 (0,34) t_ctid->bi_hi #2980B9 #3498DB 3310 3311 (0,34) t_ctid->bi_lo #2980B9 #3498DB 3312 3313 (0,34) t_ctid->offsetNumber #3498DB #2980B9 3314 3315 (0,34) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3316 3317 (0,34) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3318 3318 (0,34) t_hoff #313739 #E9E850 3319 3321 (0,34) t_bits #313739 #F1C40F 3328 3331 (0,34) attrelid #313739 #CFCBCC 3332 3395 (0,34) attname #313739 #D6AFDE 3396 3399 (0,34) atttypid #313739 #B797B8 3400 3403 (0,34) attstattarget #313739 #96E3A4 3404 3405 (0,34) attlen #313739 #A8A7C1 3406 3407 (0,34) attnum #313739 #9D9AAF 3408 3411 (0,34) attndims #313739 #A4B7A1 3412 3415 (0,34) attcacheoff #313739 #E8CFDC 3416 3419 (0,34) atttypmod #313739 #A4C5BB 3420 3420 (0,34) attbyval #313739 #B3D1D9 3421 3421 (0,34) attstorage #313739 #9CAFDB 3422 3422 (0,34) attalign #313739 #DEBACA 3423 3423 (0,34) attnotnull #313739 #BD96DE 3424 3424 (0,34) atthasdef #313739 #CAA5AC 3425 3425 (0,34) atthasmissing #313739 #EFE998 3426 3426 (0,34) attidentity #313739 #9DADB4 3427 3427 (0,34) attisdropped #313739 #C7C5D5 3428 3428 (0,34) attislocal #313739 #BCD4D5 3432 3435 (0,34) attinhcount #313739 #E9CCB8 3436 3439 (0,34) attcollation #313739 #BAA3C9 3152 3155 (0,35) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3156 3159 (0,35) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3160 3163 (0,35) t_cid #313739 #912C21 3164 3165 (0,35) t_ctid->bi_hi #2980B9 #3498DB 3166 3167 (0,35) t_ctid->bi_lo #2980B9 #3498DB 3168 3169 (0,35) t_ctid->offsetNumber #3498DB #2980B9 3170 3171 (0,35) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3172 3173 (0,35) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3174 3174 (0,35) t_hoff #313739 #E9E850 3175 3177 (0,35) t_bits #313739 #F1C40F 3184 3187 (0,35) attrelid #313739 #CFCBCC 3188 3251 (0,35) attname #313739 #D6AFDE 3252 3255 (0,35) atttypid #313739 #B797B8 3256 3259 (0,35) attstattarget #313739 #96E3A4 3260 3261 (0,35) attlen #313739 #A8A7C1 3262 3263 (0,35) attnum #313739 #9D9AAF 3264 3267 (0,35) attndims #313739 #A4B7A1 3268 3271 (0,35) attcacheoff #313739 #E8CFDC 3272 3275 (0,35) atttypmod #313739 #A4C5BB 3276 3276 (0,35) attbyval #313739 #B3D1D9 3277 3277 (0,35) attstorage #313739 #9CAFDB 3278 3278 (0,35) attalign #313739 #DEBACA 3279 3279 (0,35) attnotnull #313739 #BD96DE 3280 3280 (0,35) atthasdef #313739 #CAA5AC 3281 3281 (0,35) atthasmissing #313739 #EFE998 3282 3282 (0,35) attidentity #313739 #9DADB4 3283 3283 (0,35) attisdropped #313739 #C7C5D5 3284 3284 (0,35) attislocal #313739 #BCD4D5 3288 3291 (0,35) attinhcount #313739 #E9CCB8 3292 3295 (0,35) attcollation #313739 #BAA3C9 3008 3011 (0,36) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3012 3015 (0,36) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3016 3019 (0,36) t_cid #313739 #912C21 3020 3021 (0,36) t_ctid->bi_hi #2980B9 #3498DB 3022 3023 (0,36) t_ctid->bi_lo #2980B9 #3498DB 3024 3025 (0,36) t_ctid->offsetNumber #3498DB #2980B9 3026 3027 (0,36) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3028 3029 (0,36) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3030 3030 (0,36) t_hoff #313739 #E9E850 3031 3033 (0,36) t_bits #313739 #F1C40F 3040 3043 (0,36) attrelid #313739 #CFCBCC 3044 3107 (0,36) attname #313739 #D6AFDE 3108 3111 (0,36) atttypid #313739 #B797B8 3112 3115 (0,36) attstattarget #313739 #96E3A4 3116 3117 (0,36) attlen #313739 #A8A7C1 3118 3119 (0,36) attnum #313739 #9D9AAF 3120 3123 (0,36) attndims #313739 #A4B7A1 3124 3127 (0,36) attcacheoff #313739 #E8CFDC 3128 3131 (0,36) atttypmod #313739 #A4C5BB 3132 3132 (0,36) attbyval #313739 #B3D1D9 3133 3133 (0,36) attstorage #313739 #9CAFDB 3134 3134 (0,36) attalign #313739 #DEBACA 3135 3135 (0,36) attnotnull #313739 #BD96DE 3136 3136 (0,36) atthasdef #313739 #CAA5AC 3137 3137 (0,36) atthasmissing #313739 #EFE998 3138 3138 (0,36) attidentity #313739 #9DADB4 3139 3139 (0,36) attisdropped #313739 #C7C5D5 3140 3140 (0,36) attislocal #313739 #BCD4D5 3144 3147 (0,36) attinhcount #313739 #E9CCB8 3148 3151 (0,36) attcollation #313739 #BAA3C9 2864 2867 (0,37) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2868 2871 (0,37) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2872 2875 (0,37) t_cid #313739 #912C21 2876 2877 (0,37) t_ctid->bi_hi #2980B9 #3498DB 2878 2879 (0,37) t_ctid->bi_lo #2980B9 #3498DB 2880 2881 (0,37) t_ctid->offsetNumber #3498DB #2980B9 2882 2883 (0,37) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2884 2885 (0,37) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2886 2886 (0,37) t_hoff #313739 #E9E850 2887 2889 (0,37) t_bits #313739 #F1C40F 2896 2899 (0,37) attrelid #313739 #CFCBCC 2900 2963 (0,37) attname #313739 #D6AFDE 2964 2967 (0,37) atttypid #313739 #B797B8 2968 2971 (0,37) attstattarget #313739 #96E3A4 2972 2973 (0,37) attlen #313739 #A8A7C1 2974 2975 (0,37) attnum #313739 #9D9AAF 2976 2979 (0,37) attndims #313739 #A4B7A1 2980 2983 (0,37) attcacheoff #313739 #E8CFDC 2984 2987 (0,37) atttypmod #313739 #A4C5BB 2988 2988 (0,37) attbyval #313739 #B3D1D9 2989 2989 (0,37) attstorage #313739 #9CAFDB 2990 2990 (0,37) attalign #313739 #DEBACA 2991 2991 (0,37) attnotnull #313739 #BD96DE 2992 2992 (0,37) atthasdef #313739 #CAA5AC 2993 2993 (0,37) atthasmissing #313739 #EFE998 2994 2994 (0,37) attidentity #313739 #9DADB4 2995 2995 (0,37) attisdropped #313739 #C7C5D5 2996 2996 (0,37) attislocal #313739 #BCD4D5 3000 3003 (0,37) attinhcount #313739 #E9CCB8 3004 3007 (0,37) attcollation #313739 #BAA3C9 2720 2723 (0,38) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2724 2727 (0,38) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2728 2731 (0,38) t_cid #313739 #912C21 2732 2733 (0,38) t_ctid->bi_hi #2980B9 #3498DB 2734 2735 (0,38) t_ctid->bi_lo #2980B9 #3498DB 2736 2737 (0,38) t_ctid->offsetNumber #3498DB #2980B9 2738 2739 (0,38) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2740 2741 (0,38) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2742 2742 (0,38) t_hoff #313739 #E9E850 2743 2745 (0,38) t_bits #313739 #F1C40F 2752 2755 (0,38) attrelid #313739 #CFCBCC 2756 2819 (0,38) attname #313739 #D6AFDE 2820 2823 (0,38) atttypid #313739 #B797B8 2824 2827 (0,38) attstattarget #313739 #96E3A4 2828 2829 (0,38) attlen #313739 #A8A7C1 2830 2831 (0,38) attnum #313739 #9D9AAF 2832 2835 (0,38) attndims #313739 #A4B7A1 2836 2839 (0,38) attcacheoff #313739 #E8CFDC 2840 2843 (0,38) atttypmod #313739 #A4C5BB 2844 2844 (0,38) attbyval #313739 #B3D1D9 2845 2845 (0,38) attstorage #313739 #9CAFDB 2846 2846 (0,38) attalign #313739 #DEBACA 2847 2847 (0,38) attnotnull #313739 #BD96DE 2848 2848 (0,38) atthasdef #313739 #CAA5AC 2849 2849 (0,38) atthasmissing #313739 #EFE998 2850 2850 (0,38) attidentity #313739 #9DADB4 2851 2851 (0,38) attisdropped #313739 #C7C5D5 2852 2852 (0,38) attislocal #313739 #BCD4D5 2856 2859 (0,38) attinhcount #313739 #E9CCB8 2860 2863 (0,38) attcollation #313739 #BAA3C9 2576 2579 (0,39) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2580 2583 (0,39) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2584 2587 (0,39) t_cid #313739 #912C21 2588 2589 (0,39) t_ctid->bi_hi #2980B9 #3498DB 2590 2591 (0,39) t_ctid->bi_lo #2980B9 #3498DB 2592 2593 (0,39) t_ctid->offsetNumber #3498DB #2980B9 2594 2595 (0,39) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2596 2597 (0,39) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2598 2598 (0,39) t_hoff #313739 #E9E850 2599 2601 (0,39) t_bits #313739 #F1C40F 2608 2611 (0,39) attrelid #313739 #CFCBCC 2612 2675 (0,39) attname #313739 #D6AFDE 2676 2679 (0,39) atttypid #313739 #B797B8 2680 2683 (0,39) attstattarget #313739 #96E3A4 2684 2685 (0,39) attlen #313739 #A8A7C1 2686 2687 (0,39) attnum #313739 #9D9AAF 2688 2691 (0,39) attndims #313739 #A4B7A1 2692 2695 (0,39) attcacheoff #313739 #E8CFDC 2696 2699 (0,39) atttypmod #313739 #A4C5BB 2700 2700 (0,39) attbyval #313739 #B3D1D9 2701 2701 (0,39) attstorage #313739 #9CAFDB 2702 2702 (0,39) attalign #313739 #DEBACA 2703 2703 (0,39) attnotnull #313739 #BD96DE 2704 2704 (0,39) atthasdef #313739 #CAA5AC 2705 2705 (0,39) atthasmissing #313739 #EFE998 2706 2706 (0,39) attidentity #313739 #9DADB4 2707 2707 (0,39) attisdropped #313739 #C7C5D5 2708 2708 (0,39) attislocal #313739 #BCD4D5 2712 2715 (0,39) attinhcount #313739 #E9CCB8 2716 2719 (0,39) attcollation #313739 #BAA3C9 2432 2435 (0,40) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2436 2439 (0,40) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2440 2443 (0,40) t_cid #313739 #912C21 2444 2445 (0,40) t_ctid->bi_hi #2980B9 #3498DB 2446 2447 (0,40) t_ctid->bi_lo #2980B9 #3498DB 2448 2449 (0,40) t_ctid->offsetNumber #3498DB #2980B9 2450 2451 (0,40) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2452 2453 (0,40) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2454 2454 (0,40) t_hoff #313739 #E9E850 2455 2457 (0,40) t_bits #313739 #F1C40F 2464 2467 (0,40) attrelid #313739 #CFCBCC 2468 2531 (0,40) attname #313739 #D6AFDE 2532 2535 (0,40) atttypid #313739 #B797B8 2536 2539 (0,40) attstattarget #313739 #96E3A4 2540 2541 (0,40) attlen #313739 #A8A7C1 2542 2543 (0,40) attnum #313739 #9D9AAF 2544 2547 (0,40) attndims #313739 #A4B7A1 2548 2551 (0,40) attcacheoff #313739 #E8CFDC 2552 2555 (0,40) atttypmod #313739 #A4C5BB 2556 2556 (0,40) attbyval #313739 #B3D1D9 2557 2557 (0,40) attstorage #313739 #9CAFDB 2558 2558 (0,40) attalign #313739 #DEBACA 2559 2559 (0,40) attnotnull #313739 #BD96DE 2560 2560 (0,40) atthasdef #313739 #CAA5AC 2561 2561 (0,40) atthasmissing #313739 #EFE998 2562 2562 (0,40) attidentity #313739 #9DADB4 2563 2563 (0,40) attisdropped #313739 #C7C5D5 2564 2564 (0,40) attislocal #313739 #BCD4D5 2568 2571 (0,40) attinhcount #313739 #E9CCB8 2572 2575 (0,40) attcollation #313739 #BAA3C9 2288 2291 (0,41) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2292 2295 (0,41) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2296 2299 (0,41) t_cid #313739 #912C21 2300 2301 (0,41) t_ctid->bi_hi #2980B9 #3498DB 2302 2303 (0,41) t_ctid->bi_lo #2980B9 #3498DB 2304 2305 (0,41) t_ctid->offsetNumber #3498DB #2980B9 2306 2307 (0,41) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2308 2309 (0,41) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2310 2310 (0,41) t_hoff #313739 #E9E850 2311 2313 (0,41) t_bits #313739 #F1C40F 2320 2323 (0,41) attrelid #313739 #CFCBCC 2324 2387 (0,41) attname #313739 #D6AFDE 2388 2391 (0,41) atttypid #313739 #B797B8 2392 2395 (0,41) attstattarget #313739 #96E3A4 2396 2397 (0,41) attlen #313739 #A8A7C1 2398 2399 (0,41) attnum #313739 #9D9AAF 2400 2403 (0,41) attndims #313739 #A4B7A1 2404 2407 (0,41) attcacheoff #313739 #E8CFDC 2408 2411 (0,41) atttypmod #313739 #A4C5BB 2412 2412 (0,41) attbyval #313739 #B3D1D9 2413 2413 (0,41) attstorage #313739 #9CAFDB 2414 2414 (0,41) attalign #313739 #DEBACA 2415 2415 (0,41) attnotnull #313739 #BD96DE 2416 2416 (0,41) atthasdef #313739 #CAA5AC 2417 2417 (0,41) atthasmissing #313739 #EFE998 2418 2418 (0,41) attidentity #313739 #9DADB4 2419 2419 (0,41) attisdropped #313739 #C7C5D5 2420 2420 (0,41) attislocal #313739 #BCD4D5 2424 2427 (0,41) attinhcount #313739 #E9CCB8 2428 2431 (0,41) attcollation #313739 #BAA3C9 2144 2147 (0,42) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2148 2151 (0,42) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2152 2155 (0,42) t_cid #313739 #912C21 2156 2157 (0,42) t_ctid->bi_hi #2980B9 #3498DB 2158 2159 (0,42) t_ctid->bi_lo #2980B9 #3498DB 2160 2161 (0,42) t_ctid->offsetNumber #3498DB #2980B9 2162 2163 (0,42) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2164 2165 (0,42) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2166 2166 (0,42) t_hoff #313739 #E9E850 2167 2169 (0,42) t_bits #313739 #F1C40F 2176 2179 (0,42) attrelid #313739 #CFCBCC 2180 2243 (0,42) attname #313739 #D6AFDE 2244 2247 (0,42) atttypid #313739 #B797B8 2248 2251 (0,42) attstattarget #313739 #96E3A4 2252 2253 (0,42) attlen #313739 #A8A7C1 2254 2255 (0,42) attnum #313739 #9D9AAF 2256 2259 (0,42) attndims #313739 #A4B7A1 2260 2263 (0,42) attcacheoff #313739 #E8CFDC 2264 2267 (0,42) atttypmod #313739 #A4C5BB 2268 2268 (0,42) attbyval #313739 #B3D1D9 2269 2269 (0,42) attstorage #313739 #9CAFDB 2270 2270 (0,42) attalign #313739 #DEBACA 2271 2271 (0,42) attnotnull #313739 #BD96DE 2272 2272 (0,42) atthasdef #313739 #CAA5AC 2273 2273 (0,42) atthasmissing #313739 #EFE998 2274 2274 (0,42) attidentity #313739 #9DADB4 2275 2275 (0,42) attisdropped #313739 #C7C5D5 2276 2276 (0,42) attislocal #313739 #BCD4D5 2280 2283 (0,42) attinhcount #313739 #E9CCB8 2284 2287 (0,42) attcollation #313739 #BAA3C9 2000 2003 (0,43) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2004 2007 (0,43) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2008 2011 (0,43) t_cid #313739 #912C21 2012 2013 (0,43) t_ctid->bi_hi #2980B9 #3498DB 2014 2015 (0,43) t_ctid->bi_lo #2980B9 #3498DB 2016 2017 (0,43) t_ctid->offsetNumber #3498DB #2980B9 2018 2019 (0,43) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2020 2021 (0,43) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2022 2022 (0,43) t_hoff #313739 #E9E850 2023 2025 (0,43) t_bits #313739 #F1C40F 2032 2035 (0,43) attrelid #313739 #CFCBCC 2036 2099 (0,43) attname #313739 #D6AFDE 2100 2103 (0,43) atttypid #313739 #B797B8 2104 2107 (0,43) attstattarget #313739 #96E3A4 2108 2109 (0,43) attlen #313739 #A8A7C1 2110 2111 (0,43) attnum #313739 #9D9AAF 2112 2115 (0,43) attndims #313739 #A4B7A1 2116 2119 (0,43) attcacheoff #313739 #E8CFDC 2120 2123 (0,43) atttypmod #313739 #A4C5BB 2124 2124 (0,43) attbyval #313739 #B3D1D9 2125 2125 (0,43) attstorage #313739 #9CAFDB 2126 2126 (0,43) attalign #313739 #DEBACA 2127 2127 (0,43) attnotnull #313739 #BD96DE 2128 2128 (0,43) atthasdef #313739 #CAA5AC 2129 2129 (0,43) atthasmissing #313739 #EFE998 2130 2130 (0,43) attidentity #313739 #9DADB4 2131 2131 (0,43) attisdropped #313739 #C7C5D5 2132 2132 (0,43) attislocal #313739 #BCD4D5 2136 2139 (0,43) attinhcount #313739 #E9CCB8 2140 2143 (0,43) attcollation #313739 #BAA3C9 1856 1859 (0,44) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1860 1863 (0,44) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1864 1867 (0,44) t_cid #313739 #912C21 1868 1869 (0,44) t_ctid->bi_hi #2980B9 #3498DB 1870 1871 (0,44) t_ctid->bi_lo #2980B9 #3498DB 1872 1873 (0,44) t_ctid->offsetNumber #3498DB #2980B9 1874 1875 (0,44) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1876 1877 (0,44) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1878 1878 (0,44) t_hoff #313739 #E9E850 1879 1881 (0,44) t_bits #313739 #F1C40F 1888 1891 (0,44) attrelid #313739 #CFCBCC 1892 1955 (0,44) attname #313739 #D6AFDE 1956 1959 (0,44) atttypid #313739 #B797B8 1960 1963 (0,44) attstattarget #313739 #96E3A4 1964 1965 (0,44) attlen #313739 #A8A7C1 1966 1967 (0,44) attnum #313739 #9D9AAF 1968 1971 (0,44) attndims #313739 #A4B7A1 1972 1975 (0,44) attcacheoff #313739 #E8CFDC 1976 1979 (0,44) atttypmod #313739 #A4C5BB 1980 1980 (0,44) attbyval #313739 #B3D1D9 1981 1981 (0,44) attstorage #313739 #9CAFDB 1982 1982 (0,44) attalign #313739 #DEBACA 1983 1983 (0,44) attnotnull #313739 #BD96DE 1984 1984 (0,44) atthasdef #313739 #CAA5AC 1985 1985 (0,44) atthasmissing #313739 #EFE998 1986 1986 (0,44) attidentity #313739 #9DADB4 1987 1987 (0,44) attisdropped #313739 #C7C5D5 1988 1988 (0,44) attislocal #313739 #BCD4D5 1992 1995 (0,44) attinhcount #313739 #E9CCB8 1996 1999 (0,44) attcollation #313739 #BAA3C9 1712 1715 (0,45) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1716 1719 (0,45) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1720 1723 (0,45) t_cid #313739 #912C21 1724 1725 (0,45) t_ctid->bi_hi #2980B9 #3498DB 1726 1727 (0,45) t_ctid->bi_lo #2980B9 #3498DB 1728 1729 (0,45) t_ctid->offsetNumber #3498DB #2980B9 1730 1731 (0,45) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1732 1733 (0,45) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1734 1734 (0,45) t_hoff #313739 #E9E850 1735 1737 (0,45) t_bits #313739 #F1C40F 1744 1747 (0,45) attrelid #313739 #CFCBCC 1748 1811 (0,45) attname #313739 #D6AFDE 1812 1815 (0,45) atttypid #313739 #B797B8 1816 1819 (0,45) attstattarget #313739 #96E3A4 1820 1821 (0,45) attlen #313739 #A8A7C1 1822 1823 (0,45) attnum #313739 #9D9AAF 1824 1827 (0,45) attndims #313739 #A4B7A1 1828 1831 (0,45) attcacheoff #313739 #E8CFDC 1832 1835 (0,45) atttypmod #313739 #A4C5BB 1836 1836 (0,45) attbyval #313739 #B3D1D9 1837 1837 (0,45) attstorage #313739 #9CAFDB 1838 1838 (0,45) attalign #313739 #DEBACA 1839 1839 (0,45) attnotnull #313739 #BD96DE 1840 1840 (0,45) atthasdef #313739 #CAA5AC 1841 1841 (0,45) atthasmissing #313739 #EFE998 1842 1842 (0,45) attidentity #313739 #9DADB4 1843 1843 (0,45) attisdropped #313739 #C7C5D5 1844 1844 (0,45) attislocal #313739 #BCD4D5 1848 1851 (0,45) attinhcount #313739 #E9CCB8 1852 1855 (0,45) attcollation #313739 #BAA3C9 1568 1571 (0,46) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1572 1575 (0,46) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1576 1579 (0,46) t_cid #313739 #912C21 1580 1581 (0,46) t_ctid->bi_hi #2980B9 #3498DB 1582 1583 (0,46) t_ctid->bi_lo #2980B9 #3498DB 1584 1585 (0,46) t_ctid->offsetNumber #3498DB #2980B9 1586 1587 (0,46) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1588 1589 (0,46) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1590 1590 (0,46) t_hoff #313739 #E9E850 1591 1593 (0,46) t_bits #313739 #F1C40F 1600 1603 (0,46) attrelid #313739 #CFCBCC 1604 1667 (0,46) attname #313739 #D6AFDE 1668 1671 (0,46) atttypid #313739 #B797B8 1672 1675 (0,46) attstattarget #313739 #96E3A4 1676 1677 (0,46) attlen #313739 #A8A7C1 1678 1679 (0,46) attnum #313739 #9D9AAF 1680 1683 (0,46) attndims #313739 #A4B7A1 1684 1687 (0,46) attcacheoff #313739 #E8CFDC 1688 1691 (0,46) atttypmod #313739 #A4C5BB 1692 1692 (0,46) attbyval #313739 #B3D1D9 1693 1693 (0,46) attstorage #313739 #9CAFDB 1694 1694 (0,46) attalign #313739 #DEBACA 1695 1695 (0,46) attnotnull #313739 #BD96DE 1696 1696 (0,46) atthasdef #313739 #CAA5AC 1697 1697 (0,46) atthasmissing #313739 #EFE998 1698 1698 (0,46) attidentity #313739 #9DADB4 1699 1699 (0,46) attisdropped #313739 #C7C5D5 1700 1700 (0,46) attislocal #313739 #BCD4D5 1704 1707 (0,46) attinhcount #313739 #E9CCB8 1708 1711 (0,46) attcollation #313739 #BAA3C9 1424 1427 (0,47) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1428 1431 (0,47) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1432 1435 (0,47) t_cid #313739 #912C21 1436 1437 (0,47) t_ctid->bi_hi #2980B9 #3498DB 1438 1439 (0,47) t_ctid->bi_lo #2980B9 #3498DB 1440 1441 (0,47) t_ctid->offsetNumber #3498DB #2980B9 1442 1443 (0,47) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1444 1445 (0,47) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1446 1446 (0,47) t_hoff #313739 #E9E850 1447 1449 (0,47) t_bits #313739 #F1C40F 1456 1459 (0,47) attrelid #313739 #CFCBCC 1460 1523 (0,47) attname #313739 #D6AFDE 1524 1527 (0,47) atttypid #313739 #B797B8 1528 1531 (0,47) attstattarget #313739 #96E3A4 1532 1533 (0,47) attlen #313739 #A8A7C1 1534 1535 (0,47) attnum #313739 #9D9AAF 1536 1539 (0,47) attndims #313739 #A4B7A1 1540 1543 (0,47) attcacheoff #313739 #E8CFDC 1544 1547 (0,47) atttypmod #313739 #A4C5BB 1548 1548 (0,47) attbyval #313739 #B3D1D9 1549 1549 (0,47) attstorage #313739 #9CAFDB 1550 1550 (0,47) attalign #313739 #DEBACA 1551 1551 (0,47) attnotnull #313739 #BD96DE 1552 1552 (0,47) atthasdef #313739 #CAA5AC 1553 1553 (0,47) atthasmissing #313739 #EFE998 1554 1554 (0,47) attidentity #313739 #9DADB4 1555 1555 (0,47) attisdropped #313739 #C7C5D5 1556 1556 (0,47) attislocal #313739 #BCD4D5 1560 1563 (0,47) attinhcount #313739 #E9CCB8 1564 1567 (0,47) attcollation #313739 #BAA3C9 1280 1283 (0,48) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1284 1287 (0,48) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1288 1291 (0,48) t_cid #313739 #912C21 1292 1293 (0,48) t_ctid->bi_hi #2980B9 #3498DB 1294 1295 (0,48) t_ctid->bi_lo #2980B9 #3498DB 1296 1297 (0,48) t_ctid->offsetNumber #3498DB #2980B9 1298 1299 (0,48) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1300 1301 (0,48) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1302 1302 (0,48) t_hoff #313739 #E9E850 1303 1305 (0,48) t_bits #313739 #F1C40F 1312 1315 (0,48) attrelid #313739 #CFCBCC 1316 1379 (0,48) attname #313739 #D6AFDE 1380 1383 (0,48) atttypid #313739 #B797B8 1384 1387 (0,48) attstattarget #313739 #96E3A4 1388 1389 (0,48) attlen #313739 #A8A7C1 1390 1391 (0,48) attnum #313739 #9D9AAF 1392 1395 (0,48) attndims #313739 #A4B7A1 1396 1399 (0,48) attcacheoff #313739 #E8CFDC 1400 1403 (0,48) atttypmod #313739 #A4C5BB 1404 1404 (0,48) attbyval #313739 #B3D1D9 1405 1405 (0,48) attstorage #313739 #9CAFDB 1406 1406 (0,48) attalign #313739 #DEBACA 1407 1407 (0,48) attnotnull #313739 #BD96DE 1408 1408 (0,48) atthasdef #313739 #CAA5AC 1409 1409 (0,48) atthasmissing #313739 #EFE998 1410 1410 (0,48) attidentity #313739 #9DADB4 1411 1411 (0,48) attisdropped #313739 #C7C5D5 1412 1412 (0,48) attislocal #313739 #BCD4D5 1416 1419 (0,48) attinhcount #313739 #E9CCB8 1420 1423 (0,48) attcollation #313739 #BAA3C9 1136 1139 (0,49) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1140 1143 (0,49) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1144 1147 (0,49) t_cid #313739 #912C21 1148 1149 (0,49) t_ctid->bi_hi #2980B9 #3498DB 1150 1151 (0,49) t_ctid->bi_lo #2980B9 #3498DB 1152 1153 (0,49) t_ctid->offsetNumber #3498DB #2980B9 1154 1155 (0,49) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1156 1157 (0,49) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1158 1158 (0,49) t_hoff #313739 #E9E850 1159 1161 (0,49) t_bits #313739 #F1C40F 1168 1171 (0,49) attrelid #313739 #CFCBCC 1172 1235 (0,49) attname #313739 #D6AFDE 1236 1239 (0,49) atttypid #313739 #B797B8 1240 1243 (0,49) attstattarget #313739 #96E3A4 1244 1245 (0,49) attlen #313739 #A8A7C1 1246 1247 (0,49) attnum #313739 #9D9AAF 1248 1251 (0,49) attndims #313739 #A4B7A1 1252 1255 (0,49) attcacheoff #313739 #E8CFDC 1256 1259 (0,49) atttypmod #313739 #A4C5BB 1260 1260 (0,49) attbyval #313739 #B3D1D9 1261 1261 (0,49) attstorage #313739 #9CAFDB 1262 1262 (0,49) attalign #313739 #DEBACA 1263 1263 (0,49) attnotnull #313739 #BD96DE 1264 1264 (0,49) atthasdef #313739 #CAA5AC 1265 1265 (0,49) atthasmissing #313739 #EFE998 1266 1266 (0,49) attidentity #313739 #9DADB4 1267 1267 (0,49) attisdropped #313739 #C7C5D5 1268 1268 (0,49) attislocal #313739 #BCD4D5 1272 1275 (0,49) attinhcount #313739 #E9CCB8 1276 1279 (0,49) attcollation #313739 #BAA3C9 992 995 (0,50) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 996 999 (0,50) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1000 1003 (0,50) t_cid #313739 #912C21 1004 1005 (0,50) t_ctid->bi_hi #2980B9 #3498DB 1006 1007 (0,50) t_ctid->bi_lo #2980B9 #3498DB 1008 1009 (0,50) t_ctid->offsetNumber #3498DB #2980B9 1010 1011 (0,50) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1012 1013 (0,50) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1014 1014 (0,50) t_hoff #313739 #E9E850 1015 1017 (0,50) t_bits #313739 #F1C40F 1024 1027 (0,50) attrelid #313739 #CFCBCC 1028 1091 (0,50) attname #313739 #D6AFDE 1092 1095 (0,50) atttypid #313739 #B797B8 1096 1099 (0,50) attstattarget #313739 #96E3A4 1100 1101 (0,50) attlen #313739 #A8A7C1 1102 1103 (0,50) attnum #313739 #9D9AAF 1104 1107 (0,50) attndims #313739 #A4B7A1 1108 1111 (0,50) attcacheoff #313739 #E8CFDC 1112 1115 (0,50) atttypmod #313739 #A4C5BB 1116 1116 (0,50) attbyval #313739 #B3D1D9 1117 1117 (0,50) attstorage #313739 #9CAFDB 1118 1118 (0,50) attalign #313739 #DEBACA 1119 1119 (0,50) attnotnull #313739 #BD96DE 1120 1120 (0,50) atthasdef #313739 #CAA5AC 1121 1121 (0,50) atthasmissing #313739 #EFE998 1122 1122 (0,50) attidentity #313739 #9DADB4 1123 1123 (0,50) attisdropped #313739 #C7C5D5 1124 1124 (0,50) attislocal #313739 #BCD4D5 1128 1131 (0,50) attinhcount #313739 #E9CCB8 1132 1135 (0,50) attcollation #313739 #BAA3C9 848 851 (0,51) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 852 855 (0,51) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 856 859 (0,51) t_cid #313739 #912C21 860 861 (0,51) t_ctid->bi_hi #2980B9 #3498DB 862 863 (0,51) t_ctid->bi_lo #2980B9 #3498DB 864 865 (0,51) t_ctid->offsetNumber #3498DB #2980B9 866 867 (0,51) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 868 869 (0,51) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 870 870 (0,51) t_hoff #313739 #E9E850 871 873 (0,51) t_bits #313739 #F1C40F 880 883 (0,51) attrelid #313739 #CFCBCC 884 947 (0,51) attname #313739 #D6AFDE 948 951 (0,51) atttypid #313739 #B797B8 952 955 (0,51) attstattarget #313739 #96E3A4 956 957 (0,51) attlen #313739 #A8A7C1 958 959 (0,51) attnum #313739 #9D9AAF 960 963 (0,51) attndims #313739 #A4B7A1 964 967 (0,51) attcacheoff #313739 #E8CFDC 968 971 (0,51) atttypmod #313739 #A4C5BB 972 972 (0,51) attbyval #313739 #B3D1D9 973 973 (0,51) attstorage #313739 #9CAFDB 974 974 (0,51) attalign #313739 #DEBACA 975 975 (0,51) attnotnull #313739 #BD96DE 976 976 (0,51) atthasdef #313739 #CAA5AC 977 977 (0,51) atthasmissing #313739 #EFE998 978 978 (0,51) attidentity #313739 #9DADB4 979 979 (0,51) attisdropped #313739 #C7C5D5 980 980 (0,51) attislocal #313739 #BCD4D5 984 987 (0,51) attinhcount #313739 #E9CCB8 988 991 (0,51) attcollation #313739 #BAA3C9 704 707 (0,52) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 708 711 (0,52) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 712 715 (0,52) t_cid #313739 #912C21 716 717 (0,52) t_ctid->bi_hi #2980B9 #3498DB 718 719 (0,52) t_ctid->bi_lo #2980B9 #3498DB 720 721 (0,52) t_ctid->offsetNumber #3498DB #2980B9 722 723 (0,52) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 724 725 (0,52) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 726 726 (0,52) t_hoff #313739 #E9E850 727 729 (0,52) t_bits #313739 #F1C40F 736 739 (0,52) attrelid #313739 #CFCBCC 740 803 (0,52) attname #313739 #D6AFDE 804 807 (0,52) atttypid #313739 #B797B8 808 811 (0,52) attstattarget #313739 #96E3A4 812 813 (0,52) attlen #313739 #A8A7C1 814 815 (0,52) attnum #313739 #9D9AAF 816 819 (0,52) attndims #313739 #A4B7A1 820 823 (0,52) attcacheoff #313739 #E8CFDC 824 827 (0,52) atttypmod #313739 #A4C5BB 828 828 (0,52) attbyval #313739 #B3D1D9 829 829 (0,52) attstorage #313739 #9CAFDB 830 830 (0,52) attalign #313739 #DEBACA 831 831 (0,52) attnotnull #313739 #BD96DE 832 832 (0,52) atthasdef #313739 #CAA5AC 833 833 (0,52) atthasmissing #313739 #EFE998 834 834 (0,52) attidentity #313739 #9DADB4 835 835 (0,52) attisdropped #313739 #C7C5D5 836 836 (0,52) attislocal #313739 #BCD4D5 840 843 (0,52) attinhcount #313739 #E9CCB8 844 847 (0,52) attcollation #313739 #BAA3C9 560 563 (0,53) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 564 567 (0,53) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 568 571 (0,53) t_cid #313739 #912C21 572 573 (0,53) t_ctid->bi_hi #2980B9 #3498DB 574 575 (0,53) t_ctid->bi_lo #2980B9 #3498DB 576 577 (0,53) t_ctid->offsetNumber #3498DB #2980B9 578 579 (0,53) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 580 581 (0,53) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 582 582 (0,53) t_hoff #313739 #E9E850 583 585 (0,53) t_bits #313739 #F1C40F 592 595 (0,53) attrelid #313739 #CFCBCC 596 659 (0,53) attname #313739 #D6AFDE 660 663 (0,53) atttypid #313739 #B797B8 664 667 (0,53) attstattarget #313739 #96E3A4 668 669 (0,53) attlen #313739 #A8A7C1 670 671 (0,53) attnum #313739 #9D9AAF 672 675 (0,53) attndims #313739 #A4B7A1 676 679 (0,53) attcacheoff #313739 #E8CFDC 680 683 (0,53) atttypmod #313739 #A4C5BB 684 684 (0,53) attbyval #313739 #B3D1D9 685 685 (0,53) attstorage #313739 #9CAFDB 686 686 (0,53) attalign #313739 #DEBACA 687 687 (0,53) attnotnull #313739 #BD96DE 688 688 (0,53) atthasdef #313739 #CAA5AC 689 689 (0,53) atthasmissing #313739 #EFE998 690 690 (0,53) attidentity #313739 #9DADB4 691 691 (0,53) attisdropped #313739 #C7C5D5 692 692 (0,53) attislocal #313739 #BCD4D5 696 699 (0,53) attinhcount #313739 #E9CCB8 700 703 (0,53) attcollation #313739 #BAA3C9 416 419 (0,54) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 420 423 (0,54) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 424 427 (0,54) t_cid #313739 #912C21 428 429 (0,54) t_ctid->bi_hi #2980B9 #3498DB 430 431 (0,54) t_ctid->bi_lo #2980B9 #3498DB 432 433 (0,54) t_ctid->offsetNumber #3498DB #2980B9 434 435 (0,54) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 436 437 (0,54) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 438 438 (0,54) t_hoff #313739 #E9E850 439 441 (0,54) t_bits #313739 #F1C40F 448 451 (0,54) attrelid #313739 #CFCBCC 452 515 (0,54) attname #313739 #D6AFDE 516 519 (0,54) atttypid #313739 #B797B8 520 523 (0,54) attstattarget #313739 #96E3A4 524 525 (0,54) attlen #313739 #A8A7C1 526 527 (0,54) attnum #313739 #9D9AAF 528 531 (0,54) attndims #313739 #A4B7A1 532 535 (0,54) attcacheoff #313739 #E8CFDC 536 539 (0,54) atttypmod #313739 #A4C5BB 540 540 (0,54) attbyval #313739 #B3D1D9 541 541 (0,54) attstorage #313739 #9CAFDB 542 542 (0,54) attalign #313739 #DEBACA 543 543 (0,54) attnotnull #313739 #BD96DE 544 544 (0,54) atthasdef #313739 #CAA5AC 545 545 (0,54) atthasmissing #313739 #EFE998 546 546 (0,54) attidentity #313739 #9DADB4 547 547 (0,54) attisdropped #313739 #C7C5D5 548 548 (0,54) attislocal #313739 #BCD4D5 552 555 (0,54) attinhcount #313739 #E9CCB8 556 559 (0,54) attcollation #313739 #BAA3C9 272 275 (0,55) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 276 279 (0,55) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 280 283 (0,55) t_cid #313739 #912C21 284 285 (0,55) t_ctid->bi_hi #2980B9 #3498DB 286 287 (0,55) t_ctid->bi_lo #2980B9 #3498DB 288 289 (0,55) t_ctid->offsetNumber #3498DB #2980B9 290 291 (0,55) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 292 293 (0,55) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 294 294 (0,55) t_hoff #313739 #E9E850 295 297 (0,55) t_bits #313739 #F1C40F 304 307 (0,55) attrelid #313739 #CFCBCC 308 371 (0,55) attname #313739 #D6AFDE 372 375 (0,55) atttypid #313739 #B797B8 376 379 (0,55) attstattarget #313739 #96E3A4 380 381 (0,55) attlen #313739 #A8A7C1 382 383 (0,55) attnum #313739 #9D9AAF 384 387 (0,55) attndims #313739 #A4B7A1 388 391 (0,55) attcacheoff #313739 #E8CFDC 392 395 (0,55) atttypmod #313739 #A4C5BB 396 396 (0,55) attbyval #313739 #B3D1D9 397 397 (0,55) attstorage #313739 #9CAFDB 398 398 (0,55) attalign #313739 #DEBACA 399 399 (0,55) attnotnull #313739 #BD96DE 400 400 (0,55) atthasdef #313739 #CAA5AC 401 401 (0,55) atthasmissing #313739 #EFE998 402 402 (0,55) attidentity #313739 #9DADB4 403 403 (0,55) attisdropped #313739 #C7C5D5 404 404 (0,55) attislocal #313739 #BCD4D5 408 411 (0,55) attinhcount #313739 #E9CCB8 412 415 (0,55) attcollation #313739 #BAA3C9 ================================================ FILE: t/expected_attributes_idx.tags ================================================ 0 7 block 131072 (level 0) LSN: 0/01060CD0 #313739 #E9E850 8 9 block 131072 (level 0) checksum #313739 #16A085 10 11 block 131072 (level 0) pd_flags - #313739 #F1C40F 12 13 block 131072 (level 0) pd_lower #313739 #E96950 14 15 block 131072 (level 0) pd_upper #313739 #E96950 16 17 block 131072 (level 0) pd_special #313739 #50E964 18 19 block 131072 (level 0) pd_pagesize_version #313739 #97333D 20 23 block 131072 (level 0) pd_prune_xid #313739 #E74C3C 24 27 (131072,1) lp_len: 24, lp_off: 1848, lp_flags: LP_NORMAL #313739 #3498DB 28 31 (131072,2) lp_len: 16, lp_off: 8160, lp_flags: LP_NORMAL #313739 #3498DB 32 35 (131072,3) lp_len: 16, lp_off: 8144, lp_flags: LP_NORMAL #313739 #3498DB 36 39 (131072,4) lp_len: 16, lp_off: 8128, lp_flags: LP_NORMAL #313739 #3498DB 40 43 (131072,5) lp_len: 24, lp_off: 8104, lp_flags: LP_NORMAL #313739 #3498DB 44 47 (131072,6) lp_len: 24, lp_off: 8080, lp_flags: LP_NORMAL #313739 #3498DB 48 51 (131072,7) lp_len: 24, lp_off: 8056, lp_flags: LP_NORMAL #313739 #3498DB 52 55 (131072,8) lp_len: 24, lp_off: 8032, lp_flags: LP_NORMAL #313739 #3498DB 56 59 (131072,9) lp_len: 24, lp_off: 8008, lp_flags: LP_NORMAL #313739 #3498DB 60 63 (131072,10) lp_len: 24, lp_off: 7984, lp_flags: LP_NORMAL #313739 #3498DB 64 67 (131072,11) lp_len: 24, lp_off: 7960, lp_flags: LP_NORMAL #313739 #3498DB 68 71 (131072,12) lp_len: 24, lp_off: 7936, lp_flags: LP_NORMAL #313739 #3498DB 72 75 (131072,13) lp_len: 32, lp_off: 7904, lp_flags: LP_NORMAL #313739 #3498DB 76 79 (131072,14) lp_len: 32, lp_off: 7872, lp_flags: LP_NORMAL #313739 #3498DB 80 83 (131072,15) lp_len: 24, lp_off: 7848, lp_flags: LP_NORMAL #313739 #3498DB 84 87 (131072,16) lp_len: 16, lp_off: 7832, lp_flags: LP_NORMAL #313739 #3498DB 88 91 (131072,17) lp_len: 24, lp_off: 7808, lp_flags: LP_NORMAL #313739 #3498DB 92 95 (131072,18) lp_len: 24, lp_off: 7784, lp_flags: LP_NORMAL #313739 #3498DB 96 99 (131072,19) lp_len: 24, lp_off: 7760, lp_flags: LP_NORMAL #313739 #3498DB 100 103 (131072,20) lp_len: 32, lp_off: 7728, lp_flags: LP_NORMAL #313739 #3498DB 104 107 (131072,21) lp_len: 32, lp_off: 7696, lp_flags: LP_NORMAL #313739 #3498DB 108 111 (131072,22) lp_len: 24, lp_off: 7672, lp_flags: LP_NORMAL #313739 #3498DB 112 115 (131072,23) lp_len: 16, lp_off: 7656, lp_flags: LP_NORMAL #313739 #3498DB 116 119 (131072,24) lp_len: 24, lp_off: 7632, lp_flags: LP_NORMAL #313739 #3498DB 120 123 (131072,25) lp_len: 24, lp_off: 7608, lp_flags: LP_NORMAL #313739 #3498DB 124 127 (131072,26) lp_len: 24, lp_off: 7584, lp_flags: LP_NORMAL #313739 #3498DB 128 131 (131072,27) lp_len: 24, lp_off: 7560, lp_flags: LP_NORMAL #313739 #3498DB 132 135 (131072,28) lp_len: 24, lp_off: 7536, lp_flags: LP_NORMAL #313739 #3498DB 136 139 (131072,29) lp_len: 32, lp_off: 7504, lp_flags: LP_NORMAL #313739 #3498DB 140 143 (131072,30) lp_len: 24, lp_off: 7480, lp_flags: LP_NORMAL #313739 #3498DB 144 147 (131072,31) lp_len: 24, lp_off: 7456, lp_flags: LP_NORMAL #313739 #3498DB 148 151 (131072,32) lp_len: 24, lp_off: 7432, lp_flags: LP_NORMAL #313739 #3498DB 152 155 (131072,33) lp_len: 24, lp_off: 7408, lp_flags: LP_NORMAL #313739 #3498DB 156 159 (131072,34) lp_len: 24, lp_off: 7384, lp_flags: LP_NORMAL #313739 #3498DB 160 163 (131072,35) lp_len: 32, lp_off: 7352, lp_flags: LP_NORMAL #313739 #3498DB 164 167 (131072,36) lp_len: 24, lp_off: 7328, lp_flags: LP_NORMAL #313739 #3498DB 168 171 (131072,37) lp_len: 24, lp_off: 7304, lp_flags: LP_NORMAL #313739 #3498DB 172 175 (131072,38) lp_len: 24, lp_off: 7280, lp_flags: LP_NORMAL #313739 #3498DB 176 179 (131072,39) lp_len: 24, lp_off: 7256, lp_flags: LP_NORMAL #313739 #3498DB 180 183 (131072,40) lp_len: 24, lp_off: 7232, lp_flags: LP_NORMAL #313739 #3498DB 184 187 (131072,41) lp_len: 24, lp_off: 7208, lp_flags: LP_NORMAL #313739 #3498DB 188 191 (131072,42) lp_len: 16, lp_off: 7192, lp_flags: LP_NORMAL #313739 #3498DB 192 195 (131072,43) lp_len: 24, lp_off: 7168, lp_flags: LP_NORMAL #313739 #3498DB 196 199 (131072,44) lp_len: 24, lp_off: 7144, lp_flags: LP_NORMAL #313739 #3498DB 200 203 (131072,45) lp_len: 24, lp_off: 7120, lp_flags: LP_NORMAL #313739 #3498DB 204 207 (131072,46) lp_len: 24, lp_off: 7096, lp_flags: LP_NORMAL #313739 #3498DB 208 211 (131072,47) lp_len: 24, lp_off: 7072, lp_flags: LP_NORMAL #313739 #3498DB 212 215 (131072,48) lp_len: 24, lp_off: 7048, lp_flags: LP_NORMAL #313739 #3498DB 216 219 (131072,49) lp_len: 24, lp_off: 7024, lp_flags: LP_NORMAL #313739 #3498DB 220 223 (131072,50) lp_len: 24, lp_off: 7000, lp_flags: LP_NORMAL #313739 #3498DB 224 227 (131072,51) lp_len: 24, lp_off: 6976, lp_flags: LP_NORMAL #313739 #3498DB 228 231 (131072,52) lp_len: 24, lp_off: 6952, lp_flags: LP_NORMAL #313739 #3498DB 232 235 (131072,53) lp_len: 24, lp_off: 6928, lp_flags: LP_NORMAL #313739 #3498DB 236 239 (131072,54) lp_len: 24, lp_off: 6904, lp_flags: LP_NORMAL #313739 #3498DB 240 243 (131072,55) lp_len: 24, lp_off: 6880, lp_flags: LP_NORMAL #313739 #3498DB 244 247 (131072,56) lp_len: 24, lp_off: 6856, lp_flags: LP_NORMAL #313739 #3498DB 248 251 (131072,57) lp_len: 24, lp_off: 6832, lp_flags: LP_NORMAL #313739 #3498DB 252 255 (131072,58) lp_len: 24, lp_off: 6808, lp_flags: LP_NORMAL #313739 #3498DB 256 259 (131072,59) lp_len: 24, lp_off: 6784, lp_flags: LP_NORMAL #313739 #3498DB 260 263 (131072,60) lp_len: 24, lp_off: 6760, lp_flags: LP_NORMAL #313739 #3498DB 264 267 (131072,61) lp_len: 24, lp_off: 6736, lp_flags: LP_NORMAL #313739 #3498DB 268 271 (131072,62) lp_len: 24, lp_off: 6712, lp_flags: LP_NORMAL #313739 #3498DB 272 275 (131072,63) lp_len: 24, lp_off: 6688, lp_flags: LP_NORMAL #313739 #3498DB 276 279 (131072,64) lp_len: 24, lp_off: 6664, lp_flags: LP_NORMAL #313739 #3498DB 280 283 (131072,65) lp_len: 24, lp_off: 6640, lp_flags: LP_NORMAL #313739 #3498DB 284 287 (131072,66) lp_len: 24, lp_off: 6616, lp_flags: LP_NORMAL #313739 #3498DB 288 291 (131072,67) lp_len: 24, lp_off: 6592, lp_flags: LP_NORMAL #313739 #3498DB 292 295 (131072,68) lp_len: 24, lp_off: 6568, lp_flags: LP_NORMAL #313739 #3498DB 296 299 (131072,69) lp_len: 24, lp_off: 6544, lp_flags: LP_NORMAL #313739 #3498DB 300 303 (131072,70) lp_len: 24, lp_off: 6520, lp_flags: LP_NORMAL #313739 #3498DB 304 307 (131072,71) lp_len: 24, lp_off: 6496, lp_flags: LP_NORMAL #313739 #3498DB 308 311 (131072,72) lp_len: 16, lp_off: 6480, lp_flags: LP_NORMAL #313739 #3498DB 312 315 (131072,73) lp_len: 24, lp_off: 6456, lp_flags: LP_NORMAL #313739 #3498DB 316 319 (131072,74) lp_len: 24, lp_off: 6432, lp_flags: LP_NORMAL #313739 #3498DB 320 323 (131072,75) lp_len: 24, lp_off: 6408, lp_flags: LP_NORMAL #313739 #3498DB 324 327 (131072,76) lp_len: 24, lp_off: 6384, lp_flags: LP_NORMAL #313739 #3498DB 328 331 (131072,77) lp_len: 24, lp_off: 6360, lp_flags: LP_NORMAL #313739 #3498DB 332 335 (131072,78) lp_len: 24, lp_off: 6336, lp_flags: LP_NORMAL #313739 #3498DB 336 339 (131072,79) lp_len: 24, lp_off: 6312, lp_flags: LP_NORMAL #313739 #3498DB 340 343 (131072,80) lp_len: 24, lp_off: 6288, lp_flags: LP_NORMAL #313739 #3498DB 344 347 (131072,81) lp_len: 32, lp_off: 6256, lp_flags: LP_NORMAL #313739 #3498DB 348 351 (131072,82) lp_len: 24, lp_off: 6232, lp_flags: LP_NORMAL #313739 #3498DB 352 355 (131072,83) lp_len: 32, lp_off: 6200, lp_flags: LP_NORMAL #313739 #3498DB 356 359 (131072,84) lp_len: 24, lp_off: 6176, lp_flags: LP_NORMAL #313739 #3498DB 360 363 (131072,85) lp_len: 24, lp_off: 6152, lp_flags: LP_NORMAL #313739 #3498DB 364 367 (131072,86) lp_len: 24, lp_off: 6128, lp_flags: LP_NORMAL #313739 #3498DB 368 371 (131072,87) lp_len: 32, lp_off: 6096, lp_flags: LP_NORMAL #313739 #3498DB 372 375 (131072,88) lp_len: 32, lp_off: 6064, lp_flags: LP_NORMAL #313739 #3498DB 376 379 (131072,89) lp_len: 24, lp_off: 6040, lp_flags: LP_NORMAL #313739 #3498DB 380 383 (131072,90) lp_len: 24, lp_off: 6016, lp_flags: LP_NORMAL #313739 #3498DB 384 387 (131072,91) lp_len: 24, lp_off: 5992, lp_flags: LP_NORMAL #313739 #3498DB 388 391 (131072,92) lp_len: 24, lp_off: 5968, lp_flags: LP_NORMAL #313739 #3498DB 392 395 (131072,93) lp_len: 32, lp_off: 5936, lp_flags: LP_NORMAL #313739 #3498DB 396 399 (131072,94) lp_len: 24, lp_off: 5912, lp_flags: LP_NORMAL #313739 #3498DB 400 403 (131072,95) lp_len: 24, lp_off: 5888, lp_flags: LP_NORMAL #313739 #3498DB 404 407 (131072,96) lp_len: 24, lp_off: 5864, lp_flags: LP_NORMAL #313739 #3498DB 408 411 (131072,97) lp_len: 24, lp_off: 5840, lp_flags: LP_NORMAL #313739 #3498DB 412 415 (131072,98) lp_len: 24, lp_off: 5816, lp_flags: LP_NORMAL #313739 #3498DB 416 419 (131072,99) lp_len: 24, lp_off: 5792, lp_flags: LP_NORMAL #313739 #3498DB 420 423 (131072,100) lp_len: 24, lp_off: 5768, lp_flags: LP_NORMAL #313739 #3498DB 424 427 (131072,101) lp_len: 24, lp_off: 5744, lp_flags: LP_NORMAL #313739 #3498DB 428 431 (131072,102) lp_len: 24, lp_off: 5720, lp_flags: LP_NORMAL #313739 #3498DB 432 435 (131072,103) lp_len: 24, lp_off: 5696, lp_flags: LP_NORMAL #313739 #3498DB 436 439 (131072,104) lp_len: 24, lp_off: 5672, lp_flags: LP_NORMAL #313739 #3498DB 440 443 (131072,105) lp_len: 24, lp_off: 5648, lp_flags: LP_NORMAL #313739 #3498DB 444 447 (131072,106) lp_len: 24, lp_off: 5624, lp_flags: LP_NORMAL #313739 #3498DB 448 451 (131072,107) lp_len: 24, lp_off: 5600, lp_flags: LP_NORMAL #313739 #3498DB 452 455 (131072,108) lp_len: 24, lp_off: 5576, lp_flags: LP_NORMAL #313739 #3498DB 456 459 (131072,109) lp_len: 24, lp_off: 5552, lp_flags: LP_NORMAL #313739 #3498DB 460 463 (131072,110) lp_len: 32, lp_off: 5520, lp_flags: LP_NORMAL #313739 #3498DB 464 467 (131072,111) lp_len: 32, lp_off: 5488, lp_flags: LP_NORMAL #313739 #3498DB 468 471 (131072,112) lp_len: 24, lp_off: 5464, lp_flags: LP_NORMAL #313739 #3498DB 472 475 (131072,113) lp_len: 32, lp_off: 5432, lp_flags: LP_NORMAL #313739 #3498DB 476 479 (131072,114) lp_len: 24, lp_off: 5408, lp_flags: LP_NORMAL #313739 #3498DB 480 483 (131072,115) lp_len: 24, lp_off: 5384, lp_flags: LP_NORMAL #313739 #3498DB 484 487 (131072,116) lp_len: 32, lp_off: 5352, lp_flags: LP_NORMAL #313739 #3498DB 488 491 (131072,117) lp_len: 24, lp_off: 5328, lp_flags: LP_NORMAL #313739 #3498DB 492 495 (131072,118) lp_len: 24, lp_off: 5304, lp_flags: LP_NORMAL #313739 #3498DB 496 499 (131072,119) lp_len: 32, lp_off: 5272, lp_flags: LP_NORMAL #313739 #3498DB 500 503 (131072,120) lp_len: 24, lp_off: 5248, lp_flags: LP_NORMAL #313739 #3498DB 504 507 (131072,121) lp_len: 24, lp_off: 5224, lp_flags: LP_NORMAL #313739 #3498DB 508 511 (131072,122) lp_len: 24, lp_off: 5200, lp_flags: LP_NORMAL #313739 #3498DB 512 515 (131072,123) lp_len: 24, lp_off: 5176, lp_flags: LP_NORMAL #313739 #3498DB 516 519 (131072,124) lp_len: 24, lp_off: 5152, lp_flags: LP_NORMAL #313739 #3498DB 520 523 (131072,125) lp_len: 24, lp_off: 5128, lp_flags: LP_NORMAL #313739 #3498DB 524 527 (131072,126) lp_len: 32, lp_off: 5096, lp_flags: LP_NORMAL #313739 #3498DB 528 531 (131072,127) lp_len: 24, lp_off: 5072, lp_flags: LP_NORMAL #313739 #3498DB 532 535 (131072,128) lp_len: 24, lp_off: 5048, lp_flags: LP_NORMAL #313739 #3498DB 536 539 (131072,129) lp_len: 24, lp_off: 5024, lp_flags: LP_NORMAL #313739 #3498DB 540 543 (131072,130) lp_len: 24, lp_off: 5000, lp_flags: LP_NORMAL #313739 #3498DB 544 547 (131072,131) lp_len: 24, lp_off: 4976, lp_flags: LP_NORMAL #313739 #3498DB 548 551 (131072,132) lp_len: 24, lp_off: 4952, lp_flags: LP_NORMAL #313739 #3498DB 552 555 (131072,133) lp_len: 24, lp_off: 4928, lp_flags: LP_NORMAL #313739 #3498DB 556 559 (131072,134) lp_len: 24, lp_off: 4904, lp_flags: LP_NORMAL #313739 #3498DB 560 563 (131072,135) lp_len: 24, lp_off: 4880, lp_flags: LP_NORMAL #313739 #3498DB 564 567 (131072,136) lp_len: 24, lp_off: 4856, lp_flags: LP_NORMAL #313739 #3498DB 568 571 (131072,137) lp_len: 24, lp_off: 4832, lp_flags: LP_NORMAL #313739 #3498DB 572 575 (131072,138) lp_len: 24, lp_off: 4808, lp_flags: LP_NORMAL #313739 #3498DB 576 579 (131072,139) lp_len: 16, lp_off: 4792, lp_flags: LP_NORMAL #313739 #3498DB 580 583 (131072,140) lp_len: 24, lp_off: 4768, lp_flags: LP_NORMAL #313739 #3498DB 584 587 (131072,141) lp_len: 32, lp_off: 4736, lp_flags: LP_NORMAL #313739 #3498DB 588 591 (131072,142) lp_len: 32, lp_off: 4704, lp_flags: LP_NORMAL #313739 #3498DB 592 595 (131072,143) lp_len: 24, lp_off: 4680, lp_flags: LP_NORMAL #313739 #3498DB 596 599 (131072,144) lp_len: 24, lp_off: 4656, lp_flags: LP_NORMAL #313739 #3498DB 600 603 (131072,145) lp_len: 24, lp_off: 4632, lp_flags: LP_NORMAL #313739 #3498DB 604 607 (131072,146) lp_len: 24, lp_off: 4608, lp_flags: LP_NORMAL #313739 #3498DB 608 611 (131072,147) lp_len: 24, lp_off: 4584, lp_flags: LP_NORMAL #313739 #3498DB 612 615 (131072,148) lp_len: 24, lp_off: 4560, lp_flags: LP_NORMAL #313739 #3498DB 616 619 (131072,149) lp_len: 24, lp_off: 4536, lp_flags: LP_NORMAL #313739 #3498DB 620 623 (131072,150) lp_len: 24, lp_off: 4512, lp_flags: LP_NORMAL #313739 #3498DB 624 627 (131072,151) lp_len: 24, lp_off: 4488, lp_flags: LP_NORMAL #313739 #3498DB 628 631 (131072,152) lp_len: 32, lp_off: 4456, lp_flags: LP_NORMAL #313739 #3498DB 632 635 (131072,153) lp_len: 24, lp_off: 4432, lp_flags: LP_NORMAL #313739 #3498DB 636 639 (131072,154) lp_len: 32, lp_off: 4400, lp_flags: LP_NORMAL #313739 #3498DB 640 643 (131072,155) lp_len: 32, lp_off: 4368, lp_flags: LP_NORMAL #313739 #3498DB 644 647 (131072,156) lp_len: 24, lp_off: 4344, lp_flags: LP_NORMAL #313739 #3498DB 648 651 (131072,157) lp_len: 24, lp_off: 4320, lp_flags: LP_NORMAL #313739 #3498DB 652 655 (131072,158) lp_len: 24, lp_off: 4296, lp_flags: LP_NORMAL #313739 #3498DB 656 659 (131072,159) lp_len: 24, lp_off: 4272, lp_flags: LP_NORMAL #313739 #3498DB 660 663 (131072,160) lp_len: 24, lp_off: 4248, lp_flags: LP_NORMAL #313739 #3498DB 664 667 (131072,161) lp_len: 24, lp_off: 4224, lp_flags: LP_NORMAL #313739 #3498DB 668 671 (131072,162) lp_len: 24, lp_off: 4200, lp_flags: LP_NORMAL #313739 #3498DB 672 675 (131072,163) lp_len: 24, lp_off: 4176, lp_flags: LP_NORMAL #313739 #3498DB 676 679 (131072,164) lp_len: 32, lp_off: 4144, lp_flags: LP_NORMAL #313739 #3498DB 680 683 (131072,165) lp_len: 24, lp_off: 4120, lp_flags: LP_NORMAL #313739 #3498DB 684 687 (131072,166) lp_len: 24, lp_off: 4096, lp_flags: LP_NORMAL #313739 #3498DB 688 691 (131072,167) lp_len: 24, lp_off: 4072, lp_flags: LP_NORMAL #313739 #3498DB 692 695 (131072,168) lp_len: 24, lp_off: 4048, lp_flags: LP_NORMAL #313739 #3498DB 696 699 (131072,169) lp_len: 24, lp_off: 4024, lp_flags: LP_NORMAL #313739 #3498DB 700 703 (131072,170) lp_len: 24, lp_off: 4000, lp_flags: LP_NORMAL #313739 #3498DB 704 707 (131072,171) lp_len: 24, lp_off: 3976, lp_flags: LP_NORMAL #313739 #3498DB 708 711 (131072,172) lp_len: 24, lp_off: 3952, lp_flags: LP_NORMAL #313739 #3498DB 712 715 (131072,173) lp_len: 24, lp_off: 3928, lp_flags: LP_NORMAL #313739 #3498DB 716 719 (131072,174) lp_len: 16, lp_off: 3912, lp_flags: LP_NORMAL #313739 #3498DB 720 723 (131072,175) lp_len: 24, lp_off: 3888, lp_flags: LP_NORMAL #313739 #3498DB 724 727 (131072,176) lp_len: 32, lp_off: 3856, lp_flags: LP_NORMAL #313739 #3498DB 728 731 (131072,177) lp_len: 24, lp_off: 3832, lp_flags: LP_NORMAL #313739 #3498DB 732 735 (131072,178) lp_len: 24, lp_off: 3808, lp_flags: LP_NORMAL #313739 #3498DB 736 739 (131072,179) lp_len: 24, lp_off: 3784, lp_flags: LP_NORMAL #313739 #3498DB 740 743 (131072,180) lp_len: 32, lp_off: 3752, lp_flags: LP_NORMAL #313739 #3498DB 744 747 (131072,181) lp_len: 32, lp_off: 3720, lp_flags: LP_NORMAL #313739 #3498DB 748 751 (131072,182) lp_len: 24, lp_off: 3696, lp_flags: LP_NORMAL #313739 #3498DB 752 755 (131072,183) lp_len: 24, lp_off: 3672, lp_flags: LP_NORMAL #313739 #3498DB 756 759 (131072,184) lp_len: 24, lp_off: 3648, lp_flags: LP_NORMAL #313739 #3498DB 760 763 (131072,185) lp_len: 32, lp_off: 3616, lp_flags: LP_NORMAL #313739 #3498DB 764 767 (131072,186) lp_len: 32, lp_off: 3584, lp_flags: LP_NORMAL #313739 #3498DB 768 771 (131072,187) lp_len: 32, lp_off: 3552, lp_flags: LP_NORMAL #313739 #3498DB 772 775 (131072,188) lp_len: 32, lp_off: 3520, lp_flags: LP_NORMAL #313739 #3498DB 776 779 (131072,189) lp_len: 24, lp_off: 3496, lp_flags: LP_NORMAL #313739 #3498DB 780 783 (131072,190) lp_len: 24, lp_off: 3472, lp_flags: LP_NORMAL #313739 #3498DB 784 787 (131072,191) lp_len: 24, lp_off: 3448, lp_flags: LP_NORMAL #313739 #3498DB 788 791 (131072,192) lp_len: 24, lp_off: 3424, lp_flags: LP_NORMAL #313739 #3498DB 792 795 (131072,193) lp_len: 32, lp_off: 3392, lp_flags: LP_NORMAL #313739 #3498DB 796 799 (131072,194) lp_len: 24, lp_off: 3368, lp_flags: LP_NORMAL #313739 #3498DB 800 803 (131072,195) lp_len: 24, lp_off: 3344, lp_flags: LP_NORMAL #313739 #3498DB 804 807 (131072,196) lp_len: 24, lp_off: 3320, lp_flags: LP_NORMAL #313739 #3498DB 808 811 (131072,197) lp_len: 24, lp_off: 3296, lp_flags: LP_NORMAL #313739 #3498DB 812 815 (131072,198) lp_len: 24, lp_off: 3272, lp_flags: LP_NORMAL #313739 #3498DB 816 819 (131072,199) lp_len: 32, lp_off: 3240, lp_flags: LP_NORMAL #313739 #3498DB 820 823 (131072,200) lp_len: 32, lp_off: 3208, lp_flags: LP_NORMAL #313739 #3498DB 824 827 (131072,201) lp_len: 32, lp_off: 3176, lp_flags: LP_NORMAL #313739 #3498DB 828 831 (131072,202) lp_len: 24, lp_off: 3152, lp_flags: LP_NORMAL #313739 #3498DB 832 835 (131072,203) lp_len: 32, lp_off: 3120, lp_flags: LP_NORMAL #313739 #3498DB 836 839 (131072,204) lp_len: 32, lp_off: 3088, lp_flags: LP_NORMAL #313739 #3498DB 840 843 (131072,205) lp_len: 32, lp_off: 3056, lp_flags: LP_NORMAL #313739 #3498DB 844 847 (131072,206) lp_len: 24, lp_off: 3032, lp_flags: LP_NORMAL #313739 #3498DB 848 851 (131072,207) lp_len: 24, lp_off: 3008, lp_flags: LP_NORMAL #313739 #3498DB 852 855 (131072,208) lp_len: 24, lp_off: 2984, lp_flags: LP_NORMAL #313739 #3498DB 856 859 (131072,209) lp_len: 24, lp_off: 2960, lp_flags: LP_NORMAL #313739 #3498DB 860 863 (131072,210) lp_len: 24, lp_off: 2936, lp_flags: LP_NORMAL #313739 #3498DB 864 867 (131072,211) lp_len: 24, lp_off: 2912, lp_flags: LP_NORMAL #313739 #3498DB 868 871 (131072,212) lp_len: 24, lp_off: 2888, lp_flags: LP_NORMAL #313739 #3498DB 872 875 (131072,213) lp_len: 24, lp_off: 2864, lp_flags: LP_NORMAL #313739 #3498DB 876 879 (131072,214) lp_len: 16, lp_off: 2848, lp_flags: LP_NORMAL #313739 #3498DB 880 883 (131072,215) lp_len: 32, lp_off: 2816, lp_flags: LP_NORMAL #313739 #3498DB 884 887 (131072,216) lp_len: 24, lp_off: 2792, lp_flags: LP_NORMAL #313739 #3498DB 888 891 (131072,217) lp_len: 32, lp_off: 2760, lp_flags: LP_NORMAL #313739 #3498DB 892 895 (131072,218) lp_len: 24, lp_off: 2736, lp_flags: LP_NORMAL #313739 #3498DB 896 899 (131072,219) lp_len: 32, lp_off: 2704, lp_flags: LP_NORMAL #313739 #3498DB 900 903 (131072,220) lp_len: 24, lp_off: 2680, lp_flags: LP_NORMAL #313739 #3498DB 904 907 (131072,221) lp_len: 24, lp_off: 2656, lp_flags: LP_NORMAL #313739 #3498DB 908 911 (131072,222) lp_len: 24, lp_off: 2632, lp_flags: LP_NORMAL #313739 #3498DB 912 915 (131072,223) lp_len: 32, lp_off: 2600, lp_flags: LP_NORMAL #313739 #3498DB 916 919 (131072,224) lp_len: 24, lp_off: 2576, lp_flags: LP_NORMAL #313739 #3498DB 920 923 (131072,225) lp_len: 32, lp_off: 2544, lp_flags: LP_NORMAL #313739 #3498DB 924 927 (131072,226) lp_len: 24, lp_off: 2520, lp_flags: LP_NORMAL #313739 #3498DB 928 931 (131072,227) lp_len: 24, lp_off: 2496, lp_flags: LP_NORMAL #313739 #3498DB 932 935 (131072,228) lp_len: 24, lp_off: 2472, lp_flags: LP_NORMAL #313739 #3498DB 936 939 (131072,229) lp_len: 32, lp_off: 2440, lp_flags: LP_NORMAL #313739 #3498DB 940 943 (131072,230) lp_len: 24, lp_off: 2416, lp_flags: LP_NORMAL #313739 #3498DB 944 947 (131072,231) lp_len: 24, lp_off: 2392, lp_flags: LP_NORMAL #313739 #3498DB 948 951 (131072,232) lp_len: 24, lp_off: 2368, lp_flags: LP_NORMAL #313739 #3498DB 952 955 (131072,233) lp_len: 24, lp_off: 2344, lp_flags: LP_NORMAL #313739 #3498DB 956 959 (131072,234) lp_len: 24, lp_off: 2320, lp_flags: LP_NORMAL #313739 #3498DB 960 963 (131072,235) lp_len: 24, lp_off: 2296, lp_flags: LP_NORMAL #313739 #3498DB 964 967 (131072,236) lp_len: 24, lp_off: 2272, lp_flags: LP_NORMAL #313739 #3498DB 968 971 (131072,237) lp_len: 24, lp_off: 2248, lp_flags: LP_NORMAL #313739 #3498DB 972 975 (131072,238) lp_len: 24, lp_off: 2224, lp_flags: LP_NORMAL #313739 #3498DB 976 979 (131072,239) lp_len: 24, lp_off: 2200, lp_flags: LP_NORMAL #313739 #3498DB 980 983 (131072,240) lp_len: 24, lp_off: 2176, lp_flags: LP_NORMAL #313739 #3498DB 984 987 (131072,241) lp_len: 24, lp_off: 2152, lp_flags: LP_NORMAL #313739 #3498DB 988 991 (131072,242) lp_len: 24, lp_off: 2128, lp_flags: LP_NORMAL #313739 #3498DB 992 995 (131072,243) lp_len: 32, lp_off: 2096, lp_flags: LP_NORMAL #313739 #3498DB 996 999 (131072,244) lp_len: 24, lp_off: 2072, lp_flags: LP_NORMAL #313739 #3498DB 1000 1003 (131072,245) lp_len: 32, lp_off: 2040, lp_flags: LP_NORMAL #313739 #3498DB 1004 1007 (131072,246) lp_len: 24, lp_off: 2016, lp_flags: LP_NORMAL #313739 #3498DB 1008 1011 (131072,247) lp_len: 24, lp_off: 1992, lp_flags: LP_NORMAL #313739 #3498DB 1012 1015 (131072,248) lp_len: 32, lp_off: 1960, lp_flags: LP_NORMAL #313739 #3498DB 1016 1019 (131072,249) lp_len: 32, lp_off: 1928, lp_flags: LP_NORMAL #313739 #3498DB 1020 1023 (131072,250) lp_len: 32, lp_off: 1896, lp_flags: LP_NORMAL #313739 #3498DB 1024 1027 (131072,251) lp_len: 24, lp_off: 1872, lp_flags: LP_NORMAL #313739 #3498DB 1848 1849 (131072,1) t_tid->bi_hi #313739 #3498DB 1850 1851 (131072,1) t_tid->bi_lo #313739 #3498DB 1852 1853 (131072,1) t_tid->offsetNumber #313739 #2980B9 1854 1855 (131072,1) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 1856 1859 (131072,1) attrelid #313739 #CFCBCC 1860 1867 (131072,1) attname #313739 #D6AFDE 8160 8161 (131072,2) t_tid->bi_hi #313739 #3498DB 8162 8163 (131072,2) t_tid->bi_lo #313739 #3498DB 8164 8165 (131072,2) t_tid->offsetNumber #313739 #2980B9 8166 8167 (131072,2) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 8168 8171 (131072,2) attrelid #313739 #CFCBCC 8172 8175 (131072,2) attname #313739 #D6AFDE 8144 8145 (131072,3) t_tid->bi_hi #313739 #3498DB 8146 8147 (131072,3) t_tid->bi_lo #313739 #3498DB 8148 8149 (131072,3) t_tid->offsetNumber #313739 #2980B9 8150 8151 (131072,3) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 8152 8155 (131072,3) attrelid #313739 #CFCBCC 8156 8159 (131072,3) attname #313739 #D6AFDE 8128 8129 (131072,4) t_tid->bi_hi #313739 #3498DB 8130 8131 (131072,4) t_tid->bi_lo #313739 #3498DB 8132 8133 (131072,4) t_tid->offsetNumber #313739 #2980B9 8134 8135 (131072,4) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 8136 8139 (131072,4) attrelid #313739 #CFCBCC 8140 8143 (131072,4) attname #313739 #D6AFDE 8104 8105 (131072,5) t_tid->bi_hi #313739 #3498DB 8106 8107 (131072,5) t_tid->bi_lo #313739 #3498DB 8108 8109 (131072,5) t_tid->offsetNumber #313739 #2980B9 8110 8111 (131072,5) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8112 8115 (131072,5) attrelid #313739 #CFCBCC 8116 8124 (131072,5) attname #313739 #D6AFDE 8080 8081 (131072,6) t_tid->bi_hi #313739 #3498DB 8082 8083 (131072,6) t_tid->bi_lo #313739 #3498DB 8084 8085 (131072,6) t_tid->offsetNumber #313739 #2980B9 8086 8087 (131072,6) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8088 8091 (131072,6) attrelid #313739 #CFCBCC 8092 8098 (131072,6) attname #313739 #D6AFDE 8056 8057 (131072,7) t_tid->bi_hi #313739 #3498DB 8058 8059 (131072,7) t_tid->bi_lo #313739 #3498DB 8060 8061 (131072,7) t_tid->offsetNumber #313739 #2980B9 8062 8063 (131072,7) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8064 8067 (131072,7) attrelid #313739 #CFCBCC 8068 8075 (131072,7) attname #313739 #D6AFDE 8032 8033 (131072,8) t_tid->bi_hi #313739 #3498DB 8034 8035 (131072,8) t_tid->bi_lo #313739 #3498DB 8036 8037 (131072,8) t_tid->offsetNumber #313739 #2980B9 8038 8039 (131072,8) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8040 8043 (131072,8) attrelid #313739 #CFCBCC 8044 8051 (131072,8) attname #313739 #D6AFDE 8008 8009 (131072,9) t_tid->bi_hi #313739 #3498DB 8010 8011 (131072,9) t_tid->bi_lo #313739 #3498DB 8012 8013 (131072,9) t_tid->offsetNumber #313739 #2980B9 8014 8015 (131072,9) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8016 8019 (131072,9) attrelid #313739 #CFCBCC 8020 8024 (131072,9) attname #313739 #D6AFDE 7984 7985 (131072,10) t_tid->bi_hi #313739 #3498DB 7986 7987 (131072,10) t_tid->bi_lo #313739 #3498DB 7988 7989 (131072,10) t_tid->offsetNumber #313739 #2980B9 7990 7991 (131072,10) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7992 7995 (131072,10) attrelid #313739 #CFCBCC 7996 8000 (131072,10) attname #313739 #D6AFDE 7960 7961 (131072,11) t_tid->bi_hi #313739 #3498DB 7962 7963 (131072,11) t_tid->bi_lo #313739 #3498DB 7964 7965 (131072,11) t_tid->offsetNumber #313739 #2980B9 7966 7967 (131072,11) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7968 7971 (131072,11) attrelid #313739 #CFCBCC 7972 7976 (131072,11) attname #313739 #D6AFDE 7936 7937 (131072,12) t_tid->bi_hi #313739 #3498DB 7938 7939 (131072,12) t_tid->bi_lo #313739 #3498DB 7940 7941 (131072,12) t_tid->offsetNumber #313739 #2980B9 7942 7943 (131072,12) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7944 7947 (131072,12) attrelid #313739 #CFCBCC 7948 7957 (131072,12) attname #313739 #D6AFDE 7904 7905 (131072,13) t_tid->bi_hi #313739 #3498DB 7906 7907 (131072,13) t_tid->bi_lo #313739 #3498DB 7908 7909 (131072,13) t_tid->offsetNumber #313739 #2980B9 7910 7911 (131072,13) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7912 7915 (131072,13) attrelid #313739 #CFCBCC 7916 7931 (131072,13) attname #313739 #D6AFDE 7872 7873 (131072,14) t_tid->bi_hi #313739 #3498DB 7874 7875 (131072,14) t_tid->bi_lo #313739 #3498DB 7876 7877 (131072,14) t_tid->offsetNumber #313739 #2980B9 7878 7879 (131072,14) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7880 7883 (131072,14) attrelid #313739 #CFCBCC 7884 7897 (131072,14) attname #313739 #D6AFDE 7848 7849 (131072,15) t_tid->bi_hi #313739 #3498DB 7850 7851 (131072,15) t_tid->bi_lo #313739 #3498DB 7852 7853 (131072,15) t_tid->offsetNumber #313739 #2980B9 7854 7855 (131072,15) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7856 7859 (131072,15) attrelid #313739 #CFCBCC 7860 7870 (131072,15) attname #313739 #D6AFDE 7832 7833 (131072,16) t_tid->bi_hi #313739 #3498DB 7834 7835 (131072,16) t_tid->bi_lo #313739 #3498DB 7836 7837 (131072,16) t_tid->offsetNumber #313739 #2980B9 7838 7839 (131072,16) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 7840 7843 (131072,16) attrelid #313739 #CFCBCC 7844 7847 (131072,16) attname #313739 #D6AFDE 7808 7809 (131072,17) t_tid->bi_hi #313739 #3498DB 7810 7811 (131072,17) t_tid->bi_lo #313739 #3498DB 7812 7813 (131072,17) t_tid->offsetNumber #313739 #2980B9 7814 7815 (131072,17) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7816 7819 (131072,17) attrelid #313739 #CFCBCC 7820 7828 (131072,17) attname #313739 #D6AFDE 7784 7785 (131072,18) t_tid->bi_hi #313739 #3498DB 7786 7787 (131072,18) t_tid->bi_lo #313739 #3498DB 7788 7789 (131072,18) t_tid->offsetNumber #313739 #2980B9 7790 7791 (131072,18) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7792 7795 (131072,18) attrelid #313739 #CFCBCC 7796 7800 (131072,18) attname #313739 #D6AFDE 7760 7761 (131072,19) t_tid->bi_hi #313739 #3498DB 7762 7763 (131072,19) t_tid->bi_lo #313739 #3498DB 7764 7765 (131072,19) t_tid->offsetNumber #313739 #2980B9 7766 7767 (131072,19) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7768 7771 (131072,19) attrelid #313739 #CFCBCC 7772 7776 (131072,19) attname #313739 #D6AFDE 7728 7729 (131072,20) t_tid->bi_hi #313739 #3498DB 7730 7731 (131072,20) t_tid->bi_lo #313739 #3498DB 7732 7733 (131072,20) t_tid->offsetNumber #313739 #2980B9 7734 7735 (131072,20) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7736 7739 (131072,20) attrelid #313739 #CFCBCC 7740 7755 (131072,20) attname #313739 #D6AFDE 7696 7697 (131072,21) t_tid->bi_hi #313739 #3498DB 7698 7699 (131072,21) t_tid->bi_lo #313739 #3498DB 7700 7701 (131072,21) t_tid->offsetNumber #313739 #2980B9 7702 7703 (131072,21) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7704 7707 (131072,21) attrelid #313739 #CFCBCC 7708 7721 (131072,21) attname #313739 #D6AFDE 7672 7673 (131072,22) t_tid->bi_hi #313739 #3498DB 7674 7675 (131072,22) t_tid->bi_lo #313739 #3498DB 7676 7677 (131072,22) t_tid->offsetNumber #313739 #2980B9 7678 7679 (131072,22) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7680 7683 (131072,22) attrelid #313739 #CFCBCC 7684 7694 (131072,22) attname #313739 #D6AFDE 7656 7657 (131072,23) t_tid->bi_hi #313739 #3498DB 7658 7659 (131072,23) t_tid->bi_lo #313739 #3498DB 7660 7661 (131072,23) t_tid->offsetNumber #313739 #2980B9 7662 7663 (131072,23) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 7664 7667 (131072,23) attrelid #313739 #CFCBCC 7668 7671 (131072,23) attname #313739 #D6AFDE 7632 7633 (131072,24) t_tid->bi_hi #313739 #3498DB 7634 7635 (131072,24) t_tid->bi_lo #313739 #3498DB 7636 7637 (131072,24) t_tid->offsetNumber #313739 #2980B9 7638 7639 (131072,24) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7640 7643 (131072,24) attrelid #313739 #CFCBCC 7644 7648 (131072,24) attname #313739 #D6AFDE 7608 7609 (131072,25) t_tid->bi_hi #313739 #3498DB 7610 7611 (131072,25) t_tid->bi_lo #313739 #3498DB 7612 7613 (131072,25) t_tid->offsetNumber #313739 #2980B9 7614 7615 (131072,25) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7616 7619 (131072,25) attrelid #313739 #CFCBCC 7620 7624 (131072,25) attname #313739 #D6AFDE 7584 7585 (131072,26) t_tid->bi_hi #313739 #3498DB 7586 7587 (131072,26) t_tid->bi_lo #313739 #3498DB 7588 7589 (131072,26) t_tid->offsetNumber #313739 #2980B9 7590 7591 (131072,26) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7592 7595 (131072,26) attrelid #313739 #CFCBCC 7596 7600 (131072,26) attname #313739 #D6AFDE 7560 7561 (131072,27) t_tid->bi_hi #313739 #3498DB 7562 7563 (131072,27) t_tid->bi_lo #313739 #3498DB 7564 7565 (131072,27) t_tid->offsetNumber #313739 #2980B9 7566 7567 (131072,27) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7568 7571 (131072,27) attrelid #313739 #CFCBCC 7572 7580 (131072,27) attname #313739 #D6AFDE 7536 7537 (131072,28) t_tid->bi_hi #313739 #3498DB 7538 7539 (131072,28) t_tid->bi_lo #313739 #3498DB 7540 7541 (131072,28) t_tid->offsetNumber #313739 #2980B9 7542 7543 (131072,28) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7544 7547 (131072,28) attrelid #313739 #CFCBCC 7548 7555 (131072,28) attname #313739 #D6AFDE 7504 7505 (131072,29) t_tid->bi_hi #313739 #3498DB 7506 7507 (131072,29) t_tid->bi_lo #313739 #3498DB 7508 7509 (131072,29) t_tid->offsetNumber #313739 #2980B9 7510 7511 (131072,29) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7512 7515 (131072,29) attrelid #313739 #CFCBCC 7516 7529 (131072,29) attname #313739 #D6AFDE 7480 7481 (131072,30) t_tid->bi_hi #313739 #3498DB 7482 7483 (131072,30) t_tid->bi_lo #313739 #3498DB 7484 7485 (131072,30) t_tid->offsetNumber #313739 #2980B9 7486 7487 (131072,30) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7488 7491 (131072,30) attrelid #313739 #CFCBCC 7492 7503 (131072,30) attname #313739 #D6AFDE 7456 7457 (131072,31) t_tid->bi_hi #313739 #3498DB 7458 7459 (131072,31) t_tid->bi_lo #313739 #3498DB 7460 7461 (131072,31) t_tid->offsetNumber #313739 #2980B9 7462 7463 (131072,31) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7464 7467 (131072,31) attrelid #313739 #CFCBCC 7468 7478 (131072,31) attname #313739 #D6AFDE 7432 7433 (131072,32) t_tid->bi_hi #313739 #3498DB 7434 7435 (131072,32) t_tid->bi_lo #313739 #3498DB 7436 7437 (131072,32) t_tid->offsetNumber #313739 #2980B9 7438 7439 (131072,32) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7440 7443 (131072,32) attrelid #313739 #CFCBCC 7444 7455 (131072,32) attname #313739 #D6AFDE 7408 7409 (131072,33) t_tid->bi_hi #313739 #3498DB 7410 7411 (131072,33) t_tid->bi_lo #313739 #3498DB 7412 7413 (131072,33) t_tid->offsetNumber #313739 #2980B9 7414 7415 (131072,33) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7416 7419 (131072,33) attrelid #313739 #CFCBCC 7420 7428 (131072,33) attname #313739 #D6AFDE 7384 7385 (131072,34) t_tid->bi_hi #313739 #3498DB 7386 7387 (131072,34) t_tid->bi_lo #313739 #3498DB 7388 7389 (131072,34) t_tid->offsetNumber #313739 #2980B9 7390 7391 (131072,34) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7392 7395 (131072,34) attrelid #313739 #CFCBCC 7396 7407 (131072,34) attname #313739 #D6AFDE 7352 7353 (131072,35) t_tid->bi_hi #313739 #3498DB 7354 7355 (131072,35) t_tid->bi_lo #313739 #3498DB 7356 7357 (131072,35) t_tid->offsetNumber #313739 #2980B9 7358 7359 (131072,35) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7360 7363 (131072,35) attrelid #313739 #CFCBCC 7364 7377 (131072,35) attname #313739 #D6AFDE 7328 7329 (131072,36) t_tid->bi_hi #313739 #3498DB 7330 7331 (131072,36) t_tid->bi_lo #313739 #3498DB 7332 7333 (131072,36) t_tid->offsetNumber #313739 #2980B9 7334 7335 (131072,36) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7336 7339 (131072,36) attrelid #313739 #CFCBCC 7340 7344 (131072,36) attname #313739 #D6AFDE 7304 7305 (131072,37) t_tid->bi_hi #313739 #3498DB 7306 7307 (131072,37) t_tid->bi_lo #313739 #3498DB 7308 7309 (131072,37) t_tid->offsetNumber #313739 #2980B9 7310 7311 (131072,37) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7312 7315 (131072,37) attrelid #313739 #CFCBCC 7316 7320 (131072,37) attname #313739 #D6AFDE 7280 7281 (131072,38) t_tid->bi_hi #313739 #3498DB 7282 7283 (131072,38) t_tid->bi_lo #313739 #3498DB 7284 7285 (131072,38) t_tid->offsetNumber #313739 #2980B9 7286 7287 (131072,38) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7288 7291 (131072,38) attrelid #313739 #CFCBCC 7292 7300 (131072,38) attname #313739 #D6AFDE 7256 7257 (131072,39) t_tid->bi_hi #313739 #3498DB 7258 7259 (131072,39) t_tid->bi_lo #313739 #3498DB 7260 7261 (131072,39) t_tid->offsetNumber #313739 #2980B9 7262 7263 (131072,39) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7264 7267 (131072,39) attrelid #313739 #CFCBCC 7268 7272 (131072,39) attname #313739 #D6AFDE 7232 7233 (131072,40) t_tid->bi_hi #313739 #3498DB 7234 7235 (131072,40) t_tid->bi_lo #313739 #3498DB 7236 7237 (131072,40) t_tid->offsetNumber #313739 #2980B9 7238 7239 (131072,40) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7240 7243 (131072,40) attrelid #313739 #CFCBCC 7244 7248 (131072,40) attname #313739 #D6AFDE 7208 7209 (131072,41) t_tid->bi_hi #313739 #3498DB 7210 7211 (131072,41) t_tid->bi_lo #313739 #3498DB 7212 7213 (131072,41) t_tid->offsetNumber #313739 #2980B9 7214 7215 (131072,41) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7216 7219 (131072,41) attrelid #313739 #CFCBCC 7220 7224 (131072,41) attname #313739 #D6AFDE 7192 7193 (131072,42) t_tid->bi_hi #313739 #3498DB 7194 7195 (131072,42) t_tid->bi_lo #313739 #3498DB 7196 7197 (131072,42) t_tid->offsetNumber #313739 #2980B9 7198 7199 (131072,42) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 7200 7203 (131072,42) attrelid #313739 #CFCBCC 7204 7207 (131072,42) attname #313739 #D6AFDE 7168 7169 (131072,43) t_tid->bi_hi #313739 #3498DB 7170 7171 (131072,43) t_tid->bi_lo #313739 #3498DB 7172 7173 (131072,43) t_tid->offsetNumber #313739 #2980B9 7174 7175 (131072,43) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7176 7179 (131072,43) attrelid #313739 #CFCBCC 7180 7186 (131072,43) attname #313739 #D6AFDE 7144 7145 (131072,44) t_tid->bi_hi #313739 #3498DB 7146 7147 (131072,44) t_tid->bi_lo #313739 #3498DB 7148 7149 (131072,44) t_tid->offsetNumber #313739 #2980B9 7150 7151 (131072,44) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7152 7155 (131072,44) attrelid #313739 #CFCBCC 7156 7163 (131072,44) attname #313739 #D6AFDE 7120 7121 (131072,45) t_tid->bi_hi #313739 #3498DB 7122 7123 (131072,45) t_tid->bi_lo #313739 #3498DB 7124 7125 (131072,45) t_tid->offsetNumber #313739 #2980B9 7126 7127 (131072,45) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7128 7131 (131072,45) attrelid #313739 #CFCBCC 7132 7142 (131072,45) attname #313739 #D6AFDE 7096 7097 (131072,46) t_tid->bi_hi #313739 #3498DB 7098 7099 (131072,46) t_tid->bi_lo #313739 #3498DB 7100 7101 (131072,46) t_tid->offsetNumber #313739 #2980B9 7102 7103 (131072,46) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7104 7107 (131072,46) attrelid #313739 #CFCBCC 7108 7116 (131072,46) attname #313739 #D6AFDE 7072 7073 (131072,47) t_tid->bi_hi #313739 #3498DB 7074 7075 (131072,47) t_tid->bi_lo #313739 #3498DB 7076 7077 (131072,47) t_tid->offsetNumber #313739 #2980B9 7078 7079 (131072,47) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7080 7083 (131072,47) attrelid #313739 #CFCBCC 7084 7092 (131072,47) attname #313739 #D6AFDE 7048 7049 (131072,48) t_tid->bi_hi #313739 #3498DB 7050 7051 (131072,48) t_tid->bi_lo #313739 #3498DB 7052 7053 (131072,48) t_tid->offsetNumber #313739 #2980B9 7054 7055 (131072,48) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7056 7059 (131072,48) attrelid #313739 #CFCBCC 7060 7064 (131072,48) attname #313739 #D6AFDE 7024 7025 (131072,49) t_tid->bi_hi #313739 #3498DB 7026 7027 (131072,49) t_tid->bi_lo #313739 #3498DB 7028 7029 (131072,49) t_tid->offsetNumber #313739 #2980B9 7030 7031 (131072,49) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7032 7035 (131072,49) attrelid #313739 #CFCBCC 7036 7040 (131072,49) attname #313739 #D6AFDE 7000 7001 (131072,50) t_tid->bi_hi #313739 #3498DB 7002 7003 (131072,50) t_tid->bi_lo #313739 #3498DB 7004 7005 (131072,50) t_tid->offsetNumber #313739 #2980B9 7006 7007 (131072,50) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7008 7011 (131072,50) attrelid #313739 #CFCBCC 7012 7019 (131072,50) attname #313739 #D6AFDE 6976 6977 (131072,51) t_tid->bi_hi #313739 #3498DB 6978 6979 (131072,51) t_tid->bi_lo #313739 #3498DB 6980 6981 (131072,51) t_tid->offsetNumber #313739 #2980B9 6982 6983 (131072,51) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6984 6987 (131072,51) attrelid #313739 #CFCBCC 6988 6992 (131072,51) attname #313739 #D6AFDE 6952 6953 (131072,52) t_tid->bi_hi #313739 #3498DB 6954 6955 (131072,52) t_tid->bi_lo #313739 #3498DB 6956 6957 (131072,52) t_tid->offsetNumber #313739 #2980B9 6958 6959 (131072,52) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6960 6963 (131072,52) attrelid #313739 #CFCBCC 6964 6968 (131072,52) attname #313739 #D6AFDE 6928 6929 (131072,53) t_tid->bi_hi #313739 #3498DB 6930 6931 (131072,53) t_tid->bi_lo #313739 #3498DB 6932 6933 (131072,53) t_tid->offsetNumber #313739 #2980B9 6934 6935 (131072,53) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6936 6939 (131072,53) attrelid #313739 #CFCBCC 6940 6944 (131072,53) attname #313739 #D6AFDE 6904 6905 (131072,54) t_tid->bi_hi #313739 #3498DB 6906 6907 (131072,54) t_tid->bi_lo #313739 #3498DB 6908 6909 (131072,54) t_tid->offsetNumber #313739 #2980B9 6910 6911 (131072,54) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6912 6915 (131072,54) attrelid #313739 #CFCBCC 6916 6920 (131072,54) attname #313739 #D6AFDE 6880 6881 (131072,55) t_tid->bi_hi #313739 #3498DB 6882 6883 (131072,55) t_tid->bi_lo #313739 #3498DB 6884 6885 (131072,55) t_tid->offsetNumber #313739 #2980B9 6886 6887 (131072,55) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6888 6891 (131072,55) attrelid #313739 #CFCBCC 6892 6899 (131072,55) attname #313739 #D6AFDE 6856 6857 (131072,56) t_tid->bi_hi #313739 #3498DB 6858 6859 (131072,56) t_tid->bi_lo #313739 #3498DB 6860 6861 (131072,56) t_tid->offsetNumber #313739 #2980B9 6862 6863 (131072,56) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6864 6867 (131072,56) attrelid #313739 #CFCBCC 6868 6873 (131072,56) attname #313739 #D6AFDE 6832 6833 (131072,57) t_tid->bi_hi #313739 #3498DB 6834 6835 (131072,57) t_tid->bi_lo #313739 #3498DB 6836 6837 (131072,57) t_tid->offsetNumber #313739 #2980B9 6838 6839 (131072,57) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6840 6843 (131072,57) attrelid #313739 #CFCBCC 6844 6852 (131072,57) attname #313739 #D6AFDE 6808 6809 (131072,58) t_tid->bi_hi #313739 #3498DB 6810 6811 (131072,58) t_tid->bi_lo #313739 #3498DB 6812 6813 (131072,58) t_tid->offsetNumber #313739 #2980B9 6814 6815 (131072,58) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6816 6819 (131072,58) attrelid #313739 #CFCBCC 6820 6830 (131072,58) attname #313739 #D6AFDE 6784 6785 (131072,59) t_tid->bi_hi #313739 #3498DB 6786 6787 (131072,59) t_tid->bi_lo #313739 #3498DB 6788 6789 (131072,59) t_tid->offsetNumber #313739 #2980B9 6790 6791 (131072,59) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6792 6795 (131072,59) attrelid #313739 #CFCBCC 6796 6804 (131072,59) attname #313739 #D6AFDE 6760 6761 (131072,60) t_tid->bi_hi #313739 #3498DB 6762 6763 (131072,60) t_tid->bi_lo #313739 #3498DB 6764 6765 (131072,60) t_tid->offsetNumber #313739 #2980B9 6766 6767 (131072,60) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6768 6771 (131072,60) attrelid #313739 #CFCBCC 6772 6780 (131072,60) attname #313739 #D6AFDE 6736 6737 (131072,61) t_tid->bi_hi #313739 #3498DB 6738 6739 (131072,61) t_tid->bi_lo #313739 #3498DB 6740 6741 (131072,61) t_tid->offsetNumber #313739 #2980B9 6742 6743 (131072,61) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6744 6747 (131072,61) attrelid #313739 #CFCBCC 6748 6752 (131072,61) attname #313739 #D6AFDE 6712 6713 (131072,62) t_tid->bi_hi #313739 #3498DB 6714 6715 (131072,62) t_tid->bi_lo #313739 #3498DB 6716 6717 (131072,62) t_tid->offsetNumber #313739 #2980B9 6718 6719 (131072,62) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6720 6723 (131072,62) attrelid #313739 #CFCBCC 6724 6728 (131072,62) attname #313739 #D6AFDE 6688 6689 (131072,63) t_tid->bi_hi #313739 #3498DB 6690 6691 (131072,63) t_tid->bi_lo #313739 #3498DB 6692 6693 (131072,63) t_tid->offsetNumber #313739 #2980B9 6694 6695 (131072,63) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6696 6699 (131072,63) attrelid #313739 #CFCBCC 6700 6707 (131072,63) attname #313739 #D6AFDE 6664 6665 (131072,64) t_tid->bi_hi #313739 #3498DB 6666 6667 (131072,64) t_tid->bi_lo #313739 #3498DB 6668 6669 (131072,64) t_tid->offsetNumber #313739 #2980B9 6670 6671 (131072,64) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6672 6675 (131072,64) attrelid #313739 #CFCBCC 6676 6680 (131072,64) attname #313739 #D6AFDE 6640 6641 (131072,65) t_tid->bi_hi #313739 #3498DB 6642 6643 (131072,65) t_tid->bi_lo #313739 #3498DB 6644 6645 (131072,65) t_tid->offsetNumber #313739 #2980B9 6646 6647 (131072,65) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6648 6651 (131072,65) attrelid #313739 #CFCBCC 6652 6657 (131072,65) attname #313739 #D6AFDE 6616 6617 (131072,66) t_tid->bi_hi #313739 #3498DB 6618 6619 (131072,66) t_tid->bi_lo #313739 #3498DB 6620 6621 (131072,66) t_tid->offsetNumber #313739 #2980B9 6622 6623 (131072,66) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6624 6627 (131072,66) attrelid #313739 #CFCBCC 6628 6636 (131072,66) attname #313739 #D6AFDE 6592 6593 (131072,67) t_tid->bi_hi #313739 #3498DB 6594 6595 (131072,67) t_tid->bi_lo #313739 #3498DB 6596 6597 (131072,67) t_tid->offsetNumber #313739 #2980B9 6598 6599 (131072,67) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6600 6603 (131072,67) attrelid #313739 #CFCBCC 6604 6614 (131072,67) attname #313739 #D6AFDE 6568 6569 (131072,68) t_tid->bi_hi #313739 #3498DB 6570 6571 (131072,68) t_tid->bi_lo #313739 #3498DB 6572 6573 (131072,68) t_tid->offsetNumber #313739 #2980B9 6574 6575 (131072,68) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6576 6579 (131072,68) attrelid #313739 #CFCBCC 6580 6588 (131072,68) attname #313739 #D6AFDE 6544 6545 (131072,69) t_tid->bi_hi #313739 #3498DB 6546 6547 (131072,69) t_tid->bi_lo #313739 #3498DB 6548 6549 (131072,69) t_tid->offsetNumber #313739 #2980B9 6550 6551 (131072,69) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6552 6555 (131072,69) attrelid #313739 #CFCBCC 6556 6560 (131072,69) attname #313739 #D6AFDE 6520 6521 (131072,70) t_tid->bi_hi #313739 #3498DB 6522 6523 (131072,70) t_tid->bi_lo #313739 #3498DB 6524 6525 (131072,70) t_tid->offsetNumber #313739 #2980B9 6526 6527 (131072,70) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6528 6531 (131072,70) attrelid #313739 #CFCBCC 6532 6536 (131072,70) attname #313739 #D6AFDE 6496 6497 (131072,71) t_tid->bi_hi #313739 #3498DB 6498 6499 (131072,71) t_tid->bi_lo #313739 #3498DB 6500 6501 (131072,71) t_tid->offsetNumber #313739 #2980B9 6502 6503 (131072,71) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6504 6507 (131072,71) attrelid #313739 #CFCBCC 6508 6512 (131072,71) attname #313739 #D6AFDE 6480 6481 (131072,72) t_tid->bi_hi #313739 #3498DB 6482 6483 (131072,72) t_tid->bi_lo #313739 #3498DB 6484 6485 (131072,72) t_tid->offsetNumber #313739 #2980B9 6486 6487 (131072,72) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 6488 6491 (131072,72) attrelid #313739 #CFCBCC 6492 6495 (131072,72) attname #313739 #D6AFDE 6456 6457 (131072,73) t_tid->bi_hi #313739 #3498DB 6458 6459 (131072,73) t_tid->bi_lo #313739 #3498DB 6460 6461 (131072,73) t_tid->offsetNumber #313739 #2980B9 6462 6463 (131072,73) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6464 6467 (131072,73) attrelid #313739 #CFCBCC 6468 6476 (131072,73) attname #313739 #D6AFDE 6432 6433 (131072,74) t_tid->bi_hi #313739 #3498DB 6434 6435 (131072,74) t_tid->bi_lo #313739 #3498DB 6436 6437 (131072,74) t_tid->offsetNumber #313739 #2980B9 6438 6439 (131072,74) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6440 6443 (131072,74) attrelid #313739 #CFCBCC 6444 6450 (131072,74) attname #313739 #D6AFDE 6408 6409 (131072,75) t_tid->bi_hi #313739 #3498DB 6410 6411 (131072,75) t_tid->bi_lo #313739 #3498DB 6412 6413 (131072,75) t_tid->offsetNumber #313739 #2980B9 6414 6415 (131072,75) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6416 6419 (131072,75) attrelid #313739 #CFCBCC 6420 6428 (131072,75) attname #313739 #D6AFDE 6384 6385 (131072,76) t_tid->bi_hi #313739 #3498DB 6386 6387 (131072,76) t_tid->bi_lo #313739 #3498DB 6388 6389 (131072,76) t_tid->offsetNumber #313739 #2980B9 6390 6391 (131072,76) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6392 6395 (131072,76) attrelid #313739 #CFCBCC 6396 6406 (131072,76) attname #313739 #D6AFDE 6360 6361 (131072,77) t_tid->bi_hi #313739 #3498DB 6362 6363 (131072,77) t_tid->bi_lo #313739 #3498DB 6364 6365 (131072,77) t_tid->offsetNumber #313739 #2980B9 6366 6367 (131072,77) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6368 6371 (131072,77) attrelid #313739 #CFCBCC 6372 6380 (131072,77) attname #313739 #D6AFDE 6336 6337 (131072,78) t_tid->bi_hi #313739 #3498DB 6338 6339 (131072,78) t_tid->bi_lo #313739 #3498DB 6340 6341 (131072,78) t_tid->offsetNumber #313739 #2980B9 6342 6343 (131072,78) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6344 6347 (131072,78) attrelid #313739 #CFCBCC 6348 6359 (131072,78) attname #313739 #D6AFDE 6312 6313 (131072,79) t_tid->bi_hi #313739 #3498DB 6314 6315 (131072,79) t_tid->bi_lo #313739 #3498DB 6316 6317 (131072,79) t_tid->offsetNumber #313739 #2980B9 6318 6319 (131072,79) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6320 6323 (131072,79) attrelid #313739 #CFCBCC 6324 6332 (131072,79) attname #313739 #D6AFDE 6288 6289 (131072,80) t_tid->bi_hi #313739 #3498DB 6290 6291 (131072,80) t_tid->bi_lo #313739 #3498DB 6292 6293 (131072,80) t_tid->offsetNumber #313739 #2980B9 6294 6295 (131072,80) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6296 6299 (131072,80) attrelid #313739 #CFCBCC 6300 6311 (131072,80) attname #313739 #D6AFDE 6256 6257 (131072,81) t_tid->bi_hi #313739 #3498DB 6258 6259 (131072,81) t_tid->bi_lo #313739 #3498DB 6260 6261 (131072,81) t_tid->offsetNumber #313739 #2980B9 6262 6263 (131072,81) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6264 6267 (131072,81) attrelid #313739 #CFCBCC 6268 6280 (131072,81) attname #313739 #D6AFDE 6232 6233 (131072,82) t_tid->bi_hi #313739 #3498DB 6234 6235 (131072,82) t_tid->bi_lo #313739 #3498DB 6236 6237 (131072,82) t_tid->offsetNumber #313739 #2980B9 6238 6239 (131072,82) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6240 6243 (131072,82) attrelid #313739 #CFCBCC 6244 6254 (131072,82) attname #313739 #D6AFDE 6200 6201 (131072,83) t_tid->bi_hi #313739 #3498DB 6202 6203 (131072,83) t_tid->bi_lo #313739 #3498DB 6204 6205 (131072,83) t_tid->offsetNumber #313739 #2980B9 6206 6207 (131072,83) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6208 6211 (131072,83) attrelid #313739 #CFCBCC 6212 6225 (131072,83) attname #313739 #D6AFDE 6176 6177 (131072,84) t_tid->bi_hi #313739 #3498DB 6178 6179 (131072,84) t_tid->bi_lo #313739 #3498DB 6180 6181 (131072,84) t_tid->offsetNumber #313739 #2980B9 6182 6183 (131072,84) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6184 6187 (131072,84) attrelid #313739 #CFCBCC 6188 6196 (131072,84) attname #313739 #D6AFDE 6152 6153 (131072,85) t_tid->bi_hi #313739 #3498DB 6154 6155 (131072,85) t_tid->bi_lo #313739 #3498DB 6156 6157 (131072,85) t_tid->offsetNumber #313739 #2980B9 6158 6159 (131072,85) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6160 6163 (131072,85) attrelid #313739 #CFCBCC 6164 6171 (131072,85) attname #313739 #D6AFDE 6128 6129 (131072,86) t_tid->bi_hi #313739 #3498DB 6130 6131 (131072,86) t_tid->bi_lo #313739 #3498DB 6132 6133 (131072,86) t_tid->offsetNumber #313739 #2980B9 6134 6135 (131072,86) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6136 6139 (131072,86) attrelid #313739 #CFCBCC 6140 6148 (131072,86) attname #313739 #D6AFDE 6096 6097 (131072,87) t_tid->bi_hi #313739 #3498DB 6098 6099 (131072,87) t_tid->bi_lo #313739 #3498DB 6100 6101 (131072,87) t_tid->offsetNumber #313739 #2980B9 6102 6103 (131072,87) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6104 6107 (131072,87) attrelid #313739 #CFCBCC 6108 6120 (131072,87) attname #313739 #D6AFDE 6064 6065 (131072,88) t_tid->bi_hi #313739 #3498DB 6066 6067 (131072,88) t_tid->bi_lo #313739 #3498DB 6068 6069 (131072,88) t_tid->offsetNumber #313739 #2980B9 6070 6071 (131072,88) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6072 6075 (131072,88) attrelid #313739 #CFCBCC 6076 6090 (131072,88) attname #313739 #D6AFDE 6040 6041 (131072,89) t_tid->bi_hi #313739 #3498DB 6042 6043 (131072,89) t_tid->bi_lo #313739 #3498DB 6044 6045 (131072,89) t_tid->offsetNumber #313739 #2980B9 6046 6047 (131072,89) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6048 6051 (131072,89) attrelid #313739 #CFCBCC 6052 6058 (131072,89) attname #313739 #D6AFDE 6016 6017 (131072,90) t_tid->bi_hi #313739 #3498DB 6018 6019 (131072,90) t_tid->bi_lo #313739 #3498DB 6020 6021 (131072,90) t_tid->offsetNumber #313739 #2980B9 6022 6023 (131072,90) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6024 6027 (131072,90) attrelid #313739 #CFCBCC 6028 6036 (131072,90) attname #313739 #D6AFDE 5992 5993 (131072,91) t_tid->bi_hi #313739 #3498DB 5994 5995 (131072,91) t_tid->bi_lo #313739 #3498DB 5996 5997 (131072,91) t_tid->offsetNumber #313739 #2980B9 5998 5999 (131072,91) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6000 6003 (131072,91) attrelid #313739 #CFCBCC 6004 6013 (131072,91) attname #313739 #D6AFDE 5968 5969 (131072,92) t_tid->bi_hi #313739 #3498DB 5970 5971 (131072,92) t_tid->bi_lo #313739 #3498DB 5972 5973 (131072,92) t_tid->offsetNumber #313739 #2980B9 5974 5975 (131072,92) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5976 5979 (131072,92) attrelid #313739 #CFCBCC 5980 5987 (131072,92) attname #313739 #D6AFDE 5936 5937 (131072,93) t_tid->bi_hi #313739 #3498DB 5938 5939 (131072,93) t_tid->bi_lo #313739 #3498DB 5940 5941 (131072,93) t_tid->offsetNumber #313739 #2980B9 5942 5943 (131072,93) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5944 5947 (131072,93) attrelid #313739 #CFCBCC 5948 5960 (131072,93) attname #313739 #D6AFDE 5912 5913 (131072,94) t_tid->bi_hi #313739 #3498DB 5914 5915 (131072,94) t_tid->bi_lo #313739 #3498DB 5916 5917 (131072,94) t_tid->offsetNumber #313739 #2980B9 5918 5919 (131072,94) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5920 5923 (131072,94) attrelid #313739 #CFCBCC 5924 5932 (131072,94) attname #313739 #D6AFDE 5888 5889 (131072,95) t_tid->bi_hi #313739 #3498DB 5890 5891 (131072,95) t_tid->bi_lo #313739 #3498DB 5892 5893 (131072,95) t_tid->offsetNumber #313739 #2980B9 5894 5895 (131072,95) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5896 5899 (131072,95) attrelid #313739 #CFCBCC 5900 5910 (131072,95) attname #313739 #D6AFDE 5864 5865 (131072,96) t_tid->bi_hi #313739 #3498DB 5866 5867 (131072,96) t_tid->bi_lo #313739 #3498DB 5868 5869 (131072,96) t_tid->offsetNumber #313739 #2980B9 5870 5871 (131072,96) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5872 5875 (131072,96) attrelid #313739 #CFCBCC 5876 5885 (131072,96) attname #313739 #D6AFDE 5840 5841 (131072,97) t_tid->bi_hi #313739 #3498DB 5842 5843 (131072,97) t_tid->bi_lo #313739 #3498DB 5844 5845 (131072,97) t_tid->offsetNumber #313739 #2980B9 5846 5847 (131072,97) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5848 5851 (131072,97) attrelid #313739 #CFCBCC 5852 5860 (131072,97) attname #313739 #D6AFDE 5816 5817 (131072,98) t_tid->bi_hi #313739 #3498DB 5818 5819 (131072,98) t_tid->bi_lo #313739 #3498DB 5820 5821 (131072,98) t_tid->offsetNumber #313739 #2980B9 5822 5823 (131072,98) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5824 5827 (131072,98) attrelid #313739 #CFCBCC 5828 5838 (131072,98) attname #313739 #D6AFDE 5792 5793 (131072,99) t_tid->bi_hi #313739 #3498DB 5794 5795 (131072,99) t_tid->bi_lo #313739 #3498DB 5796 5797 (131072,99) t_tid->offsetNumber #313739 #2980B9 5798 5799 (131072,99) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5800 5803 (131072,99) attrelid #313739 #CFCBCC 5804 5812 (131072,99) attname #313739 #D6AFDE 5768 5769 (131072,100) t_tid->bi_hi #313739 #3498DB 5770 5771 (131072,100) t_tid->bi_lo #313739 #3498DB 5772 5773 (131072,100) t_tid->offsetNumber #313739 #2980B9 5774 5775 (131072,100) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5776 5779 (131072,100) attrelid #313739 #CFCBCC 5780 5787 (131072,100) attname #313739 #D6AFDE 5744 5745 (131072,101) t_tid->bi_hi #313739 #3498DB 5746 5747 (131072,101) t_tid->bi_lo #313739 #3498DB 5748 5749 (131072,101) t_tid->offsetNumber #313739 #2980B9 5750 5751 (131072,101) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5752 5755 (131072,101) attrelid #313739 #CFCBCC 5756 5766 (131072,101) attname #313739 #D6AFDE 5720 5721 (131072,102) t_tid->bi_hi #313739 #3498DB 5722 5723 (131072,102) t_tid->bi_lo #313739 #3498DB 5724 5725 (131072,102) t_tid->offsetNumber #313739 #2980B9 5726 5727 (131072,102) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5728 5731 (131072,102) attrelid #313739 #CFCBCC 5732 5739 (131072,102) attname #313739 #D6AFDE 5696 5697 (131072,103) t_tid->bi_hi #313739 #3498DB 5698 5699 (131072,103) t_tid->bi_lo #313739 #3498DB 5700 5701 (131072,103) t_tid->offsetNumber #313739 #2980B9 5702 5703 (131072,103) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5704 5707 (131072,103) attrelid #313739 #CFCBCC 5708 5717 (131072,103) attname #313739 #D6AFDE 5672 5673 (131072,104) t_tid->bi_hi #313739 #3498DB 5674 5675 (131072,104) t_tid->bi_lo #313739 #3498DB 5676 5677 (131072,104) t_tid->offsetNumber #313739 #2980B9 5678 5679 (131072,104) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5680 5683 (131072,104) attrelid #313739 #CFCBCC 5684 5688 (131072,104) attname #313739 #D6AFDE 5648 5649 (131072,105) t_tid->bi_hi #313739 #3498DB 5650 5651 (131072,105) t_tid->bi_lo #313739 #3498DB 5652 5653 (131072,105) t_tid->offsetNumber #313739 #2980B9 5654 5655 (131072,105) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5656 5659 (131072,105) attrelid #313739 #CFCBCC 5660 5664 (131072,105) attname #313739 #D6AFDE 5624 5625 (131072,106) t_tid->bi_hi #313739 #3498DB 5626 5627 (131072,106) t_tid->bi_lo #313739 #3498DB 5628 5629 (131072,106) t_tid->offsetNumber #313739 #2980B9 5630 5631 (131072,106) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5632 5635 (131072,106) attrelid #313739 #CFCBCC 5636 5642 (131072,106) attname #313739 #D6AFDE 5600 5601 (131072,107) t_tid->bi_hi #313739 #3498DB 5602 5603 (131072,107) t_tid->bi_lo #313739 #3498DB 5604 5605 (131072,107) t_tid->offsetNumber #313739 #2980B9 5606 5607 (131072,107) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5608 5611 (131072,107) attrelid #313739 #CFCBCC 5612 5620 (131072,107) attname #313739 #D6AFDE 5576 5577 (131072,108) t_tid->bi_hi #313739 #3498DB 5578 5579 (131072,108) t_tid->bi_lo #313739 #3498DB 5580 5581 (131072,108) t_tid->offsetNumber #313739 #2980B9 5582 5583 (131072,108) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5584 5587 (131072,108) attrelid #313739 #CFCBCC 5588 5596 (131072,108) attname #313739 #D6AFDE 5552 5553 (131072,109) t_tid->bi_hi #313739 #3498DB 5554 5555 (131072,109) t_tid->bi_lo #313739 #3498DB 5556 5557 (131072,109) t_tid->offsetNumber #313739 #2980B9 5558 5559 (131072,109) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5560 5563 (131072,109) attrelid #313739 #CFCBCC 5564 5575 (131072,109) attname #313739 #D6AFDE 5520 5521 (131072,110) t_tid->bi_hi #313739 #3498DB 5522 5523 (131072,110) t_tid->bi_lo #313739 #3498DB 5524 5525 (131072,110) t_tid->offsetNumber #313739 #2980B9 5526 5527 (131072,110) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5528 5531 (131072,110) attrelid #313739 #CFCBCC 5532 5544 (131072,110) attname #313739 #D6AFDE 5488 5489 (131072,111) t_tid->bi_hi #313739 #3498DB 5490 5491 (131072,111) t_tid->bi_lo #313739 #3498DB 5492 5493 (131072,111) t_tid->offsetNumber #313739 #2980B9 5494 5495 (131072,111) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5496 5499 (131072,111) attrelid #313739 #CFCBCC 5500 5513 (131072,111) attname #313739 #D6AFDE 5464 5465 (131072,112) t_tid->bi_hi #313739 #3498DB 5466 5467 (131072,112) t_tid->bi_lo #313739 #3498DB 5468 5469 (131072,112) t_tid->offsetNumber #313739 #2980B9 5470 5471 (131072,112) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5472 5475 (131072,112) attrelid #313739 #CFCBCC 5476 5485 (131072,112) attname #313739 #D6AFDE 5432 5433 (131072,113) t_tid->bi_hi #313739 #3498DB 5434 5435 (131072,113) t_tid->bi_lo #313739 #3498DB 5436 5437 (131072,113) t_tid->offsetNumber #313739 #2980B9 5438 5439 (131072,113) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5440 5443 (131072,113) attrelid #313739 #CFCBCC 5444 5457 (131072,113) attname #313739 #D6AFDE 5408 5409 (131072,114) t_tid->bi_hi #313739 #3498DB 5410 5411 (131072,114) t_tid->bi_lo #313739 #3498DB 5412 5413 (131072,114) t_tid->offsetNumber #313739 #2980B9 5414 5415 (131072,114) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5416 5419 (131072,114) attrelid #313739 #CFCBCC 5420 5431 (131072,114) attname #313739 #D6AFDE 5384 5385 (131072,115) t_tid->bi_hi #313739 #3498DB 5386 5387 (131072,115) t_tid->bi_lo #313739 #3498DB 5388 5389 (131072,115) t_tid->offsetNumber #313739 #2980B9 5390 5391 (131072,115) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5392 5395 (131072,115) attrelid #313739 #CFCBCC 5396 5407 (131072,115) attname #313739 #D6AFDE 5352 5353 (131072,116) t_tid->bi_hi #313739 #3498DB 5354 5355 (131072,116) t_tid->bi_lo #313739 #3498DB 5356 5357 (131072,116) t_tid->offsetNumber #313739 #2980B9 5358 5359 (131072,116) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5360 5363 (131072,116) attrelid #313739 #CFCBCC 5364 5376 (131072,116) attname #313739 #D6AFDE 5328 5329 (131072,117) t_tid->bi_hi #313739 #3498DB 5330 5331 (131072,117) t_tid->bi_lo #313739 #3498DB 5332 5333 (131072,117) t_tid->offsetNumber #313739 #2980B9 5334 5335 (131072,117) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5336 5339 (131072,117) attrelid #313739 #CFCBCC 5340 5350 (131072,117) attname #313739 #D6AFDE 5304 5305 (131072,118) t_tid->bi_hi #313739 #3498DB 5306 5307 (131072,118) t_tid->bi_lo #313739 #3498DB 5308 5309 (131072,118) t_tid->offsetNumber #313739 #2980B9 5310 5311 (131072,118) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5312 5315 (131072,118) attrelid #313739 #CFCBCC 5316 5322 (131072,118) attname #313739 #D6AFDE 5272 5273 (131072,119) t_tid->bi_hi #313739 #3498DB 5274 5275 (131072,119) t_tid->bi_lo #313739 #3498DB 5276 5277 (131072,119) t_tid->offsetNumber #313739 #2980B9 5278 5279 (131072,119) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5280 5283 (131072,119) attrelid #313739 #CFCBCC 5284 5297 (131072,119) attname #313739 #D6AFDE 5248 5249 (131072,120) t_tid->bi_hi #313739 #3498DB 5250 5251 (131072,120) t_tid->bi_lo #313739 #3498DB 5252 5253 (131072,120) t_tid->offsetNumber #313739 #2980B9 5254 5255 (131072,120) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5256 5259 (131072,120) attrelid #313739 #CFCBCC 5260 5267 (131072,120) attname #313739 #D6AFDE 5224 5225 (131072,121) t_tid->bi_hi #313739 #3498DB 5226 5227 (131072,121) t_tid->bi_lo #313739 #3498DB 5228 5229 (131072,121) t_tid->offsetNumber #313739 #2980B9 5230 5231 (131072,121) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5232 5235 (131072,121) attrelid #313739 #CFCBCC 5236 5244 (131072,121) attname #313739 #D6AFDE 5200 5201 (131072,122) t_tid->bi_hi #313739 #3498DB 5202 5203 (131072,122) t_tid->bi_lo #313739 #3498DB 5204 5205 (131072,122) t_tid->offsetNumber #313739 #2980B9 5206 5207 (131072,122) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5208 5211 (131072,122) attrelid #313739 #CFCBCC 5212 5222 (131072,122) attname #313739 #D6AFDE 5176 5177 (131072,123) t_tid->bi_hi #313739 #3498DB 5178 5179 (131072,123) t_tid->bi_lo #313739 #3498DB 5180 5181 (131072,123) t_tid->offsetNumber #313739 #2980B9 5182 5183 (131072,123) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5184 5187 (131072,123) attrelid #313739 #CFCBCC 5188 5194 (131072,123) attname #313739 #D6AFDE 5152 5153 (131072,124) t_tid->bi_hi #313739 #3498DB 5154 5155 (131072,124) t_tid->bi_lo #313739 #3498DB 5156 5157 (131072,124) t_tid->offsetNumber #313739 #2980B9 5158 5159 (131072,124) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5160 5163 (131072,124) attrelid #313739 #CFCBCC 5164 5174 (131072,124) attname #313739 #D6AFDE 5128 5129 (131072,125) t_tid->bi_hi #313739 #3498DB 5130 5131 (131072,125) t_tid->bi_lo #313739 #3498DB 5132 5133 (131072,125) t_tid->offsetNumber #313739 #2980B9 5134 5135 (131072,125) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5136 5139 (131072,125) attrelid #313739 #CFCBCC 5140 5148 (131072,125) attname #313739 #D6AFDE 5096 5097 (131072,126) t_tid->bi_hi #313739 #3498DB 5098 5099 (131072,126) t_tid->bi_lo #313739 #3498DB 5100 5101 (131072,126) t_tid->offsetNumber #313739 #2980B9 5102 5103 (131072,126) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5104 5107 (131072,126) attrelid #313739 #CFCBCC 5108 5121 (131072,126) attname #313739 #D6AFDE 5072 5073 (131072,127) t_tid->bi_hi #313739 #3498DB 5074 5075 (131072,127) t_tid->bi_lo #313739 #3498DB 5076 5077 (131072,127) t_tid->offsetNumber #313739 #2980B9 5078 5079 (131072,127) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5080 5083 (131072,127) attrelid #313739 #CFCBCC 5084 5094 (131072,127) attname #313739 #D6AFDE 5048 5049 (131072,128) t_tid->bi_hi #313739 #3498DB 5050 5051 (131072,128) t_tid->bi_lo #313739 #3498DB 5052 5053 (131072,128) t_tid->offsetNumber #313739 #2980B9 5054 5055 (131072,128) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5056 5059 (131072,128) attrelid #313739 #CFCBCC 5060 5068 (131072,128) attname #313739 #D6AFDE 5024 5025 (131072,129) t_tid->bi_hi #313739 #3498DB 5026 5027 (131072,129) t_tid->bi_lo #313739 #3498DB 5028 5029 (131072,129) t_tid->offsetNumber #313739 #2980B9 5030 5031 (131072,129) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5032 5035 (131072,129) attrelid #313739 #CFCBCC 5036 5045 (131072,129) attname #313739 #D6AFDE 5000 5001 (131072,130) t_tid->bi_hi #313739 #3498DB 5002 5003 (131072,130) t_tid->bi_lo #313739 #3498DB 5004 5005 (131072,130) t_tid->offsetNumber #313739 #2980B9 5006 5007 (131072,130) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5008 5011 (131072,130) attrelid #313739 #CFCBCC 5012 5016 (131072,130) attname #313739 #D6AFDE 4976 4977 (131072,131) t_tid->bi_hi #313739 #3498DB 4978 4979 (131072,131) t_tid->bi_lo #313739 #3498DB 4980 4981 (131072,131) t_tid->offsetNumber #313739 #2980B9 4982 4983 (131072,131) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4984 4987 (131072,131) attrelid #313739 #CFCBCC 4988 4992 (131072,131) attname #313739 #D6AFDE 4952 4953 (131072,132) t_tid->bi_hi #313739 #3498DB 4954 4955 (131072,132) t_tid->bi_lo #313739 #3498DB 4956 4957 (131072,132) t_tid->offsetNumber #313739 #2980B9 4958 4959 (131072,132) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4960 4963 (131072,132) attrelid #313739 #CFCBCC 4964 4968 (131072,132) attname #313739 #D6AFDE 4928 4929 (131072,133) t_tid->bi_hi #313739 #3498DB 4930 4931 (131072,133) t_tid->bi_lo #313739 #3498DB 4932 4933 (131072,133) t_tid->offsetNumber #313739 #2980B9 4934 4935 (131072,133) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4936 4939 (131072,133) attrelid #313739 #CFCBCC 4940 4948 (131072,133) attname #313739 #D6AFDE 4904 4905 (131072,134) t_tid->bi_hi #313739 #3498DB 4906 4907 (131072,134) t_tid->bi_lo #313739 #3498DB 4908 4909 (131072,134) t_tid->offsetNumber #313739 #2980B9 4910 4911 (131072,134) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4912 4915 (131072,134) attrelid #313739 #CFCBCC 4916 4920 (131072,134) attname #313739 #D6AFDE 4880 4881 (131072,135) t_tid->bi_hi #313739 #3498DB 4882 4883 (131072,135) t_tid->bi_lo #313739 #3498DB 4884 4885 (131072,135) t_tid->offsetNumber #313739 #2980B9 4886 4887 (131072,135) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4888 4891 (131072,135) attrelid #313739 #CFCBCC 4892 4896 (131072,135) attname #313739 #D6AFDE 4856 4857 (131072,136) t_tid->bi_hi #313739 #3498DB 4858 4859 (131072,136) t_tid->bi_lo #313739 #3498DB 4860 4861 (131072,136) t_tid->offsetNumber #313739 #2980B9 4862 4863 (131072,136) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4864 4867 (131072,136) attrelid #313739 #CFCBCC 4868 4872 (131072,136) attname #313739 #D6AFDE 4832 4833 (131072,137) t_tid->bi_hi #313739 #3498DB 4834 4835 (131072,137) t_tid->bi_lo #313739 #3498DB 4836 4837 (131072,137) t_tid->offsetNumber #313739 #2980B9 4838 4839 (131072,137) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4840 4843 (131072,137) attrelid #313739 #CFCBCC 4844 4848 (131072,137) attname #313739 #D6AFDE 4808 4809 (131072,138) t_tid->bi_hi #313739 #3498DB 4810 4811 (131072,138) t_tid->bi_lo #313739 #3498DB 4812 4813 (131072,138) t_tid->offsetNumber #313739 #2980B9 4814 4815 (131072,138) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4816 4819 (131072,138) attrelid #313739 #CFCBCC 4820 4824 (131072,138) attname #313739 #D6AFDE 4792 4793 (131072,139) t_tid->bi_hi #313739 #3498DB 4794 4795 (131072,139) t_tid->bi_lo #313739 #3498DB 4796 4797 (131072,139) t_tid->offsetNumber #313739 #2980B9 4798 4799 (131072,139) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 4800 4803 (131072,139) attrelid #313739 #CFCBCC 4804 4807 (131072,139) attname #313739 #D6AFDE 4768 4769 (131072,140) t_tid->bi_hi #313739 #3498DB 4770 4771 (131072,140) t_tid->bi_lo #313739 #3498DB 4772 4773 (131072,140) t_tid->offsetNumber #313739 #2980B9 4774 4775 (131072,140) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4776 4779 (131072,140) attrelid #313739 #CFCBCC 4780 4786 (131072,140) attname #313739 #D6AFDE 4736 4737 (131072,141) t_tid->bi_hi #313739 #3498DB 4738 4739 (131072,141) t_tid->bi_lo #313739 #3498DB 4740 4741 (131072,141) t_tid->offsetNumber #313739 #2980B9 4742 4743 (131072,141) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4744 4747 (131072,141) attrelid #313739 #CFCBCC 4748 4762 (131072,141) attname #313739 #D6AFDE 4704 4705 (131072,142) t_tid->bi_hi #313739 #3498DB 4706 4707 (131072,142) t_tid->bi_lo #313739 #3498DB 4708 4709 (131072,142) t_tid->offsetNumber #313739 #2980B9 4710 4711 (131072,142) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4712 4715 (131072,142) attrelid #313739 #CFCBCC 4716 4730 (131072,142) attname #313739 #D6AFDE 4680 4681 (131072,143) t_tid->bi_hi #313739 #3498DB 4682 4683 (131072,143) t_tid->bi_lo #313739 #3498DB 4684 4685 (131072,143) t_tid->offsetNumber #313739 #2980B9 4686 4687 (131072,143) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4688 4691 (131072,143) attrelid #313739 #CFCBCC 4692 4703 (131072,143) attname #313739 #D6AFDE 4656 4657 (131072,144) t_tid->bi_hi #313739 #3498DB 4658 4659 (131072,144) t_tid->bi_lo #313739 #3498DB 4660 4661 (131072,144) t_tid->offsetNumber #313739 #2980B9 4662 4663 (131072,144) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4664 4667 (131072,144) attrelid #313739 #CFCBCC 4668 4679 (131072,144) attname #313739 #D6AFDE 4632 4633 (131072,145) t_tid->bi_hi #313739 #3498DB 4634 4635 (131072,145) t_tid->bi_lo #313739 #3498DB 4636 4637 (131072,145) t_tid->offsetNumber #313739 #2980B9 4638 4639 (131072,145) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4640 4643 (131072,145) attrelid #313739 #CFCBCC 4644 4655 (131072,145) attname #313739 #D6AFDE 4608 4609 (131072,146) t_tid->bi_hi #313739 #3498DB 4610 4611 (131072,146) t_tid->bi_lo #313739 #3498DB 4612 4613 (131072,146) t_tid->offsetNumber #313739 #2980B9 4614 4615 (131072,146) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4616 4619 (131072,146) attrelid #313739 #CFCBCC 4620 4626 (131072,146) attname #313739 #D6AFDE 4584 4585 (131072,147) t_tid->bi_hi #313739 #3498DB 4586 4587 (131072,147) t_tid->bi_lo #313739 #3498DB 4588 4589 (131072,147) t_tid->offsetNumber #313739 #2980B9 4590 4591 (131072,147) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4592 4595 (131072,147) attrelid #313739 #CFCBCC 4596 4605 (131072,147) attname #313739 #D6AFDE 4560 4561 (131072,148) t_tid->bi_hi #313739 #3498DB 4562 4563 (131072,148) t_tid->bi_lo #313739 #3498DB 4564 4565 (131072,148) t_tid->offsetNumber #313739 #2980B9 4566 4567 (131072,148) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4568 4571 (131072,148) attrelid #313739 #CFCBCC 4572 4579 (131072,148) attname #313739 #D6AFDE 4536 4537 (131072,149) t_tid->bi_hi #313739 #3498DB 4538 4539 (131072,149) t_tid->bi_lo #313739 #3498DB 4540 4541 (131072,149) t_tid->offsetNumber #313739 #2980B9 4542 4543 (131072,149) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4544 4547 (131072,149) attrelid #313739 #CFCBCC 4548 4559 (131072,149) attname #313739 #D6AFDE 4512 4513 (131072,150) t_tid->bi_hi #313739 #3498DB 4514 4515 (131072,150) t_tid->bi_lo #313739 #3498DB 4516 4517 (131072,150) t_tid->offsetNumber #313739 #2980B9 4518 4519 (131072,150) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4520 4523 (131072,150) attrelid #313739 #CFCBCC 4524 4531 (131072,150) attname #313739 #D6AFDE 4488 4489 (131072,151) t_tid->bi_hi #313739 #3498DB 4490 4491 (131072,151) t_tid->bi_lo #313739 #3498DB 4492 4493 (131072,151) t_tid->offsetNumber #313739 #2980B9 4494 4495 (131072,151) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4496 4499 (131072,151) attrelid #313739 #CFCBCC 4500 4507 (131072,151) attname #313739 #D6AFDE 4456 4457 (131072,152) t_tid->bi_hi #313739 #3498DB 4458 4459 (131072,152) t_tid->bi_lo #313739 #3498DB 4460 4461 (131072,152) t_tid->offsetNumber #313739 #2980B9 4462 4463 (131072,152) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4464 4467 (131072,152) attrelid #313739 #CFCBCC 4468 4480 (131072,152) attname #313739 #D6AFDE 4432 4433 (131072,153) t_tid->bi_hi #313739 #3498DB 4434 4435 (131072,153) t_tid->bi_lo #313739 #3498DB 4436 4437 (131072,153) t_tid->offsetNumber #313739 #2980B9 4438 4439 (131072,153) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4440 4443 (131072,153) attrelid #313739 #CFCBCC 4444 4451 (131072,153) attname #313739 #D6AFDE 4400 4401 (131072,154) t_tid->bi_hi #313739 #3498DB 4402 4403 (131072,154) t_tid->bi_lo #313739 #3498DB 4404 4405 (131072,154) t_tid->offsetNumber #313739 #2980B9 4406 4407 (131072,154) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4408 4411 (131072,154) attrelid #313739 #CFCBCC 4412 4424 (131072,154) attname #313739 #D6AFDE 4368 4369 (131072,155) t_tid->bi_hi #313739 #3498DB 4370 4371 (131072,155) t_tid->bi_lo #313739 #3498DB 4372 4373 (131072,155) t_tid->offsetNumber #313739 #2980B9 4374 4375 (131072,155) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4376 4379 (131072,155) attrelid #313739 #CFCBCC 4380 4395 (131072,155) attname #313739 #D6AFDE 4344 4345 (131072,156) t_tid->bi_hi #313739 #3498DB 4346 4347 (131072,156) t_tid->bi_lo #313739 #3498DB 4348 4349 (131072,156) t_tid->offsetNumber #313739 #2980B9 4350 4351 (131072,156) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4352 4355 (131072,156) attrelid #313739 #CFCBCC 4356 4364 (131072,156) attname #313739 #D6AFDE 4320 4321 (131072,157) t_tid->bi_hi #313739 #3498DB 4322 4323 (131072,157) t_tid->bi_lo #313739 #3498DB 4324 4325 (131072,157) t_tid->offsetNumber #313739 #2980B9 4326 4327 (131072,157) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4328 4331 (131072,157) attrelid #313739 #CFCBCC 4332 4340 (131072,157) attname #313739 #D6AFDE 4296 4297 (131072,158) t_tid->bi_hi #313739 #3498DB 4298 4299 (131072,158) t_tid->bi_lo #313739 #3498DB 4300 4301 (131072,158) t_tid->offsetNumber #313739 #2980B9 4302 4303 (131072,158) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4304 4307 (131072,158) attrelid #313739 #CFCBCC 4308 4319 (131072,158) attname #313739 #D6AFDE 4272 4273 (131072,159) t_tid->bi_hi #313739 #3498DB 4274 4275 (131072,159) t_tid->bi_lo #313739 #3498DB 4276 4277 (131072,159) t_tid->offsetNumber #313739 #2980B9 4278 4279 (131072,159) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4280 4283 (131072,159) attrelid #313739 #CFCBCC 4284 4293 (131072,159) attname #313739 #D6AFDE 4248 4249 (131072,160) t_tid->bi_hi #313739 #3498DB 4250 4251 (131072,160) t_tid->bi_lo #313739 #3498DB 4252 4253 (131072,160) t_tid->offsetNumber #313739 #2980B9 4254 4255 (131072,160) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4256 4259 (131072,160) attrelid #313739 #CFCBCC 4260 4270 (131072,160) attname #313739 #D6AFDE 4224 4225 (131072,161) t_tid->bi_hi #313739 #3498DB 4226 4227 (131072,161) t_tid->bi_lo #313739 #3498DB 4228 4229 (131072,161) t_tid->offsetNumber #313739 #2980B9 4230 4231 (131072,161) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4232 4235 (131072,161) attrelid #313739 #CFCBCC 4236 4243 (131072,161) attname #313739 #D6AFDE 4200 4201 (131072,162) t_tid->bi_hi #313739 #3498DB 4202 4203 (131072,162) t_tid->bi_lo #313739 #3498DB 4204 4205 (131072,162) t_tid->offsetNumber #313739 #2980B9 4206 4207 (131072,162) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4208 4211 (131072,162) attrelid #313739 #CFCBCC 4212 4221 (131072,162) attname #313739 #D6AFDE 4176 4177 (131072,163) t_tid->bi_hi #313739 #3498DB 4178 4179 (131072,163) t_tid->bi_lo #313739 #3498DB 4180 4181 (131072,163) t_tid->offsetNumber #313739 #2980B9 4182 4183 (131072,163) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4184 4187 (131072,163) attrelid #313739 #CFCBCC 4188 4194 (131072,163) attname #313739 #D6AFDE 4144 4145 (131072,164) t_tid->bi_hi #313739 #3498DB 4146 4147 (131072,164) t_tid->bi_lo #313739 #3498DB 4148 4149 (131072,164) t_tid->offsetNumber #313739 #2980B9 4150 4151 (131072,164) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4152 4155 (131072,164) attrelid #313739 #CFCBCC 4156 4168 (131072,164) attname #313739 #D6AFDE 4120 4121 (131072,165) t_tid->bi_hi #313739 #3498DB 4122 4123 (131072,165) t_tid->bi_lo #313739 #3498DB 4124 4125 (131072,165) t_tid->offsetNumber #313739 #2980B9 4126 4127 (131072,165) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4128 4131 (131072,165) attrelid #313739 #CFCBCC 4132 4143 (131072,165) attname #313739 #D6AFDE 4096 4097 (131072,166) t_tid->bi_hi #313739 #3498DB 4098 4099 (131072,166) t_tid->bi_lo #313739 #3498DB 4100 4101 (131072,166) t_tid->offsetNumber #313739 #2980B9 4102 4103 (131072,166) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4104 4107 (131072,166) attrelid #313739 #CFCBCC 4108 4119 (131072,166) attname #313739 #D6AFDE 4072 4073 (131072,167) t_tid->bi_hi #313739 #3498DB 4074 4075 (131072,167) t_tid->bi_lo #313739 #3498DB 4076 4077 (131072,167) t_tid->offsetNumber #313739 #2980B9 4078 4079 (131072,167) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4080 4083 (131072,167) attrelid #313739 #CFCBCC 4084 4095 (131072,167) attname #313739 #D6AFDE 4048 4049 (131072,168) t_tid->bi_hi #313739 #3498DB 4050 4051 (131072,168) t_tid->bi_lo #313739 #3498DB 4052 4053 (131072,168) t_tid->offsetNumber #313739 #2980B9 4054 4055 (131072,168) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4056 4059 (131072,168) attrelid #313739 #CFCBCC 4060 4068 (131072,168) attname #313739 #D6AFDE 4024 4025 (131072,169) t_tid->bi_hi #313739 #3498DB 4026 4027 (131072,169) t_tid->bi_lo #313739 #3498DB 4028 4029 (131072,169) t_tid->offsetNumber #313739 #2980B9 4030 4031 (131072,169) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4032 4035 (131072,169) attrelid #313739 #CFCBCC 4036 4040 (131072,169) attname #313739 #D6AFDE 4000 4001 (131072,170) t_tid->bi_hi #313739 #3498DB 4002 4003 (131072,170) t_tid->bi_lo #313739 #3498DB 4004 4005 (131072,170) t_tid->offsetNumber #313739 #2980B9 4006 4007 (131072,170) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4008 4011 (131072,170) attrelid #313739 #CFCBCC 4012 4016 (131072,170) attname #313739 #D6AFDE 3976 3977 (131072,171) t_tid->bi_hi #313739 #3498DB 3978 3979 (131072,171) t_tid->bi_lo #313739 #3498DB 3980 3981 (131072,171) t_tid->offsetNumber #313739 #2980B9 3982 3983 (131072,171) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3984 3987 (131072,171) attrelid #313739 #CFCBCC 3988 3992 (131072,171) attname #313739 #D6AFDE 3952 3953 (131072,172) t_tid->bi_hi #313739 #3498DB 3954 3955 (131072,172) t_tid->bi_lo #313739 #3498DB 3956 3957 (131072,172) t_tid->offsetNumber #313739 #2980B9 3958 3959 (131072,172) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3960 3963 (131072,172) attrelid #313739 #CFCBCC 3964 3968 (131072,172) attname #313739 #D6AFDE 3928 3929 (131072,173) t_tid->bi_hi #313739 #3498DB 3930 3931 (131072,173) t_tid->bi_lo #313739 #3498DB 3932 3933 (131072,173) t_tid->offsetNumber #313739 #2980B9 3934 3935 (131072,173) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3936 3939 (131072,173) attrelid #313739 #CFCBCC 3940 3944 (131072,173) attname #313739 #D6AFDE 3912 3913 (131072,174) t_tid->bi_hi #313739 #3498DB 3914 3915 (131072,174) t_tid->bi_lo #313739 #3498DB 3916 3917 (131072,174) t_tid->offsetNumber #313739 #2980B9 3918 3919 (131072,174) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 3920 3923 (131072,174) attrelid #313739 #CFCBCC 3924 3927 (131072,174) attname #313739 #D6AFDE 3888 3889 (131072,175) t_tid->bi_hi #313739 #3498DB 3890 3891 (131072,175) t_tid->bi_lo #313739 #3498DB 3892 3893 (131072,175) t_tid->offsetNumber #313739 #2980B9 3894 3895 (131072,175) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3896 3899 (131072,175) attrelid #313739 #CFCBCC 3900 3906 (131072,175) attname #313739 #D6AFDE 3856 3857 (131072,176) t_tid->bi_hi #313739 #3498DB 3858 3859 (131072,176) t_tid->bi_lo #313739 #3498DB 3860 3861 (131072,176) t_tid->offsetNumber #313739 #2980B9 3862 3863 (131072,176) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3864 3867 (131072,176) attrelid #313739 #CFCBCC 3868 3881 (131072,176) attname #313739 #D6AFDE 3832 3833 (131072,177) t_tid->bi_hi #313739 #3498DB 3834 3835 (131072,177) t_tid->bi_lo #313739 #3498DB 3836 3837 (131072,177) t_tid->offsetNumber #313739 #2980B9 3838 3839 (131072,177) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3840 3843 (131072,177) attrelid #313739 #CFCBCC 3844 3849 (131072,177) attname #313739 #D6AFDE 3808 3809 (131072,178) t_tid->bi_hi #313739 #3498DB 3810 3811 (131072,178) t_tid->bi_lo #313739 #3498DB 3812 3813 (131072,178) t_tid->offsetNumber #313739 #2980B9 3814 3815 (131072,178) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3816 3819 (131072,178) attrelid #313739 #CFCBCC 3820 3829 (131072,178) attname #313739 #D6AFDE 3784 3785 (131072,179) t_tid->bi_hi #313739 #3498DB 3786 3787 (131072,179) t_tid->bi_lo #313739 #3498DB 3788 3789 (131072,179) t_tid->offsetNumber #313739 #2980B9 3790 3791 (131072,179) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3792 3795 (131072,179) attrelid #313739 #CFCBCC 3796 3807 (131072,179) attname #313739 #D6AFDE 3752 3753 (131072,180) t_tid->bi_hi #313739 #3498DB 3754 3755 (131072,180) t_tid->bi_lo #313739 #3498DB 3756 3757 (131072,180) t_tid->offsetNumber #313739 #2980B9 3758 3759 (131072,180) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3760 3763 (131072,180) attrelid #313739 #CFCBCC 3764 3783 (131072,180) attname #313739 #D6AFDE 3720 3721 (131072,181) t_tid->bi_hi #313739 #3498DB 3722 3723 (131072,181) t_tid->bi_lo #313739 #3498DB 3724 3725 (131072,181) t_tid->offsetNumber #313739 #2980B9 3726 3727 (131072,181) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3728 3731 (131072,181) attrelid #313739 #CFCBCC 3732 3744 (131072,181) attname #313739 #D6AFDE 3696 3697 (131072,182) t_tid->bi_hi #313739 #3498DB 3698 3699 (131072,182) t_tid->bi_lo #313739 #3498DB 3700 3701 (131072,182) t_tid->offsetNumber #313739 #2980B9 3702 3703 (131072,182) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3704 3707 (131072,182) attrelid #313739 #CFCBCC 3708 3719 (131072,182) attname #313739 #D6AFDE 3672 3673 (131072,183) t_tid->bi_hi #313739 #3498DB 3674 3675 (131072,183) t_tid->bi_lo #313739 #3498DB 3676 3677 (131072,183) t_tid->offsetNumber #313739 #2980B9 3678 3679 (131072,183) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3680 3683 (131072,183) attrelid #313739 #CFCBCC 3684 3694 (131072,183) attname #313739 #D6AFDE 3648 3649 (131072,184) t_tid->bi_hi #313739 #3498DB 3650 3651 (131072,184) t_tid->bi_lo #313739 #3498DB 3652 3653 (131072,184) t_tid->offsetNumber #313739 #2980B9 3654 3655 (131072,184) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3656 3659 (131072,184) attrelid #313739 #CFCBCC 3660 3671 (131072,184) attname #313739 #D6AFDE 3616 3617 (131072,185) t_tid->bi_hi #313739 #3498DB 3618 3619 (131072,185) t_tid->bi_lo #313739 #3498DB 3620 3621 (131072,185) t_tid->offsetNumber #313739 #2980B9 3622 3623 (131072,185) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3624 3627 (131072,185) attrelid #313739 #CFCBCC 3628 3642 (131072,185) attname #313739 #D6AFDE 3584 3585 (131072,186) t_tid->bi_hi #313739 #3498DB 3586 3587 (131072,186) t_tid->bi_lo #313739 #3498DB 3588 3589 (131072,186) t_tid->offsetNumber #313739 #2980B9 3590 3591 (131072,186) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3592 3595 (131072,186) attrelid #313739 #CFCBCC 3596 3610 (131072,186) attname #313739 #D6AFDE 3552 3553 (131072,187) t_tid->bi_hi #313739 #3498DB 3554 3555 (131072,187) t_tid->bi_lo #313739 #3498DB 3556 3557 (131072,187) t_tid->offsetNumber #313739 #2980B9 3558 3559 (131072,187) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3560 3563 (131072,187) attrelid #313739 #CFCBCC 3564 3578 (131072,187) attname #313739 #D6AFDE 3520 3521 (131072,188) t_tid->bi_hi #313739 #3498DB 3522 3523 (131072,188) t_tid->bi_lo #313739 #3498DB 3524 3525 (131072,188) t_tid->offsetNumber #313739 #2980B9 3526 3527 (131072,188) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3528 3531 (131072,188) attrelid #313739 #CFCBCC 3532 3546 (131072,188) attname #313739 #D6AFDE 3496 3497 (131072,189) t_tid->bi_hi #313739 #3498DB 3498 3499 (131072,189) t_tid->bi_lo #313739 #3498DB 3500 3501 (131072,189) t_tid->offsetNumber #313739 #2980B9 3502 3503 (131072,189) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3504 3507 (131072,189) attrelid #313739 #CFCBCC 3508 3519 (131072,189) attname #313739 #D6AFDE 3472 3473 (131072,190) t_tid->bi_hi #313739 #3498DB 3474 3475 (131072,190) t_tid->bi_lo #313739 #3498DB 3476 3477 (131072,190) t_tid->offsetNumber #313739 #2980B9 3478 3479 (131072,190) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3480 3483 (131072,190) attrelid #313739 #CFCBCC 3484 3491 (131072,190) attname #313739 #D6AFDE 3448 3449 (131072,191) t_tid->bi_hi #313739 #3498DB 3450 3451 (131072,191) t_tid->bi_lo #313739 #3498DB 3452 3453 (131072,191) t_tid->offsetNumber #313739 #2980B9 3454 3455 (131072,191) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3456 3459 (131072,191) attrelid #313739 #CFCBCC 3460 3470 (131072,191) attname #313739 #D6AFDE 3424 3425 (131072,192) t_tid->bi_hi #313739 #3498DB 3426 3427 (131072,192) t_tid->bi_lo #313739 #3498DB 3428 3429 (131072,192) t_tid->offsetNumber #313739 #2980B9 3430 3431 (131072,192) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3432 3435 (131072,192) attrelid #313739 #CFCBCC 3436 3443 (131072,192) attname #313739 #D6AFDE 3392 3393 (131072,193) t_tid->bi_hi #313739 #3498DB 3394 3395 (131072,193) t_tid->bi_lo #313739 #3498DB 3396 3397 (131072,193) t_tid->offsetNumber #313739 #2980B9 3398 3399 (131072,193) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3400 3403 (131072,193) attrelid #313739 #CFCBCC 3404 3416 (131072,193) attname #313739 #D6AFDE 3368 3369 (131072,194) t_tid->bi_hi #313739 #3498DB 3370 3371 (131072,194) t_tid->bi_lo #313739 #3498DB 3372 3373 (131072,194) t_tid->offsetNumber #313739 #2980B9 3374 3375 (131072,194) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3376 3379 (131072,194) attrelid #313739 #CFCBCC 3380 3388 (131072,194) attname #313739 #D6AFDE 3344 3345 (131072,195) t_tid->bi_hi #313739 #3498DB 3346 3347 (131072,195) t_tid->bi_lo #313739 #3498DB 3348 3349 (131072,195) t_tid->offsetNumber #313739 #2980B9 3350 3351 (131072,195) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3352 3355 (131072,195) attrelid #313739 #CFCBCC 3356 3365 (131072,195) attname #313739 #D6AFDE 3320 3321 (131072,196) t_tid->bi_hi #313739 #3498DB 3322 3323 (131072,196) t_tid->bi_lo #313739 #3498DB 3324 3325 (131072,196) t_tid->offsetNumber #313739 #2980B9 3326 3327 (131072,196) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3328 3331 (131072,196) attrelid #313739 #CFCBCC 3332 3342 (131072,196) attname #313739 #D6AFDE 3296 3297 (131072,197) t_tid->bi_hi #313739 #3498DB 3298 3299 (131072,197) t_tid->bi_lo #313739 #3498DB 3300 3301 (131072,197) t_tid->offsetNumber #313739 #2980B9 3302 3303 (131072,197) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3304 3307 (131072,197) attrelid #313739 #CFCBCC 3308 3316 (131072,197) attname #313739 #D6AFDE 3272 3273 (131072,198) t_tid->bi_hi #313739 #3498DB 3274 3275 (131072,198) t_tid->bi_lo #313739 #3498DB 3276 3277 (131072,198) t_tid->offsetNumber #313739 #2980B9 3278 3279 (131072,198) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3280 3283 (131072,198) attrelid #313739 #CFCBCC 3284 3292 (131072,198) attname #313739 #D6AFDE 3240 3241 (131072,199) t_tid->bi_hi #313739 #3498DB 3242 3243 (131072,199) t_tid->bi_lo #313739 #3498DB 3244 3245 (131072,199) t_tid->offsetNumber #313739 #2980B9 3246 3247 (131072,199) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3248 3251 (131072,199) attrelid #313739 #CFCBCC 3252 3264 (131072,199) attname #313739 #D6AFDE 3208 3209 (131072,200) t_tid->bi_hi #313739 #3498DB 3210 3211 (131072,200) t_tid->bi_lo #313739 #3498DB 3212 3213 (131072,200) t_tid->offsetNumber #313739 #2980B9 3214 3215 (131072,200) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3216 3219 (131072,200) attrelid #313739 #CFCBCC 3220 3234 (131072,200) attname #313739 #D6AFDE 3176 3177 (131072,201) t_tid->bi_hi #313739 #3498DB 3178 3179 (131072,201) t_tid->bi_lo #313739 #3498DB 3180 3181 (131072,201) t_tid->offsetNumber #313739 #2980B9 3182 3183 (131072,201) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3184 3187 (131072,201) attrelid #313739 #CFCBCC 3188 3200 (131072,201) attname #313739 #D6AFDE 3152 3153 (131072,202) t_tid->bi_hi #313739 #3498DB 3154 3155 (131072,202) t_tid->bi_lo #313739 #3498DB 3156 3157 (131072,202) t_tid->offsetNumber #313739 #2980B9 3158 3159 (131072,202) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3160 3163 (131072,202) attrelid #313739 #CFCBCC 3164 3174 (131072,202) attname #313739 #D6AFDE 3120 3121 (131072,203) t_tid->bi_hi #313739 #3498DB 3122 3123 (131072,203) t_tid->bi_lo #313739 #3498DB 3124 3125 (131072,203) t_tid->offsetNumber #313739 #2980B9 3126 3127 (131072,203) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3128 3131 (131072,203) attrelid #313739 #CFCBCC 3132 3146 (131072,203) attname #313739 #D6AFDE 3088 3089 (131072,204) t_tid->bi_hi #313739 #3498DB 3090 3091 (131072,204) t_tid->bi_lo #313739 #3498DB 3092 3093 (131072,204) t_tid->offsetNumber #313739 #2980B9 3094 3095 (131072,204) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3096 3099 (131072,204) attrelid #313739 #CFCBCC 3100 3113 (131072,204) attname #313739 #D6AFDE 3056 3057 (131072,205) t_tid->bi_hi #313739 #3498DB 3058 3059 (131072,205) t_tid->bi_lo #313739 #3498DB 3060 3061 (131072,205) t_tid->offsetNumber #313739 #2980B9 3062 3063 (131072,205) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3064 3067 (131072,205) attrelid #313739 #CFCBCC 3068 3081 (131072,205) attname #313739 #D6AFDE 3032 3033 (131072,206) t_tid->bi_hi #313739 #3498DB 3034 3035 (131072,206) t_tid->bi_lo #313739 #3498DB 3036 3037 (131072,206) t_tid->offsetNumber #313739 #2980B9 3038 3039 (131072,206) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3040 3043 (131072,206) attrelid #313739 #CFCBCC 3044 3053 (131072,206) attname #313739 #D6AFDE 3008 3009 (131072,207) t_tid->bi_hi #313739 #3498DB 3010 3011 (131072,207) t_tid->bi_lo #313739 #3498DB 3012 3013 (131072,207) t_tid->offsetNumber #313739 #2980B9 3014 3015 (131072,207) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3016 3019 (131072,207) attrelid #313739 #CFCBCC 3020 3027 (131072,207) attname #313739 #D6AFDE 2984 2985 (131072,208) t_tid->bi_hi #313739 #3498DB 2986 2987 (131072,208) t_tid->bi_lo #313739 #3498DB 2988 2989 (131072,208) t_tid->offsetNumber #313739 #2980B9 2990 2991 (131072,208) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2992 2995 (131072,208) attrelid #313739 #CFCBCC 2996 3004 (131072,208) attname #313739 #D6AFDE 2960 2961 (131072,209) t_tid->bi_hi #313739 #3498DB 2962 2963 (131072,209) t_tid->bi_lo #313739 #3498DB 2964 2965 (131072,209) t_tid->offsetNumber #313739 #2980B9 2966 2967 (131072,209) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2968 2971 (131072,209) attrelid #313739 #CFCBCC 2972 2976 (131072,209) attname #313739 #D6AFDE 2936 2937 (131072,210) t_tid->bi_hi #313739 #3498DB 2938 2939 (131072,210) t_tid->bi_lo #313739 #3498DB 2940 2941 (131072,210) t_tid->offsetNumber #313739 #2980B9 2942 2943 (131072,210) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2944 2947 (131072,210) attrelid #313739 #CFCBCC 2948 2952 (131072,210) attname #313739 #D6AFDE 2912 2913 (131072,211) t_tid->bi_hi #313739 #3498DB 2914 2915 (131072,211) t_tid->bi_lo #313739 #3498DB 2916 2917 (131072,211) t_tid->offsetNumber #313739 #2980B9 2918 2919 (131072,211) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2920 2923 (131072,211) attrelid #313739 #CFCBCC 2924 2928 (131072,211) attname #313739 #D6AFDE 2888 2889 (131072,212) t_tid->bi_hi #313739 #3498DB 2890 2891 (131072,212) t_tid->bi_lo #313739 #3498DB 2892 2893 (131072,212) t_tid->offsetNumber #313739 #2980B9 2894 2895 (131072,212) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2896 2899 (131072,212) attrelid #313739 #CFCBCC 2900 2904 (131072,212) attname #313739 #D6AFDE 2864 2865 (131072,213) t_tid->bi_hi #313739 #3498DB 2866 2867 (131072,213) t_tid->bi_lo #313739 #3498DB 2868 2869 (131072,213) t_tid->offsetNumber #313739 #2980B9 2870 2871 (131072,213) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2872 2875 (131072,213) attrelid #313739 #CFCBCC 2876 2880 (131072,213) attname #313739 #D6AFDE 2848 2849 (131072,214) t_tid->bi_hi #313739 #3498DB 2850 2851 (131072,214) t_tid->bi_lo #313739 #3498DB 2852 2853 (131072,214) t_tid->offsetNumber #313739 #2980B9 2854 2855 (131072,214) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 2856 2859 (131072,214) attrelid #313739 #CFCBCC 2860 2863 (131072,214) attname #313739 #D6AFDE 2816 2817 (131072,215) t_tid->bi_hi #313739 #3498DB 2818 2819 (131072,215) t_tid->bi_lo #313739 #3498DB 2820 2821 (131072,215) t_tid->offsetNumber #313739 #2980B9 2822 2823 (131072,215) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2824 2827 (131072,215) attrelid #313739 #CFCBCC 2828 2840 (131072,215) attname #313739 #D6AFDE 2792 2793 (131072,216) t_tid->bi_hi #313739 #3498DB 2794 2795 (131072,216) t_tid->bi_lo #313739 #3498DB 2796 2797 (131072,216) t_tid->offsetNumber #313739 #2980B9 2798 2799 (131072,216) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2800 2803 (131072,216) attrelid #313739 #CFCBCC 2804 2815 (131072,216) attname #313739 #D6AFDE 2760 2761 (131072,217) t_tid->bi_hi #313739 #3498DB 2762 2763 (131072,217) t_tid->bi_lo #313739 #3498DB 2764 2765 (131072,217) t_tid->offsetNumber #313739 #2980B9 2766 2767 (131072,217) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2768 2771 (131072,217) attrelid #313739 #CFCBCC 2772 2784 (131072,217) attname #313739 #D6AFDE 2736 2737 (131072,218) t_tid->bi_hi #313739 #3498DB 2738 2739 (131072,218) t_tid->bi_lo #313739 #3498DB 2740 2741 (131072,218) t_tid->offsetNumber #313739 #2980B9 2742 2743 (131072,218) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2744 2747 (131072,218) attrelid #313739 #CFCBCC 2748 2759 (131072,218) attname #313739 #D6AFDE 2704 2705 (131072,219) t_tid->bi_hi #313739 #3498DB 2706 2707 (131072,219) t_tid->bi_lo #313739 #3498DB 2708 2709 (131072,219) t_tid->offsetNumber #313739 #2980B9 2710 2711 (131072,219) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2712 2715 (131072,219) attrelid #313739 #CFCBCC 2716 2729 (131072,219) attname #313739 #D6AFDE 2680 2681 (131072,220) t_tid->bi_hi #313739 #3498DB 2682 2683 (131072,220) t_tid->bi_lo #313739 #3498DB 2684 2685 (131072,220) t_tid->offsetNumber #313739 #2980B9 2686 2687 (131072,220) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2688 2691 (131072,220) attrelid #313739 #CFCBCC 2692 2702 (131072,220) attname #313739 #D6AFDE 2656 2657 (131072,221) t_tid->bi_hi #313739 #3498DB 2658 2659 (131072,221) t_tid->bi_lo #313739 #3498DB 2660 2661 (131072,221) t_tid->offsetNumber #313739 #2980B9 2662 2663 (131072,221) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2664 2667 (131072,221) attrelid #313739 #CFCBCC 2668 2675 (131072,221) attname #313739 #D6AFDE 2632 2633 (131072,222) t_tid->bi_hi #313739 #3498DB 2634 2635 (131072,222) t_tid->bi_lo #313739 #3498DB 2636 2637 (131072,222) t_tid->offsetNumber #313739 #2980B9 2638 2639 (131072,222) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2640 2643 (131072,222) attrelid #313739 #CFCBCC 2644 2655 (131072,222) attname #313739 #D6AFDE 2600 2601 (131072,223) t_tid->bi_hi #313739 #3498DB 2602 2603 (131072,223) t_tid->bi_lo #313739 #3498DB 2604 2605 (131072,223) t_tid->offsetNumber #313739 #2980B9 2606 2607 (131072,223) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2608 2611 (131072,223) attrelid #313739 #CFCBCC 2612 2626 (131072,223) attname #313739 #D6AFDE 2576 2577 (131072,224) t_tid->bi_hi #313739 #3498DB 2578 2579 (131072,224) t_tid->bi_lo #313739 #3498DB 2580 2581 (131072,224) t_tid->offsetNumber #313739 #2980B9 2582 2583 (131072,224) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2584 2587 (131072,224) attrelid #313739 #CFCBCC 2588 2596 (131072,224) attname #313739 #D6AFDE 2544 2545 (131072,225) t_tid->bi_hi #313739 #3498DB 2546 2547 (131072,225) t_tid->bi_lo #313739 #3498DB 2548 2549 (131072,225) t_tid->offsetNumber #313739 #2980B9 2550 2551 (131072,225) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2552 2555 (131072,225) attrelid #313739 #CFCBCC 2556 2569 (131072,225) attname #313739 #D6AFDE 2520 2521 (131072,226) t_tid->bi_hi #313739 #3498DB 2522 2523 (131072,226) t_tid->bi_lo #313739 #3498DB 2524 2525 (131072,226) t_tid->offsetNumber #313739 #2980B9 2526 2527 (131072,226) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2528 2531 (131072,226) attrelid #313739 #CFCBCC 2532 2540 (131072,226) attname #313739 #D6AFDE 2496 2497 (131072,227) t_tid->bi_hi #313739 #3498DB 2498 2499 (131072,227) t_tid->bi_lo #313739 #3498DB 2500 2501 (131072,227) t_tid->offsetNumber #313739 #2980B9 2502 2503 (131072,227) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2504 2507 (131072,227) attrelid #313739 #CFCBCC 2508 2512 (131072,227) attname #313739 #D6AFDE 2472 2473 (131072,228) t_tid->bi_hi #313739 #3498DB 2474 2475 (131072,228) t_tid->bi_lo #313739 #3498DB 2476 2477 (131072,228) t_tid->offsetNumber #313739 #2980B9 2478 2479 (131072,228) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2480 2483 (131072,228) attrelid #313739 #CFCBCC 2484 2488 (131072,228) attname #313739 #D6AFDE 2440 2441 (131072,229) t_tid->bi_hi #313739 #3498DB 2442 2443 (131072,229) t_tid->bi_lo #313739 #3498DB 2444 2445 (131072,229) t_tid->offsetNumber #313739 #2980B9 2446 2447 (131072,229) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2448 2451 (131072,229) attrelid #313739 #CFCBCC 2452 2464 (131072,229) attname #313739 #D6AFDE 2416 2417 (131072,230) t_tid->bi_hi #313739 #3498DB 2418 2419 (131072,230) t_tid->bi_lo #313739 #3498DB 2420 2421 (131072,230) t_tid->offsetNumber #313739 #2980B9 2422 2423 (131072,230) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2424 2427 (131072,230) attrelid #313739 #CFCBCC 2428 2432 (131072,230) attname #313739 #D6AFDE 2392 2393 (131072,231) t_tid->bi_hi #313739 #3498DB 2394 2395 (131072,231) t_tid->bi_lo #313739 #3498DB 2396 2397 (131072,231) t_tid->offsetNumber #313739 #2980B9 2398 2399 (131072,231) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2400 2403 (131072,231) attrelid #313739 #CFCBCC 2404 2408 (131072,231) attname #313739 #D6AFDE 2368 2369 (131072,232) t_tid->bi_hi #313739 #3498DB 2370 2371 (131072,232) t_tid->bi_lo #313739 #3498DB 2372 2373 (131072,232) t_tid->offsetNumber #313739 #2980B9 2374 2375 (131072,232) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2376 2379 (131072,232) attrelid #313739 #CFCBCC 2380 2384 (131072,232) attname #313739 #D6AFDE 2344 2345 (131072,233) t_tid->bi_hi #313739 #3498DB 2346 2347 (131072,233) t_tid->bi_lo #313739 #3498DB 2348 2349 (131072,233) t_tid->offsetNumber #313739 #2980B9 2350 2351 (131072,233) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2352 2355 (131072,233) attrelid #313739 #CFCBCC 2356 2363 (131072,233) attname #313739 #D6AFDE 2320 2321 (131072,234) t_tid->bi_hi #313739 #3498DB 2322 2323 (131072,234) t_tid->bi_lo #313739 #3498DB 2324 2325 (131072,234) t_tid->offsetNumber #313739 #2980B9 2326 2327 (131072,234) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2328 2331 (131072,234) attrelid #313739 #CFCBCC 2332 2338 (131072,234) attname #313739 #D6AFDE 2296 2297 (131072,235) t_tid->bi_hi #313739 #3498DB 2298 2299 (131072,235) t_tid->bi_lo #313739 #3498DB 2300 2301 (131072,235) t_tid->offsetNumber #313739 #2980B9 2302 2303 (131072,235) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2304 2307 (131072,235) attrelid #313739 #CFCBCC 2308 2314 (131072,235) attname #313739 #D6AFDE 2272 2273 (131072,236) t_tid->bi_hi #313739 #3498DB 2274 2275 (131072,236) t_tid->bi_lo #313739 #3498DB 2276 2277 (131072,236) t_tid->offsetNumber #313739 #2980B9 2278 2279 (131072,236) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2280 2283 (131072,236) attrelid #313739 #CFCBCC 2284 2292 (131072,236) attname #313739 #D6AFDE 2248 2249 (131072,237) t_tid->bi_hi #313739 #3498DB 2250 2251 (131072,237) t_tid->bi_lo #313739 #3498DB 2252 2253 (131072,237) t_tid->offsetNumber #313739 #2980B9 2254 2255 (131072,237) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2256 2259 (131072,237) attrelid #313739 #CFCBCC 2260 2264 (131072,237) attname #313739 #D6AFDE 2224 2225 (131072,238) t_tid->bi_hi #313739 #3498DB 2226 2227 (131072,238) t_tid->bi_lo #313739 #3498DB 2228 2229 (131072,238) t_tid->offsetNumber #313739 #2980B9 2230 2231 (131072,238) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2232 2235 (131072,238) attrelid #313739 #CFCBCC 2236 2240 (131072,238) attname #313739 #D6AFDE 2200 2201 (131072,239) t_tid->bi_hi #313739 #3498DB 2202 2203 (131072,239) t_tid->bi_lo #313739 #3498DB 2204 2205 (131072,239) t_tid->offsetNumber #313739 #2980B9 2206 2207 (131072,239) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2208 2211 (131072,239) attrelid #313739 #CFCBCC 2212 2216 (131072,239) attname #313739 #D6AFDE 2176 2177 (131072,240) t_tid->bi_hi #313739 #3498DB 2178 2179 (131072,240) t_tid->bi_lo #313739 #3498DB 2180 2181 (131072,240) t_tid->offsetNumber #313739 #2980B9 2182 2183 (131072,240) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2184 2187 (131072,240) attrelid #313739 #CFCBCC 2188 2192 (131072,240) attname #313739 #D6AFDE 2152 2153 (131072,241) t_tid->bi_hi #313739 #3498DB 2154 2155 (131072,241) t_tid->bi_lo #313739 #3498DB 2156 2157 (131072,241) t_tid->offsetNumber #313739 #2980B9 2158 2159 (131072,241) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2160 2163 (131072,241) attrelid #313739 #CFCBCC 2164 2168 (131072,241) attname #313739 #D6AFDE 2128 2129 (131072,242) t_tid->bi_hi #313739 #3498DB 2130 2131 (131072,242) t_tid->bi_lo #313739 #3498DB 2132 2133 (131072,242) t_tid->offsetNumber #313739 #2980B9 2134 2135 (131072,242) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2136 2139 (131072,242) attrelid #313739 #CFCBCC 2140 2146 (131072,242) attname #313739 #D6AFDE 2096 2097 (131072,243) t_tid->bi_hi #313739 #3498DB 2098 2099 (131072,243) t_tid->bi_lo #313739 #3498DB 2100 2101 (131072,243) t_tid->offsetNumber #313739 #2980B9 2102 2103 (131072,243) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2104 2107 (131072,243) attrelid #313739 #CFCBCC 2108 2120 (131072,243) attname #313739 #D6AFDE 2072 2073 (131072,244) t_tid->bi_hi #313739 #3498DB 2074 2075 (131072,244) t_tid->bi_lo #313739 #3498DB 2076 2077 (131072,244) t_tid->offsetNumber #313739 #2980B9 2078 2079 (131072,244) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2080 2083 (131072,244) attrelid #313739 #CFCBCC 2084 2094 (131072,244) attname #313739 #D6AFDE 2040 2041 (131072,245) t_tid->bi_hi #313739 #3498DB 2042 2043 (131072,245) t_tid->bi_lo #313739 #3498DB 2044 2045 (131072,245) t_tid->offsetNumber #313739 #2980B9 2046 2047 (131072,245) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2048 2051 (131072,245) attrelid #313739 #CFCBCC 2052 2064 (131072,245) attname #313739 #D6AFDE 2016 2017 (131072,246) t_tid->bi_hi #313739 #3498DB 2018 2019 (131072,246) t_tid->bi_lo #313739 #3498DB 2020 2021 (131072,246) t_tid->offsetNumber #313739 #2980B9 2022 2023 (131072,246) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2024 2027 (131072,246) attrelid #313739 #CFCBCC 2028 2036 (131072,246) attname #313739 #D6AFDE 1992 1993 (131072,247) t_tid->bi_hi #313739 #3498DB 1994 1995 (131072,247) t_tid->bi_lo #313739 #3498DB 1996 1997 (131072,247) t_tid->offsetNumber #313739 #2980B9 1998 1999 (131072,247) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2000 2003 (131072,247) attrelid #313739 #CFCBCC 2004 2010 (131072,247) attname #313739 #D6AFDE 1960 1961 (131072,248) t_tid->bi_hi #313739 #3498DB 1962 1963 (131072,248) t_tid->bi_lo #313739 #3498DB 1964 1965 (131072,248) t_tid->offsetNumber #313739 #2980B9 1966 1967 (131072,248) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 1968 1971 (131072,248) attrelid #313739 #CFCBCC 1972 1984 (131072,248) attname #313739 #D6AFDE 1928 1929 (131072,249) t_tid->bi_hi #313739 #3498DB 1930 1931 (131072,249) t_tid->bi_lo #313739 #3498DB 1932 1933 (131072,249) t_tid->offsetNumber #313739 #2980B9 1934 1935 (131072,249) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 1936 1939 (131072,249) attrelid #313739 #CFCBCC 1940 1953 (131072,249) attname #313739 #D6AFDE 1896 1897 (131072,250) t_tid->bi_hi #313739 #3498DB 1898 1899 (131072,250) t_tid->bi_lo #313739 #3498DB 1900 1901 (131072,250) t_tid->offsetNumber #313739 #2980B9 1902 1903 (131072,250) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 1904 1907 (131072,250) attrelid #313739 #CFCBCC 1908 1921 (131072,250) attname #313739 #D6AFDE 1872 1873 (131072,251) t_tid->bi_hi #313739 #3498DB 1874 1875 (131072,251) t_tid->bi_lo #313739 #3498DB 1876 1877 (131072,251) t_tid->offsetNumber #313739 #2980B9 1878 1879 (131072,251) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 1880 1883 (131072,251) attrelid #313739 #CFCBCC 1884 1894 (131072,251) attname #313739 #D6AFDE 8176 8179 block 131072 (level 0) btpo_prev #313739 #50E964 8180 8183 block 131072 (level 0) btpo_next #313739 #50E964 8184 8187 block 131072 (level 0) btpo_level #313739 #50E964 8188 8189 block 131072 (level 0) btpo_flags - BTP_LEAF #313739 #50E964 8190 8191 block 131072 (level 0) btpo_cycleid #313739 #50E964 ================================================ FILE: t/expected_empty_lsn.tags ================================================ ================================================ FILE: t/expected_leaf_idx.tags ================================================ 0 8191 block 131072 (level 0) leaf page #313739 #16A085 ================================================ FILE: t/expected_no_attributes.tags ================================================ 0 7 block 0 LSN: 0/00000028 #313739 #E9E850 8 9 block 0 checksum #313739 #16A085 10 11 block 0 pd_flags - PD_ALL_VISIBLE #313739 #F1C40F 12 13 block 0 pd_lower #313739 #E96950 14 15 block 0 pd_upper #313739 #E96950 16 17 block 0 pd_special #313739 #50E964 18 19 block 0 pd_pagesize_version #313739 #97333D 20 23 block 0 pd_prune_xid #313739 #E74C3C 24 27 (0,1) lp_len: 144, lp_off: 8048, lp_flags: LP_NORMAL #313739 #3498DB 28 31 (0,2) lp_len: 144, lp_off: 7904, lp_flags: LP_NORMAL #313739 #3498DB 32 35 (0,3) lp_len: 144, lp_off: 7760, lp_flags: LP_NORMAL #313739 #3498DB 36 39 (0,4) lp_len: 144, lp_off: 7616, lp_flags: LP_NORMAL #313739 #3498DB 40 43 (0,5) lp_len: 144, lp_off: 7472, lp_flags: LP_NORMAL #313739 #3498DB 44 47 (0,6) lp_len: 144, lp_off: 7328, lp_flags: LP_NORMAL #313739 #3498DB 48 51 (0,7) lp_len: 144, lp_off: 7184, lp_flags: LP_NORMAL #313739 #3498DB 52 55 (0,8) lp_len: 144, lp_off: 7040, lp_flags: LP_NORMAL #313739 #3498DB 56 59 (0,9) lp_len: 144, lp_off: 6896, lp_flags: LP_NORMAL #313739 #3498DB 60 63 (0,10) lp_len: 144, lp_off: 6752, lp_flags: LP_NORMAL #313739 #3498DB 64 67 (0,11) lp_len: 144, lp_off: 6608, lp_flags: LP_NORMAL #313739 #3498DB 68 71 (0,12) lp_len: 144, lp_off: 6464, lp_flags: LP_NORMAL #313739 #3498DB 72 75 (0,13) lp_len: 144, lp_off: 6320, lp_flags: LP_NORMAL #313739 #3498DB 76 79 (0,14) lp_len: 144, lp_off: 6176, lp_flags: LP_NORMAL #313739 #3498DB 80 83 (0,15) lp_len: 144, lp_off: 6032, lp_flags: LP_NORMAL #313739 #3498DB 84 87 (0,16) lp_len: 144, lp_off: 5888, lp_flags: LP_NORMAL #313739 #3498DB 88 91 (0,17) lp_len: 144, lp_off: 5744, lp_flags: LP_NORMAL #313739 #3498DB 92 95 (0,18) lp_len: 144, lp_off: 5600, lp_flags: LP_NORMAL #313739 #3498DB 96 99 (0,19) lp_len: 144, lp_off: 5456, lp_flags: LP_NORMAL #313739 #3498DB 100 103 (0,20) lp_len: 144, lp_off: 5312, lp_flags: LP_NORMAL #313739 #3498DB 104 107 (0,21) lp_len: 144, lp_off: 5168, lp_flags: LP_NORMAL #313739 #3498DB 108 111 (0,22) lp_len: 144, lp_off: 5024, lp_flags: LP_NORMAL #313739 #3498DB 112 115 (0,23) lp_len: 144, lp_off: 4880, lp_flags: LP_NORMAL #313739 #3498DB 116 119 (0,24) lp_len: 144, lp_off: 4736, lp_flags: LP_NORMAL #313739 #3498DB 120 123 (0,25) lp_len: 144, lp_off: 4592, lp_flags: LP_NORMAL #313739 #3498DB 124 127 (0,26) lp_len: 144, lp_off: 4448, lp_flags: LP_NORMAL #313739 #3498DB 128 131 (0,27) lp_len: 144, lp_off: 4304, lp_flags: LP_NORMAL #313739 #3498DB 132 135 (0,28) lp_len: 144, lp_off: 4160, lp_flags: LP_NORMAL #313739 #3498DB 136 139 (0,29) lp_len: 144, lp_off: 4016, lp_flags: LP_NORMAL #313739 #3498DB 140 143 (0,30) lp_len: 144, lp_off: 3872, lp_flags: LP_NORMAL #313739 #3498DB 144 147 (0,31) lp_len: 144, lp_off: 3728, lp_flags: LP_NORMAL #313739 #3498DB 148 151 (0,32) lp_len: 144, lp_off: 3584, lp_flags: LP_NORMAL #313739 #3498DB 152 155 (0,33) lp_len: 144, lp_off: 3440, lp_flags: LP_NORMAL #313739 #3498DB 156 159 (0,34) lp_len: 144, lp_off: 3296, lp_flags: LP_NORMAL #313739 #3498DB 160 163 (0,35) lp_len: 144, lp_off: 3152, lp_flags: LP_NORMAL #313739 #3498DB 164 167 (0,36) lp_len: 144, lp_off: 3008, lp_flags: LP_NORMAL #313739 #3498DB 168 171 (0,37) lp_len: 144, lp_off: 2864, lp_flags: LP_NORMAL #313739 #3498DB 172 175 (0,38) lp_len: 144, lp_off: 2720, lp_flags: LP_NORMAL #313739 #3498DB 176 179 (0,39) lp_len: 144, lp_off: 2576, lp_flags: LP_NORMAL #313739 #3498DB 180 183 (0,40) lp_len: 144, lp_off: 2432, lp_flags: LP_NORMAL #313739 #3498DB 184 187 (0,41) lp_len: 144, lp_off: 2288, lp_flags: LP_NORMAL #313739 #3498DB 188 191 (0,42) lp_len: 144, lp_off: 2144, lp_flags: LP_NORMAL #313739 #3498DB 192 195 (0,43) lp_len: 144, lp_off: 2000, lp_flags: LP_NORMAL #313739 #3498DB 196 199 (0,44) lp_len: 144, lp_off: 1856, lp_flags: LP_NORMAL #313739 #3498DB 200 203 (0,45) lp_len: 144, lp_off: 1712, lp_flags: LP_NORMAL #313739 #3498DB 204 207 (0,46) lp_len: 144, lp_off: 1568, lp_flags: LP_NORMAL #313739 #3498DB 208 211 (0,47) lp_len: 144, lp_off: 1424, lp_flags: LP_NORMAL #313739 #3498DB 212 215 (0,48) lp_len: 144, lp_off: 1280, lp_flags: LP_NORMAL #313739 #3498DB 216 219 (0,49) lp_len: 144, lp_off: 1136, lp_flags: LP_NORMAL #313739 #3498DB 220 223 (0,50) lp_len: 144, lp_off: 992, lp_flags: LP_NORMAL #313739 #3498DB 224 227 (0,51) lp_len: 144, lp_off: 848, lp_flags: LP_NORMAL #313739 #3498DB 228 231 (0,52) lp_len: 144, lp_off: 704, lp_flags: LP_NORMAL #313739 #3498DB 232 235 (0,53) lp_len: 144, lp_off: 560, lp_flags: LP_NORMAL #313739 #3498DB 236 239 (0,54) lp_len: 144, lp_off: 416, lp_flags: LP_NORMAL #313739 #3498DB 240 243 (0,55) lp_len: 144, lp_off: 272, lp_flags: LP_NORMAL #313739 #3498DB 8048 8051 (0,1) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 8052 8055 (0,1) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 8056 8059 (0,1) t_cid #313739 #912C21 8060 8061 (0,1) t_ctid->bi_hi #2980B9 #3498DB 8062 8063 (0,1) t_ctid->bi_lo #2980B9 #3498DB 8064 8065 (0,1) t_ctid->offsetNumber #3498DB #2980B9 8066 8067 (0,1) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 8068 8069 (0,1) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 8070 8070 (0,1) t_hoff #313739 #E9E850 8071 8073 (0,1) t_bits #313739 #F1C40F 8080 8191 (0,1) contents #313739 #CCD1D1 7904 7907 (0,2) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7908 7911 (0,2) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7912 7915 (0,2) t_cid #313739 #912C21 7916 7917 (0,2) t_ctid->bi_hi #2980B9 #3498DB 7918 7919 (0,2) t_ctid->bi_lo #2980B9 #3498DB 7920 7921 (0,2) t_ctid->offsetNumber #3498DB #2980B9 7922 7923 (0,2) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7924 7925 (0,2) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7926 7926 (0,2) t_hoff #313739 #E9E850 7927 7929 (0,2) t_bits #313739 #F1C40F 7936 8047 (0,2) contents #313739 #CCD1D1 7760 7763 (0,3) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7764 7767 (0,3) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7768 7771 (0,3) t_cid #313739 #912C21 7772 7773 (0,3) t_ctid->bi_hi #2980B9 #3498DB 7774 7775 (0,3) t_ctid->bi_lo #2980B9 #3498DB 7776 7777 (0,3) t_ctid->offsetNumber #3498DB #2980B9 7778 7779 (0,3) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7780 7781 (0,3) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7782 7782 (0,3) t_hoff #313739 #E9E850 7783 7785 (0,3) t_bits #313739 #F1C40F 7792 7903 (0,3) contents #313739 #CCD1D1 7616 7619 (0,4) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7620 7623 (0,4) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7624 7627 (0,4) t_cid #313739 #912C21 7628 7629 (0,4) t_ctid->bi_hi #2980B9 #3498DB 7630 7631 (0,4) t_ctid->bi_lo #2980B9 #3498DB 7632 7633 (0,4) t_ctid->offsetNumber #3498DB #2980B9 7634 7635 (0,4) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7636 7637 (0,4) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7638 7638 (0,4) t_hoff #313739 #E9E850 7639 7641 (0,4) t_bits #313739 #F1C40F 7648 7759 (0,4) contents #313739 #CCD1D1 7472 7475 (0,5) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7476 7479 (0,5) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7480 7483 (0,5) t_cid #313739 #912C21 7484 7485 (0,5) t_ctid->bi_hi #2980B9 #3498DB 7486 7487 (0,5) t_ctid->bi_lo #2980B9 #3498DB 7488 7489 (0,5) t_ctid->offsetNumber #3498DB #2980B9 7490 7491 (0,5) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7492 7493 (0,5) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7494 7494 (0,5) t_hoff #313739 #E9E850 7495 7497 (0,5) t_bits #313739 #F1C40F 7504 7615 (0,5) contents #313739 #CCD1D1 7328 7331 (0,6) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7332 7335 (0,6) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7336 7339 (0,6) t_cid #313739 #912C21 7340 7341 (0,6) t_ctid->bi_hi #2980B9 #3498DB 7342 7343 (0,6) t_ctid->bi_lo #2980B9 #3498DB 7344 7345 (0,6) t_ctid->offsetNumber #3498DB #2980B9 7346 7347 (0,6) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7348 7349 (0,6) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7350 7350 (0,6) t_hoff #313739 #E9E850 7351 7353 (0,6) t_bits #313739 #F1C40F 7360 7471 (0,6) contents #313739 #CCD1D1 7184 7187 (0,7) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7188 7191 (0,7) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7192 7195 (0,7) t_cid #313739 #912C21 7196 7197 (0,7) t_ctid->bi_hi #2980B9 #3498DB 7198 7199 (0,7) t_ctid->bi_lo #2980B9 #3498DB 7200 7201 (0,7) t_ctid->offsetNumber #3498DB #2980B9 7202 7203 (0,7) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7204 7205 (0,7) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7206 7206 (0,7) t_hoff #313739 #E9E850 7207 7209 (0,7) t_bits #313739 #F1C40F 7216 7327 (0,7) contents #313739 #CCD1D1 7040 7043 (0,8) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 7044 7047 (0,8) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 7048 7051 (0,8) t_cid #313739 #912C21 7052 7053 (0,8) t_ctid->bi_hi #2980B9 #3498DB 7054 7055 (0,8) t_ctid->bi_lo #2980B9 #3498DB 7056 7057 (0,8) t_ctid->offsetNumber #3498DB #2980B9 7058 7059 (0,8) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 7060 7061 (0,8) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 7062 7062 (0,8) t_hoff #313739 #E9E850 7063 7065 (0,8) t_bits #313739 #F1C40F 7072 7183 (0,8) contents #313739 #CCD1D1 6896 6899 (0,9) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6900 6903 (0,9) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6904 6907 (0,9) t_cid #313739 #912C21 6908 6909 (0,9) t_ctid->bi_hi #2980B9 #3498DB 6910 6911 (0,9) t_ctid->bi_lo #2980B9 #3498DB 6912 6913 (0,9) t_ctid->offsetNumber #3498DB #2980B9 6914 6915 (0,9) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6916 6917 (0,9) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6918 6918 (0,9) t_hoff #313739 #E9E850 6919 6921 (0,9) t_bits #313739 #F1C40F 6928 7039 (0,9) contents #313739 #CCD1D1 6752 6755 (0,10) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6756 6759 (0,10) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6760 6763 (0,10) t_cid #313739 #912C21 6764 6765 (0,10) t_ctid->bi_hi #2980B9 #3498DB 6766 6767 (0,10) t_ctid->bi_lo #2980B9 #3498DB 6768 6769 (0,10) t_ctid->offsetNumber #3498DB #2980B9 6770 6771 (0,10) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6772 6773 (0,10) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6774 6774 (0,10) t_hoff #313739 #E9E850 6775 6777 (0,10) t_bits #313739 #F1C40F 6784 6895 (0,10) contents #313739 #CCD1D1 6608 6611 (0,11) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6612 6615 (0,11) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6616 6619 (0,11) t_cid #313739 #912C21 6620 6621 (0,11) t_ctid->bi_hi #2980B9 #3498DB 6622 6623 (0,11) t_ctid->bi_lo #2980B9 #3498DB 6624 6625 (0,11) t_ctid->offsetNumber #3498DB #2980B9 6626 6627 (0,11) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6628 6629 (0,11) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6630 6630 (0,11) t_hoff #313739 #E9E850 6631 6633 (0,11) t_bits #313739 #F1C40F 6640 6751 (0,11) contents #313739 #CCD1D1 6464 6467 (0,12) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6468 6471 (0,12) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6472 6475 (0,12) t_cid #313739 #912C21 6476 6477 (0,12) t_ctid->bi_hi #2980B9 #3498DB 6478 6479 (0,12) t_ctid->bi_lo #2980B9 #3498DB 6480 6481 (0,12) t_ctid->offsetNumber #3498DB #2980B9 6482 6483 (0,12) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6484 6485 (0,12) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6486 6486 (0,12) t_hoff #313739 #E9E850 6487 6489 (0,12) t_bits #313739 #F1C40F 6496 6607 (0,12) contents #313739 #CCD1D1 6320 6323 (0,13) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6324 6327 (0,13) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6328 6331 (0,13) t_cid #313739 #912C21 6332 6333 (0,13) t_ctid->bi_hi #2980B9 #3498DB 6334 6335 (0,13) t_ctid->bi_lo #2980B9 #3498DB 6336 6337 (0,13) t_ctid->offsetNumber #3498DB #2980B9 6338 6339 (0,13) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6340 6341 (0,13) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6342 6342 (0,13) t_hoff #313739 #E9E850 6343 6345 (0,13) t_bits #313739 #F1C40F 6352 6463 (0,13) contents #313739 #CCD1D1 6176 6179 (0,14) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6180 6183 (0,14) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6184 6187 (0,14) t_cid #313739 #912C21 6188 6189 (0,14) t_ctid->bi_hi #2980B9 #3498DB 6190 6191 (0,14) t_ctid->bi_lo #2980B9 #3498DB 6192 6193 (0,14) t_ctid->offsetNumber #3498DB #2980B9 6194 6195 (0,14) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6196 6197 (0,14) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6198 6198 (0,14) t_hoff #313739 #E9E850 6199 6201 (0,14) t_bits #313739 #F1C40F 6208 6319 (0,14) contents #313739 #CCD1D1 6032 6035 (0,15) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 6036 6039 (0,15) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 6040 6043 (0,15) t_cid #313739 #912C21 6044 6045 (0,15) t_ctid->bi_hi #2980B9 #3498DB 6046 6047 (0,15) t_ctid->bi_lo #2980B9 #3498DB 6048 6049 (0,15) t_ctid->offsetNumber #3498DB #2980B9 6050 6051 (0,15) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 6052 6053 (0,15) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 6054 6054 (0,15) t_hoff #313739 #E9E850 6055 6057 (0,15) t_bits #313739 #F1C40F 6064 6175 (0,15) contents #313739 #CCD1D1 5888 5891 (0,16) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5892 5895 (0,16) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5896 5899 (0,16) t_cid #313739 #912C21 5900 5901 (0,16) t_ctid->bi_hi #2980B9 #3498DB 5902 5903 (0,16) t_ctid->bi_lo #2980B9 #3498DB 5904 5905 (0,16) t_ctid->offsetNumber #3498DB #2980B9 5906 5907 (0,16) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5908 5909 (0,16) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5910 5910 (0,16) t_hoff #313739 #E9E850 5911 5913 (0,16) t_bits #313739 #F1C40F 5920 6031 (0,16) contents #313739 #CCD1D1 5744 5747 (0,17) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5748 5751 (0,17) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5752 5755 (0,17) t_cid #313739 #912C21 5756 5757 (0,17) t_ctid->bi_hi #2980B9 #3498DB 5758 5759 (0,17) t_ctid->bi_lo #2980B9 #3498DB 5760 5761 (0,17) t_ctid->offsetNumber #3498DB #2980B9 5762 5763 (0,17) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5764 5765 (0,17) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5766 5766 (0,17) t_hoff #313739 #E9E850 5767 5769 (0,17) t_bits #313739 #F1C40F 5776 5887 (0,17) contents #313739 #CCD1D1 5600 5603 (0,18) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5604 5607 (0,18) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5608 5611 (0,18) t_cid #313739 #912C21 5612 5613 (0,18) t_ctid->bi_hi #2980B9 #3498DB 5614 5615 (0,18) t_ctid->bi_lo #2980B9 #3498DB 5616 5617 (0,18) t_ctid->offsetNumber #3498DB #2980B9 5618 5619 (0,18) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5620 5621 (0,18) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5622 5622 (0,18) t_hoff #313739 #E9E850 5623 5625 (0,18) t_bits #313739 #F1C40F 5632 5743 (0,18) contents #313739 #CCD1D1 5456 5459 (0,19) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5460 5463 (0,19) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5464 5467 (0,19) t_cid #313739 #912C21 5468 5469 (0,19) t_ctid->bi_hi #2980B9 #3498DB 5470 5471 (0,19) t_ctid->bi_lo #2980B9 #3498DB 5472 5473 (0,19) t_ctid->offsetNumber #3498DB #2980B9 5474 5475 (0,19) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5476 5477 (0,19) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5478 5478 (0,19) t_hoff #313739 #E9E850 5479 5481 (0,19) t_bits #313739 #F1C40F 5488 5599 (0,19) contents #313739 #CCD1D1 5312 5315 (0,20) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5316 5319 (0,20) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5320 5323 (0,20) t_cid #313739 #912C21 5324 5325 (0,20) t_ctid->bi_hi #2980B9 #3498DB 5326 5327 (0,20) t_ctid->bi_lo #2980B9 #3498DB 5328 5329 (0,20) t_ctid->offsetNumber #3498DB #2980B9 5330 5331 (0,20) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5332 5333 (0,20) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5334 5334 (0,20) t_hoff #313739 #E9E850 5335 5337 (0,20) t_bits #313739 #F1C40F 5344 5455 (0,20) contents #313739 #CCD1D1 5168 5171 (0,21) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5172 5175 (0,21) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5176 5179 (0,21) t_cid #313739 #912C21 5180 5181 (0,21) t_ctid->bi_hi #2980B9 #3498DB 5182 5183 (0,21) t_ctid->bi_lo #2980B9 #3498DB 5184 5185 (0,21) t_ctid->offsetNumber #3498DB #2980B9 5186 5187 (0,21) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5188 5189 (0,21) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5190 5190 (0,21) t_hoff #313739 #E9E850 5191 5193 (0,21) t_bits #313739 #F1C40F 5200 5311 (0,21) contents #313739 #CCD1D1 5024 5027 (0,22) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 5028 5031 (0,22) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 5032 5035 (0,22) t_cid #313739 #912C21 5036 5037 (0,22) t_ctid->bi_hi #2980B9 #3498DB 5038 5039 (0,22) t_ctid->bi_lo #2980B9 #3498DB 5040 5041 (0,22) t_ctid->offsetNumber #3498DB #2980B9 5042 5043 (0,22) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 5044 5045 (0,22) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 5046 5046 (0,22) t_hoff #313739 #E9E850 5047 5049 (0,22) t_bits #313739 #F1C40F 5056 5167 (0,22) contents #313739 #CCD1D1 4880 4883 (0,23) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4884 4887 (0,23) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4888 4891 (0,23) t_cid #313739 #912C21 4892 4893 (0,23) t_ctid->bi_hi #2980B9 #3498DB 4894 4895 (0,23) t_ctid->bi_lo #2980B9 #3498DB 4896 4897 (0,23) t_ctid->offsetNumber #3498DB #2980B9 4898 4899 (0,23) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4900 4901 (0,23) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4902 4902 (0,23) t_hoff #313739 #E9E850 4903 4905 (0,23) t_bits #313739 #F1C40F 4912 5023 (0,23) contents #313739 #CCD1D1 4736 4739 (0,24) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4740 4743 (0,24) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4744 4747 (0,24) t_cid #313739 #912C21 4748 4749 (0,24) t_ctid->bi_hi #2980B9 #3498DB 4750 4751 (0,24) t_ctid->bi_lo #2980B9 #3498DB 4752 4753 (0,24) t_ctid->offsetNumber #3498DB #2980B9 4754 4755 (0,24) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4756 4757 (0,24) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4758 4758 (0,24) t_hoff #313739 #E9E850 4759 4761 (0,24) t_bits #313739 #F1C40F 4768 4879 (0,24) contents #313739 #CCD1D1 4592 4595 (0,25) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4596 4599 (0,25) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4600 4603 (0,25) t_cid #313739 #912C21 4604 4605 (0,25) t_ctid->bi_hi #2980B9 #3498DB 4606 4607 (0,25) t_ctid->bi_lo #2980B9 #3498DB 4608 4609 (0,25) t_ctid->offsetNumber #3498DB #2980B9 4610 4611 (0,25) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4612 4613 (0,25) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4614 4614 (0,25) t_hoff #313739 #E9E850 4615 4617 (0,25) t_bits #313739 #F1C40F 4624 4735 (0,25) contents #313739 #CCD1D1 4448 4451 (0,26) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4452 4455 (0,26) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4456 4459 (0,26) t_cid #313739 #912C21 4460 4461 (0,26) t_ctid->bi_hi #2980B9 #3498DB 4462 4463 (0,26) t_ctid->bi_lo #2980B9 #3498DB 4464 4465 (0,26) t_ctid->offsetNumber #3498DB #2980B9 4466 4467 (0,26) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4468 4469 (0,26) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4470 4470 (0,26) t_hoff #313739 #E9E850 4471 4473 (0,26) t_bits #313739 #F1C40F 4480 4591 (0,26) contents #313739 #CCD1D1 4304 4307 (0,27) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4308 4311 (0,27) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4312 4315 (0,27) t_cid #313739 #912C21 4316 4317 (0,27) t_ctid->bi_hi #2980B9 #3498DB 4318 4319 (0,27) t_ctid->bi_lo #2980B9 #3498DB 4320 4321 (0,27) t_ctid->offsetNumber #3498DB #2980B9 4322 4323 (0,27) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4324 4325 (0,27) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4326 4326 (0,27) t_hoff #313739 #E9E850 4327 4329 (0,27) t_bits #313739 #F1C40F 4336 4447 (0,27) contents #313739 #CCD1D1 4160 4163 (0,28) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4164 4167 (0,28) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4168 4171 (0,28) t_cid #313739 #912C21 4172 4173 (0,28) t_ctid->bi_hi #2980B9 #3498DB 4174 4175 (0,28) t_ctid->bi_lo #2980B9 #3498DB 4176 4177 (0,28) t_ctid->offsetNumber #3498DB #2980B9 4178 4179 (0,28) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4180 4181 (0,28) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4182 4182 (0,28) t_hoff #313739 #E9E850 4183 4185 (0,28) t_bits #313739 #F1C40F 4192 4303 (0,28) contents #313739 #CCD1D1 4016 4019 (0,29) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 4020 4023 (0,29) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 4024 4027 (0,29) t_cid #313739 #912C21 4028 4029 (0,29) t_ctid->bi_hi #2980B9 #3498DB 4030 4031 (0,29) t_ctid->bi_lo #2980B9 #3498DB 4032 4033 (0,29) t_ctid->offsetNumber #3498DB #2980B9 4034 4035 (0,29) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 4036 4037 (0,29) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 4038 4038 (0,29) t_hoff #313739 #E9E850 4039 4041 (0,29) t_bits #313739 #F1C40F 4048 4159 (0,29) contents #313739 #CCD1D1 3872 3875 (0,30) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3876 3879 (0,30) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3880 3883 (0,30) t_cid #313739 #912C21 3884 3885 (0,30) t_ctid->bi_hi #2980B9 #3498DB 3886 3887 (0,30) t_ctid->bi_lo #2980B9 #3498DB 3888 3889 (0,30) t_ctid->offsetNumber #3498DB #2980B9 3890 3891 (0,30) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3892 3893 (0,30) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3894 3894 (0,30) t_hoff #313739 #E9E850 3895 3897 (0,30) t_bits #313739 #F1C40F 3904 4015 (0,30) contents #313739 #CCD1D1 3728 3731 (0,31) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3732 3735 (0,31) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3736 3739 (0,31) t_cid #313739 #912C21 3740 3741 (0,31) t_ctid->bi_hi #2980B9 #3498DB 3742 3743 (0,31) t_ctid->bi_lo #2980B9 #3498DB 3744 3745 (0,31) t_ctid->offsetNumber #3498DB #2980B9 3746 3747 (0,31) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3748 3749 (0,31) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3750 3750 (0,31) t_hoff #313739 #E9E850 3751 3753 (0,31) t_bits #313739 #F1C40F 3760 3871 (0,31) contents #313739 #CCD1D1 3584 3587 (0,32) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3588 3591 (0,32) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3592 3595 (0,32) t_cid #313739 #912C21 3596 3597 (0,32) t_ctid->bi_hi #2980B9 #3498DB 3598 3599 (0,32) t_ctid->bi_lo #2980B9 #3498DB 3600 3601 (0,32) t_ctid->offsetNumber #3498DB #2980B9 3602 3603 (0,32) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3604 3605 (0,32) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3606 3606 (0,32) t_hoff #313739 #E9E850 3607 3609 (0,32) t_bits #313739 #F1C40F 3616 3727 (0,32) contents #313739 #CCD1D1 3440 3443 (0,33) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3444 3447 (0,33) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3448 3451 (0,33) t_cid #313739 #912C21 3452 3453 (0,33) t_ctid->bi_hi #2980B9 #3498DB 3454 3455 (0,33) t_ctid->bi_lo #2980B9 #3498DB 3456 3457 (0,33) t_ctid->offsetNumber #3498DB #2980B9 3458 3459 (0,33) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3460 3461 (0,33) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3462 3462 (0,33) t_hoff #313739 #E9E850 3463 3465 (0,33) t_bits #313739 #F1C40F 3472 3583 (0,33) contents #313739 #CCD1D1 3296 3299 (0,34) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3300 3303 (0,34) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3304 3307 (0,34) t_cid #313739 #912C21 3308 3309 (0,34) t_ctid->bi_hi #2980B9 #3498DB 3310 3311 (0,34) t_ctid->bi_lo #2980B9 #3498DB 3312 3313 (0,34) t_ctid->offsetNumber #3498DB #2980B9 3314 3315 (0,34) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3316 3317 (0,34) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3318 3318 (0,34) t_hoff #313739 #E9E850 3319 3321 (0,34) t_bits #313739 #F1C40F 3328 3439 (0,34) contents #313739 #CCD1D1 3152 3155 (0,35) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3156 3159 (0,35) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3160 3163 (0,35) t_cid #313739 #912C21 3164 3165 (0,35) t_ctid->bi_hi #2980B9 #3498DB 3166 3167 (0,35) t_ctid->bi_lo #2980B9 #3498DB 3168 3169 (0,35) t_ctid->offsetNumber #3498DB #2980B9 3170 3171 (0,35) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3172 3173 (0,35) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3174 3174 (0,35) t_hoff #313739 #E9E850 3175 3177 (0,35) t_bits #313739 #F1C40F 3184 3295 (0,35) contents #313739 #CCD1D1 3008 3011 (0,36) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 3012 3015 (0,36) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 3016 3019 (0,36) t_cid #313739 #912C21 3020 3021 (0,36) t_ctid->bi_hi #2980B9 #3498DB 3022 3023 (0,36) t_ctid->bi_lo #2980B9 #3498DB 3024 3025 (0,36) t_ctid->offsetNumber #3498DB #2980B9 3026 3027 (0,36) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 3028 3029 (0,36) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 3030 3030 (0,36) t_hoff #313739 #E9E850 3031 3033 (0,36) t_bits #313739 #F1C40F 3040 3151 (0,36) contents #313739 #CCD1D1 2864 2867 (0,37) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2868 2871 (0,37) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2872 2875 (0,37) t_cid #313739 #912C21 2876 2877 (0,37) t_ctid->bi_hi #2980B9 #3498DB 2878 2879 (0,37) t_ctid->bi_lo #2980B9 #3498DB 2880 2881 (0,37) t_ctid->offsetNumber #3498DB #2980B9 2882 2883 (0,37) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2884 2885 (0,37) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2886 2886 (0,37) t_hoff #313739 #E9E850 2887 2889 (0,37) t_bits #313739 #F1C40F 2896 3007 (0,37) contents #313739 #CCD1D1 2720 2723 (0,38) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2724 2727 (0,38) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2728 2731 (0,38) t_cid #313739 #912C21 2732 2733 (0,38) t_ctid->bi_hi #2980B9 #3498DB 2734 2735 (0,38) t_ctid->bi_lo #2980B9 #3498DB 2736 2737 (0,38) t_ctid->offsetNumber #3498DB #2980B9 2738 2739 (0,38) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2740 2741 (0,38) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2742 2742 (0,38) t_hoff #313739 #E9E850 2743 2745 (0,38) t_bits #313739 #F1C40F 2752 2863 (0,38) contents #313739 #CCD1D1 2576 2579 (0,39) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2580 2583 (0,39) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2584 2587 (0,39) t_cid #313739 #912C21 2588 2589 (0,39) t_ctid->bi_hi #2980B9 #3498DB 2590 2591 (0,39) t_ctid->bi_lo #2980B9 #3498DB 2592 2593 (0,39) t_ctid->offsetNumber #3498DB #2980B9 2594 2595 (0,39) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2596 2597 (0,39) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2598 2598 (0,39) t_hoff #313739 #E9E850 2599 2601 (0,39) t_bits #313739 #F1C40F 2608 2719 (0,39) contents #313739 #CCD1D1 2432 2435 (0,40) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2436 2439 (0,40) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2440 2443 (0,40) t_cid #313739 #912C21 2444 2445 (0,40) t_ctid->bi_hi #2980B9 #3498DB 2446 2447 (0,40) t_ctid->bi_lo #2980B9 #3498DB 2448 2449 (0,40) t_ctid->offsetNumber #3498DB #2980B9 2450 2451 (0,40) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2452 2453 (0,40) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2454 2454 (0,40) t_hoff #313739 #E9E850 2455 2457 (0,40) t_bits #313739 #F1C40F 2464 2575 (0,40) contents #313739 #CCD1D1 2288 2291 (0,41) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2292 2295 (0,41) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2296 2299 (0,41) t_cid #313739 #912C21 2300 2301 (0,41) t_ctid->bi_hi #2980B9 #3498DB 2302 2303 (0,41) t_ctid->bi_lo #2980B9 #3498DB 2304 2305 (0,41) t_ctid->offsetNumber #3498DB #2980B9 2306 2307 (0,41) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2308 2309 (0,41) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2310 2310 (0,41) t_hoff #313739 #E9E850 2311 2313 (0,41) t_bits #313739 #F1C40F 2320 2431 (0,41) contents #313739 #CCD1D1 2144 2147 (0,42) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2148 2151 (0,42) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2152 2155 (0,42) t_cid #313739 #912C21 2156 2157 (0,42) t_ctid->bi_hi #2980B9 #3498DB 2158 2159 (0,42) t_ctid->bi_lo #2980B9 #3498DB 2160 2161 (0,42) t_ctid->offsetNumber #3498DB #2980B9 2162 2163 (0,42) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2164 2165 (0,42) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2166 2166 (0,42) t_hoff #313739 #E9E850 2167 2169 (0,42) t_bits #313739 #F1C40F 2176 2287 (0,42) contents #313739 #CCD1D1 2000 2003 (0,43) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 2004 2007 (0,43) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 2008 2011 (0,43) t_cid #313739 #912C21 2012 2013 (0,43) t_ctid->bi_hi #2980B9 #3498DB 2014 2015 (0,43) t_ctid->bi_lo #2980B9 #3498DB 2016 2017 (0,43) t_ctid->offsetNumber #3498DB #2980B9 2018 2019 (0,43) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 2020 2021 (0,43) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 2022 2022 (0,43) t_hoff #313739 #E9E850 2023 2025 (0,43) t_bits #313739 #F1C40F 2032 2143 (0,43) contents #313739 #CCD1D1 1856 1859 (0,44) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1860 1863 (0,44) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1864 1867 (0,44) t_cid #313739 #912C21 1868 1869 (0,44) t_ctid->bi_hi #2980B9 #3498DB 1870 1871 (0,44) t_ctid->bi_lo #2980B9 #3498DB 1872 1873 (0,44) t_ctid->offsetNumber #3498DB #2980B9 1874 1875 (0,44) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1876 1877 (0,44) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1878 1878 (0,44) t_hoff #313739 #E9E850 1879 1881 (0,44) t_bits #313739 #F1C40F 1888 1999 (0,44) contents #313739 #CCD1D1 1712 1715 (0,45) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1716 1719 (0,45) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1720 1723 (0,45) t_cid #313739 #912C21 1724 1725 (0,45) t_ctid->bi_hi #2980B9 #3498DB 1726 1727 (0,45) t_ctid->bi_lo #2980B9 #3498DB 1728 1729 (0,45) t_ctid->offsetNumber #3498DB #2980B9 1730 1731 (0,45) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1732 1733 (0,45) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1734 1734 (0,45) t_hoff #313739 #E9E850 1735 1737 (0,45) t_bits #313739 #F1C40F 1744 1855 (0,45) contents #313739 #CCD1D1 1568 1571 (0,46) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1572 1575 (0,46) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1576 1579 (0,46) t_cid #313739 #912C21 1580 1581 (0,46) t_ctid->bi_hi #2980B9 #3498DB 1582 1583 (0,46) t_ctid->bi_lo #2980B9 #3498DB 1584 1585 (0,46) t_ctid->offsetNumber #3498DB #2980B9 1586 1587 (0,46) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1588 1589 (0,46) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1590 1590 (0,46) t_hoff #313739 #E9E850 1591 1593 (0,46) t_bits #313739 #F1C40F 1600 1711 (0,46) contents #313739 #CCD1D1 1424 1427 (0,47) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1428 1431 (0,47) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1432 1435 (0,47) t_cid #313739 #912C21 1436 1437 (0,47) t_ctid->bi_hi #2980B9 #3498DB 1438 1439 (0,47) t_ctid->bi_lo #2980B9 #3498DB 1440 1441 (0,47) t_ctid->offsetNumber #3498DB #2980B9 1442 1443 (0,47) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1444 1445 (0,47) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1446 1446 (0,47) t_hoff #313739 #E9E850 1447 1449 (0,47) t_bits #313739 #F1C40F 1456 1567 (0,47) contents #313739 #CCD1D1 1280 1283 (0,48) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1284 1287 (0,48) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1288 1291 (0,48) t_cid #313739 #912C21 1292 1293 (0,48) t_ctid->bi_hi #2980B9 #3498DB 1294 1295 (0,48) t_ctid->bi_lo #2980B9 #3498DB 1296 1297 (0,48) t_ctid->offsetNumber #3498DB #2980B9 1298 1299 (0,48) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1300 1301 (0,48) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1302 1302 (0,48) t_hoff #313739 #E9E850 1303 1305 (0,48) t_bits #313739 #F1C40F 1312 1423 (0,48) contents #313739 #CCD1D1 1136 1139 (0,49) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 1140 1143 (0,49) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1144 1147 (0,49) t_cid #313739 #912C21 1148 1149 (0,49) t_ctid->bi_hi #2980B9 #3498DB 1150 1151 (0,49) t_ctid->bi_lo #2980B9 #3498DB 1152 1153 (0,49) t_ctid->offsetNumber #3498DB #2980B9 1154 1155 (0,49) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1156 1157 (0,49) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1158 1158 (0,49) t_hoff #313739 #E9E850 1159 1161 (0,49) t_bits #313739 #F1C40F 1168 1279 (0,49) contents #313739 #CCD1D1 992 995 (0,50) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 996 999 (0,50) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 1000 1003 (0,50) t_cid #313739 #912C21 1004 1005 (0,50) t_ctid->bi_hi #2980B9 #3498DB 1006 1007 (0,50) t_ctid->bi_lo #2980B9 #3498DB 1008 1009 (0,50) t_ctid->offsetNumber #3498DB #2980B9 1010 1011 (0,50) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 1012 1013 (0,50) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 1014 1014 (0,50) t_hoff #313739 #E9E850 1015 1017 (0,50) t_bits #313739 #F1C40F 1024 1135 (0,50) contents #313739 #CCD1D1 848 851 (0,51) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 852 855 (0,51) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 856 859 (0,51) t_cid #313739 #912C21 860 861 (0,51) t_ctid->bi_hi #2980B9 #3498DB 862 863 (0,51) t_ctid->bi_lo #2980B9 #3498DB 864 865 (0,51) t_ctid->offsetNumber #3498DB #2980B9 866 867 (0,51) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 868 869 (0,51) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 870 870 (0,51) t_hoff #313739 #E9E850 871 873 (0,51) t_bits #313739 #F1C40F 880 991 (0,51) contents #313739 #CCD1D1 704 707 (0,52) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 708 711 (0,52) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 712 715 (0,52) t_cid #313739 #912C21 716 717 (0,52) t_ctid->bi_hi #2980B9 #3498DB 718 719 (0,52) t_ctid->bi_lo #2980B9 #3498DB 720 721 (0,52) t_ctid->offsetNumber #3498DB #2980B9 722 723 (0,52) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 724 725 (0,52) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 726 726 (0,52) t_hoff #313739 #E9E850 727 729 (0,52) t_bits #313739 #F1C40F 736 847 (0,52) contents #313739 #CCD1D1 560 563 (0,53) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 564 567 (0,53) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 568 571 (0,53) t_cid #313739 #912C21 572 573 (0,53) t_ctid->bi_hi #2980B9 #3498DB 574 575 (0,53) t_ctid->bi_lo #2980B9 #3498DB 576 577 (0,53) t_ctid->offsetNumber #3498DB #2980B9 578 579 (0,53) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 580 581 (0,53) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 582 582 (0,53) t_hoff #313739 #E9E850 583 585 (0,53) t_bits #313739 #F1C40F 592 703 (0,53) contents #313739 #CCD1D1 416 419 (0,54) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 420 423 (0,54) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 424 427 (0,54) t_cid #313739 #912C21 428 429 (0,54) t_ctid->bi_hi #2980B9 #3498DB 430 431 (0,54) t_ctid->bi_lo #2980B9 #3498DB 432 433 (0,54) t_ctid->offsetNumber #3498DB #2980B9 434 435 (0,54) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 436 437 (0,54) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 438 438 (0,54) t_hoff #313739 #E9E850 439 441 (0,54) t_bits #313739 #F1C40F 448 559 (0,54) contents #313739 #CCD1D1 272 275 (0,55) xmin - BootstrapTransactionId #CCD1D1 #E74C3C 276 279 (0,55) xmax - InvalidTransactionId - HEAP_XMAX_INVALID #E9E850 #E74C3C 280 283 (0,55) t_cid #313739 #912C21 284 285 (0,55) t_ctid->bi_hi #2980B9 #3498DB 286 287 (0,55) t_ctid->bi_lo #2980B9 #3498DB 288 289 (0,55) t_ctid->offsetNumber #3498DB #2980B9 290 291 (0,55) t_infomask2 HeapTupleHeaderGetNatts(): 24 #313739 #1ABC9C 292 293 (0,55) t_infomask (HEAP_HASNULL|HEAP_XMIN_COMMITTED|HEAP_XMAX_INVALID) #313739 #16A085 294 294 (0,55) t_hoff #313739 #E9E850 295 297 (0,55) t_bits #313739 #F1C40F 304 415 (0,55) contents #313739 #CCD1D1 ================================================ FILE: t/expected_no_attributes_idx.tags ================================================ 0 7 block 131072 (level 0) LSN: 0/01060CD0 #313739 #E9E850 8 9 block 131072 (level 0) checksum #313739 #16A085 10 11 block 131072 (level 0) pd_flags - #313739 #F1C40F 12 13 block 131072 (level 0) pd_lower #313739 #E96950 14 15 block 131072 (level 0) pd_upper #313739 #E96950 16 17 block 131072 (level 0) pd_special #313739 #50E964 18 19 block 131072 (level 0) pd_pagesize_version #313739 #97333D 20 23 block 131072 (level 0) pd_prune_xid #313739 #E74C3C 24 27 (131072,1) lp_len: 24, lp_off: 1848, lp_flags: LP_NORMAL #313739 #3498DB 28 31 (131072,2) lp_len: 16, lp_off: 8160, lp_flags: LP_NORMAL #313739 #3498DB 32 35 (131072,3) lp_len: 16, lp_off: 8144, lp_flags: LP_NORMAL #313739 #3498DB 36 39 (131072,4) lp_len: 16, lp_off: 8128, lp_flags: LP_NORMAL #313739 #3498DB 40 43 (131072,5) lp_len: 24, lp_off: 8104, lp_flags: LP_NORMAL #313739 #3498DB 44 47 (131072,6) lp_len: 24, lp_off: 8080, lp_flags: LP_NORMAL #313739 #3498DB 48 51 (131072,7) lp_len: 24, lp_off: 8056, lp_flags: LP_NORMAL #313739 #3498DB 52 55 (131072,8) lp_len: 24, lp_off: 8032, lp_flags: LP_NORMAL #313739 #3498DB 56 59 (131072,9) lp_len: 24, lp_off: 8008, lp_flags: LP_NORMAL #313739 #3498DB 60 63 (131072,10) lp_len: 24, lp_off: 7984, lp_flags: LP_NORMAL #313739 #3498DB 64 67 (131072,11) lp_len: 24, lp_off: 7960, lp_flags: LP_NORMAL #313739 #3498DB 68 71 (131072,12) lp_len: 24, lp_off: 7936, lp_flags: LP_NORMAL #313739 #3498DB 72 75 (131072,13) lp_len: 32, lp_off: 7904, lp_flags: LP_NORMAL #313739 #3498DB 76 79 (131072,14) lp_len: 32, lp_off: 7872, lp_flags: LP_NORMAL #313739 #3498DB 80 83 (131072,15) lp_len: 24, lp_off: 7848, lp_flags: LP_NORMAL #313739 #3498DB 84 87 (131072,16) lp_len: 16, lp_off: 7832, lp_flags: LP_NORMAL #313739 #3498DB 88 91 (131072,17) lp_len: 24, lp_off: 7808, lp_flags: LP_NORMAL #313739 #3498DB 92 95 (131072,18) lp_len: 24, lp_off: 7784, lp_flags: LP_NORMAL #313739 #3498DB 96 99 (131072,19) lp_len: 24, lp_off: 7760, lp_flags: LP_NORMAL #313739 #3498DB 100 103 (131072,20) lp_len: 32, lp_off: 7728, lp_flags: LP_NORMAL #313739 #3498DB 104 107 (131072,21) lp_len: 32, lp_off: 7696, lp_flags: LP_NORMAL #313739 #3498DB 108 111 (131072,22) lp_len: 24, lp_off: 7672, lp_flags: LP_NORMAL #313739 #3498DB 112 115 (131072,23) lp_len: 16, lp_off: 7656, lp_flags: LP_NORMAL #313739 #3498DB 116 119 (131072,24) lp_len: 24, lp_off: 7632, lp_flags: LP_NORMAL #313739 #3498DB 120 123 (131072,25) lp_len: 24, lp_off: 7608, lp_flags: LP_NORMAL #313739 #3498DB 124 127 (131072,26) lp_len: 24, lp_off: 7584, lp_flags: LP_NORMAL #313739 #3498DB 128 131 (131072,27) lp_len: 24, lp_off: 7560, lp_flags: LP_NORMAL #313739 #3498DB 132 135 (131072,28) lp_len: 24, lp_off: 7536, lp_flags: LP_NORMAL #313739 #3498DB 136 139 (131072,29) lp_len: 32, lp_off: 7504, lp_flags: LP_NORMAL #313739 #3498DB 140 143 (131072,30) lp_len: 24, lp_off: 7480, lp_flags: LP_NORMAL #313739 #3498DB 144 147 (131072,31) lp_len: 24, lp_off: 7456, lp_flags: LP_NORMAL #313739 #3498DB 148 151 (131072,32) lp_len: 24, lp_off: 7432, lp_flags: LP_NORMAL #313739 #3498DB 152 155 (131072,33) lp_len: 24, lp_off: 7408, lp_flags: LP_NORMAL #313739 #3498DB 156 159 (131072,34) lp_len: 24, lp_off: 7384, lp_flags: LP_NORMAL #313739 #3498DB 160 163 (131072,35) lp_len: 32, lp_off: 7352, lp_flags: LP_NORMAL #313739 #3498DB 164 167 (131072,36) lp_len: 24, lp_off: 7328, lp_flags: LP_NORMAL #313739 #3498DB 168 171 (131072,37) lp_len: 24, lp_off: 7304, lp_flags: LP_NORMAL #313739 #3498DB 172 175 (131072,38) lp_len: 24, lp_off: 7280, lp_flags: LP_NORMAL #313739 #3498DB 176 179 (131072,39) lp_len: 24, lp_off: 7256, lp_flags: LP_NORMAL #313739 #3498DB 180 183 (131072,40) lp_len: 24, lp_off: 7232, lp_flags: LP_NORMAL #313739 #3498DB 184 187 (131072,41) lp_len: 24, lp_off: 7208, lp_flags: LP_NORMAL #313739 #3498DB 188 191 (131072,42) lp_len: 16, lp_off: 7192, lp_flags: LP_NORMAL #313739 #3498DB 192 195 (131072,43) lp_len: 24, lp_off: 7168, lp_flags: LP_NORMAL #313739 #3498DB 196 199 (131072,44) lp_len: 24, lp_off: 7144, lp_flags: LP_NORMAL #313739 #3498DB 200 203 (131072,45) lp_len: 24, lp_off: 7120, lp_flags: LP_NORMAL #313739 #3498DB 204 207 (131072,46) lp_len: 24, lp_off: 7096, lp_flags: LP_NORMAL #313739 #3498DB 208 211 (131072,47) lp_len: 24, lp_off: 7072, lp_flags: LP_NORMAL #313739 #3498DB 212 215 (131072,48) lp_len: 24, lp_off: 7048, lp_flags: LP_NORMAL #313739 #3498DB 216 219 (131072,49) lp_len: 24, lp_off: 7024, lp_flags: LP_NORMAL #313739 #3498DB 220 223 (131072,50) lp_len: 24, lp_off: 7000, lp_flags: LP_NORMAL #313739 #3498DB 224 227 (131072,51) lp_len: 24, lp_off: 6976, lp_flags: LP_NORMAL #313739 #3498DB 228 231 (131072,52) lp_len: 24, lp_off: 6952, lp_flags: LP_NORMAL #313739 #3498DB 232 235 (131072,53) lp_len: 24, lp_off: 6928, lp_flags: LP_NORMAL #313739 #3498DB 236 239 (131072,54) lp_len: 24, lp_off: 6904, lp_flags: LP_NORMAL #313739 #3498DB 240 243 (131072,55) lp_len: 24, lp_off: 6880, lp_flags: LP_NORMAL #313739 #3498DB 244 247 (131072,56) lp_len: 24, lp_off: 6856, lp_flags: LP_NORMAL #313739 #3498DB 248 251 (131072,57) lp_len: 24, lp_off: 6832, lp_flags: LP_NORMAL #313739 #3498DB 252 255 (131072,58) lp_len: 24, lp_off: 6808, lp_flags: LP_NORMAL #313739 #3498DB 256 259 (131072,59) lp_len: 24, lp_off: 6784, lp_flags: LP_NORMAL #313739 #3498DB 260 263 (131072,60) lp_len: 24, lp_off: 6760, lp_flags: LP_NORMAL #313739 #3498DB 264 267 (131072,61) lp_len: 24, lp_off: 6736, lp_flags: LP_NORMAL #313739 #3498DB 268 271 (131072,62) lp_len: 24, lp_off: 6712, lp_flags: LP_NORMAL #313739 #3498DB 272 275 (131072,63) lp_len: 24, lp_off: 6688, lp_flags: LP_NORMAL #313739 #3498DB 276 279 (131072,64) lp_len: 24, lp_off: 6664, lp_flags: LP_NORMAL #313739 #3498DB 280 283 (131072,65) lp_len: 24, lp_off: 6640, lp_flags: LP_NORMAL #313739 #3498DB 284 287 (131072,66) lp_len: 24, lp_off: 6616, lp_flags: LP_NORMAL #313739 #3498DB 288 291 (131072,67) lp_len: 24, lp_off: 6592, lp_flags: LP_NORMAL #313739 #3498DB 292 295 (131072,68) lp_len: 24, lp_off: 6568, lp_flags: LP_NORMAL #313739 #3498DB 296 299 (131072,69) lp_len: 24, lp_off: 6544, lp_flags: LP_NORMAL #313739 #3498DB 300 303 (131072,70) lp_len: 24, lp_off: 6520, lp_flags: LP_NORMAL #313739 #3498DB 304 307 (131072,71) lp_len: 24, lp_off: 6496, lp_flags: LP_NORMAL #313739 #3498DB 308 311 (131072,72) lp_len: 16, lp_off: 6480, lp_flags: LP_NORMAL #313739 #3498DB 312 315 (131072,73) lp_len: 24, lp_off: 6456, lp_flags: LP_NORMAL #313739 #3498DB 316 319 (131072,74) lp_len: 24, lp_off: 6432, lp_flags: LP_NORMAL #313739 #3498DB 320 323 (131072,75) lp_len: 24, lp_off: 6408, lp_flags: LP_NORMAL #313739 #3498DB 324 327 (131072,76) lp_len: 24, lp_off: 6384, lp_flags: LP_NORMAL #313739 #3498DB 328 331 (131072,77) lp_len: 24, lp_off: 6360, lp_flags: LP_NORMAL #313739 #3498DB 332 335 (131072,78) lp_len: 24, lp_off: 6336, lp_flags: LP_NORMAL #313739 #3498DB 336 339 (131072,79) lp_len: 24, lp_off: 6312, lp_flags: LP_NORMAL #313739 #3498DB 340 343 (131072,80) lp_len: 24, lp_off: 6288, lp_flags: LP_NORMAL #313739 #3498DB 344 347 (131072,81) lp_len: 32, lp_off: 6256, lp_flags: LP_NORMAL #313739 #3498DB 348 351 (131072,82) lp_len: 24, lp_off: 6232, lp_flags: LP_NORMAL #313739 #3498DB 352 355 (131072,83) lp_len: 32, lp_off: 6200, lp_flags: LP_NORMAL #313739 #3498DB 356 359 (131072,84) lp_len: 24, lp_off: 6176, lp_flags: LP_NORMAL #313739 #3498DB 360 363 (131072,85) lp_len: 24, lp_off: 6152, lp_flags: LP_NORMAL #313739 #3498DB 364 367 (131072,86) lp_len: 24, lp_off: 6128, lp_flags: LP_NORMAL #313739 #3498DB 368 371 (131072,87) lp_len: 32, lp_off: 6096, lp_flags: LP_NORMAL #313739 #3498DB 372 375 (131072,88) lp_len: 32, lp_off: 6064, lp_flags: LP_NORMAL #313739 #3498DB 376 379 (131072,89) lp_len: 24, lp_off: 6040, lp_flags: LP_NORMAL #313739 #3498DB 380 383 (131072,90) lp_len: 24, lp_off: 6016, lp_flags: LP_NORMAL #313739 #3498DB 384 387 (131072,91) lp_len: 24, lp_off: 5992, lp_flags: LP_NORMAL #313739 #3498DB 388 391 (131072,92) lp_len: 24, lp_off: 5968, lp_flags: LP_NORMAL #313739 #3498DB 392 395 (131072,93) lp_len: 32, lp_off: 5936, lp_flags: LP_NORMAL #313739 #3498DB 396 399 (131072,94) lp_len: 24, lp_off: 5912, lp_flags: LP_NORMAL #313739 #3498DB 400 403 (131072,95) lp_len: 24, lp_off: 5888, lp_flags: LP_NORMAL #313739 #3498DB 404 407 (131072,96) lp_len: 24, lp_off: 5864, lp_flags: LP_NORMAL #313739 #3498DB 408 411 (131072,97) lp_len: 24, lp_off: 5840, lp_flags: LP_NORMAL #313739 #3498DB 412 415 (131072,98) lp_len: 24, lp_off: 5816, lp_flags: LP_NORMAL #313739 #3498DB 416 419 (131072,99) lp_len: 24, lp_off: 5792, lp_flags: LP_NORMAL #313739 #3498DB 420 423 (131072,100) lp_len: 24, lp_off: 5768, lp_flags: LP_NORMAL #313739 #3498DB 424 427 (131072,101) lp_len: 24, lp_off: 5744, lp_flags: LP_NORMAL #313739 #3498DB 428 431 (131072,102) lp_len: 24, lp_off: 5720, lp_flags: LP_NORMAL #313739 #3498DB 432 435 (131072,103) lp_len: 24, lp_off: 5696, lp_flags: LP_NORMAL #313739 #3498DB 436 439 (131072,104) lp_len: 24, lp_off: 5672, lp_flags: LP_NORMAL #313739 #3498DB 440 443 (131072,105) lp_len: 24, lp_off: 5648, lp_flags: LP_NORMAL #313739 #3498DB 444 447 (131072,106) lp_len: 24, lp_off: 5624, lp_flags: LP_NORMAL #313739 #3498DB 448 451 (131072,107) lp_len: 24, lp_off: 5600, lp_flags: LP_NORMAL #313739 #3498DB 452 455 (131072,108) lp_len: 24, lp_off: 5576, lp_flags: LP_NORMAL #313739 #3498DB 456 459 (131072,109) lp_len: 24, lp_off: 5552, lp_flags: LP_NORMAL #313739 #3498DB 460 463 (131072,110) lp_len: 32, lp_off: 5520, lp_flags: LP_NORMAL #313739 #3498DB 464 467 (131072,111) lp_len: 32, lp_off: 5488, lp_flags: LP_NORMAL #313739 #3498DB 468 471 (131072,112) lp_len: 24, lp_off: 5464, lp_flags: LP_NORMAL #313739 #3498DB 472 475 (131072,113) lp_len: 32, lp_off: 5432, lp_flags: LP_NORMAL #313739 #3498DB 476 479 (131072,114) lp_len: 24, lp_off: 5408, lp_flags: LP_NORMAL #313739 #3498DB 480 483 (131072,115) lp_len: 24, lp_off: 5384, lp_flags: LP_NORMAL #313739 #3498DB 484 487 (131072,116) lp_len: 32, lp_off: 5352, lp_flags: LP_NORMAL #313739 #3498DB 488 491 (131072,117) lp_len: 24, lp_off: 5328, lp_flags: LP_NORMAL #313739 #3498DB 492 495 (131072,118) lp_len: 24, lp_off: 5304, lp_flags: LP_NORMAL #313739 #3498DB 496 499 (131072,119) lp_len: 32, lp_off: 5272, lp_flags: LP_NORMAL #313739 #3498DB 500 503 (131072,120) lp_len: 24, lp_off: 5248, lp_flags: LP_NORMAL #313739 #3498DB 504 507 (131072,121) lp_len: 24, lp_off: 5224, lp_flags: LP_NORMAL #313739 #3498DB 508 511 (131072,122) lp_len: 24, lp_off: 5200, lp_flags: LP_NORMAL #313739 #3498DB 512 515 (131072,123) lp_len: 24, lp_off: 5176, lp_flags: LP_NORMAL #313739 #3498DB 516 519 (131072,124) lp_len: 24, lp_off: 5152, lp_flags: LP_NORMAL #313739 #3498DB 520 523 (131072,125) lp_len: 24, lp_off: 5128, lp_flags: LP_NORMAL #313739 #3498DB 524 527 (131072,126) lp_len: 32, lp_off: 5096, lp_flags: LP_NORMAL #313739 #3498DB 528 531 (131072,127) lp_len: 24, lp_off: 5072, lp_flags: LP_NORMAL #313739 #3498DB 532 535 (131072,128) lp_len: 24, lp_off: 5048, lp_flags: LP_NORMAL #313739 #3498DB 536 539 (131072,129) lp_len: 24, lp_off: 5024, lp_flags: LP_NORMAL #313739 #3498DB 540 543 (131072,130) lp_len: 24, lp_off: 5000, lp_flags: LP_NORMAL #313739 #3498DB 544 547 (131072,131) lp_len: 24, lp_off: 4976, lp_flags: LP_NORMAL #313739 #3498DB 548 551 (131072,132) lp_len: 24, lp_off: 4952, lp_flags: LP_NORMAL #313739 #3498DB 552 555 (131072,133) lp_len: 24, lp_off: 4928, lp_flags: LP_NORMAL #313739 #3498DB 556 559 (131072,134) lp_len: 24, lp_off: 4904, lp_flags: LP_NORMAL #313739 #3498DB 560 563 (131072,135) lp_len: 24, lp_off: 4880, lp_flags: LP_NORMAL #313739 #3498DB 564 567 (131072,136) lp_len: 24, lp_off: 4856, lp_flags: LP_NORMAL #313739 #3498DB 568 571 (131072,137) lp_len: 24, lp_off: 4832, lp_flags: LP_NORMAL #313739 #3498DB 572 575 (131072,138) lp_len: 24, lp_off: 4808, lp_flags: LP_NORMAL #313739 #3498DB 576 579 (131072,139) lp_len: 16, lp_off: 4792, lp_flags: LP_NORMAL #313739 #3498DB 580 583 (131072,140) lp_len: 24, lp_off: 4768, lp_flags: LP_NORMAL #313739 #3498DB 584 587 (131072,141) lp_len: 32, lp_off: 4736, lp_flags: LP_NORMAL #313739 #3498DB 588 591 (131072,142) lp_len: 32, lp_off: 4704, lp_flags: LP_NORMAL #313739 #3498DB 592 595 (131072,143) lp_len: 24, lp_off: 4680, lp_flags: LP_NORMAL #313739 #3498DB 596 599 (131072,144) lp_len: 24, lp_off: 4656, lp_flags: LP_NORMAL #313739 #3498DB 600 603 (131072,145) lp_len: 24, lp_off: 4632, lp_flags: LP_NORMAL #313739 #3498DB 604 607 (131072,146) lp_len: 24, lp_off: 4608, lp_flags: LP_NORMAL #313739 #3498DB 608 611 (131072,147) lp_len: 24, lp_off: 4584, lp_flags: LP_NORMAL #313739 #3498DB 612 615 (131072,148) lp_len: 24, lp_off: 4560, lp_flags: LP_NORMAL #313739 #3498DB 616 619 (131072,149) lp_len: 24, lp_off: 4536, lp_flags: LP_NORMAL #313739 #3498DB 620 623 (131072,150) lp_len: 24, lp_off: 4512, lp_flags: LP_NORMAL #313739 #3498DB 624 627 (131072,151) lp_len: 24, lp_off: 4488, lp_flags: LP_NORMAL #313739 #3498DB 628 631 (131072,152) lp_len: 32, lp_off: 4456, lp_flags: LP_NORMAL #313739 #3498DB 632 635 (131072,153) lp_len: 24, lp_off: 4432, lp_flags: LP_NORMAL #313739 #3498DB 636 639 (131072,154) lp_len: 32, lp_off: 4400, lp_flags: LP_NORMAL #313739 #3498DB 640 643 (131072,155) lp_len: 32, lp_off: 4368, lp_flags: LP_NORMAL #313739 #3498DB 644 647 (131072,156) lp_len: 24, lp_off: 4344, lp_flags: LP_NORMAL #313739 #3498DB 648 651 (131072,157) lp_len: 24, lp_off: 4320, lp_flags: LP_NORMAL #313739 #3498DB 652 655 (131072,158) lp_len: 24, lp_off: 4296, lp_flags: LP_NORMAL #313739 #3498DB 656 659 (131072,159) lp_len: 24, lp_off: 4272, lp_flags: LP_NORMAL #313739 #3498DB 660 663 (131072,160) lp_len: 24, lp_off: 4248, lp_flags: LP_NORMAL #313739 #3498DB 664 667 (131072,161) lp_len: 24, lp_off: 4224, lp_flags: LP_NORMAL #313739 #3498DB 668 671 (131072,162) lp_len: 24, lp_off: 4200, lp_flags: LP_NORMAL #313739 #3498DB 672 675 (131072,163) lp_len: 24, lp_off: 4176, lp_flags: LP_NORMAL #313739 #3498DB 676 679 (131072,164) lp_len: 32, lp_off: 4144, lp_flags: LP_NORMAL #313739 #3498DB 680 683 (131072,165) lp_len: 24, lp_off: 4120, lp_flags: LP_NORMAL #313739 #3498DB 684 687 (131072,166) lp_len: 24, lp_off: 4096, lp_flags: LP_NORMAL #313739 #3498DB 688 691 (131072,167) lp_len: 24, lp_off: 4072, lp_flags: LP_NORMAL #313739 #3498DB 692 695 (131072,168) lp_len: 24, lp_off: 4048, lp_flags: LP_NORMAL #313739 #3498DB 696 699 (131072,169) lp_len: 24, lp_off: 4024, lp_flags: LP_NORMAL #313739 #3498DB 700 703 (131072,170) lp_len: 24, lp_off: 4000, lp_flags: LP_NORMAL #313739 #3498DB 704 707 (131072,171) lp_len: 24, lp_off: 3976, lp_flags: LP_NORMAL #313739 #3498DB 708 711 (131072,172) lp_len: 24, lp_off: 3952, lp_flags: LP_NORMAL #313739 #3498DB 712 715 (131072,173) lp_len: 24, lp_off: 3928, lp_flags: LP_NORMAL #313739 #3498DB 716 719 (131072,174) lp_len: 16, lp_off: 3912, lp_flags: LP_NORMAL #313739 #3498DB 720 723 (131072,175) lp_len: 24, lp_off: 3888, lp_flags: LP_NORMAL #313739 #3498DB 724 727 (131072,176) lp_len: 32, lp_off: 3856, lp_flags: LP_NORMAL #313739 #3498DB 728 731 (131072,177) lp_len: 24, lp_off: 3832, lp_flags: LP_NORMAL #313739 #3498DB 732 735 (131072,178) lp_len: 24, lp_off: 3808, lp_flags: LP_NORMAL #313739 #3498DB 736 739 (131072,179) lp_len: 24, lp_off: 3784, lp_flags: LP_NORMAL #313739 #3498DB 740 743 (131072,180) lp_len: 32, lp_off: 3752, lp_flags: LP_NORMAL #313739 #3498DB 744 747 (131072,181) lp_len: 32, lp_off: 3720, lp_flags: LP_NORMAL #313739 #3498DB 748 751 (131072,182) lp_len: 24, lp_off: 3696, lp_flags: LP_NORMAL #313739 #3498DB 752 755 (131072,183) lp_len: 24, lp_off: 3672, lp_flags: LP_NORMAL #313739 #3498DB 756 759 (131072,184) lp_len: 24, lp_off: 3648, lp_flags: LP_NORMAL #313739 #3498DB 760 763 (131072,185) lp_len: 32, lp_off: 3616, lp_flags: LP_NORMAL #313739 #3498DB 764 767 (131072,186) lp_len: 32, lp_off: 3584, lp_flags: LP_NORMAL #313739 #3498DB 768 771 (131072,187) lp_len: 32, lp_off: 3552, lp_flags: LP_NORMAL #313739 #3498DB 772 775 (131072,188) lp_len: 32, lp_off: 3520, lp_flags: LP_NORMAL #313739 #3498DB 776 779 (131072,189) lp_len: 24, lp_off: 3496, lp_flags: LP_NORMAL #313739 #3498DB 780 783 (131072,190) lp_len: 24, lp_off: 3472, lp_flags: LP_NORMAL #313739 #3498DB 784 787 (131072,191) lp_len: 24, lp_off: 3448, lp_flags: LP_NORMAL #313739 #3498DB 788 791 (131072,192) lp_len: 24, lp_off: 3424, lp_flags: LP_NORMAL #313739 #3498DB 792 795 (131072,193) lp_len: 32, lp_off: 3392, lp_flags: LP_NORMAL #313739 #3498DB 796 799 (131072,194) lp_len: 24, lp_off: 3368, lp_flags: LP_NORMAL #313739 #3498DB 800 803 (131072,195) lp_len: 24, lp_off: 3344, lp_flags: LP_NORMAL #313739 #3498DB 804 807 (131072,196) lp_len: 24, lp_off: 3320, lp_flags: LP_NORMAL #313739 #3498DB 808 811 (131072,197) lp_len: 24, lp_off: 3296, lp_flags: LP_NORMAL #313739 #3498DB 812 815 (131072,198) lp_len: 24, lp_off: 3272, lp_flags: LP_NORMAL #313739 #3498DB 816 819 (131072,199) lp_len: 32, lp_off: 3240, lp_flags: LP_NORMAL #313739 #3498DB 820 823 (131072,200) lp_len: 32, lp_off: 3208, lp_flags: LP_NORMAL #313739 #3498DB 824 827 (131072,201) lp_len: 32, lp_off: 3176, lp_flags: LP_NORMAL #313739 #3498DB 828 831 (131072,202) lp_len: 24, lp_off: 3152, lp_flags: LP_NORMAL #313739 #3498DB 832 835 (131072,203) lp_len: 32, lp_off: 3120, lp_flags: LP_NORMAL #313739 #3498DB 836 839 (131072,204) lp_len: 32, lp_off: 3088, lp_flags: LP_NORMAL #313739 #3498DB 840 843 (131072,205) lp_len: 32, lp_off: 3056, lp_flags: LP_NORMAL #313739 #3498DB 844 847 (131072,206) lp_len: 24, lp_off: 3032, lp_flags: LP_NORMAL #313739 #3498DB 848 851 (131072,207) lp_len: 24, lp_off: 3008, lp_flags: LP_NORMAL #313739 #3498DB 852 855 (131072,208) lp_len: 24, lp_off: 2984, lp_flags: LP_NORMAL #313739 #3498DB 856 859 (131072,209) lp_len: 24, lp_off: 2960, lp_flags: LP_NORMAL #313739 #3498DB 860 863 (131072,210) lp_len: 24, lp_off: 2936, lp_flags: LP_NORMAL #313739 #3498DB 864 867 (131072,211) lp_len: 24, lp_off: 2912, lp_flags: LP_NORMAL #313739 #3498DB 868 871 (131072,212) lp_len: 24, lp_off: 2888, lp_flags: LP_NORMAL #313739 #3498DB 872 875 (131072,213) lp_len: 24, lp_off: 2864, lp_flags: LP_NORMAL #313739 #3498DB 876 879 (131072,214) lp_len: 16, lp_off: 2848, lp_flags: LP_NORMAL #313739 #3498DB 880 883 (131072,215) lp_len: 32, lp_off: 2816, lp_flags: LP_NORMAL #313739 #3498DB 884 887 (131072,216) lp_len: 24, lp_off: 2792, lp_flags: LP_NORMAL #313739 #3498DB 888 891 (131072,217) lp_len: 32, lp_off: 2760, lp_flags: LP_NORMAL #313739 #3498DB 892 895 (131072,218) lp_len: 24, lp_off: 2736, lp_flags: LP_NORMAL #313739 #3498DB 896 899 (131072,219) lp_len: 32, lp_off: 2704, lp_flags: LP_NORMAL #313739 #3498DB 900 903 (131072,220) lp_len: 24, lp_off: 2680, lp_flags: LP_NORMAL #313739 #3498DB 904 907 (131072,221) lp_len: 24, lp_off: 2656, lp_flags: LP_NORMAL #313739 #3498DB 908 911 (131072,222) lp_len: 24, lp_off: 2632, lp_flags: LP_NORMAL #313739 #3498DB 912 915 (131072,223) lp_len: 32, lp_off: 2600, lp_flags: LP_NORMAL #313739 #3498DB 916 919 (131072,224) lp_len: 24, lp_off: 2576, lp_flags: LP_NORMAL #313739 #3498DB 920 923 (131072,225) lp_len: 32, lp_off: 2544, lp_flags: LP_NORMAL #313739 #3498DB 924 927 (131072,226) lp_len: 24, lp_off: 2520, lp_flags: LP_NORMAL #313739 #3498DB 928 931 (131072,227) lp_len: 24, lp_off: 2496, lp_flags: LP_NORMAL #313739 #3498DB 932 935 (131072,228) lp_len: 24, lp_off: 2472, lp_flags: LP_NORMAL #313739 #3498DB 936 939 (131072,229) lp_len: 32, lp_off: 2440, lp_flags: LP_NORMAL #313739 #3498DB 940 943 (131072,230) lp_len: 24, lp_off: 2416, lp_flags: LP_NORMAL #313739 #3498DB 944 947 (131072,231) lp_len: 24, lp_off: 2392, lp_flags: LP_NORMAL #313739 #3498DB 948 951 (131072,232) lp_len: 24, lp_off: 2368, lp_flags: LP_NORMAL #313739 #3498DB 952 955 (131072,233) lp_len: 24, lp_off: 2344, lp_flags: LP_NORMAL #313739 #3498DB 956 959 (131072,234) lp_len: 24, lp_off: 2320, lp_flags: LP_NORMAL #313739 #3498DB 960 963 (131072,235) lp_len: 24, lp_off: 2296, lp_flags: LP_NORMAL #313739 #3498DB 964 967 (131072,236) lp_len: 24, lp_off: 2272, lp_flags: LP_NORMAL #313739 #3498DB 968 971 (131072,237) lp_len: 24, lp_off: 2248, lp_flags: LP_NORMAL #313739 #3498DB 972 975 (131072,238) lp_len: 24, lp_off: 2224, lp_flags: LP_NORMAL #313739 #3498DB 976 979 (131072,239) lp_len: 24, lp_off: 2200, lp_flags: LP_NORMAL #313739 #3498DB 980 983 (131072,240) lp_len: 24, lp_off: 2176, lp_flags: LP_NORMAL #313739 #3498DB 984 987 (131072,241) lp_len: 24, lp_off: 2152, lp_flags: LP_NORMAL #313739 #3498DB 988 991 (131072,242) lp_len: 24, lp_off: 2128, lp_flags: LP_NORMAL #313739 #3498DB 992 995 (131072,243) lp_len: 32, lp_off: 2096, lp_flags: LP_NORMAL #313739 #3498DB 996 999 (131072,244) lp_len: 24, lp_off: 2072, lp_flags: LP_NORMAL #313739 #3498DB 1000 1003 (131072,245) lp_len: 32, lp_off: 2040, lp_flags: LP_NORMAL #313739 #3498DB 1004 1007 (131072,246) lp_len: 24, lp_off: 2016, lp_flags: LP_NORMAL #313739 #3498DB 1008 1011 (131072,247) lp_len: 24, lp_off: 1992, lp_flags: LP_NORMAL #313739 #3498DB 1012 1015 (131072,248) lp_len: 32, lp_off: 1960, lp_flags: LP_NORMAL #313739 #3498DB 1016 1019 (131072,249) lp_len: 32, lp_off: 1928, lp_flags: LP_NORMAL #313739 #3498DB 1020 1023 (131072,250) lp_len: 32, lp_off: 1896, lp_flags: LP_NORMAL #313739 #3498DB 1024 1027 (131072,251) lp_len: 24, lp_off: 1872, lp_flags: LP_NORMAL #313739 #3498DB 1848 1849 (131072,1) t_tid->bi_hi #313739 #3498DB 1850 1851 (131072,1) t_tid->bi_lo #313739 #3498DB 1852 1853 (131072,1) t_tid->offsetNumber #313739 #2980B9 1854 1855 (131072,1) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 1856 1871 (131072,1) contents #313739 #CCD1D1 8160 8161 (131072,2) t_tid->bi_hi #313739 #3498DB 8162 8163 (131072,2) t_tid->bi_lo #313739 #3498DB 8164 8165 (131072,2) t_tid->offsetNumber #313739 #2980B9 8166 8167 (131072,2) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 8168 8175 (131072,2) contents #313739 #CCD1D1 8144 8145 (131072,3) t_tid->bi_hi #313739 #3498DB 8146 8147 (131072,3) t_tid->bi_lo #313739 #3498DB 8148 8149 (131072,3) t_tid->offsetNumber #313739 #2980B9 8150 8151 (131072,3) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 8152 8159 (131072,3) contents #313739 #CCD1D1 8128 8129 (131072,4) t_tid->bi_hi #313739 #3498DB 8130 8131 (131072,4) t_tid->bi_lo #313739 #3498DB 8132 8133 (131072,4) t_tid->offsetNumber #313739 #2980B9 8134 8135 (131072,4) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 8136 8143 (131072,4) contents #313739 #CCD1D1 8104 8105 (131072,5) t_tid->bi_hi #313739 #3498DB 8106 8107 (131072,5) t_tid->bi_lo #313739 #3498DB 8108 8109 (131072,5) t_tid->offsetNumber #313739 #2980B9 8110 8111 (131072,5) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8112 8127 (131072,5) contents #313739 #CCD1D1 8080 8081 (131072,6) t_tid->bi_hi #313739 #3498DB 8082 8083 (131072,6) t_tid->bi_lo #313739 #3498DB 8084 8085 (131072,6) t_tid->offsetNumber #313739 #2980B9 8086 8087 (131072,6) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8088 8103 (131072,6) contents #313739 #CCD1D1 8056 8057 (131072,7) t_tid->bi_hi #313739 #3498DB 8058 8059 (131072,7) t_tid->bi_lo #313739 #3498DB 8060 8061 (131072,7) t_tid->offsetNumber #313739 #2980B9 8062 8063 (131072,7) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8064 8079 (131072,7) contents #313739 #CCD1D1 8032 8033 (131072,8) t_tid->bi_hi #313739 #3498DB 8034 8035 (131072,8) t_tid->bi_lo #313739 #3498DB 8036 8037 (131072,8) t_tid->offsetNumber #313739 #2980B9 8038 8039 (131072,8) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8040 8055 (131072,8) contents #313739 #CCD1D1 8008 8009 (131072,9) t_tid->bi_hi #313739 #3498DB 8010 8011 (131072,9) t_tid->bi_lo #313739 #3498DB 8012 8013 (131072,9) t_tid->offsetNumber #313739 #2980B9 8014 8015 (131072,9) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 8016 8031 (131072,9) contents #313739 #CCD1D1 7984 7985 (131072,10) t_tid->bi_hi #313739 #3498DB 7986 7987 (131072,10) t_tid->bi_lo #313739 #3498DB 7988 7989 (131072,10) t_tid->offsetNumber #313739 #2980B9 7990 7991 (131072,10) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7992 8007 (131072,10) contents #313739 #CCD1D1 7960 7961 (131072,11) t_tid->bi_hi #313739 #3498DB 7962 7963 (131072,11) t_tid->bi_lo #313739 #3498DB 7964 7965 (131072,11) t_tid->offsetNumber #313739 #2980B9 7966 7967 (131072,11) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7968 7983 (131072,11) contents #313739 #CCD1D1 7936 7937 (131072,12) t_tid->bi_hi #313739 #3498DB 7938 7939 (131072,12) t_tid->bi_lo #313739 #3498DB 7940 7941 (131072,12) t_tid->offsetNumber #313739 #2980B9 7942 7943 (131072,12) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7944 7959 (131072,12) contents #313739 #CCD1D1 7904 7905 (131072,13) t_tid->bi_hi #313739 #3498DB 7906 7907 (131072,13) t_tid->bi_lo #313739 #3498DB 7908 7909 (131072,13) t_tid->offsetNumber #313739 #2980B9 7910 7911 (131072,13) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7912 7935 (131072,13) contents #313739 #CCD1D1 7872 7873 (131072,14) t_tid->bi_hi #313739 #3498DB 7874 7875 (131072,14) t_tid->bi_lo #313739 #3498DB 7876 7877 (131072,14) t_tid->offsetNumber #313739 #2980B9 7878 7879 (131072,14) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7880 7903 (131072,14) contents #313739 #CCD1D1 7848 7849 (131072,15) t_tid->bi_hi #313739 #3498DB 7850 7851 (131072,15) t_tid->bi_lo #313739 #3498DB 7852 7853 (131072,15) t_tid->offsetNumber #313739 #2980B9 7854 7855 (131072,15) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7856 7871 (131072,15) contents #313739 #CCD1D1 7832 7833 (131072,16) t_tid->bi_hi #313739 #3498DB 7834 7835 (131072,16) t_tid->bi_lo #313739 #3498DB 7836 7837 (131072,16) t_tid->offsetNumber #313739 #2980B9 7838 7839 (131072,16) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 7840 7847 (131072,16) contents #313739 #CCD1D1 7808 7809 (131072,17) t_tid->bi_hi #313739 #3498DB 7810 7811 (131072,17) t_tid->bi_lo #313739 #3498DB 7812 7813 (131072,17) t_tid->offsetNumber #313739 #2980B9 7814 7815 (131072,17) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7816 7831 (131072,17) contents #313739 #CCD1D1 7784 7785 (131072,18) t_tid->bi_hi #313739 #3498DB 7786 7787 (131072,18) t_tid->bi_lo #313739 #3498DB 7788 7789 (131072,18) t_tid->offsetNumber #313739 #2980B9 7790 7791 (131072,18) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7792 7807 (131072,18) contents #313739 #CCD1D1 7760 7761 (131072,19) t_tid->bi_hi #313739 #3498DB 7762 7763 (131072,19) t_tid->bi_lo #313739 #3498DB 7764 7765 (131072,19) t_tid->offsetNumber #313739 #2980B9 7766 7767 (131072,19) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7768 7783 (131072,19) contents #313739 #CCD1D1 7728 7729 (131072,20) t_tid->bi_hi #313739 #3498DB 7730 7731 (131072,20) t_tid->bi_lo #313739 #3498DB 7732 7733 (131072,20) t_tid->offsetNumber #313739 #2980B9 7734 7735 (131072,20) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7736 7759 (131072,20) contents #313739 #CCD1D1 7696 7697 (131072,21) t_tid->bi_hi #313739 #3498DB 7698 7699 (131072,21) t_tid->bi_lo #313739 #3498DB 7700 7701 (131072,21) t_tid->offsetNumber #313739 #2980B9 7702 7703 (131072,21) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7704 7727 (131072,21) contents #313739 #CCD1D1 7672 7673 (131072,22) t_tid->bi_hi #313739 #3498DB 7674 7675 (131072,22) t_tid->bi_lo #313739 #3498DB 7676 7677 (131072,22) t_tid->offsetNumber #313739 #2980B9 7678 7679 (131072,22) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7680 7695 (131072,22) contents #313739 #CCD1D1 7656 7657 (131072,23) t_tid->bi_hi #313739 #3498DB 7658 7659 (131072,23) t_tid->bi_lo #313739 #3498DB 7660 7661 (131072,23) t_tid->offsetNumber #313739 #2980B9 7662 7663 (131072,23) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 7664 7671 (131072,23) contents #313739 #CCD1D1 7632 7633 (131072,24) t_tid->bi_hi #313739 #3498DB 7634 7635 (131072,24) t_tid->bi_lo #313739 #3498DB 7636 7637 (131072,24) t_tid->offsetNumber #313739 #2980B9 7638 7639 (131072,24) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7640 7655 (131072,24) contents #313739 #CCD1D1 7608 7609 (131072,25) t_tid->bi_hi #313739 #3498DB 7610 7611 (131072,25) t_tid->bi_lo #313739 #3498DB 7612 7613 (131072,25) t_tid->offsetNumber #313739 #2980B9 7614 7615 (131072,25) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7616 7631 (131072,25) contents #313739 #CCD1D1 7584 7585 (131072,26) t_tid->bi_hi #313739 #3498DB 7586 7587 (131072,26) t_tid->bi_lo #313739 #3498DB 7588 7589 (131072,26) t_tid->offsetNumber #313739 #2980B9 7590 7591 (131072,26) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7592 7607 (131072,26) contents #313739 #CCD1D1 7560 7561 (131072,27) t_tid->bi_hi #313739 #3498DB 7562 7563 (131072,27) t_tid->bi_lo #313739 #3498DB 7564 7565 (131072,27) t_tid->offsetNumber #313739 #2980B9 7566 7567 (131072,27) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7568 7583 (131072,27) contents #313739 #CCD1D1 7536 7537 (131072,28) t_tid->bi_hi #313739 #3498DB 7538 7539 (131072,28) t_tid->bi_lo #313739 #3498DB 7540 7541 (131072,28) t_tid->offsetNumber #313739 #2980B9 7542 7543 (131072,28) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7544 7559 (131072,28) contents #313739 #CCD1D1 7504 7505 (131072,29) t_tid->bi_hi #313739 #3498DB 7506 7507 (131072,29) t_tid->bi_lo #313739 #3498DB 7508 7509 (131072,29) t_tid->offsetNumber #313739 #2980B9 7510 7511 (131072,29) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7512 7535 (131072,29) contents #313739 #CCD1D1 7480 7481 (131072,30) t_tid->bi_hi #313739 #3498DB 7482 7483 (131072,30) t_tid->bi_lo #313739 #3498DB 7484 7485 (131072,30) t_tid->offsetNumber #313739 #2980B9 7486 7487 (131072,30) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7488 7503 (131072,30) contents #313739 #CCD1D1 7456 7457 (131072,31) t_tid->bi_hi #313739 #3498DB 7458 7459 (131072,31) t_tid->bi_lo #313739 #3498DB 7460 7461 (131072,31) t_tid->offsetNumber #313739 #2980B9 7462 7463 (131072,31) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7464 7479 (131072,31) contents #313739 #CCD1D1 7432 7433 (131072,32) t_tid->bi_hi #313739 #3498DB 7434 7435 (131072,32) t_tid->bi_lo #313739 #3498DB 7436 7437 (131072,32) t_tid->offsetNumber #313739 #2980B9 7438 7439 (131072,32) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7440 7455 (131072,32) contents #313739 #CCD1D1 7408 7409 (131072,33) t_tid->bi_hi #313739 #3498DB 7410 7411 (131072,33) t_tid->bi_lo #313739 #3498DB 7412 7413 (131072,33) t_tid->offsetNumber #313739 #2980B9 7414 7415 (131072,33) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7416 7431 (131072,33) contents #313739 #CCD1D1 7384 7385 (131072,34) t_tid->bi_hi #313739 #3498DB 7386 7387 (131072,34) t_tid->bi_lo #313739 #3498DB 7388 7389 (131072,34) t_tid->offsetNumber #313739 #2980B9 7390 7391 (131072,34) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7392 7407 (131072,34) contents #313739 #CCD1D1 7352 7353 (131072,35) t_tid->bi_hi #313739 #3498DB 7354 7355 (131072,35) t_tid->bi_lo #313739 #3498DB 7356 7357 (131072,35) t_tid->offsetNumber #313739 #2980B9 7358 7359 (131072,35) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 7360 7383 (131072,35) contents #313739 #CCD1D1 7328 7329 (131072,36) t_tid->bi_hi #313739 #3498DB 7330 7331 (131072,36) t_tid->bi_lo #313739 #3498DB 7332 7333 (131072,36) t_tid->offsetNumber #313739 #2980B9 7334 7335 (131072,36) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7336 7351 (131072,36) contents #313739 #CCD1D1 7304 7305 (131072,37) t_tid->bi_hi #313739 #3498DB 7306 7307 (131072,37) t_tid->bi_lo #313739 #3498DB 7308 7309 (131072,37) t_tid->offsetNumber #313739 #2980B9 7310 7311 (131072,37) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7312 7327 (131072,37) contents #313739 #CCD1D1 7280 7281 (131072,38) t_tid->bi_hi #313739 #3498DB 7282 7283 (131072,38) t_tid->bi_lo #313739 #3498DB 7284 7285 (131072,38) t_tid->offsetNumber #313739 #2980B9 7286 7287 (131072,38) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7288 7303 (131072,38) contents #313739 #CCD1D1 7256 7257 (131072,39) t_tid->bi_hi #313739 #3498DB 7258 7259 (131072,39) t_tid->bi_lo #313739 #3498DB 7260 7261 (131072,39) t_tid->offsetNumber #313739 #2980B9 7262 7263 (131072,39) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7264 7279 (131072,39) contents #313739 #CCD1D1 7232 7233 (131072,40) t_tid->bi_hi #313739 #3498DB 7234 7235 (131072,40) t_tid->bi_lo #313739 #3498DB 7236 7237 (131072,40) t_tid->offsetNumber #313739 #2980B9 7238 7239 (131072,40) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7240 7255 (131072,40) contents #313739 #CCD1D1 7208 7209 (131072,41) t_tid->bi_hi #313739 #3498DB 7210 7211 (131072,41) t_tid->bi_lo #313739 #3498DB 7212 7213 (131072,41) t_tid->offsetNumber #313739 #2980B9 7214 7215 (131072,41) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7216 7231 (131072,41) contents #313739 #CCD1D1 7192 7193 (131072,42) t_tid->bi_hi #313739 #3498DB 7194 7195 (131072,42) t_tid->bi_lo #313739 #3498DB 7196 7197 (131072,42) t_tid->offsetNumber #313739 #2980B9 7198 7199 (131072,42) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 7200 7207 (131072,42) contents #313739 #CCD1D1 7168 7169 (131072,43) t_tid->bi_hi #313739 #3498DB 7170 7171 (131072,43) t_tid->bi_lo #313739 #3498DB 7172 7173 (131072,43) t_tid->offsetNumber #313739 #2980B9 7174 7175 (131072,43) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7176 7191 (131072,43) contents #313739 #CCD1D1 7144 7145 (131072,44) t_tid->bi_hi #313739 #3498DB 7146 7147 (131072,44) t_tid->bi_lo #313739 #3498DB 7148 7149 (131072,44) t_tid->offsetNumber #313739 #2980B9 7150 7151 (131072,44) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7152 7167 (131072,44) contents #313739 #CCD1D1 7120 7121 (131072,45) t_tid->bi_hi #313739 #3498DB 7122 7123 (131072,45) t_tid->bi_lo #313739 #3498DB 7124 7125 (131072,45) t_tid->offsetNumber #313739 #2980B9 7126 7127 (131072,45) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7128 7143 (131072,45) contents #313739 #CCD1D1 7096 7097 (131072,46) t_tid->bi_hi #313739 #3498DB 7098 7099 (131072,46) t_tid->bi_lo #313739 #3498DB 7100 7101 (131072,46) t_tid->offsetNumber #313739 #2980B9 7102 7103 (131072,46) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7104 7119 (131072,46) contents #313739 #CCD1D1 7072 7073 (131072,47) t_tid->bi_hi #313739 #3498DB 7074 7075 (131072,47) t_tid->bi_lo #313739 #3498DB 7076 7077 (131072,47) t_tid->offsetNumber #313739 #2980B9 7078 7079 (131072,47) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7080 7095 (131072,47) contents #313739 #CCD1D1 7048 7049 (131072,48) t_tid->bi_hi #313739 #3498DB 7050 7051 (131072,48) t_tid->bi_lo #313739 #3498DB 7052 7053 (131072,48) t_tid->offsetNumber #313739 #2980B9 7054 7055 (131072,48) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7056 7071 (131072,48) contents #313739 #CCD1D1 7024 7025 (131072,49) t_tid->bi_hi #313739 #3498DB 7026 7027 (131072,49) t_tid->bi_lo #313739 #3498DB 7028 7029 (131072,49) t_tid->offsetNumber #313739 #2980B9 7030 7031 (131072,49) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7032 7047 (131072,49) contents #313739 #CCD1D1 7000 7001 (131072,50) t_tid->bi_hi #313739 #3498DB 7002 7003 (131072,50) t_tid->bi_lo #313739 #3498DB 7004 7005 (131072,50) t_tid->offsetNumber #313739 #2980B9 7006 7007 (131072,50) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 7008 7023 (131072,50) contents #313739 #CCD1D1 6976 6977 (131072,51) t_tid->bi_hi #313739 #3498DB 6978 6979 (131072,51) t_tid->bi_lo #313739 #3498DB 6980 6981 (131072,51) t_tid->offsetNumber #313739 #2980B9 6982 6983 (131072,51) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6984 6999 (131072,51) contents #313739 #CCD1D1 6952 6953 (131072,52) t_tid->bi_hi #313739 #3498DB 6954 6955 (131072,52) t_tid->bi_lo #313739 #3498DB 6956 6957 (131072,52) t_tid->offsetNumber #313739 #2980B9 6958 6959 (131072,52) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6960 6975 (131072,52) contents #313739 #CCD1D1 6928 6929 (131072,53) t_tid->bi_hi #313739 #3498DB 6930 6931 (131072,53) t_tid->bi_lo #313739 #3498DB 6932 6933 (131072,53) t_tid->offsetNumber #313739 #2980B9 6934 6935 (131072,53) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6936 6951 (131072,53) contents #313739 #CCD1D1 6904 6905 (131072,54) t_tid->bi_hi #313739 #3498DB 6906 6907 (131072,54) t_tid->bi_lo #313739 #3498DB 6908 6909 (131072,54) t_tid->offsetNumber #313739 #2980B9 6910 6911 (131072,54) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6912 6927 (131072,54) contents #313739 #CCD1D1 6880 6881 (131072,55) t_tid->bi_hi #313739 #3498DB 6882 6883 (131072,55) t_tid->bi_lo #313739 #3498DB 6884 6885 (131072,55) t_tid->offsetNumber #313739 #2980B9 6886 6887 (131072,55) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6888 6903 (131072,55) contents #313739 #CCD1D1 6856 6857 (131072,56) t_tid->bi_hi #313739 #3498DB 6858 6859 (131072,56) t_tid->bi_lo #313739 #3498DB 6860 6861 (131072,56) t_tid->offsetNumber #313739 #2980B9 6862 6863 (131072,56) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6864 6879 (131072,56) contents #313739 #CCD1D1 6832 6833 (131072,57) t_tid->bi_hi #313739 #3498DB 6834 6835 (131072,57) t_tid->bi_lo #313739 #3498DB 6836 6837 (131072,57) t_tid->offsetNumber #313739 #2980B9 6838 6839 (131072,57) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6840 6855 (131072,57) contents #313739 #CCD1D1 6808 6809 (131072,58) t_tid->bi_hi #313739 #3498DB 6810 6811 (131072,58) t_tid->bi_lo #313739 #3498DB 6812 6813 (131072,58) t_tid->offsetNumber #313739 #2980B9 6814 6815 (131072,58) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6816 6831 (131072,58) contents #313739 #CCD1D1 6784 6785 (131072,59) t_tid->bi_hi #313739 #3498DB 6786 6787 (131072,59) t_tid->bi_lo #313739 #3498DB 6788 6789 (131072,59) t_tid->offsetNumber #313739 #2980B9 6790 6791 (131072,59) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6792 6807 (131072,59) contents #313739 #CCD1D1 6760 6761 (131072,60) t_tid->bi_hi #313739 #3498DB 6762 6763 (131072,60) t_tid->bi_lo #313739 #3498DB 6764 6765 (131072,60) t_tid->offsetNumber #313739 #2980B9 6766 6767 (131072,60) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6768 6783 (131072,60) contents #313739 #CCD1D1 6736 6737 (131072,61) t_tid->bi_hi #313739 #3498DB 6738 6739 (131072,61) t_tid->bi_lo #313739 #3498DB 6740 6741 (131072,61) t_tid->offsetNumber #313739 #2980B9 6742 6743 (131072,61) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6744 6759 (131072,61) contents #313739 #CCD1D1 6712 6713 (131072,62) t_tid->bi_hi #313739 #3498DB 6714 6715 (131072,62) t_tid->bi_lo #313739 #3498DB 6716 6717 (131072,62) t_tid->offsetNumber #313739 #2980B9 6718 6719 (131072,62) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6720 6735 (131072,62) contents #313739 #CCD1D1 6688 6689 (131072,63) t_tid->bi_hi #313739 #3498DB 6690 6691 (131072,63) t_tid->bi_lo #313739 #3498DB 6692 6693 (131072,63) t_tid->offsetNumber #313739 #2980B9 6694 6695 (131072,63) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6696 6711 (131072,63) contents #313739 #CCD1D1 6664 6665 (131072,64) t_tid->bi_hi #313739 #3498DB 6666 6667 (131072,64) t_tid->bi_lo #313739 #3498DB 6668 6669 (131072,64) t_tid->offsetNumber #313739 #2980B9 6670 6671 (131072,64) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6672 6687 (131072,64) contents #313739 #CCD1D1 6640 6641 (131072,65) t_tid->bi_hi #313739 #3498DB 6642 6643 (131072,65) t_tid->bi_lo #313739 #3498DB 6644 6645 (131072,65) t_tid->offsetNumber #313739 #2980B9 6646 6647 (131072,65) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6648 6663 (131072,65) contents #313739 #CCD1D1 6616 6617 (131072,66) t_tid->bi_hi #313739 #3498DB 6618 6619 (131072,66) t_tid->bi_lo #313739 #3498DB 6620 6621 (131072,66) t_tid->offsetNumber #313739 #2980B9 6622 6623 (131072,66) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6624 6639 (131072,66) contents #313739 #CCD1D1 6592 6593 (131072,67) t_tid->bi_hi #313739 #3498DB 6594 6595 (131072,67) t_tid->bi_lo #313739 #3498DB 6596 6597 (131072,67) t_tid->offsetNumber #313739 #2980B9 6598 6599 (131072,67) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6600 6615 (131072,67) contents #313739 #CCD1D1 6568 6569 (131072,68) t_tid->bi_hi #313739 #3498DB 6570 6571 (131072,68) t_tid->bi_lo #313739 #3498DB 6572 6573 (131072,68) t_tid->offsetNumber #313739 #2980B9 6574 6575 (131072,68) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6576 6591 (131072,68) contents #313739 #CCD1D1 6544 6545 (131072,69) t_tid->bi_hi #313739 #3498DB 6546 6547 (131072,69) t_tid->bi_lo #313739 #3498DB 6548 6549 (131072,69) t_tid->offsetNumber #313739 #2980B9 6550 6551 (131072,69) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6552 6567 (131072,69) contents #313739 #CCD1D1 6520 6521 (131072,70) t_tid->bi_hi #313739 #3498DB 6522 6523 (131072,70) t_tid->bi_lo #313739 #3498DB 6524 6525 (131072,70) t_tid->offsetNumber #313739 #2980B9 6526 6527 (131072,70) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6528 6543 (131072,70) contents #313739 #CCD1D1 6496 6497 (131072,71) t_tid->bi_hi #313739 #3498DB 6498 6499 (131072,71) t_tid->bi_lo #313739 #3498DB 6500 6501 (131072,71) t_tid->offsetNumber #313739 #2980B9 6502 6503 (131072,71) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6504 6519 (131072,71) contents #313739 #CCD1D1 6480 6481 (131072,72) t_tid->bi_hi #313739 #3498DB 6482 6483 (131072,72) t_tid->bi_lo #313739 #3498DB 6484 6485 (131072,72) t_tid->offsetNumber #313739 #2980B9 6486 6487 (131072,72) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 6488 6495 (131072,72) contents #313739 #CCD1D1 6456 6457 (131072,73) t_tid->bi_hi #313739 #3498DB 6458 6459 (131072,73) t_tid->bi_lo #313739 #3498DB 6460 6461 (131072,73) t_tid->offsetNumber #313739 #2980B9 6462 6463 (131072,73) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6464 6479 (131072,73) contents #313739 #CCD1D1 6432 6433 (131072,74) t_tid->bi_hi #313739 #3498DB 6434 6435 (131072,74) t_tid->bi_lo #313739 #3498DB 6436 6437 (131072,74) t_tid->offsetNumber #313739 #2980B9 6438 6439 (131072,74) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6440 6455 (131072,74) contents #313739 #CCD1D1 6408 6409 (131072,75) t_tid->bi_hi #313739 #3498DB 6410 6411 (131072,75) t_tid->bi_lo #313739 #3498DB 6412 6413 (131072,75) t_tid->offsetNumber #313739 #2980B9 6414 6415 (131072,75) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6416 6431 (131072,75) contents #313739 #CCD1D1 6384 6385 (131072,76) t_tid->bi_hi #313739 #3498DB 6386 6387 (131072,76) t_tid->bi_lo #313739 #3498DB 6388 6389 (131072,76) t_tid->offsetNumber #313739 #2980B9 6390 6391 (131072,76) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6392 6407 (131072,76) contents #313739 #CCD1D1 6360 6361 (131072,77) t_tid->bi_hi #313739 #3498DB 6362 6363 (131072,77) t_tid->bi_lo #313739 #3498DB 6364 6365 (131072,77) t_tid->offsetNumber #313739 #2980B9 6366 6367 (131072,77) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6368 6383 (131072,77) contents #313739 #CCD1D1 6336 6337 (131072,78) t_tid->bi_hi #313739 #3498DB 6338 6339 (131072,78) t_tid->bi_lo #313739 #3498DB 6340 6341 (131072,78) t_tid->offsetNumber #313739 #2980B9 6342 6343 (131072,78) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6344 6359 (131072,78) contents #313739 #CCD1D1 6312 6313 (131072,79) t_tid->bi_hi #313739 #3498DB 6314 6315 (131072,79) t_tid->bi_lo #313739 #3498DB 6316 6317 (131072,79) t_tid->offsetNumber #313739 #2980B9 6318 6319 (131072,79) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6320 6335 (131072,79) contents #313739 #CCD1D1 6288 6289 (131072,80) t_tid->bi_hi #313739 #3498DB 6290 6291 (131072,80) t_tid->bi_lo #313739 #3498DB 6292 6293 (131072,80) t_tid->offsetNumber #313739 #2980B9 6294 6295 (131072,80) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6296 6311 (131072,80) contents #313739 #CCD1D1 6256 6257 (131072,81) t_tid->bi_hi #313739 #3498DB 6258 6259 (131072,81) t_tid->bi_lo #313739 #3498DB 6260 6261 (131072,81) t_tid->offsetNumber #313739 #2980B9 6262 6263 (131072,81) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6264 6287 (131072,81) contents #313739 #CCD1D1 6232 6233 (131072,82) t_tid->bi_hi #313739 #3498DB 6234 6235 (131072,82) t_tid->bi_lo #313739 #3498DB 6236 6237 (131072,82) t_tid->offsetNumber #313739 #2980B9 6238 6239 (131072,82) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6240 6255 (131072,82) contents #313739 #CCD1D1 6200 6201 (131072,83) t_tid->bi_hi #313739 #3498DB 6202 6203 (131072,83) t_tid->bi_lo #313739 #3498DB 6204 6205 (131072,83) t_tid->offsetNumber #313739 #2980B9 6206 6207 (131072,83) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6208 6231 (131072,83) contents #313739 #CCD1D1 6176 6177 (131072,84) t_tid->bi_hi #313739 #3498DB 6178 6179 (131072,84) t_tid->bi_lo #313739 #3498DB 6180 6181 (131072,84) t_tid->offsetNumber #313739 #2980B9 6182 6183 (131072,84) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6184 6199 (131072,84) contents #313739 #CCD1D1 6152 6153 (131072,85) t_tid->bi_hi #313739 #3498DB 6154 6155 (131072,85) t_tid->bi_lo #313739 #3498DB 6156 6157 (131072,85) t_tid->offsetNumber #313739 #2980B9 6158 6159 (131072,85) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6160 6175 (131072,85) contents #313739 #CCD1D1 6128 6129 (131072,86) t_tid->bi_hi #313739 #3498DB 6130 6131 (131072,86) t_tid->bi_lo #313739 #3498DB 6132 6133 (131072,86) t_tid->offsetNumber #313739 #2980B9 6134 6135 (131072,86) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6136 6151 (131072,86) contents #313739 #CCD1D1 6096 6097 (131072,87) t_tid->bi_hi #313739 #3498DB 6098 6099 (131072,87) t_tid->bi_lo #313739 #3498DB 6100 6101 (131072,87) t_tid->offsetNumber #313739 #2980B9 6102 6103 (131072,87) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6104 6127 (131072,87) contents #313739 #CCD1D1 6064 6065 (131072,88) t_tid->bi_hi #313739 #3498DB 6066 6067 (131072,88) t_tid->bi_lo #313739 #3498DB 6068 6069 (131072,88) t_tid->offsetNumber #313739 #2980B9 6070 6071 (131072,88) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 6072 6095 (131072,88) contents #313739 #CCD1D1 6040 6041 (131072,89) t_tid->bi_hi #313739 #3498DB 6042 6043 (131072,89) t_tid->bi_lo #313739 #3498DB 6044 6045 (131072,89) t_tid->offsetNumber #313739 #2980B9 6046 6047 (131072,89) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6048 6063 (131072,89) contents #313739 #CCD1D1 6016 6017 (131072,90) t_tid->bi_hi #313739 #3498DB 6018 6019 (131072,90) t_tid->bi_lo #313739 #3498DB 6020 6021 (131072,90) t_tid->offsetNumber #313739 #2980B9 6022 6023 (131072,90) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6024 6039 (131072,90) contents #313739 #CCD1D1 5992 5993 (131072,91) t_tid->bi_hi #313739 #3498DB 5994 5995 (131072,91) t_tid->bi_lo #313739 #3498DB 5996 5997 (131072,91) t_tid->offsetNumber #313739 #2980B9 5998 5999 (131072,91) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 6000 6015 (131072,91) contents #313739 #CCD1D1 5968 5969 (131072,92) t_tid->bi_hi #313739 #3498DB 5970 5971 (131072,92) t_tid->bi_lo #313739 #3498DB 5972 5973 (131072,92) t_tid->offsetNumber #313739 #2980B9 5974 5975 (131072,92) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5976 5991 (131072,92) contents #313739 #CCD1D1 5936 5937 (131072,93) t_tid->bi_hi #313739 #3498DB 5938 5939 (131072,93) t_tid->bi_lo #313739 #3498DB 5940 5941 (131072,93) t_tid->offsetNumber #313739 #2980B9 5942 5943 (131072,93) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5944 5967 (131072,93) contents #313739 #CCD1D1 5912 5913 (131072,94) t_tid->bi_hi #313739 #3498DB 5914 5915 (131072,94) t_tid->bi_lo #313739 #3498DB 5916 5917 (131072,94) t_tid->offsetNumber #313739 #2980B9 5918 5919 (131072,94) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5920 5935 (131072,94) contents #313739 #CCD1D1 5888 5889 (131072,95) t_tid->bi_hi #313739 #3498DB 5890 5891 (131072,95) t_tid->bi_lo #313739 #3498DB 5892 5893 (131072,95) t_tid->offsetNumber #313739 #2980B9 5894 5895 (131072,95) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5896 5911 (131072,95) contents #313739 #CCD1D1 5864 5865 (131072,96) t_tid->bi_hi #313739 #3498DB 5866 5867 (131072,96) t_tid->bi_lo #313739 #3498DB 5868 5869 (131072,96) t_tid->offsetNumber #313739 #2980B9 5870 5871 (131072,96) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5872 5887 (131072,96) contents #313739 #CCD1D1 5840 5841 (131072,97) t_tid->bi_hi #313739 #3498DB 5842 5843 (131072,97) t_tid->bi_lo #313739 #3498DB 5844 5845 (131072,97) t_tid->offsetNumber #313739 #2980B9 5846 5847 (131072,97) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5848 5863 (131072,97) contents #313739 #CCD1D1 5816 5817 (131072,98) t_tid->bi_hi #313739 #3498DB 5818 5819 (131072,98) t_tid->bi_lo #313739 #3498DB 5820 5821 (131072,98) t_tid->offsetNumber #313739 #2980B9 5822 5823 (131072,98) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5824 5839 (131072,98) contents #313739 #CCD1D1 5792 5793 (131072,99) t_tid->bi_hi #313739 #3498DB 5794 5795 (131072,99) t_tid->bi_lo #313739 #3498DB 5796 5797 (131072,99) t_tid->offsetNumber #313739 #2980B9 5798 5799 (131072,99) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5800 5815 (131072,99) contents #313739 #CCD1D1 5768 5769 (131072,100) t_tid->bi_hi #313739 #3498DB 5770 5771 (131072,100) t_tid->bi_lo #313739 #3498DB 5772 5773 (131072,100) t_tid->offsetNumber #313739 #2980B9 5774 5775 (131072,100) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5776 5791 (131072,100) contents #313739 #CCD1D1 5744 5745 (131072,101) t_tid->bi_hi #313739 #3498DB 5746 5747 (131072,101) t_tid->bi_lo #313739 #3498DB 5748 5749 (131072,101) t_tid->offsetNumber #313739 #2980B9 5750 5751 (131072,101) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5752 5767 (131072,101) contents #313739 #CCD1D1 5720 5721 (131072,102) t_tid->bi_hi #313739 #3498DB 5722 5723 (131072,102) t_tid->bi_lo #313739 #3498DB 5724 5725 (131072,102) t_tid->offsetNumber #313739 #2980B9 5726 5727 (131072,102) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5728 5743 (131072,102) contents #313739 #CCD1D1 5696 5697 (131072,103) t_tid->bi_hi #313739 #3498DB 5698 5699 (131072,103) t_tid->bi_lo #313739 #3498DB 5700 5701 (131072,103) t_tid->offsetNumber #313739 #2980B9 5702 5703 (131072,103) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5704 5719 (131072,103) contents #313739 #CCD1D1 5672 5673 (131072,104) t_tid->bi_hi #313739 #3498DB 5674 5675 (131072,104) t_tid->bi_lo #313739 #3498DB 5676 5677 (131072,104) t_tid->offsetNumber #313739 #2980B9 5678 5679 (131072,104) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5680 5695 (131072,104) contents #313739 #CCD1D1 5648 5649 (131072,105) t_tid->bi_hi #313739 #3498DB 5650 5651 (131072,105) t_tid->bi_lo #313739 #3498DB 5652 5653 (131072,105) t_tid->offsetNumber #313739 #2980B9 5654 5655 (131072,105) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5656 5671 (131072,105) contents #313739 #CCD1D1 5624 5625 (131072,106) t_tid->bi_hi #313739 #3498DB 5626 5627 (131072,106) t_tid->bi_lo #313739 #3498DB 5628 5629 (131072,106) t_tid->offsetNumber #313739 #2980B9 5630 5631 (131072,106) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5632 5647 (131072,106) contents #313739 #CCD1D1 5600 5601 (131072,107) t_tid->bi_hi #313739 #3498DB 5602 5603 (131072,107) t_tid->bi_lo #313739 #3498DB 5604 5605 (131072,107) t_tid->offsetNumber #313739 #2980B9 5606 5607 (131072,107) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5608 5623 (131072,107) contents #313739 #CCD1D1 5576 5577 (131072,108) t_tid->bi_hi #313739 #3498DB 5578 5579 (131072,108) t_tid->bi_lo #313739 #3498DB 5580 5581 (131072,108) t_tid->offsetNumber #313739 #2980B9 5582 5583 (131072,108) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5584 5599 (131072,108) contents #313739 #CCD1D1 5552 5553 (131072,109) t_tid->bi_hi #313739 #3498DB 5554 5555 (131072,109) t_tid->bi_lo #313739 #3498DB 5556 5557 (131072,109) t_tid->offsetNumber #313739 #2980B9 5558 5559 (131072,109) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5560 5575 (131072,109) contents #313739 #CCD1D1 5520 5521 (131072,110) t_tid->bi_hi #313739 #3498DB 5522 5523 (131072,110) t_tid->bi_lo #313739 #3498DB 5524 5525 (131072,110) t_tid->offsetNumber #313739 #2980B9 5526 5527 (131072,110) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5528 5551 (131072,110) contents #313739 #CCD1D1 5488 5489 (131072,111) t_tid->bi_hi #313739 #3498DB 5490 5491 (131072,111) t_tid->bi_lo #313739 #3498DB 5492 5493 (131072,111) t_tid->offsetNumber #313739 #2980B9 5494 5495 (131072,111) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5496 5519 (131072,111) contents #313739 #CCD1D1 5464 5465 (131072,112) t_tid->bi_hi #313739 #3498DB 5466 5467 (131072,112) t_tid->bi_lo #313739 #3498DB 5468 5469 (131072,112) t_tid->offsetNumber #313739 #2980B9 5470 5471 (131072,112) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5472 5487 (131072,112) contents #313739 #CCD1D1 5432 5433 (131072,113) t_tid->bi_hi #313739 #3498DB 5434 5435 (131072,113) t_tid->bi_lo #313739 #3498DB 5436 5437 (131072,113) t_tid->offsetNumber #313739 #2980B9 5438 5439 (131072,113) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5440 5463 (131072,113) contents #313739 #CCD1D1 5408 5409 (131072,114) t_tid->bi_hi #313739 #3498DB 5410 5411 (131072,114) t_tid->bi_lo #313739 #3498DB 5412 5413 (131072,114) t_tid->offsetNumber #313739 #2980B9 5414 5415 (131072,114) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5416 5431 (131072,114) contents #313739 #CCD1D1 5384 5385 (131072,115) t_tid->bi_hi #313739 #3498DB 5386 5387 (131072,115) t_tid->bi_lo #313739 #3498DB 5388 5389 (131072,115) t_tid->offsetNumber #313739 #2980B9 5390 5391 (131072,115) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5392 5407 (131072,115) contents #313739 #CCD1D1 5352 5353 (131072,116) t_tid->bi_hi #313739 #3498DB 5354 5355 (131072,116) t_tid->bi_lo #313739 #3498DB 5356 5357 (131072,116) t_tid->offsetNumber #313739 #2980B9 5358 5359 (131072,116) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5360 5383 (131072,116) contents #313739 #CCD1D1 5328 5329 (131072,117) t_tid->bi_hi #313739 #3498DB 5330 5331 (131072,117) t_tid->bi_lo #313739 #3498DB 5332 5333 (131072,117) t_tid->offsetNumber #313739 #2980B9 5334 5335 (131072,117) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5336 5351 (131072,117) contents #313739 #CCD1D1 5304 5305 (131072,118) t_tid->bi_hi #313739 #3498DB 5306 5307 (131072,118) t_tid->bi_lo #313739 #3498DB 5308 5309 (131072,118) t_tid->offsetNumber #313739 #2980B9 5310 5311 (131072,118) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5312 5327 (131072,118) contents #313739 #CCD1D1 5272 5273 (131072,119) t_tid->bi_hi #313739 #3498DB 5274 5275 (131072,119) t_tid->bi_lo #313739 #3498DB 5276 5277 (131072,119) t_tid->offsetNumber #313739 #2980B9 5278 5279 (131072,119) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5280 5303 (131072,119) contents #313739 #CCD1D1 5248 5249 (131072,120) t_tid->bi_hi #313739 #3498DB 5250 5251 (131072,120) t_tid->bi_lo #313739 #3498DB 5252 5253 (131072,120) t_tid->offsetNumber #313739 #2980B9 5254 5255 (131072,120) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5256 5271 (131072,120) contents #313739 #CCD1D1 5224 5225 (131072,121) t_tid->bi_hi #313739 #3498DB 5226 5227 (131072,121) t_tid->bi_lo #313739 #3498DB 5228 5229 (131072,121) t_tid->offsetNumber #313739 #2980B9 5230 5231 (131072,121) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5232 5247 (131072,121) contents #313739 #CCD1D1 5200 5201 (131072,122) t_tid->bi_hi #313739 #3498DB 5202 5203 (131072,122) t_tid->bi_lo #313739 #3498DB 5204 5205 (131072,122) t_tid->offsetNumber #313739 #2980B9 5206 5207 (131072,122) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5208 5223 (131072,122) contents #313739 #CCD1D1 5176 5177 (131072,123) t_tid->bi_hi #313739 #3498DB 5178 5179 (131072,123) t_tid->bi_lo #313739 #3498DB 5180 5181 (131072,123) t_tid->offsetNumber #313739 #2980B9 5182 5183 (131072,123) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5184 5199 (131072,123) contents #313739 #CCD1D1 5152 5153 (131072,124) t_tid->bi_hi #313739 #3498DB 5154 5155 (131072,124) t_tid->bi_lo #313739 #3498DB 5156 5157 (131072,124) t_tid->offsetNumber #313739 #2980B9 5158 5159 (131072,124) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5160 5175 (131072,124) contents #313739 #CCD1D1 5128 5129 (131072,125) t_tid->bi_hi #313739 #3498DB 5130 5131 (131072,125) t_tid->bi_lo #313739 #3498DB 5132 5133 (131072,125) t_tid->offsetNumber #313739 #2980B9 5134 5135 (131072,125) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5136 5151 (131072,125) contents #313739 #CCD1D1 5096 5097 (131072,126) t_tid->bi_hi #313739 #3498DB 5098 5099 (131072,126) t_tid->bi_lo #313739 #3498DB 5100 5101 (131072,126) t_tid->offsetNumber #313739 #2980B9 5102 5103 (131072,126) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 5104 5127 (131072,126) contents #313739 #CCD1D1 5072 5073 (131072,127) t_tid->bi_hi #313739 #3498DB 5074 5075 (131072,127) t_tid->bi_lo #313739 #3498DB 5076 5077 (131072,127) t_tid->offsetNumber #313739 #2980B9 5078 5079 (131072,127) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5080 5095 (131072,127) contents #313739 #CCD1D1 5048 5049 (131072,128) t_tid->bi_hi #313739 #3498DB 5050 5051 (131072,128) t_tid->bi_lo #313739 #3498DB 5052 5053 (131072,128) t_tid->offsetNumber #313739 #2980B9 5054 5055 (131072,128) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5056 5071 (131072,128) contents #313739 #CCD1D1 5024 5025 (131072,129) t_tid->bi_hi #313739 #3498DB 5026 5027 (131072,129) t_tid->bi_lo #313739 #3498DB 5028 5029 (131072,129) t_tid->offsetNumber #313739 #2980B9 5030 5031 (131072,129) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5032 5047 (131072,129) contents #313739 #CCD1D1 5000 5001 (131072,130) t_tid->bi_hi #313739 #3498DB 5002 5003 (131072,130) t_tid->bi_lo #313739 #3498DB 5004 5005 (131072,130) t_tid->offsetNumber #313739 #2980B9 5006 5007 (131072,130) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 5008 5023 (131072,130) contents #313739 #CCD1D1 4976 4977 (131072,131) t_tid->bi_hi #313739 #3498DB 4978 4979 (131072,131) t_tid->bi_lo #313739 #3498DB 4980 4981 (131072,131) t_tid->offsetNumber #313739 #2980B9 4982 4983 (131072,131) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4984 4999 (131072,131) contents #313739 #CCD1D1 4952 4953 (131072,132) t_tid->bi_hi #313739 #3498DB 4954 4955 (131072,132) t_tid->bi_lo #313739 #3498DB 4956 4957 (131072,132) t_tid->offsetNumber #313739 #2980B9 4958 4959 (131072,132) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4960 4975 (131072,132) contents #313739 #CCD1D1 4928 4929 (131072,133) t_tid->bi_hi #313739 #3498DB 4930 4931 (131072,133) t_tid->bi_lo #313739 #3498DB 4932 4933 (131072,133) t_tid->offsetNumber #313739 #2980B9 4934 4935 (131072,133) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4936 4951 (131072,133) contents #313739 #CCD1D1 4904 4905 (131072,134) t_tid->bi_hi #313739 #3498DB 4906 4907 (131072,134) t_tid->bi_lo #313739 #3498DB 4908 4909 (131072,134) t_tid->offsetNumber #313739 #2980B9 4910 4911 (131072,134) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4912 4927 (131072,134) contents #313739 #CCD1D1 4880 4881 (131072,135) t_tid->bi_hi #313739 #3498DB 4882 4883 (131072,135) t_tid->bi_lo #313739 #3498DB 4884 4885 (131072,135) t_tid->offsetNumber #313739 #2980B9 4886 4887 (131072,135) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4888 4903 (131072,135) contents #313739 #CCD1D1 4856 4857 (131072,136) t_tid->bi_hi #313739 #3498DB 4858 4859 (131072,136) t_tid->bi_lo #313739 #3498DB 4860 4861 (131072,136) t_tid->offsetNumber #313739 #2980B9 4862 4863 (131072,136) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4864 4879 (131072,136) contents #313739 #CCD1D1 4832 4833 (131072,137) t_tid->bi_hi #313739 #3498DB 4834 4835 (131072,137) t_tid->bi_lo #313739 #3498DB 4836 4837 (131072,137) t_tid->offsetNumber #313739 #2980B9 4838 4839 (131072,137) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4840 4855 (131072,137) contents #313739 #CCD1D1 4808 4809 (131072,138) t_tid->bi_hi #313739 #3498DB 4810 4811 (131072,138) t_tid->bi_lo #313739 #3498DB 4812 4813 (131072,138) t_tid->offsetNumber #313739 #2980B9 4814 4815 (131072,138) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4816 4831 (131072,138) contents #313739 #CCD1D1 4792 4793 (131072,139) t_tid->bi_hi #313739 #3498DB 4794 4795 (131072,139) t_tid->bi_lo #313739 #3498DB 4796 4797 (131072,139) t_tid->offsetNumber #313739 #2980B9 4798 4799 (131072,139) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 4800 4807 (131072,139) contents #313739 #CCD1D1 4768 4769 (131072,140) t_tid->bi_hi #313739 #3498DB 4770 4771 (131072,140) t_tid->bi_lo #313739 #3498DB 4772 4773 (131072,140) t_tid->offsetNumber #313739 #2980B9 4774 4775 (131072,140) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4776 4791 (131072,140) contents #313739 #CCD1D1 4736 4737 (131072,141) t_tid->bi_hi #313739 #3498DB 4738 4739 (131072,141) t_tid->bi_lo #313739 #3498DB 4740 4741 (131072,141) t_tid->offsetNumber #313739 #2980B9 4742 4743 (131072,141) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4744 4767 (131072,141) contents #313739 #CCD1D1 4704 4705 (131072,142) t_tid->bi_hi #313739 #3498DB 4706 4707 (131072,142) t_tid->bi_lo #313739 #3498DB 4708 4709 (131072,142) t_tid->offsetNumber #313739 #2980B9 4710 4711 (131072,142) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4712 4735 (131072,142) contents #313739 #CCD1D1 4680 4681 (131072,143) t_tid->bi_hi #313739 #3498DB 4682 4683 (131072,143) t_tid->bi_lo #313739 #3498DB 4684 4685 (131072,143) t_tid->offsetNumber #313739 #2980B9 4686 4687 (131072,143) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4688 4703 (131072,143) contents #313739 #CCD1D1 4656 4657 (131072,144) t_tid->bi_hi #313739 #3498DB 4658 4659 (131072,144) t_tid->bi_lo #313739 #3498DB 4660 4661 (131072,144) t_tid->offsetNumber #313739 #2980B9 4662 4663 (131072,144) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4664 4679 (131072,144) contents #313739 #CCD1D1 4632 4633 (131072,145) t_tid->bi_hi #313739 #3498DB 4634 4635 (131072,145) t_tid->bi_lo #313739 #3498DB 4636 4637 (131072,145) t_tid->offsetNumber #313739 #2980B9 4638 4639 (131072,145) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4640 4655 (131072,145) contents #313739 #CCD1D1 4608 4609 (131072,146) t_tid->bi_hi #313739 #3498DB 4610 4611 (131072,146) t_tid->bi_lo #313739 #3498DB 4612 4613 (131072,146) t_tid->offsetNumber #313739 #2980B9 4614 4615 (131072,146) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4616 4631 (131072,146) contents #313739 #CCD1D1 4584 4585 (131072,147) t_tid->bi_hi #313739 #3498DB 4586 4587 (131072,147) t_tid->bi_lo #313739 #3498DB 4588 4589 (131072,147) t_tid->offsetNumber #313739 #2980B9 4590 4591 (131072,147) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4592 4607 (131072,147) contents #313739 #CCD1D1 4560 4561 (131072,148) t_tid->bi_hi #313739 #3498DB 4562 4563 (131072,148) t_tid->bi_lo #313739 #3498DB 4564 4565 (131072,148) t_tid->offsetNumber #313739 #2980B9 4566 4567 (131072,148) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4568 4583 (131072,148) contents #313739 #CCD1D1 4536 4537 (131072,149) t_tid->bi_hi #313739 #3498DB 4538 4539 (131072,149) t_tid->bi_lo #313739 #3498DB 4540 4541 (131072,149) t_tid->offsetNumber #313739 #2980B9 4542 4543 (131072,149) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4544 4559 (131072,149) contents #313739 #CCD1D1 4512 4513 (131072,150) t_tid->bi_hi #313739 #3498DB 4514 4515 (131072,150) t_tid->bi_lo #313739 #3498DB 4516 4517 (131072,150) t_tid->offsetNumber #313739 #2980B9 4518 4519 (131072,150) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4520 4535 (131072,150) contents #313739 #CCD1D1 4488 4489 (131072,151) t_tid->bi_hi #313739 #3498DB 4490 4491 (131072,151) t_tid->bi_lo #313739 #3498DB 4492 4493 (131072,151) t_tid->offsetNumber #313739 #2980B9 4494 4495 (131072,151) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4496 4511 (131072,151) contents #313739 #CCD1D1 4456 4457 (131072,152) t_tid->bi_hi #313739 #3498DB 4458 4459 (131072,152) t_tid->bi_lo #313739 #3498DB 4460 4461 (131072,152) t_tid->offsetNumber #313739 #2980B9 4462 4463 (131072,152) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4464 4487 (131072,152) contents #313739 #CCD1D1 4432 4433 (131072,153) t_tid->bi_hi #313739 #3498DB 4434 4435 (131072,153) t_tid->bi_lo #313739 #3498DB 4436 4437 (131072,153) t_tid->offsetNumber #313739 #2980B9 4438 4439 (131072,153) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4440 4455 (131072,153) contents #313739 #CCD1D1 4400 4401 (131072,154) t_tid->bi_hi #313739 #3498DB 4402 4403 (131072,154) t_tid->bi_lo #313739 #3498DB 4404 4405 (131072,154) t_tid->offsetNumber #313739 #2980B9 4406 4407 (131072,154) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4408 4431 (131072,154) contents #313739 #CCD1D1 4368 4369 (131072,155) t_tid->bi_hi #313739 #3498DB 4370 4371 (131072,155) t_tid->bi_lo #313739 #3498DB 4372 4373 (131072,155) t_tid->offsetNumber #313739 #2980B9 4374 4375 (131072,155) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4376 4399 (131072,155) contents #313739 #CCD1D1 4344 4345 (131072,156) t_tid->bi_hi #313739 #3498DB 4346 4347 (131072,156) t_tid->bi_lo #313739 #3498DB 4348 4349 (131072,156) t_tid->offsetNumber #313739 #2980B9 4350 4351 (131072,156) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4352 4367 (131072,156) contents #313739 #CCD1D1 4320 4321 (131072,157) t_tid->bi_hi #313739 #3498DB 4322 4323 (131072,157) t_tid->bi_lo #313739 #3498DB 4324 4325 (131072,157) t_tid->offsetNumber #313739 #2980B9 4326 4327 (131072,157) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4328 4343 (131072,157) contents #313739 #CCD1D1 4296 4297 (131072,158) t_tid->bi_hi #313739 #3498DB 4298 4299 (131072,158) t_tid->bi_lo #313739 #3498DB 4300 4301 (131072,158) t_tid->offsetNumber #313739 #2980B9 4302 4303 (131072,158) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4304 4319 (131072,158) contents #313739 #CCD1D1 4272 4273 (131072,159) t_tid->bi_hi #313739 #3498DB 4274 4275 (131072,159) t_tid->bi_lo #313739 #3498DB 4276 4277 (131072,159) t_tid->offsetNumber #313739 #2980B9 4278 4279 (131072,159) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4280 4295 (131072,159) contents #313739 #CCD1D1 4248 4249 (131072,160) t_tid->bi_hi #313739 #3498DB 4250 4251 (131072,160) t_tid->bi_lo #313739 #3498DB 4252 4253 (131072,160) t_tid->offsetNumber #313739 #2980B9 4254 4255 (131072,160) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4256 4271 (131072,160) contents #313739 #CCD1D1 4224 4225 (131072,161) t_tid->bi_hi #313739 #3498DB 4226 4227 (131072,161) t_tid->bi_lo #313739 #3498DB 4228 4229 (131072,161) t_tid->offsetNumber #313739 #2980B9 4230 4231 (131072,161) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4232 4247 (131072,161) contents #313739 #CCD1D1 4200 4201 (131072,162) t_tid->bi_hi #313739 #3498DB 4202 4203 (131072,162) t_tid->bi_lo #313739 #3498DB 4204 4205 (131072,162) t_tid->offsetNumber #313739 #2980B9 4206 4207 (131072,162) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4208 4223 (131072,162) contents #313739 #CCD1D1 4176 4177 (131072,163) t_tid->bi_hi #313739 #3498DB 4178 4179 (131072,163) t_tid->bi_lo #313739 #3498DB 4180 4181 (131072,163) t_tid->offsetNumber #313739 #2980B9 4182 4183 (131072,163) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4184 4199 (131072,163) contents #313739 #CCD1D1 4144 4145 (131072,164) t_tid->bi_hi #313739 #3498DB 4146 4147 (131072,164) t_tid->bi_lo #313739 #3498DB 4148 4149 (131072,164) t_tid->offsetNumber #313739 #2980B9 4150 4151 (131072,164) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 4152 4175 (131072,164) contents #313739 #CCD1D1 4120 4121 (131072,165) t_tid->bi_hi #313739 #3498DB 4122 4123 (131072,165) t_tid->bi_lo #313739 #3498DB 4124 4125 (131072,165) t_tid->offsetNumber #313739 #2980B9 4126 4127 (131072,165) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4128 4143 (131072,165) contents #313739 #CCD1D1 4096 4097 (131072,166) t_tid->bi_hi #313739 #3498DB 4098 4099 (131072,166) t_tid->bi_lo #313739 #3498DB 4100 4101 (131072,166) t_tid->offsetNumber #313739 #2980B9 4102 4103 (131072,166) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4104 4119 (131072,166) contents #313739 #CCD1D1 4072 4073 (131072,167) t_tid->bi_hi #313739 #3498DB 4074 4075 (131072,167) t_tid->bi_lo #313739 #3498DB 4076 4077 (131072,167) t_tid->offsetNumber #313739 #2980B9 4078 4079 (131072,167) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4080 4095 (131072,167) contents #313739 #CCD1D1 4048 4049 (131072,168) t_tid->bi_hi #313739 #3498DB 4050 4051 (131072,168) t_tid->bi_lo #313739 #3498DB 4052 4053 (131072,168) t_tid->offsetNumber #313739 #2980B9 4054 4055 (131072,168) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4056 4071 (131072,168) contents #313739 #CCD1D1 4024 4025 (131072,169) t_tid->bi_hi #313739 #3498DB 4026 4027 (131072,169) t_tid->bi_lo #313739 #3498DB 4028 4029 (131072,169) t_tid->offsetNumber #313739 #2980B9 4030 4031 (131072,169) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4032 4047 (131072,169) contents #313739 #CCD1D1 4000 4001 (131072,170) t_tid->bi_hi #313739 #3498DB 4002 4003 (131072,170) t_tid->bi_lo #313739 #3498DB 4004 4005 (131072,170) t_tid->offsetNumber #313739 #2980B9 4006 4007 (131072,170) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 4008 4023 (131072,170) contents #313739 #CCD1D1 3976 3977 (131072,171) t_tid->bi_hi #313739 #3498DB 3978 3979 (131072,171) t_tid->bi_lo #313739 #3498DB 3980 3981 (131072,171) t_tid->offsetNumber #313739 #2980B9 3982 3983 (131072,171) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3984 3999 (131072,171) contents #313739 #CCD1D1 3952 3953 (131072,172) t_tid->bi_hi #313739 #3498DB 3954 3955 (131072,172) t_tid->bi_lo #313739 #3498DB 3956 3957 (131072,172) t_tid->offsetNumber #313739 #2980B9 3958 3959 (131072,172) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3960 3975 (131072,172) contents #313739 #CCD1D1 3928 3929 (131072,173) t_tid->bi_hi #313739 #3498DB 3930 3931 (131072,173) t_tid->bi_lo #313739 #3498DB 3932 3933 (131072,173) t_tid->offsetNumber #313739 #2980B9 3934 3935 (131072,173) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3936 3951 (131072,173) contents #313739 #CCD1D1 3912 3913 (131072,174) t_tid->bi_hi #313739 #3498DB 3914 3915 (131072,174) t_tid->bi_lo #313739 #3498DB 3916 3917 (131072,174) t_tid->offsetNumber #313739 #2980B9 3918 3919 (131072,174) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 3920 3927 (131072,174) contents #313739 #CCD1D1 3888 3889 (131072,175) t_tid->bi_hi #313739 #3498DB 3890 3891 (131072,175) t_tid->bi_lo #313739 #3498DB 3892 3893 (131072,175) t_tid->offsetNumber #313739 #2980B9 3894 3895 (131072,175) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3896 3911 (131072,175) contents #313739 #CCD1D1 3856 3857 (131072,176) t_tid->bi_hi #313739 #3498DB 3858 3859 (131072,176) t_tid->bi_lo #313739 #3498DB 3860 3861 (131072,176) t_tid->offsetNumber #313739 #2980B9 3862 3863 (131072,176) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3864 3887 (131072,176) contents #313739 #CCD1D1 3832 3833 (131072,177) t_tid->bi_hi #313739 #3498DB 3834 3835 (131072,177) t_tid->bi_lo #313739 #3498DB 3836 3837 (131072,177) t_tid->offsetNumber #313739 #2980B9 3838 3839 (131072,177) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3840 3855 (131072,177) contents #313739 #CCD1D1 3808 3809 (131072,178) t_tid->bi_hi #313739 #3498DB 3810 3811 (131072,178) t_tid->bi_lo #313739 #3498DB 3812 3813 (131072,178) t_tid->offsetNumber #313739 #2980B9 3814 3815 (131072,178) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3816 3831 (131072,178) contents #313739 #CCD1D1 3784 3785 (131072,179) t_tid->bi_hi #313739 #3498DB 3786 3787 (131072,179) t_tid->bi_lo #313739 #3498DB 3788 3789 (131072,179) t_tid->offsetNumber #313739 #2980B9 3790 3791 (131072,179) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3792 3807 (131072,179) contents #313739 #CCD1D1 3752 3753 (131072,180) t_tid->bi_hi #313739 #3498DB 3754 3755 (131072,180) t_tid->bi_lo #313739 #3498DB 3756 3757 (131072,180) t_tid->offsetNumber #313739 #2980B9 3758 3759 (131072,180) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3760 3783 (131072,180) contents #313739 #CCD1D1 3720 3721 (131072,181) t_tid->bi_hi #313739 #3498DB 3722 3723 (131072,181) t_tid->bi_lo #313739 #3498DB 3724 3725 (131072,181) t_tid->offsetNumber #313739 #2980B9 3726 3727 (131072,181) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3728 3751 (131072,181) contents #313739 #CCD1D1 3696 3697 (131072,182) t_tid->bi_hi #313739 #3498DB 3698 3699 (131072,182) t_tid->bi_lo #313739 #3498DB 3700 3701 (131072,182) t_tid->offsetNumber #313739 #2980B9 3702 3703 (131072,182) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3704 3719 (131072,182) contents #313739 #CCD1D1 3672 3673 (131072,183) t_tid->bi_hi #313739 #3498DB 3674 3675 (131072,183) t_tid->bi_lo #313739 #3498DB 3676 3677 (131072,183) t_tid->offsetNumber #313739 #2980B9 3678 3679 (131072,183) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3680 3695 (131072,183) contents #313739 #CCD1D1 3648 3649 (131072,184) t_tid->bi_hi #313739 #3498DB 3650 3651 (131072,184) t_tid->bi_lo #313739 #3498DB 3652 3653 (131072,184) t_tid->offsetNumber #313739 #2980B9 3654 3655 (131072,184) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3656 3671 (131072,184) contents #313739 #CCD1D1 3616 3617 (131072,185) t_tid->bi_hi #313739 #3498DB 3618 3619 (131072,185) t_tid->bi_lo #313739 #3498DB 3620 3621 (131072,185) t_tid->offsetNumber #313739 #2980B9 3622 3623 (131072,185) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3624 3647 (131072,185) contents #313739 #CCD1D1 3584 3585 (131072,186) t_tid->bi_hi #313739 #3498DB 3586 3587 (131072,186) t_tid->bi_lo #313739 #3498DB 3588 3589 (131072,186) t_tid->offsetNumber #313739 #2980B9 3590 3591 (131072,186) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3592 3615 (131072,186) contents #313739 #CCD1D1 3552 3553 (131072,187) t_tid->bi_hi #313739 #3498DB 3554 3555 (131072,187) t_tid->bi_lo #313739 #3498DB 3556 3557 (131072,187) t_tid->offsetNumber #313739 #2980B9 3558 3559 (131072,187) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3560 3583 (131072,187) contents #313739 #CCD1D1 3520 3521 (131072,188) t_tid->bi_hi #313739 #3498DB 3522 3523 (131072,188) t_tid->bi_lo #313739 #3498DB 3524 3525 (131072,188) t_tid->offsetNumber #313739 #2980B9 3526 3527 (131072,188) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3528 3551 (131072,188) contents #313739 #CCD1D1 3496 3497 (131072,189) t_tid->bi_hi #313739 #3498DB 3498 3499 (131072,189) t_tid->bi_lo #313739 #3498DB 3500 3501 (131072,189) t_tid->offsetNumber #313739 #2980B9 3502 3503 (131072,189) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3504 3519 (131072,189) contents #313739 #CCD1D1 3472 3473 (131072,190) t_tid->bi_hi #313739 #3498DB 3474 3475 (131072,190) t_tid->bi_lo #313739 #3498DB 3476 3477 (131072,190) t_tid->offsetNumber #313739 #2980B9 3478 3479 (131072,190) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3480 3495 (131072,190) contents #313739 #CCD1D1 3448 3449 (131072,191) t_tid->bi_hi #313739 #3498DB 3450 3451 (131072,191) t_tid->bi_lo #313739 #3498DB 3452 3453 (131072,191) t_tid->offsetNumber #313739 #2980B9 3454 3455 (131072,191) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3456 3471 (131072,191) contents #313739 #CCD1D1 3424 3425 (131072,192) t_tid->bi_hi #313739 #3498DB 3426 3427 (131072,192) t_tid->bi_lo #313739 #3498DB 3428 3429 (131072,192) t_tid->offsetNumber #313739 #2980B9 3430 3431 (131072,192) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3432 3447 (131072,192) contents #313739 #CCD1D1 3392 3393 (131072,193) t_tid->bi_hi #313739 #3498DB 3394 3395 (131072,193) t_tid->bi_lo #313739 #3498DB 3396 3397 (131072,193) t_tid->offsetNumber #313739 #2980B9 3398 3399 (131072,193) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3400 3423 (131072,193) contents #313739 #CCD1D1 3368 3369 (131072,194) t_tid->bi_hi #313739 #3498DB 3370 3371 (131072,194) t_tid->bi_lo #313739 #3498DB 3372 3373 (131072,194) t_tid->offsetNumber #313739 #2980B9 3374 3375 (131072,194) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3376 3391 (131072,194) contents #313739 #CCD1D1 3344 3345 (131072,195) t_tid->bi_hi #313739 #3498DB 3346 3347 (131072,195) t_tid->bi_lo #313739 #3498DB 3348 3349 (131072,195) t_tid->offsetNumber #313739 #2980B9 3350 3351 (131072,195) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3352 3367 (131072,195) contents #313739 #CCD1D1 3320 3321 (131072,196) t_tid->bi_hi #313739 #3498DB 3322 3323 (131072,196) t_tid->bi_lo #313739 #3498DB 3324 3325 (131072,196) t_tid->offsetNumber #313739 #2980B9 3326 3327 (131072,196) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3328 3343 (131072,196) contents #313739 #CCD1D1 3296 3297 (131072,197) t_tid->bi_hi #313739 #3498DB 3298 3299 (131072,197) t_tid->bi_lo #313739 #3498DB 3300 3301 (131072,197) t_tid->offsetNumber #313739 #2980B9 3302 3303 (131072,197) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3304 3319 (131072,197) contents #313739 #CCD1D1 3272 3273 (131072,198) t_tid->bi_hi #313739 #3498DB 3274 3275 (131072,198) t_tid->bi_lo #313739 #3498DB 3276 3277 (131072,198) t_tid->offsetNumber #313739 #2980B9 3278 3279 (131072,198) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3280 3295 (131072,198) contents #313739 #CCD1D1 3240 3241 (131072,199) t_tid->bi_hi #313739 #3498DB 3242 3243 (131072,199) t_tid->bi_lo #313739 #3498DB 3244 3245 (131072,199) t_tid->offsetNumber #313739 #2980B9 3246 3247 (131072,199) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3248 3271 (131072,199) contents #313739 #CCD1D1 3208 3209 (131072,200) t_tid->bi_hi #313739 #3498DB 3210 3211 (131072,200) t_tid->bi_lo #313739 #3498DB 3212 3213 (131072,200) t_tid->offsetNumber #313739 #2980B9 3214 3215 (131072,200) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3216 3239 (131072,200) contents #313739 #CCD1D1 3176 3177 (131072,201) t_tid->bi_hi #313739 #3498DB 3178 3179 (131072,201) t_tid->bi_lo #313739 #3498DB 3180 3181 (131072,201) t_tid->offsetNumber #313739 #2980B9 3182 3183 (131072,201) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3184 3207 (131072,201) contents #313739 #CCD1D1 3152 3153 (131072,202) t_tid->bi_hi #313739 #3498DB 3154 3155 (131072,202) t_tid->bi_lo #313739 #3498DB 3156 3157 (131072,202) t_tid->offsetNumber #313739 #2980B9 3158 3159 (131072,202) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3160 3175 (131072,202) contents #313739 #CCD1D1 3120 3121 (131072,203) t_tid->bi_hi #313739 #3498DB 3122 3123 (131072,203) t_tid->bi_lo #313739 #3498DB 3124 3125 (131072,203) t_tid->offsetNumber #313739 #2980B9 3126 3127 (131072,203) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3128 3151 (131072,203) contents #313739 #CCD1D1 3088 3089 (131072,204) t_tid->bi_hi #313739 #3498DB 3090 3091 (131072,204) t_tid->bi_lo #313739 #3498DB 3092 3093 (131072,204) t_tid->offsetNumber #313739 #2980B9 3094 3095 (131072,204) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3096 3119 (131072,204) contents #313739 #CCD1D1 3056 3057 (131072,205) t_tid->bi_hi #313739 #3498DB 3058 3059 (131072,205) t_tid->bi_lo #313739 #3498DB 3060 3061 (131072,205) t_tid->offsetNumber #313739 #2980B9 3062 3063 (131072,205) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 3064 3087 (131072,205) contents #313739 #CCD1D1 3032 3033 (131072,206) t_tid->bi_hi #313739 #3498DB 3034 3035 (131072,206) t_tid->bi_lo #313739 #3498DB 3036 3037 (131072,206) t_tid->offsetNumber #313739 #2980B9 3038 3039 (131072,206) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3040 3055 (131072,206) contents #313739 #CCD1D1 3008 3009 (131072,207) t_tid->bi_hi #313739 #3498DB 3010 3011 (131072,207) t_tid->bi_lo #313739 #3498DB 3012 3013 (131072,207) t_tid->offsetNumber #313739 #2980B9 3014 3015 (131072,207) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 3016 3031 (131072,207) contents #313739 #CCD1D1 2984 2985 (131072,208) t_tid->bi_hi #313739 #3498DB 2986 2987 (131072,208) t_tid->bi_lo #313739 #3498DB 2988 2989 (131072,208) t_tid->offsetNumber #313739 #2980B9 2990 2991 (131072,208) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2992 3007 (131072,208) contents #313739 #CCD1D1 2960 2961 (131072,209) t_tid->bi_hi #313739 #3498DB 2962 2963 (131072,209) t_tid->bi_lo #313739 #3498DB 2964 2965 (131072,209) t_tid->offsetNumber #313739 #2980B9 2966 2967 (131072,209) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2968 2983 (131072,209) contents #313739 #CCD1D1 2936 2937 (131072,210) t_tid->bi_hi #313739 #3498DB 2938 2939 (131072,210) t_tid->bi_lo #313739 #3498DB 2940 2941 (131072,210) t_tid->offsetNumber #313739 #2980B9 2942 2943 (131072,210) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2944 2959 (131072,210) contents #313739 #CCD1D1 2912 2913 (131072,211) t_tid->bi_hi #313739 #3498DB 2914 2915 (131072,211) t_tid->bi_lo #313739 #3498DB 2916 2917 (131072,211) t_tid->offsetNumber #313739 #2980B9 2918 2919 (131072,211) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2920 2935 (131072,211) contents #313739 #CCD1D1 2888 2889 (131072,212) t_tid->bi_hi #313739 #3498DB 2890 2891 (131072,212) t_tid->bi_lo #313739 #3498DB 2892 2893 (131072,212) t_tid->offsetNumber #313739 #2980B9 2894 2895 (131072,212) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2896 2911 (131072,212) contents #313739 #CCD1D1 2864 2865 (131072,213) t_tid->bi_hi #313739 #3498DB 2866 2867 (131072,213) t_tid->bi_lo #313739 #3498DB 2868 2869 (131072,213) t_tid->offsetNumber #313739 #2980B9 2870 2871 (131072,213) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2872 2887 (131072,213) contents #313739 #CCD1D1 2848 2849 (131072,214) t_tid->bi_hi #313739 #3498DB 2850 2851 (131072,214) t_tid->bi_lo #313739 #3498DB 2852 2853 (131072,214) t_tid->offsetNumber #313739 #2980B9 2854 2855 (131072,214) t_info IndexTupleSize(): 16, (INDEX_VAR_MASK) #313739 #F1C40F 2856 2863 (131072,214) contents #313739 #CCD1D1 2816 2817 (131072,215) t_tid->bi_hi #313739 #3498DB 2818 2819 (131072,215) t_tid->bi_lo #313739 #3498DB 2820 2821 (131072,215) t_tid->offsetNumber #313739 #2980B9 2822 2823 (131072,215) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2824 2847 (131072,215) contents #313739 #CCD1D1 2792 2793 (131072,216) t_tid->bi_hi #313739 #3498DB 2794 2795 (131072,216) t_tid->bi_lo #313739 #3498DB 2796 2797 (131072,216) t_tid->offsetNumber #313739 #2980B9 2798 2799 (131072,216) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2800 2815 (131072,216) contents #313739 #CCD1D1 2760 2761 (131072,217) t_tid->bi_hi #313739 #3498DB 2762 2763 (131072,217) t_tid->bi_lo #313739 #3498DB 2764 2765 (131072,217) t_tid->offsetNumber #313739 #2980B9 2766 2767 (131072,217) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2768 2791 (131072,217) contents #313739 #CCD1D1 2736 2737 (131072,218) t_tid->bi_hi #313739 #3498DB 2738 2739 (131072,218) t_tid->bi_lo #313739 #3498DB 2740 2741 (131072,218) t_tid->offsetNumber #313739 #2980B9 2742 2743 (131072,218) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2744 2759 (131072,218) contents #313739 #CCD1D1 2704 2705 (131072,219) t_tid->bi_hi #313739 #3498DB 2706 2707 (131072,219) t_tid->bi_lo #313739 #3498DB 2708 2709 (131072,219) t_tid->offsetNumber #313739 #2980B9 2710 2711 (131072,219) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2712 2735 (131072,219) contents #313739 #CCD1D1 2680 2681 (131072,220) t_tid->bi_hi #313739 #3498DB 2682 2683 (131072,220) t_tid->bi_lo #313739 #3498DB 2684 2685 (131072,220) t_tid->offsetNumber #313739 #2980B9 2686 2687 (131072,220) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2688 2703 (131072,220) contents #313739 #CCD1D1 2656 2657 (131072,221) t_tid->bi_hi #313739 #3498DB 2658 2659 (131072,221) t_tid->bi_lo #313739 #3498DB 2660 2661 (131072,221) t_tid->offsetNumber #313739 #2980B9 2662 2663 (131072,221) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2664 2679 (131072,221) contents #313739 #CCD1D1 2632 2633 (131072,222) t_tid->bi_hi #313739 #3498DB 2634 2635 (131072,222) t_tid->bi_lo #313739 #3498DB 2636 2637 (131072,222) t_tid->offsetNumber #313739 #2980B9 2638 2639 (131072,222) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2640 2655 (131072,222) contents #313739 #CCD1D1 2600 2601 (131072,223) t_tid->bi_hi #313739 #3498DB 2602 2603 (131072,223) t_tid->bi_lo #313739 #3498DB 2604 2605 (131072,223) t_tid->offsetNumber #313739 #2980B9 2606 2607 (131072,223) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2608 2631 (131072,223) contents #313739 #CCD1D1 2576 2577 (131072,224) t_tid->bi_hi #313739 #3498DB 2578 2579 (131072,224) t_tid->bi_lo #313739 #3498DB 2580 2581 (131072,224) t_tid->offsetNumber #313739 #2980B9 2582 2583 (131072,224) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2584 2599 (131072,224) contents #313739 #CCD1D1 2544 2545 (131072,225) t_tid->bi_hi #313739 #3498DB 2546 2547 (131072,225) t_tid->bi_lo #313739 #3498DB 2548 2549 (131072,225) t_tid->offsetNumber #313739 #2980B9 2550 2551 (131072,225) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2552 2575 (131072,225) contents #313739 #CCD1D1 2520 2521 (131072,226) t_tid->bi_hi #313739 #3498DB 2522 2523 (131072,226) t_tid->bi_lo #313739 #3498DB 2524 2525 (131072,226) t_tid->offsetNumber #313739 #2980B9 2526 2527 (131072,226) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2528 2543 (131072,226) contents #313739 #CCD1D1 2496 2497 (131072,227) t_tid->bi_hi #313739 #3498DB 2498 2499 (131072,227) t_tid->bi_lo #313739 #3498DB 2500 2501 (131072,227) t_tid->offsetNumber #313739 #2980B9 2502 2503 (131072,227) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2504 2519 (131072,227) contents #313739 #CCD1D1 2472 2473 (131072,228) t_tid->bi_hi #313739 #3498DB 2474 2475 (131072,228) t_tid->bi_lo #313739 #3498DB 2476 2477 (131072,228) t_tid->offsetNumber #313739 #2980B9 2478 2479 (131072,228) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2480 2495 (131072,228) contents #313739 #CCD1D1 2440 2441 (131072,229) t_tid->bi_hi #313739 #3498DB 2442 2443 (131072,229) t_tid->bi_lo #313739 #3498DB 2444 2445 (131072,229) t_tid->offsetNumber #313739 #2980B9 2446 2447 (131072,229) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2448 2471 (131072,229) contents #313739 #CCD1D1 2416 2417 (131072,230) t_tid->bi_hi #313739 #3498DB 2418 2419 (131072,230) t_tid->bi_lo #313739 #3498DB 2420 2421 (131072,230) t_tid->offsetNumber #313739 #2980B9 2422 2423 (131072,230) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2424 2439 (131072,230) contents #313739 #CCD1D1 2392 2393 (131072,231) t_tid->bi_hi #313739 #3498DB 2394 2395 (131072,231) t_tid->bi_lo #313739 #3498DB 2396 2397 (131072,231) t_tid->offsetNumber #313739 #2980B9 2398 2399 (131072,231) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2400 2415 (131072,231) contents #313739 #CCD1D1 2368 2369 (131072,232) t_tid->bi_hi #313739 #3498DB 2370 2371 (131072,232) t_tid->bi_lo #313739 #3498DB 2372 2373 (131072,232) t_tid->offsetNumber #313739 #2980B9 2374 2375 (131072,232) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2376 2391 (131072,232) contents #313739 #CCD1D1 2344 2345 (131072,233) t_tid->bi_hi #313739 #3498DB 2346 2347 (131072,233) t_tid->bi_lo #313739 #3498DB 2348 2349 (131072,233) t_tid->offsetNumber #313739 #2980B9 2350 2351 (131072,233) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2352 2367 (131072,233) contents #313739 #CCD1D1 2320 2321 (131072,234) t_tid->bi_hi #313739 #3498DB 2322 2323 (131072,234) t_tid->bi_lo #313739 #3498DB 2324 2325 (131072,234) t_tid->offsetNumber #313739 #2980B9 2326 2327 (131072,234) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2328 2343 (131072,234) contents #313739 #CCD1D1 2296 2297 (131072,235) t_tid->bi_hi #313739 #3498DB 2298 2299 (131072,235) t_tid->bi_lo #313739 #3498DB 2300 2301 (131072,235) t_tid->offsetNumber #313739 #2980B9 2302 2303 (131072,235) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2304 2319 (131072,235) contents #313739 #CCD1D1 2272 2273 (131072,236) t_tid->bi_hi #313739 #3498DB 2274 2275 (131072,236) t_tid->bi_lo #313739 #3498DB 2276 2277 (131072,236) t_tid->offsetNumber #313739 #2980B9 2278 2279 (131072,236) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2280 2295 (131072,236) contents #313739 #CCD1D1 2248 2249 (131072,237) t_tid->bi_hi #313739 #3498DB 2250 2251 (131072,237) t_tid->bi_lo #313739 #3498DB 2252 2253 (131072,237) t_tid->offsetNumber #313739 #2980B9 2254 2255 (131072,237) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2256 2271 (131072,237) contents #313739 #CCD1D1 2224 2225 (131072,238) t_tid->bi_hi #313739 #3498DB 2226 2227 (131072,238) t_tid->bi_lo #313739 #3498DB 2228 2229 (131072,238) t_tid->offsetNumber #313739 #2980B9 2230 2231 (131072,238) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2232 2247 (131072,238) contents #313739 #CCD1D1 2200 2201 (131072,239) t_tid->bi_hi #313739 #3498DB 2202 2203 (131072,239) t_tid->bi_lo #313739 #3498DB 2204 2205 (131072,239) t_tid->offsetNumber #313739 #2980B9 2206 2207 (131072,239) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2208 2223 (131072,239) contents #313739 #CCD1D1 2176 2177 (131072,240) t_tid->bi_hi #313739 #3498DB 2178 2179 (131072,240) t_tid->bi_lo #313739 #3498DB 2180 2181 (131072,240) t_tid->offsetNumber #313739 #2980B9 2182 2183 (131072,240) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2184 2199 (131072,240) contents #313739 #CCD1D1 2152 2153 (131072,241) t_tid->bi_hi #313739 #3498DB 2154 2155 (131072,241) t_tid->bi_lo #313739 #3498DB 2156 2157 (131072,241) t_tid->offsetNumber #313739 #2980B9 2158 2159 (131072,241) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2160 2175 (131072,241) contents #313739 #CCD1D1 2128 2129 (131072,242) t_tid->bi_hi #313739 #3498DB 2130 2131 (131072,242) t_tid->bi_lo #313739 #3498DB 2132 2133 (131072,242) t_tid->offsetNumber #313739 #2980B9 2134 2135 (131072,242) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2136 2151 (131072,242) contents #313739 #CCD1D1 2096 2097 (131072,243) t_tid->bi_hi #313739 #3498DB 2098 2099 (131072,243) t_tid->bi_lo #313739 #3498DB 2100 2101 (131072,243) t_tid->offsetNumber #313739 #2980B9 2102 2103 (131072,243) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2104 2127 (131072,243) contents #313739 #CCD1D1 2072 2073 (131072,244) t_tid->bi_hi #313739 #3498DB 2074 2075 (131072,244) t_tid->bi_lo #313739 #3498DB 2076 2077 (131072,244) t_tid->offsetNumber #313739 #2980B9 2078 2079 (131072,244) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2080 2095 (131072,244) contents #313739 #CCD1D1 2040 2041 (131072,245) t_tid->bi_hi #313739 #3498DB 2042 2043 (131072,245) t_tid->bi_lo #313739 #3498DB 2044 2045 (131072,245) t_tid->offsetNumber #313739 #2980B9 2046 2047 (131072,245) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 2048 2071 (131072,245) contents #313739 #CCD1D1 2016 2017 (131072,246) t_tid->bi_hi #313739 #3498DB 2018 2019 (131072,246) t_tid->bi_lo #313739 #3498DB 2020 2021 (131072,246) t_tid->offsetNumber #313739 #2980B9 2022 2023 (131072,246) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2024 2039 (131072,246) contents #313739 #CCD1D1 1992 1993 (131072,247) t_tid->bi_hi #313739 #3498DB 1994 1995 (131072,247) t_tid->bi_lo #313739 #3498DB 1996 1997 (131072,247) t_tid->offsetNumber #313739 #2980B9 1998 1999 (131072,247) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 2000 2015 (131072,247) contents #313739 #CCD1D1 1960 1961 (131072,248) t_tid->bi_hi #313739 #3498DB 1962 1963 (131072,248) t_tid->bi_lo #313739 #3498DB 1964 1965 (131072,248) t_tid->offsetNumber #313739 #2980B9 1966 1967 (131072,248) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 1968 1991 (131072,248) contents #313739 #CCD1D1 1928 1929 (131072,249) t_tid->bi_hi #313739 #3498DB 1930 1931 (131072,249) t_tid->bi_lo #313739 #3498DB 1932 1933 (131072,249) t_tid->offsetNumber #313739 #2980B9 1934 1935 (131072,249) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 1936 1959 (131072,249) contents #313739 #CCD1D1 1896 1897 (131072,250) t_tid->bi_hi #313739 #3498DB 1898 1899 (131072,250) t_tid->bi_lo #313739 #3498DB 1900 1901 (131072,250) t_tid->offsetNumber #313739 #2980B9 1902 1903 (131072,250) t_info IndexTupleSize(): 32, (INDEX_VAR_MASK) #313739 #F1C40F 1904 1927 (131072,250) contents #313739 #CCD1D1 1872 1873 (131072,251) t_tid->bi_hi #313739 #3498DB 1874 1875 (131072,251) t_tid->bi_lo #313739 #3498DB 1876 1877 (131072,251) t_tid->offsetNumber #313739 #2980B9 1878 1879 (131072,251) t_info IndexTupleSize(): 24, (INDEX_VAR_MASK) #313739 #F1C40F 1880 1895 (131072,251) contents #313739 #CCD1D1 8176 8179 block 131072 (level 0) btpo_prev #313739 #50E964 8180 8183 block 131072 (level 0) btpo_next #313739 #50E964 8184 8187 block 131072 (level 0) btpo_level #313739 #50E964 8188 8189 block 131072 (level 0) btpo_flags - BTP_LEAF #313739 #50E964 8190 8191 block 131072 (level 0) btpo_cycleid #313739 #50E964 ================================================ FILE: t/test_pg_hexedit ================================================ #!/bin/bash # # Simple pg_hexedit smoke tests. These are intended to be run by "make check", # with the root directory as current working directory. # The 1249 input file comes from the first block of pg_attribute after initdb. # This just tests the heap annotation functions, since the heapam hasn't really # changed across Postgres versions supported by pg_hexedit. # Generate tags with no attributes, using -x option equal to page's LSN (this # -x option does not affect output): set -x ./pg_hexedit -x "0/00000028" t/1249 > t/output_no_attributes.tags || exit 1 set +x # Normalize: sed -i '2s/.*//' t/output_no_attributes.tags sed -i '6s/.*//' t/output_no_attributes.tags diff t/expected_no_attributes.tags t/output_no_attributes.tags > t/no_attributes.diff error=$? if [ $error -ne 0 ] then echo "Failed to generate correct pg_attribute tag file": cat t/no_attributes.diff exit 1 fi # Generate tags with attributes: ATTRLIST='4,"attrelid",i,64,"attname",c,4,"atttypid",i,4,"attstattarget",i,2,"attlen",s,2,"attnum",s,4,"attndims",i,4,"attcacheoff",i,4,"atttypmod",i,1,"attbyval",c,1,"attstorage",c,1,"attalign",c,1,"attnotnull",c,1,"atthasdef",c,1,"atthasmissing",c,1,"attidentity",c,1,"attisdropped",c,1,"attislocal",c,4,"attinhcount",i,4,"attcollation",i,-1,"attacl",i,-1,"attoptions",i,-1,"attfdwoptions",i,-1,"attmissingval",d' set -x ./pg_hexedit -D "$ATTRLIST" t/1249 > t/output_attributes.tags || exit 1 set +x # Normalize: sed -i '2s/.*//' t/output_attributes.tags sed -i '6s/.*//' t/output_attributes.tags diff t/expected_attributes.tags t/output_attributes.tags > t/attributes.diff error=$? if [ $error -ne 0 ] then echo "Failed to generate correct pg_attribute tag file (with attributes)": cat t/attributes.diff exit 1 fi # Generate almost-empty tag file by avoiding page LSN: set -x ./pg_hexedit -x "0/00000029" t/1249 > t/output_empty_lsn.tags || exit 1 set +x # Normalize: sed -i '2s/.*//' t/output_empty_lsn.tags sed -i '6s/.*//' t/output_empty_lsn.tags diff t/expected_empty_lsn.tags t/output_empty_lsn.tags > t/empty_lsn.diff error=$? if [ $error -ne 0 ] then echo "Failed to generate correct pg_attribute tag file (-x test)": cat t/empty_lsn.diff exit 1 fi # The 2685 input file comes from the first non-metapage block of # pg_attribute_relid_attnam_index after initdb. This block doesn't have any # explicitly truncated attributes on PostgreSQL 11, allowing it to work on all # supported PostgreSQL versions without special consideration. # Generate tags with no attributes, forcing the segment number to 1 to avoid # interpreting this page as a metapage: set -x ./pg_hexedit -n 1 t/2685 > t/output_no_attributes_idx.tags || exit 1 set +x # Normalize: sed -i '2s/.*//' t/output_no_attributes_idx.tags sed -i '6s/.*//' t/output_no_attributes_idx.tags diff t/expected_no_attributes_idx.tags t/output_no_attributes_idx.tags > t/no_attributes_idx.diff error=$? if [ $error -ne 0 ] then echo "Failed to generate correct pg_attribute_relid_attnam_index tag file": cat t/no_attributes_idx.diff exit 1 fi # Generate tags with attributes, forcing the segment number to 1: ATTRLIST='4,"attrelid",i,-2,"attname",c' set -x ./pg_hexedit -n 1 -D "$ATTRLIST" t/2685 > t/output_attributes_idx.tags || exit 1 set +x # Normalize: sed -i '2s/.*//' t/output_attributes_idx.tags sed -i '6s/.*//' t/output_attributes_idx.tags diff t/expected_attributes_idx.tags t/output_attributes_idx.tags > t/attributes_idx.diff error=$? if [ $error -ne 0 ] then echo "Failed to generate correct pg_attribute_relid_attnam_index tag file (with attributes)": cat t/attributes_idx.diff exit 1 fi # Generate single leaf page tag with -l option, forcing the segment number to 1 # to avoid interpreting this page as a metapage: set -x ./pg_hexedit -n 1 -l t/2685 > t/output_leaf_idx.tags || exit 1 set +x # Normalize: sed -i '2s/.*//' t/output_leaf_idx.tags sed -i '6s/.*//' t/output_leaf_idx.tags diff t/expected_leaf_idx.tags t/output_leaf_idx.tags > t/leaf_idx.diff error=$? if [ $error -ne 0 ] then echo "Failed to generate correct pg_attribute_relid_attnam_index tag file (with -l option)": cat t/leaf_idx.diff exit 1 fi echo -e "\nAll tests pass\n" echo -e "Tip: the file t/1249 can be opened within wxHexEditor. Import tags from either \"output_no_attributes.tags\" or \"output_attributes.tags\" or \"output_empty_lsn.tags\".\n" echo -e "Tip: the file t/2685 can be opened within wxHexEditor. Import tags from either \"output_no_attributes_idx.tags\" or \"output_attributes_idx.tags\" or \"output_leaf_idx.tags\".\n"