This release includes 1 breaking change for platform teams planning a safe upgrade.
Published 9d
Streaming & Message Queues
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
batch-processing
data-analytics
data-pipelines
data-processing
dataflow
etl
+11 more
etl-framework
iot-analytics
kafka
machine-learning-algorithms
pathway
python
real-time
rust
stream-processing
streaming
time-series-analysis
Affected surfaces
breaking_upgrade
Summary
AI summaryBREAKING: pw.io.iceberg.write to Glue catalog now fails when writing DateTimeUtc columns instead of silently dropping timezone information.
Full changelog
Added
pw.io.sqlite.writeconnector, which writes a Pathway table into a SQLite database file. Supports two modes:stream_of_changes(default) appends each event alongsidetime/diffmetadata columns, whilesnapshotmaintains the current state of the table viaINSERT ... ON CONFLICT DO UPDATEon insertions andDELETEon retractions, keyed on theprimary_keyparameter. Values are encoded using the same storage-class mapping thatpw.io.sqlite.readaccepts, sowrite/readround-trips every supported Pathway type losslessly.init_modecontrols whether the destination table is left as-is, auto-created, or replaced on start-up.pw.io.deltalake.readnow accepts Deltadecimal(p, s)columns. The Pathway type declared in the schema chooses the projection:floatconverts each value through f64 (lossy in general — both because f64 is binary and because its mantissa carries only ~15–17 significant decimal digits) and emits a one-time warning at startup naming each affected column;strformats the unscaled integer with the column's scale and passes the resulting decimal text through unchanged, lossless for the full Delta precision range (up to 38 digits).pw.io.deltalake.writeaccepts a Pathwaystrcolumn when writing into an existing Deltadecimal(p, s)column: each row's text is parsed as decimal and stored as the column's fixed-point value. Combined with the losslessdecimal → strread path, a Deltadecimalcolumn can round-trip through a Pathway pipeline with no precision loss. A string that can't be parsed as a decimal of the column's shape fails the write with an error message naming the offending value, the column's precision and scale, and the specific constraint it violated. Tables that don't contain adecimalcolumn (or that are being created fresh by Pathway) are unaffected.pw.io.deltalake.readnow accepts Deltadatecolumns (mapped ontoDateTimeNaive/DateTimeUtcat midnight on the calendar day, since Pathway has no nativeDatetype) andtimestamp_milliscolumns (mapped onto the same Pathway types with millisecond precision preserved).- The panel widget for table visualization now accepts
page_sizeandtable_heightparameters.
Changed
- BREAKING:
pw.io.iceberg.writeto a Glue catalog no longer acceptsDateTimeUtccolumns. Glue's metastore has no timezone-aware timestamp type, so previous versions silently dropped the timezone on read-back; writes now fail with an explicit error instead of corrupting the zone. To store UTC timestamps in Glue, convert toDateTimeNaivewith UTC-normalized values, or write through the REST catalog, which preserves the timezone. pw.io.sqlite.readnow parses every PathwayValuevariant. In addition toint,float,str,bytes,pw.Json, and theirOptionalforms, the reader now acceptsbool,pw.DateTimeNaive,pw.DateTimeUtc,pw.Duration,pw.Pointer,pw.PyObjectWrapper, homogeneoustuple/list, andnp.ndarray. Composite types are stored asTEXTusing the same JSON encoding thatpw.io.jsonlines.writeemits. Booleans additionally accept PostgreSQL-style textual literals (true/false,yes/no,on/off,t/f,y/n; case-insensitive, whitespace-trimmed), andfloatcolumns tolerate values stored withINTEGERstorage class.pw.io.mssql.readandpw.io.mssql.writenow retry transient SQL Server errors automatically.
Fixed
pw.io.http.rest_connectorno longer raisesTypeError: Cannot instantiate typing.Anywhen a request column has the inferred default schema type (Any). The cast step now skips columns typed asAnyinstead of attempting to call the type as a constructor.pw.io.deltalake.readnow accepts Delta tables whose integer columns use any of the standard Parquet integer widths (INT_8,INT_16,INT_32, unsigned variants), and whose floating-point columns useFLOAT(32-bit) orFLOAT16. Previously the row-level reader only matchedINT_64andDOUBLE, so tables produced by Spark / DuckDB / pandas with explicit narrower casts read back as zero rows with per-row conversion errors.pw.io.deltalake.writepartition columns of typepw.Pointer,pw.Duration, andpw.Jsonnow round-trip correctly throughpw.io.deltalake.read. Previously the values were correctly placed in the partition path on write, but the reader had no decoder for those types and produced a conversion error for every row.
Breaking Changes
- `pw.io.iceberg.write` to a Glue catalog no longer accepts `DateTimeUtc` columns; writes now fail with an explicit error instead of silently dropping timezone information. Convert timestamps to `DateTimeNaive` (UTC‑normalized) or use the REST catalog for timezone‑aware storage.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About pathway
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]