Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Compare & Sync status bar shows the target connection's icon instead of a colored dot.
- Themes move to the Trash instead of being deleted. Undo reverts a trash, rename, duplicate or import.
- Editor tab strip over a themed window on macOS 26 and later drawn in a system fill instead of the theme color.
- Plugin download progress shown as the bytes arrive instead of jumping to full at the end.

### Fixed

Expand Down
2 changes: 1 addition & 1 deletion TablePro/Core/Plugins/PluginInstallProgressPresenter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ internal final class PluginInstallProgressPresenter {
parent.beginSheet(panel)
}

// The installer publishes 0 before the first byte, then maybe nothing until the end, so 0 stays indeterminate.
// 0 stays indeterminate; a download without a Content-Length reports nothing before the final 1.
private func update(fraction: Double) {
let clamped = min(max(fraction, 0), 1)
guard clamped > 0 else { return }
Expand Down
14 changes: 3 additions & 11 deletions TablePro/Models/Schema/ColumnDefaultVocabulary.swift
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
//
// ColumnDefaultVocabulary.swift
// TablePro
//
// The default values each engine offers for a column, spelled the way its DDL wants them.
//

import Foundation

/// The menu the Default cell offers, per engine.
Expand All @@ -13,10 +6,9 @@ import Foundation
/// Default field holds. Nothing rewrites it on the way to the server, so an entry that is wrong here is
/// a statement the server rejects.
///
/// Curated in the app and keyed by database type id, the shape `PluginMetadataRegistry.fallbackCategory`
/// already uses. It cannot be keyed by plugin: MySQL and MariaDB share one and spell an expression
/// default differently; PostgreSQL, Redshift, CockroachDB and PGlite share one, and only two of them
/// have `gen_random_uuid()`.
/// Curated in the app and keyed by database type id. It cannot be keyed by plugin: MySQL and MariaDB
/// share one and spell an expression default differently; PostgreSQL, Redshift, CockroachDB and PGlite
/// share one, and only two of them have `gen_random_uuid()`.
///
/// What belongs here is the vocabulary, not the syntax. MySQL takes a `TEXT` or `JSON` default only in
/// parentheses whatever the value is, so that parenthesising is the MySQL driver's job at the point it
Expand Down
Loading