Tests
Suites
Latest Results
Search
Register
Login
Popular Tests
Timed Linux Kernel Compilation
7-Zip Compression
SVT-AV1
Stockfish
FFmpeg
PostgreSQL
Newest Tests
WarpX
Epoch
Valkey
Whisperfile
XNNPACK
GROMACS
Recently Updated Tests
Apache CouchDB
PostgreSQL
NAMD
Apache Cassandra
Opus Codec Encoding
ParaView
New & Recently Updated Tests
Recently Updated Suites
Database Test Suite
Machine Learning
Steam
New & Recently Updated Suites
Component Benchmarks
CPUs / Processors
GPUs / Graphics
OpenGL
Disks / Storage
Motherboards
File-Systems
Operating Systems
OpenBenchmarking.org
Corporate / Organization Info
Bug Reports / Feature Requests
PostgreSQL 1.14.0
pts/pgbench-1.14.0
- 14 September 2023 -
Update against PostgreSQL 16 upstream.
downloads.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v10.8.4--> <PhoronixTestSuite> <Downloads> <Package> <URL>http://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.bz2</URL> <MD5>f5319191df114e2361d938687216cc9b</MD5> <SHA256>df9e823eb22330444e1d48e52cc65135a652a6fdb3ce325e3f08549339f51b99</SHA256> <FileName>postgresql-16.0.tar.bz2</FileName> <FileSize>24528207</FileSize> <PlatformSpecific>Linux, BSD, Solaris, MacOSX</PlatformSpecific> </Package> <Package> <URL>http://get.enterprisedb.com/postgresql/postgresql-15.0-1-windows-x64-binaries.zip</URL> <MD5>cf7bc7f9a3288795b6c4b0aeae6014c9</MD5> <SHA256>935bfddf4ca8e2a97a467fe70f14ca6cf86b61667d0e1189e7977e4c0d27b836</SHA256> <FileName>postgresql-15.0-1-windows-x64-binaries.zip</FileName> <FileSize>294361608</FileSize> <PlatformSpecific>Windows</PlatformSpecific> </Package> </Downloads> </PhoronixTestSuite>
install.sh
#!/bin/sh version=16.0 tar -xjf postgresql-${version}.tar.bz2 rm -rf $HOME/pg_ mkdir -p $HOME/pg_/data/postgresql/extension/ touch $HOME/pg_/data/postgresql/extension/plpgsql.control # Junk up the root checking code so test profiles can easily run as root patch -p0 <<'EOF' diff -Naur postgresql-16.0.orig/src/backend/main/main.c postgresql-16.0/src/backend/main/main.c --- postgresql-16.0.orig/src/backend/main/main.c 2023-09-11 16:25:06.000000000 -0400 +++ postgresql-16.0/src/backend/main/main.c 2023-09-14 16:14:13.183892681 -0400 @@ -58,7 +58,7 @@ int main(int argc, char *argv[]) { - bool do_check_root = true; + bool do_check_root = false; reached_main = true; diff -Naur postgresql-16.0.orig/src/bin/initdb/initdb.c postgresql-16.0/src/bin/initdb/initdb.c --- postgresql-16.0.orig/src/bin/initdb/initdb.c 2023-09-11 16:25:06.000000000 -0400 +++ postgresql-16.0/src/bin/initdb/initdb.c 2023-09-14 16:14:42.287665122 -0400 @@ -749,7 +749,7 @@ { const char *username; -#ifndef WIN32 +#if 0 if (geteuid() == 0) /* 0 is root's uid */ { pg_log_error("cannot be run as root"); diff -Naur postgresql-16.0.orig/src/bin/pg_ctl/pg_ctl.c postgresql-16.0/src/bin/pg_ctl/pg_ctl.c --- postgresql-16.0.orig/src/bin/pg_ctl/pg_ctl.c 2023-09-11 16:25:06.000000000 -0400 +++ postgresql-16.0/src/bin/pg_ctl/pg_ctl.c 2023-09-14 16:15:05.519781941 -0400 @@ -2244,7 +2244,7 @@ /* * Disallow running as root, to forestall any possible security holes. */ -#ifndef WIN32 +#if 0 if (geteuid() == 0) { write_stderr(_("%s: cannot be run as root\n" diff -Naur postgresql-16.0.orig/src/bin/pg_upgrade/option.c postgresql-16.0/src/bin/pg_upgrade/option.c --- postgresql-16.0.orig/src/bin/pg_upgrade/option.c 2023-09-11 16:25:06.000000000 -0400 +++ postgresql-16.0/src/bin/pg_upgrade/option.c 2023-09-14 16:15:36.369326636 -0400 @@ -96,10 +96,6 @@ } } - /* Allow help and version to be run as root, so do the test here. */ - if (os_user_effective_id == 0) - pg_fatal("%s: cannot be run as root", os_info.progname); - while ((option = getopt_long(argc, argv, "b:B:cd:D:j:kNo:O:p:P:rs:U:v", long_options, &optindex)) != -1) EOF cd postgresql-${version} ./configure --prefix=$HOME/pg_ --without-readline --without-zlib if [ "$OS_TYPE" = "BSD" ] then gmake -j $NUM_CPU_CORES gmake -C contrib/pgbench all # echo $? > ~/install-exit-status gmake install gmake -C contrib/pgbench install else make -j $NUM_CPU_CORES make -C contrib/pgbench all # echo $? > ~/install-exit-status make install make -C contrib/pgbench install fi cd ~ rm -rf postgresql-${version}/ rm -rf pg_/doc/ # initialize database with encoding and locale $HOME/pg_/bin/initdb -D $HOME/pg_/data/db --encoding=SQL_ASCII --locale=C echo "#!/bin/sh PGDATA=\$HOME/pg_/data/db/ PGPORT=7777 export PGDATA export PGPORT # start server SHARED_BUFFER_SIZE=\`echo \"\$SYS_MEMORY * 0.25 / 1\" | bc\` SHARED_BUFFER_SIZE=\$(( \$SHARED_BUFFER_SIZE < 8192 ? \$SHARED_BUFFER_SIZE : 8192 )) echo \"Buffer size is \${SHARED_BUFFER_SIZE}MB\" > \$LOG_FILE pg_/bin/pg_ctl start -o \"-c max_connections=6000 -c shared_buffers=\${SHARED_BUFFER_SIZE}MB\" # wait for server to start sleep 10 # create test db pg_/bin/createdb pgbench # set up tables pg_/bin/pgbench -i \$1 \$2 -n pgbench # run the test pg_/bin/pgbench --protocol=prepared -j \$NUM_CPU_CORES \$@ -n -T 120 -r pgbench >>\$LOG_FILE 2>&1 # drop test db pg_/bin/dropdb pgbench # stop server pg_/bin/pg_ctl stop" > pgbench chmod +x pgbench
install_windows.sh
#!/bin/sh unzip -o postgresql-15.0-1-windows-x64-binaries.zip rm -rf $HOME/pg_ mkdir -p $HOME/pg_/data/postgresql/extension/ touch $HOME/pg_/data/postgresql/extension/plpgsql.control # initialize database with encoding and locale cd pgsql/bin ./initdb.exe -D $HOME/db --encoding=SQL_ASCII --locale=C cd ~ echo "If this test fails to run, you may need to manually install the Microsoft Visual C++ Redistributable package for MSVCR120.dll: https://www.microsoft.com/en-us/download/details.aspx?id=40784" > ~/install-message echo "#!/bin/sh PGDATA=\$HOME/db/ PGPORT=7777 export PGDATA mkdir db export PGPORT # start server # Windows is currently limited to 512MB shared_buffers ./pgsql/bin/pg_ctl.exe start -o ' -c max_connections=6000 -c shared_buffers=512MB' # wait for server to start sleep 10 # create test db ./pgsql/bin/createdb.exe pgbench ./pgsql/bin/pgbench.exe -i \$1 \$2 -n pgbench # run the test ./pgsql/bin/pgbench.exe --protocol=prepared -j \$NUM_CPU_CORES \$@ -n -T 120 -r pgbench >\$LOG_FILE # drop test db ./pgsql/bin/dropdb.exe pgbench # stop server ./pgsql/bin/pg_ctl.exe stop" > pgbench chmod +x pgbench
results-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v10.8.4--> <PhoronixTestSuite> <ResultsParser> <OutputTemplate>tps = #_RESULT_# (excluding connections establishing) TPS</OutputTemplate> <LineHint>tps = </LineHint> <ResultScale>TPS</ResultScale> <ResultProportion>HIB</ResultProportion> <ResultPrecision>0</ResultPrecision> </ResultsParser> <ResultsParser> <OutputTemplate>latency average = #_RESULT_# ms</OutputTemplate> <LineHint>latency average</LineHint> <ResultScale>ms</ResultScale> <ResultProportion>LIB</ResultProportion> <AppendToArgumentsDescription>Average Latency</AppendToArgumentsDescription> </ResultsParser> </PhoronixTestSuite>
test-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v10.8.4--> <PhoronixTestSuite> <TestInformation> <Title>PostgreSQL</Title> <AppVersion>16</AppVersion> <Description>This is a benchmark of PostgreSQL using the integrated pgbench for facilitating the database benchmarks.</Description> <ResultScale>TPS</ResultScale> <Proportion>HIB</Proportion> <TimesToRun>3</TimesToRun> </TestInformation> <TestProfile> <Version>1.14.0</Version> <SupportedPlatforms>Linux, MacOSX, BSD, Solaris</SupportedPlatforms> <SoftwareType>Benchmark</SoftwareType> <TestType>System</TestType> <License>Free</License> <Status>Verified</Status> <ExternalDependencies>build-utilities, bc</ExternalDependencies> <EnvironmentSize>1500</EnvironmentSize> <ProjectURL>https://www.postgresql.org/</ProjectURL> <RepositoryURL>https://github.com/postgres/postgres</RepositoryURL> <InternalTags>SMP</InternalTags> <Maintainer>Michael Larabel</Maintainer> <SystemDependencies>bc</SystemDependencies> </TestProfile> <TestSettings> <Option> <DisplayName>Scaling Factor</DisplayName> <Identifier>scaling-factor</Identifier> <ArgumentPrefix>-s </ArgumentPrefix> <Menu> <Entry> <Name>1</Name> <Value>1</Value> </Entry> <Entry> <Name>100</Name> <Value>100</Value> </Entry> <Entry> <Name>1000</Name> <Value>1000</Value> </Entry> <Entry> <Name>10000</Name> <Value>10000</Value> </Entry> <Entry> <Name>25000</Name> <Value>25000</Value> <Message>Intended for very large servers.</Message> </Entry> </Menu> </Option> <Option> <DisplayName>Clients</DisplayName> <Identifier>clients</Identifier> <ArgumentPrefix>-c </ArgumentPrefix> <Menu> <Entry> <Name>1</Name> <Value>1</Value> </Entry> <Entry> <Name>50</Name> <Value>50</Value> </Entry> <Entry> <Name>100</Name> <Value>100</Value> </Entry> <Entry> <Name>250</Name> <Value>250</Value> </Entry> <Entry> <Name>500</Name> <Value>500</Value> </Entry> <Entry> <Name>800</Name> <Value>800</Value> </Entry> <Entry> <Name>1000</Name> <Value>1000</Value> </Entry> <Entry> <Name>5000</Name> <Value>5000</Value> </Entry> </Menu> </Option> <Option> <DisplayName>Mode</DisplayName> <Identifier>run-mode</Identifier> <Menu> <Entry> <Name>Read Write</Name> <Value> </Value> </Entry> <Entry> <Name>Read Only</Name> <Value>-S </Value> </Entry> </Menu> </Option> </TestSettings> </PhoronixTestSuite>