Skip to content
This repository was archived by the owner on Jul 22, 2026. It is now read-only.
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: sqliteai/sqlite-sync-dev
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.9.101
Choose a base ref
...
head repository: sqliteai/sqlite-sync-dev
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.9.110
Choose a head ref
  • 17 commits
  • 35 files changed
  • 4 contributors

Commits on Jan 30, 2026

  1. Configuration menu
    Copy the full SHA
    2b8e972 View commit details
    Browse the repository at this point in the history
  2. fix README coverage badge

    Gioee committed Jan 30, 2026
    Configuration menu
    Copy the full SHA
    c46c995 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1d6504d View commit details
    Browse the repository at this point in the history
  4. fix(examples/to-do-app): missing dependencies, upgrade react-native, …

    …fix Android to use different connection string for localhost usage and replaced old cloudsync_init * apis with new one with explicit table names
    Gioee committed Jan 30, 2026
    Configuration menu
    Copy the full SHA
    673b5fa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0792fd1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    13e241c View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2026

  1. Configuration menu
    Copy the full SHA
    33be888 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8b23cbb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    764bbff View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b31af9b View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2026

  1. Update EXPO.md

    Gioee authored Feb 4, 2026
    Configuration menu
    Copy the full SHA
    acff889 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    37eb38d View commit details
    Browse the repository at this point in the history
  3. Update EXPO.md

    Gioee authored Feb 4, 2026
    Configuration menu
    Copy the full SHA
    58ce9a4 View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2026

  1. fix(schema_hash): build normalized schema string using only column na…

    …me (lowercase), type (SQLite affinity), pk flag (#5)
    
    Build normalized schema string using only: column name (lowercase), type (SQLite affinity), pk flag
    Format: tablename:colname:affinity:pk,... (ordered by table name, then column id).
    This makes the hash resilient to formatting, quoting, case differences and portable across databases.
    andinux authored Feb 10, 2026
    Configuration menu
    Copy the full SHA
    8bf4c58 View commit details
    Browse the repository at this point in the history
  2. Fix/bind column value parameters also if null (#6)

    * fix(sync): always bind column value parameters in merge_insert_col
    
    Fix parameter binding bug in merge_insert_col that caused SQLite-to-PostgreSQL sync to fail with "there is no parameter $3" when NULL values were synced before non-NULL values for the same column.
    
    * fix(network): fix the value of the seq variable in cloudsync_payload_get when the last db_version is not related to a local change
    
    * test(postgres): new test for null value
    
    * fix(postgres): ensure NULL values use consistent decoded types for SPI plan caching
    
    When syncing NULL values first, PostgreSQL's SPI caches the prepared plan with the NULL's type. If a subsequent non-NULL value decodes to a different type, the plan fails. The fix maps column types to their decoded equivalents so NULL and non-NULL values always use consistent types (e.g., all integers use INT8OID, all floats use FLOAT8OID, most others use TEXTOID).
    
    Add map_column_oid_to_decoded_oid() to map column types to their decoded equivalents (INT2/4/8 → INT8, FLOAT4/8/NUMERIC → FLOAT8, BYTEA → BYTEA, others → TEXT). This ensures NULL and non-NULL values bind with the same type, preventing "there is no parameter $N" errors when NULL is synced before non-NULL values for the same column.
    
    Add tests 23 and 24 for UUID columns and comprehensive nullable type coverage (INT2/4/8, FLOAT4/8, NUMERIC, BYTEA, TEXT, VARCHAR, CHAR, UUID, JSON, JSONB, DATE, TIMESTAMP).
    
    * fix(postgres): add bigint to boolean cast for BOOLEAN column sync
    
    BOOLEAN values are encoded as INT8 in sync payloads for SQLite interoperability, but PostgreSQL has no built-in cast from bigint to boolean. Add a custom ASSIGNMENT cast that enables BOOLEAN columns to sync correctly.
    
    The cast uses ASSIGNMENT context (not IMPLICIT) to avoid unintended conversions in WHERE clauses while still enabling INSERT/UPDATE operations used by merge_insert.
    
    The write direction (BOOL → INT encoding flow) "just works" because DatumGetBool() naturally returns 0 or 1. The problem was only on the read side where PostgreSQL refused to cast the decoded INT8 back to BOOLEAN without our custom cast.
    
    * feat(commands): add sync roundtrip RLS test guide
    
    * bump version
    
    * ci: add postgres-test job to main workflow
    
    * ci(Makefile.postgresql): replaced all docker-compose commands with docker compose (v2 plugin syntax)
    
    Fix the execution in the github actions runner: The GitHub Actions runner has docker compose (v2 plugin) but not the standalone docker-compose (v1)
    
    * ci: fix the "run postgresql tests" step
    andinux authored Feb 10, 2026
    Configuration menu
    Copy the full SHA
    47180e7 View commit details
    Browse the repository at this point in the history
  3. Added the ability to perform a perform a sync only if a column expres…

    …sion is satisfied (#7)
    
    * Added the ability to perform a perform a sync only if a column expression is satisfied
    
    ---------
    
    Co-authored-by: Marco Bambini <marco@creolabs.com>
    andinux and marcobambini authored Feb 10, 2026
    Configuration menu
    Copy the full SHA
    ff30ae5 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2026

  1. Merge pull request #8 from sqliteai/dev

    release version 0.9.110
    
    - fix/schema-hash
    - fix/bind-column-value-parameters-also-if-null
    - feat/sync-filter
    andinux authored Feb 12, 2026
    Configuration menu
    Copy the full SHA
    5ba27a7 View commit details
    Browse the repository at this point in the history
Loading