v0.62.0 (2026-09-12)

- Added support for Oracle
- container: update Containerfile.oracle to a database server and build
  environment image that can run the oracle integration test
- new order: read and update stock at the supplying warehouse, maintain
  s_ytd, s_order_cnt, and s_remote_cnt, apply the +91 quantity adjustment
  only when stock does not exceed the ordered quantity by 10 or more, take
  the order id from the pre-increment d_next_o_id, store the s_dist_xx
  contents in ol_dist_info, insert every order line with its own amount, and
  roll back atomically on an unused item (cockroach, mysql, nonsp, oracle,
  pl/c, pl/pgsql), per TPC-C Clause 2.4.2
- payment: select the median customer matching a last name in the customer's
  warehouse and district, increase c_ytd_payment by the payment amount,
  increment c_payment_cnt, return the post-payment balance, and record the
  formatted amount in c_data and the warehouse and district names in h_data
  (cockroach, mysql, nonsp, oracle, pl/c, pl/pgsql), per TPC-C Clause 2.5.2
- order status: select the median customer matching a last name, read the
  customer's most recent order, and list every line of that order (cockroach,
  mysql, oracle, pl/c, pl/pgsql), per TPC-C Clause 2.6.2
- delivery: process and lock the oldest undelivered order so concurrent
  deliveries cannot process it twice, credit the customer with the sum of
  ol_amount instead of ol_amount * ol_quantity, sum every order line, and
  skip districts with no pending order (cockroach, mysql, nonsp, oracle,
  pl/c, pl/pgsql), per TPC-C Clause 2.7.4
- stock level: count distinct items below the threshold over the last 20
  orders, and no longer transpose the warehouse and district ids (cockroach,
  mysql, oracle, pl/c), per TPC-C Clause 2.8.2
- common: NURand draws its inner random value within [x .. y] instead of
  [x .. x + y], which skewed the non-uniform customer id selection,
  per TPC-C Clause 2.1.6
- driver: new order order line counts are generated within [5 .. 15] and
  payment amounts within [1.00 .. 5000.00], and remote warehouse selection
  draws uniformly from the warehouses other than the home warehouse instead
  of wrapping to an invalid or home warehouse, per TPC-C Clauses 2.4.1.3,
  2.5.1.2, and 2.5.1.3
- driver2, driver3: think time is drawn from the negative exponential
  distribution instead of a constant mean, per TPC-C Clause 5.2.5.4
- datagen: generated values cover the spec's inclusive ranges instead of
  stopping one value short of each maximum, and the o_c_id permutation can
  place any customer last instead of always customer 1,
  per TPC-C Clause 4.3.3.1
- Return the transaction output data for New-Order, Payment, Order-Status,
  and Stock-Level, and flag the intentional New-Order rollback (cockroach,
  mysql, nonsp, oracle, pgsql); pgsql reports the rollback with a dedicated
  SQLSTATE and the dbt2 extension is updated to 0.46.0
- transaction-test: accept mysql, oracle, and sqlite as dbms options
- transaction-test: a connect string of 32 or more bytes no longer overflows
  a fixed buffer
- yugabyte: build-db declares the primary keys with the tables, creates the
  indexes with a yugabyte specific script instead of the pgsql one that
  issued the statements in parallel and lost them to catalog version
  conflicts, takes -i to load the plpgsql stored functions from another
  directory, and forwards the documented --rows-per-commit option; yugabyte
  is accepted as a DBMS by the client, the driver, the transaction test, and
  run
- cockroach: add dbt2-cockroach-create-db and dbt2-cockroach-drop-db scripts
  that create and drop the database with cockroach sql, initialize the
  rows-per-commit default, and pass the database name from db-stat to
  pgsql-plans
- pgsql: build-db no longer exits 0 on failure, reporting a failed database
  creation or unreachable server, failed index and primary key creation,
  failed parallel data loading, and a failed final VACUUM ANALYZE;
  create-indexes creates tablespaces again
- pgsql: only use VACUUM PARALLEL on PostgreSQL 13 or later and never
  combine it with VACUUM FULL
- pgsql: fix an inverted pg_config check that made load-stored-procs, and
  with it the default database build, always fail outside the AppImage
- pgsql: drop-db no longer requires DBT2PGDATA and -r rebuilds attempt the
  drop without a local data directory, plans no longer assigns -oFILE to the
  port, and the report charts use the database name recorded in the results
  instead of hardcoding dbt2
- Only export PGPORT when a port was requested so the build scripts no
  longer clobber an inherited PGPORT with an empty value, and pgsql-load-db
  now passes its -l port to the datagen processes
