Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 0 additions & 113 deletions pgrust/README.md

This file was deleted.

8 changes: 7 additions & 1 deletion pgrust/benchmark.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
#!/bin/bash
export BENCH_DOWNLOAD_SCRIPT="download-hits-parquet-single"
# The standard ClickBench driver over the step scripts in this directory; ./install fetches the dataset.
export BENCH_DOWNLOAD_SCRIPT=""
if [ ! -f ../lib/benchmark-common.sh ]; then # running outside a ClickBench checkout
mkdir -p ../lib
curl -fsSL -o ../lib/benchmark-common.sh https://raw.githubusercontent.com/ClickHouse/ClickBench/main/lib/benchmark-common.sh
chmod +x ../lib/benchmark-common.sh
fi
exec ../lib/benchmark-common.sh
1 change: 0 additions & 1 deletion pgrust/check
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/bin/bash
set -e
. "$(dirname "$0")/env.sh"

$PSQL -tAc 'SELECT 1' >/dev/null
61 changes: 32 additions & 29 deletions pgrust/create.sql
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
CREATE ACCESS METHOD cbstore TYPE TABLE HANDLER heap_tableam_handler;
-- The official postgresql/create.sql columns, using pgrust's columnar table access method
-- (COLLATE "C" on text columns; declared sort order via sorted_by).
CREATE ACCESS METHOD pgrcolumnar2 TYPE TABLE HANDLER heap_tableam_handler;

CREATE TABLE hits
(
WatchID BIGINT NOT NULL,
JavaEnable SMALLINT NOT NULL,
Title TEXT NOT NULL,
Title TEXT COLLATE "C" NOT NULL,
GoodEvent SMALLINT NOT NULL,
EventTime TIMESTAMP NOT NULL,
EventDate Date NOT NULL,
Expand All @@ -14,8 +17,8 @@ CREATE TABLE hits
CounterClass SMALLINT NOT NULL,
OS SMALLINT NOT NULL,
UserAgent SMALLINT NOT NULL,
URL TEXT NOT NULL,
Referer TEXT NOT NULL,
URL TEXT COLLATE "C" NOT NULL,
Referer TEXT COLLATE "C" NOT NULL,
IsRefresh SMALLINT NOT NULL,
RefererCategoryID SMALLINT NOT NULL,
RefererRegionID INTEGER NOT NULL,
Expand All @@ -26,21 +29,21 @@ CREATE TABLE hits
ResolutionDepth SMALLINT NOT NULL,
FlashMajor SMALLINT NOT NULL,
FlashMinor SMALLINT NOT NULL,
FlashMinor2 TEXT NOT NULL,
FlashMinor2 TEXT COLLATE "C" NOT NULL,
NetMajor SMALLINT NOT NULL,
NetMinor SMALLINT NOT NULL,
UserAgentMajor SMALLINT NOT NULL,
UserAgentMinor VARCHAR(255) NOT NULL,
UserAgentMinor VARCHAR(255) COLLATE "C" NOT NULL,
CookieEnable SMALLINT NOT NULL,
JavascriptEnable SMALLINT NOT NULL,
IsMobile SMALLINT NOT NULL,
MobilePhone SMALLINT NOT NULL,
MobilePhoneModel TEXT NOT NULL,
Params TEXT NOT NULL,
MobilePhoneModel TEXT COLLATE "C" NOT NULL,
Params TEXT COLLATE "C" NOT NULL,
IPNetworkID INTEGER NOT NULL,
TraficSourceID SMALLINT NOT NULL,
SearchEngineID SMALLINT NOT NULL,
SearchPhrase TEXT NOT NULL,
SearchPhrase TEXT COLLATE "C" NOT NULL,
AdvEngineID SMALLINT NOT NULL,
IsArtifical SMALLINT NOT NULL,
WindowClientWidth SMALLINT NOT NULL,
Expand All @@ -51,13 +54,13 @@ CREATE TABLE hits
SilverlightVersion2 SMALLINT NOT NULL,
SilverlightVersion3 INTEGER NOT NULL,
SilverlightVersion4 SMALLINT NOT NULL,
PageCharset TEXT NOT NULL,
PageCharset TEXT COLLATE "C" NOT NULL,
CodeVersion INTEGER NOT NULL,
IsLink SMALLINT NOT NULL,
IsDownload SMALLINT NOT NULL,
IsNotBounce SMALLINT NOT NULL,
FUniqID BIGINT NOT NULL,
OriginalURL TEXT NOT NULL,
OriginalURL TEXT COLLATE "C" NOT NULL,
HID INTEGER NOT NULL,
IsOldCounter SMALLINT NOT NULL,
IsEvent SMALLINT NOT NULL,
Expand All @@ -75,10 +78,10 @@ CREATE TABLE hits
WindowName INTEGER NOT NULL,
OpenerName INTEGER NOT NULL,
HistoryLength SMALLINT NOT NULL,
BrowserLanguage TEXT NOT NULL,
BrowserCountry TEXT NOT NULL,
SocialNetwork TEXT NOT NULL,
SocialAction TEXT NOT NULL,
BrowserLanguage TEXT COLLATE "C" NOT NULL,
BrowserCountry TEXT COLLATE "C" NOT NULL,
SocialNetwork TEXT COLLATE "C" NOT NULL,
SocialAction TEXT COLLATE "C" NOT NULL,
HTTPError SMALLINT NOT NULL,
SendTiming INTEGER NOT NULL,
DNSTiming INTEGER NOT NULL,
Expand All @@ -87,23 +90,23 @@ CREATE TABLE hits
ResponseEndTiming INTEGER NOT NULL,
FetchTiming INTEGER NOT NULL,
SocialSourceNetworkID SMALLINT NOT NULL,
SocialSourcePage TEXT NOT NULL,
SocialSourcePage TEXT COLLATE "C" NOT NULL,
ParamPrice BIGINT NOT NULL,
ParamOrderID TEXT NOT NULL,
ParamCurrency TEXT NOT NULL,
ParamOrderID TEXT COLLATE "C" NOT NULL,
ParamCurrency TEXT COLLATE "C" NOT NULL,
ParamCurrencyID SMALLINT NOT NULL,
OpenstatServiceName TEXT NOT NULL,
OpenstatCampaignID TEXT NOT NULL,
OpenstatAdID TEXT NOT NULL,
OpenstatSourceID TEXT NOT NULL,
UTMSource TEXT NOT NULL,
UTMMedium TEXT NOT NULL,
UTMCampaign TEXT NOT NULL,
UTMContent TEXT NOT NULL,
UTMTerm TEXT NOT NULL,
FromTag TEXT NOT NULL,
OpenstatServiceName TEXT COLLATE "C" NOT NULL,
OpenstatCampaignID TEXT COLLATE "C" NOT NULL,
OpenstatAdID TEXT COLLATE "C" NOT NULL,
OpenstatSourceID TEXT COLLATE "C" NOT NULL,
UTMSource TEXT COLLATE "C" NOT NULL,
UTMMedium TEXT COLLATE "C" NOT NULL,
UTMCampaign TEXT COLLATE "C" NOT NULL,
UTMContent TEXT COLLATE "C" NOT NULL,
UTMTerm TEXT COLLATE "C" NOT NULL,
FromTag TEXT COLLATE "C" NOT NULL,
HasGCLID SMALLINT NOT NULL,
RefererHash BIGINT NOT NULL,
URLHash BIGINT NOT NULL,
CLID INTEGER NOT NULL
) USING cbstore WITH (codec = 'lz4');
) USING pgrcolumnar2 WITH (sorted_by = 'CounterID, EventDate, UserID, EventTime, WatchID');
4 changes: 1 addition & 3 deletions pgrust/data-size
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
#!/bin/bash
set -eu
. "$(dirname "$0")/env.sh"

