LCOV - differential code coverage report
Current view: top level - src/include/utils - partcache.h (source / functions) Coverage Total Hit GIC ECB
Current: Differential Code Coverage HEAD vs 15 Lines: 100.0 % 14 14 14 14
Current Date: 2023-04-08 15:15:32 Functions: 100.0 % 7 7 7 7
Baseline: 15
Baseline Date: 2023-04-08 15:09:40
Legend: Lines: hit not hit

           TLA  Line data    Source code
       1                 : /*-------------------------------------------------------------------------
       2                 :  *
       3                 :  * partcache.h
       4                 :  *
       5                 :  * Copyright (c) 1996-2023, PostgreSQL Global Development Group
       6                 :  *
       7                 :  * src/include/utils/partcache.h
       8                 :  *
       9                 :  *-------------------------------------------------------------------------
      10                 :  */
      11                 : #ifndef PARTCACHE_H
      12                 : #define PARTCACHE_H
      13                 : 
      14                 : #include "access/attnum.h"
      15                 : #include "fmgr.h"
      16                 : #include "nodes/parsenodes.h"
      17                 : #include "nodes/pg_list.h"
      18                 : #include "nodes/primnodes.h"
      19                 : #include "partitioning/partdefs.h"
      20                 : #include "utils/relcache.h"
      21                 : 
      22                 : /*
      23                 :  * Information about the partition key of a relation
      24                 :  */
      25                 : typedef struct PartitionKeyData
      26                 : {
      27                 :     PartitionStrategy strategy; /* partitioning strategy */
      28                 :     int16       partnatts;      /* number of columns in the partition key */
      29                 :     AttrNumber *partattrs;      /* attribute numbers of columns in the
      30                 :                                  * partition key or 0 if it's an expr */
      31                 :     List       *partexprs;      /* list of expressions in the partitioning
      32                 :                                  * key, one for each zero-valued partattrs */
      33                 : 
      34                 :     Oid        *partopfamily;   /* OIDs of operator families */
      35                 :     Oid        *partopcintype;  /* OIDs of opclass declared input data types */
      36                 :     FmgrInfo   *partsupfunc;    /* lookup info for support funcs */
      37                 : 
      38                 :     /* Partitioning collation per attribute */
      39                 :     Oid        *partcollation;
      40                 : 
      41                 :     /* Type information per attribute */
      42                 :     Oid        *parttypid;
      43                 :     int32      *parttypmod;
      44                 :     int16      *parttyplen;
      45                 :     bool       *parttypbyval;
      46                 :     char       *parttypalign;
      47                 :     Oid        *parttypcoll;
      48                 : }           PartitionKeyData;
      49                 : 
      50                 : 
      51                 : extern PartitionKey RelationGetPartitionKey(Relation rel);
      52                 : extern List *RelationGetPartitionQual(Relation rel);
      53                 : extern Expr *get_partition_qual_relid(Oid relid);
      54                 : 
      55                 : /*
      56                 :  * PartitionKey inquiry functions
      57                 :  */
      58                 : static inline int
      59 GIC        4618 : get_partition_strategy(PartitionKey key)
      60 ECB             : {
      61 GIC        4618 :     return key->strategy;
      62 ECB             : }
      63                 : 
      64                 : static inline int
      65 GIC        5736 : get_partition_natts(PartitionKey key)
      66 ECB             : {
      67 GIC        5736 :     return key->partnatts;
      68 ECB             : }
      69                 : 
      70                 : static inline List *
      71 GIC        9363 : get_partition_exprs(PartitionKey key)
      72 ECB             : {
      73 GIC        9363 :     return key->partexprs;
      74 ECB             : }
      75                 : 
      76                 : /*
      77                 :  * PartitionKey inquiry functions - one column
      78                 :  */
      79                 : static inline int16
      80 GIC        1123 : get_partition_col_attnum(PartitionKey key, int col)
      81 ECB             : {
      82 GIC        1123 :     return key->partattrs[col];
      83 ECB             : }
      84                 : 
      85                 : static inline Oid
      86 GIC        6541 : get_partition_col_typid(PartitionKey key, int col)
      87 ECB             : {
      88 GIC        6541 :     return key->parttypid[col];
      89 ECB             : }
      90                 : 
      91                 : static inline int32
      92 GIC        6461 : get_partition_col_typmod(PartitionKey key, int col)
      93 ECB             : {
      94 GIC        6461 :     return key->parttypmod[col];
      95 ECB             : }
      96                 : 
      97                 : static inline Oid
      98 GIC        6461 : get_partition_col_collation(PartitionKey key, int col)
      99 ECB             : {
     100 GIC        6461 :     return key->partcollation[col];
     101 ECB             : }
     102                 : 
     103                 : #endif                          /* PARTCACHE_H */
        

Generated by: LCOV version v1.16-55-g56c0a2a