Releases: prestodb/pbench
Releases · prestodb/pbench
v1.2.3
What's Changed
Fixes
- Fix SQL identifier injection in table summary queries — column and table names are now properly quoted
- Fix error handling:
RowsAffected, CSV write errors,queryOutputFile.Close(),Float64Timenull JSON - Propagate parent context in timeout wrappers instead of using
context.Background() - Add HTTP client timeout (30s) for Pulumi API calls
- Fix unused local variable (#82)
- Fix explicit returns mixed with implicit (fall through) returns (#81)
- Fix delete_run query
Improvements
- Add pre-commit hook for fmt, vet, staticcheck, tests, and coverage
- Exclude benchmarks from release tar
Dependencies
- Update presto-go-client to v2.1.1 (renamed
query_json→queryjson) - Bump filippo.io/edwards25519, golang.org/x/crypto, and other transitive deps
Performance
- Add new version of stream run for 10TB from perf team (#78)
1.2.2
Switch to prestodb/presto-go-client/v2 (v2.0.0). Bump Go to 1.26.1. Bump GitHub Actions to Node.js 24 compatible versions.
1.2.1
genconfig Improvements
- Generalized to use generic maps instead of hardcoded Go structs — adding new config fields no longer requires Go code changes, just JSON and template updates
.genconfigignoresupport — directories containing this marker file are skipped during config generation, allowing manually maintained configs to coexist with auto-generated ones- Skip empty template outputs — templates that render no output no longer create empty files
- New template functions:
mul,add,sub,div,min,max,floor,ceil,set,default,seq,hasSuffix,hasPrefix,contains - Repeatable
-pflag for stacking multiple parameter files (later overrides earlier) - Computation logic moved from Go into
.preludetemplates usingset(), making config generation fully data-driven - Spark template improvements: conditional
generate_spark_configflag, SSD local dirs, GPU support
Bug Fixes
- Disable CGO for cross-compiled builds to produce static binaries that run on older Linux distros (e.g., Debian Bullseye with glibc 2.31)
1.2
New Features
- Parallel stream execution — stream_count parameter runs multiple parallel instances of a stage, each with its own random seed for deterministic replay
- Directory expansion in query_files — entries pointing to directories are expanded to their contained files at execution time (after pre_stage_scripts), enabling dynamic query generation workflows (e.g., dsqgen)
- no_random_duplicates — shuffled random execution that cycles through all queries before repeating any
- Shell script environment variables — PBENCH_STAGE_ID, PBENCH_OUTPUT_DIR, PBENCH_QUERY_FILE, PBENCH_QUERY_ID, PBENCH_QUERY_ERROR, etc. are injected into all script hooks
- pre_query_scripts — run scripts before each individual query execution
- Auto-detect catalog/schema changes — child stages with different catalog/schema/timezone automatically create a new client
- Custom stage IDs — id field in stage JSON
- Generalized genddl — supports TPC-H and custom workloads, not just TPC-DS; paths resolved relative to config file
- Glue catalog benchmark configs for Java/native engines
Bug Fixes
- Fix data race on RandSeedUsed in concurrent stream goroutines
- Fix post_query_cycle_scripts not running on abort
- Fix concurrency bugs in stage package (multiple race conditions)
- Fix SQL parameter mismatch in loadjson ORM
- Fix cold/warm run value initialization and inheritance
- Fix query forward tool synchronization issues
- Fix x/net security vulnerability
Improvements
- Migrated from internal presto package to presto-go library
- CI pipeline with tests, coverage (50%+ threshold), linting, vulnerability scanning, and semantic commit checks
- GitHub Actions release workflow with approval gate
- Comprehensive test coverage for genconfig, queryplan, round, genddl
- Staticcheck lint cleanup across codebase
1.1
November 2024
v1.0
Update README.md