aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2010-10-08 14:32:49 +0000
committerstuconnolly <stuart02@gmail.com>2010-10-08 14:32:49 +0000
commit26264ae853f9d2f5460213c660cf036f172c00a7 (patch)
treeb518064e77fea4993ead37ef5972a64b35bbd1d1 /Source
parent271b47b558c0fdbf23c68d29163185127ac5d4f3 (diff)
downloadsequelpro-26264ae853f9d2f5460213c660cf036f172c00a7.tar.gz
sequelpro-26264ae853f9d2f5460213c660cf036f172c00a7.tar.bz2
sequelpro-26264ae853f9d2f5460213c660cf036f172c00a7.zip
Tidy up SPDatabaseData by splitting out the hardcoded list of charcater sets into SPDatabaseCharacterSets. The struct is now returned by calling SPGetDatabaseCharacterSets().
Diffstat (limited to 'Source')
-rw-r--r--Source/SPDatabaseCharacterSets.h34
-rw-r--r--Source/SPDatabaseCharacterSets.m967
-rw-r--r--Source/SPDatabaseData.h8
-rw-r--r--Source/SPDatabaseData.m168
4 files changed, 1007 insertions, 170 deletions
diff --git a/Source/SPDatabaseCharacterSets.h b/Source/SPDatabaseCharacterSets.h
new file mode 100644
index 00000000..5de85d8a
--- /dev/null
+++ b/Source/SPDatabaseCharacterSets.h
@@ -0,0 +1,34 @@
+//
+// $Id$
+//
+// SPDatabaseCharacaterSets.h
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on October 7, 2010
+// Copyright (c) 2010 Stuart Connolly. All rights reserved.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+typedef struct
+{
+ NSUInteger nr;
+ const char *name;
+ const char *collation;
+ const char *description;
+} SPDatabaseCharSets;
+
+const SPDatabaseCharSets *SPGetDatabaseCharacterSets(void);
diff --git a/Source/SPDatabaseCharacterSets.m b/Source/SPDatabaseCharacterSets.m
new file mode 100644
index 00000000..a6fd79a2
--- /dev/null
+++ b/Source/SPDatabaseCharacterSets.m
@@ -0,0 +1,967 @@
+//
+// $Id$
+//
+// SPDatabaseCharacaterSets.m
+// sequel-pro
+//
+// Created by Stuart Connolly (stuconnolly.com) on October 7, 2010
+// Copyright (c) 2010 Stuart Connolly. All rights reserved.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// More info at <http://code.google.com/p/sequel-pro/>
+
+#import "SPDatabaseCharacterSets.h"
+
+/**
+ * List of hardcoded character sets and associated collations. Used for older (i.e. Mysql 3 & 4) servers.
+ */
+const SPDatabaseCharSets charsets[] =
+{
+ {
+ 1,
+ "big5",
+ "big5_chinese_ci",
+ "Big5 Traditional Chinese"
+ },
+ {
+ 3,
+ "dec8",
+ "dec8_swedisch_ci",
+ "DEC West European"
+ },
+ {
+ 4,
+ "cp850",
+ "cp850_general_ci",
+ "DOS West European"
+ },
+ {
+ 6,
+ "hp8",
+ "hp8_english_ci",
+ "HP West European"
+ },
+ {
+ 7,
+ "koi8r",
+ "koi8r_general_ci",
+ "KOI8-R Relcom Russian"
+ },
+ {
+ 8,
+ "latin1",
+ "latin1_swedish_ci",
+ "cp1252 West European"
+ },
+ {
+ 9,
+ "latin2",
+ "latin2_general_ci",
+ "ISO 8859-2 Central European"
+ },
+ {
+ 10,
+ "swe7",
+ "swe7_swedish_ci",
+ "7bit Swedish"
+ },
+ {
+ 11,
+ "ascii",
+ "ascii_general_ci",
+ "US ASCII"
+ },
+ {
+ 12,
+ "ujis",
+ "ujis_japanese_ci",
+ "EUC-JP Japanese"
+ },
+ {
+ 13,
+ "sjis",
+ "sjis_japanese_ci",
+ "Shift-JIS Japanese"
+ },
+ {
+ 16,
+ "hebrew",
+ "hebrew_general_ci",
+ "ISO 8859-8 Hebrew"
+ },
+ {
+ 18,
+ "tis620",
+ "tis620_thai_ci",
+ "TIS620 Thai"
+ },
+ {
+ 19,
+ "euckr",
+ "euckr_korean_ci",
+ "EUC-KR Korean"
+ },
+ {
+ 22,
+ "koi8u",
+ "koi8u_general_ci",
+ "KOI8-U Ukrainian"
+ },
+ {
+ 24,
+ "gb2312",
+ "gb2312_chinese_ci",
+ "GB2312 Simplified Chinese"
+ },
+ {
+ 25,
+ "greek",
+ "greek_general_ci",
+ "ISO 8859-7 Greek"
+ },
+ {
+ 26,
+ "cp1250",
+ "cp1250_general_ci",
+ "Windows Central European"
+ },
+ {
+ 28,
+ "gbk",
+ "gbk_chinese_ci",
+ "GBK Simplified Chinese"
+ },
+ {
+ 30,
+ "latin5",
+ "latin5_turkish_ci",
+ "ISO 8859-9 Turkish"
+ },
+ {
+ 32,
+ "armscii8",
+ "armscii8_general_ci",
+ "ARMSCII-8 Armenian"
+ },
+ {
+ 33,
+ "utf8",
+ "utf8_general_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 35,
+ "ucs2",
+ "ucs2_general_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 36,
+ "cp866",
+ "cp866_general_ci",
+ "DOS Russian"
+ },
+ {
+ 37,
+ "keybcs2",
+ "keybcs2_general_ci",
+ "DOS Kamenicky Czech-Slovak"
+ },
+ {
+ 38,
+ "macce",
+ "macce_general_ci",
+ "Mac Central European"
+ },
+ {
+ 39,
+ "macroman",
+ "macroman_general_ci",
+ "Mac West European"
+ },
+ {
+ 40,
+ "cp852",
+ "cp852_general_ci",
+ "DOS Central European"
+ },
+ {
+ 41,
+ "latin7",
+ "latin7_general_ci",
+ "ISO 8859-13 Baltic"
+ },
+ {
+ 51,
+ "cp1251",
+ "cp1251_general_ci",
+ "Windows Cyrillic"
+ },
+ {
+ 57,
+ "cp1256",
+ "cp1256_general_ci",
+ "Windows Arabic"
+ },
+ {
+ 59,
+ "cp1257",
+ "cp1257_general_ci",
+ "Windows Baltic"
+ },
+ {
+ 63,
+ "binary",
+ "binary",
+ "Binary pseudo charset"
+ },
+ {
+ 92,
+ "geostd8",
+ "geostd8_general_ci",
+ "GEOSTD8 Georgian"
+ },
+ {
+ 95,
+ "cp932",
+ "cp932_japanese_ci",
+ "SJIS for Windows Japanese"
+ },
+ {
+ 97,
+ "eucjpms",
+ "eucjpms_japanese_ci",
+ "UJIS for Windows Japanese"
+ },
+ {
+ 2,
+ "latin2",
+ "latin2_czech_cs",
+ "ISO 8859-2 Central European"
+ },
+ {
+ 5,
+ "latin1",
+ "latin1_german_ci",
+ "cp1252 West European"
+ },
+ {
+ 14,
+ "cp1251",
+ "cp1251_bulgarian_ci",
+ "Windows Cyrillic"
+ },
+ {
+ 15,
+ "latin1",
+ "latin1_danish_ci",
+ "cp1252 West European"
+ },
+ {
+ 17,
+ "filename",
+ "filename",
+ "File Name"
+ },
+ {
+ 20,
+ "latin7",
+ "latin7_estonian_cs",
+ "ISO 8859-13 Baltic"
+ },
+ {
+ 21,
+ "latin2",
+ "latin2_hungarian_ci",
+ "ISO 8859-2 Central European"
+ },
+ {
+ 23,
+ "cp1251",
+ "cp1251_ukrainian_ci",
+ "Windows Cyrillic"
+ },
+ {
+ 27,
+ "latin2",
+ "latin2_croatian_ci",
+ "ISO 8859-2 Central European"
+ },
+ {
+ 29,
+ "cp1257",
+ "cp1257_lithunian_ci",
+ "Windows Baltic"
+ },
+ {
+ 31,
+ "latin1",
+ "latin1_german2_ci",
+ "cp1252 West European"
+ },
+ {
+ 34,
+ "cp1250",
+ "cp1250_czech_cs",
+ "Windows Central European"
+ },
+ {
+ 42,
+ "latin7",
+ "latin7_general_cs",
+ "ISO 8859-13 Baltic"
+ },
+ {
+ 43,
+ "macce",
+ "macce_bin",
+ "Mac Central European"
+ },
+ {
+ 44,
+ "cp1250",
+ "cp1250_croatian_ci",
+ "Windows Central European"
+ },
+ {
+ 45,
+ "utf8",
+ "utf8_general_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 46,
+ "utf8",
+ "utf8_bin",
+ "UTF-8 Unicode"
+ },
+ {
+ 47,
+ "latin1",
+ "latin1_bin",
+ "cp1252 West European"
+ },
+ {
+ 48,
+ "latin1",
+ "latin1_general_ci",
+ "cp1252 West European"
+ },
+ {
+ 49,
+ "latin1",
+ "latin1_general_cs",
+ "cp1252 West European"
+ },
+ {
+ 50,
+ "cp1251",
+ "cp1251_bin",
+ "Windows Cyrillic"
+ },
+ {
+ 52,
+ "cp1251",
+ "cp1251_general_cs",
+ "Windows Cyrillic"
+ },
+ {
+ 53,
+ "macroman",
+ "macroman_bin",
+ "Mac West European"
+ },
+ {
+ 58,
+ "cp1257",
+ "cp1257_bin",
+ "Windows Baltic"
+ },
+ {
+ 60,
+ "armascii8",
+ "armascii8_bin",
+ "armascii8"
+ },
+ {
+ 65,
+ "ascii",
+ "ascii_bin",
+ "US ASCII"
+ },
+ {
+ 66,
+ "cp1250",
+ "cp1250_bin",
+ "Windows Central European"
+ },
+ {
+ 67,
+ "cp1256",
+ "cp1256_bin",
+ "Windows Arabic"
+ },
+ {
+ 68,
+ "cp866",
+ "cp866_bin",
+ "DOS Russian"
+ },
+ {
+ 69,
+ "dec8",
+ "dec8_bin",
+ "DEC West European"
+ },
+ {
+ 70,
+ "greek",
+ "greek_bin",
+ "ISO 8859-7 Greek"
+ },
+ {
+ 71,
+ "hebew",
+ "hebrew_bin",
+ "ISO 8859-8 Hebrew"
+ },
+ {
+ 72,
+ "hp8",
+ "hp8_bin",
+ "HP West European"
+ },
+ {
+ 73,
+ "keybcs2",
+ "keybcs2_bin",
+ "DOS Kamenicky Czech-Slovak"
+ },
+ {
+ 74,
+ "koi8r",
+ "koi8r_bin",
+ "KOI8-R Relcom Russian"
+ },
+ {
+ 75,
+ "koi8u",
+ "koi8u_bin",
+ "KOI8-U Ukrainian"
+ },
+ {
+ 77,
+ "latin2",
+ "latin2_bin",
+ "ISO 8859-2 Central European"
+ },
+ {
+ 78,
+ "latin5",
+ "latin5_bin",
+ "ISO 8859-9 Turkish"
+ },
+ {
+ 79,
+ "latin7",
+ "latin7_bin",
+ "ISO 8859-13 Baltic"
+ },
+ {
+ 80,
+ "cp850",
+ "cp850_bin",
+ "DOS West European"
+ },
+ {
+ 81,
+ "cp852",
+ "cp852_bin",
+ "DOS Central European"
+ },
+ {
+ 82,
+ "swe7",
+ "swe7_bin",
+ "7bit Swedish"
+ },
+ {
+ 93,
+ "geostd8",
+ "geostd8_bin",
+ "GEOSTD8 Georgian"
+ },
+ {
+ 83,
+ "utf8",
+ "utf8_bin",
+ "UTF-8 Unicode"
+ },
+ {
+ 84,
+ "big5",
+ "big5_bin",
+ "Big5 Traditional Chinese"
+ },
+ {
+ 85,
+ "euckr",
+ "euckr_bin",
+ "EUC-KR Korean"
+ },
+ {
+ 86,
+ "gb2312",
+ "gb2312_bin",
+ "GB2312 Simplified Chinese"
+ },
+ {
+ 87,
+ "gbk",
+ "gbk_bin",
+ "GBK Simplified Chinese"
+ },
+ {
+ 88,
+ "sjis",
+ "sjis_bin",
+ "Shift-JIS Japanese"
+ },
+ {
+ 89,
+ "tis620",
+ "tis620_bin",
+ "TIS620 Thai"
+ },
+ {
+ 90,
+ "ucs2",
+ "ucs2_bin",
+ "UCS-2 Unicode"
+ },
+ {
+ 91,
+ "ujis",
+ "ujis_bin",
+ "EUC-JP Japanese"
+ },
+ {
+ 94,
+ "latin1",
+ "latin1_spanish_ci",
+ "cp1252 West European"
+ },
+ {
+ 96,
+ "cp932",
+ "cp932_bin",
+ "SJIS for Windows Japanese"
+ },
+ {
+ 99,
+ "cp1250",
+ "cp1250_polish_ci",
+ "Windows Central European"
+ },
+ {
+ 98,
+ "eucjpms",
+ "eucjpms_bin",
+ "UJIS for Windows Japanese"
+ },
+ {
+ 128,
+ "ucs2",
+ "ucs2_unicode_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 129,
+ "ucs2",
+ "ucs2_icelandic_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 130,
+ "ucs2",
+ "ucs2_latvian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 131,
+ "ucs2",
+ "ucs2_romanian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 132,
+ "ucs2",
+ "ucs2_slovenian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 133,
+ "ucs2",
+ "ucs2_polish_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 134,
+ "ucs2",
+ "ucs2_estonian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 135,
+ "ucs2",
+ "ucs2_spanish_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 136,
+ "ucs2",
+ "ucs2_swedish_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 137,
+ "ucs2",
+ "ucs2_turkish_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 138,
+ "ucs2",
+ "ucs2_czech_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 139,
+ "ucs2",
+ "ucs2_danish_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 140,
+ "ucs2",
+ "ucs2_lithunian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 141,
+ "ucs2",
+ "ucs2_slovak_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 142,
+ "ucs2",
+ "ucs2_spanish2_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 143,
+ "ucs2",
+ "ucs2_roman_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 144,
+ "ucs2",
+ "ucs2_persian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 145,
+ "ucs2",
+ "ucs2_esperanto_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 146,
+ "ucs2",
+ "ucs2_hungarian_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 147,
+ "ucs2",
+ "ucs2_sinhala_ci",
+ "UCS-2 Unicode"
+ },
+ {
+ 192,
+ "utf8mb3",
+ "utf8mb3_general_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 193,
+ "utf8mb3",
+ "utf8mb3_icelandic_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 194,
+ "utf8mb3",
+ "utf8mb3_latvian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 195,
+ "utf8mb3",
+ "utf8mb3_romanian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 196,
+ "utf8mb3",
+ "utf8mb3_slovenian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 197,
+ "utf8mb3",
+ "utf8mb3_polish_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 198,
+ "utf8mb3",
+ "utf8mb3_estonian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 119,
+ "utf8mb3",
+ "utf8mb3_spanish_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 200,
+ "utf8mb3",
+ "utf8mb3_swedish_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 201,
+ "utf8mb3",
+ "utf8mb3_turkish_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 202,
+ "utf8mb3",
+ "utf8mb3_czech_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 203,
+ "utf8mb3",
+ "utf8mb3_danish_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 204,
+ "utf8mb3",
+ "utf8mb3_lithunian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 205,
+ "utf8mb3",
+ "utf8mb3_slovak_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 206,
+ "utf8mb3",
+ "utf8mb3_spanish2_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 207,
+ "utf8mb3",
+ "utf8mb3_roman_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 208,
+ "utf8mb3",
+ "utf8mb3_persian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 209,
+ "utf8mb3",
+ "utf8mb3_esperanto_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 210,
+ "utf8mb3",
+ "utf8mb3_hungarian_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 211,
+ "utf8mb3",
+ "utf8mb3_sinhala_ci",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 224,
+ "utf8",
+ "utf8_unicode_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 225,
+ "utf8",
+ "utf8_icelandic_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 226,
+ "utf8",
+ "utf8_latvian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 227,
+ "utf8",
+ "utf8_romanian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 228,
+ "utf8",
+ "utf8_slovenian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 229,
+ "utf8",
+ "utf8_polish_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 230,
+ "utf8",
+ "utf8_estonian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 231,
+ "utf8",
+ "utf8_spanish_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 232,
+ "utf8",
+ "utf8_swedish_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 233,
+ "utf8",
+ "utf8_turkish_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 234,
+ "utf8",
+ "utf8_czech_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 235,
+ "utf8",
+ "utf8_danish_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 236,
+ "utf8",
+ "utf8_lithuanian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 237,
+ "utf8",
+ "utf8_slovak_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 238,
+ "utf8",
+ "utf8_spanish2_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 239,
+ "utf8",
+ "utf8_roman_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 240,
+ "utf8",
+ "utf8_persian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 241,
+ "utf8",
+ "utf8_esperanto_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 242,
+ "utf8",
+ "utf8_hungarian_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 243,
+ "utf8",
+ "utf8_sinhala_ci",
+ "UTF-8 Unicode"
+ },
+ {
+ 254,
+ "utf8mb3",
+ "utf8mb3_general_cs",
+ "UTF-8mb3 Unicode"
+ },
+ {
+ 0,
+ NULL,
+ NULL,
+ NULL
+ }
+};
+
+/**
+ * Simply returns the above character set data struct.
+ *
+ * @return Characater set data struct of type SPDatabaseCharSets
+ */
+const SPDatabaseCharSets *SPGetDatabaseCharacterSets(void)
+{
+ return charsets;
+}
diff --git a/Source/SPDatabaseData.h b/Source/SPDatabaseData.h
index de98ff9d..4555acdf 100644
--- a/Source/SPDatabaseData.h
+++ b/Source/SPDatabaseData.h
@@ -26,14 +26,6 @@
#import <Cocoa/Cocoa.h>
#import <MCPKit/MCPKit.h>
-typedef struct
-{
- NSUInteger nr;
- const char *name;
- const char *collation;
- const char *description;
-} SPDatabaseCharSets;
-
@class SPServerSupport;
/**
diff --git a/Source/SPDatabaseData.m b/Source/SPDatabaseData.m
index b67ee4da..73fcfe74 100644
--- a/Source/SPDatabaseData.m
+++ b/Source/SPDatabaseData.m
@@ -26,172 +26,16 @@
#import "SPDatabaseData.h"
#import "SPStringAdditions.h"
#import "SPServerSupport.h"
+#import "SPDatabaseCharacterSets.h"
@interface SPDatabaseData (PrivateAPI)
- (NSMutableArray *)_getDatabaseDataForQuery:(NSString *)query;
+
NSInteger _sortMySQL4CharsetEntry(NSDictionary *itemOne, NSDictionary *itemTwo, void *context);
@end
-const SPDatabaseCharSets charsets[] =
-{
- { 1, "big5","big5_chinese_ci", "Big5 Traditional Chinese"},
- { 3, "dec8", "dec8_swedisch_ci", "DEC West European"},
- { 4, "cp850", "cp850_general_ci", "DOS West European"},
- { 6, "hp8", "hp8_english_ci", "HP West European"},
- { 7, "koi8r", "koi8r_general_ci", "KOI8-R Relcom Russian"},
- { 8, "latin1", "latin1_swedish_ci", "cp1252 West European"},
- { 9, "latin2", "latin2_general_ci", "ISO 8859-2 Central European"},
- { 10, "swe7", "swe7_swedish_ci", "7bit Swedish"},
- { 11, "ascii", "ascii_general_ci", "US ASCII"},
- { 12, "ujis", "ujis_japanese_ci", "EUC-JP Japanese"},
- { 13, "sjis", "sjis_japanese_ci", "Shift-JIS Japanese"},
- { 16, "hebrew", "hebrew_general_ci", "ISO 8859-8 Hebrew"},
- { 18, "tis620", "tis620_thai_ci", "TIS620 Thai"},
- { 19, "euckr", "euckr_korean_ci", "EUC-KR Korean"},
- { 22, "koi8u", "koi8u_general_ci", "KOI8-U Ukrainian"},
- { 24, "gb2312", "gb2312_chinese_ci", "GB2312 Simplified Chinese"},
- { 25, "greek", "greek_general_ci", "ISO 8859-7 Greek"},
- { 26, "cp1250", "cp1250_general_ci", "Windows Central European"},
- { 28, "gbk", "gbk_chinese_ci", "GBK Simplified Chinese"},
- { 30, "latin5", "latin5_turkish_ci", "ISO 8859-9 Turkish"},
- { 32, "armscii8", "armscii8_general_ci", "ARMSCII-8 Armenian"},
- { 33, "utf8", "utf8_general_ci", "UTF-8 Unicode"},
- { 35, "ucs2", "ucs2_general_ci", "UCS-2 Unicode"},
- { 36, "cp866", "cp866_general_ci", "DOS Russian"},
- { 37, "keybcs2", "keybcs2_general_ci", "DOS Kamenicky Czech-Slovak"},
- { 38, "macce", "macce_general_ci", "Mac Central European"},
- { 39, "macroman", "macroman_general_ci", "Mac West European"},
- { 40, "cp852", "cp852_general_ci", "DOS Central European"},
- { 41, "latin7", "latin7_general_ci", "ISO 8859-13 Baltic"},
- { 51, "cp1251", "cp1251_general_ci", "Windows Cyrillic"},
- { 57, "cp1256", "cp1256_general_ci", "Windows Arabic"},
- { 59, "cp1257", "cp1257_general_ci", "Windows Baltic"},
- { 63, "binary", "binary", "Binary pseudo charset"},
- { 92, "geostd8", "geostd8_general_ci", "GEOSTD8 Georgian"},
- { 95, "cp932", "cp932_japanese_ci", "SJIS for Windows Japanese"},
- { 97, "eucjpms", "eucjpms_japanese_ci", "UJIS for Windows Japanese"},
- { 2, "latin2", "latin2_czech_cs", "ISO 8859-2 Central European"},
- { 5, "latin1", "latin1_german_ci", "cp1252 West European"},
- { 14, "cp1251", "cp1251_bulgarian_ci", "Windows Cyrillic"},
- { 15, "latin1", "latin1_danish_ci", "cp1252 West European"},
- { 17, "filename", "filename", "File Name"},
- { 20, "latin7", "latin7_estonian_cs", "ISO 8859-13 Baltic"},
- { 21, "latin2", "latin2_hungarian_ci", "ISO 8859-2 Central European"},
- { 23, "cp1251", "cp1251_ukrainian_ci", "Windows Cyrillic"},
- { 27, "latin2", "latin2_croatian_ci", "ISO 8859-2 Central European"},
- { 29, "cp1257", "cp1257_lithunian_ci", "Windows Baltic"},
- { 31, "latin1", "latin1_german2_ci", "cp1252 West European"},
- { 34, "cp1250", "cp1250_czech_cs", "Windows Central European"},
- { 42, "latin7", "latin7_general_cs", "ISO 8859-13 Baltic"},
- { 43, "macce", "macce_bin", "Mac Central European"},
- { 44, "cp1250", "cp1250_croatian_ci", "Windows Central European"},
- { 45, "utf8", "utf8_general_ci", "UTF-8 Unicode"},
- { 46, "utf8", "utf8_bin", "UTF-8 Unicode"},
- { 47, "latin1", "latin1_bin", "cp1252 West European"},
- { 48, "latin1", "latin1_general_ci", "cp1252 West European"},
- { 49, "latin1", "latin1_general_cs", "cp1252 West European"},
- { 50, "cp1251", "cp1251_bin", "Windows Cyrillic"},
- { 52, "cp1251", "cp1251_general_cs", "Windows Cyrillic"},
- { 53, "macroman", "macroman_bin", "Mac West European"},
- { 58, "cp1257", "cp1257_bin", "Windows Baltic"},
- { 60, "armascii8", "armascii8_bin", "armascii8"},
- { 65, "ascii", "ascii_bin", "US ASCII"},
- { 66, "cp1250", "cp1250_bin", "Windows Central European"},
- { 67, "cp1256", "cp1256_bin", "Windows Arabic"},
- { 68, "cp866", "cp866_bin", "DOS Russian"},
- { 69, "dec8", "dec8_bin", "DEC West European"},
- { 70, "greek", "greek_bin", "ISO 8859-7 Greek"},
- { 71, "hebew", "hebrew_bin", "ISO 8859-8 Hebrew"},
- { 72, "hp8", "hp8_bin", "HP West European"},
- { 73, "keybcs2", "keybcs2_bin", "DOS Kamenicky Czech-Slovak"},
- { 74, "koi8r", "koi8r_bin", "KOI8-R Relcom Russian"},
- { 75, "koi8u", "koi8u_bin", "KOI8-U Ukrainian"},
- { 77, "latin2", "latin2_bin", "ISO 8859-2 Central European"},
- { 78, "latin5", "latin5_bin", "ISO 8859-9 Turkish"},
- { 79, "latin7", "latin7_bin", "ISO 8859-13 Baltic"},
- { 80, "cp850", "cp850_bin", "DOS West European"},
- { 81, "cp852", "cp852_bin", "DOS Central European"},
- { 82, "swe7", "swe7_bin", "7bit Swedish"},
- { 93, "geostd8", "geostd8_bin", "GEOSTD8 Georgian"},
- { 83, "utf8", "utf8_bin", "UTF-8 Unicode"},
- { 84, "big5", "big5_bin", "Big5 Traditional Chinese"},
- { 85, "euckr", "euckr_bin", "EUC-KR Korean"},
- { 86, "gb2312", "gb2312_bin", "GB2312 Simplified Chinese"},
- { 87, "gbk", "gbk_bin", "GBK Simplified Chinese"},
- { 88, "sjis", "sjis_bin", "Shift-JIS Japanese"},
- { 89, "tis620", "tis620_bin", "TIS620 Thai"},
- { 90, "ucs2", "ucs2_bin", "UCS-2 Unicode"},
- { 91, "ujis", "ujis_bin", "EUC-JP Japanese"},
- { 94, "latin1", "latin1_spanish_ci", "cp1252 West European"},
- { 96, "cp932", "cp932_bin", "SJIS for Windows Japanese"},
- { 99, "cp1250", "cp1250_polish_ci", "Windows Central European"},
- { 98, "eucjpms", "eucjpms_bin", "UJIS for Windows Japanese"},
- {128, "ucs2", "ucs2_unicode_ci", "UCS-2 Unicode"},
- {129, "ucs2", "ucs2_icelandic_ci", "UCS-2 Unicode"},
- {130, "ucs2", "ucs2_latvian_ci", "UCS-2 Unicode"},
- {131, "ucs2", "ucs2_romanian_ci", "UCS-2 Unicode"},
- {132, "ucs2", "ucs2_slovenian_ci", "UCS-2 Unicode"},
- {133, "ucs2", "ucs2_polish_ci", "UCS-2 Unicode"},
- {134, "ucs2", "ucs2_estonian_ci", "UCS-2 Unicode"},
- {135, "ucs2", "ucs2_spanish_ci", "UCS-2 Unicode"},
- {136, "ucs2", "ucs2_swedish_ci", "UCS-2 Unicode"},
- {137, "ucs2", "ucs2_turkish_ci", "UCS-2 Unicode"},
- {138, "ucs2", "ucs2_czech_ci", "UCS-2 Unicode"},
- {139, "ucs2", "ucs2_danish_ci", "UCS-2 Unicode"},
- {140, "ucs2", "ucs2_lithunian_ci", "UCS-2 Unicode"},
- {141, "ucs2", "ucs2_slovak_ci", "UCS-2 Unicode"},
- {142, "ucs2", "ucs2_spanish2_ci", "UCS-2 Unicode"},
- {143, "ucs2", "ucs2_roman_ci", "UCS-2 Unicode"},
- {144, "ucs2", "ucs2_persian_ci", "UCS-2 Unicode"},
- {145, "ucs2", "ucs2_esperanto_ci", "UCS-2 Unicode"},
- {146, "ucs2", "ucs2_hungarian_ci", "UCS-2 Unicode"},
- {147, "ucs2", "ucs2_sinhala_ci", "UCS-2 Unicode"},
- {192, "utf8mb3", "utf8mb3_general_ci", "UTF-8mb3 Unicode"},
- {193, "utf8mb3", "utf8mb3_icelandic_ci", "UTF-8mb3 Unicode"},
- {194, "utf8mb3", "utf8mb3_latvian_ci", "UTF-8mb3 Unicode"},
- {195, "utf8mb3", "utf8mb3_romanian_ci", "UTF-8mb3 Unicode"},
- {196, "utf8mb3", "utf8mb3_slovenian_ci", "UTF-8mb3 Unicode"},
- {197, "utf8mb3", "utf8mb3_polish_ci", "UTF-8mb3 Unicode"},
- {198, "utf8mb3", "utf8mb3_estonian_ci", "UTF-8mb3 Unicode"},
- {119, "utf8mb3", "utf8mb3_spanish_ci", "UTF-8mb3 Unicode"},
- {200, "utf8mb3", "utf8mb3_swedish_ci", "UTF-8mb3 Unicode"},
- {201, "utf8mb3", "utf8mb3_turkish_ci", "UTF-8mb3 Unicode"},
- {202, "utf8mb3", "utf8mb3_czech_ci", "UTF-8mb3 Unicode"},
- {203, "utf8mb3", "utf8mb3_danish_ci", "UTF-8mb3 Unicode"},
- {204, "utf8mb3", "utf8mb3_lithunian_ci", "UTF-8mb3 Unicode"},
- {205, "utf8mb3", "utf8mb3_slovak_ci", "UTF-8mb3 Unicode"},
- {206, "utf8mb3", "utf8mb3_spanish2_ci", "UTF-8mb3 Unicode"},
- {207, "utf8mb3", "utf8mb3_roman_ci", "UTF-8mb3 Unicode"},
- {208, "utf8mb3", "utf8mb3_persian_ci", "UTF-8mb3 Unicode"},
- {209, "utf8mb3", "utf8mb3_esperanto_ci", "UTF-8mb3 Unicode"},
- {210, "utf8mb3", "utf8mb3_hungarian_ci", "UTF-8mb3 Unicode"},
- {211, "utf8mb3", "utf8mb3_sinhala_ci", "UTF-8mb3 Unicode"},
- {224, "utf8", "utf8_unicode_ci", "UTF-8 Unicode"},
- {225, "utf8", "utf8_icelandic_ci", "UTF-8 Unicode"},
- {226, "utf8", "utf8_latvian_ci", "UTF-8 Unicode"},
- {227, "utf8", "utf8_romanian_ci", "UTF-8 Unicode"},
- {228, "utf8", "utf8_slovenian_ci", "UTF-8 Unicode"},
- {229, "utf8", "utf8_polish_ci", "UTF-8 Unicode"},
- {230, "utf8", "utf8_estonian_ci", "UTF-8 Unicode"},
- {231, "utf8", "utf8_spanish_ci", "UTF-8 Unicode"},
- {232, "utf8", "utf8_swedish_ci", "UTF-8 Unicode"},
- {233, "utf8", "utf8_turkish_ci", "UTF-8 Unicode"},
- {234, "utf8", "utf8_czech_ci", "UTF-8 Unicode"},
- {235, "utf8", "utf8_danish_ci", "UTF-8 Unicode"},
- {236, "utf8", "utf8_lithuanian_ci", "UTF-8 Unicode"},
- {237, "utf8", "utf8_slovak_ci", "UTF-8 Unicode"},
- {238, "utf8", "utf8_spanish2_ci", "UTF-8 Unicode"},
- {239, "utf8", "utf8_roman_ci", "UTF-8 Unicode"},
- {240, "utf8", "utf8_persian_ci", "UTF-8 Unicode"},
- {241, "utf8", "utf8_esperanto_ci", "UTF-8 Unicode"},
- {242, "utf8", "utf8_hungarian_ci", "UTF-8 Unicode"},
- {243, "utf8", "utf8_sinhala_ci", "UTF-8 Unicode"},
- {254, "utf8mb3", "utf8mb3_general_cs", "UTF-8mb3 Unicode"},
- { 0, NULL, NULL, NULL}
-};
-
@implementation SPDatabaseData
@synthesize connection;
@@ -249,7 +93,7 @@ const SPDatabaseCharSets charsets[] =
// If that failed, get the list of collations from the hard-coded list
if (![collations count]) {
- const SPDatabaseCharSets *c = charsets;
+ const SPDatabaseCharSets *c = SPGetDatabaseCharacterSets();
do {
[collations addObject:[NSString stringWithCString:c->collation encoding:NSUTF8StringEncoding]];
@@ -286,7 +130,7 @@ const SPDatabaseCharSets charsets[] =
// If that failed, get the list of collations matching the supplied encoding from the hard-coded list
if (![characterSetCollations count]) {
- const SPDatabaseCharSets *c = charsets;
+ const SPDatabaseCharSets *c = SPGetDatabaseCharacterSets();
do {
NSString *charSet = [NSString stringWithCString:c->name encoding:NSUTF8StringEncoding];
@@ -419,8 +263,8 @@ const SPDatabaseCharSets charsets[] =
}
// If that failed, get the list of character set encodings from the hard-coded list
- if (![characterSetEncodings count]) {
- const SPDatabaseCharSets *c = charsets;
+ if (![characterSetEncodings count]) {
+ const SPDatabaseCharSets *c = SPGetDatabaseCharacterSets();
do {
[characterSetEncodings addObject:[NSDictionary dictionaryWithObjectsAndKeys: