You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every numeric Go type the ingest API accepts is now stored as its own value. int8, int16, uint8, uint16 and uint32 into an INT32 column, uint64 into INT64, and integers into FLOAT32/FLOAT64 were previously
written as 0.
A VECTOR(N) value must have exactly N components. A wrong width used to be
written without error and shifted the components of every later row.
A missing value in a NOT NULL column is 23502 not_null_violation at the
write. It previously corrupted the column's alignment - a required BOOL
written as [NULL, true] read back as [true, false].
A typed slice or map ([]int64, map[string]int64, ...) written into an ARRAY, ROW or MAP column is now stored; it previously became NULL
with no error. A value that is not a container at all is 42804.
An I/O failure while writing a parquet file is now permanent: every later
write and Close return it, and the file is never finalized. A failure
part-way through a row group previously produced a readable file with a
column missing.
IPv6 and UUID values must be sixteen bytes (a zero-length value, the
legacy absence form, is still accepted).
A table or column name that cannot be part of an object key - containing /, \ or a NUL byte, being . or .., or beginning with . - is
refused at CREATE TABLE with 42602. On storage.type: file such a name
previously wrote data outside the configured data directory.
A value that a column cannot hold now fails the WRITE instead of being
stored as a different number. An integer with no INT32 - through the
programmatic ingest API, the Go writer, or a PORT/PROTOCOL/DATE cast -
raises 22003 integer out of range; previously it wrapped (3000000000
was stored as -1294967296, and 3000000000::DATE answered -3543531-12-19).
The programmatic ingest API now refuses at the door exactly what the
parquet writer refuses. A malformed IPv4/IPv6/MAC/UUID/DURATION
literal, a bad TIMESTAMP, or an out-of-range DATE is rejected on the
call that carried it; previously the door checked only the Go type, so the
bad literal was admitted and the write failed later at flush, taking an
entire buffer of otherwise-good rows down with it and reporting against a
partition rather than the call that caused it.
Object keys and bucket names are validated on every operation, in every
object store (MemStore, FileStore, and the S3-compatible store) - not
only on write. List, BucketExists and MakeBucket also hold the bucket
name to a single path component.
A relation or column name longer than 63 bytes is refused at CREATE TABLE with 42622 - PostgreSQL's own NAMEDATALEN - 1. PostgreSQL
truncates an over-length name and emits a notice; wadjet refuses it instead
(recorded in ADR-0012).