Skip to content

v0.9.5 — PostgreSQL-source sequences + native TIMESTAMP fractional

Choose a tag to compare

@danimoya danimoya released this 26 Jun 05:41

PostgreSQL → HeliosDB-Nano is now fully operational — tables, data, FKs, indexes, sequences, and views all migrate and validate.

Added

  • PostgreSQL-source sequence migration. The PG source adapter now introspects sequences (pg_sequences, falling back to information_schema.sequences) and preserves each SERIAL/IDENTITY column's DEFAULT nextval('seq') (normalized to a bare, schema-unqualified reference). Each target sequence's START is set to the next value the source would produce (from live last_value/is_called) so post-migration inserts resume past the loaded rows instead of colliding. Sequences are created before tables so a DEFAULT nextval resolves at CREATE TABLE time, and the emitter carries the source CACHE size. The Oracle/MySQL emitters skip a PG nextval() default (those dialects spell auto-increment differently), so migrate-back is unaffected.
    • Validated Pagila → HeliosDB-Nano 3.60.0: 15 tables / 49,636 rows, all 13 sequences created with correct resume points (actor 200→201, customer 599→600), DEFAULT nextval functional (insert without the PK auto-increments), and TEST_COUNT / TEST_DATA / TEST_INDEX 15 / 15 / 15.

Fixed

  • Native (Oracle-wire) TIMESTAMP fractional seconds dropped. python-oracledb defaults a datetime bind to DB_TYPE_DATE (7-byte, no fractional seconds), truncating sub-second precision client-side before it reaches HeliosDB. The native driver now binds datetime positions as DB_TYPE_TIMESTAMP (setinputsizes), so TIMESTAMP(6) values round-trip exactly — completing the native Oracle → HeliosDB-Full path (TEST_DATA 0 mismatches incl. BLOB / RAW / fractional TIMESTAMP).
pip install -U any2heliosdb