# Whole datadir, including WAL and catalogs.
sudo du -bs "$PGDATA_DIR" | awk '{print $1}'
du -bs "$PGDATA" | awk '{print $1}'
41 changes: 15 additions & 26 deletions pgrust/env.sh
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
# Shared paths for the pgrust ClickBench entry. Sourced by the sibling
# scripts; not executable on its own.

PGRUST_VERSION=0.2
# The server binary, installed by ./install (sha256-verified download).
PGRUST_BIN=/usr/local/bin/pgrust-postgres
# The data directory. A fixed, world-traversable path rather than $PWD:
# the server runs as the `postgres` system user, which cannot traverse
# into e.g. /root if the checkout lives there.
PGDATA_DIR=/var/lib/pgrust/data
SERVER_LOG=/var/lib/pgrust/server.log
# Unix socket directory (the server does not listen on TCP).
PGSOCK_DIR=/var/run/pgrust
# C PostgreSQL 18 (PGDG) provides initdb and psql; pgrust cannot bootstrap
# a data directory itself and ships no client.
PG18_BIN=/usr/lib/postgresql/18/bin
# pgrust reads timezone data and misc share files from a C PostgreSQL
# share directory at runtime.
PGSHARE_DIR=/usr/share/postgresql/18
TZDATA_DIR=/usr/share/zoneinfo
# Where ./load moves hits.parquet before the server-side COPY. /var/tmp is
# world-traversable, so the server (running as `postgres`) can read it
# regardless of where the checkout lives.
HITS_FILE=/var/tmp/hits.parquet

PSQL="psql -h $PGSOCK_DIR -p 5432 -U postgres"
# shared by the step scripts
export PGRUST_HOME="${PGRUST_HOME:-$HOME/pgrust}" # install prefix + data + socket + logs
export PGRUST_PREFIX="$PGRUST_HOME/install" # the release tarball, untarred (bin/postgres, share/postgresql)
export PGDATA="$PGRUST_HOME/data"
export PGSOCKDIR="$PGRUST_HOME/sock"
export PGPORT="${PGPORT:-5432}"
export PG18BIN="${PG18BIN:-/usr/lib/postgresql/18/bin}" # initdb + psql from apt.postgresql.org (README "Install")
export HITS_PARQUET="${HITS_PARQUET:-$PGRUST_HOME/hits.parquet}"
# the release tarball per machine architecture, with a .sha256 sidecar; PGRUST_TARBALL (a local file) overrides
export PGRUST_RELEASE="${PGRUST_RELEASE:-v0.4-preview}"
export PGRUST_RELEASE_BASE="${PGRUST_RELEASE_BASE:-https://pgrust.com/downloads/$PGRUST_RELEASE}" # the v0.2 entry's host (CloudFront -> S3)
case "$(uname -m)" in x86_64) PGRUST_CPU=znver3;; aarch64) PGRUST_CPU=neoverse-v2;; *) PGRUST_CPU=generic;; esac
export PGRUST_BIN_URL="${PGRUST_BIN_URL:-$PGRUST_RELEASE_BASE/pgrust-$PGRUST_RELEASE-$(uname -m)-$PGRUST_CPU.tar.gz}"
export PGRUST_TARBALL="${PGRUST_TARBALL:-}"
export PSQL="$PG18BIN/psql -X -h $PGSOCKDIR -p $PGPORT -U postgres"
Loading
Loading