EMMA Coverage Report (generated Tue Jul 25 07:27:46 CDT 2006)
[all classes][com.mysql.jdbc]

COVERAGE SUMMARY FOR SOURCE FILE [MysqlDefs.java]

nameclass, %method, %block, %line, %
MysqlDefs.java100% (1/1)83%  (5/6)93%  (714/768)89%  (185/207)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MysqlDefs100% (1/1)83%  (5/6)93%  (714/768)89%  (185/207)
MysqlDefs (): void 0%   (0/1)0%   (0/3)0%   (0/1)
typeToName (int): String 100% (1/1)39%  (24/61)44%  (12/27)
mysqlToJavaType (int): int 100% (1/1)94%  (76/81)94%  (50/53)
mysqlToJavaType (String): int 100% (1/1)96%  (218/227)96%  (64/67)
<static initializer> 100% (1/1)100% (276/276)100% (33/33)
appendJdbcTypeMappingQuery (StringBuffer, String): void 100% (1/1)100% (120/120)100% (26/26)

1/*
2 Copyright (C) 2002-2004 MySQL AB
3 
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of version 2 of the GNU General Public License as 
6 published by the Free Software Foundation.
7 
8 There are special exceptions to the terms and conditions of the GPL 
9 as it is applied to this software. View the full text of the 
10 exception in file EXCEPTIONS-CONNECTOR-J in the directory of this 
11 software distribution.
12 
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21 
22 
23 
24 */
25package com.mysql.jdbc;
26 
27import java.sql.Types;
28import java.util.Collections;
29import java.util.HashMap;
30import java.util.Iterator;
31import java.util.Map;
32 
33/**
34 * MysqlDefs contains many values that are needed for communication with the
35 * MySQL server.
36 * 
37 * @author Mark Matthews
38 * @version $Id: MysqlDefs.java 4724 2005-12-20 17:27:01 -0600 (Tue, 20 Dec 2005) mmatthews $
39 */
40final class MysqlDefs {
41        // ~ Static fields/initializers
42        // ---------------------------------------------
43 
44        static final int COM_BINLOG_DUMP = 18;
45 
46        static final int COM_CHANGE_USER = 17;
47 
48        static final int COM_CLOSE_STATEMENT = 25;
49 
50        static final int COM_CONNECT_OUT = 20;
51 
52        static final int COM_END = 29;
53 
54        static final int COM_EXECUTE = 23;
55 
56        static final int COM_FETCH = 28;
57 
58        static final int COM_LONG_DATA = 24;
59 
60        static final int COM_PREPARE = 22;
61 
62        static final int COM_REGISTER_SLAVE = 21;
63 
64        static final int COM_RESET_STMT = 26;
65 
66        static final int COM_SET_OPTION = 27;
67 
68        static final int COM_TABLE_DUMP = 19;
69 
70        static final int CONNECT = 11;
71 
72        static final int CREATE_DB = 5;
73 
74        static final int DEBUG = 13;
75 
76        static final int DELAYED_INSERT = 16;
77 
78        static final int DROP_DB = 6;
79 
80        static final int FIELD_LIST = 4;
81 
82        static final int FIELD_TYPE_BIT = 16;
83 
84        static final int FIELD_TYPE_BLOB = 252;
85 
86        static final int FIELD_TYPE_DATE = 10;
87 
88        static final int FIELD_TYPE_DATETIME = 12;
89 
90        // Data Types
91        static final int FIELD_TYPE_DECIMAL = 0;
92 
93        static final int FIELD_TYPE_DOUBLE = 5;
94 
95        static final int FIELD_TYPE_ENUM = 247;
96 
97        static final int FIELD_TYPE_FLOAT = 4;
98 
99        static final int FIELD_TYPE_GEOMETRY = 255;
100 
101        static final int FIELD_TYPE_INT24 = 9;
102 
103        static final int FIELD_TYPE_LONG = 3;
104 
105        static final int FIELD_TYPE_LONG_BLOB = 251;
106 
107        static final int FIELD_TYPE_LONGLONG = 8;
108 
109        static final int FIELD_TYPE_MEDIUM_BLOB = 250;
110 
111        static final int FIELD_TYPE_NEW_DECIMAL = 246;
112 
113        static final int FIELD_TYPE_NEWDATE = 14;
114 
115        static final int FIELD_TYPE_NULL = 6;
116 
117        static final int FIELD_TYPE_SET = 248;
118 
119        static final int FIELD_TYPE_SHORT = 2;
120 
121        static final int FIELD_TYPE_STRING = 254;
122 
123        static final int FIELD_TYPE_TIME = 11;
124 
125        static final int FIELD_TYPE_TIMESTAMP = 7;
126 
127        static final int FIELD_TYPE_TINY = 1;
128 
129        // Older data types
130        static final int FIELD_TYPE_TINY_BLOB = 249;
131 
132        static final int FIELD_TYPE_VAR_STRING = 253;
133 
134        static final int FIELD_TYPE_VARCHAR = 15;
135 
136        // Newer data types
137        static final int FIELD_TYPE_YEAR = 13;
138 
139        static final int INIT_DB = 2;
140 
141        static final long LENGTH_BLOB = 65535;
142 
143        static final long LENGTH_LONGBLOB = 4294967295L;
144 
145        static final long LENGTH_MEDIUMBLOB = 16777215;
146 
147        static final long LENGTH_TINYBLOB = 255;
148 
149        // Limitations
150        static final int MAX_ROWS = 50000000; // From the MySQL FAQ
151 
152        /**
153         * Used to indicate that the server sent no field-level character set
154         * information, so the driver should use the connection-level character
155         * encoding instead.
156         */
157        public static final int NO_CHARSET_INFO = -1;
158 
159        static final byte OPEN_CURSOR_FLAG = 1;
160 
161        static final int PING = 14;
162 
163        static final int PROCESS_INFO = 10;
164 
165        static final int PROCESS_KILL = 12;
166 
167        static final int QUERY = 3;
168 
169        static final int QUIT = 1;
170 
171        // ~ Methods
172        // ----------------------------------------------------------------
173 
174        static final int RELOAD = 7;
175 
176        static final int SHUTDOWN = 8;
177 
178        //
179        // Constants defined from mysql
180        //
181        // DB Operations
182        static final int SLEEP = 0;
183 
184        static final int STATISTICS = 9;
185 
186        static final int TIME = 15;
187 
188        /**
189         * Maps the given MySQL type to the correct JDBC type.
190         */
191        static int mysqlToJavaType(int mysqlType) {
192                int jdbcType;
193 
194                switch (mysqlType) {
195                case MysqlDefs.FIELD_TYPE_NEW_DECIMAL:
196                case MysqlDefs.FIELD_TYPE_DECIMAL:
197                        jdbcType = Types.DECIMAL;
198 
199                        break;
200 
201                case MysqlDefs.FIELD_TYPE_TINY:
202                        jdbcType = Types.TINYINT;
203 
204                        break;
205 
206                case MysqlDefs.FIELD_TYPE_SHORT:
207                        jdbcType = Types.SMALLINT;
208 
209                        break;
210 
211                case MysqlDefs.FIELD_TYPE_LONG:
212                        jdbcType = Types.INTEGER;
213 
214                        break;
215 
216                case MysqlDefs.FIELD_TYPE_FLOAT:
217                        jdbcType = Types.REAL;
218 
219                        break;
220 
221                case MysqlDefs.FIELD_TYPE_DOUBLE:
222                        jdbcType = Types.DOUBLE;
223 
224                        break;
225 
226                case MysqlDefs.FIELD_TYPE_NULL:
227                        jdbcType = Types.NULL;
228 
229                        break;
230 
231                case MysqlDefs.FIELD_TYPE_TIMESTAMP:
232                        jdbcType = Types.TIMESTAMP;
233 
234                        break;
235 
236                case MysqlDefs.FIELD_TYPE_LONGLONG:
237                        jdbcType = Types.BIGINT;
238 
239                        break;
240 
241                case MysqlDefs.FIELD_TYPE_INT24:
242                        jdbcType = Types.INTEGER;
243 
244                        break;
245 
246                case MysqlDefs.FIELD_TYPE_DATE:
247                        jdbcType = Types.DATE;
248 
249                        break;
250 
251                case MysqlDefs.FIELD_TYPE_TIME:
252                        jdbcType = Types.TIME;
253 
254                        break;
255 
256                case MysqlDefs.FIELD_TYPE_DATETIME:
257                        jdbcType = Types.TIMESTAMP;
258 
259                        break;
260 
261                case MysqlDefs.FIELD_TYPE_YEAR:
262                        jdbcType = Types.DATE;
263 
264                        break;
265 
266                case MysqlDefs.FIELD_TYPE_NEWDATE:
267                        jdbcType = Types.DATE;
268 
269                        break;
270 
271                case MysqlDefs.FIELD_TYPE_ENUM:
272                        jdbcType = Types.CHAR;
273 
274                        break;
275 
276                case MysqlDefs.FIELD_TYPE_SET:
277                        jdbcType = Types.CHAR;
278 
279                        break;
280 
281                case MysqlDefs.FIELD_TYPE_TINY_BLOB:
282                        jdbcType = Types.VARBINARY;
283 
284                        break;
285 
286                case MysqlDefs.FIELD_TYPE_MEDIUM_BLOB:
287                        jdbcType = Types.LONGVARBINARY;
288 
289                        break;
290 
291                case MysqlDefs.FIELD_TYPE_LONG_BLOB:
292                        jdbcType = Types.LONGVARBINARY;
293 
294                        break;
295 
296                case MysqlDefs.FIELD_TYPE_BLOB:
297                        jdbcType = Types.LONGVARBINARY;
298 
299                        break;
300 
301                case MysqlDefs.FIELD_TYPE_VAR_STRING:
302                case MysqlDefs.FIELD_TYPE_VARCHAR:
303                        jdbcType = Types.VARCHAR;
304 
305                        break;
306 
307                case MysqlDefs.FIELD_TYPE_STRING:
308                        jdbcType = Types.CHAR;
309 
310                        break;
311                case MysqlDefs.FIELD_TYPE_GEOMETRY:
312                        jdbcType = Types.BINARY;
313 
314                        break;
315                case MysqlDefs.FIELD_TYPE_BIT:
316                        jdbcType = Types.BIT;
317 
318                        break;
319                default:
320                        jdbcType = Types.VARCHAR;
321                }
322 
323                return jdbcType;
324        }
325 
326        /**
327         * Maps the given MySQL type to the correct JDBC type.
328         */
329        static int mysqlToJavaType(String mysqlType) {
330                if (mysqlType.equalsIgnoreCase("BIT")) {
331                        return mysqlToJavaType(FIELD_TYPE_BIT);
332                } else if (mysqlType.equalsIgnoreCase("TINYINT")) { //$NON-NLS-1$
333                        return mysqlToJavaType(FIELD_TYPE_TINY);
334                } else if (mysqlType.equalsIgnoreCase("SMALLINT")) { //$NON-NLS-1$
335                        return mysqlToJavaType(FIELD_TYPE_SHORT);
336                } else if (mysqlType.equalsIgnoreCase("MEDIUMINT")) { //$NON-NLS-1$
337                        return mysqlToJavaType(FIELD_TYPE_INT24);
338                } else if (mysqlType.equalsIgnoreCase("INT") || mysqlType.equalsIgnoreCase("INTEGER")) { //$NON-NLS-1$ //$NON-NLS-2$
339                        return mysqlToJavaType(FIELD_TYPE_LONG);
340                } else if (mysqlType.equalsIgnoreCase("BIGINT")) { //$NON-NLS-1$
341                        return mysqlToJavaType(FIELD_TYPE_LONGLONG);
342                } else if (mysqlType.equalsIgnoreCase("INT24")) { //$NON-NLS-1$
343                        return mysqlToJavaType(FIELD_TYPE_INT24);
344                } else if (mysqlType.equalsIgnoreCase("REAL")) { //$NON-NLS-1$
345                        return mysqlToJavaType(FIELD_TYPE_DOUBLE);
346                } else if (mysqlType.equalsIgnoreCase("FLOAT")) { //$NON-NLS-1$
347                        return mysqlToJavaType(FIELD_TYPE_FLOAT);
348                } else if (mysqlType.equalsIgnoreCase("DECIMAL")) { //$NON-NLS-1$
349                        return mysqlToJavaType(FIELD_TYPE_DECIMAL);
350                } else if (mysqlType.equalsIgnoreCase("NUMERIC")) { //$NON-NLS-1$
351                        return mysqlToJavaType(FIELD_TYPE_DECIMAL);
352                } else if (mysqlType.equalsIgnoreCase("DOUBLE")) { //$NON-NLS-1$
353                        return mysqlToJavaType(FIELD_TYPE_DOUBLE);
354                } else if (mysqlType.equalsIgnoreCase("CHAR")) { //$NON-NLS-1$
355                        return mysqlToJavaType(FIELD_TYPE_STRING);
356                } else if (mysqlType.equalsIgnoreCase("VARCHAR")) { //$NON-NLS-1$
357                        return mysqlToJavaType(FIELD_TYPE_VAR_STRING);
358                } else if (mysqlType.equalsIgnoreCase("DATE")) { //$NON-NLS-1$
359                        return mysqlToJavaType(FIELD_TYPE_DATE);
360                } else if (mysqlType.equalsIgnoreCase("TIME")) { //$NON-NLS-1$
361                        return mysqlToJavaType(FIELD_TYPE_TIME);
362                } else if (mysqlType.equalsIgnoreCase("YEAR")) { //$NON-NLS-1$
363                        return mysqlToJavaType(FIELD_TYPE_YEAR);
364                } else if (mysqlType.equalsIgnoreCase("TIMESTAMP")) { //$NON-NLS-1$
365                        return mysqlToJavaType(FIELD_TYPE_TIMESTAMP);
366                } else if (mysqlType.equalsIgnoreCase("DATETIME")) { //$NON-NLS-1$
367                        return mysqlToJavaType(FIELD_TYPE_DATETIME);
368                } else if (mysqlType.equalsIgnoreCase("TINYBLOB")) { //$NON-NLS-1$
369                        return java.sql.Types.BINARY;
370                } else if (mysqlType.equalsIgnoreCase("BLOB")) { //$NON-NLS-1$
371                        return java.sql.Types.LONGVARBINARY;
372                } else if (mysqlType.equalsIgnoreCase("MEDIUMBLOB")) { //$NON-NLS-1$
373                        return java.sql.Types.LONGVARBINARY;
374                } else if (mysqlType.equalsIgnoreCase("LONGBLOB")) { //$NON-NLS-1$
375                        return java.sql.Types.LONGVARBINARY;
376                } else if (mysqlType.equalsIgnoreCase("TINYTEXT")) { //$NON-NLS-1$
377                        return java.sql.Types.VARCHAR;
378                } else if (mysqlType.equalsIgnoreCase("TEXT")) { //$NON-NLS-1$
379                        return java.sql.Types.LONGVARCHAR;
380                } else if (mysqlType.equalsIgnoreCase("MEDIUMTEXT")) { //$NON-NLS-1$
381                        return java.sql.Types.LONGVARCHAR;
382                } else if (mysqlType.equalsIgnoreCase("LONGTEXT")) { //$NON-NLS-1$
383                        return java.sql.Types.LONGVARCHAR;
384                } else if (mysqlType.equalsIgnoreCase("ENUM")) { //$NON-NLS-1$
385                        return mysqlToJavaType(FIELD_TYPE_ENUM);
386                } else if (mysqlType.equalsIgnoreCase("SET")) { //$NON-NLS-1$
387                        return mysqlToJavaType(FIELD_TYPE_SET);
388                } else if (mysqlType.equalsIgnoreCase("GEOMETRY")) {
389                        return mysqlToJavaType(FIELD_TYPE_GEOMETRY);
390                } else if (mysqlType.equalsIgnoreCase("BINARY")) {
391                        return Types.BINARY; // no concrete type on the wire
392                } else if (mysqlType.equalsIgnoreCase("VARBINARY")) {
393                        return Types.VARBINARY; // no concrete type on the wire
394                } else if (mysqlType.equalsIgnoreCase("BIT")) {
395                        return mysqlToJavaType(FIELD_TYPE_BIT);
396                }
397 
398                // Punt
399                return java.sql.Types.OTHER;
400        }
401 
402        /**
403         * @param mysqlType
404         * @return
405         */
406        public static String typeToName(int mysqlType) {
407                switch (mysqlType) {
408                case MysqlDefs.FIELD_TYPE_DECIMAL:
409                        return "FIELD_TYPE_DECIMAL";
410 
411                case MysqlDefs.FIELD_TYPE_TINY:
412                        return "FIELD_TYPE_TINY";
413 
414                case MysqlDefs.FIELD_TYPE_SHORT:
415                        return "FIELD_TYPE_SHORT";
416 
417                case MysqlDefs.FIELD_TYPE_LONG:
418                        return "FIELD_TYPE_LONG";
419 
420                case MysqlDefs.FIELD_TYPE_FLOAT:
421                        return "FIELD_TYPE_FLOAT";
422 
423                case MysqlDefs.FIELD_TYPE_DOUBLE:
424                        return "FIELD_TYPE_DOUBLE";
425 
426                case MysqlDefs.FIELD_TYPE_NULL:
427                        return "FIELD_TYPE_NULL";
428 
429                case MysqlDefs.FIELD_TYPE_TIMESTAMP:
430                        return "FIELD_TYPE_TIMESTAMP";
431 
432                case MysqlDefs.FIELD_TYPE_LONGLONG:
433                        return "FIELD_TYPE_LONGLONG";
434 
435                case MysqlDefs.FIELD_TYPE_INT24:
436                        return "FIELD_TYPE_INT24";
437 
438                case MysqlDefs.FIELD_TYPE_DATE:
439                        return "FIELD_TYPE_DATE";
440 
441                case MysqlDefs.FIELD_TYPE_TIME:
442                        return "FIELD_TYPE_TIME";
443 
444                case MysqlDefs.FIELD_TYPE_DATETIME:
445                        return "FIELD_TYPE_DATETIME";
446 
447                case MysqlDefs.FIELD_TYPE_YEAR:
448                        return "FIELD_TYPE_YEAR";
449 
450                case MysqlDefs.FIELD_TYPE_NEWDATE:
451                        return "FIELD_TYPE_NEWDATE";
452 
453                case MysqlDefs.FIELD_TYPE_ENUM:
454                        return "FIELD_TYPE_ENUM";
455 
456                case MysqlDefs.FIELD_TYPE_SET:
457                        return "FIELD_TYPE_SET";
458 
459                case MysqlDefs.FIELD_TYPE_TINY_BLOB:
460                        return "FIELD_TYPE_TINY_BLOB";
461 
462                case MysqlDefs.FIELD_TYPE_MEDIUM_BLOB:
463                        return "FIELD_TYPE_MEDIUM_BLOB";
464 
465                case MysqlDefs.FIELD_TYPE_LONG_BLOB:
466                        return "FIELD_TYPE_LONG_BLOB";
467 
468                case MysqlDefs.FIELD_TYPE_BLOB:
469                        return "FIELD_TYPE_BLOB";
470 
471                case MysqlDefs.FIELD_TYPE_VAR_STRING:
472                        return "FIELD_TYPE_VAR_STRING";
473 
474                case MysqlDefs.FIELD_TYPE_STRING:
475                        return "FIELD_TYPE_STRING";
476 
477                case MysqlDefs.FIELD_TYPE_VARCHAR:
478                        return "FIELD_TYPE_VARCHAR";
479 
480                case MysqlDefs.FIELD_TYPE_GEOMETRY:
481                        return "FIELD_TYPE_GEOMETRY";
482 
483                default:
484                        return " Unknown MySQL Type # " + mysqlType;
485                }
486        }
487 
488        private static Map mysqlToJdbcTypesMap = new HashMap();
489 
490        static {
491                mysqlToJdbcTypesMap.put("BIT", new Integer(
492                                mysqlToJavaType(FIELD_TYPE_BIT)));
493 
494                mysqlToJdbcTypesMap.put("TINYINT", new Integer(
495                                mysqlToJavaType(FIELD_TYPE_TINY)));
496                mysqlToJdbcTypesMap.put("SMALLINT", new Integer(
497                                mysqlToJavaType(FIELD_TYPE_SHORT)));
498                mysqlToJdbcTypesMap.put("MEDIUMINT", new Integer(
499                                mysqlToJavaType(FIELD_TYPE_INT24)));
500                mysqlToJdbcTypesMap.put("INT", new Integer(
501                                mysqlToJavaType(FIELD_TYPE_LONG)));
502                mysqlToJdbcTypesMap.put("INTEGER", new Integer(
503                                mysqlToJavaType(FIELD_TYPE_LONG)));
504                mysqlToJdbcTypesMap.put("BIGINT", new Integer(
505                                mysqlToJavaType(FIELD_TYPE_LONGLONG)));
506                mysqlToJdbcTypesMap.put("INT24", new Integer(
507                                mysqlToJavaType(FIELD_TYPE_INT24)));
508                mysqlToJdbcTypesMap.put("REAL", new Integer(
509                                mysqlToJavaType(FIELD_TYPE_DOUBLE)));
510                mysqlToJdbcTypesMap.put("FLOAT", new Integer(
511                                mysqlToJavaType(FIELD_TYPE_FLOAT)));
512                mysqlToJdbcTypesMap.put("DECIMAL", new Integer(
513                                mysqlToJavaType(FIELD_TYPE_DECIMAL)));
514                mysqlToJdbcTypesMap.put("NUMERIC", new Integer(
515                                mysqlToJavaType(FIELD_TYPE_DECIMAL)));
516                mysqlToJdbcTypesMap.put("DOUBLE", new Integer(
517                                mysqlToJavaType(FIELD_TYPE_DOUBLE)));
518                mysqlToJdbcTypesMap.put("CHAR", new Integer(
519                                mysqlToJavaType(FIELD_TYPE_STRING)));
520                mysqlToJdbcTypesMap.put("VARCHAR", new Integer(
521                                mysqlToJavaType(FIELD_TYPE_VAR_STRING)));
522                mysqlToJdbcTypesMap.put("DATE", new Integer(
523                                mysqlToJavaType(FIELD_TYPE_DATE)));
524                mysqlToJdbcTypesMap.put("TIME", new Integer(
525                                mysqlToJavaType(FIELD_TYPE_TIME)));
526                mysqlToJdbcTypesMap.put("YEAR", new Integer(
527                                mysqlToJavaType(FIELD_TYPE_YEAR)));
528                mysqlToJdbcTypesMap.put("TIMESTAMP", new Integer(
529                                mysqlToJavaType(FIELD_TYPE_TIMESTAMP)));
530                mysqlToJdbcTypesMap.put("DATETIME", new Integer(
531                                mysqlToJavaType(FIELD_TYPE_DATETIME)));
532                mysqlToJdbcTypesMap.put("TINYBLOB", new Integer(java.sql.Types.BINARY));
533                mysqlToJdbcTypesMap.put("BLOB", new Integer(
534                                java.sql.Types.LONGVARBINARY));
535                mysqlToJdbcTypesMap.put("MEDIUMBLOB", new Integer(
536                                java.sql.Types.LONGVARBINARY));
537                mysqlToJdbcTypesMap.put("LONGBLOB", new Integer(
538                                java.sql.Types.LONGVARBINARY));
539                mysqlToJdbcTypesMap
540                                .put("TINYTEXT", new Integer(java.sql.Types.VARCHAR));
541                mysqlToJdbcTypesMap
542                                .put("TEXT", new Integer(java.sql.Types.LONGVARCHAR));
543                mysqlToJdbcTypesMap.put("MEDIUMTEXT", new Integer(
544                                java.sql.Types.LONGVARCHAR));
545                mysqlToJdbcTypesMap.put("LONGTEXT", new Integer(
546                                java.sql.Types.LONGVARCHAR));
547                mysqlToJdbcTypesMap.put("ENUM", new Integer(
548                                mysqlToJavaType(FIELD_TYPE_ENUM)));
549                mysqlToJdbcTypesMap.put("SET", new Integer(
550                                mysqlToJavaType(FIELD_TYPE_SET)));
551                mysqlToJdbcTypesMap.put("GEOMETRY", new Integer(
552                                mysqlToJavaType(FIELD_TYPE_GEOMETRY)));
553        }
554 
555        static final void appendJdbcTypeMappingQuery(StringBuffer buf, String mysqlTypeColumnName) {
556 
557                buf.append("CASE ");
558                Map typesMap = new HashMap();
559                typesMap.putAll(mysqlToJdbcTypesMap);
560                typesMap.put("BINARY", new Integer(Types.BINARY));
561                typesMap.put("VARBINARY", new Integer(Types.VARBINARY));
562                
563                Iterator mysqlTypes = typesMap.keySet().iterator();
564                
565                while (mysqlTypes.hasNext()) {
566                        String mysqlTypeName = (String)mysqlTypes.next();
567                        buf.append(" WHEN ");
568                        buf.append(mysqlTypeColumnName);
569                        buf.append("='");
570                        buf.append(mysqlTypeName);
571                        buf.append("' THEN ");
572                        buf.append(typesMap.get(mysqlTypeName));
573                        
574                        if (mysqlTypeName.equalsIgnoreCase("DOUBLE") ||
575                                        mysqlTypeName.equalsIgnoreCase("FLOAT") ||
576                                        mysqlTypeName.equalsIgnoreCase("DECIMAL") ||
577                                        mysqlTypeName.equalsIgnoreCase("NUMERIC")) {
578                                buf.append(" WHEN ");
579                                buf.append(mysqlTypeColumnName);
580                                buf.append("='");
581                                buf.append(mysqlTypeName);
582                                buf.append(" unsigned' THEN ");
583                                buf.append(typesMap.get(mysqlTypeName));        
584                        }        
585                }
586                
587                buf.append(" ELSE ");
588                buf.append(Types.OTHER);
589                buf.append(" END ");
590                
591        }
592}

[all classes][com.mysql.jdbc]
EMMA 2.0.4217 (C) Vladimir Roubtsov