* [tarantool-patches] [PATCH v4] Feature request for a new collation
@ 2019-03-05 11:44 Stanislav Zudin
2019-03-05 14:40 ` Vladimir Davydov
2019-03-05 15:41 ` [tarantool-patches] " Konstantin Osipov
0 siblings, 2 replies; 10+ messages in thread
From: Stanislav Zudin @ 2019-03-05 11:44 UTC (permalink / raw)
To: tarantool-patches, kostja; +Cc: Stanislav Zudin
Adds a new set of default collations.
The collation 'unicode_ky_s1' supports the difference
between Cyrillic letters 'Е' and 'Ё'. The standard case insensitive
collation ('unicode_ci') doesn't distinguish these letters.
Closes #4007
---
Branch: https://github.com/tarantool/tarantool/tree/stanztt/gh-4007-new-default-collation-2.1
Issue: https://github.com/tarantool/tarantool/issues/4007
src/box/bootstrap.snap | Bin 1867 -> 4485 bytes
src/box/lua/upgrade.lua | 109 ++++++-
src/coll_def.h | 2 +-
test/box-py/bootstrap.result | 2 +-
test/box/ddl.result | 560 +++++++++++++++++++++++++++++++-
test/box/net.box.result | 2 +-
test/sql-tap/collation.test.lua | 280 +++++++++++++++-
test/sql/collation.result | 4 +-
test/sql/collation.test.lua | 4 +-
9 files changed, 943 insertions(+), 20 deletions(-)
diff --git a/src/box/bootstrap.snap b/src/box/bootstrap.snap
index a0c436d0dac9593d88e87fefe5084e833d8bed2f..35ab86f01b3e6f6936a26b6441ed196caa730064 100644
GIT binary patch
delta 4476
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
O=H$0fEz<|p5UuUun{2QE
delta 1838
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
diff --git a/src/box/lua/upgrade.lua b/src/box/lua/upgrade.lua
index 09af2e20d..58b5d47cc 100644
--- a/src/box/lua/upgrade.lua
+++ b/src/box/lua/upgrade.lua
@@ -615,7 +615,114 @@ local function upgrade_to_2_1_0()
end
local function upgrade_to_2_1_2()
- box.space._collation:replace{4, "unicode_ru_s2", ADMIN, "ICU", "ru_RU", {strength='secondary'}}
+ local coll_lst = {
+ {name="af", loc_str="af"}, -- Afrikaans
+ {name="am", loc_str="am"}, -- Amharic (no character changes, just re-ordering)
+ {name="ar", loc_str="ar"}, -- Arabic (use only "standard")
+ {name="as", loc_str="as"}, -- Assamese
+ {name="az", loc_str="az"}, -- Azerbaijani (Azeri)
+ {name="be", loc_str="be"}, -- Belarusian
+ {name="bn", loc_str="bn"}, -- Bengali (Bangla actually)
+ {name="bs", loc_str="bs"}, -- Bosnian (tailored as Croatian)
+ {name="bs_Cyrl", loc_str="bs_Cyrl"}, -- Bosnian in Cyrillic (tailored as Serbian)
+ {name="ca", loc_str="ca"}, -- Catalan
+ {name="cs", loc_str="cs"}, -- Czech
+ {name="cy", loc_str="cy"}, -- Welsh
+ {name="da", loc_str="da"}, -- Danish
+ {name="de__phonebook", loc_str="de_DE_u_co_phonebk"}, -- German (umlaut as 'ae', 'oe', 'ue')
+ {name="de_AT_phonebook", loc_str="de_AT_u_co_phonebk"}, -- Austrian German (umlaut primary greater)
+ {name="dsb", loc_str="dsb"}, -- Lower Sorbian
+ {name="ee", loc_str="ee"}, -- Ewe
+ {name="eo", loc_str="eo"}, -- Esperanto
+ {name="es", loc_str="es"}, -- Spanish
+ {name="es__traditional", loc_str="es_u_co_trad"}, -- Spanish ('ch' and 'll' as a grapheme)
+ {name="et", loc_str="et"}, -- Estonian
+ {name="fa", loc_str="fa"}, -- Persian
+ {name="fi", loc_str="fi"}, -- Finnish (v and w are primary equal)
+ {name="fi__phonebook", loc_str="fi_u_co_phonebk"}, -- Finnish (v and w as separate characters)
+ {name="fil", loc_str="fil"}, -- Filipino
+ {name="fo", loc_str="fo"}, -- Faroese
+ {name="fr_CA", loc_str="fr_CA"}, -- Canadian French
+ {name="gu", loc_str="gu"}, -- Gujarati
+ {name="ha", loc_str="ha"}, -- Hausa
+ {name="haw", loc_str="haw"}, -- Hawaiian
+ {name="he", loc_str="he"}, -- Hebrew
+ {name="hi", loc_str="hi"}, -- Hindi
+ {name="hr", loc_str="hr"}, -- Croatian
+ {name="hu", loc_str="hu"}, -- Hungarian
+ {name="hy", loc_str="hy"}, -- Armenian
+ {name="ig", loc_str="ig"}, -- Igbo
+ {name="is", loc_str="is"}, -- Icelandic
+ {name="ja", loc_str="ja"}, -- Japanese
+ {name="kk", loc_str="kk"}, -- Kazakh
+ {name="kl", loc_str="kl"}, -- Kalaallisut
+ {name="kn", loc_str="kn"}, -- Kannada
+ {name="ko", loc_str="ko"}, -- Korean
+ {name="kok", loc_str="kok"}, -- Konkani
+ {name="ky", loc_str="ky"}, -- Kyrgyz
+ {name="lkt", loc_str="lkt"}, -- Lakota
+ {name="ln", loc_str="ln"}, -- Lingala
+ {name="lt", loc_str="lt"}, -- Lithuanian
+ {name="lv", loc_str="lv"}, -- Latvian
+ {name="mk", loc_str="mk"}, -- Macedonian
+ {name="ml", loc_str="ml"}, -- Malayalam
+ {name="mr", loc_str="mr"}, -- Marathi
+ {name="mt", loc_str="mt"}, -- Maltese
+ {name="nb", loc_str="nb"}, -- Norwegian Bokmal
+ {name="nn", loc_str="nn"}, -- Norwegian Nynorsk
+ {name="nso", loc_str="nso"}, -- Northern Sotho
+ {name="om", loc_str="om"}, -- Oromo
+ {name="or", loc_str="or"}, -- Oriya (Odia)
+ {name="pa", loc_str="pa"}, -- Punjabi
+ {name="pl", loc_str="pl"}, -- Polish
+ {name="ro", loc_str="ro"}, -- Romanian
+ {name="sa", loc_str="sa"}, -- Sanskrit
+ {name="se", loc_str="se"}, -- Northern Sami
+ {name="si", loc_str="si"}, -- Sinhala
+ {name="si__dictionary", loc_str="si_u_co_dict"}, -- Sinhala (U+0DA5 = U+0DA2,0DCA,0DA4)
+ {name="sk", loc_str="sk"}, -- Slovak
+ {name="sl", loc_str="sl"}, -- Slovenian
+ {name="sq", loc_str="sq"}, -- Albanian (just "standard")
+ {name="sr", loc_str="sr"}, -- Serbian
+ {name="sr_Latn", loc_str="sr_Latn"}, -- Serbian in Latin (tailored as Croatian)
+ {name="sv", loc_str="sv"}, -- Swedish (v and w are primary equal)
+ {name="sv__reformed", loc_str="sv_u_co_reformed"}, -- Swedish (v and w as separate characters)
+ {name="ta", loc_str="ta"}, -- Tamil
+ {name="te", loc_str="te"}, -- Telugu
+ {name="th", loc_str="th"}, -- Thai
+ {name="tn", loc_str="tn"}, -- Tswana
+ {name="to", loc_str="to"}, -- Tonga
+ {name="tr", loc_str="tr"}, -- Turkish
+ {name="ug_Cyrl", loc_str="ug"}, -- Uyghur in Cyrillic - is there such locale?
+ {name="uk", loc_str="uk"}, -- Ukrainian
+ {name="ur", loc_str="ur"}, -- Urdu
+ {name="vi", loc_str="vi"}, -- Vietnamese
+ {name="vo", loc_str="vo"}, -- Volapük
+ {name="wae", loc_str="wae"}, -- Walser
+ {name="wo", loc_str="wo"}, -- Wolof
+ {name="yo", loc_str="yo"}, -- Yoruba
+ {name="zh", loc_str="zh"}, -- Chinese
+ {name="zh__big5han", loc_str="zh_u_co_big5han"}, -- Chinese (ideographs: big5 order)
+ {name="zh__gb2312han", loc_str="zh_u_co_gb2312"}, -- Chinese (ideographs: GB-2312 order)
+ {name="zh__pinyin", loc_str="zh_u_co_pinyin"}, -- Chinese (ideographs: pinyin order)
+ {name="zh__stroke", loc_str="zh_u_co_stroke"}, -- Chinese (ideographs: stroke order)
+ {name="zh__zhuyin", loc_str="zh_u_co_zhuyin"}, -- Chinese (ideographs: zhuyin order)
+ }
+ local coll_strengths = {
+ {s="s1", opt={strength='primary'}},
+ {s="s2", opt={strength='secondary'}},
+ {s="s3", opt={strength='tertiary'}}
+ }
+
+ local id = 4
+ for _, collation in ipairs(coll_lst) do
+ for i, strength in ipairs(coll_strengths) do
+ local coll_name = 'unicode_' .. collation.name .. "_" .. strength.s
+ log.info("creating collation %s", coll_name)
+ box.space._collation:replace{id, coll_name, ADMIN, "ICU", collation.loc_str, strength.opt }
+ id = id + 1
+ end
+ end
end
local function get_version()
diff --git a/src/coll_def.h b/src/coll_def.h
index d3af89802..18ed606ad 100644
--- a/src/coll_def.h
+++ b/src/coll_def.h
@@ -44,7 +44,7 @@ extern const char *coll_type_strs[];
/** Maximal length of locale name. */
enum {
- COLL_LOCALE_LEN_MAX = 16,
+ COLL_LOCALE_LEN_MAX = 1024,
};
/*
diff --git a/test/box-py/bootstrap.result b/test/box-py/bootstrap.result
index 3e4394557..69fbded6d 100644
--- a/test/box-py/bootstrap.result
+++ b/test/box-py/bootstrap.result
@@ -4,7 +4,7 @@ box.internal.bootstrap()
box.space._schema:select{}
---
- - ['max_id', 511]
- - ['version', 2, 1, 0]
+ - ['version', 2, 1, 2]
...
box.space._cluster:select{}
---
diff --git a/test/box/ddl.result b/test/box/ddl.result
index bffa19a8c..6f0d09120 100644
--- a/test/box/ddl.result
+++ b/test/box/ddl.result
@@ -350,7 +350,7 @@ box.space._collation:auto_increment{'test', 0, 'ICU', 42}
...
box.space._collation:auto_increment{'test', 0, 'ICU', 'ru_RU', setmap{}} --ok
---
-- [5, 'test', 0, 'ICU', 'ru_RU', {}]
+- [277, 'test', 0, 'ICU', 'ru_RU', {}]
...
box.space._collation:auto_increment{'test', 0, 'ICU', 'ru_RU', setmap{}}
---
@@ -358,7 +358,7 @@ box.space._collation:auto_increment{'test', 0, 'ICU', 'ru_RU', setmap{}}
...
box.space._collation.index.name:delete{'test'} -- ok
---
-- [5, 'test', 0, 'ICU', 'ru_RU', {}]
+- [277, 'test', 0, 'ICU', 'ru_RU', {}]
...
box.space._collation.index.name:delete{'nothing'} -- allowed
---
@@ -474,7 +474,7 @@ _ = box.space._collation.index.name:delete{'test'} -- ok
...
box.space._collation:auto_increment{'test', 0, 'ICU', 'ru_RU', setmap{}}
---
-- [5, 'test', 0, 'ICU', 'ru_RU', {}]
+- [277, 'test', 0, 'ICU', 'ru_RU', {}]
...
box.space._collation:select{}
---
@@ -482,8 +482,280 @@ box.space._collation:select{}
- [1, 'unicode', 1, 'ICU', '', {}]
- [2, 'unicode_ci', 1, 'ICU', '', {'strength': 'primary'}]
- [3, 'binary', 1, 'BINARY', '', {}]
- - [4, 'unicode_ru_s2', 1, 'ICU', 'ru_RU', {'strength': 'secondary'}]
- - [5, 'test', 0, 'ICU', 'ru_RU', {}]
+ - [4, 'unicode_af_s1', 1, 'ICU', 'af', {'strength': 'primary'}]
+ - [5, 'unicode_af_s2', 1, 'ICU', 'af', {'strength': 'secondary'}]
+ - [6, 'unicode_af_s3', 1, 'ICU', 'af', {'strength': 'tertiary'}]
+ - [7, 'unicode_am_s1', 1, 'ICU', 'am', {'strength': 'primary'}]
+ - [8, 'unicode_am_s2', 1, 'ICU', 'am', {'strength': 'secondary'}]
+ - [9, 'unicode_am_s3', 1, 'ICU', 'am', {'strength': 'tertiary'}]
+ - [10, 'unicode_ar_s1', 1, 'ICU', 'ar', {'strength': 'primary'}]
+ - [11, 'unicode_ar_s2', 1, 'ICU', 'ar', {'strength': 'secondary'}]
+ - [12, 'unicode_ar_s3', 1, 'ICU', 'ar', {'strength': 'tertiary'}]
+ - [13, 'unicode_as_s1', 1, 'ICU', 'as', {'strength': 'primary'}]
+ - [14, 'unicode_as_s2', 1, 'ICU', 'as', {'strength': 'secondary'}]
+ - [15, 'unicode_as_s3', 1, 'ICU', 'as', {'strength': 'tertiary'}]
+ - [16, 'unicode_az_s1', 1, 'ICU', 'az', {'strength': 'primary'}]
+ - [17, 'unicode_az_s2', 1, 'ICU', 'az', {'strength': 'secondary'}]
+ - [18, 'unicode_az_s3', 1, 'ICU', 'az', {'strength': 'tertiary'}]
+ - [19, 'unicode_be_s1', 1, 'ICU', 'be', {'strength': 'primary'}]
+ - [20, 'unicode_be_s2', 1, 'ICU', 'be', {'strength': 'secondary'}]
+ - [21, 'unicode_be_s3', 1, 'ICU', 'be', {'strength': 'tertiary'}]
+ - [22, 'unicode_bn_s1', 1, 'ICU', 'bn', {'strength': 'primary'}]
+ - [23, 'unicode_bn_s2', 1, 'ICU', 'bn', {'strength': 'secondary'}]
+ - [24, 'unicode_bn_s3', 1, 'ICU', 'bn', {'strength': 'tertiary'}]
+ - [25, 'unicode_bs_s1', 1, 'ICU', 'bs', {'strength': 'primary'}]
+ - [26, 'unicode_bs_s2', 1, 'ICU', 'bs', {'strength': 'secondary'}]
+ - [27, 'unicode_bs_s3', 1, 'ICU', 'bs', {'strength': 'tertiary'}]
+ - [28, 'unicode_bs_Cyrl_s1', 1, 'ICU', 'bs_Cyrl', {'strength': 'primary'}]
+ - [29, 'unicode_bs_Cyrl_s2', 1, 'ICU', 'bs_Cyrl', {'strength': 'secondary'}]
+ - [30, 'unicode_bs_Cyrl_s3', 1, 'ICU', 'bs_Cyrl', {'strength': 'tertiary'}]
+ - [31, 'unicode_ca_s1', 1, 'ICU', 'ca', {'strength': 'primary'}]
+ - [32, 'unicode_ca_s2', 1, 'ICU', 'ca', {'strength': 'secondary'}]
+ - [33, 'unicode_ca_s3', 1, 'ICU', 'ca', {'strength': 'tertiary'}]
+ - [34, 'unicode_cs_s1', 1, 'ICU', 'cs', {'strength': 'primary'}]
+ - [35, 'unicode_cs_s2', 1, 'ICU', 'cs', {'strength': 'secondary'}]
+ - [36, 'unicode_cs_s3', 1, 'ICU', 'cs', {'strength': 'tertiary'}]
+ - [37, 'unicode_cy_s1', 1, 'ICU', 'cy', {'strength': 'primary'}]
+ - [38, 'unicode_cy_s2', 1, 'ICU', 'cy', {'strength': 'secondary'}]
+ - [39, 'unicode_cy_s3', 1, 'ICU', 'cy', {'strength': 'tertiary'}]
+ - [40, 'unicode_da_s1', 1, 'ICU', 'da', {'strength': 'primary'}]
+ - [41, 'unicode_da_s2', 1, 'ICU', 'da', {'strength': 'secondary'}]
+ - [42, 'unicode_da_s3', 1, 'ICU', 'da', {'strength': 'tertiary'}]
+ - [43, 'unicode_de__phonebook_s1', 1, 'ICU', 'de_DE_u_co_phonebk', {'strength': 'primary'}]
+ - [44, 'unicode_de__phonebook_s2', 1, 'ICU', 'de_DE_u_co_phonebk', {'strength': 'secondary'}]
+ - [45, 'unicode_de__phonebook_s3', 1, 'ICU', 'de_DE_u_co_phonebk', {'strength': 'tertiary'}]
+ - [46, 'unicode_de_AT_phonebook_s1', 1, 'ICU', 'de_AT_u_co_phonebk', {'strength': 'primary'}]
+ - [47, 'unicode_de_AT_phonebook_s2', 1, 'ICU', 'de_AT_u_co_phonebk', {'strength': 'secondary'}]
+ - [48, 'unicode_de_AT_phonebook_s3', 1, 'ICU', 'de_AT_u_co_phonebk', {'strength': 'tertiary'}]
+ - [49, 'unicode_dsb_s1', 1, 'ICU', 'dsb', {'strength': 'primary'}]
+ - [50, 'unicode_dsb_s2', 1, 'ICU', 'dsb', {'strength': 'secondary'}]
+ - [51, 'unicode_dsb_s3', 1, 'ICU', 'dsb', {'strength': 'tertiary'}]
+ - [52, 'unicode_ee_s1', 1, 'ICU', 'ee', {'strength': 'primary'}]
+ - [53, 'unicode_ee_s2', 1, 'ICU', 'ee', {'strength': 'secondary'}]
+ - [54, 'unicode_ee_s3', 1, 'ICU', 'ee', {'strength': 'tertiary'}]
+ - [55, 'unicode_eo_s1', 1, 'ICU', 'eo', {'strength': 'primary'}]
+ - [56, 'unicode_eo_s2', 1, 'ICU', 'eo', {'strength': 'secondary'}]
+ - [57, 'unicode_eo_s3', 1, 'ICU', 'eo', {'strength': 'tertiary'}]
+ - [58, 'unicode_es_s1', 1, 'ICU', 'es', {'strength': 'primary'}]
+ - [59, 'unicode_es_s2', 1, 'ICU', 'es', {'strength': 'secondary'}]
+ - [60, 'unicode_es_s3', 1, 'ICU', 'es', {'strength': 'tertiary'}]
+ - [61, 'unicode_es__traditional_s1', 1, 'ICU', 'es_u_co_trad', {'strength': 'primary'}]
+ - [62, 'unicode_es__traditional_s2', 1, 'ICU', 'es_u_co_trad', {'strength': 'secondary'}]
+ - [63, 'unicode_es__traditional_s3', 1, 'ICU', 'es_u_co_trad', {'strength': 'tertiary'}]
+ - [64, 'unicode_et_s1', 1, 'ICU', 'et', {'strength': 'primary'}]
+ - [65, 'unicode_et_s2', 1, 'ICU', 'et', {'strength': 'secondary'}]
+ - [66, 'unicode_et_s3', 1, 'ICU', 'et', {'strength': 'tertiary'}]
+ - [67, 'unicode_fa_s1', 1, 'ICU', 'fa', {'strength': 'primary'}]
+ - [68, 'unicode_fa_s2', 1, 'ICU', 'fa', {'strength': 'secondary'}]
+ - [69, 'unicode_fa_s3', 1, 'ICU', 'fa', {'strength': 'tertiary'}]
+ - [70, 'unicode_fi_s1', 1, 'ICU', 'fi', {'strength': 'primary'}]
+ - [71, 'unicode_fi_s2', 1, 'ICU', 'fi', {'strength': 'secondary'}]
+ - [72, 'unicode_fi_s3', 1, 'ICU', 'fi', {'strength': 'tertiary'}]
+ - [73, 'unicode_fi__phonebook_s1', 1, 'ICU', 'fi_u_co_phonebk', {'strength': 'primary'}]
+ - [74, 'unicode_fi__phonebook_s2', 1, 'ICU', 'fi_u_co_phonebk', {'strength': 'secondary'}]
+ - [75, 'unicode_fi__phonebook_s3', 1, 'ICU', 'fi_u_co_phonebk', {'strength': 'tertiary'}]
+ - [76, 'unicode_fil_s1', 1, 'ICU', 'fil', {'strength': 'primary'}]
+ - [77, 'unicode_fil_s2', 1, 'ICU', 'fil', {'strength': 'secondary'}]
+ - [78, 'unicode_fil_s3', 1, 'ICU', 'fil', {'strength': 'tertiary'}]
+ - [79, 'unicode_fo_s1', 1, 'ICU', 'fo', {'strength': 'primary'}]
+ - [80, 'unicode_fo_s2', 1, 'ICU', 'fo', {'strength': 'secondary'}]
+ - [81, 'unicode_fo_s3', 1, 'ICU', 'fo', {'strength': 'tertiary'}]
+ - [82, 'unicode_fr_CA_s1', 1, 'ICU', 'fr_CA', {'strength': 'primary'}]
+ - [83, 'unicode_fr_CA_s2', 1, 'ICU', 'fr_CA', {'strength': 'secondary'}]
+ - [84, 'unicode_fr_CA_s3', 1, 'ICU', 'fr_CA', {'strength': 'tertiary'}]
+ - [85, 'unicode_gu_s1', 1, 'ICU', 'gu', {'strength': 'primary'}]
+ - [86, 'unicode_gu_s2', 1, 'ICU', 'gu', {'strength': 'secondary'}]
+ - [87, 'unicode_gu_s3', 1, 'ICU', 'gu', {'strength': 'tertiary'}]
+ - [88, 'unicode_ha_s1', 1, 'ICU', 'ha', {'strength': 'primary'}]
+ - [89, 'unicode_ha_s2', 1, 'ICU', 'ha', {'strength': 'secondary'}]
+ - [90, 'unicode_ha_s3', 1, 'ICU', 'ha', {'strength': 'tertiary'}]
+ - [91, 'unicode_haw_s1', 1, 'ICU', 'haw', {'strength': 'primary'}]
+ - [92, 'unicode_haw_s2', 1, 'ICU', 'haw', {'strength': 'secondary'}]
+ - [93, 'unicode_haw_s3', 1, 'ICU', 'haw', {'strength': 'tertiary'}]
+ - [94, 'unicode_he_s1', 1, 'ICU', 'he', {'strength': 'primary'}]
+ - [95, 'unicode_he_s2', 1, 'ICU', 'he', {'strength': 'secondary'}]
+ - [96, 'unicode_he_s3', 1, 'ICU', 'he', {'strength': 'tertiary'}]
+ - [97, 'unicode_hi_s1', 1, 'ICU', 'hi', {'strength': 'primary'}]
+ - [98, 'unicode_hi_s2', 1, 'ICU', 'hi', {'strength': 'secondary'}]
+ - [99, 'unicode_hi_s3', 1, 'ICU', 'hi', {'strength': 'tertiary'}]
+ - [100, 'unicode_hr_s1', 1, 'ICU', 'hr', {'strength': 'primary'}]
+ - [101, 'unicode_hr_s2', 1, 'ICU', 'hr', {'strength': 'secondary'}]
+ - [102, 'unicode_hr_s3', 1, 'ICU', 'hr', {'strength': 'tertiary'}]
+ - [103, 'unicode_hu_s1', 1, 'ICU', 'hu', {'strength': 'primary'}]
+ - [104, 'unicode_hu_s2', 1, 'ICU', 'hu', {'strength': 'secondary'}]
+ - [105, 'unicode_hu_s3', 1, 'ICU', 'hu', {'strength': 'tertiary'}]
+ - [106, 'unicode_hy_s1', 1, 'ICU', 'hy', {'strength': 'primary'}]
+ - [107, 'unicode_hy_s2', 1, 'ICU', 'hy', {'strength': 'secondary'}]
+ - [108, 'unicode_hy_s3', 1, 'ICU', 'hy', {'strength': 'tertiary'}]
+ - [109, 'unicode_ig_s1', 1, 'ICU', 'ig', {'strength': 'primary'}]
+ - [110, 'unicode_ig_s2', 1, 'ICU', 'ig', {'strength': 'secondary'}]
+ - [111, 'unicode_ig_s3', 1, 'ICU', 'ig', {'strength': 'tertiary'}]
+ - [112, 'unicode_is_s1', 1, 'ICU', 'is', {'strength': 'primary'}]
+ - [113, 'unicode_is_s2', 1, 'ICU', 'is', {'strength': 'secondary'}]
+ - [114, 'unicode_is_s3', 1, 'ICU', 'is', {'strength': 'tertiary'}]
+ - [115, 'unicode_ja_s1', 1, 'ICU', 'ja', {'strength': 'primary'}]
+ - [116, 'unicode_ja_s2', 1, 'ICU', 'ja', {'strength': 'secondary'}]
+ - [117, 'unicode_ja_s3', 1, 'ICU', 'ja', {'strength': 'tertiary'}]
+ - [118, 'unicode_kk_s1', 1, 'ICU', 'kk', {'strength': 'primary'}]
+ - [119, 'unicode_kk_s2', 1, 'ICU', 'kk', {'strength': 'secondary'}]
+ - [120, 'unicode_kk_s3', 1, 'ICU', 'kk', {'strength': 'tertiary'}]
+ - [121, 'unicode_kl_s1', 1, 'ICU', 'kl', {'strength': 'primary'}]
+ - [122, 'unicode_kl_s2', 1, 'ICU', 'kl', {'strength': 'secondary'}]
+ - [123, 'unicode_kl_s3', 1, 'ICU', 'kl', {'strength': 'tertiary'}]
+ - [124, 'unicode_kn_s1', 1, 'ICU', 'kn', {'strength': 'primary'}]
+ - [125, 'unicode_kn_s2', 1, 'ICU', 'kn', {'strength': 'secondary'}]
+ - [126, 'unicode_kn_s3', 1, 'ICU', 'kn', {'strength': 'tertiary'}]
+ - [127, 'unicode_ko_s1', 1, 'ICU', 'ko', {'strength': 'primary'}]
+ - [128, 'unicode_ko_s2', 1, 'ICU', 'ko', {'strength': 'secondary'}]
+ - [129, 'unicode_ko_s3', 1, 'ICU', 'ko', {'strength': 'tertiary'}]
+ - [130, 'unicode_kok_s1', 1, 'ICU', 'kok', {'strength': 'primary'}]
+ - [131, 'unicode_kok_s2', 1, 'ICU', 'kok', {'strength': 'secondary'}]
+ - [132, 'unicode_kok_s3', 1, 'ICU', 'kok', {'strength': 'tertiary'}]
+ - [133, 'unicode_ky_s1', 1, 'ICU', 'ky', {'strength': 'primary'}]
+ - [134, 'unicode_ky_s2', 1, 'ICU', 'ky', {'strength': 'secondary'}]
+ - [135, 'unicode_ky_s3', 1, 'ICU', 'ky', {'strength': 'tertiary'}]
+ - [136, 'unicode_lkt_s1', 1, 'ICU', 'lkt', {'strength': 'primary'}]
+ - [137, 'unicode_lkt_s2', 1, 'ICU', 'lkt', {'strength': 'secondary'}]
+ - [138, 'unicode_lkt_s3', 1, 'ICU', 'lkt', {'strength': 'tertiary'}]
+ - [139, 'unicode_ln_s1', 1, 'ICU', 'ln', {'strength': 'primary'}]
+ - [140, 'unicode_ln_s2', 1, 'ICU', 'ln', {'strength': 'secondary'}]
+ - [141, 'unicode_ln_s3', 1, 'ICU', 'ln', {'strength': 'tertiary'}]
+ - [142, 'unicode_lt_s1', 1, 'ICU', 'lt', {'strength': 'primary'}]
+ - [143, 'unicode_lt_s2', 1, 'ICU', 'lt', {'strength': 'secondary'}]
+ - [144, 'unicode_lt_s3', 1, 'ICU', 'lt', {'strength': 'tertiary'}]
+ - [145, 'unicode_lv_s1', 1, 'ICU', 'lv', {'strength': 'primary'}]
+ - [146, 'unicode_lv_s2', 1, 'ICU', 'lv', {'strength': 'secondary'}]
+ - [147, 'unicode_lv_s3', 1, 'ICU', 'lv', {'strength': 'tertiary'}]
+ - [148, 'unicode_mk_s1', 1, 'ICU', 'mk', {'strength': 'primary'}]
+ - [149, 'unicode_mk_s2', 1, 'ICU', 'mk', {'strength': 'secondary'}]
+ - [150, 'unicode_mk_s3', 1, 'ICU', 'mk', {'strength': 'tertiary'}]
+ - [151, 'unicode_ml_s1', 1, 'ICU', 'ml', {'strength': 'primary'}]
+ - [152, 'unicode_ml_s2', 1, 'ICU', 'ml', {'strength': 'secondary'}]
+ - [153, 'unicode_ml_s3', 1, 'ICU', 'ml', {'strength': 'tertiary'}]
+ - [154, 'unicode_mr_s1', 1, 'ICU', 'mr', {'strength': 'primary'}]
+ - [155, 'unicode_mr_s2', 1, 'ICU', 'mr', {'strength': 'secondary'}]
+ - [156, 'unicode_mr_s3', 1, 'ICU', 'mr', {'strength': 'tertiary'}]
+ - [157, 'unicode_mt_s1', 1, 'ICU', 'mt', {'strength': 'primary'}]
+ - [158, 'unicode_mt_s2', 1, 'ICU', 'mt', {'strength': 'secondary'}]
+ - [159, 'unicode_mt_s3', 1, 'ICU', 'mt', {'strength': 'tertiary'}]
+ - [160, 'unicode_nb_s1', 1, 'ICU', 'nb', {'strength': 'primary'}]
+ - [161, 'unicode_nb_s2', 1, 'ICU', 'nb', {'strength': 'secondary'}]
+ - [162, 'unicode_nb_s3', 1, 'ICU', 'nb', {'strength': 'tertiary'}]
+ - [163, 'unicode_nn_s1', 1, 'ICU', 'nn', {'strength': 'primary'}]
+ - [164, 'unicode_nn_s2', 1, 'ICU', 'nn', {'strength': 'secondary'}]
+ - [165, 'unicode_nn_s3', 1, 'ICU', 'nn', {'strength': 'tertiary'}]
+ - [166, 'unicode_nso_s1', 1, 'ICU', 'nso', {'strength': 'primary'}]
+ - [167, 'unicode_nso_s2', 1, 'ICU', 'nso', {'strength': 'secondary'}]
+ - [168, 'unicode_nso_s3', 1, 'ICU', 'nso', {'strength': 'tertiary'}]
+ - [169, 'unicode_om_s1', 1, 'ICU', 'om', {'strength': 'primary'}]
+ - [170, 'unicode_om_s2', 1, 'ICU', 'om', {'strength': 'secondary'}]
+ - [171, 'unicode_om_s3', 1, 'ICU', 'om', {'strength': 'tertiary'}]
+ - [172, 'unicode_or_s1', 1, 'ICU', 'or', {'strength': 'primary'}]
+ - [173, 'unicode_or_s2', 1, 'ICU', 'or', {'strength': 'secondary'}]
+ - [174, 'unicode_or_s3', 1, 'ICU', 'or', {'strength': 'tertiary'}]
+ - [175, 'unicode_pa_s1', 1, 'ICU', 'pa', {'strength': 'primary'}]
+ - [176, 'unicode_pa_s2', 1, 'ICU', 'pa', {'strength': 'secondary'}]
+ - [177, 'unicode_pa_s3', 1, 'ICU', 'pa', {'strength': 'tertiary'}]
+ - [178, 'unicode_pl_s1', 1, 'ICU', 'pl', {'strength': 'primary'}]
+ - [179, 'unicode_pl_s2', 1, 'ICU', 'pl', {'strength': 'secondary'}]
+ - [180, 'unicode_pl_s3', 1, 'ICU', 'pl', {'strength': 'tertiary'}]
+ - [181, 'unicode_ro_s1', 1, 'ICU', 'ro', {'strength': 'primary'}]
+ - [182, 'unicode_ro_s2', 1, 'ICU', 'ro', {'strength': 'secondary'}]
+ - [183, 'unicode_ro_s3', 1, 'ICU', 'ro', {'strength': 'tertiary'}]
+ - [184, 'unicode_sa_s1', 1, 'ICU', 'sa', {'strength': 'primary'}]
+ - [185, 'unicode_sa_s2', 1, 'ICU', 'sa', {'strength': 'secondary'}]
+ - [186, 'unicode_sa_s3', 1, 'ICU', 'sa', {'strength': 'tertiary'}]
+ - [187, 'unicode_se_s1', 1, 'ICU', 'se', {'strength': 'primary'}]
+ - [188, 'unicode_se_s2', 1, 'ICU', 'se', {'strength': 'secondary'}]
+ - [189, 'unicode_se_s3', 1, 'ICU', 'se', {'strength': 'tertiary'}]
+ - [190, 'unicode_si_s1', 1, 'ICU', 'si', {'strength': 'primary'}]
+ - [191, 'unicode_si_s2', 1, 'ICU', 'si', {'strength': 'secondary'}]
+ - [192, 'unicode_si_s3', 1, 'ICU', 'si', {'strength': 'tertiary'}]
+ - [193, 'unicode_si__dictionary_s1', 1, 'ICU', 'si_u_co_dict', {'strength': 'primary'}]
+ - [194, 'unicode_si__dictionary_s2', 1, 'ICU', 'si_u_co_dict', {'strength': 'secondary'}]
+ - [195, 'unicode_si__dictionary_s3', 1, 'ICU', 'si_u_co_dict', {'strength': 'tertiary'}]
+ - [196, 'unicode_sk_s1', 1, 'ICU', 'sk', {'strength': 'primary'}]
+ - [197, 'unicode_sk_s2', 1, 'ICU', 'sk', {'strength': 'secondary'}]
+ - [198, 'unicode_sk_s3', 1, 'ICU', 'sk', {'strength': 'tertiary'}]
+ - [199, 'unicode_sl_s1', 1, 'ICU', 'sl', {'strength': 'primary'}]
+ - [200, 'unicode_sl_s2', 1, 'ICU', 'sl', {'strength': 'secondary'}]
+ - [201, 'unicode_sl_s3', 1, 'ICU', 'sl', {'strength': 'tertiary'}]
+ - [202, 'unicode_sq_s1', 1, 'ICU', 'sq', {'strength': 'primary'}]
+ - [203, 'unicode_sq_s2', 1, 'ICU', 'sq', {'strength': 'secondary'}]
+ - [204, 'unicode_sq_s3', 1, 'ICU', 'sq', {'strength': 'tertiary'}]
+ - [205, 'unicode_sr_s1', 1, 'ICU', 'sr', {'strength': 'primary'}]
+ - [206, 'unicode_sr_s2', 1, 'ICU', 'sr', {'strength': 'secondary'}]
+ - [207, 'unicode_sr_s3', 1, 'ICU', 'sr', {'strength': 'tertiary'}]
+ - [208, 'unicode_sr_Latn_s1', 1, 'ICU', 'sr_Latn', {'strength': 'primary'}]
+ - [209, 'unicode_sr_Latn_s2', 1, 'ICU', 'sr_Latn', {'strength': 'secondary'}]
+ - [210, 'unicode_sr_Latn_s3', 1, 'ICU', 'sr_Latn', {'strength': 'tertiary'}]
+ - [211, 'unicode_sv_s1', 1, 'ICU', 'sv', {'strength': 'primary'}]
+ - [212, 'unicode_sv_s2', 1, 'ICU', 'sv', {'strength': 'secondary'}]
+ - [213, 'unicode_sv_s3', 1, 'ICU', 'sv', {'strength': 'tertiary'}]
+ - [214, 'unicode_sv__reformed_s1', 1, 'ICU', 'sv_u_co_reformed', {'strength': 'primary'}]
+ - [215, 'unicode_sv__reformed_s2', 1, 'ICU', 'sv_u_co_reformed', {'strength': 'secondary'}]
+ - [216, 'unicode_sv__reformed_s3', 1, 'ICU', 'sv_u_co_reformed', {'strength': 'tertiary'}]
+ - [217, 'unicode_ta_s1', 1, 'ICU', 'ta', {'strength': 'primary'}]
+ - [218, 'unicode_ta_s2', 1, 'ICU', 'ta', {'strength': 'secondary'}]
+ - [219, 'unicode_ta_s3', 1, 'ICU', 'ta', {'strength': 'tertiary'}]
+ - [220, 'unicode_te_s1', 1, 'ICU', 'te', {'strength': 'primary'}]
+ - [221, 'unicode_te_s2', 1, 'ICU', 'te', {'strength': 'secondary'}]
+ - [222, 'unicode_te_s3', 1, 'ICU', 'te', {'strength': 'tertiary'}]
+ - [223, 'unicode_th_s1', 1, 'ICU', 'th', {'strength': 'primary'}]
+ - [224, 'unicode_th_s2', 1, 'ICU', 'th', {'strength': 'secondary'}]
+ - [225, 'unicode_th_s3', 1, 'ICU', 'th', {'strength': 'tertiary'}]
+ - [226, 'unicode_tn_s1', 1, 'ICU', 'tn', {'strength': 'primary'}]
+ - [227, 'unicode_tn_s2', 1, 'ICU', 'tn', {'strength': 'secondary'}]
+ - [228, 'unicode_tn_s3', 1, 'ICU', 'tn', {'strength': 'tertiary'}]
+ - [229, 'unicode_to_s1', 1, 'ICU', 'to', {'strength': 'primary'}]
+ - [230, 'unicode_to_s2', 1, 'ICU', 'to', {'strength': 'secondary'}]
+ - [231, 'unicode_to_s3', 1, 'ICU', 'to', {'strength': 'tertiary'}]
+ - [232, 'unicode_tr_s1', 1, 'ICU', 'tr', {'strength': 'primary'}]
+ - [233, 'unicode_tr_s2', 1, 'ICU', 'tr', {'strength': 'secondary'}]
+ - [234, 'unicode_tr_s3', 1, 'ICU', 'tr', {'strength': 'tertiary'}]
+ - [235, 'unicode_ug_Cyrl_s1', 1, 'ICU', 'ug', {'strength': 'primary'}]
+ - [236, 'unicode_ug_Cyrl_s2', 1, 'ICU', 'ug', {'strength': 'secondary'}]
+ - [237, 'unicode_ug_Cyrl_s3', 1, 'ICU', 'ug', {'strength': 'tertiary'}]
+ - [238, 'unicode_uk_s1', 1, 'ICU', 'uk', {'strength': 'primary'}]
+ - [239, 'unicode_uk_s2', 1, 'ICU', 'uk', {'strength': 'secondary'}]
+ - [240, 'unicode_uk_s3', 1, 'ICU', 'uk', {'strength': 'tertiary'}]
+ - [241, 'unicode_ur_s1', 1, 'ICU', 'ur', {'strength': 'primary'}]
+ - [242, 'unicode_ur_s2', 1, 'ICU', 'ur', {'strength': 'secondary'}]
+ - [243, 'unicode_ur_s3', 1, 'ICU', 'ur', {'strength': 'tertiary'}]
+ - [244, 'unicode_vi_s1', 1, 'ICU', 'vi', {'strength': 'primary'}]
+ - [245, 'unicode_vi_s2', 1, 'ICU', 'vi', {'strength': 'secondary'}]
+ - [246, 'unicode_vi_s3', 1, 'ICU', 'vi', {'strength': 'tertiary'}]
+ - [247, 'unicode_vo_s1', 1, 'ICU', 'vo', {'strength': 'primary'}]
+ - [248, 'unicode_vo_s2', 1, 'ICU', 'vo', {'strength': 'secondary'}]
+ - [249, 'unicode_vo_s3', 1, 'ICU', 'vo', {'strength': 'tertiary'}]
+ - [250, 'unicode_wae_s1', 1, 'ICU', 'wae', {'strength': 'primary'}]
+ - [251, 'unicode_wae_s2', 1, 'ICU', 'wae', {'strength': 'secondary'}]
+ - [252, 'unicode_wae_s3', 1, 'ICU', 'wae', {'strength': 'tertiary'}]
+ - [253, 'unicode_wo_s1', 1, 'ICU', 'wo', {'strength': 'primary'}]
+ - [254, 'unicode_wo_s2', 1, 'ICU', 'wo', {'strength': 'secondary'}]
+ - [255, 'unicode_wo_s3', 1, 'ICU', 'wo', {'strength': 'tertiary'}]
+ - [256, 'unicode_yo_s1', 1, 'ICU', 'yo', {'strength': 'primary'}]
+ - [257, 'unicode_yo_s2', 1, 'ICU', 'yo', {'strength': 'secondary'}]
+ - [258, 'unicode_yo_s3', 1, 'ICU', 'yo', {'strength': 'tertiary'}]
+ - [259, 'unicode_zh_s1', 1, 'ICU', 'zh', {'strength': 'primary'}]
+ - [260, 'unicode_zh_s2', 1, 'ICU', 'zh', {'strength': 'secondary'}]
+ - [261, 'unicode_zh_s3', 1, 'ICU', 'zh', {'strength': 'tertiary'}]
+ - [262, 'unicode_zh__big5han_s1', 1, 'ICU', 'zh_u_co_big5han', {'strength': 'primary'}]
+ - [263, 'unicode_zh__big5han_s2', 1, 'ICU', 'zh_u_co_big5han', {'strength': 'secondary'}]
+ - [264, 'unicode_zh__big5han_s3', 1, 'ICU', 'zh_u_co_big5han', {'strength': 'tertiary'}]
+ - [265, 'unicode_zh__gb2312han_s1', 1, 'ICU', 'zh_u_co_gb2312', {'strength': 'primary'}]
+ - [266, 'unicode_zh__gb2312han_s2', 1, 'ICU', 'zh_u_co_gb2312', {'strength': 'secondary'}]
+ - [267, 'unicode_zh__gb2312han_s3', 1, 'ICU', 'zh_u_co_gb2312', {'strength': 'tertiary'}]
+ - [268, 'unicode_zh__pinyin_s1', 1, 'ICU', 'zh_u_co_pinyin', {'strength': 'primary'}]
+ - [269, 'unicode_zh__pinyin_s2', 1, 'ICU', 'zh_u_co_pinyin', {'strength': 'secondary'}]
+ - [270, 'unicode_zh__pinyin_s3', 1, 'ICU', 'zh_u_co_pinyin', {'strength': 'tertiary'}]
+ - [271, 'unicode_zh__stroke_s1', 1, 'ICU', 'zh_u_co_stroke', {'strength': 'primary'}]
+ - [272, 'unicode_zh__stroke_s2', 1, 'ICU', 'zh_u_co_stroke', {'strength': 'secondary'}]
+ - [273, 'unicode_zh__stroke_s3', 1, 'ICU', 'zh_u_co_stroke', {'strength': 'tertiary'}]
+ - [274, 'unicode_zh__zhuyin_s1', 1, 'ICU', 'zh_u_co_zhuyin', {'strength': 'primary'}]
+ - [275, 'unicode_zh__zhuyin_s2', 1, 'ICU', 'zh_u_co_zhuyin', {'strength': 'secondary'}]
+ - [276, 'unicode_zh__zhuyin_s3', 1, 'ICU', 'zh_u_co_zhuyin', {'strength': 'tertiary'}]
+ - [277, 'test', 0, 'ICU', 'ru_RU', {}]
...
test_run:cmd('restart server default')
box.space._collation:select{}
@@ -492,12 +764,284 @@ box.space._collation:select{}
- [1, 'unicode', 1, 'ICU', '', {}]
- [2, 'unicode_ci', 1, 'ICU', '', {'strength': 'primary'}]
- [3, 'binary', 1, 'BINARY', '', {}]
- - [4, 'unicode_ru_s2', 1, 'ICU', 'ru_RU', {'strength': 'secondary'}]
- - [5, 'test', 0, 'ICU', 'ru_RU', {}]
+ - [4, 'unicode_af_s1', 1, 'ICU', 'af', {'strength': 'primary'}]
+ - [5, 'unicode_af_s2', 1, 'ICU', 'af', {'strength': 'secondary'}]
+ - [6, 'unicode_af_s3', 1, 'ICU', 'af', {'strength': 'tertiary'}]
+ - [7, 'unicode_am_s1', 1, 'ICU', 'am', {'strength': 'primary'}]
+ - [8, 'unicode_am_s2', 1, 'ICU', 'am', {'strength': 'secondary'}]
+ - [9, 'unicode_am_s3', 1, 'ICU', 'am', {'strength': 'tertiary'}]
+ - [10, 'unicode_ar_s1', 1, 'ICU', 'ar', {'strength': 'primary'}]
+ - [11, 'unicode_ar_s2', 1, 'ICU', 'ar', {'strength': 'secondary'}]
+ - [12, 'unicode_ar_s3', 1, 'ICU', 'ar', {'strength': 'tertiary'}]
+ - [13, 'unicode_as_s1', 1, 'ICU', 'as', {'strength': 'primary'}]
+ - [14, 'unicode_as_s2', 1, 'ICU', 'as', {'strength': 'secondary'}]
+ - [15, 'unicode_as_s3', 1, 'ICU', 'as', {'strength': 'tertiary'}]
+ - [16, 'unicode_az_s1', 1, 'ICU', 'az', {'strength': 'primary'}]
+ - [17, 'unicode_az_s2', 1, 'ICU', 'az', {'strength': 'secondary'}]
+ - [18, 'unicode_az_s3', 1, 'ICU', 'az', {'strength': 'tertiary'}]
+ - [19, 'unicode_be_s1', 1, 'ICU', 'be', {'strength': 'primary'}]
+ - [20, 'unicode_be_s2', 1, 'ICU', 'be', {'strength': 'secondary'}]
+ - [21, 'unicode_be_s3', 1, 'ICU', 'be', {'strength': 'tertiary'}]
+ - [22, 'unicode_bn_s1', 1, 'ICU', 'bn', {'strength': 'primary'}]
+ - [23, 'unicode_bn_s2', 1, 'ICU', 'bn', {'strength': 'secondary'}]
+ - [24, 'unicode_bn_s3', 1, 'ICU', 'bn', {'strength': 'tertiary'}]
+ - [25, 'unicode_bs_s1', 1, 'ICU', 'bs', {'strength': 'primary'}]
+ - [26, 'unicode_bs_s2', 1, 'ICU', 'bs', {'strength': 'secondary'}]
+ - [27, 'unicode_bs_s3', 1, 'ICU', 'bs', {'strength': 'tertiary'}]
+ - [28, 'unicode_bs_Cyrl_s1', 1, 'ICU', 'bs_Cyrl', {'strength': 'primary'}]
+ - [29, 'unicode_bs_Cyrl_s2', 1, 'ICU', 'bs_Cyrl', {'strength': 'secondary'}]
+ - [30, 'unicode_bs_Cyrl_s3', 1, 'ICU', 'bs_Cyrl', {'strength': 'tertiary'}]
+ - [31, 'unicode_ca_s1', 1, 'ICU', 'ca', {'strength': 'primary'}]
+ - [32, 'unicode_ca_s2', 1, 'ICU', 'ca', {'strength': 'secondary'}]
+ - [33, 'unicode_ca_s3', 1, 'ICU', 'ca', {'strength': 'tertiary'}]
+ - [34, 'unicode_cs_s1', 1, 'ICU', 'cs', {'strength': 'primary'}]
+ - [35, 'unicode_cs_s2', 1, 'ICU', 'cs', {'strength': 'secondary'}]
+ - [36, 'unicode_cs_s3', 1, 'ICU', 'cs', {'strength': 'tertiary'}]
+ - [37, 'unicode_cy_s1', 1, 'ICU', 'cy', {'strength': 'primary'}]
+ - [38, 'unicode_cy_s2', 1, 'ICU', 'cy', {'strength': 'secondary'}]
+ - [39, 'unicode_cy_s3', 1, 'ICU', 'cy', {'strength': 'tertiary'}]
+ - [40, 'unicode_da_s1', 1, 'ICU', 'da', {'strength': 'primary'}]
+ - [41, 'unicode_da_s2', 1, 'ICU', 'da', {'strength': 'secondary'}]
+ - [42, 'unicode_da_s3', 1, 'ICU', 'da', {'strength': 'tertiary'}]
+ - [43, 'unicode_de__phonebook_s1', 1, 'ICU', 'de_DE_u_co_phonebk', {'strength': 'primary'}]
+ - [44, 'unicode_de__phonebook_s2', 1, 'ICU', 'de_DE_u_co_phonebk', {'strength': 'secondary'}]
+ - [45, 'unicode_de__phonebook_s3', 1, 'ICU', 'de_DE_u_co_phonebk', {'strength': 'tertiary'}]
+ - [46, 'unicode_de_AT_phonebook_s1', 1, 'ICU', 'de_AT_u_co_phonebk', {'strength': 'primary'}]
+ - [47, 'unicode_de_AT_phonebook_s2', 1, 'ICU', 'de_AT_u_co_phonebk', {'strength': 'secondary'}]
+ - [48, 'unicode_de_AT_phonebook_s3', 1, 'ICU', 'de_AT_u_co_phonebk', {'strength': 'tertiary'}]
+ - [49, 'unicode_dsb_s1', 1, 'ICU', 'dsb', {'strength': 'primary'}]
+ - [50, 'unicode_dsb_s2', 1, 'ICU', 'dsb', {'strength': 'secondary'}]
+ - [51, 'unicode_dsb_s3', 1, 'ICU', 'dsb', {'strength': 'tertiary'}]
+ - [52, 'unicode_ee_s1', 1, 'ICU', 'ee', {'strength': 'primary'}]
+ - [53, 'unicode_ee_s2', 1, 'ICU', 'ee', {'strength': 'secondary'}]
+ - [54, 'unicode_ee_s3', 1, 'ICU', 'ee', {'strength': 'tertiary'}]
+ - [55, 'unicode_eo_s1', 1, 'ICU', 'eo', {'strength': 'primary'}]
+ - [56, 'unicode_eo_s2', 1, 'ICU', 'eo', {'strength': 'secondary'}]
+ - [57, 'unicode_eo_s3', 1, 'ICU', 'eo', {'strength': 'tertiary'}]
+ - [58, 'unicode_es_s1', 1, 'ICU', 'es', {'strength': 'primary'}]
+ - [59, 'unicode_es_s2', 1, 'ICU', 'es', {'strength': 'secondary'}]
+ - [60, 'unicode_es_s3', 1, 'ICU', 'es', {'strength': 'tertiary'}]
+ - [61, 'unicode_es__traditional_s1', 1, 'ICU', 'es_u_co_trad', {'strength': 'primary'}]
+ - [62, 'unicode_es__traditional_s2', 1, 'ICU', 'es_u_co_trad', {'strength': 'secondary'}]
+ - [63, 'unicode_es__traditional_s3', 1, 'ICU', 'es_u_co_trad', {'strength': 'tertiary'}]
+ - [64, 'unicode_et_s1', 1, 'ICU', 'et', {'strength': 'primary'}]
+ - [65, 'unicode_et_s2', 1, 'ICU', 'et', {'strength': 'secondary'}]
+ - [66, 'unicode_et_s3', 1, 'ICU', 'et', {'strength': 'tertiary'}]
+ - [67, 'unicode_fa_s1', 1, 'ICU', 'fa', {'strength': 'primary'}]
+ - [68, 'unicode_fa_s2', 1, 'ICU', 'fa', {'strength': 'secondary'}]
+ - [69, 'unicode_fa_s3', 1, 'ICU', 'fa', {'strength': 'tertiary'}]
+ - [70, 'unicode_fi_s1', 1, 'ICU', 'fi', {'strength': 'primary'}]
+ - [71, 'unicode_fi_s2', 1, 'ICU', 'fi', {'strength': 'secondary'}]
+ - [72, 'unicode_fi_s3', 1, 'ICU', 'fi', {'strength': 'tertiary'}]
+ - [73, 'unicode_fi__phonebook_s1', 1, 'ICU', 'fi_u_co_phonebk', {'strength': 'primary'}]
+ - [74, 'unicode_fi__phonebook_s2', 1, 'ICU', 'fi_u_co_phonebk', {'strength': 'secondary'}]
+ - [75, 'unicode_fi__phonebook_s3', 1, 'ICU', 'fi_u_co_phonebk', {'strength': 'tertiary'}]
+ - [76, 'unicode_fil_s1', 1, 'ICU', 'fil', {'strength': 'primary'}]
+ - [77, 'unicode_fil_s2', 1, 'ICU', 'fil', {'strength': 'secondary'}]
+ - [78, 'unicode_fil_s3', 1, 'ICU', 'fil', {'strength': 'tertiary'}]
+ - [79, 'unicode_fo_s1', 1, 'ICU', 'fo', {'strength': 'primary'}]
+ - [80, 'unicode_fo_s2', 1, 'ICU', 'fo', {'strength': 'secondary'}]
+ - [81, 'unicode_fo_s3', 1, 'ICU', 'fo', {'strength': 'tertiary'}]
+ - [82, 'unicode_fr_CA_s1', 1, 'ICU', 'fr_CA', {'strength': 'primary'}]
+ - [83, 'unicode_fr_CA_s2', 1, 'ICU', 'fr_CA', {'strength': 'secondary'}]
+ - [84, 'unicode_fr_CA_s3', 1, 'ICU', 'fr_CA', {'strength': 'tertiary'}]
+ - [85, 'unicode_gu_s1', 1, 'ICU', 'gu', {'strength': 'primary'}]
+ - [86, 'unicode_gu_s2', 1, 'ICU', 'gu', {'strength': 'secondary'}]
+ - [87, 'unicode_gu_s3', 1, 'ICU', 'gu', {'strength': 'tertiary'}]
+ - [88, 'unicode_ha_s1', 1, 'ICU', 'ha', {'strength': 'primary'}]
+ - [89, 'unicode_ha_s2', 1, 'ICU', 'ha', {'strength': 'secondary'}]
+ - [90, 'unicode_ha_s3', 1, 'ICU', 'ha', {'strength': 'tertiary'}]
+ - [91, 'unicode_haw_s1', 1, 'ICU', 'haw', {'strength': 'primary'}]
+ - [92, 'unicode_haw_s2', 1, 'ICU', 'haw', {'strength': 'secondary'}]
+ - [93, 'unicode_haw_s3', 1, 'ICU', 'haw', {'strength': 'tertiary'}]
+ - [94, 'unicode_he_s1', 1, 'ICU', 'he', {'strength': 'primary'}]
+ - [95, 'unicode_he_s2', 1, 'ICU', 'he', {'strength': 'secondary'}]
+ - [96, 'unicode_he_s3', 1, 'ICU', 'he', {'strength': 'tertiary'}]
+ - [97, 'unicode_hi_s1', 1, 'ICU', 'hi', {'strength': 'primary'}]
+ - [98, 'unicode_hi_s2', 1, 'ICU', 'hi', {'strength': 'secondary'}]
+ - [99, 'unicode_hi_s3', 1, 'ICU', 'hi', {'strength': 'tertiary'}]
+ - [100, 'unicode_hr_s1', 1, 'ICU', 'hr', {'strength': 'primary'}]
+ - [101, 'unicode_hr_s2', 1, 'ICU', 'hr', {'strength': 'secondary'}]
+ - [102, 'unicode_hr_s3', 1, 'ICU', 'hr', {'strength': 'tertiary'}]
+ - [103, 'unicode_hu_s1', 1, 'ICU', 'hu', {'strength': 'primary'}]
+ - [104, 'unicode_hu_s2', 1, 'ICU', 'hu', {'strength': 'secondary'}]
+ - [105, 'unicode_hu_s3', 1, 'ICU', 'hu', {'strength': 'tertiary'}]
+ - [106, 'unicode_hy_s1', 1, 'ICU', 'hy', {'strength': 'primary'}]
+ - [107, 'unicode_hy_s2', 1, 'ICU', 'hy', {'strength': 'secondary'}]
+ - [108, 'unicode_hy_s3', 1, 'ICU', 'hy', {'strength': 'tertiary'}]
+ - [109, 'unicode_ig_s1', 1, 'ICU', 'ig', {'strength': 'primary'}]
+ - [110, 'unicode_ig_s2', 1, 'ICU', 'ig', {'strength': 'secondary'}]
+ - [111, 'unicode_ig_s3', 1, 'ICU', 'ig', {'strength': 'tertiary'}]
+ - [112, 'unicode_is_s1', 1, 'ICU', 'is', {'strength': 'primary'}]
+ - [113, 'unicode_is_s2', 1, 'ICU', 'is', {'strength': 'secondary'}]
+ - [114, 'unicode_is_s3', 1, 'ICU', 'is', {'strength': 'tertiary'}]
+ - [115, 'unicode_ja_s1', 1, 'ICU', 'ja', {'strength': 'primary'}]
+ - [116, 'unicode_ja_s2', 1, 'ICU', 'ja', {'strength': 'secondary'}]
+ - [117, 'unicode_ja_s3', 1, 'ICU', 'ja', {'strength': 'tertiary'}]
+ - [118, 'unicode_kk_s1', 1, 'ICU', 'kk', {'strength': 'primary'}]
+ - [119, 'unicode_kk_s2', 1, 'ICU', 'kk', {'strength': 'secondary'}]
+ - [120, 'unicode_kk_s3', 1, 'ICU', 'kk', {'strength': 'tertiary'}]
+ - [121, 'unicode_kl_s1', 1, 'ICU', 'kl', {'strength': 'primary'}]
+ - [122, 'unicode_kl_s2', 1, 'ICU', 'kl', {'strength': 'secondary'}]
+ - [123, 'unicode_kl_s3', 1, 'ICU', 'kl', {'strength': 'tertiary'}]
+ - [124, 'unicode_kn_s1', 1, 'ICU', 'kn', {'strength': 'primary'}]
+ - [125, 'unicode_kn_s2', 1, 'ICU', 'kn', {'strength': 'secondary'}]
+ - [126, 'unicode_kn_s3', 1, 'ICU', 'kn', {'strength': 'tertiary'}]
+ - [127, 'unicode_ko_s1', 1, 'ICU', 'ko', {'strength': 'primary'}]
+ - [128, 'unicode_ko_s2', 1, 'ICU', 'ko', {'strength': 'secondary'}]
+ - [129, 'unicode_ko_s3', 1, 'ICU', 'ko', {'strength': 'tertiary'}]
+ - [130, 'unicode_kok_s1', 1, 'ICU', 'kok', {'strength': 'primary'}]
+ - [131, 'unicode_kok_s2', 1, 'ICU', 'kok', {'strength': 'secondary'}]
+ - [132, 'unicode_kok_s3', 1, 'ICU', 'kok', {'strength': 'tertiary'}]
+ - [133, 'unicode_ky_s1', 1, 'ICU', 'ky', {'strength': 'primary'}]
+ - [134, 'unicode_ky_s2', 1, 'ICU', 'ky', {'strength': 'secondary'}]
+ - [135, 'unicode_ky_s3', 1, 'ICU', 'ky', {'strength': 'tertiary'}]
+ - [136, 'unicode_lkt_s1', 1, 'ICU', 'lkt', {'strength': 'primary'}]
+ - [137, 'unicode_lkt_s2', 1, 'ICU', 'lkt', {'strength': 'secondary'}]
+ - [138, 'unicode_lkt_s3', 1, 'ICU', 'lkt', {'strength': 'tertiary'}]
+ - [139, 'unicode_ln_s1', 1, 'ICU', 'ln', {'strength': 'primary'}]
+ - [140, 'unicode_ln_s2', 1, 'ICU', 'ln', {'strength': 'secondary'}]
+ - [141, 'unicode_ln_s3', 1, 'ICU', 'ln', {'strength': 'tertiary'}]
+ - [142, 'unicode_lt_s1', 1, 'ICU', 'lt', {'strength': 'primary'}]
+ - [143, 'unicode_lt_s2', 1, 'ICU', 'lt', {'strength': 'secondary'}]
+ - [144, 'unicode_lt_s3', 1, 'ICU', 'lt', {'strength': 'tertiary'}]
+ - [145, 'unicode_lv_s1', 1, 'ICU', 'lv', {'strength': 'primary'}]
+ - [146, 'unicode_lv_s2', 1, 'ICU', 'lv', {'strength': 'secondary'}]
+ - [147, 'unicode_lv_s3', 1, 'ICU', 'lv', {'strength': 'tertiary'}]
+ - [148, 'unicode_mk_s1', 1, 'ICU', 'mk', {'strength': 'primary'}]
+ - [149, 'unicode_mk_s2', 1, 'ICU', 'mk', {'strength': 'secondary'}]
+ - [150, 'unicode_mk_s3', 1, 'ICU', 'mk', {'strength': 'tertiary'}]
+ - [151, 'unicode_ml_s1', 1, 'ICU', 'ml', {'strength': 'primary'}]
+ - [152, 'unicode_ml_s2', 1, 'ICU', 'ml', {'strength': 'secondary'}]
+ - [153, 'unicode_ml_s3', 1, 'ICU', 'ml', {'strength': 'tertiary'}]
+ - [154, 'unicode_mr_s1', 1, 'ICU', 'mr', {'strength': 'primary'}]
+ - [155, 'unicode_mr_s2', 1, 'ICU', 'mr', {'strength': 'secondary'}]
+ - [156, 'unicode_mr_s3', 1, 'ICU', 'mr', {'strength': 'tertiary'}]
+ - [157, 'unicode_mt_s1', 1, 'ICU', 'mt', {'strength': 'primary'}]
+ - [158, 'unicode_mt_s2', 1, 'ICU', 'mt', {'strength': 'secondary'}]
+ - [159, 'unicode_mt_s3', 1, 'ICU', 'mt', {'strength': 'tertiary'}]
+ - [160, 'unicode_nb_s1', 1, 'ICU', 'nb', {'strength': 'primary'}]
+ - [161, 'unicode_nb_s2', 1, 'ICU', 'nb', {'strength': 'secondary'}]
+ - [162, 'unicode_nb_s3', 1, 'ICU', 'nb', {'strength': 'tertiary'}]
+ - [163, 'unicode_nn_s1', 1, 'ICU', 'nn', {'strength': 'primary'}]
+ - [164, 'unicode_nn_s2', 1, 'ICU', 'nn', {'strength': 'secondary'}]
+ - [165, 'unicode_nn_s3', 1, 'ICU', 'nn', {'strength': 'tertiary'}]
+ - [166, 'unicode_nso_s1', 1, 'ICU', 'nso', {'strength': 'primary'}]
+ - [167, 'unicode_nso_s2', 1, 'ICU', 'nso', {'strength': 'secondary'}]
+ - [168, 'unicode_nso_s3', 1, 'ICU', 'nso', {'strength': 'tertiary'}]
+ - [169, 'unicode_om_s1', 1, 'ICU', 'om', {'strength': 'primary'}]
+ - [170, 'unicode_om_s2', 1, 'ICU', 'om', {'strength': 'secondary'}]
+ - [171, 'unicode_om_s3', 1, 'ICU', 'om', {'strength': 'tertiary'}]
+ - [172, 'unicode_or_s1', 1, 'ICU', 'or', {'strength': 'primary'}]
+ - [173, 'unicode_or_s2', 1, 'ICU', 'or', {'strength': 'secondary'}]
+ - [174, 'unicode_or_s3', 1, 'ICU', 'or', {'strength': 'tertiary'}]
+ - [175, 'unicode_pa_s1', 1, 'ICU', 'pa', {'strength': 'primary'}]
+ - [176, 'unicode_pa_s2', 1, 'ICU', 'pa', {'strength': 'secondary'}]
+ - [177, 'unicode_pa_s3', 1, 'ICU', 'pa', {'strength': 'tertiary'}]
+ - [178, 'unicode_pl_s1', 1, 'ICU', 'pl', {'strength': 'primary'}]
+ - [179, 'unicode_pl_s2', 1, 'ICU', 'pl', {'strength': 'secondary'}]
+ - [180, 'unicode_pl_s3', 1, 'ICU', 'pl', {'strength': 'tertiary'}]
+ - [181, 'unicode_ro_s1', 1, 'ICU', 'ro', {'strength': 'primary'}]
+ - [182, 'unicode_ro_s2', 1, 'ICU', 'ro', {'strength': 'secondary'}]
+ - [183, 'unicode_ro_s3', 1, 'ICU', 'ro', {'strength': 'tertiary'}]
+ - [184, 'unicode_sa_s1', 1, 'ICU', 'sa', {'strength': 'primary'}]
+ - [185, 'unicode_sa_s2', 1, 'ICU', 'sa', {'strength': 'secondary'}]
+ - [186, 'unicode_sa_s3', 1, 'ICU', 'sa', {'strength': 'tertiary'}]
+ - [187, 'unicode_se_s1', 1, 'ICU', 'se', {'strength': 'primary'}]
+ - [188, 'unicode_se_s2', 1, 'ICU', 'se', {'strength': 'secondary'}]
+ - [189, 'unicode_se_s3', 1, 'ICU', 'se', {'strength': 'tertiary'}]
+ - [190, 'unicode_si_s1', 1, 'ICU', 'si', {'strength': 'primary'}]
+ - [191, 'unicode_si_s2', 1, 'ICU', 'si', {'strength': 'secondary'}]
+ - [192, 'unicode_si_s3', 1, 'ICU', 'si', {'strength': 'tertiary'}]
+ - [193, 'unicode_si__dictionary_s1', 1, 'ICU', 'si_u_co_dict', {'strength': 'primary'}]
+ - [194, 'unicode_si__dictionary_s2', 1, 'ICU', 'si_u_co_dict', {'strength': 'secondary'}]
+ - [195, 'unicode_si__dictionary_s3', 1, 'ICU', 'si_u_co_dict', {'strength': 'tertiary'}]
+ - [196, 'unicode_sk_s1', 1, 'ICU', 'sk', {'strength': 'primary'}]
+ - [197, 'unicode_sk_s2', 1, 'ICU', 'sk', {'strength': 'secondary'}]
+ - [198, 'unicode_sk_s3', 1, 'ICU', 'sk', {'strength': 'tertiary'}]
+ - [199, 'unicode_sl_s1', 1, 'ICU', 'sl', {'strength': 'primary'}]
+ - [200, 'unicode_sl_s2', 1, 'ICU', 'sl', {'strength': 'secondary'}]
+ - [201, 'unicode_sl_s3', 1, 'ICU', 'sl', {'strength': 'tertiary'}]
+ - [202, 'unicode_sq_s1', 1, 'ICU', 'sq', {'strength': 'primary'}]
+ - [203, 'unicode_sq_s2', 1, 'ICU', 'sq', {'strength': 'secondary'}]
+ - [204, 'unicode_sq_s3', 1, 'ICU', 'sq', {'strength': 'tertiary'}]
+ - [205, 'unicode_sr_s1', 1, 'ICU', 'sr', {'strength': 'primary'}]
+ - [206, 'unicode_sr_s2', 1, 'ICU', 'sr', {'strength': 'secondary'}]
+ - [207, 'unicode_sr_s3', 1, 'ICU', 'sr', {'strength': 'tertiary'}]
+ - [208, 'unicode_sr_Latn_s1', 1, 'ICU', 'sr_Latn', {'strength': 'primary'}]
+ - [209, 'unicode_sr_Latn_s2', 1, 'ICU', 'sr_Latn', {'strength': 'secondary'}]
+ - [210, 'unicode_sr_Latn_s3', 1, 'ICU', 'sr_Latn', {'strength': 'tertiary'}]
+ - [211, 'unicode_sv_s1', 1, 'ICU', 'sv', {'strength': 'primary'}]
+ - [212, 'unicode_sv_s2', 1, 'ICU', 'sv', {'strength': 'secondary'}]
+ - [213, 'unicode_sv_s3', 1, 'ICU', 'sv', {'strength': 'tertiary'}]
+ - [214, 'unicode_sv__reformed_s1', 1, 'ICU', 'sv_u_co_reformed', {'strength': 'primary'}]
+ - [215, 'unicode_sv__reformed_s2', 1, 'ICU', 'sv_u_co_reformed', {'strength': 'secondary'}]
+ - [216, 'unicode_sv__reformed_s3', 1, 'ICU', 'sv_u_co_reformed', {'strength': 'tertiary'}]
+ - [217, 'unicode_ta_s1', 1, 'ICU', 'ta', {'strength': 'primary'}]
+ - [218, 'unicode_ta_s2', 1, 'ICU', 'ta', {'strength': 'secondary'}]
+ - [219, 'unicode_ta_s3', 1, 'ICU', 'ta', {'strength': 'tertiary'}]
+ - [220, 'unicode_te_s1', 1, 'ICU', 'te', {'strength': 'primary'}]
+ - [221, 'unicode_te_s2', 1, 'ICU', 'te', {'strength': 'secondary'}]
+ - [222, 'unicode_te_s3', 1, 'ICU', 'te', {'strength': 'tertiary'}]
+ - [223, 'unicode_th_s1', 1, 'ICU', 'th', {'strength': 'primary'}]
+ - [224, 'unicode_th_s2', 1, 'ICU', 'th', {'strength': 'secondary'}]
+ - [225, 'unicode_th_s3', 1, 'ICU', 'th', {'strength': 'tertiary'}]
+ - [226, 'unicode_tn_s1', 1, 'ICU', 'tn', {'strength': 'primary'}]
+ - [227, 'unicode_tn_s2', 1, 'ICU', 'tn', {'strength': 'secondary'}]
+ - [228, 'unicode_tn_s3', 1, 'ICU', 'tn', {'strength': 'tertiary'}]
+ - [229, 'unicode_to_s1', 1, 'ICU', 'to', {'strength': 'primary'}]
+ - [230, 'unicode_to_s2', 1, 'ICU', 'to', {'strength': 'secondary'}]
+ - [231, 'unicode_to_s3', 1, 'ICU', 'to', {'strength': 'tertiary'}]
+ - [232, 'unicode_tr_s1', 1, 'ICU', 'tr', {'strength': 'primary'}]
+ - [233, 'unicode_tr_s2', 1, 'ICU', 'tr', {'strength': 'secondary'}]
+ - [234, 'unicode_tr_s3', 1, 'ICU', 'tr', {'strength': 'tertiary'}]
+ - [235, 'unicode_ug_Cyrl_s1', 1, 'ICU', 'ug', {'strength': 'primary'}]
+ - [236, 'unicode_ug_Cyrl_s2', 1, 'ICU', 'ug', {'strength': 'secondary'}]
+ - [237, 'unicode_ug_Cyrl_s3', 1, 'ICU', 'ug', {'strength': 'tertiary'}]
+ - [238, 'unicode_uk_s1', 1, 'ICU', 'uk', {'strength': 'primary'}]
+ - [239, 'unicode_uk_s2', 1, 'ICU', 'uk', {'strength': 'secondary'}]
+ - [240, 'unicode_uk_s3', 1, 'ICU', 'uk', {'strength': 'tertiary'}]
+ - [241, 'unicode_ur_s1', 1, 'ICU', 'ur', {'strength': 'primary'}]
+ - [242, 'unicode_ur_s2', 1, 'ICU', 'ur', {'strength': 'secondary'}]
+ - [243, 'unicode_ur_s3', 1, 'ICU', 'ur', {'strength': 'tertiary'}]
+ - [244, 'unicode_vi_s1', 1, 'ICU', 'vi', {'strength': 'primary'}]
+ - [245, 'unicode_vi_s2', 1, 'ICU', 'vi', {'strength': 'secondary'}]
+ - [246, 'unicode_vi_s3', 1, 'ICU', 'vi', {'strength': 'tertiary'}]
+ - [247, 'unicode_vo_s1', 1, 'ICU', 'vo', {'strength': 'primary'}]
+ - [248, 'unicode_vo_s2', 1, 'ICU', 'vo', {'strength': 'secondary'}]
+ - [249, 'unicode_vo_s3', 1, 'ICU', 'vo', {'strength': 'tertiary'}]
+ - [250, 'unicode_wae_s1', 1, 'ICU', 'wae', {'strength': 'primary'}]
+ - [251, 'unicode_wae_s2', 1, 'ICU', 'wae', {'strength': 'secondary'}]
+ - [252, 'unicode_wae_s3', 1, 'ICU', 'wae', {'strength': 'tertiary'}]
+ - [253, 'unicode_wo_s1', 1, 'ICU', 'wo', {'strength': 'primary'}]
+ - [254, 'unicode_wo_s2', 1, 'ICU', 'wo', {'strength': 'secondary'}]
+ - [255, 'unicode_wo_s3', 1, 'ICU', 'wo', {'strength': 'tertiary'}]
+ - [256, 'unicode_yo_s1', 1, 'ICU', 'yo', {'strength': 'primary'}]
+ - [257, 'unicode_yo_s2', 1, 'ICU', 'yo', {'strength': 'secondary'}]
+ - [258, 'unicode_yo_s3', 1, 'ICU', 'yo', {'strength': 'tertiary'}]
+ - [259, 'unicode_zh_s1', 1, 'ICU', 'zh', {'strength': 'primary'}]
+ - [260, 'unicode_zh_s2', 1, 'ICU', 'zh', {'strength': 'secondary'}]
+ - [261, 'unicode_zh_s3', 1, 'ICU', 'zh', {'strength': 'tertiary'}]
+ - [262, 'unicode_zh__big5han_s1', 1, 'ICU', 'zh_u_co_big5han', {'strength': 'primary'}]
+ - [263, 'unicode_zh__big5han_s2', 1, 'ICU', 'zh_u_co_big5han', {'strength': 'secondary'}]
+ - [264, 'unicode_zh__big5han_s3', 1, 'ICU', 'zh_u_co_big5han', {'strength': 'tertiary'}]
+ - [265, 'unicode_zh__gb2312han_s1', 1, 'ICU', 'zh_u_co_gb2312', {'strength': 'primary'}]
+ - [266, 'unicode_zh__gb2312han_s2', 1, 'ICU', 'zh_u_co_gb2312', {'strength': 'secondary'}]
+ - [267, 'unicode_zh__gb2312han_s3', 1, 'ICU', 'zh_u_co_gb2312', {'strength': 'tertiary'}]
+ - [268, 'unicode_zh__pinyin_s1', 1, 'ICU', 'zh_u_co_pinyin', {'strength': 'primary'}]
+ - [269, 'unicode_zh__pinyin_s2', 1, 'ICU', 'zh_u_co_pinyin', {'strength': 'secondary'}]
+ - [270, 'unicode_zh__pinyin_s3', 1, 'ICU', 'zh_u_co_pinyin', {'strength': 'tertiary'}]
+ - [271, 'unicode_zh__stroke_s1', 1, 'ICU', 'zh_u_co_stroke', {'strength': 'primary'}]
+ - [272, 'unicode_zh__stroke_s2', 1, 'ICU', 'zh_u_co_stroke', {'strength': 'secondary'}]
+ - [273, 'unicode_zh__stroke_s3', 1, 'ICU', 'zh_u_co_stroke', {'strength': 'tertiary'}]
+ - [274, 'unicode_zh__zhuyin_s1', 1, 'ICU', 'zh_u_co_zhuyin', {'strength': 'primary'}]
+ - [275, 'unicode_zh__zhuyin_s2', 1, 'ICU', 'zh_u_co_zhuyin', {'strength': 'secondary'}]
+ - [276, 'unicode_zh__zhuyin_s3', 1, 'ICU', 'zh_u_co_zhuyin', {'strength': 'tertiary'}]
+ - [277, 'test', 0, 'ICU', 'ru_RU', {}]
...
box.space._collation.index.name:delete{'test'}
---
-- [5, 'test', 0, 'ICU', 'ru_RU', {}]
+- [277, 'test', 0, 'ICU', 'ru_RU', {}]
...
--
-- gh-3290: expose ICU into Lua. It uses built-in collations, that
diff --git a/test/box/net.box.result b/test/box/net.box.result
index 67bb29a39..7959a3035 100644
--- a/test/box/net.box.result
+++ b/test/box/net.box.result
@@ -2666,7 +2666,7 @@ c.space.test.index.sk.parts
---
- - type: string
is_nullable: false
- collation_id: 5
+ collation_id: 277
fieldno: 1
...
c:close()
diff --git a/test/sql-tap/collation.test.lua b/test/sql-tap/collation.test.lua
index cec980423..158036f33 100755
--- a/test/sql-tap/collation.test.lua
+++ b/test/sql-tap/collation.test.lua
@@ -21,10 +21,282 @@ test:do_execsql_test(
1,"unicode",
2,"unicode_ci",
3,"binary",
- 4,"unicode_ru_s2",
- 5,"unicode_numeric",
- 6,"unicode_numeric_s2",
- 7,"unicode_tur_s2"
+ 4,"unicode_af_s1",
+ 5,"unicode_af_s2",
+ 6,"unicode_af_s3",
+ 7,"unicode_am_s1",
+ 8,"unicode_am_s2",
+ 9,"unicode_am_s3",
+ 10,"unicode_ar_s1",
+ 11,"unicode_ar_s2",
+ 12,"unicode_ar_s3",
+ 13,"unicode_as_s1",
+ 14,"unicode_as_s2",
+ 15,"unicode_as_s3",
+ 16,"unicode_az_s1",
+ 17,"unicode_az_s2",
+ 18,"unicode_az_s3",
+ 19,"unicode_be_s1",
+ 20,"unicode_be_s2",
+ 21,"unicode_be_s3",
+ 22,"unicode_bn_s1",
+ 23,"unicode_bn_s2",
+ 24,"unicode_bn_s3",
+ 25,"unicode_bs_s1",
+ 26,"unicode_bs_s2",
+ 27,"unicode_bs_s3",
+ 28,"unicode_bs_Cyrl_s1",
+ 29,"unicode_bs_Cyrl_s2",
+ 30,"unicode_bs_Cyrl_s3",
+ 31,"unicode_ca_s1",
+ 32,"unicode_ca_s2",
+ 33,"unicode_ca_s3",
+ 34,"unicode_cs_s1",
+ 35,"unicode_cs_s2",
+ 36,"unicode_cs_s3",
+ 37,"unicode_cy_s1",
+ 38,"unicode_cy_s2",
+ 39,"unicode_cy_s3",
+ 40,"unicode_da_s1",
+ 41,"unicode_da_s2",
+ 42,"unicode_da_s3",
+ 43,"unicode_de__phonebook_s1",
+ 44,"unicode_de__phonebook_s2",
+ 45,"unicode_de__phonebook_s3",
+ 46,"unicode_de_AT_phonebook_s1",
+ 47,"unicode_de_AT_phonebook_s2",
+ 48,"unicode_de_AT_phonebook_s3",
+ 49,"unicode_dsb_s1",
+ 50,"unicode_dsb_s2",
+ 51,"unicode_dsb_s3",
+ 52,"unicode_ee_s1",
+ 53,"unicode_ee_s2",
+ 54,"unicode_ee_s3",
+ 55,"unicode_eo_s1",
+ 56,"unicode_eo_s2",
+ 57,"unicode_eo_s3",
+ 58,"unicode_es_s1",
+ 59,"unicode_es_s2",
+ 60,"unicode_es_s3",
+ 61,"unicode_es__traditional_s1",
+ 62,"unicode_es__traditional_s2",
+ 63,"unicode_es__traditional_s3",
+ 64,"unicode_et_s1",
+ 65,"unicode_et_s2",
+ 66,"unicode_et_s3",
+ 67,"unicode_fa_s1",
+ 68,"unicode_fa_s2",
+ 69,"unicode_fa_s3",
+ 70,"unicode_fi_s1",
+ 71,"unicode_fi_s2",
+ 72,"unicode_fi_s3",
+ 73,"unicode_fi__phonebook_s1",
+ 74,"unicode_fi__phonebook_s2",
+ 75,"unicode_fi__phonebook_s3",
+ 76,"unicode_fil_s1",
+ 77,"unicode_fil_s2",
+ 78,"unicode_fil_s3",
+ 79,"unicode_fo_s1",
+ 80,"unicode_fo_s2",
+ 81,"unicode_fo_s3",
+ 82,"unicode_fr_CA_s1",
+ 83,"unicode_fr_CA_s2",
+ 84,"unicode_fr_CA_s3",
+ 85,"unicode_gu_s1",
+ 86,"unicode_gu_s2",
+ 87,"unicode_gu_s3",
+ 88,"unicode_ha_s1",
+ 89,"unicode_ha_s2",
+ 90,"unicode_ha_s3",
+ 91,"unicode_haw_s1",
+ 92,"unicode_haw_s2",
+ 93,"unicode_haw_s3",
+ 94,"unicode_he_s1",
+ 95,"unicode_he_s2",
+ 96,"unicode_he_s3",
+ 97,"unicode_hi_s1",
+ 98,"unicode_hi_s2",
+ 99,"unicode_hi_s3",
+ 100,"unicode_hr_s1",
+ 101,"unicode_hr_s2",
+ 102,"unicode_hr_s3",
+ 103,"unicode_hu_s1",
+ 104,"unicode_hu_s2",
+ 105,"unicode_hu_s3",
+ 106,"unicode_hy_s1",
+ 107,"unicode_hy_s2",
+ 108,"unicode_hy_s3",
+ 109,"unicode_ig_s1",
+ 110,"unicode_ig_s2",
+ 111,"unicode_ig_s3",
+ 112,"unicode_is_s1",
+ 113,"unicode_is_s2",
+ 114,"unicode_is_s3",
+ 115,"unicode_ja_s1",
+ 116,"unicode_ja_s2",
+ 117,"unicode_ja_s3",
+ 118,"unicode_kk_s1",
+ 119,"unicode_kk_s2",
+ 120,"unicode_kk_s3",
+ 121,"unicode_kl_s1",
+ 122,"unicode_kl_s2",
+ 123,"unicode_kl_s3",
+ 124,"unicode_kn_s1",
+ 125,"unicode_kn_s2",
+ 126,"unicode_kn_s3",
+ 127,"unicode_ko_s1",
+ 128,"unicode_ko_s2",
+ 129,"unicode_ko_s3",
+ 130,"unicode_kok_s1",
+ 131,"unicode_kok_s2",
+ 132,"unicode_kok_s3",
+ 133,"unicode_ky_s1",
+ 134,"unicode_ky_s2",
+ 135,"unicode_ky_s3",
+ 136,"unicode_lkt_s1",
+ 137,"unicode_lkt_s2",
+ 138,"unicode_lkt_s3",
+ 139,"unicode_ln_s1",
+ 140,"unicode_ln_s2",
+ 141,"unicode_ln_s3",
+ 142,"unicode_lt_s1",
+ 143,"unicode_lt_s2",
+ 144,"unicode_lt_s3",
+ 145,"unicode_lv_s1",
+ 146,"unicode_lv_s2",
+ 147,"unicode_lv_s3",
+ 148,"unicode_mk_s1",
+ 149,"unicode_mk_s2",
+ 150,"unicode_mk_s3",
+ 151,"unicode_ml_s1",
+ 152,"unicode_ml_s2",
+ 153,"unicode_ml_s3",
+ 154,"unicode_mr_s1",
+ 155,"unicode_mr_s2",
+ 156,"unicode_mr_s3",
+ 157,"unicode_mt_s1",
+ 158,"unicode_mt_s2",
+ 159,"unicode_mt_s3",
+ 160,"unicode_nb_s1",
+ 161,"unicode_nb_s2",
+ 162,"unicode_nb_s3",
+ 163,"unicode_nn_s1",
+ 164,"unicode_nn_s2",
+ 165,"unicode_nn_s3",
+ 166,"unicode_nso_s1",
+ 167,"unicode_nso_s2",
+ 168,"unicode_nso_s3",
+ 169,"unicode_om_s1",
+ 170,"unicode_om_s2",
+ 171,"unicode_om_s3",
+ 172,"unicode_or_s1",
+ 173,"unicode_or_s2",
+ 174,"unicode_or_s3",
+ 175,"unicode_pa_s1",
+ 176,"unicode_pa_s2",
+ 177,"unicode_pa_s3",
+ 178,"unicode_pl_s1",
+ 179,"unicode_pl_s2",
+ 180,"unicode_pl_s3",
+ 181,"unicode_ro_s1",
+ 182,"unicode_ro_s2",
+ 183,"unicode_ro_s3",
+ 184,"unicode_sa_s1",
+ 185,"unicode_sa_s2",
+ 186,"unicode_sa_s3",
+ 187,"unicode_se_s1",
+ 188,"unicode_se_s2",
+ 189,"unicode_se_s3",
+ 190,"unicode_si_s1",
+ 191,"unicode_si_s2",
+ 192,"unicode_si_s3",
+ 193,"unicode_si__dictionary_s1",
+ 194,"unicode_si__dictionary_s2",
+ 195,"unicode_si__dictionary_s3",
+ 196,"unicode_sk_s1",
+ 197,"unicode_sk_s2",
+ 198,"unicode_sk_s3",
+ 199,"unicode_sl_s1",
+ 200,"unicode_sl_s2",
+ 201,"unicode_sl_s3",
+ 202,"unicode_sq_s1",
+ 203,"unicode_sq_s2",
+ 204,"unicode_sq_s3",
+ 205,"unicode_sr_s1",
+ 206,"unicode_sr_s2",
+ 207,"unicode_sr_s3",
+ 208,"unicode_sr_Latn_s1",
+ 209,"unicode_sr_Latn_s2",
+ 210,"unicode_sr_Latn_s3",
+ 211,"unicode_sv_s1",
+ 212,"unicode_sv_s2",
+ 213,"unicode_sv_s3",
+ 214,"unicode_sv__reformed_s1",
+ 215,"unicode_sv__reformed_s2",
+ 216,"unicode_sv__reformed_s3",
+ 217,"unicode_ta_s1",
+ 218,"unicode_ta_s2",
+ 219,"unicode_ta_s3",
+ 220,"unicode_te_s1",
+ 221,"unicode_te_s2",
+ 222,"unicode_te_s3",
+ 223,"unicode_th_s1",
+ 224,"unicode_th_s2",
+ 225,"unicode_th_s3",
+ 226,"unicode_tn_s1",
+ 227,"unicode_tn_s2",
+ 228,"unicode_tn_s3",
+ 229,"unicode_to_s1",
+ 230,"unicode_to_s2",
+ 231,"unicode_to_s3",
+ 232,"unicode_tr_s1",
+ 233,"unicode_tr_s2",
+ 234,"unicode_tr_s3",
+ 235,"unicode_ug_Cyrl_s1",
+ 236,"unicode_ug_Cyrl_s2",
+ 237,"unicode_ug_Cyrl_s3",
+ 238,"unicode_uk_s1",
+ 239,"unicode_uk_s2",
+ 240,"unicode_uk_s3",
+ 241,"unicode_ur_s1",
+ 242,"unicode_ur_s2",
+ 243,"unicode_ur_s3",
+ 244,"unicode_vi_s1",
+ 245,"unicode_vi_s2",
+ 246,"unicode_vi_s3",
+ 247,"unicode_vo_s1",
+ 248,"unicode_vo_s2",
+ 249,"unicode_vo_s3",
+ 250,"unicode_wae_s1",
+ 251,"unicode_wae_s2",
+ 252,"unicode_wae_s3",
+ 253,"unicode_wo_s1",
+ 254,"unicode_wo_s2",
+ 255,"unicode_wo_s3",
+ 256,"unicode_yo_s1",
+ 257,"unicode_yo_s2",
+ 258,"unicode_yo_s3",
+ 259,"unicode_zh_s1",
+ 260,"unicode_zh_s2",
+ 261,"unicode_zh_s3",
+ 262,"unicode_zh__big5han_s1",
+ 263,"unicode_zh__big5han_s2",
+ 264,"unicode_zh__big5han_s3",
+ 265,"unicode_zh__gb2312han_s1",
+ 266,"unicode_zh__gb2312han_s2",
+ 267,"unicode_zh__gb2312han_s3",
+ 268,"unicode_zh__pinyin_s1",
+ 269,"unicode_zh__pinyin_s2",
+ 270,"unicode_zh__pinyin_s3",
+ 271,"unicode_zh__stroke_s1",
+ 272,"unicode_zh__stroke_s2",
+ 273,"unicode_zh__stroke_s3",
+ 274,"unicode_zh__zhuyin_s1",
+ 275,"unicode_zh__zhuyin_s2",
+ 276,"unicode_zh__zhuyin_s3",
+ 277,"unicode_numeric",
+ 278,"unicode_numeric_s2",
+ 279,"unicode_tur_s2"
}
)
diff --git a/test/sql/collation.result b/test/sql/collation.result
index 8337dde0e..23dc4e80d 100644
--- a/test/sql/collation.result
+++ b/test/sql/collation.result
@@ -506,10 +506,10 @@ s:drop()
s = box.schema.space.create('t1')
---
...
-s:format({{name='s1', type='string', collation = 'unicode_ru_s2'}})
+s:format({{name='s1', type='string', collation = 'unicode_ky_s1'}})
---
...
-idx = s:create_index('pk', {unique = true, type='tree', parts={{'s1', collation = 'unicode_ru_s2'}}})
+idx = s:create_index('pk', {unique = true, type='tree', parts={{'s1', collation = 'unicode_ky_s1'}}})
---
...
s:insert{'Ё'}
diff --git a/test/sql/collation.test.lua b/test/sql/collation.test.lua
index 6f4ef08f3..37de9a951 100644
--- a/test/sql/collation.test.lua
+++ b/test/sql/collation.test.lua
@@ -203,8 +203,8 @@ s:drop()
-- unicode_s2 collation does distinguish russian letters 'Е' and 'Ё'
s = box.schema.space.create('t1')
-s:format({{name='s1', type='string', collation = 'unicode_ru_s2'}})
-idx = s:create_index('pk', {unique = true, type='tree', parts={{'s1', collation = 'unicode_ru_s2'}}})
+s:format({{name='s1', type='string', collation = 'unicode_ky_s1'}})
+idx = s:create_index('pk', {unique = true, type='tree', parts={{'s1', collation = 'unicode_ky_s1'}}})
s:insert{'Ё'}
s:insert{'е'}
-- the following calls should fail
--
2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [tarantool-patches] [PATCH v4] Feature request for a new collation
2019-03-05 11:44 [tarantool-patches] [PATCH v4] Feature request for a new collation Stanislav Zudin
@ 2019-03-05 14:40 ` Vladimir Davydov
2019-03-06 6:32 ` Stanislav Zudin
2019-03-05 15:41 ` [tarantool-patches] " Konstantin Osipov
1 sibling, 1 reply; 10+ messages in thread
From: Vladimir Davydov @ 2019-03-05 14:40 UTC (permalink / raw)
To: Stanislav Zudin; +Cc: tarantool-patches, kostja
On Tue, Mar 05, 2019 at 02:44:31PM +0300, Stanislav Zudin wrote:
> Adds a new set of default collations.
> The collation 'unicode_ky_s1' supports the difference
> between Cyrillic letters 'Е' and 'Ё'. The standard case insensitive
> collation ('unicode_ci') doesn't distinguish these letters.
>
> Closes #4007
> ---
> Branch: https://github.com/tarantool/tarantool/tree/stanztt/gh-4007-new-default-collation-2.1
> Issue: https://github.com/tarantool/tarantool/issues/4007
Whenever you resubmit a patch, please add a brief changelog here to
point what have changed. It jogs my memory. Something like this would
be fine:
Changes in v4:
- Add collations for other languages
Changes in v3:
- Upgrade schema to 2.1.2 instead of using 2.1.0.
...
>
> src/box/bootstrap.snap | Bin 1867 -> 4485 bytes
> src/box/lua/upgrade.lua | 109 ++++++-
> src/coll_def.h | 2 +-
> test/box-py/bootstrap.result | 2 +-
> test/box/ddl.result | 560 +++++++++++++++++++++++++++++++-
> test/box/net.box.result | 2 +-
> test/sql-tap/collation.test.lua | 280 +++++++++++++++-
> test/sql/collation.result | 4 +-
> test/sql/collation.test.lua | 4 +-
> 9 files changed, 943 insertions(+), 20 deletions(-)
>
> diff --git a/src/box/lua/upgrade.lua b/src/box/lua/upgrade.lua
> index 09af2e20d..58b5d47cc 100644
> --- a/src/box/lua/upgrade.lua
> +++ b/src/box/lua/upgrade.lua
> @@ -615,7 +615,114 @@ local function upgrade_to_2_1_0()
> end
>
> local function upgrade_to_2_1_2()
> - box.space._collation:replace{4, "unicode_ru_s2", ADMIN, "ICU", "ru_RU", {strength='secondary'}}
Apparently, this patch is based on the previous version of the same
patch. Please don't do that. Squash it instead (see `git rebase -i` and
`git push -f`).
I won't be reviewing the rest of this patch, because I don't see much
point in adding collations for all those languates now. Up to Kostja.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tarantool-patches] Re: [PATCH v4] Feature request for a new collation
2019-03-05 11:44 [tarantool-patches] [PATCH v4] Feature request for a new collation Stanislav Zudin
2019-03-05 14:40 ` Vladimir Davydov
@ 2019-03-05 15:41 ` Konstantin Osipov
2019-03-06 6:36 ` Stanislav Zudin
1 sibling, 1 reply; 10+ messages in thread
From: Konstantin Osipov @ 2019-03-05 15:41 UTC (permalink / raw)
To: Stanislav Zudin; +Cc: tarantool-patches
* Stanislav Zudin <szudin@tarantool.org> [19/03/05 14:45]:
> /** Maximal length of locale name. */
> enum {
> - COLL_LOCALE_LEN_MAX = 16,
> + COLL_LOCALE_LEN_MAX = 1024,
> };
Why?
>
--
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [tarantool-patches] [PATCH v4] Feature request for a new collation
2019-03-05 14:40 ` Vladimir Davydov
@ 2019-03-06 6:32 ` Stanislav Zudin
2019-03-06 8:10 ` Konstantin Osipov
0 siblings, 1 reply; 10+ messages in thread
From: Stanislav Zudin @ 2019-03-06 6:32 UTC (permalink / raw)
To: Vladimir Davydov; +Cc: tarantool-patches, kostja
On 05.03.2019 17:40, Vladimir Davydov wrote:
> On Tue, Mar 05, 2019 at 02:44:31PM +0300, Stanislav Zudin wrote:
>> Adds a new set of default collations.
>> The collation 'unicode_ky_s1' supports the difference
>> between Cyrillic letters 'Е' and 'Ё'. The standard case insensitive
>> collation ('unicode_ci') doesn't distinguish these letters.
>>
>> Closes #4007
>> ---
>> Branch: https://github.com/tarantool/tarantool/tree/stanztt/gh-4007-new-default-collation-2.1
>> Issue: https://github.com/tarantool/tarantool/issues/4007
>
> Whenever you resubmit a patch, please add a brief changelog here to
> point what have changed. It jogs my memory. Something like this would
> be fine:
>
> Changes in v4:
> - Add collations for other languages
> Changes in v3:
> - Upgrade schema to 2.1.2 instead of using 2.1.0.
> ...
>
Got it.
>>
>> src/box/bootstrap.snap | Bin 1867 -> 4485 bytes
>> src/box/lua/upgrade.lua | 109 ++++++-
>> src/coll_def.h | 2 +-
>> test/box-py/bootstrap.result | 2 +-
>> test/box/ddl.result | 560 +++++++++++++++++++++++++++++++-
>> test/box/net.box.result | 2 +-
>> test/sql-tap/collation.test.lua | 280 +++++++++++++++-
>> test/sql/collation.result | 4 +-
>> test/sql/collation.test.lua | 4 +-
>> 9 files changed, 943 insertions(+), 20 deletions(-)
>>
>> diff --git a/src/box/lua/upgrade.lua b/src/box/lua/upgrade.lua
>> index 09af2e20d..58b5d47cc 100644
>> --- a/src/box/lua/upgrade.lua
>> +++ b/src/box/lua/upgrade.lua
>> @@ -615,7 +615,114 @@ local function upgrade_to_2_1_0()
>> end
>>
>> local function upgrade_to_2_1_2()
>> - box.space._collation:replace{4, "unicode_ru_s2", ADMIN, "ICU", "ru_RU", {strength='secondary'}}
>
> Apparently, this patch is based on the previous version of the same
> patch. Please don't do that. Squash it instead (see `git rebase -i` and
> `git push -f`).
>
> I won't be reviewing the rest of this patch, because I don't see much
> point in adding collations for all those languates now. Up to Kostja.
>
Me either. That is why i didn't squash the commits.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tarantool-patches] Re: [PATCH v4] Feature request for a new collation
2019-03-05 15:41 ` [tarantool-patches] " Konstantin Osipov
@ 2019-03-06 6:36 ` Stanislav Zudin
2019-03-06 8:11 ` Konstantin Osipov
0 siblings, 1 reply; 10+ messages in thread
From: Stanislav Zudin @ 2019-03-06 6:36 UTC (permalink / raw)
To: Konstantin Osipov; +Cc: tarantool-patches
On 05.03.2019 18:41, Konstantin Osipov wrote:
> * Stanislav Zudin <szudin@tarantool.org> [19/03/05 14:45]:
>> /** Maximal length of locale name. */
>> enum {
>> - COLL_LOCALE_LEN_MAX = 16,
>> + COLL_LOCALE_LEN_MAX = 1024,
>> };
>
> Why?
>
Because locale may include numerous options such as collation, numbers,
calendar etc. e.g.: "fr@collation=phonebook;calendar=islamic-civil".
The max length is not specified.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [tarantool-patches] [PATCH v4] Feature request for a new collation
2019-03-06 6:32 ` Stanislav Zudin
@ 2019-03-06 8:10 ` Konstantin Osipov
0 siblings, 0 replies; 10+ messages in thread
From: Konstantin Osipov @ 2019-03-06 8:10 UTC (permalink / raw)
To: Stanislav Zudin; +Cc: Vladimir Davydov, tarantool-patches
* Stanislav Zudin <szudin@tarantool.org> [19/03/06 10:24]:
> > I won't be reviewing the rest of this patch, because I don't see much
> > point in adding collations for all those languates now. Up to Kostja.
> Me either. That is why i didn't squash the commits.
I'm fine with these collations, but I think we should have a test
for each and every one, otherwise we can't claim we added them.
--
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tarantool-patches] Re: [PATCH v4] Feature request for a new collation
2019-03-06 6:36 ` Stanislav Zudin
@ 2019-03-06 8:11 ` Konstantin Osipov
2019-03-06 8:23 ` Stanislav Zudin
0 siblings, 1 reply; 10+ messages in thread
From: Konstantin Osipov @ 2019-03-06 8:11 UTC (permalink / raw)
To: Stanislav Zudin; +Cc: tarantool-patches
* Stanislav Zudin <szudin@tarantool.org> [19/03/06 10:24]:
>
>
> On 05.03.2019 18:41, Konstantin Osipov wrote:
> > * Stanislav Zudin <szudin@tarantool.org> [19/03/05 14:45]:
> > > /** Maximal length of locale name. */
> > > enum {
> > > - COLL_LOCALE_LEN_MAX = 16,
> > > + COLL_LOCALE_LEN_MAX = 1024,
> > > };
> >
> > Why?
> >
>
> Because locale may include numerous options such as collation, numbers,
> calendar etc. e.g.: "fr@collation=phonebook;calendar=islamic-civil".
> The max length is not specified.
*Nobody* except us can add a new collation. The names of the
collations you added don't exceed 16 bytes. Please keep the old
value.
--
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tarantool-patches] Re: [PATCH v4] Feature request for a new collation
2019-03-06 8:11 ` Konstantin Osipov
@ 2019-03-06 8:23 ` Stanislav Zudin
2019-03-06 9:48 ` Konstantin Osipov
0 siblings, 1 reply; 10+ messages in thread
From: Stanislav Zudin @ 2019-03-06 8:23 UTC (permalink / raw)
To: tarantool-patches, Konstantin Osipov
On 06.03.2019 11:11, Konstantin Osipov wrote:
> * Stanislav Zudin <szudin@tarantool.org> [19/03/06 10:24]:
>>
>>
>> On 05.03.2019 18:41, Konstantin Osipov wrote:
>>> * Stanislav Zudin <szudin@tarantool.org> [19/03/05 14:45]:
>>>> /** Maximal length of locale name. */
>>>> enum {
>>>> - COLL_LOCALE_LEN_MAX = 16,
>>>> + COLL_LOCALE_LEN_MAX = 1024,
>>>> };
>>>
>>> Why?
>>>
>>
>> Because locale may include numerous options such as collation, numbers,
>> calendar etc. e.g.: "fr@collation=phonebook;calendar=islamic-civil".
>> The max length is not specified.
>
> *Nobody* except us can add a new collation. The names of the
> collations you added don't exceed 16 bytes. Please keep the old
> value.
>
strlen("de_DE_u_co_phonebk") == 18.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tarantool-patches] Re: [PATCH v4] Feature request for a new collation
2019-03-06 8:23 ` Stanislav Zudin
@ 2019-03-06 9:48 ` Konstantin Osipov
2019-03-20 15:53 ` Stanislav Zudin
0 siblings, 1 reply; 10+ messages in thread
From: Konstantin Osipov @ 2019-03-06 9:48 UTC (permalink / raw)
To: Stanislav Zudin; +Cc: tarantool-patches
* Stanislav Zudin <szudin@tarantool.org> [19/03/06 11:26]:
>
>
> On 06.03.2019 11:11, Konstantin Osipov wrote:
> > * Stanislav Zudin <szudin@tarantool.org> [19/03/06 10:24]:
> > >
> > >
> > > On 05.03.2019 18:41, Konstantin Osipov wrote:
> > > > * Stanislav Zudin <szudin@tarantool.org> [19/03/05 14:45]:
> > > > > /** Maximal length of locale name. */
> > > > > enum {
> > > > > - COLL_LOCALE_LEN_MAX = 16,
> > > > > + COLL_LOCALE_LEN_MAX = 1024,
> > > > > };
> > > >
> > > > Why?
> > > >
> > >
> > > Because locale may include numerous options such as collation, numbers,
> > > calendar etc. e.g.: "fr@collation=phonebook;calendar=islamic-civil".
> > > The max length is not specified.
> >
> > *Nobody* except us can add a new collation. The names of the
> > collations you added don't exceed 16 bytes. Please keep the old
> > value.
> >
> strlen("de_DE_u_co_phonebk") == 18.
+ "unicode_", then, increase to a relevant value please.
--
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tarantool-patches] Re: [PATCH v4] Feature request for a new collation
2019-03-06 9:48 ` Konstantin Osipov
@ 2019-03-20 15:53 ` Stanislav Zudin
0 siblings, 0 replies; 10+ messages in thread
From: Stanislav Zudin @ 2019-03-20 15:53 UTC (permalink / raw)
To: tarantool-patches, Konstantin Osipov
The recent patch defines COLL_LOCALE_LEN_MAX equal to 30 and introduces
test for the following collations:
- Afrikaans
- Amharic
- Assamese
- Azerbaijani
- Belarusian
- Kyrgyz
- German (phonebook)
- Hebrew
- Japanese
The source of test sequences is the following:
https://www.unicode.org/cldr/charts/34/collation/index.html
Issue: https://github.com/tarantool/tarantool/issues/4007
Branch:
https://github.com/tarantool/tarantool/tree/stanztt/gh-4007-new-default-collation-2.1
On 06.03.2019 12:48, Konstantin Osipov wrote:
> * Stanislav Zudin <szudin@tarantool.org> [19/03/06 11:26]:
>>
>>
>> On 06.03.2019 11:11, Konstantin Osipov wrote:
>>> * Stanislav Zudin <szudin@tarantool.org> [19/03/06 10:24]:
>>>>
>>>>
>>>> On 05.03.2019 18:41, Konstantin Osipov wrote:
>>>>> * Stanislav Zudin <szudin@tarantool.org> [19/03/05 14:45]:
>>>>>> /** Maximal length of locale name. */
>>>>>> enum {
>>>>>> - COLL_LOCALE_LEN_MAX = 16,
>>>>>> + COLL_LOCALE_LEN_MAX = 1024,
>>>>>> };
>>>>>
>>>>> Why?
>>>>>
>>>>
>>>> Because locale may include numerous options such as collation, numbers,
>>>> calendar etc. e.g.: "fr@collation=phonebook;calendar=islamic-civil".
>>>> The max length is not specified.
>>>
>>> *Nobody* except us can add a new collation. The names of the
>>> collations you added don't exceed 16 bytes. Please keep the old
>>> value.
>>>
>> strlen("de_DE_u_co_phonebk") == 18.
>
> + "unicode_", then, increase to a relevant value please.
>
Done.
---
src/coll_def.h | 2 +-
test/sql-tap/collation-2.test.lua | 143 ++++++++++++++++++++++++++++++
2 files changed, 144 insertions(+), 1 deletion(-)
create mode 100755 test/sql-tap/collation-2.test.lua
diff --git a/src/coll_def.h b/src/coll_def.h
index 18ed606ad..fd91f942a 100644
--- a/src/coll_def.h
+++ b/src/coll_def.h
@@ -44,7 +44,7 @@ extern const char *coll_type_strs[];
/** Maximal length of locale name. */
enum {
- COLL_LOCALE_LEN_MAX = 1024,
+ COLL_LOCALE_LEN_MAX = 30,
};
/*
diff --git a/test/sql-tap/collation-2.test.lua
b/test/sql-tap/collation-2.test.lua
new file mode 100755
index 000000000..58b6a1ef1
--- /dev/null
+++ b/test/sql-tap/collation-2.test.lua
@@ -0,0 +1,143 @@
+#!/usr/bin/env tarantool
+test = require("sqltester")
+test:plan(10 * 4)
+
+local prefix = "unicode-collation-"
+
+local function insert_into_table(tbl_name, data)
+ local sql = string.format("INSERT INTO %s VALUES ", tbl_name)
+ --local values = {}
+ for _, item in ipairs(data) do
+ local value = "('"..item.."')"
+ local e = sql .. value
+ box.sql.execute(e)
+ end
+end
+
+
+local collation_entries =
+{
+ { -- Afrikaans case sensitive
+ "unicode_af_s3",
+ {"a","A","á","Á","â","Â","b","B","c","C","d","D","e","E","é","É",
+
"è","È","ê","Ê","ë","Ë","f","F","g","G","h","H","i","I","î","Î",
+ "ï","Ï","j","J","k","K","l","L","m","M","n","N","ʼn","o","O",
+
"ô","Ô","ö","Ö","p","P","q","Q","r","R","s","S","t","T","u","U",
+ "û","Û","v","V","w","W","x","X","y","Y","z","Z"}},
+ {
+ -- Amharic
+ "unicode_am_s3",
+ {"ሀ","ሁ","ሂ","ሃ","ሄ","ህ","ሆ","ለ","ሉ","ሊ","ላ","ሌ","ል","ሎ","ሏ","ሐ",
+ "ሑ","ሒ","ሓ","ሔ","ሕ","ሖ","ሗ","መ","ሙ","ሚ","ማ","ሜ","ም","ሞ",
+ "ሟ","ሠ","ሡ","ሢ","ሣ","ሤ","ሥ","ሦ","ሧ","ረ","ሩ","ሪ","ራ","ሬ","ር",
+
"ሮ","ሯ","ሰ","ሱ","ሲ","ሳ","ሴ","ስ","ሶ","ሷ","ሸ","ሹ","ሺ","ሻ","ሼ","ሽ",
+ "ሾ","ሿ","ቀ","ቁ","ቂ","ቃ","ቄ","ቅ","ቆ","ቈ","ቊ","ቋ","ቌ","ቍ","በ",
+ "ቡ","ቢ","ባ","ቤ","ብ","ቦ","ቧ","ቨ","ቩ","ቪ","ቫ","ቬ","ቭ","ቮ","ቯ",
+ "ተ","ቱ","ቲ","ታ","ቴ","ት","ቶ","ቷ","ቸ","ቹ","ቺ","ቻ","ቼ","ች","ቾ",
+ "ቿ","ኀ","ኁ","ኂ","ኃ","ኄ","ኅ","ኆ","ኈ","ኊ","ኋ","ኌ","ኍ","ነ","ኑ",
+
"ኒ","ና","ኔ","ን","ኖ","ኗ","ኘ","ኙ","ኚ","ኛ","ኜ","ኝ","ኞ","ኟ","አ","ኡ",
+ "ኢ","ኣ","ኤ","እ","ኦ","ኧ","ከ","ኩ","ኪ","ካ","ኬ","ክ","ኮ","ኰ","ኲ",
+ "ኳ","ኴ","ኵ","ኸ","ኹ","ኺ","ኻ","ኼ","ኽ","ኾ","ወ","ዉ","ዊ","ዋ","ዌ",
+ "ው","ዎ","ዐ","ዑ","ዒ","ዓ","ዔ","ዕ","ዖ","ዘ","ዙ","ዚ","ዛ","ዜ","ዝ",
+ "ዞ","ዟ","ዠ","ዡ","ዢ","ዣ","ዤ","ዥ","ዦ","ዧ","የ","ዩ","ዪ","ያ",
+ "ዬ","ይ","ዮ","ደ","ዱ","ዲ","ዳ","ዴ","ድ","ዶ","ዷ","ጀ","ጁ","ጂ","ጃ",
+ "ጄ","ጅ","ጆ","ጇ","ገ","ጉ","ጊ","ጋ","ጌ","ግ","ጎ","ጐ","ጒ","ጓ","ጔ",
+ "ጕ","ጠ","ጡ","ጢ","ጣ","ጤ","ጥ","ጦ","ጧ","ጨ","ጩ","ጪ","ጫ","ጬ",
+ "ጭ","ጮ","ጯ","ጰ","ጱ","ጲ","ጳ","ጴ","ጵ","ጶ","ጷ","ጸ","ጹ","ጺ","ጻ",
+
"ጼ","ጽ","ጾ","ጿ","ፀ","ፁ","ፂ","ፃ","ፄ","ፅ","ፆ","ፈ","ፉ","ፊ","ፋ","ፌ",
+ "ፍ","ፎ","ፏ","ፐ","ፑ","ፒ","ፓ","ፔ","ፕ","ፖ","ፗ"}},
+ {
+ -- Assamese
+ "unicode_as_s3",
+ {"়","অ","আ","ই","ঈ","উ","ঊ","ঋ","এ","ঐ","ও","ঔ","ং ","ঁ ","ঃ ",
+
"ক","খ","গ","ঘ","ঙ","চ","ছ","জ","ঝ","ঞ","ট","ঠ","ড","ড়","ঢ","ঢ়",
+ "ণ","ৎ ","ত","থ","দ","ধ","ন","প","ফ","ব","ভ","ম","য","য়","ৰ",
+ "ল","ৱ","শ","ষ","স","হ","ক্ষ ","া","ি","ী","ু","ূ","ৃ","ে","ৈ",
+ "ো","ৌ","্"}},
+
+ {
+ -- Azerbaijani
+ "unicode_az_s3",
+ {"a ","A ","b ","B ","c ","C ","ç ","Ç ","ḉ ","Ḉ ","d ","D ","e ",
+ "E ","ə ","Ə ","f ","F ","g ","G ","ğ ","Ğ ","ģ̆ ","Ģ̆ ","h ",
+ "H ","x ","X ","ẍ ","Ẍ ","ẋ ","Ẋ ","ı ","I ","Í ","Ì ","Ĭ ",
+ "Î ","Ǐ ","Ï ","Ḯ ","Ĩ ","Į ","Ī ","Ỉ ","Ȉ ","Ȋ ","Ị ","Ḭ ",
+ "i ","İ ","Į̇ ","Ị̇ ","Ḭ̇ ","j ","J ","k ","K ","q ","Q ","l ",
+ "L ","m ","M ","n ","N ","o ","O ","ö ","Ö ","ǫ̈ ","Ǫ̈ ","ȫ ",
+ "Ȫ ","ơ̈ ","Ơ̈ ","ợ̈ ","Ợ̈ ","ọ̈ ","Ọ̈ ","p ","P ","r ","R ","s ",
+ "S ","ş ","Ş ","t ","T ","u ","U ","ü ","Ü ","ǘ ","Ǘ ","ǜ ",
+ "Ǜ ","ǚ ","Ǚ ","ų̈ ","Ų̈ ","ǖ ","Ǖ ","ư̈ ","Ư̈ ","ự̈ ","Ự̈ ","ụ̈ ",
+ "Ụ̈ ","ṳ̈ ","Ṳ̈ ","ṷ̈ ","Ṷ̈ ","ṵ̈ ","Ṵ̈ ","v ","V ","y ","Y ","z ",
+ "Z ","Ẉ","w ","W ","ẃ ","Ẃ ","ẁ ","Ẁ ","ŵ ","Ŵ ","ẘ ","ẅ
","Ẅ ",
+ "ẇ ","Ẇ ","ẉ "}},
+ {
+ -- Belarusian
+ "unicode_be_s3",
+ {"а","А","б","Б","в","ᲀ","В","г","Г","д","ᲁ","Д","дж","дз","е",
+ "Е","ё","Ё","ж","Ж","з","З","і","І","й","Й","к","К","л",
+ "Л","м","М","н","Н","о","ᲂ","О","п","П","р","Р","с","ᲃ",
+ "С","т","Т","у","У","ў","Ў","ф","Ф","х","Х","ц",
+ "Ц","ч","Ч","ш","Ш","ы","Ы","ь","Ь","э","Э","ю","Ю","я","Я"}},
+ {
+ -- Kyrgyz
+ "unicode_ky_s3",
+ {"а","А","б","Б","г","Г","д","ᲁ","Д","е","Е","ё","Ё","ж","Ж",
+
"з","З","и","И","й","Й","к","К","л","Л","м","М","н","Н","ң","Ң",
+ "о","ᲂ","О","ө","Ө","п","П","р","Р","с","ᲃ","С","т","ᲄ",
+
"Т","у","У","ү","Ү","х","Х","ч","Ч","ш","Ш","ъ","ᲆ","Ъ","ы","Ы",
+ "э","Э","ю","Ю","я","Я"}},
+ {
+ -- Kyrgyz (russian codepage)
+ "unicode_ky_s3",
+ {"а","А","б","Б","в","В","г","Г","д","Д","е","Е","ё","Ё","ж","Ж",
+ "з","З","и","И","й","Й","к","К","л","Л","м","М","н","Н",
+ "о","О","п","П","р","Р","с","С","т","Т","у","У","ф","Ф",
+ "х","Х","ц","Ц","ч","Ч","ш","Ш","щ","Щ","ъ","Ъ","ы","Ы",
+ "ь","Ь","э","Э","ю","Ю","я","Я"}},
+ {
+ -- German (umlaut as 'ae', 'oe', 'ue')
+ "unicode_de__phonebook_s3",
+ {"a","A","ä","ǟ","Ǟ","ą̈","Ą̈","ạ̈","Ạ̈","ḁ̈","Ḁ̈","Ä ","b","B","c","C",
+ "d","D","e","E","f","F","g","G","h","H","i","I","j","J",
+ "k","K","l","L","m","M","n","N","o","O","ȫ","Ȫ","ǫ̈","Ǫ̈",
+ "ơ̈","Ơ̈","ợ̈","Ợ̈","ọ̈","Ọ̈","ö ","Ö ","p","P","q","Q","r","R",
+ "s","S","ss","ß","t","T","u","U","ǘ","Ǘ","ǜ","Ǜ","ǚ","Ǚ",
+ "ǖ","Ǖ","ų̈","Ų̈","ư̈","Ư̈","ự̈","Ự̈","ụ̈","Ụ̈","ṳ̈","Ṳ̈","ṷ̈","Ṷ̈",
+ "ṵ̈","Ṵ̈","ü ","Ü ","v","V","w","W","x","X","y","Y","z","Z"}},
+ {
+ -- Hebrew
+ "unicode_he_s3",
+ {"׳","״","א","ב","ג","ד","ה","ו","ז","ח","ט","י","כ",
+ "ך","ל","מ","ם","נ","ן","ס","ע","פ","ף","צ","ץ",
+ "ק","ר","ש","ת"} },
+ {
+ -- Japanese
+ "unicode_ja_s3",
+ {"幸","広","庚","康","弘","恒","慌","抗","拘","控","攻","港",
+ "溝","甲","皇","硬","稿"}}
+}
+
+for _, test_entry in ipairs(collation_entries) do
+ -- create title
+ local extendex_prefix = string.format("%s1.%s.", prefix, test_entry[1])
+
+ test:do_execsql_test(
+ extendex_prefix.."create_table",
+ string.format("create table t1(a char(5) collate \"%s\" primary
key);", test_entry[1]),
+ {})
+ test:do_test(
+ extendex_prefix.."insert_values",
+ function()
+ return insert_into_table("t1", test_entry[2])
+ end, {})
+ test:do_execsql_test(
+ extendex_prefix.."select",
+ string.format("select a from t1 order by a"),
+ test_entry[2])
+ test:do_execsql_test(
+ extendex_prefix.."drop_table",
+ "drop table t1",
+ {})
+end
+
+test:finish_test()
--
2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-03-20 15:53 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-05 11:44 [tarantool-patches] [PATCH v4] Feature request for a new collation Stanislav Zudin
2019-03-05 14:40 ` Vladimir Davydov
2019-03-06 6:32 ` Stanislav Zudin
2019-03-06 8:10 ` Konstantin Osipov
2019-03-05 15:41 ` [tarantool-patches] " Konstantin Osipov
2019-03-06 6:36 ` Stanislav Zudin
2019-03-06 8:11 ` Konstantin Osipov
2019-03-06 8:23 ` Stanislav Zudin
2019-03-06 9:48 ` Konstantin Osipov
2019-03-20 15:53 ` Stanislav Zudin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox