Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
89a3425
Initial commit
john-sanchez31 Feb 3, 2026
85de6c7
Oracle database connector
john-sanchez31 Feb 3, 2026
a52e3eb
tpch 1 demo added
john-sanchez31 Feb 3, 2026
6957a69
example modified
john-sanchez31 Feb 3, 2026
f3a0feb
oracle transform bindings base
john-sanchez31 Feb 4, 2026
68b8a5f
oracle test infrastructure
john-sanchez31 Feb 5, 2026
af42e17
refsol oracle files added
john-sanchez31 Feb 5, 2026
69478a6
WIP: slice and get_part
john-sanchez31 Feb 6, 2026
064fa84
Merge branch 'main' into John/oracle
john-sanchez31 Feb 11, 2026
17d4a95
adding oracle refsol files
john-sanchez31 Feb 11, 2026
17334ad
quote identifiers starting with underscore, quote alias of quoted col…
john-sanchez31 Feb 13, 2026
ce5227e
coalesce fixed and metadata fixed
john-sanchez31 Feb 13, 2026
8165fd0
Merge branch 'main' into John/oracle
john-sanchez31 Feb 17, 2026
cefdbcc
datediff implementation, dayofweek and daysfromstart
john-sanchez31 Feb 18, 2026
23017f7
dates fixed, refsol files updated
john-sanchez31 Feb 19, 2026
847401a
Conflicts solved
john-sanchez31 Feb 20, 2026
c36871b
adding oracle defog fixture
john-sanchez31 Feb 20, 2026
a179a9e
fixing quoted alias, adding dataframe collection oracle refsol
john-sanchez31 Feb 20, 2026
e6b912a
fix for anti joins in oracle and refsol updated
john-sanchez31 Feb 23, 2026
b8ef6dd
fixing cast datetime, and trunc
john-sanchez31 Feb 25, 2026
2995451
quarter truncation fixed, add_months added
john-sanchez31 Feb 25, 2026
524fd30
dataframe and range collection support
john-sanchez31 Feb 25, 2026
2fb20ac
week_offset fixed, df quoted name
john-sanchez31 Feb 27, 2026
b6acba4
get part implementation
john-sanchez31 Mar 2, 2026
0b63c20
STRCOUNT oracle implementation
john-sanchez31 Mar 2, 2026
f0ea15f
Strip, smallest, largest, variance, std, diff quarters, diff weeks, d…
john-sanchez31 Mar 4, 2026
fc17d41
[run ci] [run dialects]
john-sanchez31 Mar 4, 2026
90df7d0
main merged and conflicts solved
john-sanchez31 Mar 4, 2026
d15086c
updating refsol files, test metadata fixed [run ci][run dialects]
john-sanchez31 Mar 6, 2026
852b287
adding oracle workflow [run oracle]
john-sanchez31 Mar 6, 2026
ee63c76
oracle added to run tests [run oracle]
john-sanchez31 Mar 6, 2026
9d2f06c
pr testing workflow fixed [run oracle]
john-sanchez31 Mar 6, 2026
f5b0b97
oracle test workflow [run oracle]
john-sanchez31 Mar 6, 2026
24484af
oracle connector [run oracle]
john-sanchez31 Mar 6, 2026
9d2463e
adding mark [run oracle]
john-sanchez31 Mar 6, 2026
5ce8d44
adding waiting time [run oracle]
john-sanchez31 Mar 6, 2026
b3543ee
adding 10 min [run oracle]
john-sanchez31 Mar 6, 2026
2bb84bf
print timer [run oracle]
john-sanchez31 Mar 6, 2026
fd08233
workflow fix [run oracle]
john-sanchez31 Mar 6, 2026
d06f848
installing dependencies [run oracle]
john-sanchez31 Mar 6, 2026
15fd17d
sqlplus [run oracle]
john-sanchez31 Mar 6, 2026
0be5d53
sqlplus [run oracle]
john-sanchez31 Mar 6, 2026
1727274
check data without sqlplus [run oracle]
john-sanchez31 Mar 6, 2026
4e51da4
checking count [run oracle]
john-sanchez31 Mar 6, 2026
d4a43f7
fixing count [run oracle]
john-sanchez31 Mar 6, 2026
4df5b39
waiting [run oracle]
john-sanchez31 Mar 6, 2026
ab740ed
debugging oracle container ci [run oracle]
john-sanchez31 Mar 9, 2026
77a2998
debugging pwd [run oracle]
john-sanchez31 Mar 9, 2026
3f6520a
debugging network conn [run oracle]
john-sanchez31 Mar 9, 2026
eb002a8
testing oracle [run ci] [run dialects]
john-sanchez31 Mar 9, 2026
645200b
fixing sf academic_gen14 [run s3][run ci][run dialects]
john-sanchez31 Mar 9, 2026
6bf5755
fixing typo [run s3][run ci][run dialects]
john-sanchez31 Mar 9, 2026
a28fb1f
addressing comments, updating refsols
john-sanchez31 Mar 12, 2026
d3c09ba
adding division by zero tests for oracle [run ci][run dialects]
john-sanchez31 Mar 12, 2026
8b6aabc
fixing wrong refsol [run ci][run dialects]
john-sanchez31 Mar 12, 2026
2a8ad9b
tpch fixture refactorization [run ci][run dialects]
john-sanchez31 Mar 12, 2026
74b0818
conflicts solved [run ci][run dialects]
john-sanchez31 Mar 12, 2026
022e200
updating refsol oracle academic_gen14 [run ci]
john-sanchez31 Mar 12, 2026
c839a6d
fixing last details PR [run ci][run dialects]
john-sanchez31 Mar 16, 2026
6e8a561
one more try [run ci][run dialects]
john-sanchez31 Mar 16, 2026
24f3b04
testing [run ci][run postgres][run bodosql][run mysql][run oracle][ru…
john-sanchez31 Mar 16, 2026
b38f0ec
fixing strip [run ci][run postgres][run bodosql][run mysql][run oracl…
john-sanchez31 Mar 16, 2026
830aa8f
refsol files updated [run ci][run mysql][run postgres][run oracle][ru…
john-sanchez31 Mar 17, 2026
8907168
refsol files updated again [run ci][run mysql][run postgres][run orac…
john-sanchez31 Mar 17, 2026
5a8fe2f
strip default chars added [run ci][run mysql][run postgres][run oracl…
john-sanchez31 Mar 17, 2026
63990d3
testing [run ci][run dialects]
john-sanchez31 Mar 17, 2026
ce873ac
Addressing review comments [run ci][run dialects]
john-sanchez31 Mar 19, 2026
2e20048
adding fixture [run ci][run dialects]
john-sanchez31 Mar 19, 2026
2405283
adding required import [run ci][run dialects]
john-sanchez31 Mar 19, 2026
856d05a
convert_literal_expression per dialect implementation [run ci][run di…
john-sanchez31 Mar 19, 2026
86054ab
adding note about quotes on oracle column/table names [run ci][run or…
john-sanchez31 Mar 20, 2026
e6f0dde
fixing final comments [run ci][run dialects]
john-sanchez31 Mar 23, 2026
357d844
dleting bodosql from all dialects_tpch_db_context [run ci][run dialects]
john-sanchez31 Mar 23, 2026
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
  •  
  •  
  •  
69 changes: 69 additions & 0 deletions .github/workflows/oracle_testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Run Oracle Tests

on:
workflow_call:
inputs:
python-versions:
description: "JSON string of Python versions"
type: string
required: true
secrets:
ORACLE_PASSWORD:
required: true

jobs:
oracle-tests:
name: Oracle Tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ${{ fromJSON(inputs.python-versions) }}

# Define services here to run Docker containers alongside your job
services:
oracle:
image: bodoai1/pydough-oracle-tpch:latest
env:
# Set environment variables for Oracle container
ORACLE_PWD: ${{ secrets.ORACLE_PASSWORD }}
ports:
- 1521:1521
env:
ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }}

steps:
- uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.4.23"

- name: Create virtual environment
run: uv venv

- name: Install dependencies
run: uv pip install -e ".[oracle]"

- name: Wait for TPCH data to load
run: |
for i in {1..600}; do
if docker logs ${{ job.services.oracle.id }} 2>&1 | grep -q "02_tpch_data.sh"; then
echo "TPCH data loaded"
break
fi
echo "Waiting for TPCH load... ($i/600)"
sleep 5
done

- name: Confirm Oracle connector is installed
run: uv run python -c "import oracledb; print('Oracle connector installed')"

- name: Run Oracle Tests
run: uv run pytest -m oracle tests/ -rs
23 changes: 22 additions & 1 deletion .github/workflows/pr_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ on:
description: "Run Postgres Tests"
type: boolean
required: false
default: false
run-oracle:
description: "Run Oracle Tests"
type: boolean
required: false
default: false
run-sf_masked:
description: "Run Snowflake Masked Tests"
Expand Down Expand Up @@ -168,7 +173,7 @@ jobs:
run: uv run ruff check .

- name: Run Tests
run: uv run pytest tests/ -m "not (snowflake or mysql or postgres or sf_masked or s3 or bodosql)" -rs
run: uv run pytest tests/ -m "not (snowflake or mysql or postgres or sf_masked or s3 or bodosql or oracle)" -rs

run-defog-daily-update:
name: Run DEFOG Daily Update
Expand Down Expand Up @@ -286,3 +291,19 @@ jobs:
python-versions: ${{ github.event_name == 'workflow_dispatch'
&& needs.get-py-ver-matrix.outputs.matrix
|| '["3.10", "3.11", "3.12", "3.13"]' }}

run-oracle-tests:
name: Oracle Tests
needs: [get-msg, get-py-ver-matrix]
if: |
(github.event_name == 'pull_request' && contains(needs.get-msg.outputs.commitMsg, '[run all]')) ||
(github.event_name == 'pull_request' && contains(needs.get-msg.outputs.commitMsg, '[run dialects]')) ||
(github.event_name == 'pull_request' && contains(needs.get-msg.outputs.commitMsg, '[run oracle]')) ||
(github.event_name == 'workflow_dispatch' && (inputs.run-all || inputs.run-dialects || inputs.run-oracle))
uses: ./.github/workflows/oracle_testing.yml
secrets:
ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }}
with:
python-versions: ${{ github.event_name == 'workflow_dispatch'
&& needs.get-py-ver-matrix.outputs.matrix
|| '["3.10", "3.11", "3.12", "3.13"]' }}
1 change: 1 addition & 0 deletions demos/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,5 @@ Once the introduction notebook is complete, you can explore the other notebooks:
- [SF_TPCH_q1.ipynb](notebooks/SF_TPCH_q1.ipynb) demonstrates how to connect a Snowflake database with PyDough.
- [MySQL_TPCH.ipynb](notebooks/MySQL_TPCH.ipynb) demonstrates how to connect a MySQL database with PyDough.
- [PG_TPCH.ipynb](notebooks/PG_TPCH.ipynb) demonstrates how to connect a Postgres database with PyDough.
- [Oracle_TPCH.ipynb](notebooks/Oracle_TPCH.ipynb) demonstrates how to connect an Oracle database with PyDough.

Loading
Loading