Skip to content

fix(linux): strict MySQL saves in the server zone, PostgreSQL data fixes - #3471

Merged
datlechin merged 9 commits into
linuxfrom
fix/linux-mysql-pg-data
Oct 17, 2026
Merged

datlechin merged 9 commits into
linuxfrom
fix/linux-mysql-pg-data

Conversation

@datlechin

Copy link
Copy Markdown
Member
  • MySQL: the workspace session adds STRICT_ALL_TABLES, so a server started with a lenient sql_mode refuses a value the column can't hold instead of altering it. Editor sessions keep the server's mode.
  • Core: DestructiveChange::SetNotNull, so making a column NOT NULL goes through the review dialog.
  • MySQL: reads stay in UTC; a save or schema change switches to @@GLOBAL.time_zone and back (a connection that can't switch back is closed). TIMESTAMP values bind through CONVERT_TZ. An instant in a repeated DST hour, which MySQL and MariaDB store an hour off, refuses the batch. TIMESTAMP constant defaults are restated in the server zone. Design in server_zone.rs and docs/drivers/mysql.md.
  • PostgreSQL: a narrowing USING casts to the unbounded type (varchar, bpchar, varbit, arrays), so a value that doesn't fit is refused instead of cut.
  • PostgreSQL: arrays export as quoted array literals ('{"1","2",NULL}') that insert back into typed array columns.
  • PostgreSQL: a SELECT the cursor stopped at the row limit ends as Truncation::ServerStopped, and its banner says the statement did not run past the rows shown.
  • Temporal values: a fraction finer than the column keeps is ScaleExceeded; 24:00:00 parses for time-of-day columns.
  • Docker tests on a lenient MySQL/MariaDB, a +07:00 server, a repeated hour, narrowing, and array round-trip.
  • Tests updated on purpose: unchanged_catalog_type_is_not_type_change, two PostgreSQL DDL tests that expected USING ...::varchar(320), the banner text tests, select_inside_begin_uses_savepoint_cursor_row_limit.

@datlechin
datlechin merged commit 21518c1 into linux Oct 17, 2026
12 of 15 checks passed
@datlechin
datlechin deleted the fix/linux-mysql-pg-data branch October 17, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant