forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit2991ac5
committed
Add SQL functions for Unicode normalization
This adds SQL expressions NORMALIZE() and IS NORMALIZED to convert andcheck Unicode normal forms, per SQL standard.To support fast IS NORMALIZED tests, we pull in a new data fileDerivedNormalizationProps.txt from Unicode and build a lookup tablefrom that, using techniques similar to ones already used for otherUnicode data. make update-unicode will keep it up to date. We onlybuild and use these tables for the NFC and NFKC forms, because theyare too big for NFD and NFKD and the improvement is not significantenough there.Reviewed-by: Daniel Verite <daniel@manitou-mail.org>Reviewed-by: Andreas Karlsson <andreas@proxel.se>Discussion:https://www.postgresql.org/message-id/flat/c1909f27-c269-2ed9-12f8-3ab72c8caf7a@2ndquadrant.com1 parent070c3d3 commit2991ac5
File tree
20 files changed
+6764
-7
lines changed- doc/src/sgml
- src
- backend
- catalog
- parser
- utils/adt
- common
- unicode
- include
- catalog
- common
- parser
- test/regress
- expected
- sql
20 files changed
+6764
-7
lines changedLines changed: 10 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
934 | 934 |
| |
935 | 935 |
| |
936 | 936 |
| |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
937 | 947 |
| |
938 | 948 |
| |
939 | 949 |
| |
|
Lines changed: 48 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1560 | 1560 |
| |
1561 | 1561 |
| |
1562 | 1562 |
| |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
1563 | 1587 |
| |
1564 | 1588 |
| |
1565 | 1589 |
| |
| |||
1610 | 1634 |
| |
1611 | 1635 |
| |
1612 | 1636 |
| |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
1613 | 1661 |
| |
1614 | 1662 |
| |
1615 | 1663 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
257 | 257 |
| |
258 | 258 |
| |
259 | 259 |
| |
260 |
| - | |
| 260 | + | |
261 | 261 |
| |
262 | 262 |
| |
263 | 263 |
| |
|
Lines changed: 15 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1400 | 1400 |
| |
1401 | 1401 |
| |
1402 | 1402 |
| |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
1403 | 1418 |
| |
1404 | 1419 |
| |
1405 | 1420 |
| |
|
Lines changed: 40 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
444 | 444 |
| |
445 | 445 |
| |
446 | 446 |
| |
| 447 | + | |
447 | 448 |
| |
448 | 449 |
| |
449 | 450 |
| |
| |||
664 | 665 |
| |
665 | 666 |
| |
666 | 667 |
| |
667 |
| - | |
| 668 | + | |
| 669 | + | |
668 | 670 |
| |
669 | 671 |
| |
670 | 672 |
| |
| |||
13491 | 13493 |
| |
13492 | 13494 |
| |
13493 | 13495 |
| |
| 13496 | + | |
| 13497 | + | |
| 13498 | + | |
| 13499 | + | |
| 13500 | + | |
| 13501 | + | |
| 13502 | + | |
| 13503 | + | |
| 13504 | + | |
| 13505 | + | |
| 13506 | + | |
| 13507 | + | |
| 13508 | + | |
| 13509 | + | |
| 13510 | + | |
| 13511 | + | |
13494 | 13512 |
| |
13495 | 13513 |
| |
13496 | 13514 |
| |
| |||
13934 | 13952 |
| |
13935 | 13953 |
| |
13936 | 13954 |
| |
| 13955 | + | |
| 13956 | + | |
| 13957 | + | |
| 13958 | + | |
| 13959 | + | |
| 13960 | + | |
| 13961 | + | |
| 13962 | + | |
13937 | 13963 |
| |
13938 | 13964 |
| |
13939 | 13965 |
| |
| |||
14569 | 14595 |
| |
14570 | 14596 |
| |
14571 | 14597 |
| |
| 14598 | + | |
| 14599 | + | |
| 14600 | + | |
| 14601 | + | |
| 14602 | + | |
| 14603 | + | |
| 14604 | + | |
14572 | 14605 |
| |
14573 | 14606 |
| |
14574 | 14607 |
| |
| |||
15315 | 15348 |
| |
15316 | 15349 |
| |
15317 | 15350 |
| |
| 15351 | + | |
| 15352 | + | |
| 15353 | + | |
| 15354 | + | |
15318 | 15355 |
| |
| 15356 | + | |
15319 | 15357 |
| |
15320 | 15358 |
| |
15321 | 15359 |
| |
| |||
15494 | 15532 |
| |
15495 | 15533 |
| |
15496 | 15534 |
| |
| 15535 | + | |
15497 | 15536 |
| |
15498 | 15537 |
| |
15499 | 15538 |
| |
|
Lines changed: 150 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
22 | 22 |
| |
23 | 23 |
| |
24 | 24 |
| |
| 25 | + | |
25 | 26 |
| |
26 | 27 |
| |
27 | 28 |
| |
| |||
5976 | 5977 |
| |
5977 | 5978 |
| |
5978 | 5979 |
| |
| 5980 | + | |
| 5981 | + | |
| 5982 | + | |
| 5983 | + | |
| 5984 | + | |
| 5985 | + | |
| 5986 | + | |
| 5987 | + | |
| 5988 | + | |
| 5989 | + | |
| 5990 | + | |
| 5991 | + | |
| 5992 | + | |
| 5993 | + | |
| 5994 | + | |
| 5995 | + | |
| 5996 | + | |
| 5997 | + | |
| 5998 | + | |
| 5999 | + | |
| 6000 | + | |
| 6001 | + | |
| 6002 | + | |
| 6003 | + | |
| 6004 | + | |
| 6005 | + | |
| 6006 | + | |
| 6007 | + | |
| 6008 | + | |
| 6009 | + | |
| 6010 | + | |
| 6011 | + | |
| 6012 | + | |
| 6013 | + | |
| 6014 | + | |
| 6015 | + | |
| 6016 | + | |
| 6017 | + | |
| 6018 | + | |
| 6019 | + | |
| 6020 | + | |
| 6021 | + | |
| 6022 | + | |
| 6023 | + | |
| 6024 | + | |
| 6025 | + | |
| 6026 | + | |
| 6027 | + | |
| 6028 | + | |
| 6029 | + | |
| 6030 | + | |
| 6031 | + | |
| 6032 | + | |
| 6033 | + | |
| 6034 | + | |
| 6035 | + | |
| 6036 | + | |
| 6037 | + | |
| 6038 | + | |
| 6039 | + | |
| 6040 | + | |
| 6041 | + | |
| 6042 | + | |
| 6043 | + | |
| 6044 | + | |
| 6045 | + | |
| 6046 | + | |
| 6047 | + | |
| 6048 | + | |
| 6049 | + | |
| 6050 | + | |
| 6051 | + | |
| 6052 | + | |
| 6053 | + | |
| 6054 | + | |
| 6055 | + | |
| 6056 | + | |
| 6057 | + | |
| 6058 | + | |
| 6059 | + | |
| 6060 | + | |
| 6061 | + | |
| 6062 | + | |
| 6063 | + | |
| 6064 | + | |
| 6065 | + | |
| 6066 | + | |
| 6067 | + | |
| 6068 | + | |
| 6069 | + | |
| 6070 | + | |
| 6071 | + | |
| 6072 | + | |
| 6073 | + | |
| 6074 | + | |
| 6075 | + | |
| 6076 | + | |
| 6077 | + | |
| 6078 | + | |
| 6079 | + | |
| 6080 | + | |
| 6081 | + | |
| 6082 | + | |
| 6083 | + | |
| 6084 | + | |
| 6085 | + | |
| 6086 | + | |
| 6087 | + | |
| 6088 | + | |
| 6089 | + | |
| 6090 | + | |
| 6091 | + | |
| 6092 | + | |
| 6093 | + | |
| 6094 | + | |
| 6095 | + | |
| 6096 | + | |
| 6097 | + | |
| 6098 | + | |
| 6099 | + | |
| 6100 | + | |
| 6101 | + | |
| 6102 | + | |
| 6103 | + | |
| 6104 | + | |
| 6105 | + | |
| 6106 | + | |
| 6107 | + | |
| 6108 | + | |
| 6109 | + | |
| 6110 | + | |
| 6111 | + | |
| 6112 | + | |
| 6113 | + | |
| 6114 | + | |
| 6115 | + | |
| 6116 | + | |
| 6117 | + | |
| 6118 | + | |
| 6119 | + | |
| 6120 | + | |
| 6121 | + | |
| 6122 | + | |
| 6123 | + | |
| 6124 | + | |
| 6125 | + | |
| 6126 | + | |
| 6127 | + | |
| 6128 | + |
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3 | 3 |
| |
4 | 4 |
| |
5 | 5 |
| |
| 6 | + | |
6 | 7 |
| |
7 | 8 |
|
Lines changed: 6 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
18 | 18 |
| |
19 | 19 |
| |
20 | 20 |
| |
21 |
| - | |
| 21 | + | |
22 | 22 |
| |
23 |
| - | |
| 23 | + | |
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 | 27 |
| |
28 |
| - | |
| 28 | + | |
29 | 29 |
| |
30 | 30 |
| |
31 | 31 |
| |
| |||
36 | 36 |
| |
37 | 37 |
| |
38 | 38 |
| |
| 39 | + | |
| 40 | + | |
| 41 | + | |
39 | 42 |
| |
40 | 43 |
| |
41 | 44 |
| |
|
0 commit comments
Comments
(0)