Roberto Dip 9896d591c4 ensure duplicates are removed before enforcing collations (#10814)
Related to #10787, this tries to find in the tables with High likelihood
described in the issue.

This successfully accounts for unique keys that contain leading/trailing
whitespace and are using a collation with a pad attribute set to `NO
PAD` (considers whitespace as any other character instead of ignoring
it)

I haven't found a way to successfully detect the same scenario for
special unicode characters, for example:

```
mysql> SELECT TABLE_NAME, TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'software';
+------------+--------------------+
| TABLE_NAME | TABLE_COLLATION    |
+------------+--------------------+
| software   | utf8mb4_general_ci |
+------------+--------------------+
1 row in set (0.01 sec)

mysql> select vendor COLLATE utf8mb4_unicode_ci from software where name = 'zchunk-libs' GROUP BY vendor COLLATE utf8mb4_unicode_ci;
+-----------------------------------+
| vendor COLLATE utf8mb4_unicode_ci |
+-----------------------------------+
| vendor                            |
| vendor?                           |
+-----------------------------------+
2 rows in set (0.01 sec)

mysql> ALTER TABLE `software` CONVERT TO CHARACTER SET `utf8mb4` COLLATE `utf8mb4_unicode_ci`;
ERROR 1062 (23000): Duplicate entry 'zchunk-libs-1.2.1-rpm_packages--vendor\2007-x86_64' for key 'unq_name'
```
> **Note** that `?`  in "vendor?" is an unicode character
2023-03-29 13:31:24 -03:00
2023-03-22 15:14:51 -05:00
2023-03-29 11:26:44 -05:00
2023-03-29 09:24:33 -04:00
2023-03-29 09:24:33 -04:00
2023-03-15 15:27:57 -05:00
2023-03-22 23:15:46 -05:00

Fleet logo, landscape, dark text, transparent background

Website   News   Report a bug

Run Tests   Go Report Card   CII Best Practices   Twitter Follow  

Fleet is the lightweight, open source telemetry platform for servers and workstations. Deploy osquery with Fleet to get comprehensive, customizable data from all your devices and operating systems without the downtime risk.

Try Fleet

Head to fleetdm.com/try-fleet to fire up a one-off cloud instance for quickly trying out Fleet.

Now what?

Check out the Learn how to use Fleet doc to learn how to add your device to Fleet and how to ask questions about your devices by running queries.

Team

Fleet is independently backed and actively maintained with the help of many amazing contributors.

📖 In keeping with our value of openness, Fleet Device Management's company handbook is public and open source. You can read about the history of Fleet and osquery and our commitment to improving the product. To upgrade from Fleet ≤3.2.0, just follow the upgrading steps for the latest release from this repository (it'll work out of the box).

Documentation

Documentation for Fleet can be found here.

Community

Chat

Please join us in the #fleet channel on osquery Slack.

Contributing

Contributions are welcome, whether you answer questions on Slack/GitHub/StackOverflow/Twitter, improve the documentation or website, write a tutorial, give a talk, start a local osquery meetup, troubleshoot reported issues, or submit a patch. The Fleet code of conduct is on GitHub.

Banner featuring a futuristic cloud city with the Fleet logo

S
Description
No description provided
Readme MIT
1.6 GiB
Languages
Go 52.5%
TypeScript 37.5%
JavaScript 4.3%
PowerShell 1.4%
Augeas 0.9%
Other 3%