- mysql: fix build-db option parsing and the stored procedure load ignoring
  failures and connection settings, pass the port and password to
  load-stored-procs with valid mysql client syntax, and let plans connect by
  host instead of requiring a socket
- mysql: link with the pkg-config linker flags so the client library is
  found outside the default linker search path, and fix the install rule for
  dbt2-mysql-plans
- client, driver: list odbc and sqlite in the -a usage text
- Disable in-source builds, use build/ instead of builds/ for out of source
  builds conforming to more common conventions, and rename Makefile.cmake to
  Makefile
- Fix CPack description and license file settings to use absolute paths
- Convert the remaining bash scripts to POSIX shell, fix bashisms in the
  existing POSIX shell scripts, and remove eval from the container tool
  scripts where it served no purpose
- build: forward connection settings to cockroach and yugabyte builds, pass
  --db-user to mysql, and reject --data, -g, and --privileged for DBMSes
  whose build scripts would misinterpret them; --data with pgsql previously
  became the vacuum full flag and renamed the database
- run: support enabling software profiling in the config file, and make
  required config file options optional so they can be set with command line
  arguments
- run: fix remote database control commands running locally when --stats was
  not given, the client password being passed with the wrong flag, the
  interrupted-run cleanup targeting an unset host, the config file driver
  ramp up calculation using unset variables, and waiting for drivers on all
  driver systems instead of only the last
- test-connection-scaling: apply the documented processor-count default for
  --stop (a default invocation previously ran zero tests), stop forgetting
  --dbaas, forward --db-name, accept --stop=N, stop the series when a test
  fails, and fix the warmup delay rounding
- test-db-parameter: stop when setting the parameter or restarting the
  database fails instead of recording results for an unchanged parameter,
  and reject config files missing required keys
- post-process: fix the R analyzer's per-warehouse district chi-square using
  a stale count, count unknown errors within the steady state window like
  the sqlite3 analyzer, align the sqlite3 90th percentile rank with the R
  quantile definition, and clean up temporary files on any exit
- generate-report: create a missing summary through dbt2 report instead of a
  nonexistent command and path, only embed DBMS report sections when the
  DBMS has a report script, fix the inverted pandoc check, and stop
  documenting options that were never implemented
- report: validate that a results directory was given, and fix the dbt2
  wrapper's rst2html5 fallback testing the wrong variable
- get-os-info: find sysctl in sbin directories and default the output
  directory to the current directory
- pgsql-plans: update usage and command line arguments
- logging: write to stderr when no output path is set
- scripts: stop containers on error exits, validate pids and sweep the
  process group when a run is interrupted, and exit cleanly on signals
- tools: run-test invokes the current dbt2 run interface instead of the
  removed run-workload script, starts and stops the CockroachDB cluster
  containers that build-database actually creates, and reports that 3-tier
  container tests are not currently supported
- tools: build the client and driver images before the database image, whose
  data load runs through the driver image, and propagate build failures;
  name the yugabyte and driver containers after the warehouse count; honor a
  preset DBVER and the ENGINE variable everywhere; fix the AppImage
  container group id and the client image tag; and update the README to the
  current script names
- appimage: fix the AppStream metadata to match the component identifier and
  desktop file naming, and generate the release information at configure
  time so it tracks the project version
- appimage: fix AppRun quoting, empty ARGV0 handling, and usage output
- appimage: fix the container image for debian 10 (buster) going end of life
  and appimagetool moving from the AppImageKit release assets, verify TLS
  certificates, fail on download errors, pin the Rust toolchain and the
  gnuplot and touchstone-tools versions, and fix the libnsl symlink for
  aarch64
- appimage: move Containerfile.appimage to appimage/Containerfile so all
  AppImage related files are in the appimage/ directory, mount the project
  at /src/dbt2 instead of /usr/local/src/dbt2, remove an unused copy of
  python, and stop masking failures when copying licenses and python into
  the AppDir
- package: exclude the .github directory from source packages
- build: default to a Release build when no build type is given, so the
  binaries are no longer compiled without optimization
- build: require CMake 3.10 or later, which the test suite already needed
  for ctest to report skipped tests as skipped instead of failed

v0.61.7 (2025-07-01)

- pgsql: fix load-stored-procs script logic for checking for necessary
  parameters when using C stored functions
- pgsql: fix build-db script to use "dbt2" for the database name by default
- run: fix logic that prevented a test in privileged mode

v0.61.6 (2024-09-09)

- Fix exit bug when building AppImage outside of the container
- Update man page make rules to match docutils v0.21.1 set since v0.61.2
- Add test-db-param script for database parameter testing example
- pgsql: remove hard coded set -x in load-db script accidentally committed in
  v0.61.5 release
