Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
a535cdf1
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,发现更多精彩内容 >>
提交
a535cdf1
编写于
3月 06, 2007
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert temp_tablespaces because of coding problems, per Tom.
上级
4ae6967f
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
16 addition
and
258 deletion
+16
-258
doc/src/sgml/config.sgml
doc/src/sgml/config.sgml
+1
-30
src/backend/commands/indexcmds.c
src/backend/commands/indexcmds.c
+2
-8
src/backend/commands/tablecmds.c
src/backend/commands/tablecmds.c
+1
-5
src/backend/commands/tablespace.c
src/backend/commands/tablespace.c
+2
-141
src/backend/executor/execMain.c
src/backend/executor/execMain.c
+1
-5
src/backend/storage/file/fd.c
src/backend/storage/file/fd.c
+6
-48
src/backend/utils/misc/guc.c
src/backend/utils/misc/guc.c
+1
-12
src/backend/utils/misc/postgresql.conf.sample
src/backend/utils/misc/postgresql.conf.sample
+0
-2
src/include/commands/tablespace.h
src/include/commands/tablespace.h
+1
-2
src/include/utils/guc.h
src/include/utils/guc.h
+1
-5
未找到文件。
doc/src/sgml/config.sgml
浏览文件 @
a535cdf1
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.11
4 2007/03/03 18:46:40
momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.11
5 2007/03/06 02:06:12
momjian Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
...
...
@@ -3440,35 +3440,6 @@ SELECT * FROM parent WHERE key = 2400;
</listitem>
</varlistentry>
<varlistentry id="guc-temp-tablespaces" xreflabel="temp_tablespaces">
<term><varname>temp_tablespaces</varname> (<type>string</type>)</term>
<indexterm>
<primary><varname>temp_tablespaces</> configuration parameter</primary>
</indexterm>
<indexterm><primary>tablespace</><secondary>temp</></>
<listitem>
<para>
This variable specifies tablespaces in which to create temp
objects (temp tables and indexes on temp tables) when a
<command>CREATE</> command does not explicitly specify a tablespace
and temp files when necessary (eg. for sorting operations).
</para>
<para>
The value is either a list of names of tablespaces, or an empty
string to specify using the default tablespace of the current database.
If the value does not match the name of any existing tablespace,
<productname>PostgreSQL</> will automatically use the default
tablespace of the current database.
</para>
<para>
For more information on tablespaces,
see <xref linkend="manage-ag-tablespaces">.
</para>
</listitem>
</varlistentry>
<varlistentry id="guc-check-function-bodies" xreflabel="check_function_bodies">
<term><varname>check_function_bodies</varname> (<type>boolean</type>)</term>
<indexterm>
...
...
src/backend/commands/indexcmds.c
浏览文件 @
a535cdf1
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.15
5 2007/02/01 19:10:26
momjian Exp $
* $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.15
6 2007/03/06 02:06:12
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -209,13 +209,7 @@ DefineIndex(RangeVar *heapRelation,
}
else
{
/*
* if the target table is temporary then use a temp_tablespace
*/
if
(
!
rel
->
rd_istemp
)
tablespaceId
=
GetDefaultTablespace
();
else
tablespaceId
=
GetTempTablespace
();
tablespaceId
=
GetDefaultTablespace
();
/* note InvalidOid is OK in this case */
}
...
...
src/backend/commands/tablecmds.c
浏览文件 @
a535cdf1
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.21
5 2007/02/16 22:04:02 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.21
6 2007/03/06 02:06:13 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -330,10 +330,6 @@ DefineRelation(CreateStmt *stmt, char relkind)
errmsg
(
"tablespace
\"
%s
\"
does not exist"
,
stmt
->
tablespacename
)));
}
else
if
(
stmt
->
relation
->
istemp
)
{
tablespaceId
=
GetTempTablespace
();
}
else
{
tablespaceId
=
GetDefaultTablespace
();
...
...
src/backend/commands/tablespace.c
浏览文件 @
a535cdf1
...
...
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.4
2 2007/02/01 19:10:26
momjian Exp $
* $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.4
3 2007/03/06 02:06:13
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -65,12 +65,9 @@
#include "utils/lsyscache.h"
/* GUC variable
s
*/
/* GUC variable */
char
*
default_tablespace
=
NULL
;
char
*
temp_tablespaces
=
NULL
;
int
next_temp_tablespace
;
int
num_temp_tablespaces
;
static
bool
remove_tablespace_directories
(
Oid
tablespaceoid
,
bool
redo
);
static
void
set_short_version
(
const
char
*
path
);
...
...
@@ -933,142 +930,6 @@ GetDefaultTablespace(void)
return
result
;
}
/*
* Routines for handling the GUC variable 'temp_tablespaces'.
*/
/* assign_hook: validate new temp_tablespaces, do extra actions as needed */
const
char
*
assign_temp_tablespaces
(
const
char
*
newval
,
bool
doit
,
GucSource
source
)
{
char
*
rawname
;
List
*
namelist
;
ListCell
*
l
;
/* Need a modifiable copy of string */
rawname
=
pstrdup
(
newval
);
/* Parse string into list of identifiers */
if
(
!
SplitIdentifierString
(
rawname
,
','
,
&
namelist
))
{
/* syntax error in name list */
pfree
(
rawname
);
list_free
(
namelist
);
return
NULL
;
}
num_temp_tablespaces
=
0
;
foreach
(
l
,
namelist
)
{
char
*
curname
=
(
char
*
)
lfirst
(
l
);
/*
* If we aren't inside a transaction, we cannot do database access so
* cannot verify the individual names. Must accept the list on faith.
*/
if
(
source
>=
PGC_S_INTERACTIVE
&&
IsTransactionState
())
{
/*
* Verify that all the names are valid tablspace names
* We do not check for USAGE rights should we?
*/
if
(
get_tablespace_oid
(
curname
)
==
InvalidOid
)
ereport
((
source
==
PGC_S_TEST
)
?
NOTICE
:
ERROR
,
(
errcode
(
ERRCODE_UNDEFINED_OBJECT
),
errmsg
(
"tablespace
\"
%s
\"
does not exist"
,
curname
)));
}
num_temp_tablespaces
++
;
}
/*
* Select the first tablespace to use
*/
next_temp_tablespace
=
MyProcPid
%
num_temp_tablespaces
;
pfree
(
rawname
);
list_free
(
namelist
);
return
newval
;
}
/*
* GetTempTablespace -- get the OID of the tablespace for temporary objects
*
* May return InvalidOid to indicate "use the database's default tablespace"
*
* This exists to hide the temp_tablespace GUC variable.
*/
Oid
GetTempTablespace
(
void
)
{
Oid
result
;
char
*
curname
=
NULL
;
char
*
rawname
;
List
*
namelist
;
ListCell
*
l
;
int
i
=
0
;
if
(
temp_tablespaces
==
NULL
)
return
InvalidOid
;
/* Need a modifiable version of temp_tablespaces */
rawname
=
pstrdup
(
temp_tablespaces
);
/* Parse string into list of identifiers */
if
(
!
SplitIdentifierString
(
rawname
,
','
,
&
namelist
))
{
/* syntax error in name list */
pfree
(
rawname
);
list_free
(
namelist
);
return
InvalidOid
;
}
/*
* Iterate through the list of namespaces until the one we need
* (next_temp_tablespace)
*/
foreach
(
l
,
namelist
)
{
curname
=
(
char
*
)
lfirst
(
l
);
if
(
i
==
next_temp_tablespace
)
break
;
i
++
;
}
/* Prepare for the next time the function is called */
next_temp_tablespace
++
;
if
(
next_temp_tablespace
==
num_temp_tablespaces
)
next_temp_tablespace
=
0
;
/* Fast path for temp_tablespaces == "" */
if
(
curname
==
NULL
||
curname
[
0
]
==
'\0'
)
{
list_free
(
namelist
);
pfree
(
rawname
);
return
InvalidOid
;
}
/*
* It is tempting to cache this lookup for more speed, but then we would
* fail to detect the case where the tablespace was dropped since the GUC
* variable was set. Note also that we don't complain if the value fails
* to refer to an existing tablespace; we just silently return InvalidOid,
* causing the new object to be created in the database's tablespace.
*/
result
=
get_tablespace_oid
(
curname
);
/* We don't free rawname before because curname points to a part of it */
pfree
(
rawname
);
/*
* Allow explicit specification of database's default tablespace in
* default_tablespace without triggering permissions checks.
*/
if
(
result
==
MyDatabaseTableSpace
)
result
=
InvalidOid
;
list_free
(
namelist
);
return
result
;
}
/*
* get_tablespace_oid - given a tablespace name, look up the OID
...
...
src/backend/executor/execMain.c
浏览文件 @
a535cdf1
...
...
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.2
89 2007/02/27 01:11:25 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.2
90 2007/03/06 02:06:13 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -2440,10 +2440,6 @@ OpenIntoRel(QueryDesc *queryDesc)
errmsg
(
"tablespace
\"
%s
\"
does not exist"
,
into
->
tableSpaceName
)));
}
else
if
(
into
->
rel
->
istemp
)
{
tablespaceId
=
GetTempTablespace
();
}
else
{
tablespaceId
=
GetDefaultTablespace
();
...
...
src/backend/storage/file/fd.c
浏览文件 @
a535cdf1
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.13
6 2007/02/28 15:59:30 mha
Exp $
* $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.13
7 2007/03/06 02:06:14 momjian
Exp $
*
* NOTES:
*
...
...
@@ -46,8 +46,6 @@
#include <unistd.h>
#include <fcntl.h>
#include "commands/tablespace.h"
#include "miscadmin.h"
#include "access/xact.h"
#include "storage/fd.h"
...
...
@@ -78,7 +76,6 @@
*/
#define FD_MINFREE 10
#define OIDCHARS 10
/* max chars printed by %u */
/*
* A number of platforms allow individual processes to open many more files
...
...
@@ -883,51 +880,13 @@ OpenTemporaryFile(bool interXact)
{
char
tempfilepath
[
MAXPGPATH
];
File
file
;
Oid
oid
;
char
*
path
;
int
pathlen
;
/*
* Take a look what should be the path of the temporary file
* Generate a tempfile name that should be unique within the current
* database instance.
*/
oid
=
GetTempTablespace
();
if
(
oid
!=
InvalidOid
)
{
/*
* As we got a valid tablespace, try to create the
* file there
*/
pathlen
=
strlen
(
"pg_tblspc/"
)
+
OIDCHARS
+
1
;
path
=
(
char
*
)
palloc
(
pathlen
);
snprintf
(
path
,
pathlen
,
"pg_tblspc/%u"
,
oid
);
/*
* Generate a tempfile name that should be unique within the current
* database instance.
*/
snprintf
(
tempfilepath
,
sizeof
(
tempfilepath
),
"%s/%s%d.%ld"
,
path
,
PG_TEMP_FILE_PREFIX
,
MyProcPid
,
tempFileCounter
++
);
pfree
(
path
);
file
=
PathNameOpenFile
(
tempfilepath
,
O_RDWR
|
O_CREAT
|
O_TRUNC
|
PG_BINARY
,
0600
);
}
/*
* Create a normal temporary file if no tablespace returned or
* couldn't create the file in the tablespace "oid"
*/
if
(
oid
==
InvalidOid
||
file
<=
0
)
{
path
=
PG_TEMP_FILES_DIR
;
/*
* Generate a tempfile name that should be unique within the current
* database instance.
*/
snprintf
(
tempfilepath
,
sizeof
(
tempfilepath
),
"%s/%s%d.%ld"
,
path
,
PG_TEMP_FILE_PREFIX
,
snprintf
(
tempfilepath
,
sizeof
(
tempfilepath
),
"%s/%s%d.%ld"
,
PG_TEMP_FILES_DIR
,
PG_TEMP_FILE_PREFIX
,
MyProcPid
,
tempFileCounter
++
);
/*
...
...
@@ -959,8 +918,7 @@ OpenTemporaryFile(bool interXact)
if
(
file
<=
0
)
elog
(
ERROR
,
"could not create temporary file
\"
%s
\"
: %m"
,
tempfilepath
);
}
}
}
/* Mark it for deletion at close */
VfdCache
[
file
].
fdstate
|=
FD_TEMPORARY
;
...
...
src/backend/utils/misc/guc.c
浏览文件 @
a535cdf1
...
...
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.37
8 2007/03/03 18:46:40
momjian Exp $
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.37
9 2007/03/06 02:06:14
momjian Exp $
*
*--------------------------------------------------------------------
*/
...
...
@@ -99,7 +99,6 @@ extern bool Log_disconnections;
extern
int
CommitDelay
;
extern
int
CommitSiblings
;
extern
char
*
default_tablespace
;
extern
char
*
temp_tablespaces
;
extern
bool
fullPageWrites
;
#ifdef TRACE_SORT
...
...
@@ -2317,16 +2316,6 @@ static struct config_string ConfigureNamesString[] =
"content"
,
assign_xmloption
,
NULL
},
{
{
"temp_tablespaces"
,
PGC_USERSET
,
PGC_S_FILE
,
gettext_noop
(
"Sets the tablespaces suitable for creating new objects and sort files."
),
NULL
,
GUC_LIST_INPUT
|
GUC_LIST_QUOTE
},
&
temp_tablespaces
,
NULL
,
assign_temp_tablespaces
,
NULL
},
#ifdef USE_SSL
{
{
"ssl_ciphers"
,
PGC_POSTMASTER
,
CONN_AUTH_SECURITY
,
...
...
src/backend/utils/misc/postgresql.conf.sample
浏览文件 @
a535cdf1
...
...
@@ -404,8 +404,6 @@
#search_path = '"$user",public' # schema names
#default_tablespace = '' # a tablespace name, '' uses
# the default
#temp_tablespaces = '' # a list of tablespace names,
# '' uses default_tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
...
...
src/include/commands/tablespace.h
浏览文件 @
a535cdf1
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/commands/tablespace.h,v 1.1
5 2007/01/25 04:35:11
momjian Exp $
* $PostgreSQL: pgsql/src/include/commands/tablespace.h,v 1.1
6 2007/03/06 02:06:15
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -41,7 +41,6 @@ extern void AlterTableSpaceOwner(const char *name, Oid newOwnerId);
extern
void
TablespaceCreateDbspace
(
Oid
spcNode
,
Oid
dbNode
,
bool
isRedo
);
extern
Oid
GetDefaultTablespace
(
void
);
extern
Oid
GetTempTablespace
(
void
);
extern
Oid
get_tablespace_oid
(
const
char
*
tablespacename
);
extern
char
*
get_tablespace_name
(
Oid
spc_oid
);
...
...
src/include/utils/guc.h
浏览文件 @
a535cdf1
...
...
@@ -7,7 +7,7 @@
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.
79 2007/01/25 04:35:11
momjian Exp $
* $PostgreSQL: pgsql/src/include/utils/guc.h,v 1.
80 2007/03/06 02:06:15
momjian Exp $
*--------------------------------------------------------------------
*/
#ifndef GUC_H
...
...
@@ -238,8 +238,4 @@ extern const char *assign_search_path(const char *newval,
extern
const
char
*
assign_xlog_sync_method
(
const
char
*
method
,
bool
doit
,
GucSource
source
);
/* in commands/tablespace.c */
extern
const
char
*
assign_temp_tablespaces
(
const
char
*
newval
,
bool
doit
,
GucSource
source
);
#endif
/* GUC_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录