Skip to content

Migrate to Private Docker Image & Add Federated Queries Test Suite#21

Merged
mkottakota1 merged 16 commits intomainfrom
Build_vertica_private
Feb 9, 2026
Merged

Migrate to Private Docker Image & Add Federated Queries Test Suite#21
mkottakota1 merged 16 commits intomainfrom
Build_vertica_private

Conversation

@mkottakota1
Copy link
Collaborator

Description

This PR adds comprehensive test coverage for the ODBCLoader's federated query capabilities while migrating the CI/CD pipeline from the public Vertica Docker image to a private image for enhanced security, control, and customization.

Changes

Test Suite

  • New test file: tests/federated_queries.sql - Contains four test scenarios demonstrating federated query functionality:

    1. Predicate Pushdown - Validates that WHERE conditions are pushed down to the external database
    2. Column Pruning - Verifies that only required columns are fetched from the external source
    3. Federated Joins - Tests joining external tables with Vertica-managed tables
    4. Complex Predicates - Ensures multiple WHERE conditions are properly optimized
  • Expected output file: tests/expected/federated_queries.out - Contains baseline expected results for test validation

  • Updated Makefile:

    • Modified test target to run federated queries test suite
    • Added test_debug target for easier troubleshooting
    • Enhanced test output with dynamic progress indicators and validation status

Infrastructure

  • Docker Image Migration:
    • Migrated from public vertica/vertica-ce image to private custom Docker image
    • Updated GitHub Actions workflow to use private image registry
    • Added Docker authentication for private image access
    • Improved build consistency and security posture

Testing

  • All tests pass successfully with live output display
  • Test validation compares actual results against expected output
  • ODBC driver compatibility ensured across different MySQL ODBC versions
  • Tests run against private Vertica image with enhanced configuration

Motivation

  1. Federated Queries: Essential feature for joining Vertica tables with external databases while optimizing data movement through predicate pushdown and column pruning
  2. Private Image: Provides better control over dependencies, security patches, and custom configurations for CI/CD pipeline stability

Related Issues

Closes #[issue-number]

Checklist

  • Federated queries tests added/updated
  • Expected output files created
  • Makefile updated with new test targets
  • All tests passing with private image
  • GitHub Actions workflow updated for private image registry
  • Docker authentication configured
  • CI/CD pipeline validated

docker exec -u dbadmin vertica_docker admintools -t create_db \
-s localhost \
-d mydb \
-p "MySecretPass"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hardcoded Database Password (Security Risk)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed the hardcoded password and followed the previous DB setup

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: mkottakota419
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are the personal credentials used in pipelines

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To access the private docker image, I have uploaded in my dockerhub and used it in the pipeline

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed the hardcoded Username and added in the Github secrets

-s localhost \
-d mydb \
-p "MySecretPass"

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No error handling if the create fails

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added error handling at necessary stages

-- Test 2: Query with column pruning
-- When only specific columns are selected, ODBCLoader optimizes the external query
-- to fetch only the required columns. Columns not in the Vertica query are replaced
-- with NULL values to match the External Table schema
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you please check if this comment is correct?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have corrected the comment now

Copy link
Collaborator

@sivaalamp sivaalamp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review done

@mkottakota1 mkottakota1 requested a review from sivaalamp February 6, 2026 11:45
@mkottakota1
Copy link
Collaborator Author

Review done

I have addressed your comment, kindly review and approve

Copy link
Collaborator

@sivaalamp sivaalamp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes now look good to me, hence approving

@mkottakota1 mkottakota1 merged commit 3f24583 into main Feb 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments