blob: 03740705ae0225150e43ca3d0cf267c618d8d5be [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/*-------------------------------------------------------------------------
*
* gp_persistent.h
*
* Global tables:
* gp_persistent_relation_node
* gp_persistent_database_node
* gp_persistent_tablespace_node
* gp_persistent_filespace_node
*
* Per database table:
* gp_relation_node
*
*-------------------------------------------------------------------------
*/
#ifndef GP_PERSISTENT_H
#define GP_PERSISTENT_H
#include "access/htup.h"
#include "access/tupdesc.h"
#include "storage/itemptr.h"
#include "access/persistentfilesysobjname.h"
#include "access/xlogdefs.h"
#include "catalog/indexing.h"
#include "catalog/gp_global_sequence.h"
#include "catalog/pg_shdepend.h"
#define int8 int64
#define tid ItemPointerData
#define gpxlogloc XLogRecPtr
/*
* Defines for gp_persistent_relfile_node table
*/
#define GpPersistentRelfileNodeRelationName "gp_persistent_relfile_node"
/* TIDYCAT_BEGINFAKEDEF
CREATE TABLE gp_persistent_relfile_node
with (shared=true, oid=false, relid=5089, reltype_oid=6989, content=PERSISTENT)
(
tablespace_oid oid ,
database_oid oid ,
relfilenode_oid oid ,
segment_file_num integer ,
relation_storage_manager smallint ,
persistent_state smallint ,
relation_bufpool_kind integer ,
parent_xid integer ,
persistent_serial_num bigint ,
previous_free_tid tid ,
);
TIDYCAT_ENDFAKEDEF
*/
#define GpPersistentRelfileNodeRelationId 5089
// UNDONE: Change reserved column to relation_bufpool_kind in tidycat above and CATALOG
// UNDONE: defintition below. The Anum_* DEFINE below has already been renamed.
CATALOG(gp_persistent_relfile_node,5089) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
Oid tablespace_oid;
Oid database_oid;
Oid relfilenode_oid;
int4 segment_file_num;
int2 relation_storage_manager;
int2 persistent_state;
int4 relation_bufpool_kind;
int4 parent_xid;
int8 persistent_serial_num;
tid previous_free_tid;
} FormData_gp_persistent_relfile_node;
#define Natts_gp_persistent_relfile_node 10
#define Anum_gp_persistent_relfile_node_tablespace_oid 1
#define Anum_gp_persistent_relfile_node_database_oid 2
#define Anum_gp_persistent_relfile_node_relfilenode_oid 3
#define Anum_gp_persistent_relfile_node_segment_file_num 4
#define Anum_gp_persistent_relfile_node_relation_storage_manager 5
#define Anum_gp_persistent_relfile_node_persistent_state 6
#define Anum_gp_persistent_relfile_node_relation_bufpool_kind 7
#define Anum_gp_persistent_relfile_node_parent_xid 8
#define Anum_gp_persistent_relfile_node_persistent_serial_num 9
#define Anum_gp_persistent_relfile_node_previous_free_tid 10
typedef FormData_gp_persistent_relfile_node *Form_gp_persistent_relfile_node;
/*
* gp_persistent_relfile_node table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*/
#define Schema_gp_persistent_relfile_node \
{ GpPersistentRelfileNodeRelationId, {"tablespace_oid"}, 26, -1, 4, 1, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"database_oid"}, 26, -1, 4, 2, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"relfilenode_oid"}, 26, -1, 4, 3, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"segment_file_num"}, 23, -1, 4, 4, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"relation_storage_manager"}, 21, -1, 2, 5, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"persistent_state"}, 21, -1, 2, 6, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"relation_bufpool_kind"}, 23, -1, 4, 16, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"parent_xid"}, 23, -1, 4, 17, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"persistent_serial_num"}, 20, -1, 8, 18, 0, -1, -1, true, 'p', 'd', true, false, false, true, 0 }, \
{ GpPersistentRelfileNodeRelationId, {"previous_free_tid"}, 27, -1, 6, 19, 0, -1, -1, false, 'p', 's', true, false, false, true, 0 }, \
/*
* gp_persistent_relfile_node table values for FormData_pg_class.
*/
#define Class_gp_persistent_relfile_node \
{"gp_persistent_relfile_node"}, PG_CATALOG_NAMESPACE, GP_PERSISTENT_RELFILE_NODE_OID, BOOTSTRAP_SUPERUSERID, 0, \
GpPersistentRelfileNodeRelationId, GLOBALTABLESPACE_OID, \
25, 10000, 0, 0, 0, 0, false, true, RELKIND_RELATION, RELSTORAGE_HEAP, Natts_gp_persistent_relfile_node, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
/*
* Defines for gp_relfile_node table
*/
#define GpRelfileNodeRelationName "gp_relfile_node"
/* TIDYCAT_BEGINFAKEDEF
CREATE TABLE gp_relfile_node
with (shared=false, oid=false, relid=5094, reltype_oid=6994, content=PERSISTENT)
(
relfilenode_oid oid ,
segment_file_num integer ,
persistent_tid tid ,
persistent_serial_num bigint
);
alter table gp_relfile_node add fk relfilenode_oid on pg_class(oid);
TIDYCAT_ENDFAKEDEF
*/
#define GpRelfileNodeRelationId 5094
CATALOG(gp_relfile_node,5094) BKI_WITHOUT_OIDS
{
Oid relfilenode_oid;
int4 segment_file_num;
tid persistent_tid;
int8 persistent_serial_num;
} FormData_gp_relfile_node;
#define Natts_gp_relfile_node 4
#define Anum_gp_relfile_node_relfilenode_oid 1
#define Anum_gp_relfile_node_segment_file_num 2
#define Anum_gp_relfile_node_persistent_tid 3
#define Anum_gp_relfile_node_persistent_serial_num 4
typedef FormData_gp_relfile_node *Form_gp_relfile_node;
/*
* gp_relfile_node table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*/
#define Schema_gp_relfile_node \
{ GpRelfileNodeRelationId, {"relfilenode_oid"}, 26, -1, 4, 1, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpRelfileNodeRelationId, {"segment_file_num"}, 23, -1, 4, 2, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpRelfileNodeRelationId, {"persistent_tid"}, 27, -1, 6, 4, 0, -1, -1, false, 'p', 's', true, false, false, true, 0 }, \
{ GpRelfileNodeRelationId, {"persistent_serial_num"}, 20, -1, 8, 5, 0, -1, -1, true, 'p', 'd', true, false, false, true, 0 }
/*
* gp_relfile_node table values for FormData_pg_class.
*/
#define Class_gp_relfile_node \
{"gp_relfile_node"}, PG_CATALOG_NAMESPACE, GP_RELFILE_NODE_OID, BOOTSTRAP_SUPERUSERID, 0, \
GpRelfileNodeRelationId, DEFAULTTABLESPACE_OID, \
25, 10000, 0, 0, 0, 0, true, false, RELKIND_RELATION, RELSTORAGE_HEAP, Natts_gp_relfile_node, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
/*
* gp_relfile_node's index.
*/
#define Natts_gp_relfile_node_index 2
/*
* gp_relfile_node_index table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*/
#define Schema_gp_relfile_node_index \
{ GpRelfileNodeRelationId, {"relfilenode_oid"}, 26, -1, 4, 1, 0, -1, -1, true, 'p', 'i', false, false, false, true, 0 }, \
{ GpRelfileNodeRelationId, {"segment_file_num"}, 23, -1, 4, 2, 0, -1, -1, true, 'p', 'i', false, false, false, true, 0 }
/*
* gp_relfile_node_index index values for FormData_pg_class.
*/
#define Class_gp_relfile_node_index \
{"gp_relfile_node_index"}, PG_CATALOG_NAMESPACE, 0, BOOTSTRAP_SUPERUSERID, BTREE_AM_OID, \
GpRelfileNodeOidIndexId, DEFAULTTABLESPACE_OID, \
25, 10000, 0, 0, 0, 0, false, false, RELKIND_INDEX, RELSTORAGE_HEAP, Natts_gp_relfile_node_index, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
/*
* gp_relfile_node_index AM values for FormData_pg_am.
*/
#define Am_gp_relfile_node_index \
Am_btree
/*
* Init fields of int2vector with 0 or other values. Needs to be populated for real later.
* vl_len_, ndim, dataoffset, elemtype, dim1, lbound1, values.
*/
#define Init_int2vector 0, 1, 0, InvalidOid, 0, 0, {0}
#define Init_oidvector 0, 1, 0, InvalidOid, 0, 0, {InvalidOid}
#define Init_text {'\0','\0','\0','\0'},{'\0'}
/*
* gp_relfile_node_index Index values for FormData_pg_index.
*/
#define Index_gp_relfile_node_index \
GpRelfileNodeOidIndexId, GpRelfileNodeRelationId, Natts_gp_relfile_node_index, true, false, false, true, {Init_int2vector}, {Init_oidvector}, {Init_text}, {Init_text}
#define IndKey_gp_relfile_node_index \
1, 2
#define IndClass_gp_relfile_node_index \
OID_BTREE_OPS_OID, INT4_BTREE_OPS_OID
/*
* Defines for gp_persistent_relation_node table
*/
#define GpPersistentRelatioinNodeRelationName "gp_persistent_relation_node"
/* TIDYCAT_BEGINFAKEDEF
CREATE TABLE gp_persistent_relation_node
with (shared=true, oid=false, relid=5090, reltype_oid=6990, content=PERSISTENT)
(
tablespace_oid oid ,
database_oid oid ,
relfilenode_oid oid ,
persistent_state smallint ,
reserved integer ,
parent_xid integer ,
persistent_serial_num bigint ,
previous_free_tid tid ,
);
TIDYCAT_BEGINFAKEDEF
*/
#define GpPersistentRelationNodeRelationId 5090
CATALOG(gp_persistent_relation_node,5090) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
Oid tablespace_oid;
Oid database_oid;
Oid relfilenode_oid;
int2 persistent_state;
int4 reserved;
int4 parent_xid;
int8 persistent_serial_num;
tid previous_free_tid;
} FormData_gp_persistent_relation_node;
#define Natts_gp_persistent_relation_node 8
#define Anum_gp_persistent_relation_node_tablespace_oid 1
#define Anum_gp_persistent_relation_node_database_oid 2
#define Anum_gp_persistent_relation_node_relfilenode_oid 3
#define Anum_gp_persistent_relation_node_persistent_state 4
#define Anum_gp_persistent_relation_node_reserved 5
#define Anum_gp_persistent_relation_node_parent_xid 6
#define Anum_gp_persistent_relation_node_persistent_serial_num 7
#define Anum_gp_persistent_relation_node_previous_free_tid 8
typedef FormData_gp_persistent_relation_node *Form_gp_persistent_relation_node;
/*
* gp_persistent_relation_node table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*/
#define Schema_gp_persistent_relation_node \
{ GpPersistentRelationNodeRelationId, {"tablespace_oid"}, 26, -1, 4, 2, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"database_oid"}, 26, -1, 4, 3, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"relfilenode_oid"}, 26, -1, 4, 4, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"persistent_state"}, 21, -1, 2, 5, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"reserved"}, 23, -1, 4, 8, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"parent_xid"}, 23, -1, 4, 9, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"persistent_serial_num"}, 20, -1, 8, 10, 0, -1, -1, true, 'p', 'd', true, false, false, true, 0 }, \
{ GpPersistentRelationNodeRelationId, {"previous_free_tid"}, 27, -1, 6, 11, 0, -1, -1, false, 'p', 's', true, false, false, true, 0 }, \
/*
* gp_persistent_relation_node table values for FormData_pg_class.
*/
#define Class_gp_persistent_relation_node \
{"gp_persistent_relation_node"}, PG_CATALOG_NAMESPACE, GP_PERSISTENT_RELATION_NODE_OID, BOOTSTRAP_SUPERUSERID, 0, \
GpPersistentRelationNodeRelationId, GLOBALTABLESPACE_OID, \
2, 100, 0, 0, 0, 0, false, true, RELKIND_RELATION, RELSTORAGE_HEAP, Natts_gp_persistent_relation_node, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
/*
* Defines for gp_persistent_database_node table
*/
#define GpPersistentDatabaseNodeRelationName "gp_persistent_database_node"
/* TIDYCAT_BEGINFAKEDEF
CREATE TABLE gp_persistent_database_node
with (shared=true, oid=false, relid=5091, reltype_oid=6991, content=PERSISTENT)
(
tablespace_oid oid ,
database_oid oid ,
persistent_state smallint ,
reserved integer ,
parent_xid integer ,
persistent_serial_num bigint ,
previous_free_tid tid ,
);
TIDYCAT_ENDFAKEDEF
*/
#define GpPersistentDatabaseNodeRelationId 5091
CATALOG(gp_persistent_database_node,5091) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
Oid tablespace_oid;
Oid database_oid;
int2 persistent_state;
int4 reserved;
int4 parent_xid;
int8 persistent_serial_num;
tid previous_free_tid;
} FormData_gp_persistent_database_node;
#define Natts_gp_persistent_database_node 7
#define Anum_gp_persistent_database_node_tablespace_oid 1
#define Anum_gp_persistent_database_node_database_oid 2
#define Anum_gp_persistent_database_node_persistent_state 3
#define Anum_gp_persistent_database_node_reserved 4
#define Anum_gp_persistent_database_node_parent_xid 5
#define Anum_gp_persistent_database_node_persistent_serial_num 6
#define Anum_gp_persistent_database_node_previous_free_tid 7
typedef FormData_gp_persistent_database_node *Form_gp_persistent_database_node;
/*
* gp_persistent_database_node table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*/
#define Schema_gp_persistent_database_node \
{ GpPersistentDatabaseNodeRelationId, {"tablespace_oid"}, 26, -1, 4, 2, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentDatabaseNodeRelationId, {"database_oid"}, 26, -1, 4, 3, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentDatabaseNodeRelationId, {"persistent_state"}, 21, -1, 2, 4, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
{ GpPersistentDatabaseNodeRelationId, {"reserved"}, 23, -1, 4, 7, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentDatabaseNodeRelationId, {"parent_xid"}, 23, -1, 4, 8, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentDatabaseNodeRelationId, {"persistent_serial_num"}, 20, -1, 8, 9, 0, -1, -1, true, 'p', 'd', true, false, false, true, 0 }, \
{ GpPersistentDatabaseNodeRelationId, {"previous_free_tid"}, 27, -1, 6, 10, 0, -1, -1, false, 'p', 's', true, false, false, true, 0 }, \
/*
* gp_persistent_database_node table values for FormData_pg_class.
*/
#define Class_gp_persistent_database_node \
{"gp_persistent_database_node"}, PG_CATALOG_NAMESPACE, GP_PERSISTENT_DATABASE_NODE_OID, BOOTSTRAP_SUPERUSERID, 0, \
GpPersistentDatabaseNodeRelationId, GLOBALTABLESPACE_OID, \
2, 100, 0, 0, 0, 0, false, true, RELKIND_RELATION, RELSTORAGE_HEAP, Natts_gp_persistent_database_node, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
/*
* Defines for gp_persistent_tablespace_node table
*/
#define GpPersistentTablespaceNodeRelationName "gp_persistent_tablespace_node"
/* TIDYCAT_BEGINFAKEDEF
CREATE TABLE gp_persistent_tablespace_node
with (shared=true, oid=false, relid=5092, reltype_oid=6992, content=PERSISTENT)
(
filespace_oid oid ,
tablespace_oid oid ,
persistent_state smallint ,
reserved integer ,
parent_xid integer ,
persistent_serial_num bigint ,
previous_free_tid tid ,
);
TIDYCAT_ENDFAKEDEF
*/
#define GpPersistentTablespaceNodeRelationId 5092
CATALOG(gp_persistent_tablespace_node,5092) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
Oid filespace_oid;
Oid tablespace_oid;
int2 persistent_state;
int4 reserved;
int4 parent_xid;
int8 persistent_serial_num;
tid previous_free_tid;
} FormData_gp_persistent_tablespace_node;
#define Natts_gp_persistent_tablespace_node 7
#define Anum_gp_persistent_tablespace_node_filespace_oid 1
#define Anum_gp_persistent_tablespace_node_tablespace_oid 2
#define Anum_gp_persistent_tablespace_node_persistent_state 3
#define Anum_gp_persistent_tablespace_node_reserved 4
#define Anum_gp_persistent_tablespace_node_parent_xid 5
#define Anum_gp_persistent_tablespace_node_persistent_serial_num 6
#define Anum_gp_persistent_tablespace_node_previous_free_tid 7
typedef FormData_gp_persistent_tablespace_node *Form_gp_persistent_tablespace_node;
/*
* gp_persistent_tablespace_node table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*/
#define Schema_gp_persistent_tablespace_node \
{ GpPersistentTablespaceNodeRelationId, {"filespace_oid"}, 26, -1, 4, 2, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentTablespaceNodeRelationId, {"tablespace_oid"}, 26, -1, 4, 3, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentTablespaceNodeRelationId, {"persistent_state"}, 21, -1, 2, 4, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
{ GpPersistentTablespaceNodeRelationId, {"reserved"}, 23, -1, 4, 7, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentTablespaceNodeRelationId, {"parent_xid"}, 23, -1, 4, 8, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentTablespaceNodeRelationId, {"persistent_serial_num"}, 20, -1, 8, 9, 0, -1, -1, true, 'p', 'd', true, false, false, true, 0 }, \
{ GpPersistentTablespaceNodeRelationId, {"previous_free_tid"}, 27, -1, 6, 10, 0, -1, -1, false, 'p', 's', true, false, false, true, 0 }, \
/*
* gp_persistent_tablespace_node table values for FormData_pg_class.
*/
#define Class_gp_persistent_tablespace_node \
{"gp_persistent_tablespace_node"}, PG_CATALOG_NAMESPACE, GP_PERSISTENT_TABLESPACE_NODE_OID, BOOTSTRAP_SUPERUSERID, 0, \
GpPersistentTablespaceNodeRelationId, GLOBALTABLESPACE_OID, \
2, 100, 0, 0, 0, 0, false, true, RELKIND_RELATION, RELSTORAGE_HEAP, Natts_gp_persistent_tablespace_node, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
/*
* Defines for gp_persistent_filespace_node table
*/
#define GpPersistentFilespaceNodeRelationName "gp_persistent_filespace_node"
/* TIDYCAT_BEGINFAKEDEF
CREATE TABLE gp_persistent_filespace_node
with (shared=true, oid=false, relid=5093, reltype_oid=6993, content=PERSISTENT)
(
filespace_oid oid ,
db_id smallint ,
location text ,
persistent_state smallint ,
reserved integer ,
parent_xid integer ,
persistent_serial_num bigint ,
previous_free_tid tid ,
);
TIDYCAT_ENDFAKEDEF
*/
#define GpPersistentFilespaceNodeRelationId 5093
CATALOG(gp_persistent_filespace_node,5093) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
Oid filespace_oid;
int2 db_id;
text location;
int2 persistent_state;
int4 reserved;
int4 parent_xid;
int8 persistent_serial_num;
tid previous_free_tid;
} FormData_gp_persistent_filespace_node;
#define Natts_gp_persistent_filespace_node 8
#define Anum_gp_persistent_filespace_node_filespace_oid 1
#define Anum_gp_persistent_filespace_node_db_id 2
#define Anum_gp_persistent_filespace_node_location 3
#define Anum_gp_persistent_filespace_node_persistent_state 4
#define Anum_gp_persistent_filespace_node_reserved 5
#define Anum_gp_persistent_filespace_node_parent_xid 6
#define Anum_gp_persistent_filespace_node_persistent_serial_num 7
#define Anum_gp_persistent_filespace_node_previous_free_tid 8
typedef FormData_gp_persistent_filespace_node *Form_gp_persistent_filespace_node;
/*
* gp_persistent_filespace_node table values for FormData_pg_attribute.
*
* [Similar examples are Schema_pg_type, Schema_pg_proc, Schema_pg_attribute, etc, in
* pg_attribute.h]
*
* NOTE: The use of type text triggers all columns afterward to be NOT NULL....
*/
#define Schema_gp_persistent_filespace_node \
{ GpPersistentFilespaceNodeRelationId, {"filespace_oid"}, 26, -1, 4, 1, 0, -1, -1, true, 'p', 'i', true, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"db_id"}, 21, -1, 2, 3, 0, -1, -1, true, 'p', 's', true, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"location"}, 25, -1, -1, 4, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"persistent_state"}, 21, -1, 2, 7, 0, -1, -1, true, 'p', 's', false, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"reserved"}, 23, -1, 4, 10, 0, -1, -1, true, 'p', 'i', false, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"parent_xid"}, 23, -1, 4, 11, 0, -1, -1, true, 'p', 'i', false, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"persistent_serial_num"}, 20, -1, 8, 12, 0, -1, -1, true, 'p', 'd', false, false, false, true, 0 }, \
{ GpPersistentFilespaceNodeRelationId, {"previous_free_tid"}, 27, -1, 6, 13, 0, -1, -1, false, 'p', 's', false, false, false, true, 0 }, \
/*
* gp_persistent_filespace_node table values for FormData_pg_class.
*/
#define Class_gp_persistent_filespace_node \
{"gp_persistent_filespace_node"}, PG_CATALOG_NAMESPACE, GP_PERSISTENT_FILESPACE_NODE_OID, BOOTSTRAP_SUPERUSERID, 0, \
GpPersistentFilespaceNodeRelationId, GLOBALTABLESPACE_OID, \
2, 100, 0, 0, 0, 0, false, true, RELKIND_RELATION, RELSTORAGE_HEAP, Natts_gp_persistent_filespace_node, \
0, 0, 0, 0, 0, false, false, false, false, FirstNormalTransactionId, {0}, {{{'\0','\0','\0','\0'},{'\0'}}}
#undef tid
#undef int8
#undef gpxlogloc
// Cannot change this length with upgrade work to convert the file's tuples...
#define FilespaceLocationBlankPaddedWithNullTermLen MAXPGPATH
inline static bool GpPersistent_IsPersistentRelation(
Oid testOid)
{
/*
* Persistent related global tables.
*/
if (testOid == GpPersistentRelfileNodeRelationId || // 5089
testOid == GpPersistentRelationNodeRelationId || // 5090
testOid == GpPersistentDatabaseNodeRelationId || // 5091
testOid == GpPersistentTablespaceNodeRelationId || // 5092
testOid == GpPersistentFilespaceNodeRelationId || // 5093
testOid == GpGlobalSequenceRelationId) // 5096
return true;
return false;
}
inline static bool GpPersistent_SkipXLogInfo(
Oid testOid)
{
/*
* NOTE: Only shared (i.e. global) relations can be skipped.
*/
// Assert(IsSharedRelation(testOid));
if (GpPersistent_IsPersistentRelation(testOid))
return true;
/*
* pg_shdepend
*/
if (testOid == SharedDependRelationId) // 1214
return true;
return false;
}
extern void GpPersistentRelfileNode_GetRelfileInfo(
char relkind, /* see RELKIND_xxx constants */
char relstorage, /* see RELSTORAGE_xxx constants */
Oid relam, /* index access method; 0 if not an index */
PersistentFileSysRelStorageMgr *relfileStorageManager,
PersistentFileSysRelBufpoolKind *relfileBufpoolKind);
extern void GpPersistentRelfileNode_GetValues(
Datum *values,
Oid *tablespaceOid,
Oid *databaseOid,
Oid *relfilenodeOid,
int32 *segmentFileNum,
PersistentFileSysRelStorageMgr *relationStorageManager,
PersistentFileSysState *persistentState,
PersistentFileSysRelBufpoolKind *relBufpoolKind,
TransactionId *parentXid,
int64 *persistentSerialNum,
ItemPointerData *previousFreeTid,
bool *sharedStorage
);
extern void GpPersistentRelfileNode_SetDatumValues(
Datum *values,
Oid tablespaceOid,
Oid databaseOid,
Oid relfilenodeOid,
int32 segmentFileNum,
PersistentFileSysRelStorageMgr relationStorageManager,
PersistentFileSysState persistentState,
PersistentFileSysRelBufpoolKind relBufpoolKind,
TransactionId parentXid,
int64 persistentSerialNum,
ItemPointerData *previousFreeTid,
bool sharedStorage);
extern void GpPersistentRelationNode_GetValues(
Datum *values,
Oid *tablespaceOid,
Oid *databaseOid,
Oid *relfilenodeOid,
PersistentFileSysState *persistentState,
int32 *reserved,
TransactionId *parentXid,
int64 *persistentSerialNum,
ItemPointerData *previousFreeTid,
bool *sharedStorage);
extern void GpPersistentRelationNode_SetDatumValues(
Datum *values,
Oid tablespaceOid,
Oid databaseOid,
Oid relfilenodeOid,
PersistentFileSysState persistentState,
int32 reserved,
TransactionId parentXid,
int64 persistentSerialNum,
ItemPointerData *previousFreeTid,
bool sharedStorage);
extern void GpPersistentDatabaseNode_GetValues(
Datum *values,
Oid *tablespaceOid,
Oid *databaseOid,
PersistentFileSysState *persistentState,
int32 *reserved,
TransactionId *parentXid,
int64 *persistentSerialNum,
ItemPointerData *previousFreeTid,
bool *sharedStorage);
extern void GpPersistentDatabaseNode_SetDatumValues(
Datum *values,
Oid tablespaceOid,
Oid databaseOid,
PersistentFileSysState persistentState,
int32 reserved,
TransactionId parentXid,
int64 persistentSerialNum,
ItemPointerData *previousFreeTid,
bool sharedStorage);
extern void GpPersistentTablespaceNode_GetValues(
Datum *values,
Oid *filespaceOid,
Oid *tablespaceOid,
PersistentFileSysState *persistentState,
int32 *reserved,
TransactionId *parentXid,
int64 *persistentSerialNum,
ItemPointerData *previousFreeTid,
bool *sharedStorage);
extern void GpPersistentTablespaceNode_SetDatumValues(
Datum *values,
Oid filespaceOid,
Oid tablespaceOid,
PersistentFileSysState persistentState,
TransactionId parentXid,
int64 persistentSerialNum,
ItemPointerData *previousFreeTid,
bool sharedStorage);
extern void GpPersistentFilespaceNode_GetValues(
Datum *values,
Oid *filespaceOid,
int16 *dbId1,
char locationBlankPadded1[FilespaceLocationBlankPaddedWithNullTermLen],
PersistentFileSysState *persistentState,
int32 *reserved,
TransactionId *parentXid,
int64 *persistentSerialNum,
ItemPointerData *previousFreeTid,
bool *sharedStorage);
extern void GpPersistentFilespaceNode_SetDatumValues(
Datum *values,
Oid filespaceOid,
char locationBlankPadded1[FilespaceLocationBlankPaddedWithNullTermLen],
PersistentFileSysState persistentState,
int32 reserved,
TransactionId parentXid,
int64 persistentSerialNum,
ItemPointerData *previousFreeTid,
bool sharedStorage);
extern void GpPersistent_GetCommonValues(
PersistentFsObjType fsObjType,
Datum *values,
PersistentFileSysObjName *fsObjName,
PersistentFileSysState *persistentState,
TransactionId *parentXid,
int64 *persistentSerialNum);
extern void GpRelfileNode_GetValues(
Datum *values,
Oid *relfilenodeOid,
int32 *segmentFileNum,
ItemPointer persistentTid,
int64 *persistentSerialNum);
extern void GpRelfileNode_SetDatumValues(
Datum *values,
Oid relfilenodeOid,
int32 segmentFileNum,
ItemPointer persistentTid,
int64 persistentSerialNum);
#endif /* GP_PERSISTENT_H */