Bohdan
acab46acd8
Translated using Weblate (Ukrainian)
...
Currently translated at 100.0% (2656 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
2025-05-06 08:35:57 +02:00
Tom De Moor
17f159f0c6
Translated using Weblate (Dutch)
...
Currently translated at 99.6% (2648 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
2025-05-06 08:35:57 +02:00
MArtin Johnson
bfb3208599
Translated using Weblate (Swedish)
...
Currently translated at 100.0% (2656 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/sv/
2025-05-06 08:35:57 +02:00
Serhii Khomiuk
9d1d88f1b2
Translated using Weblate (Ukrainian)
...
Currently translated at 99.7% (2649 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
2025-05-06 08:35:57 +02:00
Lukáš Mlčůch
ea3f90ef73
Translated using Weblate (Czech)
...
Currently translated at 100.0% (2656 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/cs/
2025-05-06 08:35:57 +02:00
jprusch
f9ff866019
Translated using Weblate (German)
...
Currently translated at 100.0% (2656 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/de/
2025-05-06 08:35:57 +02:00
master7
486574f6db
Translated using Weblate (Polish)
...
Currently translated at 100.0% (2656 of 2656 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pl/
2025-05-06 08:35:57 +02:00
unified-ci-app[bot]
027704e922
Update latest minor version to 10.9.0 ( #30943 )
...
Automatic Merge
2025-05-06 09:28:43 +03:00
Harrison Healey
0c38d893e3
Fix errcheck issue on master ( #30938 )
2025-05-05 16:36:25 +00:00
Ivy Gesare
1bca62dc83
[MM-61505] Fix errcheck issues in server/channels/app/team_test.go ( #29146 )
...
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com >
2025-05-05 12:43:16 +02:00
kasyap dharanikota
ddb4c4360c
fix errcheck in server/channels/app/platform/session.go ( #30595 )
...
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com >
2025-05-05 12:18:47 +02:00
Harshil Sharma
b7ff54acee
System console tiered license check ( #30916 )
...
* Make the Mobile Security settings available on Enterprise Advance
* rename to minLicenseTier
* used license tier checks in system console
* lint fix
* renamed license in test
* Made license name display in single line
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com >
2025-05-05 14:18:48 +05:30
Harshil Sharma
a76c063d85
Renamed premium SKU to Enterprise Advanced ( #30882 )
2025-05-02 11:34:46 +05:30
Jesse Hallam
e1f47e22e7
MM-62158: group store no SELECT * (Part 1) ( #30276 )
...
* improved test coverage
* initial pass on removing SELECT * from group store
2025-05-01 09:39:05 -03:00
Miguel de la Cruz
2decc2ccdb
Prevent synced CPA values to be updated from the API ( #30687 )
...
* Prevents the API from updating synced CPA values
The patch functions for CPA values now accept a parameter that checks
if they should allow for synced values to be updated, and prevent
those updates if necessary
* Fix linter
* Fix parameter after merge
---------
Co-authored-by: Miguel de la Cruz <miguel@ctrlz.es >
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com >
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-30 18:43:05 +02:00
Claudio Costa
d443db2c21
Prepackage Calls v1.7.1 ( #30863 )
2025-04-29 07:51:13 -06:00
Ben Schumacher
df3560ed9c
[MM-61086] Fix errcheck linter issue in batch_worker_test.go ( #30644 )
2025-04-29 11:08:38 +02:00
Ben Schumacher
f1ddeec2f6
[MM-61778] Fix errcheck issues in web_hub_test.go ( #30676 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-04-29 10:23:53 +02:00
Ben Schumacher
2f5b70bfa2
[MM-29108] Fix errcheck issues in server/channels/app/team.go ( #30683 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-04-29 09:03:06 +02:00
Ben Schumacher
d0c4780eb1
[MM-28761] Fix errcheck linter issues in hosted_purchase_screening worker ( #30624 )
2025-04-29 08:57:52 +02:00
Ben Schumacher
5ee308bd83
[MM-61467] Fix errcheck linter issues in post_test.go ( #30686 )
2025-04-29 08:50:47 +02:00
MArtin Johnson
d646bd980d
Translated using Weblate (Swedish)
...
Currently translated at 100.0% (2651 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/sv/
2025-04-28 17:26:29 +02:00
Tom De Moor
fa0b149e19
Translated using Weblate (Dutch)
...
Currently translated at 99.6% (2643 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
2025-04-28 17:26:29 +02:00
jprusch
99a6c8ef5a
Translated using Weblate (German)
...
Currently translated at 100.0% (2651 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/de/
2025-04-28 17:26:29 +02:00
ThrRip
608ca11389
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (2651 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/
2025-04-28 17:26:29 +02:00
master7
bed64d2336
Translated using Weblate (Polish)
...
Currently translated at 100.0% (2651 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pl/
2025-04-28 17:26:29 +02:00
Matthew Williams
cdc46023b5
Translated using Weblate (English (Australia))
...
Currently translated at 100.0% (2651 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/en_AU/
2025-04-28 17:26:29 +02:00
Serhii Khomiuk
dafc50f49a
Translated using Weblate (Ukrainian)
...
Currently translated at 100.0% (2651 of 2651 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
2025-04-28 17:26:29 +02:00
David Krauser
94dcd9f311
Upgrade logr to v2.0.22 ( #30827 )
2025-04-28 10:20:42 -04:00
Agniva De Sarker
efde5e2717
[AI assisted] MM-62755: Refactor scanning to map to a util ( #30780 )
...
With some neat generics, I was able to refactor
the scanning to a util function. I used it to
refactor 3 places and also removed an unnecessary method.
Claude was quite good here.
https://mattermost.atlassian.net/browse/MM-62755
```release-note
NONE
```
2025-04-28 19:21:12 +05:30
Ben Schumacher
cd5523f5fb
MM-29092 Fix error handling in auto_environment.go ( #30610 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Caleb Roseland <caleb@calebroseland.com >
2025-04-28 15:05:31 +02:00
Ben Schumacher
eea39a5f23
[MM-61087] Fix errcheck linter issues in channels/jobs/helper_test.go ( #30643 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-04-28 15:02:10 +02:00
Ben Schumacher
6a228877b7
[MM-28762] Fix errcheck issues in jobs.go ( #30708 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-04-28 14:57:40 +02:00
Ben Schumacher
6fc60c8e5f
[MM-61105] Fix errcheck linter errors in config_test.go ( #30689 )
2025-04-28 14:53:45 +02:00
Jesse Hallam
291d5a2ba7
fix missing newline in upgrader.go ( #30853 )
2025-04-25 11:21:37 -03:00
Daniel Espino García
71334c6d8b
Report a problem ( #30444 )
...
* Add report a problem type and allow logs config
* Improve device type logic
* Add tests and minor fixes
* Add texts
* Fix tests by avoiding circular dependencies
* Fix test
* Fix useexternallink updating mailtos, and changing the content of query parameters
* Fix texts
* Fix e2e test
* Fix tsc
---------
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-25 11:08:39 +02:00
Agniva De Sarker
29f7c895b8
MM-63878: Fix INSERT IGNORE in saveChannelT ( #30850 )
...
INSERT IGNORE will ignore ALL errors in the INSERT statement.
This is not what was intended. The right way is to do a
redundant update on duplicate key.
It's not great, but that's how MySQL wants us to do it.
https://mattermost.atlassian.net/browse/MM-63878
```release-note
NONE
```
2025-04-24 21:29:09 +05:30
Agniva De Sarker
131cf039bb
MM-63756: Added index to sidebarchannels table ( #30724 )
...
The (s SqlChannelStore) getSidebarCategoriesT gets called quite frequently.
- Team switch
- WS reconnect
- Category created
- Category updated
- Category deleted
Of these 1 and 2 are probably the most commonly called sources. Based on that,
the sidebarChannels table is not that well-optimized. Even though
the query time might be reasonable, without an index, it has to churn a lot of
DB CPU for a sequential scan.
We add a new index to optimize this.
CREATE INDEX idx_sidebarchannels_categoryid ON sidebarchannels(categoryid);
```
Before:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=40854.18..40854.19 rows=4 width=193) (actual time=251.635..251.646 rows=204 loops=1)
Sort Key: sidebarcategories.sortorder, sidebarchannels.sortorder
Sort Method: quicksort Memory: 65kB
Buffers: shared hit=1203 read=23668
-> Nested Loop (cost=8.87..40854.14 rows=4 width=193) (actual time=251.345..251.455 rows=204 loops=1)
Buffers: shared hit=1203 read=23668
-> Nested Loop (cost=0.41..9.47 rows=1 width=54) (actual time=0.068..0.074 rows=1 loops=1)
Buffers: shared hit=5
-> Seq Scan on teams (cost=0.00..1.03 rows=1 width=27) (actual time=0.024..0.026 rows=1 loops=1)
Filter: (((id)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text) AND (deleteat = 0))
Rows Removed by Filter: 1
Buffers: shared hit=1
-> Index Scan using teammembers_pkey on teammembers (cost=0.41..8.43 rows=1 width=27) (actual time=0.039..0.043 rows=1 loops=1)
Index Cond: (((teamid)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text) AND ((userid)::text = 'tc3p1yqw67d8idcp3g98awexqe'::text))
Filter: (deleteat = 0)
Buffers: shared hit=4
-> Hash Right Join (cost=8.45..40844.62 rows=4 width=193) (actual time=251.274..251.361 rows=204 loops=1)
Hash Cond: ((sidebarchannels.categoryid)::text = (sidebarcategories.id)::text)
Buffers: shared hit=1198 read=23668
-> Seq Scan on sidebarchannels (cost=0.00..37514.77 rows=1265277 width=100) (actual time=0.043..99.345 rows=1265444 loops=1)
Buffers: shared hit=1194 read=23668
-> Hash (cost=8.44..8.44 rows=1 width=158) (actual time=0.047..0.047 rows=6 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 10kB
Buffers: shared hit=4
-> Index Scan using idx_sidebarcategories_userid_teamid on sidebarcategories (cost=0.42..8.44 rows=1 width=158) (actual time=0.029..0.037 rows=6 loops=1)
Index Cond: (((userid)::text = 'tc3p1yqw67d8idcp3g98awexqe'::text) AND ((teamid)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text))
Buffers: shared hit=4
Planning:
Buffers: shared hit=9
Planning Time: 1.215 ms
Execution Time: 251.755 ms
(31 rows)
After:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=1544.53..1544.54 rows=4 width=192) (actual time=0.834..0.859 rows=204 loops=1)
Sort Key: sidebarcategories.sortorder, sidebarchannels.sortorder
Sort Method: quicksort Memory: 65kB
Buffers: shared hit=58
-> Nested Loop Left Join (cost=8.53..1544.49 rows=4 width=192) (actual time=0.066..0.252 rows=204 loops=1)
Buffers: shared hit=58
-> Nested Loop (cost=0.83..17.93 rows=1 width=157) (actual time=0.042..0.098 rows=6 loops=1)
Buffers: shared hit=34
-> Nested Loop (cost=0.42..9.48 rows=1 width=157) (actual time=0.030..0.049 rows=6 loops=1)
Buffers: shared hit=10
-> Index Scan using idx_sidebarcategories_userid_teamid on sidebarcategories (cost=0.42..8.44 rows=1 width=157) (actual time=0.018..0.022 rows=6 loops=1)
Index Cond: (((userid)::text = 'tc3p1yqw67d8idcp3g98awexqe'::text) AND ((teamid)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text))
Buffers: shared hit=4
-> Seq Scan on teams (cost=0.00..1.03 rows=1 width=27) (actual time=0.002..0.003 rows=1 loops=6)
Filter: (((id)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text) AND (deleteat = 0))
Rows Removed by Filter: 1
Buffers: shared hit=6
-> Index Scan using teammembers_pkey on teammembers (cost=0.41..8.43 rows=1 width=27) (actual time=0.007..0.007 rows=1 loops=6)
Index Cond: (((teamid)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text) AND ((userid)::text = 'tc3p1yqw67d8idcp3g98awexqe'::text))
Filter: (deleteat = 0)
Buffers: shared hit=24
-> Bitmap Heap Scan on sidebarchannels (cost=7.69..1522.35 rows=421 width=100) (actual time=0.012..0.017 rows=34 loops=6)
Recheck Cond: ((categoryid)::text = (sidebarcategories.id)::text)
Heap Blocks: exact=6
Buffers: shared hit=24
-> Bitmap Index Scan on idx_sidebarchannels_categoryid (cost=0.00..7.58 rows=421 width=0) (actual time=0.010..0.010 rows=34 loops=6)
Index Cond: ((categoryid)::text = (sidebarcategories.id)::text)
Buffers: shared hit=18
Planning:
Buffers: shared hit=18
Planning Time: 0.543 ms
Execution Time: 0.968 ms
(32 rows)
```
I have also looked at potentially re-ordering the JOINs to make
sidebarchannels and sidebarcategories JOIN earlier, but that didn't give
a major benefit.
Also looked at adding a compound index with (categoryid, sortorder) to improve
sorting performance, but that didn't give a major benefit from what the single
column index already gives.
The `completePopulatingCategoryChannelsT` query also partially benefits
from this. But the Postgres optimizer sometimes selects the index on categoryId
and sometimes on ChannelId, both giving equivalent performance. So there's no major
improvement there, but at the same time, no regression as well.
```
Original:
[bigdb] # EXPLAIN (ANALYZE, BUFFERS) SELECT Id FROM ChannelMembers LEFT JOIN Channels ON Channels.Id=ChannelMembers.ChannelId WHERE (ChannelMembers.UserId = 'tc3p1yqw67d8idcp3g98awexqe' AND Channels.Type IN ('D'
,'G') AND Channels.DeleteAt = 0 AND NOT EXISTS ( SELECT 1 FROM SidebarChannels JOIN SidebarCategories on SidebarChannels.CategoryId=SidebarCategories.Id WHERE (SidebarChannels.ChannelId = ChannelMembers.ChannelI
d AND SidebarCategories.UserId = 'tc3p1yqw67d8idcp3g98awexqe' AND SidebarCategories.TeamId = '3ee5y5ok6jgxicrmqstdnghmfr') )) ORDER BY DisplayName ASC;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=5864.68..5865.84 rows=463 width=40) (actual time=9.008..9.022 rows=39 loops=1)
Sort Key: channels.displayname
Sort Method: quicksort Memory: 27kB
Buffers: shared hit=2112
-> Nested Loop Anti Join (cost=1.96..5844.18 rows=463 width=40) (actual time=0.188..8.932 rows=39 loops=1)
Buffers: shared hit=2112
-> Nested Loop (cost=0.99..3476.66 rows=463 width=67) (actual time=0.159..7.952 rows=39 loops=1)
Buffers: shared hit=1956
-> Index Only Scan using idx_channelmembers_user_id_channel_id_last_viewed_at on channelmembers (cost=0.56..40.78 rows=470 width=27) (actual time=0.036..0.467 rows=437 loops=1)
Index Cond: (userid = 'tc3p1yqw67d8idcp3g98awexqe'::text)
Heap Fetches: 45
Buffers: shared hit=208
-> Memoize (cost=0.43..7.69 rows=1 width=40) (actual time=0.016..0.016 rows=0 loops=437)
Cache Key: channelmembers.channelid
Cache Mode: logical
Hits: 0 Misses: 437 Evictions: 0 Overflows: 0 Memory Usage: 42kB
Buffers: shared hit=1748
-> Index Scan using channels_pkey on channels (cost=0.42..7.68 rows=1 width=40) (actual time=0.015..0.015 rows=0 loops=437)
Index Cond: ((id)::text = (channelmembers.channelid)::text)
Filter: ((type = ANY ('{D,G}'::channel_type[])) AND (deleteat = 0))
Rows Removed by Filter: 1
Buffers: shared hit=1748
-> Nested Loop (cost=0.97..5.10 rows=1 width=27) (actual time=0.023..0.023 rows=0 loops=39)
Buffers: shared hit=156
-> Index Only Scan using sidebarchannels_pkey on sidebarchannels (cost=0.55..4.56 rows=1 width=92) (actual time=0.022..0.022 rows=0 loops=39)
Index Cond: (channelid = (channelmembers.channelid)::text)
Heap Fetches: 0
Buffers: shared hit=156
-> Index Scan using sidebarcategories_pkey on sidebarcategories (cost=0.42..0.48 rows=1 width=65) (never executed)
Index Cond: ((id)::text = (sidebarchannels.categoryid)::text)
Filter: (((userid)::text = 'tc3p1yqw67d8idcp3g98awexqe'::text) AND ((teamid)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text))
Planning:
Buffers: shared hit=48 dirtied=1
Planning Time: 2.222 ms
Execution Time: 9.142 ms
(35 rows)
New:
[bigdb] # EXPLAIN (ANALYZE, BUFFERS) SELECT Id FROM ChannelMembers LEFT JOIN Channels ON Channels.Id=ChannelMembers.ChannelId WHERE (ChannelMembers.UserId = 'tc3p1yqw67d8idcp3g98awexqe' AND Channels.Type IN ('D'
,'G') AND Channels.DeleteAt = 0 AND NOT EXISTS ( SELECT 1 FROM SidebarChannels JOIN SidebarCategories on SidebarChannels.CategoryId=SidebarCategories.Id WHERE (SidebarChannels.ChannelId = ChannelMembers.ChannelId AND SidebarCategories.UserId = 'tc3p1yqw67d8idcp3g98awexqe' AND SidebarCategories.TeamId = '3ee5y5ok6jgxicrmqstdnghmfr') )) ORDER BY DisplayName ASC;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=5059.95..5061.11 rows=463 width=40) (actual time=12.072..12.086 rows=39 loops=1)
Sort Key: channels.displayname
Sort Method: quicksort Memory: 27kB
Buffers: shared hit=1984
-> Nested Loop Anti Join (cost=9.10..5039.45 rows=463 width=40) (actual time=0.751..12.009 rows=39 loops=1)
Join Filter: ((sidebarchannels.channelid)::text = (channelmembers.channelid)::text)
Rows Removed by Join Filter: 7839
Buffers: shared hit=1984
-> Nested Loop (cost=0.99..3476.66 rows=463 width=67) (actual time=0.161..7.579 rows=39 loops=1)
Buffers: shared hit=1956
-> Index Only Scan using idx_channelmembers_user_id_channel_id_last_viewed_at on channelmembers (cost=0.56..40.78 rows=470 width=27) (actual time=0.036..0.449 rows=437 loops=1)
Index Cond: (userid = 'tc3p1yqw67d8idcp3g98awexqe'::text)
Heap Fetches: 45
Buffers: shared hit=208
-> Memoize (cost=0.43..7.69 rows=1 width=40) (actual time=0.016..0.016 rows=0 loops=437)
Cache Key: channelmembers.channelid
Cache Mode: logical
Hits: 0 Misses: 437 Evictions: 0 Overflows: 0 Memory Usage: 42kB
Buffers: shared hit=1748
-> Index Scan using channels_pkey on channels (cost=0.42..7.68 rows=1 width=40) (actual time=0.014..0.014 rows=0 loops=437)
Index Cond: ((id)::text = (channelmembers.channelid)::text)
Filter: ((type = ANY ('{D,G}'::channel_type[])) AND (deleteat = 0))
Rows Removed by Filter: 1
Buffers: shared hit=1748
-> Materialize (cost=8.11..1535.03 rows=4 width=27) (actual time=0.003..0.046 rows=201 loops=39)
Buffers: shared hit=28
-> Nested Loop (cost=8.11..1535.01 rows=4 width=27) (actual time=0.099..0.383 rows=201 loops=1)
Buffers: shared hit=28
-> Index Scan using idx_sidebarcategories_userid_teamid on sidebarcategories (cost=0.42..8.44 rows=1 width=65) (actual time=0.047..0.057 rows=6 loops=1)
Index Cond: (((userid)::text = 'tc3p1yqw67d8idcp3g98awexqe'::text) AND ((teamid)::text = '3ee5y5ok6jgxicrmqstdnghmfr'::text))
Buffers: shared hit=4
-> Bitmap Heap Scan on sidebarchannels (cost=7.69..1522.35 rows=421 width=92) (actual time=0.028..0.040 rows=34 loops=6)
Recheck Cond: ((categoryid)::text = (sidebarcategories.id)::text)
Heap Blocks: exact=6
Buffers: shared hit=24
-> Bitmap Index Scan on idx_sidebarchannels_categoryid (cost=0.00..7.58 rows=421 width=0) (actual time=0.023..0.023 rows=34 loops=6)
Index Cond: ((categoryid)::text = (sidebarcategories.id)::text)
Buffers: shared hit=18
Planning:
Buffers: shared hit=51
Planning Time: 2.240 ms
Execution Time: 12.210 ms
(42 rows)
```
Analysis on MySQL for completion:
```
Before:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| -> Sort: SidebarCategories.SortOrder, SidebarChannels.SortOrder (actual time=277.675..277.675 rows=4 loops=1)
-> Stream results (cost=138558.36 rows=1287808) (actual time=242.506..277.650 rows=4 loops=1)
-> Left hash join (<hash>(SidebarChannels.CategoryId)=<hash>(SidebarCategories.Id)), extra conditions: (SidebarChannels.CategoryId = SidebarCategories.Id) (cost=138558.36 rows=1287808) (actual time=242.498..277.626 rows=4 loops=1)
-> Index lookup on SidebarCategories using idx_sidebarcategories_userid_teamid (UserId='qdggj9pyobgkjpj8htwzizks1r', TeamId='xmh7bupzajnudqf3h4mm76qapy') (cost=1.40 rows=4) (actual time=0.092..0.094 rows=4 loops=1)
-> Hash
-> Table scan on SidebarChannels (cost=8394.55 rows=321952) (actual time=0.123..106.334 rows=300002 loops=1)
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
After:
----------------------------------------------------------------+
| -> Sort: SidebarCategories.SortOrder, SidebarChannels.SortOrder (actual time=0.739..0.742 rows=4 loops=1)
-> Stream results (cost=6.80 rows=7) (actual time=0.468..0.703 rows=4 loops=1)
-> Nested loop left join (cost=6.80 rows=7) (actual time=0.456..0.673 rows=4 loops=1)
-> Index lookup on SidebarCategories using idx_sidebarcategories_userid_teamid (UserId='qdggj9pyobgkjpj8htwzizks1r', TeamId='xmh7bupzajnudqf3h4mm76qapy') (cost=4.38 rows=4) (actual time=0.302..0.313 rows=4 loops=1)
-> Index lookup on SidebarChannels using idx_sidebarchannels_categoryid (CategoryId=SidebarCategories.Id) (cost=0.48 rows=2) (actual time=0.085..0.087 rows=0 loops=4)
|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
```
Timing wise, it takes around 2s to add the index on a table with 1.2M rows
for Postgres. And it takes around 5s on MySQL on a table with 300K rows.
It looks like it takes longer on MySQL, but since both migrations are
non-locking, it should be fine.
https://mattermost.atlassian.net/browse/MM-63756
```release-note
NONE
```
2025-04-24 12:11:28 +05:30
Jesse Hallam
011f179831
avoid SELECT * in preference store ( #30835 )
2025-04-23 15:06:04 -04:00
Agniva De Sarker
271d928e87
MM-63467: Refactor constLabels to a common initializer ( #30779 )
...
This is useful to avoid mistakes while adding new metrics.
https://mattermost.atlassian.net/browse/MM-63467
```release-note
NONE
```
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-23 21:59:51 +05:30
Pablo Vélez
6ae0efd285
MM61173 - settings modal base creation ( #30338 )
...
* MM-61173 - channel settings modal: base modal, initial commit, file creation and base component
* new enhancements to the base modal creation
* revert changes on textbox_links and edit channel header
* fix types and add back unintentioned deleted value
* add the preview textbox component
* extract logic for info tab into its own component
* add the purpose input to the window
* move other component logic to its own component and code clean up
* ability to update channel type
* more advances on the archive channel tab
* fix unit test in textbox
* fix translations
* do not show the archive modal in default channel
* fix issue with url editor not being resetted on undo action
* adjust text and styling for the header and purpose inputs
* remove textboxlinks and use button eye icon
* adjust test and preview button style
* add unit test to channel patch
* move logic from parent modal to info tab component
* fix border issues and focus back to preview textareas
* prevent saving changes when pressing enter when selecting an icon
* enhance input component to cover limits validations and enhances tests
* set default error message for save changes panel
* add props to provide custom value to the buttons
* remove channel input errors on reset button click
* create new component settings textbox
* rename component to advanced textbox and add unit tests
* styling of the info tab and add error state to advanced textbox
* add logic to prevent tab switch with unsaved changes
* adjust url error logic and code clean up
* code clean up and enhance comments
* add char min length to advanced textbox logic
* add the channel settings modal to the new menu
* add new test files and fix reset error
* remove unused error variables
* adjust translations and remove unncesary import
* enhance permissions for archive channels and manage channel settings
* Adjust permission tree so channel admins can convert from private to public
* enhance the test suit around channel conversion type
* fix some e2e tests and solve channel input name issue
* fix unit test by interacting first with the input element
* adjust e2e tests to channel settings modal changes
* remove commented tests and implement pr feedback
* adjust more pr feedback to the code
* more pr feedback enhancements
* further enhancements to tab navigation, and adjust more e2e tests
* remove unused components and fix e2e tests
* revert unnecessary permissions changes
* Add name label to textboxes
* adjust e2e and unit tests
* revert min lenght change value and adjust tests and snapshots
* Channel banner settings (#30721 )
* Added channel banner setting header
* Updated section styling
* handled animation
* handled min and max lengths
* cleanup
* color change fix
* general improvements
* Fixed API test
* removed unused param className
* added e2e tests
* test: add channel settings configuration tab test file
* Based on the context, here's a concise commit message for this change:
feat: Add comprehensive tests for ChannelSettingsConfigurationTab
* added some more tests
* CI
* reverted package-lock.json changes in Playwright
* remove extra border from advaced textbox
* adjust styling for name label in advance texbox and restart preview state on modal close
* sync package.lock in playwright
---------
Co-authored-by: Mattermost Build <build@mattermost.com >
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com >
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com >
2025-04-23 12:49:54 +02:00
Amy Blais
f0dfe1c49f
Updated minimum supported Edge, Chrome and Firefox versions ( #30825 )
...
Automatic Merge
2025-04-23 11:42:43 +03:00
Jesse Hallam
f6aeca7e50
avoid SELECT * in jobs store ( #30832 )
2025-04-23 12:11:09 +05:30
Jesse Hallam
3c9b2511bc
avoid SELECT * in audit store ( #30829 )
2025-04-23 08:37:06 +02:00
Jesse Hallam
94bc32b50c
avoid SELECT * in cluster discovery store ( #30830 )
2025-04-23 05:08:43 +08:00
Jesse Hallam
b095ba22b8
avoid SELECT * in notify admin store ( #30834 )
2025-04-22 17:27:33 -03:00
Jesse Hallam
018c909e2f
avoid SELECT * in command stores ( #30831 )
...
* avoid SELECT * in command stores
* Define column names once and reuse as columns list in selects and inserts
* Define column names once and reuse with ExecBuilder
2025-04-22 19:37:10 +00:00
Jesse Hallam
981d1d869a
avoid SELECT * in channel member history store ( #30828 )
2025-04-22 15:33:32 -04:00
Jesse Hallam
eb8aaba1bf
avoid SELECT * in link metadata store ( #30833 )
...
* avoid SELECT * in link metadata store
* Address PR comment: define column names once and reuse
2025-04-22 19:29:09 +00:00
Jesse Hallam
701ddc896a
MM-63791: guest permissions to teams ( #30789 )
...
* improve th.CreateGuestAndClient
* test coverage for guest user access to teams
* restrict guest access to public teams unless a member
2025-04-22 10:12:22 -03:00