- Fix run script configuration so that connection_delay can be set per driver

v0.61.5 (2024-08-19)

- build: add --data flat to specify where datagen will create flat files when
  not doing a streaming load
- mysql: build-db minimal fixes to work with 8.0
- mysql: fix payment sp out_w_city size to match table definition
- driver3: minimal fixes to work with MySQL 8.0 stored procedures
- test-connection-scaling: add --start --stop --step flags to control range or
  testing
- Add -g flag to build script to specify whether flat files need to be
  generated for any database loading that is not streaming data
- mysql: refactor script flags for handling socket path to match MySQL binaries
- build: add --mysql-stored-procedures to specify location of MySQL stored
  procedures
- Minimal updates running against MySQL 8.0 in a 1-tier client-server
  configuration with socket files
- mysql delivery stored procedure: add use of FOR UPDATE and missing ORDER BY
- mysql payment stored procedure: use of of FOR UPDATE and missing c_data
- pgsql: refactor automatic database creation logic to use template1
- AppImage: add missing perl modules for flame graphs
- AppImage: add, again, python libraries for rst2html5 that were accidentally
  removed v0.61.3.
- AppImage: bump touchstone-tools to v0.9.1
- generate-report now relies on touchstone-tools v0.9.1 to generate flame
  graphs
- build: add --parallelism flag to limit processes used for data loading

v0.61.4 (2024-08-12)

- Fix run script but introduced in v0.61.3
- AppImage: add missing libraries for dbt2 binaries
- Add test-connection-scaling script for performance testing example
- AppImage: include PostgreSQL C stored functions, but needs to be manually
  extracted and installed
- pgsql: add pgsql-drop-stored-procs script to remove stored functions

v0.61.3 (2024-08-08)

- Allow tests to run if rsync is not installed, except in cases where the
  primary metric would not be calculated correctly
- Fix district to delivery typos in transaction rate chart
- pgsql: parallelize index creation
- replace semicolons (;) returned from pg_config with spaces in the build
  system, needed with newer pgsql releases
- AppImage: revert linuxdeploy tool updates back to appimagetool
- AppImage: bump touchstone-tools version to v0.9.0
- AppImage: bump dbttools version to v0.5.1
- AppImage: bump psql version to v11.22
- AppImage: fix toml version to 0.2.3
- AppImage: fix docutils version to 0.21.2
- clang-format: never sort include directives

v0.61.2 (2024-04-01)

- Actually check it driver processes have exited, instead of sleeping the
  expected length, before killing client processes

v0.61.1 (2024-03-19)

- Fix post-process unit test for sqlite3
- Remove SAPDB support
- Add --rows-per-commit to `build` script to pass on through to database
  specific scripts to pass to datagen.
- Install python into the AppImage again for easier management of the
  environment and dependencies of python packages
- Fix AppImage use of rst2html5 with manual override of !# in rst2html5 to use
  python in the AppImage environment
- Build Pango for AppImage with reduced dependencies
- Bump touchstone-tools version to v0.8.0 in AppImage

v0.61.0 (2024-03-14)

- Support TOML configuration files for executing tests with `run` script
- Update `run` script to use PID files to stop processes instead of killall
  with program names
- Refactor `run` script output
- Reorganize documentation

v0.60.0 (2024-02-29)

- driver3 will now continually attempt to retry connecting to the database
  for the duration of the test if the database connectivity code returns a
  RECONNECT code
- libpq interface now returns a RECONNECT code if a PGRES_FATAL_ERROR is
  returned from any database call
- Add -retry-delay flag to driver3 to adjust the delay between
- Remove lingering hard coded fontconfig path from AppImage
- Fix check for existing database in pgsql-create-db
- Use CREATE DATABASE SQL statement instead of createdb binary in
  pgsql-create-db
- Use VACUUM SQL statement insetead of vacuumdb binary in pgsql-build-db
- Remove unnecessary binaries from AppImage
- Create AppImage on Debian 10 (buster), previously Ubuntu 14.04 (Trust Tahr)
- Bump minimum CMake version to 3.5 per deprecation warnings
- Use Linux system call to get thread id instead of using the thread's address
- Fix `run` script execution of stats and profile collection for 1-tier tests
- Add --row-per-commit to datagen to control the number of rows loaded before
  committing when directly loading a database

v0.53.10 (2024-02-22)

- Fix pgsql-load-db to not start multiple processes for single partition data
  loading, which weren't doing anything
- Parallelize some of the plotting in the generate-report and pgsql-report
  scripts
- psql: run TRUNCATE and COPY within a transaction if data is not partitioned
- Use linuxdeploy to create AppImage
- Build gnuplot explicitly disabling unnecessary options for AppImage
- Now only installing psql into AppImage
- Install touchstone-tools v0.7.3 into AppImage
- Remove `activate` script in favor of just executing AppRun
- Fix pgsql-load-stored-procs to install from AppImage by default when run from
  the AppImage
- PostgreSQL load scripts are now BDR aware

v0.53.9 (2024-02-07)

- Fix pgsql-create-db logic for checking if the database already exists

v0.53.8 (2024-01-08)

- Fix test for touchstone tools in "run" script

v0.53.7 (2023-09-29)

- Remove dated psql scripts
- psql: Do not attempt to create database if it already exists, so that errors
  due to a lack of permissions to create database can be effectively trapped
- Add --tablespaces option to dbt2-build script to specify where tablespace
  devices are mounted or symlinked
- Fix handling of tablespace flag for creating tables when using
  dbt2-pgsql-build-db

v0.53.6 (2023-09-04)

- driver3 now processes -L flag to limit number of connections by limited the
  number of processes forked
- pgsql-build-db: fix execution of pgsql-load-db and pgsql-create-index so
  that parameters are handled correctly when the -l argument is not used

v0.53.5 (2023-08-25)

- Handle host names greater than 31 characters, now up to 255.
- Fix detection of touchstone tools for collecting database stats

v0.53.4 (2023-07-11)

- Fix version flag usage with AppImages
- Add OpenSSH to AppImage
- Fix dbt2-run --client-connections= command line handling
- Add ssh to the AppImage

v0.53.3 (2023-06-29)

- Update touchstone tool commands to use "ts", enabling use of ts-tools
  AppImage, requires at minimum touchstone-tools v0.6.x
- Update scripts to use "dbt2" where appropriate, enabling use of dbt2 AppImage
- Fix handling of -altered flag in "run" script for driver mode 1
- Bump touchstone-tools version to v0.7.1 for gathering postgresql stats
  supporting v15
- Restrict AppImage "activate" script to bash shells

v0.53.2 (2023-06-19)

- Quiet sqlite3 post-process script from displaying an error when there are no
  New Order transactions
- Rename post-process.sql to post-process.sqlite3
- Update AppImage container file to use Ubuntu 14.04
- Add missing libraries to AppImage for gnuplot
- Add fonts to Appimage for gnuplot
- Replace readlink with realpath
- Remove dependency on bc from sqlite3 post-process script

v0.53.1 (2023-05-20)

- AppImage checks for existing LD_LIBRARY_PATH before updating
- Add missing libraries for gnuplot to AppImage
- Fix installation of dbt2-build man page
- Update dbt2.desktop syntax for aarch64 AppImage
- Add "activate" script to AppImage

v0.53.0 (2023-05-17)

- Add "report" script to handle both post-process and generate-report scripts
- Update AppImage to use touchstone-tools v0.5.2
- Update format of transaction summary output
- Update "build" and "run" to use "dbt2" command
- Quiet find commands in generate-report
- Update "run" script to pass on user and port information to ts-pgsql-stat
- Add quick-start section to documentation

v0.52.0 (2023-04-30)

- Use profiling scripts from touchstone-tools to collect readprofile, oprofile,
  or perf if requested and available
- Add command line flag to pgsql-load-stored-procs and pgsql-build-db to
  specify alternative location for pl/pgsql stored functions
- Rename run-workload script to run
- Update run script to use touchstone-tools v0.5.1
- Refactor run logic for handling 1-tier, 2-tier, and 3-tier testing test
  execution and stats collection.
- Remove "easy" script and instead make its parameters the default execution
  method, thus breaking down the traditional benchmark specification behavior
  into additional options
- Refactor option handling to incorporate long parameter names
- Add "run" script man page.
- Add "build" script to simplify running database build commands, with man page

v0.51.0 (2023-04-25)

- Add "version" script to show kit version and version of software that may be
  used by the kit
- Update AppImage to install dbttools v0.5.0 for its version information
  reporting, and updated reporting scripts
- Use .svg file for AppImage; remove .png file.
- Use ARGV0 instead of hard coding name in AppRun
- Remove Julia version of dbt2-post-process
- Add SQLite3 version of dbt2-post-process
- Calculate type 1 quantiles
- Rename container directory to tools
- Use touchstone-tools v0.4.2 for gnuplot based sar, pidstat and postgresql
  stats plotting
- Remove dbt2-sysstat in favor of touchstone-tools ts-sysstat version.
- Update general and postgresql report generation based on touchstone-tools
  differing chart filenames and directory layout
- Stop generating PDF reports with pandoc unless specified to save time
- Remove sar post-processing since ts-sysstat handles that
- Move profiling, stats and information collection into the db directory for
  1-tier test execution with run-workload script
