Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
75c6c2b6
Commit
75c6c2b6
authored
Aug 26, 1997
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Inlined heap_getattr().
parent
20afa04d
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
48 additions
and
104 deletions
+48
-104
src/backend/access/common/heaptuple.c
src/backend/access/common/heaptuple.c
+6
-59
src/backend/access/common/heapvalid.c
src/backend/access/common/heapvalid.c
+2
-2
src/backend/access/common/printtup.c
src/backend/access/common/printtup.c
+6
-4
src/backend/access/index/indexam.c
src/backend/access/index/indexam.c
+2
-2
src/backend/executor/execJunk.c
src/backend/executor/execJunk.c
+1
-2
src/backend/executor/nodeUnique.c
src/backend/executor/nodeUnique.c
+1
-2
src/include/access/heapam.h
src/include/access/heapam.h
+26
-3
src/include/access/heaptuple.h
src/include/access/heaptuple.h
+0
-26
src/include/storage/bufpage.h
src/include/storage/bufpage.h
+4
-4
No files found.
src/backend/access/common/heaptuple.c
View file @
75c6c2b6
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.2
0 1997/08/24 23:07:26
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.2
1 1997/08/26 23:31:20
momjian Exp $
*
* NOTES
* The old interface functions have been converted to macros
...
...
@@ -39,8 +39,6 @@
#define register
#endif
/* !NO_ASSERT_CHECKING && sparc && sunos4 */
static
char
*
heap_getsysattr
(
HeapTuple
tup
,
Buffer
b
,
int
attnum
);
/* ----------------------------------------------------------------
* misc support routines
* ----------------------------------------------------------------
...
...
@@ -337,7 +335,7 @@ heap_sysattrbyval(AttrNumber attno)
* heap_getsysattr
* ----------------
*/
static
char
*
char
*
heap_getsysattr
(
HeapTuple
tup
,
Buffer
b
,
int
attnum
)
{
switch
(
attnum
)
{
...
...
@@ -423,7 +421,6 @@ fastgetattr(HeapTuple tup,
* ----------------
*/
Assert
(
PointerIsValid
(
isnull
));
Assert
(
attnum
>
0
);
/* ----------------
...
...
@@ -435,6 +432,7 @@ fastgetattr(HeapTuple tup,
* ----------------
*/
if
(
isnull
)
*
isnull
=
false
;
if
(
HeapTupleNoNulls
(
tup
))
{
...
...
@@ -469,6 +467,7 @@ fastgetattr(HeapTuple tup,
*/
if
(
att_isnull
(
attnum
,
bp
))
{
if
(
isnull
)
*
isnull
=
true
;
return
NULL
;
}
...
...
@@ -659,58 +658,6 @@ fastgetattr(HeapTuple tup,
}
}
/* ----------------
* heap_getattr
*
* Find a particular field in a row represented as a heap tuple.
* We return a pointer into that heap tuple, which points to the
* first byte of the value of the field in question.
*
* If the field in question has a NULL value, we return a null
* pointer and return <*isnull> == true. Otherwise, we return
* <*isnull> == false.
*
* <tup> is the pointer to the heap tuple. <attnum> is the attribute
* number of the column (field) caller wants. <tupleDesc> is a
* pointer to the structure describing the row and all its fields.
* ---------------- */
char
*
heap_getattr
(
HeapTuple
tup
,
Buffer
b
,
int
attnum
,
TupleDesc
tupleDesc
,
bool
*
isnull
)
{
bool
localIsNull
;
/* ----------------
* sanity checks
* ----------------
*/
Assert
(
tup
!=
NULL
);
if
(
!
PointerIsValid
(
isnull
))
isnull
=
&
localIsNull
;
if
(
attnum
>
(
int
)
tup
->
t_natts
)
{
*
isnull
=
true
;
return
((
char
*
)
NULL
);
}
else
if
(
attnum
>
0
)
{
/* ----------------
* take care of user defined attributes
* ----------------
*/
return
fastgetattr
(
tup
,
attnum
,
tupleDesc
,
isnull
);
}
else
{
/* ----------------
* take care of system attributes
* ----------------
*/
*
isnull
=
false
;
return
heap_getsysattr
(
tup
,
b
,
attnum
);
}
}
/* ----------------
* heap_copytuple
*
...
...
src/backend/access/common/heapvalid.c
View file @
75c6c2b6
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/Attic/heapvalid.c,v 1.1
4 1997/08/24 23:07:26
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/common/Attic/heapvalid.c,v 1.1
5 1997/08/26 23:31:22
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -15,7 +15,7 @@
#include <postgres.h>
#include <fmgr.h>
#include <access/heap
tuple
.h>
#include <access/heap
am
.h>
#include <access/valid.h>
#include <access/xact.h>
#include <storage/bufpage.h>
...
...
src/backend/access/common/printtup.c
View file @
75c6c2b6
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.1
4 1997/08/18 20:51:30
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.1
5 1997/08/26 23:31:23
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -17,7 +17,7 @@
#include <postgres.h>
#include <fmgr.h>
#include <access/heap
tuple
.h>
#include <access/heap
am
.h>
#include <access/printtup.h>
#include <catalog/pg_type.h>
#include <libpq/libpq.h>
...
...
@@ -91,7 +91,8 @@ printtup(HeapTuple tuple, TupleDesc typeinfo)
j
=
0
;
k
=
1
<<
7
;
for
(
i
=
0
;
i
<
tuple
->
t_natts
;
)
{
attr
=
heap_getattr
(
tuple
,
InvalidBuffer
,
++
i
,
typeinfo
,
&
isnull
);
i
++
;
/* heap_getattr is a macro, so no increment */
attr
=
heap_getattr
(
tuple
,
InvalidBuffer
,
i
,
typeinfo
,
&
isnull
);
if
(
!
isnull
)
j
|=
k
;
k
>>=
1
;
...
...
@@ -214,7 +215,8 @@ printtup_internal(HeapTuple tuple, TupleDesc typeinfo)
j
=
0
;
k
=
1
<<
7
;
for
(
i
=
0
;
i
<
tuple
->
t_natts
;
)
{
attr
=
heap_getattr
(
tuple
,
InvalidBuffer
,
++
i
,
typeinfo
,
&
isnull
);
i
++
;
/* heap_getattr is a macro, so no increment */
attr
=
heap_getattr
(
tuple
,
InvalidBuffer
,
i
,
typeinfo
,
&
isnull
);
if
(
!
isnull
)
j
|=
k
;
k
>>=
1
;
...
...
src/backend/access/index/indexam.c
View file @
75c6c2b6
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.1
2 1997/08/19 21:29:30
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.1
3 1997/08/26 23:31:28
momjian Exp $
*
* INTERFACE ROUTINES
* index_open - open an index relation by relationId
...
...
@@ -69,7 +69,7 @@
#include <utils/relcache.h>
#include <fmgr.h>
#include <storage/lmgr.h>
#include <access/heap
tuple
.h>
#include <access/heap
am
.h>
/* ----------------
* undefine macros we aren't going to use that would otherwise
...
...
src/backend/executor/execJunk.c
View file @
75c6c2b6
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/execJunk.c,v 1.
4 1997/01/10 20:17:25
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/executor/execJunk.c,v 1.
5 1997/08/26 23:31:37
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -17,7 +17,6 @@
#include "postgres.h"
#include "utils/palloc.h"
#include "access/heaptuple.h"
#include "access/heapam.h"
#include "executor/executor.h"
#include "nodes/relation.h"
...
...
src/backend/executor/nodeUnique.c
View file @
75c6c2b6
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v 1.
6 1997/01/10 20:17:38
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v 1.
7 1997/08/26 23:31:44
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -31,7 +31,6 @@
#include "executor/nodeUnique.h"
#include "optimizer/clauses.h"
#include "access/heapam.h"
#include "access/heaptuple.h"
#include "access/printtup.h"
/* for typtoout() */
#include "utils/builtins.h"
/* for namecpy()*/
...
...
src/include/access/heapam.h
View file @
75c6c2b6
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: heapam.h,v 1.
7 1997/08/19 21:37:30
momjian Exp $
* $Id: heapam.h,v 1.
8 1997/08/26 23:31:53
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -78,6 +78,30 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
#define IncrHeapAccessStat(x) \
(heap_access_stats == NULL ? 0 : (heap_access_stats->x)++)
/* ----------------
* heap_getattr
*
* Find a particular field in a row represented as a heap tuple.
* We return a pointer into that heap tuple, which points to the
* first byte of the value of the field in question.
*
* If the field in question has a NULL value, we return a null
* pointer and return <*isnull> == true. Otherwise, we return
* <*isnull> == false.
*
* <tup> is the pointer to the heap tuple. <attnum> is the attribute
* number of the column (field) caller wants. <tupleDesc> is a
* pointer to the structure describing the row and all its fields.
* ---------------- */
#define heap_getattr(tup, b, attnum, tupleDesc, isnull) \
(AssertMacro((tup) != NULL) ? \
((attnum) > (int) (tup)->t_natts) ? \
(((isnull) ? (*(isnull) = true) : NULL), (char *) NULL) : \
((attnum) > 0) ? \
fastgetattr((tup), (attnum), (tupleDesc), (isnull)) : \
(((isnull) ? (*(isnull) = false) : NULL), heap_getsysattr((tup), (b), (attnum))) : \
(char *) NULL)
extern
HeapAccessStatistics
heap_access_stats
;
/* in stats.c */
/* ----------------
...
...
@@ -114,10 +138,9 @@ extern void DataFill(char *data, TupleDesc tupleDesc,
extern
int
heap_attisnull
(
HeapTuple
tup
,
int
attnum
);
extern
int
heap_sysattrlen
(
AttrNumber
attno
);
extern
bool
heap_sysattrbyval
(
AttrNumber
attno
);
extern
char
*
heap_getsysattr
(
HeapTuple
tup
,
Buffer
b
,
int
attnum
);
extern
char
*
fastgetattr
(
HeapTuple
tup
,
int
attnum
,
TupleDesc
att
,
bool
*
isnull
);
extern
char
*
heap_getattr
(
HeapTuple
tup
,
Buffer
b
,
int
attnum
,
TupleDesc
att
,
bool
*
isnull
);
extern
HeapTuple
heap_copytuple
(
HeapTuple
tuple
);
extern
HeapTuple
heap_formtuple
(
TupleDesc
tupleDescriptor
,
Datum
value
[],
char
nulls
[]);
...
...
src/include/access/heaptuple.h
deleted
100644 → 0
View file @
20afa04d
/*-------------------------------------------------------------------------
*
* heaptuple.h--
*
*
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: heaptuple.h,v 1.3 1996/11/05 07:18:05 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef HEAPTUPLE_H
#define HEAPTUPLE_H
#include <access/tupdesc.h>
#include <storage/buf.h>
#include <access/htup.h>
extern
char
*
heap_getattr
(
HeapTuple
tup
,
Buffer
b
,
int
attnum
,
TupleDesc
tupleDesc
,
bool
*
isnull
);
#endif
/* HEAP_TUPLE_H */
src/include/storage/bufpage.h
View file @
75c6c2b6
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: bufpage.h,v 1.
9 1997/08/24 23:08:01
momjian Exp $
* $Id: bufpage.h,v 1.
10 1997/08/26 23:31:58
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -221,7 +221,7 @@ typedef enum {
* Assumes page is locked.
*/
#define PageGetSpecialSize(page) \
((uint16) (PageGetPageSize(page) - ((PageHeader)
page
)->pd_special))
((uint16) (PageGetPageSize(page) - ((PageHeader)
(page)
)->pd_special))
/*
* PageGetSpecialPointer --
...
...
@@ -245,8 +245,8 @@ typedef enum {
*/
#define PageGetItem(page, itemId) \
(AssertMacro(PageIsValid(page)) ? \
AssertMacro(
itemId
->lp_flags & LP_USED) ? \
(Item)(((char *)
page) + itemId
->lp_off) : false : false)
AssertMacro(
(itemId)
->lp_flags & LP_USED) ? \
(Item)(((char *)
(page)) + (itemId)
->lp_off) : false : false)
/*
* BufferGetPageSize --
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment