Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
4f8bff8
[Native] Advance Velox
aditi-pandit Sep 19, 2025
f30a72a
CI: Fix presto-on-spark native tests for PRs that only modify docs
hantangwangd Sep 21, 2025
d4f7243
Add iceberg error checks for HiveTableOperations commit functions
infvg Sep 9, 2025
ed50bf0
Fix static scan issue by updating AES cipher mode
Dilli-Babu-Godari Jul 23, 2025
6bc7987
Fix RowExpressionOptimizer's BuiltInNamespaceRewriter to handle neste…
pdabre12 Sep 19, 2025
0374d22
[native] Advance velox
amitkdutta Sep 22, 2025
86ad402
[Docs]Improve documentation for histograms
hantangwangd Sep 21, 2025
1762f52
[native] Fix incorrect initialization of 'folly::Promise' object
lingbin Sep 19, 2025
2da5275
feat(iceberg): Enable alter tbl-properties to manage old metadata files
hantangwangd Sep 23, 2025
6243a1b
Make addSplit update pending split info immediately.
spershin Sep 23, 2025
850cc31
Use NodeAssignmentStats::getQueuedSplitsWeightForStage in task-based …
spershin Sep 22, 2025
089871a
Resolve "No suitable driver found" error in DB-based SPM
imjalpreet Sep 21, 2025
322f60a
Add documentation around releases
tdcmeehan Aug 11, 2025
15062a8
Add support for setting sessionStartTime in VeloxQueryConfig.
kgpai Sep 19, 2025
8c37a14
Add support for setting sessionStartTime in VeloxQueryConfig.
kgpai Sep 19, 2025
a3d9683
Add a check for CVEs present in new transitive dependencies
tdcmeehan Sep 19, 2025
254c5d4
Replace javax.inject imports with jakarta.inject in presto-db-session…
infvg Sep 21, 2025
63ac5c6
Add new ConnectorMetadata.finishDeleteWithOutput() to allow DELETE qu…
ghelmling Sep 23, 2025
1f99afc
Add more task scheduling runtime stats
kewang1024 Sep 16, 2025
4b7b4b3
Rewrite Geometry to Varchar type for verifier temp tables (#26140)
HeidiHan0000 Sep 25, 2025
d50763e
Fix local presto server start on latest master
agrawalreetika Sep 24, 2025
ca0118c
[native] Enable sql invoked function tests
pramodsatya Sep 23, 2025
ec07815
Free more space for product-tests-specific-environment2
unidevel Sep 26, 2025
1b86fc3
[pos] Refactor catalog config to be inside NativeExecutionConfigModule
tanjialiang Sep 23, 2025
60416ba
Fix constant folding for SpecialFormExpression and LambdaDefinitionEx…
pdabre12 Sep 26, 2025
9ea6d39
Analysis for table and descriptor arguments.
mohsaka Sep 18, 2025
62bf52b
[presissimo]refactor: used estimateFlatSize instead of BaseVector::in…
xiaoxmeng Sep 26, 2025
ce7ce2e
Fix druid read when column key has null values
agrawalreetika Sep 24, 2025
69900c0
Allow semantic exception during function resolution (#26158)
kevintang2022 Sep 28, 2025
b2fbfc2
[native] Advance velox
amitkdutta Sep 28, 2025
368bcc7
Fix connector.name in document
agrawalreetika Sep 28, 2025
55f858b
Add SQL Support for MERGE INTO In Presto #20578 (parser)
acarpente-denodo Sep 26, 2025
4a38843
Remove deprecated comments from TableHandle.java
tdcmeehan Sep 26, 2025
0b43b6a
Add x509 certificates list to identity class (#26128)
kevintang2022 Sep 29, 2025
212f9c0
Refactor: Move dynamic_registry and FunctionMetadata to functions
Joe-Abraham Sep 29, 2025
a0c4008
Added Presto Java dev container
mblanco-denodo Jun 17, 2025
66d31ef
Fix subheading formatting in develop/functions.rst
steveburnett Sep 29, 2025
7c85a98
Changes to generate jks file programatically to enable ssl/tls in hms
bibith4 Jun 13, 2025
6ec7250
Specify system access control for testing presto server (#25972)
kevintang2022 Sep 30, 2025
324020c
Make SplitRunner threads daemon threads
natashasehgal Sep 29, 2025
6ef3d26
refactor(iceberg): Remove unnecessary column type translation method
hantangwangd Sep 28, 2025
6416a29
Disable UpperCase conversion when case-sensitve flag is enabled
agrawalreetika Jul 25, 2025
d23cee8
Add quotes to column names for renameColumn and dropColumn in BaseJdb…
agrawalreetika Jul 25, 2025
dd1cf90
Disable UpperCase conversion when case-sensitve flag is enabled for O…
agrawalreetika Jul 28, 2025
48f758b
Fix resource groups docs
pratyakshsharma Sep 2, 2025
0ba1059
[sv] Fix file based json udf tests
tanjialiang Sep 30, 2025
fb866da
Upgrade org.jetbrains:annotations version 26.0.2
nishithakbhaskaran Sep 22, 2025
515d1bd
chore(ci): Add action and documentation for semantic commits (#26122)
tdcmeehan Oct 1, 2025
54e1578
[maven-release-plugin] prepare release 0.295
prestodb-ci Oct 1, 2025
0502695
[maven-release-plugin] prepare for next development iteration
prestodb-ci Oct 1, 2025
deabb63
refactor(clickhouse): Remove unused code (#26067)
agrawalreetika Oct 1, 2025
3d60680
chore(connector): Upgrade com.google.api-client version to 2.8.0 (#26…
sumi-mathew Oct 1, 2025
58d11e0
feat(redis): Enable case-sensitive support (#26078)
bibith4 Oct 1, 2025
d7ca4d0
fix(iceberg): Correct fallback logic for column matching in ORC files…
hantangwangd Oct 2, 2025
37f83a5
[pos] Do not load function namespace managers on native executors (#2…
tanjialiang Oct 2, 2025
d297df5
fix(ci): Clear more space for Maven checks (#26216)
tdcmeehan Oct 2, 2025
182cd8c
build(native): Update Velox and fix build (#26209)
czentgr Oct 3, 2025
993944a
Prepare for next development iteration - 0.295-edge23
presto-release-bot Oct 3, 2025
027b8f1
feat(readers): Add session properties for small batch size mitigation…
HuamengJiang Oct 3, 2025
e3f24c5
revert: Prepare for next development iteration - 0.295-edge23 (#26220)
unidevel Oct 3, 2025
79fd472
Enable check query integrity permission check for all query types (#2…
kevintang2022 Oct 3, 2025
c3e2852
fix(ui): Handle null bigint values in query results table (#25715)
johallar Oct 3, 2025
2c63235
feat(httpclient): Log stats for reactor netty http client (#26211)
NikhilCollooru Oct 3, 2025
491f897
test: Add custom function tests (#25480)
pramodsatya Oct 3, 2025
5e22b9a
fix: Fix presto connector registration failure (#26226)
xiaoxmeng Oct 5, 2025
3837f97
refactor: Advance velox and update task creation to use disk … (#26232)
xiaoxmeng Oct 6, 2025
d3ef52e
feat(plugin): Add detailed stats for SAC calls
aaneja Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM ubuntu:24.04

# Install necessary tools
RUN apt-get update && apt-get install -y \
# Intellij IDEA dev container prerequisites
curl \
git \
unzip \
# Java 8 and 17 jdk
openjdk-8-jdk \
openjdk-17-jdk \
# for documentation
python3 \
python3-pip \
python3.12-venv \
fonts-freefont-otf \
xindy

6 changes: 6 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"name": "PrestoDB Dev Container",
"build": {
"dockerfile": "Dockerfile"
}
}
35 changes: 35 additions & 0 deletions .github/actions/maven-owasp-scan/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: 'Maven OWASP Dependency Check Scan'
description: 'Runs OWASP dependency check Maven scan with consistent settings'
inputs:
working-directory:
description: 'Working directory for Maven command'
required: false
default: '.'
owasp-version:
description: 'OWASP dependency check plugin version'
required: false
default: '12.1.3'
data-directory:
description: 'OWASP data directory path'
required: false
default: '$HOME/.owasp/dependency-check-data'
runs:
using: 'composite'
steps:
- name: Run OWASP dependency check
working-directory: ${{ inputs.working-directory }}
shell: bash
run: |
mvn org.owasp:dependency-check-maven:${{ inputs.owasp-version }}:aggregate \
-DskipTests \
-Dformat=JSON \
-DprettyPrint=true \
-DfailOnError=false \
-DossindexAnalyzerEnabled=true \
-DnvdApiAnalyzerEnabled=false \
-DnodeAnalyzerEnabled=false \
-DassemblyAnalyzerEnabled=false \
-DcentralAnalyzerEnabled=false \
-DnuspecAnalyzerEnabled=false \
-DnvdValidForHours=168 \
-DdataDirectory=${{ inputs.data-directory }}
41 changes: 41 additions & 0 deletions .github/workflows/conventional-commit-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Semantic Commit Check

on:
pull_request:
types:
- opened
- reopened
- edited
- synchronize

permissions:
contents: read

jobs:
semantic-pr:
concurrency:
group: ${{ github.workflow }}-semantic-commit-check-${{ github.event.pull_request.number }}
cancel-in-progress: true
name: Validate PR Title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@2d952a1bf90a6a7ab8f0293dc86f5fdf9acb1915 # v5.5.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
feat
fix
docs
refactor
perf
test
build
ci
chore
revert
misc
requireScope: false
subjectPattern: ^[A-Z].*[^.]$
subjectPatternError: |
The PR title subject must start with a capital letter and not end with a period.
8 changes: 4 additions & 4 deletions .github/workflows/maven-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
cancel-in-progress: true
steps:
- name: Free Disk Space
run: |
df -h
sudo apt-get clean
df -h
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with:
tool-cache: true
swap-storage: false
- uses: actions/checkout@v4
with:
show-progress: false
Expand Down
152 changes: 152 additions & 0 deletions .github/workflows/owasp-dependency-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
name: Maven OWASP Dependency Check
permissions:
contents: read
on:
pull_request:
workflow_dispatch:
inputs:
cvss-threshold:
description: 'CVSS score threshold for failing (7.0 = high/critical)'
required: false
default: '7.0'
type: string

jobs:
dependency-check:
runs-on: ubuntu-latest
env:
CVSS_THRESHOLD: ${{ github.event.inputs.cvss-threshold || '7.0' }}
OWASP_VERSION: '12.1.3'
steps:
# Checkout PR branch first to get access to the composite action
- name: Checkout PR branch
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Checkout base branch
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.sha }}
path: base

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
cache: 'maven'

- name: Get date for cache key
id: get-date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

- name: Restore OWASP database cache
uses: actions/cache/restore@v4
id: cache-owasp-restore
with:
path: ~/.owasp/dependency-check-data
key: owasp-cache-${{ runner.os }}-v${{ env.OWASP_VERSION }}-${{ steps.get-date.outputs.date }}
restore-keys: |
owasp-cache-${{ runner.os }}-v${{ env.OWASP_VERSION }}-
owasp-cache-${{ runner.os }}-

- name: Run OWASP check on base branch
uses: ./.github/actions/maven-owasp-scan
with:
working-directory: base
owasp-version: ${{ env.OWASP_VERSION }}
data-directory: $HOME/.owasp/dependency-check-data

- name: Save OWASP cache after base scan
if: steps.cache-owasp-restore.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: ~/.owasp/dependency-check-data
key: owasp-cache-${{ runner.os }}-v${{ env.OWASP_VERSION }}-${{ steps.get-date.outputs.date }}-partial

- name: Run OWASP check on PR branch
uses: ./.github/actions/maven-owasp-scan
with:
working-directory: .
owasp-version: ${{ env.OWASP_VERSION }}
data-directory: $HOME/.owasp/dependency-check-data

- name: Compare and fail on new CVEs above threshold
run: |
# Extract CVEs above threshold from both branches (CVSS >= $CVSS_THRESHOLD)
threshold="${{ env.CVSS_THRESHOLD }}"

# Validate report files exist
if [ ! -f base/target/dependency-check-report.json ]; then
echo "❌ Missing base report: base/target/dependency-check-report.json"
exit 1
fi
if [ ! -f target/dependency-check-report.json ]; then
echo "❌ Missing PR report: target/dependency-check-report.json"
exit 1
fi

# Validate report files are valid JSON
if ! jq empty base/target/dependency-check-report.json >/dev/null 2>&1; then
echo "❌ Malformed JSON in base/target/dependency-check-report.json"
exit 1
fi
if ! jq empty target/dependency-check-report.json >/dev/null 2>&1; then
echo "❌ Malformed JSON in target/dependency-check-report.json"
exit 1
fi

base_cves=$(jq -r ".dependencies[].vulnerabilities[]? | select((.cvssv2.score // 0) >= $threshold or (.cvssv3.baseScore // 0) >= $threshold) | .name" base/target/dependency-check-report.json | grep -E '^CVE-[0-9]{4}-[0-9]+$' | sort -u)
pr_cves=$(jq -r ".dependencies[].vulnerabilities[]? | select((.cvssv2.score // 0) >= $threshold or (.cvssv3.baseScore // 0) >= $threshold) | .name" target/dependency-check-report.json | grep -E '^CVE-[0-9]{4}-[0-9]+$' | sort -u)

# Find new CVEs introduced in PR
new_cves=$(comm -13 <(echo "$base_cves") <(echo "$pr_cves"))

if [ -n "$new_cves" ]; then
echo "❌ New vulnerabilities with CVSS >= $threshold introduced in PR:"
echo "$new_cves"
echo ""

for cve in $new_cves; do
echo "=================================================="
echo "CVE: $cve"
echo "=================================================="

# Find which dependencies have this CVE
jq -r '
.dependencies[]
| select(.vulnerabilities[]?.name == "'"$cve"'")
| "Module: " + (.projectReferences // ["root"])[0]
+ "\nDependency: " + .fileName
+ "\nPackage: " + (if .packages and .packages[0] then .packages[0].id else "N/A" end)
+ "\nDescription: " + (
[.vulnerabilities[] | select(.name == "'"$cve"'") | .description]
| unique
| join("\nDescription: ")
)
' target/dependency-check-report.json

echo ""
done

exit 1
else
echo "✅ No new vulnerabilities introduced"
fi

- name: Save OWASP database cache
if: always()
uses: actions/cache/save@v4
with:
path: ~/.owasp/dependency-check-data
key: owasp-cache-${{ runner.os }}-v${{ env.OWASP_VERSION }}-${{ steps.get-date.outputs.date }}

- name: Upload reports
if: always()
uses: actions/upload-artifact@v4
with:
name: owasp-reports
path: |
base/target/dependency-check-report.json
target/dependency-check-report.json
19 changes: 19 additions & 0 deletions .github/workflows/prestocpp-linux-build-and-unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ jobs:
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
run: |
source /opt/rh/gcc-toolset-12/enable
cp -r presto-native-tests/presto_cpp/tests presto-native-execution/presto_cpp/main/functions/dynamic_registry
echo "add_subdirectory(tests)" >> presto-native-execution/presto_cpp/main/functions/dynamic_registry/CMakeLists.txt
cd presto-native-execution
cmake \
-B _build/release \
Expand Down Expand Up @@ -126,6 +128,7 @@ jobs:
path: |
presto-native-execution/_build/release/presto_cpp/main/presto_server
presto-native-execution/_build/release/velox/velox/functions/remote/server/velox_functions_remote_server_main
presto-native-execution/_build/release/presto_cpp/main/functions/dynamic_registry/tests/

prestocpp-linux-presto-e2e-tests:
needs: [changes, prestocpp-linux-build-for-test]
Expand Down Expand Up @@ -328,43 +331,59 @@ jobs:
MAVEN_TEST: "-B -Dair.check.skip-all -Dmaven.javadoc.skip=true -DLogTestDurationListener.enabled=true --fail-at-end"
steps:
- uses: actions/checkout@v4
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'

- name: Fix git permissions
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
# Usually actions/checkout does this but as we run in a container
# it doesn't work
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}

- name: Download artifacts
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
uses: actions/download-artifact@v4
with:
name: presto-native-build
path: presto-native-execution/_build/release

# Permissions are lost when uploading. Details here: https://github.com/actions/upload-artifact/issues/38
- name: Restore execute permissions and library path
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
run: |
chmod +x ${GITHUB_WORKSPACE}/presto-native-execution/_build/release/presto_cpp/main/presto_server
chmod +x ${GITHUB_WORKSPACE}/presto-native-execution/_build/release/velox/velox/functions/remote/server/velox_functions_remote_server_main
# Ensure transitive dependency libboost-iostreams is found.
ldconfig /usr/local/lib

- name: Install OpenJDK17
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17.0.15
cache: 'maven'
- name: Download nodejs to maven cache
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
run: .github/bin/download_nodejs

- name: Maven install
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
env:
# Use different Maven options to install.
MAVEN_OPTS: "-Xmx2G -XX:+ExitOnOutOfMemoryError"
run: |
for i in $(seq 1 3); do ./mvnw clean install $MAVEN_FAST_INSTALL -pl 'presto-native-tests' -am && s=0 && break || s=$? && sleep 10; done; (exit $s)

- name: Run presto-on-spark native tests
if: |
github.event_name == 'schedule' || needs.changes.outputs.codechange == 'true'
run: |
export PRESTO_SERVER_PATH="${GITHUB_WORKSPACE}/presto-native-execution/_build/release/presto_cpp/main/presto_server"
export TESTFILES=`find ./presto-native-execution/src/test -type f -name 'TestPrestoSpark*.java'`
Expand Down
16 changes: 6 additions & 10 deletions .github/workflows/product-tests-specific-environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,9 @@ jobs:
steps:
- name: Free Disk Space
if: needs.changes.outputs.codechange == 'true'
run: |
df -h
sudo apt-get clean
rm -rf /opt/hostedtoolcache
df -h
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
with:
docker-images: false
- uses: actions/checkout@v4
if: needs.changes.outputs.codechange == 'true'
with:
Expand Down Expand Up @@ -108,11 +106,9 @@ jobs:
steps:
- name: Free Disk Space
if: needs.changes.outputs.codechange == 'true'
run: |
df -h
sudo apt-get clean
rm -rf /opt/hostedtoolcache
df -h
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
with:
docker-images: false
- uses: actions/checkout@v4
if: needs.changes.outputs.codechange == 'true'
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
- ":presto-main-base"
- ":presto-main"
- ":presto-mongodb -P ci-full-tests"
- ":presto-redis -P test-redis-integration-smoke-test"
- ":presto-redis -P ci-full-tests"
- ":presto-elasticsearch"
- ":presto-orc"
- ":presto-thrift-connector"
Expand Down
Loading
Loading