- Remove postgresql stats collection in favor of touchstone-tools ts-pgsql-stat
- Update appimage container file with dbttools v0.5.0 and touchstone-tools
  v0.4.2
- Add OS memory paging charts to report; previously omitted
- Remove Julia from the AppImage.

v0.50.1 (2023-03-03)

- Update README with correct DBT Tools version v0.4.0

v0.50.0 (2023-02-28)

- Stop forking plot generation when generating reports since this may cause the
  system to run out of memory
- Update container scripts to use -u flag, per changed in v0.49.0
- Set ARCH to x86_64, if not otherwise specified, for creating AppImage
- Fix generate-report bug where pidstat.txt was not being processed to create
  pidstat.csv files
- Fix generate-report HTML and PDF generation logic where .rst and .html files
  were not being processed correctly
- Fix generate-report handling of identifying driver and client processes
- Rewrite rst2html5.py's #! back to /usr/bin/env python3 for the AppImage
- Post processing (post-process) in R now reports p-value for visual
  inspection of goodness of warehouse distribution, as well as district
  distribution per warehouse, as opposed to displaying the raw counts; also
  added to Julia version
- Add tools to creating flame graphs to the AppImage
- Require DBT Tools (dbttools) v0.4.0
- Add perl to AppImage

v0.49.1 (2023-02-17)

- Update pgsql-build-db to take database name as a command line argument
- Update to post-process script to install Julia packages only after verifying
  the Julia version of the script exists
- Add Z flag for mounting source directory when building the AppImage with
  container/build-appimage for shared volume labeling

v0.49.0 (2023-02-09)

- Fix use of ignore file for podman use
- Allow user to specify container engine
- Add some C directives to support building on older C tool chains, in
  particular CentOS 7
- Add AppImage files for creating standalone single binary with limited
  functionality
- Add Podman files for creating an AppImage
- Convert doc/ files to reStructuredText
- Reconstruct Changelog of information prior to v0.8 and remove old saved CVS
  ChangeLog
- Convert DBMS and OS READMEs to reStructuredText and incorporate them into the
  the doc/ directory
- Convert INSTALL to reStructuredText with updated instructions
- Reorganized PostgreSQL, SAP DB, and SQLite specific details from the user's
  guide into their respective section
- Update the user guide
- Update PostgreSQL documentation
- Build CockroachDB support only if PostgreSQL 11+ is available since
  pg_type_c.h is required for binary mode support
- Fix datagen partitioning logic
- Add tests to verify datagen partitioning correctness
- Add test to check output of post-process
- Port post-process script from R to Julia
- Distribute Julia and package post-process package dependencies in AppImage
- Driver automatically sets wmin and wmax to 1 and max warehouses, resp, if not
  specified on the command line
- Add "easy" script for simple testing with driver3 that runs without keying or
  thinking time.
- Add dates to ChangeLog
- Make plpgsql stored functions the default for PostgreSQL for ease of use, as
  opposed to performance reasons, but same extra steps as before can still be
  used to load C stored functions
- Reverse use of unprivileged -u flag to specified whether user has privileges
  for ease of use; e.g. by assuming that it is easier to not restart the
  database system unless the user knows they have privileges to do so

v0.48.7 (2022-12-02)

- Fix white space trimming of scale factor in report generator

v0.48.6 (2022-12-01)

- Fix calculation of ramp up time when processing multiple mix files
- Fix driver3 ramp up and stop time calculations
- Fix use of ignore file for container use

v0.48.5 (2022-11-28)

- Increase the buffer size of sname to accommodate hostnames longer than 64
  characters
- Change how throughput, duration, unknown errors, and ramp up time is
  displayed
- Add scale factor and database version to report
- Stop checking known hosts for ease of testing in run-workload script
- Update container scripts to prefer podman
- Add instructions on how to use podman to test scripts
- Use Fedora instead of Debian in container scripts
- Fix calculation of driver rampup time when using driver3

v0.48.4 (2022-11-02)

- Fix some scripting bugs in collecting PostgreSQL database stats
- Stop throwing errors from missing docutils or pandoc in report generation

v0.48.3 (2022-06-28)

- Create detailed-summary.rst in the results directory instead of current path

v0.48.2 (2022-06-10)

- Add separate CockroackDB load-db script
- Fix setting the database port for PostgreSQL and MySQL in the driver3
- Update Docker scripts to support CockroachDB
- Update CockroackDB load-db script to be single stream and have an adjustable
  rate on how many warehouses to load before committing
- Add separate YugabyteDB load-db script to be single stream and have an
  adjustable rate on how many warehouses to load before committing
