github.com/dolthub/go-mysql-server@v0.18.0/sql/encodings/utf8mb4_0900_ai_ci.go (about)

     1  // Copyright 2022 Dolthub, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package encodings
    16  
    17  // Utf8mb4_0900_ai_ci_RuneWeight returns the weight of a given rune based on its relational sort order from
    18  // the `utf8mb4_0900_ai_ci` collation.
    19  func Utf8mb4_0900_ai_ci_RuneWeight(r rune) int32 {
    20  	weight, ok := utf8mb4_0900_ai_ci_Weights()[r]
    21  	if ok {
    22  		return weight
    23  	} else if r >= 9003 && r <= 9214 {
    24  		return r - 7561
    25  	} else if r >= 9475 && r <= 9632 {
    26  		return r - 7768
    27  	} else if r >= 9676 && r <= 9775 {
    28  		return r - 7768
    29  	} else if r >= 9872 && r <= 9983 {
    30  		return r - 7785
    31  	} else if r >= 9984 && r <= 10087 {
    32  		return r - 7759
    33  	} else if r >= 10496 && r <= 10626 {
    34  		return r - 8071
    35  	} else if r >= 10765 && r <= 10867 {
    36  		return r - 8100
    37  	} else if r >= 10872 && r <= 10971 {
    38  		return r - 8103
    39  	} else if r >= 10974 && r <= 11123 {
    40  		return r - 8104
    41  	} else if r >= 10240 && r <= 10495 {
    42  		return r - 7124
    43  	} else if r >= 118784 && r <= 119029 {
    44  		return r - 115098
    45  	} else if r >= 127024 && r <= 127123 {
    46  		return r - 122797
    47  	} else if r >= 127744 && r <= 128511 {
    48  		return r - 123335
    49  	} else if r >= 128512 && r <= 128722 {
    50  		return r - 123253
    51  	} else if r >= 128768 && r <= 128883 {
    52  		return r - 123278
    53  	} else if r >= 120832 && r <= 121343 {
    54  		return r - 114993
    55  	} else if r >= 5121 && r <= 5499 {
    56  		return r + 7703
    57  	} else if r >= 5543 && r <= 5740 {
    58  		return r + 7711
    59  	} else if r >= 92160 && r <= 92728 {
    60  		return r - 78106
    61  	} else if r >= 124928 && r <= 125124 {
    62  		return r - 110275
    63  	} else if r >= 44032 && r <= 44619 {
    64  		return r - 29147
    65  	} else if r >= 44620 && r <= 45207 {
    66  		return r - 29146
    67  	} else if r >= 45208 && r <= 45795 {
    68  		return r - 29145
    69  	} else if r >= 45796 && r <= 46383 {
    70  		return r - 29144
    71  	} else if r >= 46384 && r <= 46971 {
    72  		return r - 29143
    73  	} else if r >= 46972 && r <= 47559 {
    74  		return r - 29142
    75  	} else if r >= 47560 && r <= 48147 {
    76  		return r - 29141
    77  	} else if r >= 48148 && r <= 48735 {
    78  		return r - 29140
    79  	} else if r >= 48736 && r <= 49323 {
    80  		return r - 29139
    81  	} else if r >= 49324 && r <= 49911 {
    82  		return r - 29138
    83  	} else if r >= 49912 && r <= 50499 {
    84  		return r - 29137
    85  	} else if r >= 50500 && r <= 50863 {
    86  		return r - 29136
    87  	} else if r >= 50864 && r <= 51087 {
    88  		return r - 29136
    89  	} else if r >= 51088 && r <= 51452 {
    90  		return r - 29135
    91  	} else if r >= 51453 && r <= 51675 {
    92  		return r - 29134
    93  	} else if r >= 51676 && r <= 52263 {
    94  		return r - 29133
    95  	} else if r >= 52281 && r <= 52851 {
    96  		return r - 29131
    97  	} else if r >= 52852 && r <= 53439 {
    98  		return r - 29130
    99  	} else if r >= 53440 && r <= 54027 {
   100  		return r - 29129
   101  	} else if r >= 54028 && r <= 54615 {
   102  		return r - 29128
   103  	} else if r >= 54616 && r <= 55203 {
   104  		return r - 29127
   105  	} else if r >= 40960 && r <= 42124 {
   106  		return r - 14338
   107  	} else if r >= 113664 && r <= 113770 {
   108  		return r - 85271
   109  	} else if r >= 65664 && r <= 65786 {
   110  		return r - 36866
   111  	} else if r >= 67073 && r <= 67382 {
   112  		return r - 38151
   113  	} else if r >= 73728 && r <= 74338 {
   114  		return r - 44044
   115  	} else if r >= 74339 && r <= 74451 {
   116  		return r - 44042
   117  	} else if r >= 74455 && r <= 74649 {
   118  		return r - 44044
   119  	} else if r >= 74881 && r <= 75075 {
   120  		return r - 44274
   121  	} else if r >= 77825 && r <= 78894 {
   122  		return r - 47022
   123  	} else if r >= 82944 && r <= 83526 {
   124  		return r - 51044
   125  	} else if r >= 94209 && r <= 101119 {
   126  		return r - 61725
   127  	} else if r >= 22900 && r <= 23000 {
   128  		return r + 19428
   129  	} else if r >= 25797 && r <= 25902 {
   130  		return r + 19429
   131  	} else if r >= 26793 && r <= 26900 {
   132  		return r + 19432
   133  	} else if r >= 27156 && r <= 27304 {
   134  		return r + 19432
   135  	} else if r >= 31521 && r <= 31630 {
   136  		return r + 19432
   137  	} else if r >= 31690 && r <= 31806 {
   138  		return r + 19432
   139  	} else if r >= 32415 && r <= 32565 {
   140  		return r + 19432
   141  	} else if r >= 33087 && r <= 33240 {
   142  		return r + 19432
   143  	} else if r >= 33880 && r <= 34030 {
   144  		return r + 19432
   145  	} else if r >= 34149 && r <= 34253 {
   146  		return r + 19432
   147  	} else if r >= 35328 && r <= 35488 {
   148  		return r + 19432
   149  	} else if r >= 35744 && r <= 35894 {
   150  		return r + 19432
   151  	} else if r >= 36337 && r <= 36522 {
   152  		return r + 19432
   153  	} else if r >= 36791 && r <= 36899 {
   154  		return r + 19432
   155  	} else if r >= 37707 && r <= 37881 {
   156  		return r + 19432
   157  	} else if r >= 37910 && r <= 38020 {
   158  		return r + 19432
   159  	} else if r >= 38021 && r <= 38262 {
   160  		return r + 19432
   161  	} else if r >= 39423 && r <= 39530 {
   162  		return r + 19432
   163  	} else if r >= 39792 && r <= 40000 {
   164  		return r + 19432
   165  	} else if r >= 40060 && r <= 40164 {
   166  		return r + 19432
   167  	} else if r >= 40190 && r <= 40295 {
   168  		return r + 19432
   169  	} else if r >= 13312 && r <= 13470 {
   170  		return r + 47050
   171  	} else if r >= 13590 && r <= 14062 {
   172  		return r + 47050
   173  	} else if r >= 14077 && r <= 14209 {
   174  		return r + 47050
   175  	} else if r >= 14210 && r <= 14383 {
   176  		return r + 47050
   177  	} else if r >= 14651 && r <= 14894 {
   178  		return r + 47050
   179  	} else if r >= 14957 && r <= 15076 {
   180  		return r + 47050
   181  	} else if r >= 15262 && r <= 15384 {
   182  		return r + 47050
   183  	} else if r >= 15439 && r <= 15667 {
   184  		return r + 47050
   185  	} else if r >= 15767 && r <= 16044 {
   186  		return r + 47050
   187  	} else if r >= 16156 && r <= 16380 {
   188  		return r + 47050
   189  	} else if r >= 16688 && r <= 16898 {
   190  		return r + 47050
   191  	} else if r >= 16936 && r <= 17056 {
   192  		return r + 47050
   193  	} else if r >= 17242 && r <= 17365 {
   194  		return r + 47050
   195  	} else if r >= 17516 && r <= 17707 {
   196  		return r + 47050
   197  	} else if r >= 17772 && r <= 17879 {
   198  		return r + 47050
   199  	} else if r >= 17974 && r <= 18110 {
   200  		return r + 47050
   201  	} else if r >= 18120 && r <= 18837 {
   202  		return r + 47050
   203  	} else if r >= 18919 && r <= 19054 {
   204  		return r + 47050
   205  	} else if r >= 19123 && r <= 19251 {
   206  		return r + 47050
   207  	} else if r >= 19252 && r <= 19406 {
   208  		return r + 47050
   209  	} else if r >= 19407 && r <= 19662 {
   210  		return r + 47050
   211  	} else if r >= 131072 && r <= 131362 {
   212  		return r - 64128
   213  	} else if r >= 131363 && r <= 132380 {
   214  		return r - 64128
   215  	} else if r >= 132428 && r <= 132666 {
   216  		return r - 64128
   217  	} else if r >= 132667 && r <= 133124 {
   218  		return r - 64128
   219  	} else if r >= 133125 && r <= 133342 {
   220  		return r - 64128
   221  	} else if r >= 133343 && r <= 133676 {
   222  		return r - 64128
   223  	} else if r >= 133677 && r <= 133987 {
   224  		return r - 64128
   225  	} else if r >= 133988 && r <= 136420 {
   226  		return r - 64128
   227  	} else if r >= 136421 && r <= 136872 {
   228  		return r - 64128
   229  	} else if r >= 136939 && r <= 137672 {
   230  		return r - 64128
   231  	} else if r >= 137673 && r <= 138008 {
   232  		return r - 64128
   233  	} else if r >= 138009 && r <= 138507 {
   234  		return r - 64128
   235  	} else if r >= 138508 && r <= 138724 {
   236  		return r - 64128
   237  	} else if r >= 138727 && r <= 139651 {
   238  		return r - 64128
   239  	} else if r >= 139680 && r <= 140081 {
   240  		return r - 64128
   241  	} else if r >= 140082 && r <= 141012 {
   242  		return r - 64128
   243  	} else if r >= 141013 && r <= 141379 {
   244  		return r - 64128
   245  	} else if r >= 141386 && r <= 142092 {
   246  		return r - 64128
   247  	} else if r >= 142093 && r <= 142321 {
   248  		return r - 64128
   249  	} else if r >= 142322 && r <= 143370 {
   250  		return r - 64128
   251  	} else if r >= 143371 && r <= 144056 {
   252  		return r - 64128
   253  	} else if r >= 144057 && r <= 144223 {
   254  		return r - 64128
   255  	} else if r >= 144341 && r <= 144493 {
   256  		return r - 64128
   257  	} else if r >= 144494 && r <= 145059 {
   258  		return r - 64128
   259  	} else if r >= 145060 && r <= 145575 {
   260  		return r - 64128
   261  	} else if r >= 145576 && r <= 146061 {
   262  		return r - 64128
   263  	} else if r >= 146062 && r <= 146170 {
   264  		return r - 64128
   265  	} else if r >= 146171 && r <= 146620 {
   266  		return r - 64128
   267  	} else if r >= 146719 && r <= 147153 {
   268  		return r - 64128
   269  	} else if r >= 147154 && r <= 147294 {
   270  		return r - 64128
   271  	} else if r >= 147343 && r <= 148067 {
   272  		return r - 64128
   273  	} else if r >= 148068 && r <= 148205 {
   274  		return r - 64128
   275  	} else if r >= 148206 && r <= 148395 {
   276  		return r - 64128
   277  	} else if r >= 148396 && r <= 149000 {
   278  		return r - 64128
   279  	} else if r >= 149001 && r <= 149301 {
   280  		return r - 64128
   281  	} else if r >= 149302 && r <= 149524 {
   282  		return r - 64128
   283  	} else if r >= 149525 && r <= 150582 {
   284  		return r - 64128
   285  	} else if r >= 150675 && r <= 151457 {
   286  		return r - 64128
   287  	} else if r >= 151481 && r <= 151620 {
   288  		return r - 64128
   289  	} else if r >= 151621 && r <= 151794 {
   290  		return r - 64128
   291  	} else if r >= 151860 && r <= 152136 {
   292  		return r - 64128
   293  	} else if r >= 152137 && r <= 152605 {
   294  		return r - 64128
   295  	} else if r >= 152606 && r <= 153126 {
   296  		return r - 64128
   297  	} else if r >= 153127 && r <= 153242 {
   298  		return r - 64128
   299  	} else if r >= 153286 && r <= 153980 {
   300  		return r - 64128
   301  	} else if r >= 153981 && r <= 154279 {
   302  		return r - 64128
   303  	} else if r >= 154280 && r <= 154539 {
   304  		return r - 64128
   305  	} else if r >= 154540 && r <= 154752 {
   306  		return r - 64128
   307  	} else if r >= 154832 && r <= 155526 {
   308  		return r - 64128
   309  	} else if r >= 155527 && r <= 156122 {
   310  		return r - 64128
   311  	} else if r >= 156232 && r <= 156377 {
   312  		return r - 64128
   313  	} else if r >= 156378 && r <= 156478 {
   314  		return r - 64128
   315  	} else if r >= 156479 && r <= 156890 {
   316  		return r - 64128
   317  	} else if r >= 156964 && r <= 157096 {
   318  		return r - 64128
   319  	} else if r >= 157097 && r <= 157607 {
   320  		return r - 64128
   321  	} else if r >= 157622 && r <= 158524 {
   322  		return r - 64128
   323  	} else if r >= 158525 && r <= 158774 {
   324  		return r - 64128
   325  	} else if r >= 158775 && r <= 158933 {
   326  		return r - 64128
   327  	} else if r >= 158934 && r <= 159083 {
   328  		return r - 64128
   329  	} else if r >= 159084 && r <= 159532 {
   330  		return r - 64128
   331  	} else if r >= 159533 && r <= 159665 {
   332  		return r - 64128
   333  	} else if r >= 159666 && r <= 159954 {
   334  		return r - 64128
   335  	} else if r >= 159955 && r <= 160714 {
   336  		return r - 64128
   337  	} else if r >= 160715 && r <= 161383 {
   338  		return r - 64128
   339  	} else if r >= 161384 && r <= 161966 {
   340  		return r - 64128
   341  	} else if r >= 161967 && r <= 162150 {
   342  		return r - 64128
   343  	} else if r >= 162151 && r <= 162984 {
   344  		return r - 64128
   345  	} else if r >= 162985 && r <= 163538 {
   346  		return r - 64128
   347  	} else if r >= 163632 && r <= 165330 {
   348  		return r - 64128
   349  	} else if r >= 165358 && r <= 165678 {
   350  		return r - 64128
   351  	} else if r >= 165679 && r <= 166906 {
   352  		return r - 64128
   353  	} else if r >= 166907 && r <= 167287 {
   354  		return r - 64128
   355  	} else if r >= 167288 && r <= 168261 {
   356  		return r - 64128
   357  	} else if r >= 168262 && r <= 168415 {
   358  		return r - 64128
   359  	} else if r >= 168475 && r <= 168970 {
   360  		return r - 64128
   361  	} else if r >= 168971 && r <= 169110 {
   362  		return r - 64128
   363  	} else if r >= 169111 && r <= 169398 {
   364  		return r - 64128
   365  	} else if r >= 169399 && r <= 170800 {
   366  		return r - 64128
   367  	} else if r >= 170801 && r <= 172238 {
   368  		return r - 64128
   369  	} else if r >= 172294 && r <= 172558 {
   370  		return r - 64128
   371  	} else if r >= 172559 && r <= 172689 {
   372  		return r - 64128
   373  	} else if r >= 172690 && r <= 172946 {
   374  		return r - 64128
   375  	} else if r >= 172947 && r <= 173568 {
   376  		return r - 64128
   377  	} else if r >= 173569 && r <= 173782 {
   378  		return r - 64128
   379  	} else if r >= 173825 && r <= 177972 {
   380  		return r - 64169
   381  	} else if r >= 177985 && r <= 178205 {
   382  		return r - 64180
   383  	} else if r >= 178209 && r <= 183969 {
   384  		return r - 64182
   385  	} else if r >= 57344 && r <= 63743 {
   386  		return r + 64103
   387  	} else if r >= 66046 && r <= 66175 {
   388  		return r + 62085
   389  	} else if r >= 66928 && r <= 67071 {
   390  		return r + 61459
   391  	} else if r >= 67432 && r <= 67583 {
   392  		return r + 61118
   393  	} else if r >= 68864 && r <= 69215 {
   394  		return r + 60248
   395  	} else if r >= 69248 && r <= 69631 {
   396  		return r + 60217
   397  	} else if r >= 70517 && r <= 70655 {
   398  		return r + 59533
   399  	} else if r >= 70874 && r <= 71039 {
   400  		return r + 59359
   401  	} else if r >= 71488 && r <= 71839 {
   402  		return r + 59052
   403  	} else if r >= 71936 && r <= 72383 {
   404  		return r + 58968
   405  	} else if r >= 72442 && r <= 72703 {
   406  		return r + 58911
   407  	} else if r >= 72887 && r <= 73727 {
   408  		return r + 58746
   409  	} else if r >= 74651 && r <= 74751 {
   410  		return r + 57824
   411  	} else if r >= 75076 && r <= 77823 {
   412  		return r + 57512
   413  	} else if r >= 78896 && r <= 82943 {
   414  		return r + 56441
   415  	} else if r >= 83528 && r <= 92159 {
   416  		return r + 55858
   417  	} else if r >= 93072 && r <= 93951 {
   418  		return r + 55083
   419  	} else if r >= 101120 && r <= 110591 {
   420  		return r + 48037
   421  	} else if r >= 110595 && r <= 113663 {
   422  		return r + 48035
   423  	} else if r >= 113828 && r <= 118783 {
   424  		return r + 47888
   425  	} else if r >= 119366 && r <= 119551 {
   426  		return r + 47341
   427  	} else if r >= 119666 && r <= 119807 {
   428  		return r + 47236
   429  	} else if r >= 121520 && r <= 122879 {
   430  		return r + 45568
   431  	} else if r >= 122923 && r <= 124927 {
   432  		return r + 45530
   433  	} else if r >= 125280 && r <= 126463 {
   434  		return r + 45230
   435  	} else if r >= 126706 && r <= 126975 {
   436  		return r + 45087
   437  	} else if r >= 127570 && r <= 127743 {
   438  		return r + 44612
   439  	} else if r >= 129473 && r <= 131071 {
   440  		return r + 43182
   441  	} else if r >= 183970 && r <= 194559 {
   442  		return r - 9662
   443  	} else if r >= 195103 && r <= 917504 {
   444  		return r - 10204
   445  	} else if r >= 917632 && r <= 917759 {
   446  		return r - 10301
   447  	} else if r >= 918001 && r <= 1114111 {
   448  		return r - 10541
   449  	} else if r >= 917760 && r <= 917999 {
   450  		return 0
   451  	} else {
   452  		return 2147483647
   453  	}
   454  }