aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuo Ishii <ishii@postgresql.org>2003-11-26 06:53:18 +0000
committerTatsuo Ishii <ishii@postgresql.org>2003-11-26 06:53:18 +0000
commit43f77c06bb7fcf9931da7dacd5e9175f9474997d (patch)
tree79065813810514c7151d184e4c897cfeecc226a2
parente7a45c787e2c2d40e04059409f72d8ccaaea6f6a (diff)
downloadpostgresql-43f77c06bb7fcf9931da7dacd5e9175f9474997d.tar.gz
postgresql-43f77c06bb7fcf9931da7dacd5e9175f9474997d.zip
Patches from Yutaka Tanida. Create primary key indexes after data
insertion to reduce initialization time.
-rw-r--r--contrib/pgbench/README.pgbench6
-rw-r--r--contrib/pgbench/README.pgbench_jis7
-rw-r--r--contrib/pgbench/pgbench.c27
3 files changed, 33 insertions, 7 deletions
diff --git a/contrib/pgbench/README.pgbench b/contrib/pgbench/README.pgbench
index 855e6abc429..5ac8bace3fe 100644
--- a/contrib/pgbench/README.pgbench
+++ b/contrib/pgbench/README.pgbench
@@ -1,4 +1,4 @@
-pgbench README 2002/07/20 Tatsuo Ishii (t-ishii@sra.co.jp)
+pgbench README 2003/11/26 Tatsuo Ishii (t-ishii@sra.co.jp)
o What is pgbench?
@@ -164,6 +164,10 @@ Basically it is same as BSD license. See pgbench.c for more details.
o History
+2003/11/26
+ * create indexes after data insertion to reduce time.
+ patch from Yutaka Tanida.
+
2003/06/10
* fix uninitialized memory bug
* add support for PGHOST, PGPORT, PGUSER environment variables
diff --git a/contrib/pgbench/README.pgbench_jis b/contrib/pgbench/README.pgbench_jis
index d7e261deca1..82a2f6a39bf 100644
--- a/contrib/pgbench/README.pgbench_jis
+++ b/contrib/pgbench/README.pgbench_jis
@@ -1,4 +1,4 @@
-pgbench README 2002/07/20 Tatsuo Ishii (t-ishii@sra.co.jp)
+pgbench README 2003/11/26 Tatsuo Ishii (t-ishii@sra.co.jp)
$B"#(Bpgbench $B$H$O!)(B
@@ -184,6 +184,11 @@ pgbench $B$O@P0f(B $BC#IW$K$h$C$F=q$+$l$^$7$?!%%i%$%;%s%9>r7o$O(B pgbench.c
$B"#2~DjMzNr(B
+2003/11/26
+ * $BC+ED$5$s$N%Q%C%A$rE,MQ!%(Bpgbench -i$B$N:]$K!$8e$+$i<g%-!<$r:n@.(B
+ $B$9$k$h$&$K$7$?!%$3$l$K$h$C$F=i4|2=$N<B9T;~4V$,BgI}$KC;=L$G$-(B
+ $B$k(B($B$O$:(B)$B!%(B
+
2003/06/10
* $B%a%b%j$,=i4|2=$5$l$F$$$J$$%P%0$r=$@5(B
* $B4D6-JQ?t(BPGHOST, PGPORT, PGUSER$B$rG'<1$9$k$h$&$K$7$?!%(B
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index 94e79ba021f..8d817d9c6e2 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -1,10 +1,10 @@
/*
- * $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.27 2003/09/27 19:15:34 wieck Exp $
+ * $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.28 2003/11/26 06:53:18 ishii Exp $
*
* pgbench: a simple TPC-B like benchmark program for PostgreSQL
* written by Tatsuo Ishii
*
- * Copyright (c) 2000-2002 Tatsuo Ishii
+ * Copyright (c) 2000-2003 Tatsuo Ishii
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby
@@ -482,13 +482,19 @@ init(void)
PGresult *res;
static char *DDLs[] = {
"drop table branches",
- "create table branches(bid int, primary key(bid),bbalance int,filler char(88))",
+ "create table branches(bid int not null,bbalance int,filler char(88))",
"drop table tellers",
- "create table tellers(tid int, primary key(tid),bid int,tbalance int,filler char(84))",
+ "create table tellers(tid int not null,bid int,tbalance int,filler char(84))",
"drop table accounts",
- "create table accounts(aid int,primary key(aid),bid int,abalance int,filler char(84))",
+ "create table accounts(aid int not null,bid int,abalance int,filler char(84))",
"drop table history",
"create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22))"};
+ static char *DDLAFTERs[] = {
+ "alter table branches add primary key (bid)",
+ "alter table tellers add primary key (tid)",
+ "alter table accounts add primary key (aid)"};
+
+
char sql[256];
int i;
@@ -608,6 +614,17 @@ init(void)
#endif /* NOT_USED */
}
}
+ fprintf(stderr, "set primary key...\n");
+ for (i = 0; i < (sizeof(DDLAFTERs) / sizeof(char *)); i++)
+ {
+ res = PQexec(con, DDLAFTERs[i]);
+ if (strncmp(DDLs[i], "drop", 4) && PQresultStatus(res) != PGRES_COMMAND_OK)
+ {
+ fprintf(stderr, "%s", PQerrorMessage(con));
+ exit(1);
+ }
+ PQclear(res);
+ }
/* vacuum */
fprintf(stderr, "vacuum...");