Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
e2aef496
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e2aef496
编写于
12月 21, 1999
作者:
J
Jan Wieck
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added empty TOASTER files and corrected some minor glitches
in regression tests. Jan
上级
2c29c96e
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
187 addition
and
14 deletion
+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
未找到文件。
src/backend/access/common/tupdesc.c
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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).
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录