Skip to content

Commit e6a5089

Browse files
committed
Improve release notes
1 parent 3a8b8f7 commit e6a5089

File tree

1 file changed

+41
-28
lines changed

1 file changed

+41
-28
lines changed

docs/docs/releases/0.2.2.md

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,22 @@
77

88
## Summary
99

10-
Mathesar 0.2.2 brings key improvements, including enhanced primary key handling, smart pasting for easier data entry, and various bug fixes. Users can now choose UUIDs as primary keys, designate any existing column as a primary key during data import, and benefit from a new UUID column type.
10+
Mathesar 0.2.2 introduces several improvements, including enhanced primary key handling, smart pasting for easier data entry, and various bug fixes. Users can now choose UUIDs as primary keys, designate any existing column as a primary key during data import, and benefit from a new UUID column type.
1111

1212
_This page provides a comprehensive list of all changes in the release._
1313

1414
## Improvements
1515

16-
### Enhanced primary key handling
16+
### Inserting records when the primary key has no default value
1717

18-
Mathesar 0.2.2 introduces several improvements to working with primary keys, including support for UUIDs as primary keys. We've also added a dedicated UUID column type, making it easier to work with UUIDs in any column—not just primary keys.
18+
Previously, Mathesar required a default value to be set on the primary key column in order to insert records. However there are some valid use cases for primary keys without default values, such as a TEXT column that receives a manually-supplied value on each insert. In 0.2.2 Mathesar now allows you to insert records into such tables by entering the primary key values during the insert.
1919

20-
#### Improvements when importing data
20+
[#4337](https://github.com/mathesar-foundation/mathesar/pull/4337 "Refactor records store to improve readability")
21+
[#4348](https://github.com/mathesar-foundation/mathesar/pull/4348 "Allow editing PK cell when inserting rows, when PK column does not have a dynamic default set")
2122

22-
When importing existing data, Mathesar automatically generates a primary key column if one isn’t provided. Previously, importing a simple CSV like:
23+
### Configuring primary keys during import
24+
25+
When importing existing data, Mathesar automatically generates a primary key column. Previously, importing a simple CSV like:
2326

2427
```csv
2528
First Name,Last Name
@@ -29,40 +32,36 @@ Laura,Stein
2932
Amy,Richards
3033
```
3134

32-
would result in Mathesar automatically adding an integer primary key column that auto-increments by default.
35+
would result in Mathesar automatically adding an integer "id" primary key column that auto-increments by default.
3336

3437
That's still the default behavior. But now, you can choose the type of generated primary key column: either an auto-incrementing integer _or_ a UUID column with a default value of a random UUIDv4:
3538

3639
![A screenshot of Mathesar's import UI showing the new settings for using a generated UUID primary key column](../assets/releases/0.2.2/import-uuid-col.png)
3740

3841
Additionally, you can now designate _any_ existing column as the primary key. If you select a UUID or Number column, you’ll have the option to apply the same default value settings that Mathesar uses for generated primary key columns.
3942

40-
#### Improvements to creating tables
43+
[#4353](https://github.com/mathesar-foundation/mathesar/pull/4353 "Implement PK config for CSV imports")
44+
[#4358](https://github.com/mathesar-foundation/mathesar/pull/4358 "Fix no-header import bug")
45+
[#4366](https://github.com/mathesar-foundation/mathesar/pull/4366 "Make identity setting declarative in `data_modeling.set_primary_key_column`")
46+
[#4316](https://github.com/mathesar-foundation/mathesar/pull/4316 "Simplify CSV wrangling logic when importing data")
47+
48+
### Configuring primary keys when creating tables from scratch
4149

4250
When creating new tables in Mathesar, you'll now have the option to set the name and type of your primary key column:
4351

4452
![A screenshot of Mathesar's import UI showing the new settings for using a generated UUID primary key column](../assets/releases/0.2.2/table-create.png)
4553

4654
As when importing data, you can choose between an auto-incrementing integer _or_ a UUID column with a default value of a random UUIDv4.
4755

48-
#### Improvements to tables without primary keys
49-
50-
Previously, Mathesar would display all kinds of errors when viewing and attempting to edit records in tables without primary keys. Now, we've made the limitations of working with tables without primary keys in Mathesar much clearer:
51-
52-
- Cell editing is disabled
53-
- The placeholder row and 'Add new record' button is hidden.
54-
- We display an attention indicator with a tooltip that mentions that row level operations are not supported.
56+
[#4331](https://github.com/mathesar-foundation/mathesar/pull/4331 "Backend functions to modify table primary keys")
5557

56-
[#4337](https://github.com/mathesar-foundation/mathesar/pull/4337 "Refactor records store to improve readability") [#4331](https://github.com/mathesar-foundation/mathesar/pull/4331 "Backend functions to modify table primary keys") [#4353](https://github.com/mathesar-foundation/mathesar/pull/4353 "Implement PK config for CSV imports") [#4348](https://github.com/mathesar-foundation/mathesar/pull/4348 "Allow editing PK cell when inserting rows, when PK column does not have a dynamic default set") [#4358](https://github.com/mathesar-foundation/mathesar/pull/4358 "Fix no-header import bug") [#4349](https://github.com/mathesar-foundation/mathesar/pull/4349 "Improve experience for tables without primary keys") [#4366](https://github.com/mathesar-foundation/mathesar/pull/4366 "Make identity setting declarative in `data_modeling.set_primary_key_column`") [#4316](https://github.com/mathesar-foundation/mathesar/pull/4316 "Simplify CSV wrangling logic when importing data") [#4320](https://github.com/mathesar-foundation/mathesar/pull/4320 "Implement UUID type on front end") [#4329](https://github.com/mathesar-foundation/mathesar/pull/4329 "support uuid casts and inference") [#4321](https://github.com/mathesar-foundation/mathesar/pull/4321 "Skip PK column in records.patch from record page") [#4359](https://github.com/mathesar-foundation/mathesar/pull/4359 "Make recovery easier during failed import, show proper errors during header change failure")
58+
### Pasting data into multiple Mathesar cells
5759

60+
Mathesar now supports pasting, making it easy to update multiple cells across multiple rows and/or columns in one go. It automatically handles type conversions, so you can paste data from different formats without hassle. Linked column references work just like any other value. You can also copy-paste multiple cells from a variety of other spreadsheet applications directly into Mathesar.
5861

59-
### Smart pasting to and from cells
62+
To paste cells that you've copied, select the top-left cell of the cell range in Mathesar where you want to paste. Then use your system's keyboard shortcut to paste — <kbd>⌘ Command</kbd>+<kbd>V</kbd> on macOS, or <kbd>Ctrl</kbd>+<kbd>V</kbd> on Windows and Linux.
6063

61-
Mathesar now supports smart pasting, making it easy to update multiple cells across rows in one go. Mathesar automatically handles type conversions, so you can paste data from different formats without hassle. Linked column references work just like any other value.
62-
63-
After selecting and copying cells, highlight the cells to paste into and press your system's keyboard shortcut (`Command+V`/`⌘+V` on macOS, and `Ctrl+V` on Windows and Linux).
64-
65-
You'll see a conformation dialog:
64+
You'll see a confirmation dialog:
6665

6766
![A screenshot of Mathesar's "paste confirmation" dialog](../assets/releases/0.2.2/pasting-4.png)
6867

@@ -73,6 +72,19 @@ After choosing "paste", your selected rows will be updated with the new values.
7372
[#4258](https://github.com/mathesar-foundation/mathesar/pull/4258 "Support pasting data into cells from system clipboard") [#4322](https://github.com/mathesar-foundation/mathesar/pull/4322 "Allow pasting empty strings in NOT NULL columns") [#4327](https://github.com/mathesar-foundation/mathesar/pull/4327 "Add PK control to New Table form") [#4326](https://github.com/mathesar-foundation/mathesar/pull/4326 "Define pkey during table.add")
7473
[#4345](https://github.com/mathesar-foundation/mathesar/pull/4345 "Fix bug when pasting into cell n edit mode")
7574

75+
### Improved support for UUID types
76+
77+
We've elevated PostgreSQL's [`uuid` data type](https://www.postgresql.org/docs/current/datatype-uuid.html) to be a fully-supported type from within Mathesar.
78+
79+
- As mentioned in the sections above, you can now configure UUID primary keys for tables created via import and from scratch.
80+
- UUID columns now display with an appropriate icon and column type label.
81+
- Hexadecimal serialization of UUIDs in CSV data will be inferred to the UUID type during import.
82+
- When searching and filtering records, you can now enter a substring of a UUID hexadecimal representation.
83+
- You can now add UUID columns to existing tables from Mathesar. (However you cannot yet [define dynamic defaults](https://github.com/mathesar-foundation/mathesar/issues/3128) for those columns from within Mathesar.)
84+
85+
[#4316](https://github.com/mathesar-foundation/mathesar/pull/4316 "Simplify CSV wrangling logic when importing data")
86+
[#4329](https://github.com/mathesar-foundation/mathesar/pull/4329 "support uuid casts and inference")
87+
[#4351](https://github.com/mathesar-foundation/mathesar/pull/4351 "Fix UUID search")
7688

7789
### Additional improvements
7890

@@ -81,24 +93,25 @@ After choosing "paste", your selected rows will be updated with the new values.
8193

8294
## Bug fixes
8395

84-
- Fix UUID search [#4351](https://github.com/mathesar-foundation/mathesar/pull/4351 "Fix UUID search")
85-
- Revert custom line-height on Dropdown [#4344](https://github.com/mathesar-foundation/mathesar/pull/4344 "Revert custom line-height on Dropdown")
86-
- Remove mathesar_money from type inference [#4350](https://github.com/mathesar-foundation/mathesar/pull/4350 "Remove mathesar_money from type inference")
87-
- Fix documentation version chooser [#4291](https://github.com/mathesar-foundation/mathesar/pull/4291 "Fix documentation version chooser")
88-
- Make SQL tests fail when test file is broken [#4293](https://github.com/mathesar-foundation/mathesar/pull/4293 "Make SQL tests fail when test file is broken")
96+
- Gracefully handle restrictions on editing data in tables lacking primary keys [#4349](https://github.com/mathesar-foundation/mathesar/pull/4349 "Improve experience for tables without primary keys")
97+
- Fix error when saving a record in a table with a "GENERATED ALWAYS AS IDENTITY" primary key [#4321](https://github.com/mathesar-foundation/mathesar/pull/4321 "Skip PK column in records.patch from record page")
98+
- Allow the user to recover from failed type inference during import [#4359](https://github.com/mathesar-foundation/mathesar/pull/4359 "Make recovery easier during failed import, show proper errors during header change failure")
99+
- Fix bug causing Mathesar to infer certain text strings as money values when importing [#4350](https://github.com/mathesar-foundation/mathesar/pull/4350 "Remove mathesar_money from type inference")
100+
- Fix text descender clipping in Select dropdown elements [#4344](https://github.com/mathesar-foundation/mathesar/pull/4344 "Revert custom line-height on Dropdown")
89101
- Fix problem with timezones and date/time keywords [#4317](https://github.com/mathesar-foundation/mathesar/pull/4317 "Fix problem with timezones and date/time keywords")
90-
- Invalid uri empty page [#4365](https://github.com/mathesar-foundation/mathesar/pull/4365 "4187 invalid uri empty page")
102+
- Don't render invalid URLs as hyperlinks in URI cells [#4365](https://github.com/mathesar-foundation/mathesar/pull/4365 "4187 invalid uri empty page")
91103

92104
## Documentation
93105

106+
- Fix documentation version chooser [#4291](https://github.com/mathesar-foundation/mathesar/pull/4291 "Fix documentation version chooser")
94107
- Fix search result styling [#4287](https://github.com/mathesar-foundation/mathesar/pull/4287 "Fix search result styling")
95108
- Update README.md to fix typo [#4361](https://github.com/mathesar-foundation/mathesar/pull/4361 "Update README.md to fix typo")
96109

97110
## Maintenance
98111

99112
- Revert "Bump django from 4.2.18 to 4.2.20" [#4325](https://github.com/mathesar-foundation/mathesar/pull/4325 "Revert Bump django from 4.2.18 to 4.2.20")
100113
- Bump django from 4.2.18 to 4.2.20 [#4315](https://github.com/mathesar-foundation/mathesar/pull/4315 "Bump django from 4.2.18 to 4.2.20")
101-
114+
- Make SQL tests fail when test file is broken [#4293](https://github.com/mathesar-foundation/mathesar/pull/4293 "Make SQL tests fail when test file is broken")
102115

103116
## Upgrading to 0.2.2 {:#upgrading}
104117

0 commit comments

Comments
 (0)