- Update Docker scripts to support YugabyteDB
- Fix libpq debug printing of time stamps

v0.48.1 (2022-05-10)

- Update PostgreSQL report script
- Update Docker helper scripts to use Makefile.cmake
- Update run-workload with -F flag to control number of database connections
  per processor for driver3
- Update post-process script to take a list of mix files to process
- Use dbttools generic transaction rate plotting script
- Check for rst2html5 in additional to rst2html5.py
- Switch distro used in Dockerfile from Rocky to Debian

v0.48.0 (2022-04-25)

- Clean up CPack rules
- Fix logic issue when starting PostgreSQL database after initialization
- Replace HTML generated with reStructuredText, which can be converted to HTML
  and PDF, or other formats.
- Fix how OS information is saved
- Add per process statistics to report
- Generate flame graphs for report
- Add undocumented support for driver3 in run-workload and reporting scripts
- Reorganize where data is saved when using run-workload script
- Move database system specific reporting into database specific reporting
  script
- Rename helper Makefile to Makefile.cmake

v0.47.0 (2022-03-30)

- Add experimental multi-process driver2 that uses event callbacks (libev)
- Add new standalone driver (driver3) combining event callbacks with
  multi-process parallelism model, replacing previous thread based standalone
  driver
- Parallelize PostgreSQL vacuuming when building the database
- pgsql: Disable autovacuum on a table while it is being loaded

v0.46.2 (2022-03-29)

- Fix post-process script to ignore transaction errors in statistical
  calculations

v0.46.1 (2022-03-24)

- Fix data generator quoting bug introduced in v0.46.0
- Clean up client usage message with additions in v0.46.0
- Fix inconsistencies with handling output directory
- Reformat driver usage to be consistent with other programs
- Clean up datagen usage message
- Fix post-process script to correctly handle merged mix logs

v0.46.0 (2022-03-07)

- Refactor client code for libpq to automatically build support if libraries
  exist
- Remove support for Drizzle; discontinued since 2016
- Allow specifying partitioning options in PostgreSQL data load script
- Refactor client code for sqlite3 to automatically build support if libraries
  exist
- Refactor client code for MySQL to automatically build support if libraries
  exist
- Refactor client code for unixODBC to automatically build support if libraries
  exist
- Fix some issues in CockroachDB transaction code.
- Use function pointers for managing output of timestamps in datagen
- Replace macros with functions in datagen

v0.45.1 (2022-03-02)

- Rename PostgreSQL dbt2 extension's SQL file

v0.45.0 (2022-03-01)

- Fix memory clobbering bug introduced when using libpq functions in binary
  mode
- Increase size of additional data structures for UTF-8

v0.44.0 (2022-02-21)

- Made some changes to Docker scripts to help customize PostgreSQL version used
- Add scripts to build a database on CockroachDB
- Add transaction logic to the client for CockroachDB
- Update workload scripts for CockroachDB
- Add scripts to build a database on YugabyteDB
- Update libpq client code to transmit and receive data in binary mode.

v0.43.0 (2022-02-07)

- Adopt Artistic License 2.0
- Fix run-workload script to work on single tier configuration, bugs
  introduced v0.42
- Driver now logs w_id and d_id per transaction
- Fix segmentation fault when limiting the total number of driver threads
- Increase buffer size for the database hostname in the client to 64 bytes
- Add -y flag to run-workload script to specify database is a service
- Fix driver's rampup calculation when limiting total emulated terminals
- Update Dockerfile to use Rocky Linux instead of CentOS
- Fix driver execution when limited to a single terminal

v0.42 (2021-10-26)

- Add Docker files and scripts to test building and evaluate a PostgreSQL
  database.
- Update for CMake policy CMP0037.
- Replace obsolete bzero with memset
- Replace obsolete gethostbyname and gethostbyaddr with getaddrinfo
- Use PCG Fast pseudo random number generator
- Update data generator to use UTF-8
- Refactor datagen parallelism
- Update PostgreSQL pl/pgsql stored functions
- Support basic 3-tier execution with run-workload script
- Refactored altered mode driver execution with finer grained controls

v0.41 (2010-12-01)

- Renamed the 'scripts' directory to 'bin'.
- Added SQLite support.
- Renamed all the script with 'dbt2-' prefixes to facilitate a better
  'make install' in the future.
- Use cmake over autotools.
- Added Drizzle support.
- Removed use of Test::Parser and Test::Presenter perl modules and require use
  of dbttools instead.
- Use R for post processing.
- Run scripts capable of running multiple instances of clients and drivers.
- Direct load data for Postgres.

v0.40 (2006-11-27)

