Merge abotchkov@work.mysql.com:/home/bk/mysql-4.1
into bisonxp.(none):/home/hf/work/mysql-4.1 BitKeeper/etc/logging_ok: auto-union sql/item.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_handler.cc: Auto merged sql/sql_select.cc: Auto merged
This commit is contained in:
commit
ca5f6235d3
@ -479,3 +479,4 @@ vio/test-sslclient
|
||||
vio/test-sslserver
|
||||
vio/viotest-ssl
|
||||
tests/client_test
|
||||
mysys/charset2html
|
||||
|
@ -9,6 +9,7 @@ akishkin@work.mysql.com
|
||||
arjen@co3064164-a.bitbike.com
|
||||
arjen@fred.bitbike.com
|
||||
arjen@george.bitbike.com
|
||||
bar@bar.mysql.r18.ru
|
||||
bar@bar.udmsearch.izhnet.ru
|
||||
bar@gw.udmsearch.izhnet.ru
|
||||
bell@sanja.is.com.ua
|
||||
|
@ -1,21 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDaDCCAtGgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCRkkx
|
||||
EzARBgNVBAgTClNvbWUtU3RhdGUxETAPBgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQK
|
||||
ExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqG
|
||||
SIb3DQEJARYOdG9udUBteXNxbC5jb20wHhcNMDEwNjI0MTU0MzE4WhcNMDIwNjI0
|
||||
MTU0MzE4WjCBhTELMAkGA1UEBhMCRkkxEzARBgNVBAgTClNvbWUtU3RhdGUxETAP
|
||||
BgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQKExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYD
|
||||
VQQDEwtUb251IFNhbXVlbDEdMBsGCSqGSIb3DQEJARYOdG9udUBteXNxbC5jb20w
|
||||
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJz9FCvWX8c+Xr6mxzfZvPainIPT
|
||||
ODNsQ0f2kAs0epP+peUn4LHxLybp2dkUHTtJLXyUyk7cXfnUd+0fRazK2/Vz48bZ
|
||||
swGwg9Rhg3P02Ku+CMWYulHzN6uVRzfrDUSkDoky2DGL3A6B8P4JRc2qcr+kjhh5
|
||||
6r1VJlXs9N3DqeEdAgMBAAGjgeUwgeIwHQYDVR0OBBYEFKUK1nK13+TCK3sHXtNN
|
||||
Ugfhg2t/MIGyBgNVHSMEgaowgaeAFKUK1nK13+TCK3sHXtNNUgfhg2t/oYGLpIGI
|
||||
MIGFMQswCQYDVQQGEwJGSTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMI
|
||||
SGVsc2lua2kxGTAXBgNVBAoTEE15U1FMIEZpbmxhbmQgQUIxFDASBgNVBAMTC1Rv
|
||||
bnUgU2FtdWVsMR0wGwYJKoZIhvcNAQkBFg50b251QG15c3FsLmNvbYIBADAMBgNV
|
||||
HRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAI+YJKoa+IP3WYr8iLcVk5j7lZ9D
|
||||
GS8reuALafnE7VX1xMlXP5EnJjT7YYYmtiB2tYj7+eQ+ajRXWWyY5NtO5ob+dm8z
|
||||
OBX43v08C5vNSAFpwZWTutzb0nSd8kOABGJ04MBDJZk8QNkTfU6C7c3ZJ/gW8Guv
|
||||
I+cxfz6oCYEfKLBN
|
||||
MIIDQjCCAqugAwIBAgIBADANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJSVTET
|
||||
MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoT
|
||||
CE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1
|
||||
c0BteXNxbC5jb20wHhcNMDIwODAyMjE1NTUzWhcNMDMwODAyMjE1NTUzWjB6MQsw
|
||||
CQYDVQQGEwJSVTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1
|
||||
cmcxETAPBgNVBAoTCE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG
|
||||
9w0BCQEWEHdhbHJ1c0BteXNxbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
|
||||
AoGBALFLPDNDeq213XvhBP3TxhC0NcGKJ/sWzaHkNmunQ8sTbV8AfdFafvP7cSHk
|
||||
O3jh7smpVWnxmcIbq1dpsbb7X5vQVc8ru07Z8VhCJWx6H8kgI95Am6wbm2ho2Lok
|
||||
9ODG8f/lA4kLv8Vo0hqtfV5T1mnZpSzkh6G4b0yPzHu8gtObAgMBAAGjgdcwgdQw
|
||||
HQYDVR0OBBYEFNnYan2rzhBiGhb86Wr03PFmrNC5MIGkBgNVHSMEgZwwgZmAFNnY
|
||||
an2rzhBiGhb86Wr03PFmrNC5oX6kfDB6MQswCQYDVQQGEwJSVTETMBEGA1UECBMK
|
||||
U29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoTCE15U1FMIEFC
|
||||
MQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1c0BteXNxbC5j
|
||||
b22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQADeMZEA5Rh4PDq
|
||||
DmS9cYyogjb9gkuLHeo/pqfU8iSZVsSaf6Uqh6TWKQOuK3I4R1K8iMo4cW6LhxxH
|
||||
HLFrVIQn6xhLvfC0T6Zl7G0w6rAY2+QlbEhjnsgHtLGrB5xjSYLq6Uz3gAMbEsA4
|
||||
rCpQJECDe2PzoUXZj9mE2sdljiGcvQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,26 +1,26 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 3 (0x3)
|
||||
Serial Number: 2 (0x2)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=FI, ST=Some-State, L=Helsinki, O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
Issuer: C=RU, ST=Some-State, L=Orenburg, O=MySQL AB, CN=Walrus/Email=walrus@mysql.com
|
||||
Validity
|
||||
Not Before: Jun 24 16:03:20 2001 GMT
|
||||
Not After : Jun 24 16:03:20 2002 GMT
|
||||
Subject: C=EE, ST=Some-State, L=Tallinn, O=MySQL demo client certificate, CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
Not Before: Aug 2 22:08:07 2002 GMT
|
||||
Not After : Aug 2 22:08:07 2003 GMT
|
||||
Subject: C=RU, L=orenburg, O=MySQL AB, OU=client, CN=walrus/Email=walrus@mysql.com
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:e8:d4:52:cd:4e:bb:96:16:3a:f0:89:6b:90:4c:
|
||||
db:e0:30:75:5a:02:72:62:bf:ed:da:be:09:e8:80:
|
||||
db:80:54:30:d6:75:ed:e3:10:a5:15:44:5b:29:91:
|
||||
12:fe:0c:b7:76:4d:e9:5f:56:5c:45:3c:ad:b2:71:
|
||||
2d:6a:7a:cb:bc:04:80:08:74:d6:7d:f6:7c:5c:76:
|
||||
db:35:c4:f6:f5:d8:d4:89:9f:9d:cc:3f:4e:3f:73:
|
||||
c1:3e:41:7e:4e:09:bf:ea:1a:d9:a2:13:0d:d1:0c:
|
||||
da:d8:f4:9b:b8:54:21:17:ae:d7:b3:02:61:87:a9:
|
||||
01:ff:f4:fe:9c:7a:fc:67:43
|
||||
00:ab:27:e4:1e:f0:34:8b:a9:50:df:0a:b0:55:20:
|
||||
b3:1f:0f:cf:f1:51:1e:66:48:a6:f8:4e:0d:d4:49:
|
||||
f4:ea:d3:41:6b:7e:06:78:3c:29:9d:8e:d3:33:4d:
|
||||
0b:fc:34:4d:18:88:48:61:af:11:da:db:84:c0:92:
|
||||
91:81:6a:b6:21:d5:8e:9b:f2:6f:d8:06:ad:d6:77:
|
||||
f6:8b:bd:07:d5:b7:fb:c6:f0:64:e6:3f:58:f0:6a:
|
||||
1e:81:73:97:6d:9d:c6:ec:b0:5e:1e:c6:57:82:b0:
|
||||
98:9c:ae:26:84:43:0d:98:6c:b4:d8:52:13:70:15:
|
||||
79:61:40:84:19:ea:f6:63:3f
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
@ -28,40 +28,39 @@ Certificate:
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
BC:FB:BB:8F:C4:85:BA:5F:A8:F2:C3:3D:C9:0F:DB:16:E7:13:BC:B2
|
||||
A6:D9:70:92:AC:2B:F6:48:A5:FB:29:CF:78:4A:57:B5:3B:43:97:EE
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:A5:0A:D6:72:B5:DF:E4:C2:2B:7B:07:5E:D3:4D:52:07:E1:83:6B:7F
|
||||
DirName:/C=FI/ST=Some-State/L=Helsinki/O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
keyid:D9:D8:6A:7D:AB:CE:10:62:1A:16:FC:E9:6A:F4:DC:F1:66:AC:D0:B9
|
||||
DirName:/C=RU/ST=Some-State/L=Orenburg/O=MySQL AB/CN=Walrus/Email=walrus@mysql.com
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
1c:e0:87:2c:2f:b3:a4:39:44:7f:96:7b:2f:c9:1f:91:84:0b:
|
||||
9f:d0:0a:f8:40:70:d0:dd:bd:91:0a:c6:d5:ac:8f:51:77:9c:
|
||||
35:28:e8:b6:5f:57:9e:5c:b5:9b:ae:5d:3d:7c:05:45:2e:89:
|
||||
3a:03:e1:f2:00:cb:c1:ed:3e:48:3b:5f:4e:50:d2:b4:a5:36:
|
||||
0f:1a:dc:79:49:1e:03:2f:27:c1:e4:62:d6:ef:3f:ab:2e:ab:
|
||||
dd:e5:bc:cb:20:a3:dd:ab:81:69:26:9c:03:42:1b:4c:b7:aa:
|
||||
57:6d:2a:de:c0:5e:6e:74:d0:83:90:ec:ad:bb:ba:f0:cc:cf:
|
||||
41:3d
|
||||
15:96:43:10:89:e0:a6:82:a4:91:0f:7e:2e:d8:80:54:ba:63:
|
||||
e2:8f:b0:aa:ea:be:35:2c:8f:0d:03:a9:86:2e:32:51:33:8a:
|
||||
cc:b2:5e:b3:12:cb:b7:42:06:40:89:ce:92:87:40:f1:6a:79:
|
||||
0c:3e:00:1d:06:bf:3c:c1:da:f6:3b:e1:42:e6:55:4c:31:e1:
|
||||
b9:79:f3:99:14:f6:68:9e:67:2b:e3:71:88:6b:2b:e2:08:bd:
|
||||
67:79:ea:0e:7d:34:0d:41:22:3a:f4:8f:4d:51:07:6f:5a:44:
|
||||
34:05:d1:b3:ca:cf:09:2b:43:25:a1:7f:ac:f4:54:f1:e3:93:
|
||||
47:44
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDoTCCAwqgAwIBAgIBAzANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCRkkx
|
||||
EzARBgNVBAgTClNvbWUtU3RhdGUxETAPBgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQK
|
||||
ExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqG
|
||||
SIb3DQEJARYOdG9udUBteXNxbC5jb20wHhcNMDEwNjI0MTYwMzIwWhcNMDIwNjI0
|
||||
MTYwMzIwWjCBkTELMAkGA1UEBhMCRUUxEzARBgNVBAgTClNvbWUtU3RhdGUxEDAO
|
||||
BgNVBAcTB1RhbGxpbm4xJjAkBgNVBAoTHU15U1FMIGRlbW8gY2xpZW50IGNlcnRp
|
||||
ZmljYXRlMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqGSIb3DQEJARYOdG9u
|
||||
dUBteXNxbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOjUUs1Ou5YW
|
||||
OvCJa5BM2+AwdVoCcmK/7dq+CeiA24BUMNZ17eMQpRVEWymREv4Mt3ZN6V9WXEU8
|
||||
rbJxLWp6y7wEgAh01n32fFx22zXE9vXY1Imfncw/Tj9zwT5Bfk4Jv+oa2aITDdEM
|
||||
2tj0m7hUIReu17MCYYepAf/0/px6/GdDAgMBAAGjggERMIIBDTAJBgNVHRMEAjAA
|
||||
MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAd
|
||||
BgNVHQ4EFgQUvPu7j8SFul+o8sM9yQ/bFucTvLIwgbIGA1UdIwSBqjCBp4AUpQrW
|
||||
crXf5MIrewde001SB+GDa3+hgYukgYgwgYUxCzAJBgNVBAYTAkZJMRMwEQYDVQQI
|
||||
EwpTb21lLVN0YXRlMREwDwYDVQQHEwhIZWxzaW5raTEZMBcGA1UEChMQTXlTUUwg
|
||||
RmlubGFuZCBBQjEUMBIGA1UEAxMLVG9udSBTYW11ZWwxHTAbBgkqhkiG9w0BCQEW
|
||||
DnRvbnVAbXlzcWwuY29tggEAMA0GCSqGSIb3DQEBBAUAA4GBABzghywvs6Q5RH+W
|
||||
ey/JH5GEC5/QCvhAcNDdvZEKxtWsj1F3nDUo6LZfV55ctZuuXT18BUUuiToD4fIA
|
||||
y8HtPkg7X05Q0rSlNg8a3HlJHgMvJ8HkYtbvP6suq93lvMsgo92rgWkmnANCG0y3
|
||||
qldtKt7AXm500IOQ7K27uvDMz0E9
|
||||
MIIDajCCAtOgAwIBAgIBAjANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJSVTET
|
||||
MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoT
|
||||
CE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1
|
||||
c0BteXNxbC5jb20wHhcNMDIwODAyMjIwODA3WhcNMDMwODAyMjIwODA3WjB2MQsw
|
||||
CQYDVQQGEwJSVTERMA8GA1UEBxMIb3JlbmJ1cmcxETAPBgNVBAoTCE15U1FMIEFC
|
||||
MQ8wDQYDVQQLEwZjbGllbnQxDzANBgNVBAMTBndhbHJ1czEfMB0GCSqGSIb3DQEJ
|
||||
ARYQd2FscnVzQG15c3FsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||
qyfkHvA0i6lQ3wqwVSCzHw/P8VEeZkim+E4N1En06tNBa34GeDwpnY7TM00L/DRN
|
||||
GIhIYa8R2tuEwJKRgWq2IdWOm/Jv2Aat1nf2i70H1bf7xvBk5j9Y8GoegXOXbZ3G
|
||||
7LBeHsZXgrCYnK4mhEMNmGy02FITcBV5YUCEGer2Yz8CAwEAAaOCAQIwgf8wCQYD
|
||||
VR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlm
|
||||
aWNhdGUwHQYDVR0OBBYEFKbZcJKsK/ZIpfspz3hKV7U7Q5fuMIGkBgNVHSMEgZww
|
||||
gZmAFNnYan2rzhBiGhb86Wr03PFmrNC5oX6kfDB6MQswCQYDVQQGEwJSVTETMBEG
|
||||
A1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoTCE15
|
||||
U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1c0Bt
|
||||
eXNxbC5jb22CAQAwDQYJKoZIhvcNAQEEBQADgYEAFZZDEIngpoKkkQ9+LtiAVLpj
|
||||
4o+wquq+NSyPDQOphi4yUTOKzLJesxLLt0IGQInOkodA8Wp5DD4AHQa/PMHa9jvh
|
||||
QuZVTDHhuXnzmRT2aJ5nK+NxiGsr4gi9Z3nqDn00DUEiOvSPTVEHb1pENAXRs8rP
|
||||
CStDJaF/rPRU8eOTR0Q=
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,15 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXgIBAAKBgQDo1FLNTruWFjrwiWuQTNvgMHVaAnJiv+3avgnogNuAVDDWde3j
|
||||
EKUVRFspkRL+DLd2TelfVlxFPK2ycS1qesu8BIAIdNZ99nxcdts1xPb12NSJn53M
|
||||
P04/c8E+QX5OCb/qGtmiEw3RDNrY9Ju4VCEXrtezAmGHqQH/9P6cevxnQwIDAQAB
|
||||
AoGBANxd4cUaaOfkQILbvigE5vMpSlkYCcW3XNv1lJEwLREoHlVNpwuL/IPFf/c2
|
||||
rWAxDw/1LBYlOg36IXjMMC0g7mRHHoJhdJaFLGdlfclYQvqQ+8JAsAv6UNC63+pn
|
||||
B5sZOxOuoj7lYN+D9mFVD4qTo3eTUYEOvvmS1j3hCsD2nNNBAkEA+lJUs7Y3KjCF
|
||||
COZ7XQCkC47rVzkdZ5ey1Z+vVw5SrnUvj6n9i0NEax1jX6JPIhPU7+x90KFkt0ki
|
||||
pKHd7UQ04wJBAO4caWNnYvmIorCRDy9Q/iAAow5WC6fQlkSlBIe3lRme6Ne8Yxaq
|
||||
BzlSGYu1ndPkTGEa9PFNNCJm7RtvCBFx8iECQQCkdUzi2Rc7J69vnoV0H8SnN1mU
|
||||
75hLBBZhVU1MY8OcjK8XsvY59ZLQ0PkFzswwtljS3Ev4suBJrsoM4a+9f29DAkEA
|
||||
5NTrN3vZc6SrbXLLHBcDUrAqBBIPe4SLlYbdVqzInunILeS/eb2H2b+cC1dMSaHj
|
||||
AYONmQUwMEuoXTAUmede4QJARK6jEslg/ev8BtMvITP2b6pRCb1w8lOtT5u5Bwnc
|
||||
NpI3suqSQSQPtRSWQYcdyxrKr2TQEZU7h8R9bVB4b0qAmQ==
|
||||
MIICXQIBAAKBgQCrJ+Qe8DSLqVDfCrBVILMfD8/xUR5mSKb4Tg3USfTq00FrfgZ4
|
||||
PCmdjtMzTQv8NE0YiEhhrxHa24TAkpGBarYh1Y6b8m/YBq3Wd/aLvQfVt/vG8GTm
|
||||
P1jwah6Bc5dtncbssF4exleCsJicriaEQw2YbLTYUhNwFXlhQIQZ6vZjPwIDAQAB
|
||||
AoGAChyxPaKzeAzo2kSnZmAoNQ2aG4fPY/um4cS6zHASKE2S7+biOvhS/RwTHlTP
|
||||
AHeWlnx2yk6tn2CY10fRkPPdDsnyj7FpuZmjhmFtprOn+1Mwft7gNTMdKN2EV46/
|
||||
hMQxm8/Wu9ejm6IhOeg3Q7lBFwE9tY0kgMzU4zDI3A0HDQECQQDUcxFgxIrOi4Gw
|
||||
EGxmJgopL+NjG7/4PdT2FM5z1bbwOtfsD1fHKWSiODbfpK8eMwBReI4wfDQ7ViND
|
||||
xmuDykFDAkEAzj3QH9s8Ej3Vgt88326OhY1W5jTH6M0XkuZ0YatELz3MvLwFhIF4
|
||||
puouLJQVo3pQBLV+Tmnh2LQqkii7xA7oVQJBALZxzvW0M6QmyAvEPuMGPema94KQ
|
||||
PS7ZIr7lpVpyqTTqw600i+Q8VvC8p9stmTmtANP2XN2kfFKMqaI1jvVRxvMCQDJE
|
||||
8sOxBjVUCQS7MPUs12RKDRJTbx6ZTtOphFiCDD6Pi6W9FoMzo5rbnaGT/qo4F+Tt
|
||||
7/lg6YGOeInjj9C76XkCQQC2m6j8NeX9E4Pimp1GDE93N2JJ+biJxLI8yFqruv7N
|
||||
B2M/28JKLGLjam6YVJy4eSA9clXVqwWNxii3fb8qQ7u6
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
@ -1,26 +1,26 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 2 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=FI, ST=Some-State, L=Helsinki, O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
Issuer: C=RU, ST=Some-State, L=Orenburg, O=MySQL AB, CN=Walrus/Email=walrus@mysql.com
|
||||
Validity
|
||||
Not Before: Jun 24 16:02:28 2001 GMT
|
||||
Not After : Jun 24 16:02:28 2002 GMT
|
||||
Subject: C=EE, ST=Some-State, L=Tallinn, O=MySQL server demo certificate, CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
Not Before: Aug 2 21:59:26 2002 GMT
|
||||
Not After : Aug 2 21:59:26 2003 GMT
|
||||
Subject: C=RU, L=Orenburg, O=MySQL AB, CN=server/Email=walrus@mysql.com
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:9e:ac:8d:d8:1d:9c:b2:fd:88:96:2c:ba:42:53:
|
||||
fa:5d:bd:85:8a:e5:ca:d3:0f:c0:01:3c:f2:92:46:
|
||||
4f:d9:80:ae:2a:89:cf:ef:e8:d4:65:fc:f6:f5:3a:
|
||||
26:4c:29:db:06:fa:34:a1:87:f3:97:b5:3c:94:f1:
|
||||
84:05:ac:ad:57:25:d9:02:db:00:71:e0:a9:aa:b4:
|
||||
1d:29:36:5e:a9:a4:0d:f2:45:b9:83:74:2b:45:f3:
|
||||
e2:23:bc:e7:5c:e6:11:b6:f6:dd:c4:ac:ed:65:42:
|
||||
2c:39:47:2a:c9:eb:5f:45:03:10:ab:23:bc:ca:5c:
|
||||
82:9a:b7:b3:6d:67:18:d2:c7
|
||||
00:bd:7d:f1:91:51:38:fe:4b:79:b5:ff:e0:41:ae:
|
||||
0e:a8:bb:7b:60:42:95:01:75:e7:22:74:55:7d:74:
|
||||
4d:50:51:0c:5e:09:4b:2b:0c:8e:3f:9f:14:3f:5e:
|
||||
d9:25:36:9b:cc:77:35:30:e9:8c:bf:3b:bd:da:62:
|
||||
85:4c:90:c8:de:71:2c:0a:7b:dc:e6:85:fd:b4:24:
|
||||
88:a7:8f:03:3d:15:7c:59:3d:f8:73:f0:36:2a:b8:
|
||||
80:7c:d8:c7:d6:1f:6d:b2:b7:b7:48:9f:24:56:81:
|
||||
2c:2e:9c:b9:95:48:50:56:9f:1a:60:96:c4:c0:eb:
|
||||
8d:2d:55:38:3f:6b:82:bc:b3
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
@ -28,40 +28,38 @@ Certificate:
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
94:68:BF:DA:F6:E2:09:EF:3A:C8:27:AE:D7:B7:02:F0:DC:4B:C1:3B
|
||||
C9:D0:D2:F7:17:79:27:1C:4B:C9:E7:92:D5:5E:8C:7E:F2:FE:A7:B7
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:A5:0A:D6:72:B5:DF:E4:C2:2B:7B:07:5E:D3:4D:52:07:E1:83:6B:7F
|
||||
DirName:/C=FI/ST=Some-State/L=Helsinki/O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
keyid:D9:D8:6A:7D:AB:CE:10:62:1A:16:FC:E9:6A:F4:DC:F1:66:AC:D0:B9
|
||||
DirName:/C=RU/ST=Some-State/L=Orenburg/O=MySQL AB/CN=Walrus/Email=walrus@mysql.com
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
8c:1a:90:70:f6:1a:70:0e:c9:28:93:74:e2:2b:b8:2a:d0:ce:
|
||||
40:15:e8:af:44:f8:89:16:20:f5:c2:b9:ed:aa:4e:3c:40:e2:
|
||||
9c:62:aa:48:98:ac:17:84:ef:35:72:59:43:09:35:17:c5:9a:
|
||||
3e:3d:ef:97:bf:57:f2:2a:f6:56:5d:a4:7c:68:58:b9:d6:9b:
|
||||
0f:57:0e:55:22:17:b0:b7:77:27:4f:da:b3:88:c1:6d:d6:8f:
|
||||
31:ec:0d:a2:25:60:66:2f:0f:86:8a:d6:08:b8:71:b1:b5:70:
|
||||
60:04:56:96:ff:bd:5e:ed:94:bc:44:bd:24:e0:2f:90:e5:23:
|
||||
51:4e
|
||||
62:77:bc:16:dc:4c:70:63:4d:03:ce:19:5e:c4:6c:31:0e:57:
|
||||
26:d8:6e:25:08:f2:01:ae:98:59:0a:ba:b7:32:c0:39:69:b8:
|
||||
4b:aa:59:7c:97:72:4e:50:02:ee:ef:d6:d6:62:b8:25:36:91:
|
||||
b6:3b:8f:6f:2f:3c:d8:9d:b7:cf:8f:f6:29:50:e9:31:54:77:
|
||||
2b:7b:21:72:0f:60:4c:d4:1c:bb:c4:46:e5:fd:a7:5f:ea:46:
|
||||
e4:df:e9:95:77:2d:91:f8:3b:33:78:83:5d:10:de:98:7c:38:
|
||||
91:27:f6:52:8a:b6:54:f1:0f:7a:f0:1d:da:a5:22:d2:75:cc:
|
||||
4c:c3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDoTCCAwqgAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCRkkx
|
||||
EzARBgNVBAgTClNvbWUtU3RhdGUxETAPBgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQK
|
||||
ExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqG
|
||||
SIb3DQEJARYOdG9udUBteXNxbC5jb20wHhcNMDEwNjI0MTYwMjI4WhcNMDIwNjI0
|
||||
MTYwMjI4WjCBkTELMAkGA1UEBhMCRUUxEzARBgNVBAgTClNvbWUtU3RhdGUxEDAO
|
||||
BgNVBAcTB1RhbGxpbm4xJjAkBgNVBAoTHU15U1FMIHNlcnZlciBkZW1vIGNlcnRp
|
||||
ZmljYXRlMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqGSIb3DQEJARYOdG9u
|
||||
dUBteXNxbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ6sjdgdnLL9
|
||||
iJYsukJT+l29hYrlytMPwAE88pJGT9mAriqJz+/o1GX89vU6Jkwp2wb6NKGH85e1
|
||||
PJTxhAWsrVcl2QLbAHHgqaq0HSk2XqmkDfJFuYN0K0Xz4iO851zmEbb23cSs7WVC
|
||||
LDlHKsnrX0UDEKsjvMpcgpq3s21nGNLHAgMBAAGjggERMIIBDTAJBgNVHRMEAjAA
|
||||
MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAd
|
||||
BgNVHQ4EFgQUlGi/2vbiCe86yCeu17cC8NxLwTswgbIGA1UdIwSBqjCBp4AUpQrW
|
||||
crXf5MIrewde001SB+GDa3+hgYukgYgwgYUxCzAJBgNVBAYTAkZJMRMwEQYDVQQI
|
||||
EwpTb21lLVN0YXRlMREwDwYDVQQHEwhIZWxzaW5raTEZMBcGA1UEChMQTXlTUUwg
|
||||
RmlubGFuZCBBQjEUMBIGA1UEAxMLVG9udSBTYW11ZWwxHTAbBgkqhkiG9w0BCQEW
|
||||
DnRvbnVAbXlzcWwuY29tggEAMA0GCSqGSIb3DQEBBAUAA4GBAIwakHD2GnAOySiT
|
||||
dOIruCrQzkAV6K9E+IkWIPXCue2qTjxA4pxiqkiYrBeE7zVyWUMJNRfFmj4975e/
|
||||
V/Iq9lZdpHxoWLnWmw9XDlUiF7C3dydP2rOIwW3WjzHsDaIlYGYvD4aK1gi4cbG1
|
||||
cGAEVpb/vV7tlLxEvSTgL5DlI1FO
|
||||
MIIDWTCCAsKgAwIBAgIBATANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJSVTET
|
||||
MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoT
|
||||
CE15U1FMIEFCMQ8wDQYDVQQDEwZXYWxydXMxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1
|
||||
c0BteXNxbC5jb20wHhcNMDIwODAyMjE1OTI2WhcNMDMwODAyMjE1OTI2WjBlMQsw
|
||||
CQYDVQQGEwJSVTERMA8GA1UEBxMIT3JlbmJ1cmcxETAPBgNVBAoTCE15U1FMIEFC
|
||||
MQ8wDQYDVQQDEwZzZXJ2ZXIxHzAdBgkqhkiG9w0BCQEWEHdhbHJ1c0BteXNxbC5j
|
||||
b20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL198ZFROP5LebX/4EGuDqi7
|
||||
e2BClQF15yJ0VX10TVBRDF4JSysMjj+fFD9e2SU2m8x3NTDpjL87vdpihUyQyN5x
|
||||
LAp73OaF/bQkiKePAz0VfFk9+HPwNiq4gHzYx9YfbbK3t0ifJFaBLC6cuZVIUFaf
|
||||
GmCWxMDrjS1VOD9rgryzAgMBAAGjggECMIH/MAkGA1UdEwQCMAAwLAYJYIZIAYb4
|
||||
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTJ
|
||||
0NL3F3knHEvJ55LVXox+8v6ntzCBpAYDVR0jBIGcMIGZgBTZ2Gp9q84QYhoW/Olq
|
||||
9NzxZqzQuaF+pHwwejELMAkGA1UEBhMCUlUxEzARBgNVBAgTClNvbWUtU3RhdGUx
|
||||
ETAPBgNVBAcTCE9yZW5idXJnMREwDwYDVQQKEwhNeVNRTCBBQjEPMA0GA1UEAxMG
|
||||
V2FscnVzMR8wHQYJKoZIhvcNAQkBFhB3YWxydXNAbXlzcWwuY29tggEAMA0GCSqG
|
||||
SIb3DQEBBAUAA4GBAGJ3vBbcTHBjTQPOGV7EbDEOVybYbiUI8gGumFkKurcywDlp
|
||||
uEuqWXyXck5QAu7v1tZiuCU2kbY7j28vPNidt8+P9ilQ6TFUdyt7IXIPYEzUHLvE
|
||||
RuX9p1/qRuTf6ZV3LZH4OzN4g10Q3ph8OJEn9lKKtlTxD3rwHdqlItJ1zEzD
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,15 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXAIBAAKBgQCerI3YHZyy/YiWLLpCU/pdvYWK5crTD8ABPPKSRk/ZgK4qic/v
|
||||
6NRl/Pb1OiZMKdsG+jShh/OXtTyU8YQFrK1XJdkC2wBx4KmqtB0pNl6ppA3yRbmD
|
||||
dCtF8+IjvOdc5hG29t3ErO1lQiw5RyrJ619FAxCrI7zKXIKat7NtZxjSxwIDAQAB
|
||||
AoGAA51gudyq1jUKaIlqUNqC6KHJqglkHnzMXfrad9ScOxNAZH2xPADs3cnuglWp
|
||||
y7BkaftHOarUNM+PKsF5xXtSk5F9UUV+7h2FtPZYUshUgn5hkGZP12otxJMP0cpg
|
||||
Yt6brQxuOIe/r/Kt5r3nKpp4pyFLX2fGWQq7pSjdkgSZSOECQQDJ9MgbCXd81yde
|
||||
eo3+YmUPBEQ9d7mivQsyPHMOHLPJKR42N4npdR1zLDBYK5lFzJeQH1y0Uce3O8eL
|
||||
hM8hkA1XAkEAySKvNTaosbLhShkRazQyQQJYJg0F/93lkQ33ou4crru7Mvi2OZK9
|
||||
B3BGAmNpSv6ZOZYjM0aE8lGlTaoYJ9GQEQJAGJDyFnfcVQ9G9rMpupv1dxIpyuBZ
|
||||
cHZWelHoHPtY00txJV80I3Xfkzb42oDTMC5m8V0fRb/870kSSOJq38ZKGQJBAIgq
|
||||
wxLzfiFPSNYxQmmhXKRGQgcAqh8eylv5aL0VFrX0wjcvya4QeYifqcXUJ2RuGK2z
|
||||
xwDfrQGf5Jk/njrW1QECQAUofd1l9DLDifRP1j9sjUdwz0fvqQ0o6sbt39PBl1ot
|
||||
IHdc3nf9z0ft+KOG1CT/M9jYo9SzE9Z6IfwmHxxpY0s=
|
||||
MIICXAIBAAKBgQC9ffGRUTj+S3m1/+BBrg6ou3tgQpUBdecidFV9dE1QUQxeCUsr
|
||||
DI4/nxQ/XtklNpvMdzUw6Yy/O73aYoVMkMjecSwKe9zmhf20JIinjwM9FXxZPfhz
|
||||
8DYquIB82MfWH22yt7dInyRWgSwunLmVSFBWnxpglsTA640tVTg/a4K8swIDAQAB
|
||||
AoGARciG2NRHn+aduPe1V5rJDTyWD/oVM8d+ykJ7ZUsaWdSvMEZN51mlXSqxYzED
|
||||
2N+GesL/1LZ9vcM7hJw5qNu9DQOc7CtMT4k/bmhPJsT226roKKVbw/ocOEY5dK8+
|
||||
T9/x8qgo7zC3Qk/bKgjj61m8cQ7Mz/J7ZCEMmDNNrORCzRECQQDrcvJlsBTALilr
|
||||
MaAqNyaa0tykEabzg2mUFx5uvmzlwNx9ApSidoU5Xop9c6u00zgCDpsDlcwjhOs1
|
||||
jcqRkBTrAkEAzggY7BeN3FnW8tsV0Wq4LL6vK30pe0JIylxrKsFjY4LTo9t/8TKK
|
||||
6ZOEETVtM7sepIkxECw5RCBi9sxi3NClWQJAbrA5WKjw+HA7NJO98lq/IWYkKFXM
|
||||
IQsUpXRA8FtBormKbpK6Aa6qbxANF3E7teTencj0Azl3IPOqCCFCrDAKRQJAc6bv
|
||||
9ncyVqLHmgOJN8ikIdnYEp1rj5khqxY9wf5UgCOMEcrBAu/QMlVwKQjIh+VdyhaI
|
||||
x/9LFgboBomsZS9p4QJBAIXaX/WoqL/wgBGS2UroianFFXL6/Bt//CUoGpYgKQYQ
|
||||
+x+8heMRppmM0to2J7j9nGE83ikMWfPUwMi4TbyWH3Q=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
@ -217,11 +217,14 @@ ulong hp_hashnr(register HP_KEYDEF *keydef, register const byte *key)
|
||||
if (seg->charset->hash_sort)
|
||||
seg->charset->hash_sort(seg->charset,pos,((uchar*)key)-pos,&nr,&nr2);
|
||||
else
|
||||
for (; pos < (uchar*) key ; pos++)
|
||||
{
|
||||
nr^=(ulong) ((((uint) nr & 63)+nr2) *
|
||||
((uint) seg->charset->sort_order[(uint) *pos])) + (nr << 8);
|
||||
nr2+=3;
|
||||
register uchar *sort_order=seg->charset->sort_order;
|
||||
for (; pos < (uchar*) key ; pos++)
|
||||
{
|
||||
nr^=(ulong) ((((uint) nr & 63)+nr2) *
|
||||
((uint) sort_order[(uint) *pos])) + (nr << 8);
|
||||
nr2+=3;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -260,11 +263,15 @@ ulong hp_rec_hashnr(register HP_KEYDEF *keydef, register const byte *rec)
|
||||
if (seg->charset->hash_sort)
|
||||
seg->charset->hash_sort(seg->charset,pos,end-pos,&nr,&nr2);
|
||||
else
|
||||
for (; pos < end ; pos++)
|
||||
{
|
||||
nr^=(ulong) ((((uint) nr & 63)+nr2)*
|
||||
((uint) seg->charset->sort_order[(uint) *pos]))+ (nr << 8);
|
||||
nr2+=3;
|
||||
register uchar *sort_order=seg->charset->sort_order;
|
||||
|
||||
for (; pos < end ; pos++)
|
||||
{
|
||||
nr^=(ulong) ((((uint) nr & 63)+nr2)*
|
||||
((uint) sort_order[(uint) *pos]))+ (nr << 8);
|
||||
nr2+=3;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -29,7 +29,7 @@ noinst_HEADERS = config-win.h \
|
||||
my_nosys.h my_alarm.h queues.h \
|
||||
my_tree.h hash.h thr_alarm.h thr_lock.h \
|
||||
t_ctype.h violite.h md5.h mysql_version.h.in \
|
||||
my_handler.h
|
||||
my_handler.h my_getopt.h
|
||||
|
||||
# mysql_version.h are generated
|
||||
SUPERCLEANFILES = mysql_version.h my_config.h
|
||||
|
151
include/getopt.h
151
include/getopt.h
@ -1,151 +0,0 @@
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
|
||||
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 */
|
||||
|
||||
/* Declarations for getopt.
|
||||
Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU C Library. Its master source is NOT part of
|
||||
the C library, however. The master source lives in /gd/gnu/lib.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef _GETOPT_H
|
||||
#define _GETOPT_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* For communication from `getopt' to the caller.
|
||||
When `getopt' finds an option that takes an argument,
|
||||
the argument value is returned here.
|
||||
Also, when `ordering' is RETURN_IN_ORDER,
|
||||
each non-option ARGV-element is returned here. */
|
||||
|
||||
extern char *optarg;
|
||||
|
||||
/* Index in ARGV of the next element to be scanned.
|
||||
This is used for communication to and from the caller
|
||||
and for communication between successive calls to `getopt'.
|
||||
|
||||
On entry to `getopt', zero means this is the first call; initialize.
|
||||
|
||||
When `getopt' returns EOF, this is the index of the first of the
|
||||
non-option elements that the caller should itself scan.
|
||||
|
||||
Otherwise, `optind' communicates from one call to the next
|
||||
how much of ARGV has been scanned so far. */
|
||||
|
||||
extern int optind;
|
||||
|
||||
/* Callers store zero here to inhibit the error message `getopt' prints
|
||||
for unrecognized options. */
|
||||
|
||||
extern int opterr;
|
||||
|
||||
/* Set to an option character which was unrecognized. */
|
||||
|
||||
extern int optopt;
|
||||
|
||||
/* Describe the long-named options requested by the application.
|
||||
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
|
||||
of `struct option' terminated by an element containing a name which is
|
||||
zero.
|
||||
|
||||
The field `has_arg' is:
|
||||
no_argument (or 0) if the option does not take an argument,
|
||||
required_argument (or 1) if the option requires an argument,
|
||||
optional_argument (or 2) if the option takes an optional argument.
|
||||
|
||||
If the field `flag' is not NULL, it points to a variable that is set
|
||||
to the value given in the field `val' when the option is found, but
|
||||
left unchanged if the option is not found.
|
||||
|
||||
To have a long-named option do something other than set an `int' to
|
||||
a compiled-in constant, such as set a value from `optarg', set the
|
||||
option's `flag' field to zero and its `val' field to a nonzero
|
||||
value (the equivalent single-letter option character, if there is
|
||||
one). For long options that have a zero `flag' field, `getopt'
|
||||
returns the contents of the `val' field. */
|
||||
|
||||
struct option
|
||||
{
|
||||
#if defined (__STDC__) && __STDC__ || defined(__cplusplus)
|
||||
const char *name;
|
||||
#else
|
||||
char *name;
|
||||
#endif
|
||||
/* has_arg can't be an enum because some compilers complain about
|
||||
type mismatches in all the code that assumes it is an int. */
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
};
|
||||
|
||||
/* Names for the values of the `has_arg' field of `struct option'. */
|
||||
|
||||
#define no_argument 0
|
||||
#define required_argument 1
|
||||
#define optional_argument 2
|
||||
|
||||
#if ( defined (__STDC__) && __STDC__ ) || defined(__cplusplus) || defined(MSDOS)
|
||||
#ifdef __EMX__
|
||||
int getopt (int, char **, __const__ char *);
|
||||
#elif defined( __GNU_LIBRARY__)
|
||||
/* Many other libraries have conflicting prototypes for getopt, with
|
||||
differences in the consts, in stdlib.h. To avoid compilation
|
||||
errors, only prototype getopt for the GNU C library. */
|
||||
extern int getopt (int argc, char *const *argv, const char *shortopts);
|
||||
#else /* not __GNU_LIBRARY__ */
|
||||
extern int getopt (int argc, char *const *argv, const char *optstring);
|
||||
#endif /* __GNU_LIBRARY__ */
|
||||
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
|
||||
const struct option *longopts, int *longind);
|
||||
extern int getopt_long_only (int argc, char *const *argv,
|
||||
const char *shortopts,
|
||||
const struct option *longopts, int *longind);
|
||||
|
||||
/* Internal only. Users should not call this directly. */
|
||||
extern int _getopt_internal (int argc, char *const *argv,
|
||||
const char *shortopts,
|
||||
const struct option *longopts, int *longind,
|
||||
int long_only);
|
||||
#else /* not __STDC__ */
|
||||
extern int getopt ();
|
||||
extern int getopt_long ();
|
||||
extern int getopt_long_only ();
|
||||
|
||||
extern int _getopt_internal ();
|
||||
#endif /* __STDC__ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _GETOPT_H */
|
@ -22,25 +22,27 @@
|
||||
opt_use_ssl = 1; /* true */
|
||||
//QQ to be removed??? my_free(opt_ssl_key, MYF(MY_ALLOW_ZERO_PTR));
|
||||
//QQ to be removed??? opt_ssl_key = my_strdup(optarg, MYF(0));
|
||||
my_free(opt_ssl_key, MYF(MY_ALLOW_ZERO_PTR));
|
||||
opt_ssl_key = my_strdup(argument, MYF(0));
|
||||
break;
|
||||
case OPT_SSL_CERT:
|
||||
opt_use_ssl = 1; /* true */
|
||||
my_free(opt_ssl_cert, MYF(MY_ALLOW_ZERO_PTR));
|
||||
opt_ssl_cert = my_strdup(optarg, MYF(0));
|
||||
opt_ssl_cert = my_strdup(argument, MYF(0));
|
||||
break;
|
||||
case OPT_SSL_CA:
|
||||
opt_use_ssl = 1; /* true */
|
||||
my_free(opt_ssl_ca, MYF(MY_ALLOW_ZERO_PTR));
|
||||
opt_ssl_ca = my_strdup(optarg, MYF(0));
|
||||
opt_ssl_ca = my_strdup(argument, MYF(0));
|
||||
break;
|
||||
case OPT_SSL_CAPATH:
|
||||
opt_use_ssl = 1; /* true */
|
||||
my_free(opt_ssl_capath, MYF(MY_ALLOW_ZERO_PTR));
|
||||
opt_ssl_capath = my_strdup(optarg, MYF(0));
|
||||
opt_ssl_capath = my_strdup(argument, MYF(0));
|
||||
break;
|
||||
case OPT_SSL_CIPHER:
|
||||
opt_use_ssl = 1; /* true */
|
||||
my_free(opt_ssl_cipher, MYF(MY_ALLOW_ZERO_PTR));
|
||||
opt_ssl_cipher = my_strdup(optarg, MYF(0));
|
||||
opt_ssl_cipher = my_strdup(argument, MYF(0));
|
||||
break;
|
||||
#endif
|
||||
|
@ -157,6 +157,65 @@ INSERT INTO t1 (koi8_ru_f,comment) VALUES ('
|
||||
INSERT INTO t1 (koi8_ru_f,comment) VALUES ('ü','CYR CAPIT E');
|
||||
INSERT INTO t1 (koi8_ru_f,comment) VALUES ('à','CYR CAPIT YU');
|
||||
INSERT INTO t1 (koi8_ru_f,comment) VALUES ('ñ','CYR CAPIT YA');
|
||||
SELECT CONVERT(koi8_ru_f USING utf8),MIN(comment),COUNT(*) FROM t1 GROUP BY 1;
|
||||
CONVERT(koi8_ru_f USING utf8) MIN(comment) COUNT(*)
|
||||
a LAT CAPIT A 2
|
||||
b LAT CAPIT B 2
|
||||
c LAT CAPIT C 2
|
||||
d LAT CAPIT D 2
|
||||
e LAT CAPIT E 2
|
||||
f LAT CAPIT F 2
|
||||
g LAT CAPIT G 2
|
||||
h LAT CAPIT H 2
|
||||
i LAT CAPIT I 2
|
||||
j LAT CAPIT J 2
|
||||
k LAT CAPIT K 2
|
||||
l LAT CAPIT L 2
|
||||
m LAT CAPIT M 2
|
||||
n LAT CAPIT N 2
|
||||
o LAT CAPIT O 2
|
||||
p LAT CAPIT P 2
|
||||
q LAT CAPIT Q 2
|
||||
r LAT CAPIT R 2
|
||||
s LAT CAPIT S 2
|
||||
t LAT CAPIT T 2
|
||||
u LAT CAPIT U 2
|
||||
v LAT CAPIT V 2
|
||||
w LAT CAPIT W 2
|
||||
x LAT CAPIT X 2
|
||||
y LAT CAPIT Y 2
|
||||
z LAT CAPIT Z 2
|
||||
а CYR CAPIT A 2
|
||||
б CYR CAPIT BE 2
|
||||
в CYR CAPIT VE 2
|
||||
г CYR CAPIT GE 2
|
||||
д CYR CAPIT DE 2
|
||||
е CYR CAPIT IE 4
|
||||
ж CYR CAPIT ZHE 2
|
||||
з CYR CAPIT ZE 2
|
||||
и CYR CAPIT I 2
|
||||
к CYR CAPIT KA 2
|
||||
л CYR CAPIT EL 2
|
||||
м CYR CAPIT EM 2
|
||||
н CYR CAPIT EN 2
|
||||
о CYR CAPIT O 2
|
||||
п CYR CAPIT PE 2
|
||||
р CYR CAPIT ER 2
|
||||
с CYR CAPIT ES 2
|
||||
т CYR CAPIT TE 2
|
||||
у CYR CAPIT U 2
|
||||
ф CYR CAPIT EF 2
|
||||
х CYR CAPIT HA 2
|
||||
ц CYR CAPIT TSE 2
|
||||
ч CYR CAPIT CHE 2
|
||||
ш CYR CAPIT SHA 2
|
||||
щ CYR CAPIT SCHA 2
|
||||
ъ CYR CAPIT HARD SIGN 2
|
||||
ы CYR CAPIT YERU 2
|
||||
ь CYR CAPIT SOFT SIGN 2
|
||||
э CYR CAPIT E 2
|
||||
ю CYR CAPIT YU 2
|
||||
я CYR CAPIT YA 2
|
||||
ALTER TABLE t1 ADD utf8_f CHAR(32) CHARACTER SET utf8 NOT NULL;
|
||||
UPDATE t1 SET utf8_f=CONVERT(koi8_ru_f USING utf8);
|
||||
SELECT * FROM t1;
|
||||
|
@ -133,6 +133,8 @@ INSERT INTO t1 (koi8_ru_f,comment) VALUES ('
|
||||
INSERT INTO t1 (koi8_ru_f,comment) VALUES ('à','CYR CAPIT YU');
|
||||
INSERT INTO t1 (koi8_ru_f,comment) VALUES ('ñ','CYR CAPIT YA');
|
||||
|
||||
SELECT CONVERT(koi8_ru_f USING utf8),MIN(comment),COUNT(*) FROM t1 GROUP BY 1;
|
||||
|
||||
ALTER TABLE t1 ADD utf8_f CHAR(32) CHARACTER SET utf8 NOT NULL;
|
||||
UPDATE t1 SET utf8_f=CONVERT(koi8_ru_f USING utf8);
|
||||
|
||||
|
@ -53,10 +53,11 @@ EXTRA_DIST = thr_alarm.c thr_lock.c my_pthread.c my_thr_init.c \
|
||||
thr_mutex.c thr_rwlock.c
|
||||
libmysys_a_LIBADD = @THREAD_LOBJECTS@
|
||||
# test_fn removed 980815 since it not upp to date test_dir
|
||||
noinst_PROGRAMS = test_charset @THREAD_LPROGRAMS@
|
||||
noinst_PROGRAMS = test_charset charset2html @THREAD_LPROGRAMS@
|
||||
# test_dir_DEPENDENCIES= $(LIBRARIES)
|
||||
# testhash_DEPENDENCIES= $(LIBRARIES)
|
||||
test_charset_DEPENDENCIES= $(LIBRARIES)
|
||||
charset2html_DEPENDENCIES= $(LIBRARIES)
|
||||
EXTRA_PROGRAMS =
|
||||
DEFS = -DDEFAULT_BASEDIR=\"$(prefix)\" \
|
||||
-DDATADIR="\"$(MYSQLDATAdir)\"" \
|
||||
@ -109,6 +110,9 @@ test_dir: test_dir.c $(LIBRARIES)
|
||||
test_charset: test_charset.c $(LIBRARIES)
|
||||
$(LINK) $(FLAGS) -DMAIN $(srcdir)/test_charset.c $(LDADD) $(LIBS)
|
||||
|
||||
charset2html: charset2html.c $(LIBRARIES)
|
||||
$(LINK) $(FLAGS) -DMAIN $(srcdir)/charset2html.c $(LDADD) $(LIBS)
|
||||
|
||||
testhash: testhash.c $(LIBRARIES)
|
||||
$(LINK) $(FLAGS) -DMAIN $(srcdir)/testhash.c $(LDADD) $(LIBS)
|
||||
|
||||
|
129
mysys/charset2html.c
Normal file
129
mysys/charset2html.c
Normal file
@ -0,0 +1,129 @@
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
/*
|
||||
Written by Alexander Barkov to check what
|
||||
a charset is in your favorite web browser
|
||||
*/
|
||||
|
||||
#include <my_global.h>
|
||||
#include <m_ctype.h>
|
||||
#include <my_sys.h>
|
||||
#include <mysql_version.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
typedef struct char_info_st
|
||||
{
|
||||
int cod;
|
||||
int srt;
|
||||
int uni;
|
||||
int low;
|
||||
int upp;
|
||||
int ctp;
|
||||
} MY_CH;
|
||||
|
||||
static int chcmp(const void *vf, const void *vs)
|
||||
{
|
||||
const MY_CH *f=vf;
|
||||
const MY_CH *s=vs;
|
||||
|
||||
return f->srt-s->srt ? f->srt-s->srt : f->uni-s->uni;
|
||||
}
|
||||
|
||||
static void print_cs(CHARSET_INFO *cs)
|
||||
{
|
||||
uint i;
|
||||
int srt;
|
||||
int clr=0;
|
||||
MY_CH ch[256];
|
||||
|
||||
printf("<HTML>\n");
|
||||
printf("<HEAD>\n");
|
||||
printf("</HEAD>\n");
|
||||
printf("<BODY><PRE>\n");
|
||||
printf("Charset %s\n",cs->name);
|
||||
|
||||
printf("<TABLE>\n");
|
||||
printf("<TR><TH>Code<TH>Uni<TH>Sort<TH>Ctype<TH>Ch<TH>Lo<TH>Up</TR>");
|
||||
|
||||
for (i=0; i<256; i++)
|
||||
{
|
||||
ch[i].cod=i;
|
||||
ch[i].srt=cs->sort_order[i];
|
||||
ch[i].uni=cs->tab_to_uni[i];
|
||||
ch[i].low=cs->tab_to_uni[cs->to_lower[i]];
|
||||
ch[i].upp=cs->tab_to_uni[cs->to_upper[i]];
|
||||
ch[i].ctp=cs->ctype[i+1];
|
||||
}
|
||||
|
||||
qsort(ch,256,sizeof(MY_CH),&chcmp);
|
||||
srt=ch[0].srt;
|
||||
|
||||
for (i=0; i<256; i++)
|
||||
{
|
||||
clr = (srt!=ch[i].srt) ? !clr : clr;
|
||||
|
||||
printf("<TR bgcolor=#%s>",clr ? "DDDDDD" : "EEEE99");
|
||||
printf("<TD>%02X",ch[i].cod);
|
||||
printf("<TD>%04X",ch[i].uni);
|
||||
printf("<TD>%d",ch[i].srt);
|
||||
|
||||
printf("<TD>%s%s%s%s%s%s%s%s",
|
||||
ch[i].ctp & _U ? "U" : "",
|
||||
ch[i].ctp & _L ? "L" : "",
|
||||
ch[i].ctp & _NMR ? "N" : "",
|
||||
ch[i].ctp & _SPC ? "S" : "",
|
||||
ch[i].ctp & _PNT ? "P" : "",
|
||||
ch[i].ctp & _CTR ? "C" : "",
|
||||
ch[i].ctp & _B ? "B" : "",
|
||||
ch[i].ctp & _X ? "X" : "");
|
||||
|
||||
printf("<TD>&#%d;",ch[i].uni);
|
||||
printf("<TD>&#%d;",ch[i].low);
|
||||
printf("<TD>&#%d;",ch[i].upp);
|
||||
printf("</TR>\n");
|
||||
srt=ch[i].srt;
|
||||
}
|
||||
printf("</TABLE>\n");
|
||||
printf("</PRE></BODY>\n");
|
||||
printf("</HTML>\n");
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
const char *the_set = MYSQL_CHARSET;
|
||||
int argcnt = 1;
|
||||
|
||||
my_init();
|
||||
|
||||
if (argc > argcnt && argv[argcnt][0] == '-' && argv[argcnt][1] == '#')
|
||||
DBUG_PUSH(argv[argcnt++]+2);
|
||||
|
||||
if (argc > argcnt)
|
||||
the_set = argv[argcnt++];
|
||||
|
||||
if (argc > argcnt)
|
||||
charsets_dir = argv[argcnt++];
|
||||
|
||||
if (set_default_charset_by_name(the_set, MYF(MY_WME)))
|
||||
return 1;
|
||||
|
||||
print_cs(default_charset_info);
|
||||
|
||||
return 0;
|
||||
}
|
@ -136,10 +136,12 @@ static uint calc_hashnr(CHARSET_INFO *cs __attribute__((unused)),
|
||||
static uint calc_hashnr_caseup(CHARSET_INFO *cs, const byte *key,uint length)
|
||||
{
|
||||
register uint nr=1, nr2=4;
|
||||
register uchar *map=cs->to_upper;
|
||||
|
||||
while (length--)
|
||||
{
|
||||
nr^= (((nr & 63)+nr2)*
|
||||
((uint) (uchar) my_toupper(cs, *key++)))+ (nr << 8);
|
||||
((uint) (uchar) map[(uchar)*key++])) + (nr << 8);
|
||||
nr2+=3;
|
||||
}
|
||||
return((uint) nr);
|
||||
|
@ -33,8 +33,10 @@
|
||||
|
||||
void case_sort(CHARSET_INFO *cs, my_string str, uint length)
|
||||
{
|
||||
register uchar *map=cs->sort_order;
|
||||
|
||||
for ( ; length>0 ; length--, str++)
|
||||
*str= (char) cs->sort_order[(uchar) *str];
|
||||
*str= (char) map[(uchar) *str];
|
||||
} /* case_sort */
|
||||
|
||||
|
||||
@ -46,11 +48,11 @@ int my_sortcmp(CHARSET_INFO *cs, const char *s, const char *t, uint len)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
register uchar *map=cs->sort_order;
|
||||
while (len--)
|
||||
{
|
||||
if (cs->sort_order[(uchar) *s++] != cs->sort_order[(uchar) *t++])
|
||||
return ((int) cs->sort_order[(uchar) s[-1]] -
|
||||
(int) cs->sort_order[(uchar) t[-1]]);
|
||||
if (map[(uchar) *s++] != map[(uchar) *t++])
|
||||
return ((int) map[(uchar) s[-1]] - (int) map[(uchar) t[-1]]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -67,11 +69,12 @@ int my_sortncmp(CHARSET_INFO *cs,
|
||||
#endif
|
||||
{
|
||||
uint len= min(s_len,t_len);
|
||||
register uchar *map=cs->sort_order;
|
||||
|
||||
while (len--)
|
||||
{
|
||||
if (cs->sort_order[(uchar) *s++] != cs->sort_order[(uchar) *t++])
|
||||
return ((int) cs->sort_order[(uchar) s[-1]] -
|
||||
(int) cs->sort_order[(uchar) t[-1]]);
|
||||
if (map[(uchar) *s++] != map[(uchar) *t++])
|
||||
return ((int) map[(uchar) s[-1]] - (int) map[(uchar) t[-1]]);
|
||||
}
|
||||
return (int) (s_len - t_len);
|
||||
}
|
||||
|
@ -44,13 +44,14 @@ void soundex(CHARSET_INFO * cs,register my_string out_pntr, my_string in_pntr,
|
||||
{
|
||||
char ch,last_ch;
|
||||
reg3 my_string end;
|
||||
register uchar *map=cs->to_upper;
|
||||
|
||||
if (remove_garbage)
|
||||
{
|
||||
while (*in_pntr && my_isspace(cs,*in_pntr)) /* Skipp pre-space */
|
||||
in_pntr++;
|
||||
}
|
||||
*out_pntr++ = my_toupper(cs,*in_pntr);/* Copy first letter */
|
||||
*out_pntr++ = map[(uchar)*in_pntr]; /* Copy first letter */
|
||||
last_ch = get_scode(cs,&in_pntr,0); /* code of the first letter */
|
||||
/* for the first 'double-letter */
|
||||
/* check. */
|
||||
|
@ -25,7 +25,8 @@ int mi_compare_text(CHARSET_INFO *charset_info, uchar *a, uint a_length,
|
||||
#ifdef USE_STRCOLL
|
||||
if (use_strcoll(charset_info))
|
||||
{
|
||||
/* QQ: This needs to work with part keys at some point */
|
||||
if (part_key && b_length < a_length)
|
||||
a_length=b_length;
|
||||
return my_strnncoll(charset_info, a, a_length, b, b_length);
|
||||
}
|
||||
else
|
||||
|
@ -112,7 +112,7 @@ while test $# -gt 0; do
|
||||
--socket) echo "$socket" ;;
|
||||
--port) echo "$port" ;;
|
||||
--version) echo "$version" ;;
|
||||
--embedded-libs | --embedded | libmysqld-libs) echo "$embedded_libs" ;;
|
||||
--embedded-libs | --embedded | --libmysqld-libs) echo "$embedded_libs" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
|
||||
|
@ -56,7 +56,7 @@ noinst_HEADERS = item.h item_func.h item_sum.h item_cmpfunc.h \
|
||||
sql_select.h structs.h table.h sql_udf.h hash_filo.h\
|
||||
lex.h lex_symbol.h sql_acl.h sql_crypt.h \
|
||||
log_event.h mini_client.h sql_repl.h slave.h \
|
||||
stacktrace.h sql_sort.h sql_cache.h
|
||||
stacktrace.h sql_sort.h sql_cache.h spatial.h gstream.h
|
||||
mysqld_SOURCES = sql_lex.cc sql_handler.cc \
|
||||
item.cc item_sum.cc item_buff.cc item_func.cc \
|
||||
item_cmpfunc.cc item_strfunc.cc item_timefunc.cc \
|
||||
|
365
sql/field.cc
365
sql/field.cc
File diff suppressed because it is too large
Load Diff
126
sql/field.h
126
sql/field.h
@ -60,9 +60,9 @@ public:
|
||||
utype unireg_check_arg, const char *field_name_arg,
|
||||
struct st_table *table_arg);
|
||||
virtual ~Field() {}
|
||||
virtual void store(const char *to,uint length,CHARSET_INFO *cs)=0;
|
||||
virtual void store(double nr)=0;
|
||||
virtual void store(longlong nr)=0;
|
||||
virtual int store(const char *to,uint length,CHARSET_INFO *cs)=0;
|
||||
virtual int store(double nr)=0;
|
||||
virtual int store(longlong nr)=0;
|
||||
virtual void store_time(TIME *ltime,timestamp_type t_type);
|
||||
virtual double val_real(void)=0;
|
||||
virtual longlong val_int(void)=0;
|
||||
@ -281,9 +281,9 @@ public:
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return zerofill ? HA_KEYTYPE_BINARY : HA_KEYTYPE_NUM; }
|
||||
void reset(void);
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
String *val_str(String*,String *);
|
||||
@ -310,9 +310,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_TINY;}
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -339,9 +339,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_SHORT;}
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return unsigned_flag ? HA_KEYTYPE_USHORT_INT : HA_KEYTYPE_SHORT_INT;}
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -368,9 +368,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_INT24;}
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return unsigned_flag ? HA_KEYTYPE_UINT24 : HA_KEYTYPE_INT24; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -402,9 +402,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_LONG;}
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return unsigned_flag ? HA_KEYTYPE_ULONG_INT : HA_KEYTYPE_LONG_INT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -438,9 +438,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_LONGLONG;}
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return unsigned_flag ? HA_KEYTYPE_ULONGLONG : HA_KEYTYPE_LONGLONG; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -465,9 +465,9 @@ public:
|
||||
{}
|
||||
enum_field_types type() const { return FIELD_TYPE_FLOAT;}
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_FLOAT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { bzero(ptr,sizeof(float)); }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -497,9 +497,9 @@ public:
|
||||
{}
|
||||
enum_field_types type() const { return FIELD_TYPE_DOUBLE;}
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_DOUBLE; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { bzero(ptr,sizeof(double)); }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -523,9 +523,9 @@ public:
|
||||
unireg_check_arg, field_name_arg, table_arg, default_charset_info)
|
||||
{}
|
||||
enum_field_types type() const { return FIELD_TYPE_NULL;}
|
||||
void store(const char *to, uint length, CHARSET_INFO *cs) { null[0]=1; }
|
||||
void store(double nr) { null[0]=1; }
|
||||
void store(longlong nr) { null[0]=1; }
|
||||
int store(const char *to, uint length, CHARSET_INFO *cs) { null[0]=1; return 0; }
|
||||
int store(double nr) { null[0]=1; return 0; }
|
||||
int store(longlong nr) { null[0]=1; return 0; }
|
||||
void reset(void) {}
|
||||
double val_real(void) { return 0.0;}
|
||||
longlong val_int(void) { return 0;}
|
||||
@ -547,9 +547,9 @@ public:
|
||||
enum Item_result result_type () const { return field_length == 8 || field_length == 14 ? INT_RESULT : STRING_RESULT; }
|
||||
enum_field_types type() const { return FIELD_TYPE_TIMESTAMP;}
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -587,9 +587,9 @@ public:
|
||||
unireg_check_arg, field_name_arg, table_arg, 1, 1)
|
||||
{}
|
||||
enum_field_types type() const { return FIELD_TYPE_YEAR;}
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
String *val_str(String*,String *);
|
||||
@ -612,9 +612,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_DATE;}
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
|
||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -639,9 +639,9 @@ public:
|
||||
enum_field_types real_type() const { return FIELD_TYPE_NEWDATE; }
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_UINT24; }
|
||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void store_time(TIME *ltime,timestamp_type type);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
|
||||
double val_real(void);
|
||||
@ -673,9 +673,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_TIME;}
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_INT24; }
|
||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -707,9 +707,9 @@ public:
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONGLONG; }
|
||||
#endif
|
||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void store_time(TIME *ltime,timestamp_type type);
|
||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; }
|
||||
double val_real(void);
|
||||
@ -761,9 +761,9 @@ public:
|
||||
bool zero_pack() const { return 0; }
|
||||
bool binary() const { return binary_flag; }
|
||||
void reset(void) { bfill(ptr,field_length,' '); }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
String *val_str(String*,String *);
|
||||
@ -813,9 +813,9 @@ public:
|
||||
void reset(void) { bzero(ptr,field_length+2); }
|
||||
uint32 pack_length() const { return (uint32) field_length+2; }
|
||||
uint32 key_length() const { return (uint32) field_length; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
String *val_str(String*,String *);
|
||||
@ -856,9 +856,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_BLOB;}
|
||||
enum ha_base_keytype key_type() const
|
||||
{ return binary_flag ? HA_KEYTYPE_VARBINARY : HA_KEYTYPE_VARTEXT; }
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
String *val_str(String*,String *);
|
||||
@ -962,9 +962,9 @@ public:
|
||||
enum_field_types type() const { return FIELD_TYPE_STRING; }
|
||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||
enum ha_base_keytype key_type() const;
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr);
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr);
|
||||
int store(longlong nr);
|
||||
void reset() { bzero(ptr,packlength); }
|
||||
double val_real(void);
|
||||
longlong val_int(void);
|
||||
@ -997,9 +997,9 @@ public:
|
||||
{
|
||||
flags=(flags & ~ENUM_FLAG) | SET_FLAG;
|
||||
}
|
||||
void store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
void store(double nr) { Field_set::store((longlong) nr); }
|
||||
void store(longlong nr);
|
||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||
int store(double nr) { return Field_set::store((longlong) nr); }
|
||||
int store(longlong nr);
|
||||
virtual bool zero_pack() const { return 1; }
|
||||
String *val_str(String*,String *);
|
||||
void sql_type(String &str) const;
|
||||
|
50
sql/item.cc
50
sql/item.cc
@ -340,7 +340,7 @@ void Item_param::set_long_end()
|
||||
item_result_type = STRING_RESULT;
|
||||
};
|
||||
|
||||
bool Item_param::save_in_field(Field *field)
|
||||
int Item_param::save_in_field(Field *field)
|
||||
{
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
@ -349,20 +349,17 @@ bool Item_param::save_in_field(Field *field)
|
||||
if (item_result_type == INT_RESULT)
|
||||
{
|
||||
longlong nr=val_int();
|
||||
field->store(nr);
|
||||
return 0;
|
||||
return (field->store(nr)) ? -1 : 0;
|
||||
}
|
||||
if (item_result_type == REAL_RESULT)
|
||||
{
|
||||
double nr=val();
|
||||
field->store(nr);
|
||||
return 0;
|
||||
return (field->store(nr)) ? -1 : 0;
|
||||
}
|
||||
String *result;
|
||||
CHARSET_INFO *cs=default_charset_info;//fix this
|
||||
result=val_str(&str_value);
|
||||
field->store(result->ptr(),result->length(),cs);
|
||||
return 0;
|
||||
return (field->store(result->ptr(),result->length(),cs)) ? -1 : 0;
|
||||
}
|
||||
|
||||
void Item_param::make_field(Send_field *tmp_field)
|
||||
@ -618,7 +615,7 @@ void Item_field::save_org_in_field(Field *to)
|
||||
}
|
||||
}
|
||||
|
||||
bool Item_field::save_in_field(Field *to)
|
||||
int Item_field::save_in_field(Field *to)
|
||||
{
|
||||
if (result_field->is_null())
|
||||
{
|
||||
@ -635,14 +632,15 @@ bool Item_field::save_in_field(Field *to)
|
||||
}
|
||||
|
||||
|
||||
bool Item_null::save_in_field(Field *field)
|
||||
int Item_null::save_in_field(Field *field)
|
||||
{
|
||||
return set_field_to_null(field);
|
||||
}
|
||||
|
||||
|
||||
bool Item::save_in_field(Field *field)
|
||||
int Item::save_in_field(Field *field)
|
||||
{
|
||||
int error;
|
||||
if (result_type() == STRING_RESULT ||
|
||||
result_type() == REAL_RESULT &&
|
||||
field->result_type() == STRING_RESULT)
|
||||
@ -655,7 +653,7 @@ bool Item::save_in_field(Field *field)
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
field->store(result->ptr(),result->length(),cs);
|
||||
error=field->store(result->ptr(),result->length(),cs);
|
||||
str_value.set_quick(0, 0, cs);
|
||||
}
|
||||
else if (result_type() == REAL_RESULT)
|
||||
@ -664,7 +662,7 @@ bool Item::save_in_field(Field *field)
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
field->store(nr);
|
||||
error=field->store(nr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -672,12 +670,12 @@ bool Item::save_in_field(Field *field)
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
field->store(nr);
|
||||
error=field->store(nr);
|
||||
}
|
||||
return 0;
|
||||
return (error) ? -1 : 0;
|
||||
}
|
||||
|
||||
bool Item_string::save_in_field(Field *field)
|
||||
int Item_string::save_in_field(Field *field)
|
||||
{
|
||||
String *result;
|
||||
CHARSET_INFO *cs=field->binary()?default_charset_info:((Field_str*)field)->charset();
|
||||
@ -685,28 +683,25 @@ bool Item_string::save_in_field(Field *field)
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
field->store(result->ptr(),result->length(),cs);
|
||||
return 0;
|
||||
return (field->store(result->ptr(),result->length(),cs)) ? -1 : 0;
|
||||
}
|
||||
|
||||
bool Item_int::save_in_field(Field *field)
|
||||
int Item_int::save_in_field(Field *field)
|
||||
{
|
||||
longlong nr=val_int();
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
field->store(nr);
|
||||
return 0;
|
||||
return (field->store(nr)) ? -1 : 0;
|
||||
}
|
||||
|
||||
bool Item_real::save_in_field(Field *field)
|
||||
int Item_real::save_in_field(Field *field)
|
||||
{
|
||||
double nr=val();
|
||||
if (null_value)
|
||||
return set_field_to_null(field);
|
||||
field->set_notnull();
|
||||
field->store(nr);
|
||||
return 0;
|
||||
return (field->store(nr)) ? -1 : 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -754,20 +749,21 @@ longlong Item_varbinary::val_int()
|
||||
}
|
||||
|
||||
|
||||
bool Item_varbinary::save_in_field(Field *field)
|
||||
int Item_varbinary::save_in_field(Field *field)
|
||||
{
|
||||
int error;
|
||||
CHARSET_INFO *cs=field->binary()?default_charset_info:((Field_str*)field)->charset();
|
||||
field->set_notnull();
|
||||
if (field->result_type() == STRING_RESULT)
|
||||
{
|
||||
field->store(str_value.ptr(),str_value.length(),cs);
|
||||
error=field->store(str_value.ptr(),str_value.length(),cs);
|
||||
}
|
||||
else
|
||||
{
|
||||
longlong nr=val_int();
|
||||
field->store(nr);
|
||||
error=field->store(nr);
|
||||
}
|
||||
return 0;
|
||||
return (error) ? -1 : 0;
|
||||
}
|
||||
|
||||
|
||||
|
20
sql/item.h
20
sql/item.h
@ -53,7 +53,7 @@ public:
|
||||
void set_name(char* str,uint length=0);
|
||||
void init_make_field(Send_field *tmp_field,enum enum_field_types type);
|
||||
virtual bool fix_fields(THD *, struct st_table_list *, Item **);
|
||||
virtual bool save_in_field(Field *field);
|
||||
virtual int save_in_field(Field *field);
|
||||
virtual void save_org_in_field(Field *field)
|
||||
{ (void) save_in_field(field); }
|
||||
virtual bool send(THD *thd, String *str);
|
||||
@ -124,7 +124,7 @@ public:
|
||||
bool send(THD *thd, String *str_arg) { return result_field->send(thd,str_arg); }
|
||||
void make_field(Send_field *field);
|
||||
bool fix_fields(THD *, struct st_table_list *, Item **);
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
void save_org_in_field(Field *field);
|
||||
table_map used_tables() const;
|
||||
enum Item_result result_type () const
|
||||
@ -149,7 +149,7 @@ public:
|
||||
longlong val_int();
|
||||
String *val_str(String *str);
|
||||
void make_field(Send_field *field);
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
enum Item_result result_type () const
|
||||
{ return STRING_RESULT; }
|
||||
bool send(THD *thd, String *str);
|
||||
@ -178,7 +178,7 @@ public:
|
||||
longlong val_int();
|
||||
String *val_str(String*);
|
||||
void make_field(Send_field *field);
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
void set_null();
|
||||
void set_int(longlong i);
|
||||
void set_double(float i);
|
||||
@ -215,7 +215,7 @@ public:
|
||||
double val() { return (double) value; }
|
||||
String *val_str(String*);
|
||||
void make_field(Send_field *field);
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
bool basic_const_item() const { return 1; }
|
||||
Item *new_item() { return new Item_int(name,value,max_length); }
|
||||
void print(String *str);
|
||||
@ -254,7 +254,7 @@ public:
|
||||
max_length=length;
|
||||
}
|
||||
Item_real(double value_par) :value(value_par) {}
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
enum Type type() const { return REAL_ITEM; }
|
||||
double val() { return value; }
|
||||
longlong val_int() { return (longlong) (value+(value > 0 ? 0.5 : -0.5));}
|
||||
@ -297,7 +297,7 @@ public:
|
||||
double val() { return atof(str_value.ptr()); }
|
||||
longlong val_int() { return strtoll(str_value.ptr(),(char**) 0,10); }
|
||||
String *val_str(String*) { return (String*) &str_value; }
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
void make_field(Send_field *field);
|
||||
enum Item_result result_type () const { return STRING_RESULT; }
|
||||
bool basic_const_item() const { return 1; }
|
||||
@ -334,7 +334,7 @@ public:
|
||||
double val() { return (double) Item_varbinary::val_int(); }
|
||||
longlong val_int();
|
||||
String *val_str(String*) { return &str_value; }
|
||||
bool save_in_field(Field *field);
|
||||
int save_in_field(Field *field);
|
||||
void make_field(Send_field *field);
|
||||
enum Item_result result_type () const { return INT_RESULT; }
|
||||
};
|
||||
@ -394,7 +394,7 @@ public:
|
||||
bool send(THD *thd, String *tmp) { return (*ref)->send(thd, tmp); }
|
||||
void make_field(Send_field *field) { (*ref)->make_field(field); }
|
||||
bool fix_fields(THD *, struct st_table_list *, Item **);
|
||||
bool save_in_field(Field *field) { return (*ref)->save_in_field(field); }
|
||||
int save_in_field(Field *field) { return (*ref)->save_in_field(field); }
|
||||
void save_org_in_field(Field *field) { (*ref)->save_org_in_field(field); }
|
||||
enum Item_result result_type () const { return (*ref)->result_type(); }
|
||||
table_map used_tables() const { return (*ref)->used_tables(); }
|
||||
@ -413,7 +413,7 @@ class Item_int_with_ref :public Item_int
|
||||
public:
|
||||
Item_int_with_ref(longlong i, Item *ref_arg) :Item_int(i), ref(ref_arg)
|
||||
{}
|
||||
bool save_in_field(Field *field)
|
||||
int save_in_field(Field *field)
|
||||
{
|
||||
return ref->save_in_field(field);
|
||||
}
|
||||
|
@ -43,7 +43,8 @@ static bool convert_constant_item(Field *field, Item **item)
|
||||
{
|
||||
if ((*item)->const_item())
|
||||
{
|
||||
(*item)->save_in_field(field);
|
||||
if ((*item)->save_in_field(field))
|
||||
return 0;
|
||||
if (!((*item)->null_value))
|
||||
{
|
||||
Item *tmp=new Item_int_with_ref(field->val_int(), *item);
|
||||
|
@ -86,6 +86,11 @@ Item *create_func_cot(Item* a)
|
||||
new Item_func_tan(a));
|
||||
}
|
||||
|
||||
Item *create_func_crc32(Item* a)
|
||||
{
|
||||
return new Item_func_crc32(a);
|
||||
}
|
||||
|
||||
Item *create_func_date_format(Item* a,Item *b)
|
||||
{
|
||||
return new Item_func_date_format(a,b,0);
|
||||
|
@ -29,6 +29,7 @@ Item *create_func_connection_id(void);
|
||||
Item *create_func_conv(Item* a, Item *b, Item *c);
|
||||
Item *create_func_cos(Item* a);
|
||||
Item *create_func_cot(Item* a);
|
||||
Item *create_func_crc32(Item* a);
|
||||
Item *create_func_date_format(Item* a,Item *b);
|
||||
Item *create_func_dayname(Item* a);
|
||||
Item *create_func_dayofmonth(Item* a);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <hash.h>
|
||||
#include <time.h>
|
||||
#include <ft_global.h>
|
||||
#include <zlib.h>
|
||||
#include "slave.h" // for wait_for_master_pos
|
||||
#include "gstream.h"
|
||||
|
||||
@ -801,6 +802,18 @@ longlong Item_func_min_max::val_int()
|
||||
return value;
|
||||
}
|
||||
|
||||
longlong Item_func_crc32::val_int()
|
||||
{
|
||||
String *res=args[0]->val_str(&value);
|
||||
if (!res)
|
||||
{
|
||||
null_value=1;
|
||||
return 0; /* purecov: inspected */
|
||||
}
|
||||
null_value=0;
|
||||
return (longlong) crc32(0L, (Bytef*)res->ptr(), res->length());
|
||||
}
|
||||
|
||||
|
||||
longlong Item_func_length::val_int()
|
||||
{
|
||||
|
@ -518,6 +518,16 @@ public:
|
||||
const char *func_name() const { return "greatest"; }
|
||||
};
|
||||
|
||||
class Item_func_crc32 :public Item_int_func
|
||||
{
|
||||
String value;
|
||||
public:
|
||||
Item_func_crc32(Item *a) :Item_int_func(a) {}
|
||||
longlong val_int();
|
||||
const char *func_name() const { return "crc32"; }
|
||||
void fix_length_and_dec() { max_length=10; }
|
||||
};
|
||||
|
||||
|
||||
class Item_func_length :public Item_int_func
|
||||
{
|
||||
|
@ -1848,9 +1848,11 @@ outp:
|
||||
void Item_func_conv_charset::fix_length_and_dec()
|
||||
{
|
||||
max_length = args[0]->max_length*(conv_charset->mbmaxlen?conv_charset->mbmaxlen:1);
|
||||
str_value.set_charset(conv_charset);
|
||||
}
|
||||
|
||||
|
||||
|
||||
String *Item_func_conv_charset3::val_str(String *str)
|
||||
{
|
||||
my_wc_t wc;
|
||||
@ -1918,7 +1920,7 @@ outp:
|
||||
}
|
||||
|
||||
|
||||
bool Item_func_conv_charset::fix_fields(THD *thd,struct st_table_list *tables)
|
||||
bool Item_func_conv_charset::fix_fields(THD *thd,struct st_table_list *tables, Item **ref)
|
||||
{
|
||||
char buff[STACK_BUFF_ALLOC]; // Max argument in function
|
||||
binary=0;
|
||||
@ -1943,6 +1945,53 @@ void Item_func_conv_charset3::fix_length_and_dec()
|
||||
max_length = args[0]->max_length;
|
||||
}
|
||||
|
||||
String *Item_func_set_collation::val_str(String *str)
|
||||
{
|
||||
str=args[0]->val_str(str);
|
||||
null_value=args[0]->null_value;
|
||||
str->set_charset(set_collation);
|
||||
return str;
|
||||
}
|
||||
|
||||
bool Item_func_set_collation::fix_fields(THD *thd,struct st_table_list *tables, Item **ref)
|
||||
{
|
||||
char buff[STACK_BUFF_ALLOC]; // Max argument in function
|
||||
binary=0;
|
||||
used_tables_cache=0;
|
||||
const_item_cache=1;
|
||||
|
||||
if (thd && check_stack_overrun(thd,buff))
|
||||
return 0; // Fatal error if flag is set!
|
||||
if (args[0]->fix_fields(thd, tables, args))
|
||||
return 1;
|
||||
maybe_null=args[0]->maybe_null;
|
||||
binary=args[0]->binary;
|
||||
const_item_cache=args[0]->const_item();
|
||||
str_value.set_charset(set_collation);
|
||||
fix_length_and_dec();
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool Item_func_set_collation::eq(const Item *item, bool binary_cmp) const
|
||||
{
|
||||
/* Assume we don't have rtti */
|
||||
if (this == item)
|
||||
return 1;
|
||||
if (item->type() != FUNC_ITEM)
|
||||
return 0;
|
||||
Item_func *item_func=(Item_func*) item;
|
||||
if (arg_count != item_func->arg_count ||
|
||||
func_name() != item_func->func_name())
|
||||
return 0;
|
||||
Item_func_set_collation *item_func_sc=(Item_func_set_collation*) item;
|
||||
if (set_collation != item_func_sc->set_collation)
|
||||
return 0;
|
||||
for (uint i=0; i < arg_count ; i++)
|
||||
if (!args[i]->eq(item_func_sc->args[i], binary_cmp))
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
String *Item_func_charset::val_str(String *str)
|
||||
{
|
||||
|
@ -472,7 +472,7 @@ class Item_func_export_set: public Item_str_func
|
||||
const char *func_name() const { return "export_set"; }
|
||||
};
|
||||
|
||||
class Item_func_inet_ntoa : public Item_str_func
|
||||
class Item_func_inet_ntoa : public Item_str_func
|
||||
{
|
||||
public:
|
||||
Item_func_inet_ntoa(Item *a) :Item_str_func(a)
|
||||
@ -488,15 +488,30 @@ class Item_func_conv_charset :public Item_str_func
|
||||
CHARSET_INFO *conv_charset;
|
||||
public:
|
||||
Item_func_conv_charset(Item *a, CHARSET_INFO *cs) :Item_str_func(a)
|
||||
{
|
||||
conv_charset=cs;
|
||||
}
|
||||
bool fix_fields(THD *thd,struct st_table_list *tables);
|
||||
{ conv_charset=cs; }
|
||||
bool fix_fields(THD *thd,struct st_table_list *tables,Item **ref);
|
||||
String *val_str(String *);
|
||||
void fix_length_and_dec();
|
||||
const char *func_name() const { return "conv_charset"; }
|
||||
};
|
||||
|
||||
class Item_func_set_collation :public Item_str_func
|
||||
{
|
||||
CHARSET_INFO *set_collation;
|
||||
public:
|
||||
Item_func_set_collation(Item *a, CHARSET_INFO *cs) :Item_str_func(a)
|
||||
{ set_collation=cs; }
|
||||
bool fix_fields(THD *thd,struct st_table_list *tables, Item **ref);
|
||||
String *val_str(String *);
|
||||
void fix_length_and_dec()
|
||||
{
|
||||
max_length = args[0]->max_length;
|
||||
str_value.set_charset(set_collation);
|
||||
}
|
||||
bool eq(const Item *item, bool binary_cmp) const;
|
||||
const char *func_name() const { return "set_collation"; }
|
||||
};
|
||||
|
||||
class Item_func_conv_charset3 :public Item_str_func
|
||||
{
|
||||
public:
|
||||
|
@ -410,7 +410,7 @@ String *Item_date::val_str(String *str)
|
||||
}
|
||||
|
||||
|
||||
bool Item_date::save_in_field(Field *field)
|
||||
int Item_date::save_in_field(Field *field)
|
||||
{
|
||||
TIME ltime;
|
||||
timestamp_type t_type=TIMESTAMP_FULL;
|
||||
@ -525,7 +525,7 @@ bool Item_func_now::get_date(TIME *res,
|
||||
}
|
||||
|
||||
|
||||
bool Item_func_now::save_in_field(Field *to)
|
||||
int Item_func_now::save_in_field(Field *to)
|
||||
{
|
||||
to->set_notnull();
|
||||
to->store_time(<ime,TIMESTAMP_FULL);
|
||||
|
@ -228,7 +228,7 @@ public:
|
||||
double val() { return (double) val_int(); }
|
||||
const char *func_name() const { return "date"; }
|
||||
void fix_length_and_dec() { decimals=0; max_length=10; }
|
||||
bool save_in_field(Field *to);
|
||||
int save_in_field(Field *to);
|
||||
void make_field(Send_field *tmp_field)
|
||||
{
|
||||
init_make_field(tmp_field,FIELD_TYPE_DATE);
|
||||
@ -311,7 +311,7 @@ public:
|
||||
enum Item_result result_type () const { return STRING_RESULT; }
|
||||
double val() { return (double) value; }
|
||||
longlong val_int() { return value; }
|
||||
bool save_in_field(Field *to);
|
||||
int save_in_field(Field *to);
|
||||
String *val_str(String *str)
|
||||
{ str_value.set(buff,buff_length,default_charset_info); return &str_value; }
|
||||
const char *func_name() const { return "now"; }
|
||||
|
@ -89,6 +89,7 @@ static SYMBOL symbols[] = {
|
||||
{ "CHECKSUM", SYM(CHECKSUM_SYM),0,0},
|
||||
{ "CIPHER", SYM(CIPHER_SYM),0,0},
|
||||
{ "CLOSE", SYM(CLOSE_SYM),0,0},
|
||||
{ "COLLATE", SYM(COLLATE_SYM),0,0},
|
||||
{ "COLUMN", SYM(COLUMN_SYM),0,0},
|
||||
{ "COLUMNS", SYM(COLUMNS),0,0},
|
||||
{ "COMMENT", SYM(COMMENT_SYM),0,0},
|
||||
@ -430,6 +431,7 @@ static SYMBOL sql_functions[] = {
|
||||
{ "COUNT", SYM(COUNT_SYM),0,0},
|
||||
{ "COS", SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_cos)},
|
||||
{ "COT", SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_cot)},
|
||||
{ "CRC32", SYM(FUNC_ARG1),0,CREATE_FUNC(create_func_crc32)},
|
||||
{ "CROSSES", SYM(FUNC_ARG2),0,CREATE_FUNC(create_func_crosses)},
|
||||
{ "CURDATE", SYM(CURDATE),0,0},
|
||||
{ "CURTIME", SYM(CURTIME),0,0},
|
||||
|
@ -1028,7 +1028,7 @@ get_mm_leaf(PARAM *param, Field *field, KEY_PART *key_part,
|
||||
field->cmp_type() != value->result_type())
|
||||
DBUG_RETURN(0);
|
||||
|
||||
if (value->save_in_field(field))
|
||||
if (value->save_in_field(field) > 0)
|
||||
{
|
||||
if (type == Item_func::EQUAL_FUNC)
|
||||
{
|
||||
|
@ -40,3 +40,10 @@ armscii8 32
|
||||
utf8 33
|
||||
win1250ch 34
|
||||
ucs2 35
|
||||
cp866 36
|
||||
keybcs2 37
|
||||
macce 38
|
||||
macroman 39
|
||||
pclatin2 40
|
||||
latvian 41
|
||||
latvian1 42
|
||||
|
91
sql/share/charsets/cp866.conf
Normal file
91
sql/share/charsets/cp866.conf
Normal file
@ -0,0 +1,91 @@
|
||||
# ctype array (must be 257 elements)
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||
01 02 01 02 01 02 01 02 00 00 00 00 00 00 00 48
|
||||
|
||||
# to_lower array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
A0 A1 A2 A3 A4 A5 86 87 88 89 AA AB AC AD AE AF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
A0 A1 A2 A3 A4 A5 86 87 88 89 AA AB AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
F1 F1 F3 F3 F5 F5 F7 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# to_upper array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
|
||||
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
F0 F0 F2 F2 F4 F4 F6 F6 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# sort_order array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 56 57 58 59 5A 5B 5C 5E 5F 62
|
||||
67 68 69 6C 71 74 75 76 77 78 7B B0 B1 B2 B3 B4
|
||||
B5 41 42 43 44 45 56 57 58 59 5A 5B 5C 5E 5F 62
|
||||
67 68 69 6C 71 74 75 76 77 78 7B B6 B7 B8 B9 BA
|
||||
80 81 82 83 84 85 88 89 8A 8C 8D 8E 8F 90 91 92
|
||||
93 94 95 96 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3
|
||||
80 81 82 83 84 85 88 89 8A 8C 8D 8E 8F 90 91 92
|
||||
BB BD BE C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC
|
||||
CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD
|
||||
DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 F3 F4 F5 F6 F7
|
||||
93 94 95 96 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3
|
||||
86 86 87 87 8B 8B 97 97 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# Unicode mappping (must be 256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F
|
||||
0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F
|
||||
0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043A 043B 043C 043D 043E 043F
|
||||
2591 2592 2593 2502 2524 2561 2562 2556 2555 2563 2551 2557 255D 255C 255B 2510
|
||||
2514 2534 252C 251C 2500 253C 255E 255F 255A 2554 2569 2566 2560 2550 256C 2567
|
||||
2568 2564 2565 2559 2558 2552 2553 256B 256A 2518 250C 2588 2584 258C 2590 2580
|
||||
0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F
|
||||
0401 0451 0404 0454 0407 0457 040E 045E 00B0 2219 00B7 221A 207F 00B2 25A0 00A0
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Configuration file for the dos character set
|
||||
# Configuration file for the dos (aka cp437 DOSLatinUS) character set
|
||||
|
||||
# ctype array (must have 257 elements)
|
||||
00
|
||||
|
91
sql/share/charsets/keybcs2.conf
Normal file
91
sql/share/charsets/keybcs2.conf
Normal file
@ -0,0 +1,91 @@
|
||||
# ctype array (must be 257 elements)
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00
|
||||
01 02 82 02 02 01 01 02 82 81 01 01 02 02 01 01
|
||||
81 02 01 02 02 01 02 01 02 01 01 01 01 01 01 02
|
||||
02 02 02 02 02 01 01 01 02 02 02 01 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
02 02 01 02 01 02 00 02 01 01 01 02 00 02 02 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48
|
||||
|
||||
# to_lower array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
87 81 82 83 84 83 86 87 88 88 8D A1 8C 8D 84 A0
|
||||
82 91 91 93 94 A2 96 A3 98 94 81 9B 8C 98 A9 9F
|
||||
A0 A1 A2 A3 A4 A4 96 93 9B A9 AA AA AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 ED E9 EA EB EC ED EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# to_upper array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 68 59 5A 7B 7C 7D 7E 7F
|
||||
87 9A 90 85 8E 85 86 80 89 89 8A 8B 9C 8A 8E 8F
|
||||
90 92 92 A7 99 95 A6 97 9D 99 9A A8 9C 9D 9E 9F
|
||||
8F 8B 95 97 A5 A5 A6 A7 A8 9E AB AB AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC E8 EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# sort_order array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 44 45 47 49 50 51 52 53 54 55 56 57 58 5A
|
||||
5E 5F 60 63 66 68 6C 6D 6E 6F 72 90 91 92 93 94
|
||||
95 41 44 45 47 49 50 51 52 53 54 55 56 57 58 5A
|
||||
5E 5F 60 63 66 68 6C 6D 6E 6F 72 96 97 98 99 9A
|
||||
45 68 49 47 41 47 66 45 49 49 56 53 56 56 41 41
|
||||
49 72 72 5A 5A 5A 68 68 6F 5A 68 63 56 6F 60 66
|
||||
41 53 5A 68 58 58 68 5A 63 60 60 60 A0 A1 A2 A3
|
||||
A4 A5 A6 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC
|
||||
BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC
|
||||
CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC
|
||||
80 65 83 87 88 89 DD 8A 85 8B 84 81 DE 85 82 DF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# Unicode mappping (must be 256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
010C 00FC 00E9 010F 00E4 010E 0164 010D 011B 011A 0139 00CD 013E 013A 00C4 00C1
|
||||
00C9 017E 017D 00F4 00F6 00D3 016F 00DA 00FD 00D6 00DC 0160 013D 00DD 0158 0165
|
||||
00E1 00ED 00F3 00FA 0148 0147 016E 00D4 0161 0159 0155 0154 00BC 00A1 00AB 00BB
|
||||
2591 2592 2593 2502 2524 2561 2562 2556 2555 2563 2551 2557 255D 255C 255B 2510
|
||||
2514 2534 252C 251C 2500 253C 255E 255F 255A 2554 2569 2566 2560 2550 256C 2567
|
||||
2568 2564 2565 2559 2558 2552 2553 256B 256A 2518 250C 2588 2584 258C 2590 2580
|
||||
03B1 00DF 0393 03C0 03A3 03C3 00B5 03C4 03A6 0398 03A9 03B4 221E 03C6 03B5 2229
|
||||
2261 00B1 2265 2264 2320 2321 00F7 2248 00B0 2219 00B7 221A 207F 00B2 25A0 00A0
|
||||
|
95
sql/share/charsets/latvian.conf
Normal file
95
sql/share/charsets/latvian.conf
Normal file
@ -0,0 +1,95 @@
|
||||
# Configuration file for the latvian character set.
|
||||
# Created for case-sensitive record search
|
||||
# Created accord with windows-1257 (iso-8859-4) codepage
|
||||
# Created by Andis Grasis & Rihards Grasis e-mail:andis@cata.lv
|
||||
|
||||
# The ctype array must have 257 elements.
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20
|
||||
01 20 10 20 10 10 00 00 20 10 20 10 20 10 10 10
|
||||
20 10 10 10 10 10 10 10 20 00 20 10 20 10 10 20
|
||||
48 20 10 10 10 20 10 10 10 10 01 10 10 10 10 01
|
||||
10 10 10 10 10 10 10 10 10 10 02 10 10 10 10 02
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 10
|
||||
|
||||
# The to_lower array must have 256 elements.
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 B8 A9 BA AB AC AD AE BF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# The to_upper array must have 256 elements.
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
|
||||
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 A8 B9 AA BB BC BD BE AF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF
|
||||
|
||||
# The sort_order array must have 256 elements.
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
30 32 33 34 35 36 37 2B 38 39 3A 5C 3B 2C 3C 3D
|
||||
76 7A 7C 7E 80 81 82 83 84 85 3E 3F 5D 5E 5F 40
|
||||
41 86 92 94 9A 9C A6 A8 AC AE B4 B6 BA C0 C2 C8
|
||||
D4 D6 D8 DC E3 E6 EE F0 F2 F4 F6 42 43 44 45 46
|
||||
47 87 93 95 9B 9D A7 A9 AD AF B5 B7 BB C1 C3 C9
|
||||
D5 D7 D9 DD E4 E7 EF F1 F3 F5 F7 48 49 4A 4B 20
|
||||
75 21 56 22 59 73 70 71 23 74 24 5A 25 4D 51 50
|
||||
26 54 55 57 58 72 2E 2F 27 E5 28 5B 29 4E 53 2A
|
||||
31 FE 65 66 67 FF 4C 68 D3 69 DA 61 6A 2D 6B 90
|
||||
6C 60 7D 7F 4F 6D 6E 6F D2 7B DB 62 77 78 79 91
|
||||
8E B2 8A 96 88 8C A4 A2 98 9E F8 A0 AA B8 B0 BE
|
||||
E1 C4 C6 CA CE D0 CC 63 EC BC DE EA E8 FA FC E0
|
||||
8F B3 8B 97 89 8D A5 A3 99 9F F9 A1 AB B9 B1 BF
|
||||
E2 C5 C7 CB CF D1 CD 64 ED BD DF EB E9 FB FD 52
|
||||
|
||||
# Unicode mapping (256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F
|
||||
0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F
|
||||
00A0 201D 00A2 00A3 00A4 201E 00A6 00A7 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6
|
||||
00B0 00B1 00B2 00B3 201C 00B5 00B6 00B7 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6
|
||||
0104 012E 0100 0106 00C4 00C5 0118 0112 010C 00C9 0179 0116 0122 0136 012A 013B
|
||||
0160 0143 0145 00D3 014C 00D5 00D6 00D7 0172 0141 015A 016A 00DC 017B 017D 00DF
|
||||
0105 012F 0101 0107 00E4 00E5 0119 0113 010D 00E9 017A 0117 0123 0137 012B 013C
|
||||
0161 0144 0146 00F3 014D 00F5 00F6 00F7 0173 0142 015B 016B 00FC 017C 017E 2019
|
94
sql/share/charsets/latvian1.conf
Normal file
94
sql/share/charsets/latvian1.conf
Normal file
@ -0,0 +1,94 @@
|
||||
# Configuration file for the latvian character set.
|
||||
# Created for case-insensitive record search
|
||||
# Created by Andis & Rihards
|
||||
|
||||
# The ctype array must have 257 elements.
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20
|
||||
00 00 10 00 10 10 00 00 00 00 00 10 00 10 10 10
|
||||
00 10 10 10 10 10 10 10 00 00 00 10 00 10 10 00
|
||||
48 00 10 10 10 00 10 10 10 10 01 10 10 10 10 10
|
||||
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 10
|
||||
|
||||
# The to_lower array must have 256 elements.
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 B8 A9 BA AB AC AD AE BF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# The to_upper array must have 256 elements.
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
|
||||
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 A8 B9 AA BB BC BD BE AF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF
|
||||
|
||||
# The sort_order array must have 256 elements.
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
30 32 33 34 35 36 37 2B 38 39 3A 5C 3B 2C 3C 3D
|
||||
76 7A 7C 7E 80 81 82 83 84 85 3E 3F 5D 5E 5F 40
|
||||
41 86 92 94 9A 9C A6 A8 AC AE B4 B6 BA C0 C2 C8
|
||||
D4 D6 D8 DC E3 E6 EE F0 F2 F4 F6 42 43 44 45 46
|
||||
47 86 92 94 9A 9C A6 A8 AC AE B4 B6 BA C0 C2 C8
|
||||
D4 D6 D8 DC E2 E6 EE F0 F2 F4 F6 48 49 4A 4B 20
|
||||
75 21 56 22 59 73 70 71 23 74 24 5A 25 4D 51 50
|
||||
26 54 55 57 58 72 2E 2F 27 E5 28 5B 29 4E 53 2A
|
||||
31 FE 65 66 67 FF 4C 68 2D 69 DA 61 6A 2D 6B 90
|
||||
6C 60 7D 7F 4F 6D 6E 6F D3 7B DB 62 77 78 79 90
|
||||
8E B2 8A 96 88 8C A4 A2 98 9E F8 A0 AA B8 B0 BE
|
||||
E1 C4 C6 CA CE D0 CC 63 EC BC DE EA E8 FA FC E0
|
||||
8E B2 8A 96 88 8C A4 A2 98 9E F8 A0 AA B8 B0 BE
|
||||
E1 C4 C6 CA CE D0 CC 64 EC BC DE EA E8 FA FC 52
|
||||
|
||||
# Unicode mapping (256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F
|
||||
0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F
|
||||
00A0 201D 00A2 00A3 00A4 201E 00A6 00A7 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6
|
||||
00B0 00B1 00B2 00B3 201C 00B5 00B6 00B7 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6
|
||||
0104 012E 0100 0106 00C4 00C5 0118 0112 010C 00C9 0179 0116 0122 0136 012A 013B
|
||||
0160 0143 0145 00D3 014C 00D5 00D6 00D7 0172 0141 015A 016A 00DC 017B 017D 00DF
|
||||
0105 012F 0101 0107 00E4 00E5 0119 0113 010D 00E9 017A 0117 0123 0137 012B 013C
|
||||
0161 0144 0146 00F3 014D 00F5 00F6 00F7 0173 0142 015B 016B 00FC 017C 017E 2019
|
91
sql/share/charsets/macce.conf
Normal file
91
sql/share/charsets/macce.conf
Normal file
@ -0,0 +1,91 @@
|
||||
# ctype array (must be 257 elements)
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00
|
||||
01 01 02 01 01 01 01 02 02 01 02 02 01 02 02 01
|
||||
02 01 02 02 01 02 01 02 02 02 02 02 02 01 02 02
|
||||
00 00 01 00 00 00 00 02 00 00 00 02 00 00 02 01
|
||||
02 01 00 00 02 01 00 00 02 01 02 01 02 01 02 01
|
||||
02 01 00 00 02 01 00 00 00 00 00 02 01 01 02 01
|
||||
00 00 00 00 00 00 00 00 02 01 02 01 00 00 02 01
|
||||
02 01 00 00 02 01 02 01 01 02 01 01 02 01 01 01
|
||||
02 01 01 02 01 02 01 02 01 02 02 01 01 02 01 00
|
||||
|
||||
# to_lower array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 54 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 54 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
8A 82 82 8E 88 9A 9F 87 88 8B 8A 8B 8D 8D 8E 90
|
||||
90 93 92 93 95 95 98 97 98 99 9A 9B 9C 9E 9E 9F
|
||||
A0 A1 AB A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE B0
|
||||
B0 B4 B2 B3 B4 FA B6 B7 B8 BA BA BC BC BE BE C0
|
||||
C0 C4 C2 C3 C4 CB C6 C7 C8 C9 CA CB CE 9B CE D8
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 DA DA DE DC DD DE E0
|
||||
E0 E4 E2 E3 E4 E6 E6 87 E9 E9 92 EC EC F0 97 99
|
||||
F0 F3 9C F3 F5 F5 F7 F7 F9 F9 FA FD B8 FD AE FF
|
||||
|
||||
# to_upper array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 74 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 74 55 56 57 58 59 5A 7B 7C 7D 7E 7F
|
||||
80 81 81 83 84 85 86 E7 84 89 80 89 8C 8C 83 8F
|
||||
8F 91 EA 91 94 94 96 EE 96 EF 85 CD F2 9D 9D 86
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA A2 AC AD FE AF
|
||||
AF B1 B2 B3 B1 B5 B6 B7 FC B9 B9 BB BB BD BD BF
|
||||
BF C1 C2 C3 C1 C5 C6 C7 C8 C9 CA C5 CC CD CC CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 CF D9 D9 DB DC DD DB DF
|
||||
DF E1 E2 E3 E1 E5 E5 E7 E8 E8 EA EB EB ED EE EF
|
||||
ED F1 F2 F1 F4 F4 F6 F6 F8 F8 B5 FB FC FB FE FF
|
||||
|
||||
# sort_order array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 46 47 4A 4C 52 53 55 56 5A 5B 5D 62 62 67
|
||||
6F 70 71 75 79 81 88 89 8A 8B 8D 90 91 92 93 94
|
||||
95 41 46 47 4A 4C 52 53 55 56 5A 5B 5D 62 62 67
|
||||
6F 70 71 75 79 81 88 89 8A 8B 8D 96 97 98 99 9A
|
||||
41 41 41 4C 41 67 81 41 41 47 41 47 47 47 4C 8D
|
||||
8D 4A 56 4A 4C 4C 4C 67 4C 67 67 67 81 4C 4C 81
|
||||
A0 A1 4C A3 A4 A5 A6 75 A8 A9 AA 4C AC AD 53 56
|
||||
56 56 B2 B3 56 5B B6 B7 5D 5D 5D 5D 5D 5D 5D 62
|
||||
62 62 C2 C3 62 62 C6 C7 C8 C9 CA 62 67 67 67 67
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 67 71 71 71 DC DD 71 71
|
||||
71 75 E2 E3 75 75 75 41 79 79 56 8D 8D 81 67 67
|
||||
81 81 81 81 81 81 81 81 8B 8B 5B 8D 5D 8D 53 FF
|
||||
|
||||
# Unicode mappping (must be 256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
00C4 0100 0101 00C9 0104 00D6 00DC 00E1 0105 010C 00E4 010D 0106 0107 00E9 0179
|
||||
017A 010E 00ED 010F 0112 0113 0116 00F3 0117 00F4 00F6 00F5 00FA 011A 011B 00FC
|
||||
2020 00B0 0118 00A3 00A7 2022 00B6 00DF 00AE 00A9 2122 0119 00A8 2260 0123 012E
|
||||
012F 012A 2264 2265 012B 0136 2202 2211 0142 013B 013C 013D 013E 0139 013A 0145
|
||||
0146 0143 00AC 221A 0144 0147 2206 00AB 00BB 2026 00A0 0148 0150 00D5 0151 014C
|
||||
2013 2014 201C 201D 2018 2019 00F7 25CA 014D 0154 0155 0158 2039 203A 0159 0156
|
||||
0157 0160 201A 201E 0161 015A 015B 00C1 0164 0165 00CD 017D 017E 016A 00D3 00D4
|
||||
016B 016E 00DA 016F 0170 0171 0172 0173 00DD 00FD 0137 017B 0141 017C 0122 02C7
|
||||
|
91
sql/share/charsets/macroman.conf
Normal file
91
sql/share/charsets/macroman.conf
Normal file
@ -0,0 +1,91 @@
|
||||
# ctype array (must be 257 elements)
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 10
|
||||
20 01 01 01 01 01 01 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||
00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 01
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02
|
||||
00 00 00 00 02 00 00 00 00 00 00 20 01 01 00 00
|
||||
00 00 00 00 00 00 00 00 02 01 00 00 00 00 00 00
|
||||
00 00 00 00 00 20 01 01 01 01 01 01 01 01 01 01
|
||||
00 01 01 01 01 02 00 00 00 00 00 00 00 00 00 00
|
||||
|
||||
# to_lower array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
8A 8C 8D 8E 96 9A 9F 87 88 89 8A 8B 8C 8D 8E 8F
|
||||
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD BE BF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA 88 8B 9B CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D8 D8 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E4 89 90 87 91 8F 92 94 95 93 97 99
|
||||
F0 98 9C 9E 9D F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# to_upper array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
|
||||
80 81 82 83 84 85 86 E7 CB E5 80 CC 81 82 83 E9
|
||||
E6 E8 EA ED EB EC 84 EE F1 EF 85 CD F2 F4 F3 86
|
||||
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD AE AF
|
||||
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D1 D2 D3 D4 D5 D6 D7 D9 D9 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# sort_order array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 49 50 52 53 57 59 60 61 67 68 69 70 71 72
|
||||
79 80 81 82 84 85 90 91 92 93 95 A0 A1 A2 A3 A4
|
||||
A5 41 49 50 52 53 57 59 60 61 67 68 69 70 71 72
|
||||
79 80 81 82 84 85 90 91 92 93 95 A6 A7 A8 A9 AA
|
||||
41 41 50 53 71 72 85 41 41 41 41 41 41 50 53 53
|
||||
53 53 61 61 61 61 71 72 72 72 72 72 85 85 85 85
|
||||
AB AC AD AE AF B0 B1 82 B2 B3 B4 B5 B6 B7 48 72
|
||||
B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 48 72
|
||||
C6 C7 C8 C9 57 CA CB CC CD CE CF 41 41 72 D0 D1
|
||||
D2 D3 D4 D5 D6 D7 D8 D9 93 93 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E4 41 53 41 53 53 61 61 61 61 72 72
|
||||
F0 72 85 85 85 61 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# Unicode mappping (must be 256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
00C4 00C5 00C7 00C9 00D1 00D6 00DC 00E1 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8
|
||||
00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC
|
||||
2020 00B0 00A2 00A3 00A7 2022 00B6 00DF 00AE 00A9 2122 00B4 00A8 2260 00C6 00D8
|
||||
221E 00B1 2264 2265 00A5 00B5 2202 2211 220F 03C0 222B 00AA 00BA 03A9 00E6 00F8
|
||||
00BF 00A1 00AC 221A 0192 2248 2206 00AB 00BB 2026 00A0 00C0 00C3 00D5 0152 0153
|
||||
2013 2014 201C 201D 2018 2019 00F7 25CA 00FF 0178 2044 20AC 2039 203A FB01 FB02
|
||||
2021 00B7 201A 201E 2030 00C2 00CA 00C1 00CB 00C8 00CD 00CE 00CF 00CC 00D3 00D4
|
||||
F8FF 00D2 00DA 00DB 00D9 0131 02C6 02DC 00AF 02D8 02D9 02DA 00B8 02DD 02DB 02C7
|
||||
|
91
sql/share/charsets/pclatin2.conf
Normal file
91
sql/share/charsets/pclatin2.conf
Normal file
@ -0,0 +1,91 @@
|
||||
# ctype array (must be 257 elements)
|
||||
00
|
||||
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
|
||||
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
|
||||
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
|
||||
84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10
|
||||
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
|
||||
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
|
||||
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00
|
||||
01 02 02 02 02 02 02 02 02 02 01 02 02 01 01 01
|
||||
01 01 02 02 02 01 02 01 02 01 01 01 02 01 00 02
|
||||
02 02 02 02 01 02 01 02 01 02 00 02 01 01 00 00
|
||||
00 00 00 00 00 01 01 01 02 00 00 00 00 01 02 00
|
||||
00 00 00 00 00 00 01 02 00 00 00 00 00 00 00 00
|
||||
02 01 01 01 02 01 01 01 02 00 00 00 00 01 01 00
|
||||
01 02 01 01 02 02 01 02 01 01 02 01 02 01 02 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 02 01 02 00 48
|
||||
|
||||
# to_lower array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F
|
||||
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
|
||||
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
|
||||
87 81 82 83 84 85 86 87 88 89 8B 8B 8C AB 84 86
|
||||
82 92 92 93 94 96 96 98 98 94 81 9C 9C 88 9E 9F
|
||||
A0 A1 A2 A3 A5 A5 A7 A7 A9 A9 AA AB 9F B8 AE AF
|
||||
B0 B1 B2 B3 B4 A0 83 D8 B8 B9 BA BB BC BE BE BF
|
||||
C0 C1 C2 C3 C4 C5 C7 C7 C8 C9 CA CB CC CD CE CF
|
||||
D0 D0 D4 89 D4 E5 A1 8C D8 D9 DA DB DC EE 85 DF
|
||||
A2 E1 93 E4 E4 E5 E7 E7 EA A3 E8 FB EC EC EE EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||
|
||||
# to_upper array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
|
||||
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
|
||||
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
|
||||
80 9A 90 B6 8E DE 8F 80 9D D3 8A 8A D7 8D 8E 8F
|
||||
90 91 91 E2 99 95 95 97 97 99 9A 9B 9B 9D 9E AC
|
||||
B5 D6 E0 E9 A4 A4 A6 A6 A8 A8 AA 8D AC AD AE AF
|
||||
B0 B1 B2 B3 B4 B5 B6 B7 AD B9 BA BB BC BE BD BF
|
||||
C0 C1 C2 C3 C4 C5 C6 C6 C8 C9 CA CB CC CD CE CF
|
||||
D1 D1 D2 D3 D2 D5 D6 D7 B7 D9 DA DB DC DD DE DF
|
||||
E0 E1 E2 E3 E3 D5 E6 E6 E8 E9 E8 EB ED ED DD EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA EB FC FC FE FF
|
||||
|
||||
# sort_order array (must be 256 elements)
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
|
||||
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
|
||||
40 41 47 48 4C 4F 54 55 56 57 5A 5B 5C 5E 5F 62
|
||||
67 68 69 6C 71 74 75 76 77 78 7B 90 91 92 93 94
|
||||
95 41 47 48 4C 4F 54 55 56 57 5A 5B 5C 5E 5F 62
|
||||
67 68 69 6C 71 74 75 76 77 78 7B 96 97 98 99 9A
|
||||
48 74 4F 41 41 74 48 48 5C 4F 62 62 57 7B 41 48
|
||||
4F 5C 5C 62 62 5C 5C 6C 6C 62 74 71 71 5C 9E 48
|
||||
41 57 62 74 41 41 7B 7B 4F 4F AA 7B 48 6C AE AF
|
||||
B0 B1 B2 B3 B4 41 41 4F 6C B5 BA BB BC 7B 7B BF
|
||||
C0 C1 C2 C3 C4 C5 41 41 C8 C9 CA CB CC CD CE CF
|
||||
4C 4C 4C 4F 4C 60 57 57 4F D9 DA DB DC 71 74 DF
|
||||
62 70 62 60 60 60 6C 6C 69 74 69 74 78 78 71 EF
|
||||
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA 74 69 69 FE FF
|
||||
|
||||
# Unicode mappping (must be 256 elements)
|
||||
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
|
||||
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
|
||||
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
|
||||
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F
|
||||
0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F
|
||||
0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F
|
||||
0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F
|
||||
0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F
|
||||
00C7 00FC 00E9 00E2 00E4 016F 0107 00E7 0142 00EB 0150 0151 00EE 0179 00C4 0106
|
||||
00C9 0139 013A 00F4 00F6 013D 013E 015A 015B 00D6 00DC 0164 0165 0141 00D7 010D
|
||||
00E1 00ED 00F3 00FA 0104 0105 017D 017E 0118 0119 00AC 017A 010C 015F 00AB 00BB
|
||||
2591 2592 2593 2502 2524 00C1 00C2 011A 015E 2563 2551 2557 255D 017B 017C 2510
|
||||
2514 2534 252C 251C 2500 253C 0102 0103 255A 2554 2569 2566 2560 2550 256C 00A4
|
||||
0111 0110 010E 00CB 010F 0147 00CD 00CE 011B 2518 250C 2588 2584 0162 016E 2580
|
||||
00D3 00DF 00D4 0143 0144 0148 0160 0161 0154 00DA 0155 0170 00FD 00DD 0163 00B4
|
||||
00AD 02DD 02DB 02C7 02D8 00A7 00F7 00B8 00B0 00A8 02D9 0171 0158 0159 25A0 00A0
|
||||
|
@ -285,7 +285,7 @@ int GLineString::get_mbr(MBR *mbr) const
|
||||
return 1;
|
||||
for (; n_points>0; --n_points)
|
||||
{
|
||||
mbr->add_xy((double *)data, (double *)(data + 8));
|
||||
mbr->add_xy(data, data + 8);
|
||||
data += 8+8;
|
||||
}
|
||||
|
||||
@ -551,7 +551,7 @@ int GPolygon::get_mbr(MBR *mbr) const
|
||||
return 1;
|
||||
for (; n_points>0; --n_points)
|
||||
{
|
||||
mbr->add_xy((double *)data, (double *)(data + 8));
|
||||
mbr->add_xy(data, data + 8);
|
||||
data += 8+8;
|
||||
}
|
||||
}
|
||||
@ -838,8 +838,7 @@ int GMultiPoint::get_mbr(MBR *mbr) const
|
||||
return 1;
|
||||
for (; n_points>0; --n_points)
|
||||
{
|
||||
mbr->add_xy((double *)(data + WKB_HEADER_SIZE),
|
||||
(double *)(data + 8 + WKB_HEADER_SIZE));
|
||||
mbr->add_xy(data + WKB_HEADER_SIZE, data + 8 + WKB_HEADER_SIZE);
|
||||
data += (8+8+WKB_HEADER_SIZE);
|
||||
}
|
||||
return 0;
|
||||
@ -963,7 +962,7 @@ int GMultiLineString::get_mbr(MBR *mbr) const
|
||||
|
||||
for (; n_points>0; --n_points)
|
||||
{
|
||||
mbr->add_xy((double *)data, (double *)(data + 8));
|
||||
mbr->add_xy(data, data + 8);
|
||||
data += 8+8;
|
||||
}
|
||||
}
|
||||
@ -1156,7 +1155,7 @@ int GMultiPolygon::get_mbr(MBR *mbr) const
|
||||
|
||||
for (; n_points>0; --n_points)
|
||||
{
|
||||
mbr->add_xy((double *)data, (double *)(data + 8));
|
||||
mbr->add_xy(data, data + 8);
|
||||
data += 8+8;
|
||||
}
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ struct MBR
|
||||
}
|
||||
}
|
||||
|
||||
void add_xy(double *px, double *py)
|
||||
void add_xy(const char *px, const char *py)
|
||||
{ /* Not using "else" for proper one point MBR calculation */
|
||||
double x, y;
|
||||
float8get(x, px);
|
||||
|
@ -2115,7 +2115,7 @@ fill_record(List<Item> &fields,List<Item> &values)
|
||||
while ((field=(Item_field*) f++))
|
||||
{
|
||||
value=v++;
|
||||
if (value->save_in_field(field->field))
|
||||
if (value->save_in_field(field->field) > 0)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
@ -2133,7 +2133,7 @@ fill_record(Field **ptr,List<Item> &values)
|
||||
while ((field = *ptr++))
|
||||
{
|
||||
value=v++;
|
||||
if (value->save_in_field(field))
|
||||
if (value->save_in_field(field) == 1)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
|
@ -179,7 +179,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
|
||||
Item *item;
|
||||
for (key_len=0 ; (item=it_ke++) ; key_part++)
|
||||
{
|
||||
item->save_in_field(key_part->field);
|
||||
(void) item->save_in_field(key_part->field);
|
||||
key_len+=key_part->store_length;
|
||||
}
|
||||
if (!(key= (byte*) sql_calloc(ALIGN_SIZE(key_len))))
|
||||
|
@ -2478,7 +2478,7 @@ store_val_in_field(Field *field,Item *item)
|
||||
THD *thd=current_thd;
|
||||
ulong cuted_fields=thd->cuted_fields;
|
||||
thd->count_cuted_fields=1;
|
||||
item->save_in_field(field);
|
||||
(void) item->save_in_field(field);
|
||||
thd->count_cuted_fields=0;
|
||||
return cuted_fields != thd->cuted_fields;
|
||||
}
|
||||
|
@ -338,7 +338,7 @@ public:
|
||||
{}
|
||||
bool copy()
|
||||
{
|
||||
item->save_in_field(to_field);
|
||||
(void) item->save_in_field(to_field);
|
||||
return err != 0;
|
||||
}
|
||||
const char *name() const { return "func"; }
|
||||
@ -362,7 +362,7 @@ public:
|
||||
if (!inited)
|
||||
{
|
||||
inited=1;
|
||||
item->save_in_field(to_field);
|
||||
(void)item->save_in_field(to_field);
|
||||
}
|
||||
return err != 0;
|
||||
}
|
||||
|
@ -1,96 +0,0 @@
|
||||
***************
|
||||
*** 173,178 ****
|
||||
select_result *result;
|
||||
TMP_TABLE_PARAM tmp_table_param;
|
||||
MYSQL_LOCK *lock;
|
||||
};
|
||||
|
||||
|
||||
--- 172,240 ----
|
||||
select_result *result;
|
||||
TMP_TABLE_PARAM tmp_table_param;
|
||||
MYSQL_LOCK *lock;
|
||||
+
|
||||
+ bool select_distinct, //Is select distinct?
|
||||
+ no_order, simple_order, simple_group,
|
||||
+ skip_sort_order, need_tmp,
|
||||
+ hidden_group_fields,
|
||||
+ buffer_result;
|
||||
+ DYNAMIC_ARRAY keyuse;
|
||||
+ Item::cond_result cond_value;
|
||||
+ List<Item> all_fields;
|
||||
+ List<Item> & fields_list; // hold field list passed to mysql_select
|
||||
+ int error;
|
||||
+
|
||||
+ ORDER *order, *group_list, *proc_param; //hold parameters of mysql_select
|
||||
+ COND *conds; // ---"---
|
||||
+ TABLE_LIST *tables_list; //hold 'tables' parameter of mysql_select
|
||||
+ SQL_SELECT *select; //created in optimisation phase
|
||||
+ TABLE *exec_tmp_table; //used in 'exec' to hold temporary table
|
||||
+ SELECT_LEX *select_lex; //corresponding select_lex
|
||||
+
|
||||
+ my_bool test_function_query; // need to return select items 1 row
|
||||
+ const char *zero_result_cause; // not 0 if exec must return zero result
|
||||
+
|
||||
+ JOIN(THD *thd, List<Item> &fields,
|
||||
+ ulong select_options, select_result *result):
|
||||
+ join_tab(0),
|
||||
+ table(0),
|
||||
+ tables(0), const_tables(0),
|
||||
+ sort_and_group(0), first_record(0),
|
||||
+ do_send_rows(1),
|
||||
+ send_records(0), found_records(0), examined_rows(0),
|
||||
+ thd(thd),
|
||||
+ sum_funcs(0),
|
||||
+ having(0),
|
||||
+ select_options(select_options),
|
||||
+ result(result),
|
||||
+ lock(thd->lock),
|
||||
+ select_distinct(test(select_options & SELECT_DISTINCT)),
|
||||
+ no_order(0), simple_order(0), simple_group(0), skip_sort_order(0),
|
||||
+ need_tmp(0),
|
||||
+ hidden_group_fields (0), /*safety*/
|
||||
+ buffer_result(test(select_options & OPTION_BUFFER_RESULT) &&
|
||||
+ !test(select_options & OPTION_FOUND_ROWS)),
|
||||
+ all_fields(fields),
|
||||
+ fields_list(fields),
|
||||
+ select(0),
|
||||
+ exec_tmp_table(0),
|
||||
+ select_lex(0), //for safety
|
||||
+ test_function_query(0),
|
||||
+ zero_result_cause(0)
|
||||
+ {
|
||||
+ fields_list = fields;
|
||||
+ bzero((char*) &keyuse,sizeof(keyuse));
|
||||
+ tmp_table_param.copy_field=0;
|
||||
+ tmp_table_param.end_write_records= HA_POS_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ int prepare(TABLE_LIST *tables,
|
||||
+ COND *conds, ORDER *order, ORDER *group, Item *having,
|
||||
+ ORDER *proc_param, SELECT_LEX *select);
|
||||
+ int optimize();
|
||||
+ int global_optimize();
|
||||
+ void exec();
|
||||
+ int cleanup(THD *thd);
|
||||
};
|
||||
|
||||
|
||||
***************
|
||||
*** 187,193 ****
|
||||
bool store_val_in_field(Field *field,Item *val);
|
||||
TABLE *create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
||||
ORDER *group, bool distinct, bool save_sum_fields,
|
||||
- bool allow_distinct_limit, ulong select_options);
|
||||
void free_tmp_table(THD *thd, TABLE *entry);
|
||||
void count_field_types(TMP_TABLE_PARAM *param, List<Item> &fields,
|
||||
bool reset_with_sum_func);
|
||||
--- 249,256 ----
|
||||
bool store_val_in_field(Field *field,Item *val);
|
||||
TABLE *create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
||||
ORDER *group, bool distinct, bool save_sum_fields,
|
||||
+ bool allow_distinct_limit, ulong select_options,
|
||||
+ SELECT_LEX *first_select);
|
||||
void free_tmp_table(THD *thd, TABLE *entry);
|
||||
void count_field_types(TMP_TABLE_PARAM *param, List<Item> &fields,
|
||||
bool reset_with_sum_func);
|
@ -167,6 +167,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
||||
%token CHECK_SYM
|
||||
%token CIPHER
|
||||
%token COMMITTED_SYM
|
||||
%token COLLATE_SYM
|
||||
%token COLUMNS
|
||||
%token COLUMN_SYM
|
||||
%token CONCURRENT
|
||||
@ -522,7 +523,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
||||
%left '*' '/' '%'
|
||||
%left NEG '~'
|
||||
%right NOT
|
||||
%right BINARY
|
||||
%right BINARY COLLATE_SYM
|
||||
|
||||
%type <lex_str>
|
||||
IDENT TEXT_STRING REAL_NUM FLOAT_NUM NUM LONG_NUM HEX_NUM LEX_HOSTNAME
|
||||
@ -1129,7 +1130,7 @@ charset:
|
||||
{
|
||||
if (!(Lex->charset=get_charset_by_name($1.str,MYF(0))))
|
||||
{
|
||||
net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,$1);
|
||||
net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,$1.str);
|
||||
YYABORT;
|
||||
}
|
||||
};
|
||||
@ -1658,7 +1659,16 @@ expr_expr:
|
||||
| expr '+' INTERVAL_SYM expr interval
|
||||
{ $$= new Item_date_add_interval($1,$4,$5,0); }
|
||||
| expr '-' INTERVAL_SYM expr interval
|
||||
{ $$= new Item_date_add_interval($1,$4,$5,1); };
|
||||
{ $$= new Item_date_add_interval($1,$4,$5,1); }
|
||||
| expr COLLATE_SYM ident
|
||||
{
|
||||
if (!(Lex->charset=get_charset_by_name($3.str,MYF(0))))
|
||||
{
|
||||
net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,$3.str);
|
||||
YYABORT;
|
||||
}
|
||||
$$= new Item_func_set_collation($1,Lex->charset);
|
||||
};
|
||||
|
||||
/* expressions that begin with 'expr' that do NOT follow IN_SYM */
|
||||
no_in_expr:
|
||||
@ -3446,7 +3456,7 @@ option_value:
|
||||
CONVERT *tmp;
|
||||
if (!(tmp=get_convert_set($3.str)))
|
||||
{
|
||||
net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,$3);
|
||||
net_printf(¤t_thd->net,ER_UNKNOWN_CHARACTER_SET,$3.str);
|
||||
YYABORT;
|
||||
}
|
||||
current_thd->convert_set=tmp;
|
||||
|
@ -590,7 +590,7 @@ static bool make_empty_rec(File file,enum db_type table_type,
|
||||
if (field->def &&
|
||||
(regfield->real_type() != FIELD_TYPE_YEAR ||
|
||||
field->def->val_int() != 0))
|
||||
field->def->save_in_field(regfield);
|
||||
(void) field->def->save_in_field(regfield);
|
||||
else if (regfield->real_type() == FIELD_TYPE_ENUM &&
|
||||
(field->flags & NOT_NULL_FLAG))
|
||||
{
|
||||
|
@ -24,13 +24,15 @@ void my_caseup_str_mb(CHARSET_INFO * cs, char *str)
|
||||
{
|
||||
register uint32 l;
|
||||
register char *end=str+strlen(str); /* BAR TODO: remove strlen() call */
|
||||
register uchar *map=cs->to_upper;
|
||||
|
||||
while (*str)
|
||||
{
|
||||
if ((l=my_ismbchar(cs, str,end)))
|
||||
str+=l;
|
||||
else
|
||||
{
|
||||
*str=(char)my_toupper(cs,(uchar)*str);
|
||||
*str=(char) map[(uchar)*str];
|
||||
str++;
|
||||
}
|
||||
}
|
||||
@ -40,13 +42,15 @@ void my_casedn_str_mb(CHARSET_INFO * cs, char *str)
|
||||
{
|
||||
register uint32 l;
|
||||
register char *end=str+strlen(str);
|
||||
register uchar *map=cs->to_lower;
|
||||
|
||||
while (*str)
|
||||
{
|
||||
if ((l=my_ismbchar(cs, str,end)))
|
||||
str+=l;
|
||||
else
|
||||
{
|
||||
*str=(char)my_tolower(cs,(uchar)*str);
|
||||
*str=(char) map[(uchar)*str];
|
||||
str++;
|
||||
}
|
||||
}
|
||||
@ -56,13 +60,15 @@ void my_caseup_mb(CHARSET_INFO * cs, char *str, uint length)
|
||||
{
|
||||
register uint32 l;
|
||||
register char *end=str+length;
|
||||
register uchar *map=cs->to_upper;
|
||||
|
||||
while (str<end)
|
||||
{
|
||||
if ((l=my_ismbchar(cs, str,end)))
|
||||
str+=l;
|
||||
else
|
||||
{
|
||||
*str=(char)my_toupper(cs,(uchar)*str);
|
||||
*str=(char) map[(uchar)*str];
|
||||
str++;
|
||||
}
|
||||
}
|
||||
@ -72,13 +78,15 @@ void my_casedn_mb(CHARSET_INFO * cs, char *str, uint length)
|
||||
{
|
||||
register uint32 l;
|
||||
register char *end=str+length;
|
||||
register uchar *map=cs->to_lower;
|
||||
|
||||
while (str<end)
|
||||
{
|
||||
if ((l=my_ismbchar(cs, str,end)))
|
||||
str+=l;
|
||||
else
|
||||
{
|
||||
*str=(char)my_tolower(cs,(uchar)*str);
|
||||
*str=(char) map[(uchar)*str];
|
||||
str++;
|
||||
}
|
||||
}
|
||||
@ -88,6 +96,8 @@ int my_strcasecmp_mb(CHARSET_INFO * cs,const char *s, const char *t)
|
||||
{
|
||||
register uint32 l;
|
||||
register const char *end=s+strlen(s);
|
||||
register uchar *map=cs->to_upper;
|
||||
|
||||
while (s<end)
|
||||
{
|
||||
if ((l=my_ismbchar(cs, s,end)))
|
||||
@ -98,7 +108,7 @@ int my_strcasecmp_mb(CHARSET_INFO * cs,const char *s, const char *t)
|
||||
}
|
||||
else if (my_ismbhead(cs, *t))
|
||||
return 1;
|
||||
else if (my_toupper(cs,(uchar) *s++) != my_toupper(cs,(uchar) *t++))
|
||||
else if (map[(uchar) *s++] != map[(uchar) *t++])
|
||||
return 1;
|
||||
}
|
||||
return *t;
|
||||
@ -110,6 +120,8 @@ int my_strncasecmp_mb(CHARSET_INFO * cs,
|
||||
{
|
||||
register uint32 l;
|
||||
register const char *end=s+len;
|
||||
register uchar *map=cs->to_upper;
|
||||
|
||||
while (s<end)
|
||||
{
|
||||
if ((l=my_ismbchar(cs, s,end)))
|
||||
@ -120,7 +132,7 @@ int my_strncasecmp_mb(CHARSET_INFO * cs,
|
||||
}
|
||||
else if (my_ismbhead(cs, *t))
|
||||
return 1;
|
||||
else if (my_toupper(cs,(uchar) *s++) != my_toupper(cs,(uchar) *t++))
|
||||
else if (map[(uchar) *s++] != map[(uchar) *t++])
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -46,43 +46,49 @@ int my_strnncoll_simple(CHARSET_INFO * cs,const char *s, uint slen,
|
||||
|
||||
void my_caseup_str_8bit(CHARSET_INFO * cs,char *str)
|
||||
{
|
||||
while ((*str = (char) my_toupper(cs,(uchar) *str)) != 0)
|
||||
register uchar *map=cs->to_upper;
|
||||
while ((*str = (char) map[(uchar) *str]) != 0)
|
||||
str++;
|
||||
}
|
||||
|
||||
|
||||
void my_casedn_str_8bit(CHARSET_INFO * cs,char *str)
|
||||
{
|
||||
while ((*str = (char) my_tolower(cs,(uchar)*str)) != 0)
|
||||
register uchar *map=cs->to_lower;
|
||||
while ((*str = (char) map[(uchar)*str]) != 0)
|
||||
str++;
|
||||
}
|
||||
|
||||
|
||||
void my_caseup_8bit(CHARSET_INFO * cs, char *str, uint length)
|
||||
{
|
||||
register uchar *map=cs->to_upper;
|
||||
for ( ; length>0 ; length--, str++)
|
||||
*str= (char) my_toupper(cs,(uchar)*str);
|
||||
*str= (char) map[(uchar)*str];
|
||||
}
|
||||
|
||||
void my_casedn_8bit(CHARSET_INFO * cs, char *str, uint length)
|
||||
{
|
||||
register uchar *map=cs->to_lower;
|
||||
for ( ; length>0 ; length--, str++)
|
||||
*str= (char)my_tolower(cs,(uchar) *str);
|
||||
*str= (char) map[(uchar) *str];
|
||||
}
|
||||
|
||||
|
||||
int my_strcasecmp_8bit(CHARSET_INFO * cs,const char *s, const char *t)
|
||||
{
|
||||
while (my_toupper(cs,(uchar) *s) == my_toupper(cs,(uchar) *t++))
|
||||
register uchar *map=cs->to_upper;
|
||||
while (map[(uchar) *s] == map[(uchar) *t++])
|
||||
if (!*s++) return 0;
|
||||
return ((int) my_toupper(cs,(uchar) s[0]) - (int) my_toupper(cs,(uchar) t[-1]));
|
||||
return ((int) map[(uchar) s[0]] - (int) map[(uchar) t[-1]]);
|
||||
}
|
||||
|
||||
|
||||
int my_strncasecmp_8bit(CHARSET_INFO * cs,
|
||||
const char *s, const char *t, uint len)
|
||||
{
|
||||
while (len-- != 0 && my_toupper(cs,(uchar)*s++) == my_toupper(cs,(uchar)*t++)) ;
|
||||
register uchar *map=cs->to_upper;
|
||||
while (len-- != 0 && map[(uchar)*s++] == map[(uchar)*t++]) ;
|
||||
return (int) len+1;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user