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
e2aef496
Commit
e2aef496
authored
Dec 21, 1999
by
Jan Wieck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added empty TOASTER files and corrected some minor glitches
in regression tests. Jan
parent
2c29c96e
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
187 additions
and
14 deletions
+187
-14
src/backend/access/common/tupdesc.c
src/backend/access/common/tupdesc.c
+7
-3
src/backend/access/heap/Makefile
src/backend/access/heap/Makefile
+2
-2
src/backend/access/heap/heapam.c
src/backend/access/heap/heapam.c
+2
-1
src/backend/access/heap/tuptoaster.c
src/backend/access/heap/tuptoaster.c
+46
-0
src/include/access/htup.h
src/include/access/htup.h
+15
-1
src/include/access/tupmacs.h
src/include/access/tupmacs.h
+2
-2
src/include/access/tuptoaster.h
src/include/access/tuptoaster.h
+33
-0
src/include/postgres.h
src/include/postgres.h
+74
-1
src/test/regress/expected/opr_sanity.out
src/test/regress/expected/opr_sanity.out
+2
-1
src/test/regress/expected/rules.out
src/test/regress/expected/rules.out
+2
-2
src/test/regress/sql/opr_sanity.sql
src/test/regress/sql/opr_sanity.sql
+2
-1
No files found.
src/backend/access/common/tupdesc.c
View file @
e2aef496
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.5
8 1999/12/20 10:40:38
wieck Exp $
* $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.5
9 1999/12/21 00:06:39
wieck Exp $
*
* NOTES
* some of the executor utility code such as "ExecTypeFromTL" should be
...
...
@@ -378,8 +378,12 @@ TupleDescInitEntry(TupleDesc desc,
* relations for automatic move off into "secondary" relation.
* Jan
*/
#ifdef LONG_ATTRIBUTES_NOW_IMPLEMENTED_FOR_ALL_VARLENA_DATA_TYPES
att
->
attcanlong
=
(
att
->
attlen
==
-
1
)
?
'e'
:
'p'
;
#ifdef TUPLE_TOASTER_ACTIVE
#ifdef TUPLE_TOASTER_ALL_TYPES
att
->
attstorage
=
(
att
->
attlen
==
-
1
)
?
'e'
:
'p'
;
#else
att
->
attstorage
=
'p'
;
#endif
#else
att
->
attstorage
=
'p'
;
#endif
...
...
src/backend/access/heap/Makefile
View file @
e2aef496
...
...
@@ -4,7 +4,7 @@
# Makefile for access/heap
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/backend/access/heap/Makefile,v 1.
8 1999/12/13 22:32:24 momjian
Exp $
# $Header: /cvsroot/pgsql/src/backend/access/heap/Makefile,v 1.
9 1999/12/21 00:06:40 wieck
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -13,7 +13,7 @@ include ../../../Makefile.global
CFLAGS
+=
-I
../..
OBJS
=
heapam.o hio.o stats.o
OBJS
=
heapam.o hio.o stats.o
tuptoaster.o
all
:
SUBSYS.o
...
...
src/backend/access/heap/heapam.c
View file @
e2aef496
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.6
1 1999/12/16 22:19:36
wieck Exp $
* $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.6
2 1999/12/21 00:06:40
wieck Exp $
*
*
* INTERFACE ROUTINES
...
...
@@ -78,6 +78,7 @@
#include "access/heapam.h"
#include "access/hio.h"
#include "access/valid.h"
#include "access/tuptoaster.h"
#include "catalog/catalog.h"
#include "miscadmin.h"
#include "storage/smgr.h"
...
...
src/backend/access/heap/tuptoaster.c
0 → 100644
View file @
e2aef496
/*-------------------------------------------------------------------------
*
* tuptoaster.c
* Support routines for external and compressed storage of
* variable size attributes.
*
* Copyright (c) 2000, PostgreSQL Development Team
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/heap/tuptoaster.c,v 1.1 1999/12/21 00:06:40 wieck Exp $
*
*
* INTERFACE ROUTINES
* heap_tuple_toast_attrs -
* Try to make a given tuple fit into one page by compressing
* or moving off attributes
*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
#include "access/heapam.h"
#include "access/tuptoaster.h"
#include "catalog/catalog.h"
#include "utils/rel.h"
#ifdef TUPLE_TOASTER_ACTIVE
void
heap_tuple_toast_attrs
(
Relation
rel
,
HeapTuple
newtup
,
HeapTuple
oldtup
)
{
return
;
}
varattrib
*
heap_tuple_untoast_attr
(
varattrib
*
attr
)
{
elog
(
ERROR
,
"heap_tuple_untoast_attr() called"
);
}
#endif
/* TUPLE_TOASTER_ACTIVE */
src/include/access/htup.h
View file @
e2aef496
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: htup.h,v 1.2
6 1999/12/16 22:19:58
wieck Exp $
* $Id: htup.h,v 1.2
7 1999/12/21 00:06:42
wieck Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -125,6 +125,11 @@ typedef HeapTupleData *HeapTuple;
#define HEAP_HASNULL 0x0001
/* has null attribute(s) */
#define HEAP_HASVARLENA 0x0002
/* has variable length
* attribute(s) */
#define HEAP_HASEXTERNAL 0x0004
/* has external stored */
/* attribute(s) */
#define HEAP_HASCOMPRESSED 0x0008
/* has compressed stored */
/* attribute(s) */
#define HEAP_HASEXTENDED 0x000C
/* the two above combined */
#define HEAP_XMIN_COMMITTED 0x0100
/* t_xmin committed */
#define HEAP_XMIN_INVALID 0x0200
/* t_xmin invalid/aborted */
#define HEAP_XMAX_COMMITTED 0x0400
/* t_xmax committed */
...
...
@@ -144,4 +149,13 @@ typedef HeapTupleData *HeapTuple;
#define HeapTupleAllFixed(tuple) \
(!(((HeapTuple) (tuple))->t_data->t_infomask & HEAP_HASVARLENA))
#define HeapTupleHasExternal(tuple) \
((((HeapTuple)(tuple))->t_data->t_infomask & HEAP_HASEXTERNAL) != 0)
#define HeapTupleHasCompressed(tuple) \
((((HeapTuple)(tuple))->t_data->t_infomask & HEAP_HASCOMPRESSED) != 0)
#define HeapTupleHasExtended(tuple) \
((((HeapTuple)(tuple))->t_data->t_infomask & HEAP_HASEXTENDED) != 0)
#endif
/* HTUP_H */
src/include/access/tupmacs.h
View file @
e2aef496
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: tupmacs.h,v 1.1
1 1999/07/15 15:20:56 momjian
Exp $
* $Id: tupmacs.h,v 1.1
2 1999/12/21 00:06:42 wieck
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -88,7 +88,7 @@
) \
: \
( \
(cur_offset) + VARSIZE(DatumGetPointer(attval)) \
(cur_offset) + VAR
ATT_
SIZE(DatumGetPointer(attval)) \
) \
)
...
...
src/include/access/tuptoaster.h
0 → 100644
View file @
e2aef496
/*-------------------------------------------------------------------------
*
* tuptoaster.h
* POSTGRES definitions for external and compressed storage
* of variable size attributes.
*
* Copyright (c) 2000, PostgreSQL Development Team
*
* $Id: tuptoaster.h,v 1.1 1999/12/21 00:06:42 wieck Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef TUPTOASTER_H
#define TUPTOASTER_H
#ifdef TUPLE_TOASTER_ACTIVE
#include "postgres.h"
#include "access/heapam.h"
#include "access/htup.h"
#include "access/tupmacs.h"
#include "utils/rel.h"
extern
void
heap_tuple_toast_attrs
(
Relation
rel
,
HeapTuple
newtup
,
HeapTuple
oldtup
);
extern
varattrib
*
heap_tuple_untoast_attr
(
varattrib
*
attr
);
#endif
/* TUPLE_TOASTER_ACTIVE */
#endif
/* TUPTOASTER_H */
src/include/postgres.h
View file @
e2aef496
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1995, Regents of the University of California
*
* $Id: postgres.h,v 1.3
0 1999/11/07 23:08:32 momjian
Exp $
* $Id: postgres.h,v 1.3
1 1999/12/21 00:06:41 wieck
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -104,6 +104,79 @@ typedef struct varlena text;
typedef
int2
int28
[
8
];
typedef
Oid
oid8
[
8
];
/*
* Proposed new layout for variable length attributes
* DO NOT USE YET - Jan
*/
#undef TUPLE_TOASTER_ACTIVE
#undef TUPLE_TOASTER_ALL_TYPES
#ifdef TUPLE_TOASTER_ACTIVE
typedef
struct
varattrib
{
int32
va_header
;
/* External/compressed storage */
/* flags and item size */
union
{
struct
{
int32
va_rawsize
;
/* Plain data size */
}
va_compressed
;
/* Compressed stored attribute */
struct
{
int32
va_rawsize
;
/* Plain data size */
Oid
va_valueid
;
/* Unique identifier of value */
Oid
va_longrelid
;
/* RelID where to find chunks */
Oid
va_rowid
;
/* Main tables row Oid */
int16
va_attno
;
/* Main tables attno */
}
va_external
;
/* External stored attribute */
char
va_data
[
1
];
/* Plain stored attribute */
}
va_content
;
}
varattrib
;
#define VARATT_FLAG_EXTERNAL 0x8000
#define VARATT_FLAG_COMPRESSED 0x4000
#define VARATT_MASK_FLAGS 0xc000
#define VARATT_MASK_SIZE 0x3fff
#define VARATT_SIZEP(_PTR) (((varattrib *)(_PTR))->va_header)
#define VARATT_SIZE(PTR) (VARATT_SIZEP(PTR) & VARATT_MASK_SIZE)
#define VARATT_DATA(PTR) (((varattrib *)(PTR))->va_content.va_data)
#define VARATT_IS_EXTENDED(PTR) \
((VARATT_SIZEP(PTR) & VARATT_MASK_FLAGS) != 0)
#define VARATT_IS_EXTERNAL(PTR) \
((VARATT_SIZEP(PTR) & VARATT_FLAG_EXTERNAL) != 0)
#define VARATT_IS_COMPRESSED(PTR) \
((VARATT_SIZEP(PTR) & VARATT_FLAG_COMPRESSED) != 0)
/* ----------
* This is regularly declared in access/tuptoaster.h,
* but we don't want to include that into every source,
* so we (evil evil evil) declare it here once more.
* ----------
*/
extern
varattrib
*
heap_tuple_untoast_attr
(
varattrib
*
attr
);
#define VARATT_GETPLAIN(_ARG,_VAR) { \
if (VARATTR_IS_EXTENDED(_ARG)) \
(_VAR) = (void *)heap_tuple_untoast_attr(_ARG); \
else \
(_VAR) = (_ARG); \
}
#define VARATT_FREE(_ARG,VAR) { \
if ((void *)(_VAR) != (void *)(_ARG)) \
pfree((void *)(_VAR)); \
}
#else
/* TUPLE_TOASTER_ACTIVE */
#define VARATT_SIZE(__PTR) VARSIZE(__PTR)
#define VARATT_SIZEP(__PTR) VARSIZE(__PTR)
#endif
/* TUPLE_TOASTER_ACTIVE */
/* We want NameData to have length NAMEDATALEN and int alignment,
* because that's how the data type 'name' is defined in pg_type.
* Use a union to make sure the compiler agrees.
...
...
src/test/regress/expected/opr_sanity.out
View file @
e2aef496
...
...
@@ -3,7 +3,8 @@ FROM pg_proc as p1
WHERE (p1.prolang = 0 OR p1.prorettype = 0 OR
p1.pronargs < 0 OR p1.pronargs > 9)
AND p1.proname !~ '^pl[^_]+_call_handler$'
AND p1.proname !~ '^RI_FKey_';
AND p1.proname !~ '^RI_FKey_'
AND p1.proname != 'update_pg_pwd';
oid|proname
---+-------
(0 rows)
...
...
src/test/regress/expected/rules.out
View file @
e2aef496
...
...
@@ -128,11 +128,11 @@ a| b
2|13
(3 rows)
QUERY: delete from rtest_v1 where b = 12;
QUERY: select * from rtest_v1;
** Remember the delete rule on rtest_v1: It says
** DO INSTEAD DELETE FROM rtest_t1 WHERE a = old.a
** So this time both rows with a = 2 must get deleted
QUERY: delete from rtest_v1 where b = 12;
QUERY: select * from rtest_v1;
a| b
-+--
1|11
...
...
src/test/regress/sql/opr_sanity.sql
View file @
e2aef496
...
...
@@ -28,7 +28,8 @@ FROM pg_proc as p1
WHERE
(
p1
.
prolang
=
0
OR
p1
.
prorettype
=
0
OR
p1
.
pronargs
<
0
OR
p1
.
pronargs
>
9
)
AND
p1
.
proname
!~
'^pl[^_]+_call_handler$'
AND
p1
.
proname
!~
'^RI_FKey_'
;
AND
p1
.
proname
!~
'^RI_FKey_'
AND
p1
.
proname
!=
'update_pg_pwd'
;
-- Look for conflicting proc definitions (same names and input datatypes).
...
...
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