- Various fixes with all the scripts.
- Ability to run in a two-tier environment.
- Added scripts to run a test against a pull from PostgreSQL's CVS repository.
- Fixed 90th percentile and steady state metric calculations.
- Added support for pgpool.
- Fixed memory violation with datagen.

v0.39 (2006-10-03)

- Merged run_mysql.sh script into run_workload.sh script.
- Various fixes with all scripts.
- Fixed up autoconf scripts.  Now database libraries aren't linked to datagen.

v0.38 (2006-09-29)

- Various fixes with all scripts.
- Improved configure.ac to use pg_config for PostgreSQL.
- Updated PostgreSQL scripts to work with PostgreSQL 8.1 and newer.
- Updated PostgreSQL stored functions for 8.1 and newer.

v0.37 (2005-11-02)

- Removed use of the $SHELL environment variable so the kit is more portable.

v0.36 (2005-10-20)

- Added a check for ulimit -n.
- Fixed the response time calculations to be after all threads have started.

v0.35 (2005-10-10)

- Critial fix for the data generator.
- Critial fix for the Payment transaction when using MySQL.
- Changed the database integrity check into a command line option.

v0.34 (2005-09-27)

- Calculate 90th percentile reponse times in scripts/mix_analyzer.pl.
- Fix up in run_mysql.sh.in.

v0.33 (2005-08-31)

- Script improvements.
- Fixed the Makefile for funcs.so.
- Collect callgraph data with oprofile.  Only really works for ia32 and ARM
  due to oprofile support.

v0.32 (2005-08-11)

- Updated the autoconf scripts to not fail if pg_autovacuum is not found.
  With 8.1 coming up, it is part of the backend now.
- Fixed scripts/pgsql/analyze_stats.pl to work correctly.

v0.31 (2005-07-25)

- Modified the table creation and index creation scripts so that the primary
  keys are created as part of the index builds.
- Modified the autoconf scripts so that using odbc libraries is a feature that
  needs to be enabled with the database that will be tested.
- Fixed some compiler warnings and errors when building against odbc.
- Fixed a bug in src/libpq/dbc_payment.c where the wrong parameter was being
  passed.

v0.30 (2005-06-21)

- Added x- and y-axis lines for the PostgreSQL database charts.
- Fixed the autoconf files to include files for MySQL with no stored procedures.

v0.29 (2005-06-17)

- Removed default configure to PostgreSQL in configure.ac.  It will prompt for
  the database to be specified if none is given.
- Tidied up the autoconf files a little more.
- Added x- and y-axis lines to scripts/notpm.input.
- Fixed mix_analyzer.pl to stop counting failed transactions as successful
  transactions.

v0.28 (2005-05-31)

- Improved configure.ac to check for headers for PostgreSQL.
- Fixed Makefile.am to include the README-* files in a 'make dist'.

v0.27 (2005-05-24)

- Fixed Makefiles for 'make dist'.
- Modified scripts for PostgreSQL so that tablespaces can be used.
  README-POSTGRESQL has been updated with notes on how to use tablespaces.

v0.26 (2005-05-18)

- Improved configure.in to set executable permission onfiles it generated.
- More fixes related to setting the stack size in the C programs.
- Added headers to files where previously missing.

v0.25 (2005-03-01)

- PostgreSQL requires pg_autovacuum now, but you could edit the kit so it can
  still run without it.
- Removed results and moved its functionality into mix_analyzer.pl.
- Now you don't need to modify pg_config_manual.h in order to use the kit with
  PostgreSQL.
- Various little script fixes and enhancements.
- Fixed a problem with getting plans for PostgreSQL during the run.
- Stock setting stack size in the shell scripts.  Setting the stack size where
  appropriate in the C programs.
- gen_html.sh is now used automatically to generate results in HTML.
- Other misc. script fixes and enhancements for PostgreSQL.

v0.24 (2004-12-02)

- Changed the format of the vmstat data files that are graphed.
- Fix for results.c for some 64 bit platform.

v0.23 (2004-06-25)

- MySQL support.
- Minor bug fix with generating data for the payment transaction.

v0.22 (2004-03-24)

- Build environment updates

v0.21.1 (2004-02-04)

- User Guide updates.

v0.21 (2003-11-18)

- Fixed a bug in in _accept().
- Updated the user's guide.
- Changed the column data types in various tables for performance.

v0.20 (2003-09-26)

- Fixed a bug in the New-Order transaction that was introduced into v0.19
  by accident.

v0.19 (2003-09-25)

- Fixed a query in the New-Order transaction to reduce the number of rollbacks.

v0.18 (2003-09-05)

- Fixed a bug in the driver regarding the assignment of warehouse id's to each
  thread.

v0.17 (2003-09-04)

