Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
97dfff83
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,发现更多精彩内容 >>
提交
97dfff83
编写于
7月 03, 1999
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix to prevent too large tuple from being created.
上级
954e466c
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
46 addition
and
40 deletion
+46
-40
src/backend/access/heap/stats.c
src/backend/access/heap/stats.c
+2
-1
src/backend/catalog/index.c
src/backend/catalog/index.c
+3
-2
src/backend/commands/copy.c
src/backend/commands/copy.c
+2
-2
src/backend/commands/vacuum.c
src/backend/commands/vacuum.c
+2
-2
src/backend/optimizer/path/_deadcode/xfunc.c
src/backend/optimizer/path/_deadcode/xfunc.c
+3
-2
src/backend/parser/gram.y
src/backend/parser/gram.y
+5
-3
src/backend/storage/page/bufpage.c
src/backend/storage/page/bufpage.c
+2
-2
src/backend/utils/adt/varchar.c
src/backend/utils/adt/varchar.c
+14
-9
src/include/access/htup.h
src/include/access/htup.h
+7
-2
src/include/storage/bufpage.h
src/include/storage/bufpage.h
+1
-13
src/interfaces/ecpg/preproc/preproc.y
src/interfaces/ecpg/preproc/preproc.y
+5
-2
未找到文件。
src/backend/access/heap/stats.c
浏览文件 @
97dfff83
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/heap/Attic/stats.c,v 1.1
5 1999/02/13 23:14:25
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/heap/Attic/stats.c,v 1.1
6 1999/07/03 00:32:36
momjian Exp $
*
* NOTES
* initam should be moved someplace else.
...
...
@@ -16,6 +16,7 @@
*/
#include <stdio.h>
#include <time.h>
#include <postgres.h>
...
...
src/backend/catalog/index.c
浏览文件 @
97dfff83
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.
79 1999/06/19 04:54:11
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.
80 1999/07/03 00:32:38
momjian Exp $
*
*
* INTERFACE ROUTINES
...
...
@@ -20,6 +20,7 @@
#include "postgres.h"
#include "access/genam.h"
#include "access/htup.h"
#include "access/heapam.h"
#include "access/istrat.h"
#include "access/xact.h"
...
...
@@ -56,7 +57,7 @@
/*
* macros used in guessing how many tuples are on a page.
*/
#define AVG_TUPLE_SIZE
8
#define AVG_TUPLE_SIZE
MinTupleSize
#define NTUPLES_PER_PAGE(natts) (BLCKSZ/((natts)*AVG_TUPLE_SIZE))
/* non-export function prototypes */
...
...
src/backend/commands/copy.c
浏览文件 @
97dfff83
...
...
@@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.8
0 1999/06/12 20:41:25 tgl
Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.8
1 1999/07/03 00:32:39 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -1073,7 +1073,7 @@ GetIndexRelations(Oid main_relation_oid,
}
}
#define EXT_ATTLEN
5*BLCKSZ
#define EXT_ATTLEN
(5 * BLCKSZ)
/*
returns 1 is c is in s
...
...
src/backend/commands/vacuum.c
浏览文件 @
97dfff83
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.1
09 1999/06/11 09:35:08 vadim
Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.1
10 1999/07/03 00:32:40 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -624,7 +624,7 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel,
empty_end_pages
;
Size
free_size
,
usable_free_size
;
Size
min_tlen
=
M
AXTUPLEN
;
Size
min_tlen
=
M
axTupleSize
;
Size
max_tlen
=
0
;
int32
i
;
struct
rusage
ru0
,
...
...
src/backend/optimizer/path/_deadcode/xfunc.c
浏览文件 @
97dfff83
...
...
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/_deadcode/Attic/xfunc.c,v 1.
4 1999/05/25 22:41:36
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/_deadcode/Attic/xfunc.c,v 1.
5 1999/07/03 00:32:42
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -20,6 +20,7 @@
#include "postgres.h"
#include "access/htup.h"
#include "access/heapam.h"
#include "catalog/pg_language.h"
#include "catalog/pg_proc.h"
...
...
@@ -1094,7 +1095,7 @@ xfunc_expense_per_tuple(JoinPath joinnode, int whichchild)
RelOptInfo
outerrel
=
get_parent
((
Path
)
get_outerjoinpath
(
joinnode
));
RelOptInfo
innerrel
=
get_parent
((
Path
)
get_innerjoinpath
(
joinnode
));
Count
outerwidth
=
get_width
(
outerrel
);
Count
outers_per_page
=
ceil
(
BLCKSZ
/
(
outerwidth
+
sizeof
(
HeapTupleData
)
));
Count
outers_per_page
=
ceil
(
BLCKSZ
/
(
outerwidth
+
MinTupleSize
));
if
(
IsA
(
joinnode
,
HashPath
))
{
...
...
src/backend/parser/gram.y
浏览文件 @
97dfff83
...
...
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.8
4 1999/06/07 14:28:25 tgl
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.8
5 1999/07/03 00:32:44 momjian
Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
...
...
@@ -36,6 +36,7 @@
#include <ctype.h>
#include "postgres.h"
#include "access/htup.h"
#include "nodes/parsenodes.h"
#include "nodes/print.h"
#include "parser/gramparse.h"
...
...
@@ -3384,8 +3385,9 @@ Character: character '(' Iconst ')'
if ($3 < 1)
elog(ERROR,"length for '%s' type must be at least 1",$1);
else if ($3 > BLCKSZ - 128)
elog(ERROR,"length for type '%s' cannot exceed %d",$1, BLCKSZ-128);
else if ($3 > MaxTupleSize)
elog(ERROR,"length for type '%s' cannot exceed %d",$1,
MaxTupleSize);
/* we actually implement this sort of like a varlen, so
* the first 4 bytes is the length. (the difference
...
...
src/backend/storage/page/bufpage.c
浏览文件 @
97dfff83
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.2
2 1999/05/25 16:11:25
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.2
3 1999/07/03 00:32:48
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -45,7 +45,7 @@ PageInit(Page page, Size pageSize, Size specialSize)
Assert
(
pageSize
==
BLCKSZ
);
Assert
(
pageSize
>
specialSize
+
sizeof
(
PageHeaderData
)
-
sizeof
(
ItemIdData
));
specialSize
+
sizeof
(
PageHeaderData
)
-
sizeof
(
ItemIdData
));
specialSize
=
DOUBLEALIGN
(
specialSize
);
...
...
src/backend/utils/adt/varchar.c
浏览文件 @
97dfff83
...
...
@@ -7,13 +7,14 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.4
6 1999/05/25 16:12:21
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.4
7 1999/07/03 00:32:50
momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include <stdio.h>
/* for sprintf() */
#include <string.h>
#include "postgres.h"
#include "access/htup.h"
#include "utils/array.h"
#include "utils/builtins.h"
#include "catalog/pg_type.h"
...
...
@@ -81,8 +82,9 @@ bpcharin(char *s, int dummy, int32 atttypmod)
else
len
=
atttypmod
-
VARHDRSZ
;
if
(
len
>
BLCKSZ
-
128
)
elog
(
ERROR
,
"bpcharin: length of char() must be less than %d"
,
BLCKSZ
-
128
);
if
(
len
>
MaxTupleSize
)
elog
(
ERROR
,
"bpcharin: length of char() must be less than %d"
,
MaxTupleSize
);
result
=
(
char
*
)
palloc
(
atttypmod
);
VARSIZE
(
result
)
=
atttypmod
;
...
...
@@ -151,8 +153,9 @@ bpchar(char *s, int32 len)
rlen
=
len
-
VARHDRSZ
;
if
(
rlen
>
BLCKSZ
-
128
)
elog
(
ERROR
,
"bpchar: length of char() must be less than %d"
,
BLCKSZ
-
128
);
if
(
rlen
>
MaxTupleSize
)
elog
(
ERROR
,
"bpchar: length of char() must be less than %d"
,
MaxTupleSize
);
#ifdef STRINGDEBUG
printf
(
"bpchar- convert string length %d (%d) ->%d (%d)
\n
"
,
...
...
@@ -332,8 +335,9 @@ varcharin(char *s, int dummy, int32 atttypmod)
if
(
atttypmod
!=
-
1
&&
len
>
atttypmod
)
len
=
atttypmod
;
/* clip the string at max length */
if
(
len
>
BLCKSZ
-
128
)
elog
(
ERROR
,
"varcharin: length of char() must be less than %d"
,
BLCKSZ
-
128
);
if
(
len
>
MaxTupleSize
)
elog
(
ERROR
,
"varcharin: length of char() must be less than %d"
,
MaxTupleSize
);
result
=
(
char
*
)
palloc
(
len
);
VARSIZE
(
result
)
=
len
;
...
...
@@ -403,8 +407,9 @@ varchar(char *s, int32 slen)
len
=
slen
-
VARHDRSZ
;
#endif
if
(
len
>
BLCKSZ
-
128
)
elog
(
ERROR
,
"varchar: length of varchar() must be less than BLCKSZ-128"
);
if
(
len
>
MaxTupleSize
)
elog
(
ERROR
,
"varchar: length of varchar() must be less than %d"
,
MaxTupleSize
);
result
=
(
char
*
)
palloc
(
slen
);
VARSIZE
(
result
)
=
slen
;
...
...
src/include/access/htup.h
浏览文件 @
97dfff83
...
...
@@ -6,14 +6,14 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: htup.h,v 1.1
6 1999/05/25 22:42:32
momjian Exp $
* $Id: htup.h,v 1.1
7 1999/07/03 00:32:55
momjian Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef HTUP_H
#define HTUP_H
#include <
utils/nabstim
e.h>
#include <
storage/bufpag
e.h>
#include <storage/itemptr.h>
#define MinHeapTupleBitmapSize 32
/* 8 * 4 */
...
...
@@ -52,6 +52,11 @@ typedef struct HeapTupleHeaderData
typedef
HeapTupleHeaderData
*
HeapTupleHeader
;
#define MinTupleSize (sizeof (PageHeaderData) + \
sizeof(HeapTupleHeaderData) + sizeof(int4))
#define MaxTupleSize (BLCKSZ/2 - MinTupleSize)
#define SelfItemPointerAttributeNumber (-1)
#define ObjectIdAttributeNumber (-2)
#define MinTransactionIdAttributeNumber (-3)
...
...
src/include/storage/bufpage.h
浏览文件 @
97dfff83
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: bufpage.h,v 1.2
2 1999/05/25 16:14:40
momjian Exp $
* $Id: bufpage.h,v 1.2
3 1999/07/03 00:32:59
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -133,18 +133,6 @@ typedef enum
OverwritePageManagerMode
}
PageManagerMode
;
/* ----------------
* misc support macros
* ----------------
*/
/*
* XXX this is wrong -- ignores padding/alignment, variable page size,
* AM-specific opaque space at the end of the page (as in btrees), ...
* however, it at least serves as an upper bound for heap pages.
*/
#define MAXTUPLEN (BLCKSZ - sizeof (PageHeaderData))
/* ----------------------------------------------------------------
* page support macros
* ----------------------------------------------------------------
...
...
src/interfaces/ecpg/preproc/preproc.y
浏览文件 @
97dfff83
...
...
@@ -3,6 +3,9 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "postgres.h"
#include "access/htup.h"
#include "catalog/catname.h"
#include "utils/numeric.h"
...
...
@@ -3351,8 +3354,8 @@ Character: character '(' Iconst ')'
sprintf(errortext, "length for '%s' type must be at least 1",$1);
yyerror(errortext);
}
else if (atol($3) >
BLCKSZ - 128
) {
sprintf(errortext, "length for type '%s' cannot exceed %d",$1,
BLCKSZ - 128
);
else if (atol($3) >
MaxTupleSize
) {
sprintf(errortext, "length for type '%s' cannot exceed %d",$1,
MaxTupleSize
);
yyerror(errortext);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录