Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: github/gh-ost
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.1.7
Choose a base ref
...
head repository: github/gh-ost
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 6 commits
  • 33 files changed
  • 8 contributors

Commits on Jan 5, 2025

  1. Improve logic to include originalUniqueKey in sharedUniqueKeys (#1453)

    Until now, when building the list of SharedUniqueKeys, the code was selecting only the originalUniqueKeys that existed in ghostUniqueKeys list.
    
    However, as part of the alter table, it is possible to add more unique keys or even composed primary keys with multiple columns.
    
    The new logic keeps the old behaviour (it matches originalUniqueKey with exactly the same ghostUniqueKey) but also supports the cases where the originalUniqueKey is now a subset of one of the new ghostUniqueKeys.
    
    If such a case happens, we can still use the originalUniqueKey as normal because a new ghostUniqueKey with the columns of originalUniqueKey plus some new columns is inherently unique just by the columns in the originalUniqueKey, no matter the value in the new columns of the new unique key.
    htmsousa authored Jan 5, 2025
    Copy the full SHA
    ad5d3ea View commit details

Commits on Feb 10, 2025

  1. Add MySQL 8.4 Support (#1494)

    * WIP: MySQL 8.4 support
    
    * Add go-version for doing version comparisons
    
    * docker-gh-ost-replica-tests: Support MySQL 8.4+
    
    * localtests: Support MySQL 8.4
    
    * Remove mysql-8.4.3 from replica-tests GHA since dbdeployer / ci env does not have 8.4.3
    
    * MySQL 8.4: Actually use caching_sha2_password pw strategy
    
    * Commit up  vendor/github.com/hashicorp/go-version
    
    * Add GHA job for docker-gh-ost-replica-tests
    
    * localtests/test.sh: Fix conditional bug and replica_terminology typo
    chen-anders authored Feb 10, 2025
    Copy the full SHA
    be413cf View commit details
  2. Prevent exponential backoff from overflowing. (#1491)

    When using `-cut-over-exponential-backoff` with `-default-retries`
    greater than `64`, the sleep interval will overflow and immediately
    begin retrying in rapid succession. This commit corrects the backoff
    algorithm and adds test for both "retry operation" functions.
    
    Co-authored-by: meiji163 <meiji163@github.com>
    burnison and meiji163 authored Feb 10, 2025
    Copy the full SHA
    2ea0e60 View commit details

Commits on Feb 24, 2025

  1. Fix TLS verify error when gh-ost discovers the replication master (#1487

    )
    
    * Update connection.DuplicateCredentials function to set correct ServerName property
    
    Ensure the ServerName TLS property matches the new connection
    instance key hostname to avoid TLS verify errors like the following:
    
    2025-01-02 02:07:26 FATAL tls: failed to verify certificate: x509: certificate is valid for [old host], not [new host]
    
    This is only one part of the fix for this issue. The second part,
    registering TLS Config with the mysql driver, will come in
    subsequent commits.
    
    * Use connection.DuplicateCredentials in cases where the connection key changes
    
    * Extract TLS config key name generation to GetDBTLSConfigKey function
    
    * Extract function to register a connection's TLS config with the mysql driver
    
    This allows us to register TLS configuration is the various places
    where connection configs are created and before they're used.
    
    * Register TLS config when setting up master connection info
    
    This ensures that the master's TLS config has been registered with
    the mysql driver before any connections are attempted.
    
    This is the second part of resolving the following TLS verify
    error:
    
    2025-01-02 02:07:26 FATAL tls: failed to verify certificate: x509: certificate is valid for [old host], not [new host]
    
    * Register TLS config when setting up the throttler's connection info
    
    This ensures that the throttler's TLS config has been registered with
    the mysql driver before any connections are attempted.
    
    This is the second part of resolving the following TLS verify
    error:
    
    2025-01-02 02:07:26 FATAL tls: failed to verify certificate: x509: certificate is valid for [old host], not [new host]
    
    ---------
    
    Co-authored-by: meiji163 <meiji163@github.com>
    petervandoros and meiji163 authored Feb 24, 2025
    Copy the full SHA
    d8672f7 View commit details

Commits on Feb 28, 2025

  1. Avoid logging MySQL connection configs (#1501)

    * Fix clear-text logging of connection config
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    
    * don't log connection configs
    
    ---------
    
    Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
    meiji163 and github-advanced-security[bot] authored Feb 28, 2025
    Copy the full SHA
    7ea3047 View commit details

Commits on Mar 3, 2025

  1. Fix #1502 Add triggers support (#1503)

    * Add trigger support to gh-ost based on openark#30
    
    * Add comprehensive test cases for trigger support functionality
    
    * Fix trigger-basic test by adding required --trigger-suffix parameter and remove fail-trigger-unsupported test
    
    * Update trigger suffix in local test configurations
    
    Modify extra_args files for trigger-complex, trigger-multiple, and trigger-self-reference tests to use different trigger suffixes
    
    * Add --remove-trigger-suffix-if-exists to local test configurations
    
    Update extra_args files for trigger tests to include the new --remove-trigger-suffix-if-exists option, ensuring consistent trigger handling across different test scenarios
    
    * Fix trigger-long-name test by reducing trigger name length to be valid
    
    * Standardize trigger drop statements in local test configurations
    
    Update create.sql files across trigger test scenarios to:
    - Consistently drop both original and ghost triggers
    - Ensure clean slate before creating triggers
    - Align with recent trigger suffix changes
    
    This change improves test reliability and consistency by explicitly dropping all potential trigger variations before test setup.
    
    * Consolidate and enhance trigger test configurations
    
    Refactor local test scenarios for triggers by:
    - Merging multiple trigger test configurations into comprehensive test cases
    - Updating create.sql files with more complex and diverse trigger scenarios
    - Standardizing trigger and table setup across different test configurations
    - Removing redundant test directories while preserving test coverage
    
    This change simplifies the trigger testing infrastructure and provides more robust test coverage for gh-ost's trigger handling capabilities.
    
    * Add debug logging for ghost trigger validation process
    
    Enhance ghost trigger existence check by adding detailed debug logging to:
    - Log the ghost trigger name being searched
    - Log the database schema and query details
    - Log when an existing ghost trigger is found
    
    This change improves visibility into the trigger validation process, making troubleshooting easier during migration scenarios.
    
    * Improve ghost trigger validation with enhanced logging and verification
    
    Modify validateGhostTriggersDontExist() to:
    - Add a direct query to log all triggers in the database schema
    - Refactor trigger existence check to use count-based query
    - Improve debug logging for trigger validation process
    - Provide more detailed error reporting for existing ghost triggers
    
    This change enhances the robustness and observability of the trigger validation mechanism in gh-ost's migration process.
    
    * Refactor ghost trigger validation to improve logging and error detection
    
    Simplify and enhance the validateGhostTriggersDontExist() method by:
    - Removing redundant direct query logging
    - Streamlining trigger existence check
    - Improving debug logging for trigger validation
    - Consolidating trigger existence detection logic
    
    The changes provide more concise and focused trigger validation with clearer error reporting.
    
    * Simplify ghost trigger validation query and reduce logging verbosity
    
    Refactor validateGhostTriggersDontExist() to:
    - Streamline trigger existence check query
    - Remove redundant debug logging statements
    - Use a more concise approach to detecting existing triggers
    
    The changes reduce code complexity while maintaining the core validation logic for ghost triggers.
    
    * Enhance ghost trigger validation query to include table name filter
    
    Modify validateGhostTriggersDontExist() to:
    - Add table name filter to trigger existence check query
    - Improve specificity of ghost trigger detection
    - Prevent false positives from similarly named triggers in different tables
    
    The change ensures more precise ghost trigger validation by incorporating the original table name into the query criteria.
    
    * Enhance trigger test configuration with advanced features and consolidated test scenarios
    
    Update trigger-advanced-features test configuration to:
    - Add new column 'color' and 'modified_count' to test table
    - Implement more complex trigger logic for color and count tracking
    - Consolidate trigger test scenarios with richer data transformations
    - Modify event to test both numeric and color-based updates
    - Remove redundant trigger-basic-features directory
    
    The changes provide a more comprehensive and nuanced test suite for gh-ost's trigger handling capabilities, demonstrating advanced trigger behaviors and self-referencing updates.
    
    * Fix lint errors
    
    * Update trigger test configuration with suffix change
    
    Modify the extra_args file to use '_ght' trigger suffix instead of '_gho', maintaining consistency with recent trigger test configuration updates.
    
    * Remove gh-ost-ci-env submodule
    
    Clean up repository by removing the gh-ost-ci-env submodule, which appears to be no longer needed in the project structure.
    
    * Update create.sql
    
    ---------
    
    Co-authored-by: Yakir Gibraltar <yakir.g@taboola.com>
    yakirgb and Yakir-Taboola authored Mar 3, 2025
    Copy the full SHA
    0263a20 View commit details

This comparison is taking too long to generate.

Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.

You can try running this command locally to see the comparison on your machine:
git diff v1.1.7...master