OpenMetadata/bootstrap/sql/migrations/native/1.5.0/mysql/postDataMigrationSQLScript.sql
Mohit Yadav b1620e682a
Fix Users Issue due to capital names (#16828)
* Fix Users Issue due to capital names

* Fixed Tests

* No lowercasing name

* Revert

* toLowerCase

* fix email casing from UI side on basic auth

* compare lowercase email only from the loggedInUser

* address comments

* Updated LowerCase UserName on updates

* revert ui changes

* Migrate Name and Email

* cypress failure

* fix glossary test

* fix activity feed test

* Compare by Lowercasing Email and username

---------

Co-authored-by: Chirag Madlani <12962843+chirag-madlani@users.noreply.github.com>
Co-authored-by: Chira Madlani <chirag@getcollate.io>
Co-authored-by: karanh37 <karanh37@gmail.com>
2024-07-19 11:39:09 +05:30

70 lines
1.7 KiB
SQL

-- matchEnum Test Definition Parameter for columnValuesToBeInSet
UPDATE test_definition
set json = JSON_MERGE_PRESERVE(
json,
'{"parameterDefinition": ['
'{"name": "matchEnum", "displayName": "Match enum", "description": "If enabled, validate that each value independently matches the enum.", "dataType": "BOOLEAN", "required": false, "optionValues": []}'
']}'
)
WHERE name = 'columnValuesToBeInSet'
AND JSON_LENGTH(json, '$.parameterDefinition') < 2;
-- Test Case dyanic test migration
UPDATE test_definition
SET json = JSON_SET(json, '$.supportsDynamicAssertion', true)
WHERE name IN (
'columnValueMaxToBeBetween',
'columnValueMeanToBeBetween',
'columnValueMedianToBeBetween',
'columnValueMinToBeBetween',
'columnValueStdDevToBeBetween',
'columnValuesLengthsToBeBetween',
'columnValuesSumToBeBetween',
'columnValuesToBeBetween',
'tableRowCountToBeBetween'
);
-- Remove Duplicate Usernames and Lowercase Them
WITH cte AS (
SELECT
id,
ROW_NUMBER() OVER (PARTITION BY LOWER(JSON_UNQUOTE(JSON_EXTRACT(json, '$.name'))) ORDER BY id) as rn
FROM
user_entity
)
DELETE FROM user_entity
WHERE id IN (
SELECT id
FROM cte
WHERE rn > 1
);
UPDATE user_entity
SET json = JSON_SET(
json,
'$.name',
LOWER(JSON_UNQUOTE(JSON_EXTRACT(json, '$.name')))
);
-- Remove Duplicate Emails and Lowercase Them
WITH cte AS (
SELECT
id,
ROW_NUMBER() OVER (PARTITION BY LOWER(JSON_UNQUOTE(JSON_EXTRACT(json, '$.email'))) ORDER BY id) as rn
FROM
user_entity
)
DELETE FROM user_entity
WHERE id IN (
SELECT id
FROM cte
WHERE rn > 1
);
UPDATE user_entity
SET json = JSON_SET(
json,
'$.email',
LOWER(JSON_UNQUOTE(JSON_EXTRACT(json, '$.email')))
);