- Fixed a bug in the New-Order transaction in the PostgreSQL C function.
- More work on the run_workload.sh script.

v0.16 (2003-08-19)

- Replaced the OpenOffice text documents with LaTeX versions.
- Fixed the rollback logic for the New-Order transaction with SAP DB.
- Added backup and restore scripts for PostgreSQL.

v0.15 (2003-08-08)

- Fixed the rollback logic in the New-Order transaction.
- Added more status output in the client.
- Fixed a bug in get_node that cause memory violations for multiple
  connections.
- Really fixed the stored procedures for SAP DB 7.3.0.25 this time.
- Fixed logic in New-Order that screwed up the stock table.

v0.14 (2003-08-08)

- Removed nonblocking socket code.

v0.13 (2003-08-06)

- Fixed the default stored procedures to work with 7.3.0.25.
- Undid code to use nonblocking sockets, I just don't know how to do it right.
- Fixed a bug with get_node() in listener.c.
- Fixed the sleep control for the connection rates between components in
  a multi-tier environment.
- Added more status output in the client.

v0.12 (2003-08-05)

- Started using nonblocking sockets for communication with the client.
- Added some more status information to the client.
- Control the sleep time between openning connections to the client in
  a multi-tier environment.  Maybe cause problems when attempting to drive
  many many users.

v0.11 (2003-08-04)

- Fixed db_setup.sh.in for SAP DB to generate the correct data.
- Fixed the tools directory Makefile.in for SAP DB.

v0.10 (2003-08-01)

- Changed default altered mode to 0.
- Cleaned out lingering CVS directories.

v0.9 (2003-08-01)

- Fixed funcs.c (the stored functions) to correctly escape a couple more
  characters.
- Fixed the random seeding of threads.
- Fixed passing of transaction status in the multi-tier environment.

v0.8 (2003-07-31)

- Fixed the client and driver to work in a multi-tier environment with
  PostgreSQL.

v0.7 (2003-06-19)

- Add PostgreSQL support
- Add PostgreSQL setup README
- Update configure rules to select database connectivity library
- Refactor commit/rollback logic in client code
- PostgreSQL pl/pgsql stored functions updated to return record sets

v0.6 (2003-04-30)

- Refactor support for large file support on linux
- Fix bug with order_line data generation
- Fix bugs with altered execution mode
- Enable support on FreeBSD
- Update documentation
- Use thread-safe localtime
- Fix bug in get_random()
- Log each transaction's rate and unknown errors
- Refactor summary report; do not display transactions per seconds in addition
  to minutes
- Refactor datagen command line parsing to use getopt

v0.5 (2003-02-28)

- Fix keying and thinking time override handling
- Add ability to update SQPDB table statistics
- Handle SAPDB SQL error codes
- Refactor transaction send/receive code
- Add debug code to track thread states
- Remove stock table cardinality override
- Add script to capture SAPDB execution plans
- Refactor SAPDB index names
- Support setting output directory for datagen
- Allow terminals per warehouse to be overridden
- Refactor SAPDB stored procedures
- Fix SAPDB create index script
- Fix bug in SAPDB stock level transaction
- Add scripts to collect SAPDB statistics
- Use primary keys, as opposed to regular basic indexes
- Hard code large file support on linux
- Support unixODBC
- Add script to capture system stats
- Add scripts for managing SAPDB
- Create a standalone, combined 1-tier client/driver binary
- Update SAPDB restore scripts
- Add altered execution mode
- Update indexes in SAPDB tables
- Fix bug in SAPDB delivery transaction
- Add ISOLATION levels to SAPDB transactions
- Now logging transaction error counts
- Now tracking rollbacks
- Run altered mode by default
- Update SAPDB transaction code to spec
- Fix new order transaction calculations
- Add script to post process sar for gnuplot
- Refactor script names
- Calculate rollbacks per transaction
- Create user's guide
- Allow seed to be overridden at command line
- Fix bug with generated warehouse references to warehouses other than assigned
  warehouse

  v0.4 (2002-08-21)

- First working functionally complete kit
- Fix SAPDB customer table definition
- Allow keying and thinking time overrides
- Allow warehouse range to be specified in driver

v0.3 (2002-08-15)

- Implement transaction mix, keying time and thinking time logic
- Refactor code used for debugging transaction data
- Fix SAPDB table definitions to use correct data sizes
- Refactor use of global variables
- Refactor Makefiles

v0.2 (2002-08-06)

- Create a transaction test program
- Add transaction queue framework

v0.1 (2002-07-23 )

- Initial version of data generator, SAPDB transaction logic, client, and
  scripts
- Fix bug in accepting tcp/ip connections
- Handle dropped tcp/ip connection in the client
