From 43f77c06bb7fcf9931da7dacd5e9175f9474997d Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii <ishii@postgresql.org> Date: Wed, 26 Nov 2003 06:53:18 +0000 Subject: [PATCH] Patches from Yutaka Tanida. Create primary key indexes after data insertion to reduce initialization time. --- contrib/pgbench/README.pgbench | 6 +++++- contrib/pgbench/README.pgbench_jis | 7 ++++++- contrib/pgbench/pgbench.c | 27 ++++++++++++++++++++++----- 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..."); -- GitLab