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: thetimeloops/AliSQL
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: alibaba/AliSQL
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 7 commits
  • 29 files changed
  • 3 contributors

Commits on Mar 31, 2026

  1. Fix crash when inserting invalid integer into DATETIME column with Du…

    …ckDB engine (alibaba#134)
    
    Fixes alibaba#131
    
    Description
    ===========
    - Server crashes with assertion failure when executing:
      INSERT IGNORE INTO t (col1) VALUES (57399)
      where col1 is a DATETIME column on a DuckDB engine table.
    - The assertion `mon > 0 && mon < 13 && year <= 9999` in sec_since_epoch()
      (sql/tztime.cc:356) fails because the MYSQL_TIME struct contains month=0.
    - InnoDB handles this case gracefully by truncating to zero date with a warning,
      but DuckDB engine crashes.
    
    Cause
    =====
    - MySQL's SQL layer converts the invalid integer 57399 to a zero date
      (0000-00-00 00:00:00) via number_to_datetime() -> reset(), setting month=0.
    - In the DuckDB write path, DeltaAppender::append_mysql_field() for
      MYSQL_TYPE_DATETIME2 calls TIME_to_gmt_sec() without validating the
      MYSQL_TIME struct, which triggers the assertion in sec_since_epoch().
    
    Fix
    ===
    - Add a zero/invalid date check (tm.month == 0) in the MYSQL_TYPE_DATETIME2
      branch of DeltaAppender::append_mysql_field() before calling TIME_to_gmt_sec().
    - When a zero date is detected, compute the timestamp directly using calc_daynr(),
      consistent with the existing MYSQL_TYPE_NEWDATE handling.
    - Valid dates (month in [1, 12]) continue to use the original TIME_to_gmt_sec() path.
    p1p1bear authored Mar 31, 2026
    Configuration menu
    Copy the full SHA
    4fb1793 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5992bff View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2026

  1. Fix JSON function error handling when called from DuckDB engine (alib…

    …aba#139)
    
    When JSON functions (json_overlaps, json_depth, json_unquote) are called
    from DuckDB engine with invalid input, they previously triggered MySQL
    error handling (my_error) which is not appropriate in the DuckDB context.
    
    This fix adds a `m_caller_is_duckdb` flag to the relevant JSON function
    classes so that when called from DuckDB, errors are thrown as C++
    exceptions (duckdb::InvalidInputException) instead of MySQL errors,
    allowing DuckDB to handle them properly.
    
    Fixes alibaba#136
    
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    p1p1bear and claude authored Apr 9, 2026
    Configuration menu
    Copy the full SHA
    68ebfb1 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2026

  1. Fix VECTOR column DATA_TYPE in INFORMATION_SCHEMA views

    VECTOR columns stored as '/*!99999 vector(N) */ varbinary(4N)' in DD
    caused INFORMATION_SCHEMA.COLUMNS/PARAMETERS/ROUTINES to return
    '/*!99999' as DATA_TYPE instead of 'varbinary'.
    
    Fix by adding SUBSTRING_INDEX(..., '*/ ', -1) to strip the versioned
    comment prefix. Add EXTRA_IS_VERSION minor upgrade mechanism to
    rebuild I_S views on existing installations without bumping upstream
    IS_DD_VERSION.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    JoeJRW and claude committed May 11, 2026
    Configuration menu
    Copy the full SHA
    12726be View commit details
    Browse the repository at this point in the history

Commits on May 12, 2026

  1. ci: trigger alisql-docker build on release publish (alibaba#148)

    On every published release whose tag starts with AliSQL-8.0.*,
      push the same tag to p1p1bear/alisql-docker so its existing
      build workflow can build and push the multi-arch Docker image
      to Docker Hub (songhuaxiong/alisql).
    
      Requires repo secret DOCKER_REPO_PAT (fine-grained PAT with
      Contents: read/write on p1p1bear/alisql-docker).
    p1p1bear authored May 12, 2026
    Configuration menu
    Copy the full SHA
    687f38e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d06deb5 View commit details
    Browse the repository at this point in the history
  3. ci: add build-and-release workflow for tag-triggered tarball builds (a…

    …libaba#150)
    
    Build glibc 2.17 compatible AliSQL tarballs (x86_64 + aarch64) inside
      oraclelinux:7 on tag push, inject version from tag name into the version
      file, then create a GitHub Release with both tarballs attached.
    
      Triggered by tags matching AliSQL-8.0.* or AliSQL-5.7.*.
    p1p1bear authored May 12, 2026
    Configuration menu
    Copy the full SHA
    dce1871 View commit details
    Browse the repository at this point in the history
Loading