EMMA Coverage Report (generated Fri May 26 15:35:26 CDT 2006)
[all classes][com.mysql.jdbc]

COVERAGE SUMMARY FOR SOURCE FILE [MysqlDefs.java]

nameclass, %method, %block, %line, %
MysqlDefs.java100% (1/1)75%  (3/4)86%  (314/365)86%  (125/146)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MysqlDefs100% (1/1)75%  (3/4)86%  (314/365)86%  (125/146)
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)97%  (214/220)97%  (63/65)

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;
28 
29/**
30 * MysqlDefs contains many values that are needed for communication with the
31 * MySQL server.
32 * 
33 * @author Mark Matthews
34 * @version $Id: MysqlDefs.java 4723 2005-12-20 17:26:10 -0600 (Tue, 20 Dec 2005) mmatthews $
35 */
36final class MysqlDefs {
37        // ~ Static fields/initializers
38        // ---------------------------------------------
39 
40        static final int COM_BINLOG_DUMP = 18;
41 
42        static final int COM_CHANGE_USER = 17;
43 
44        static final int COM_CLOSE_STATEMENT = 25;
45 
46        static final int COM_CONNECT_OUT = 20;
47 
48        static final int COM_END = 28;
49 
50        static final int COM_EXECUTE = 23;
51 
52        static final int COM_LONG_DATA = 24;
53 
54        static final int COM_PREPARE = 22;
55 
56        static final int COM_REGISTER_SLAVE = 21;
57 
58        static final int COM_RESET_STMT = 26;
59 
60        static final int COM_SET_OPTION = 27;
61 
62        static final int COM_TABLE_DUMP = 19;
63 
64        static final int CONNECT = 11;
65 
66        static final int CREATE_DB = 5;
67 
68        static final int DEBUG = 13;
69 
70        static final int DELAYED_INSERT = 16;
71 
72        static final int DROP_DB = 6;
73 
74        static final int FIELD_LIST = 4;
75 
76        static final int FIELD_TYPE_BIT = 16;
77 
78        static final int FIELD_TYPE_BLOB = 252;
79 
80        static final int FIELD_TYPE_DATE = 10;
81 
82        static final int FIELD_TYPE_DATETIME = 12;
83 
84        // Data Types
85        static final int FIELD_TYPE_DECIMAL = 0;
86 
87        static final int FIELD_TYPE_DOUBLE = 5;
88 
89        static final int FIELD_TYPE_ENUM = 247;
90 
91        static final int FIELD_TYPE_FLOAT = 4;
92 
93        static final int FIELD_TYPE_GEOMETRY = 255;
94 
95        static final int FIELD_TYPE_INT24 = 9;
96 
97        static final int FIELD_TYPE_LONG = 3;
98 
99        static final int FIELD_TYPE_LONG_BLOB = 251;
100 
101        static final int FIELD_TYPE_LONGLONG = 8;
102 
103        static final int FIELD_TYPE_MEDIUM_BLOB = 250;
104 
105        static final int FIELD_TYPE_NEW_DECIMAL = 246;
106 
107        static final int FIELD_TYPE_NEWDATE = 14;
108 
109        static final int FIELD_TYPE_NULL = 6;
110 
111        static final int FIELD_TYPE_SET = 248;
112 
113        static final int FIELD_TYPE_SHORT = 2;
114 
115        static final int FIELD_TYPE_STRING = 254;
116 
117        static final int FIELD_TYPE_TIME = 11;
118 
119        static final int FIELD_TYPE_TIMESTAMP = 7;
120 
121        static final int FIELD_TYPE_TINY = 1;
122 
123        // Older data types
124        static final int FIELD_TYPE_TINY_BLOB = 249;
125 
126        static final int FIELD_TYPE_VAR_STRING = 253;
127 
128        static final int FIELD_TYPE_VARCHAR = 15;
129 
130        // Newer data types
131        static final int FIELD_TYPE_YEAR = 13;
132 
133        static final int INIT_DB = 2;
134 
135        static final long LENGTH_BLOB = 65535;
136 
137        static final long LENGTH_LONGBLOB = 4294967295L;
138 
139        static final long LENGTH_MEDIUMBLOB = 16777215;
140 
141        static final long LENGTH_TINYBLOB = 255;
142 
143        // Limitations
144        static final int MAX_ROWS = 50000000; // From the MySQL FAQ
145 
146        /**
147         * Used to indicate that the server sent no field-level character set
148         * information, so the driver should use the connection-level character
149         * encoding instead.
150         */
151        public static final int NO_CHARSET_INFO = -1;
152 
153        static final int PING = 14;
154 
155        static final int PROCESS_INFO = 10;
156 
157        static final int PROCESS_KILL = 12;
158 
159        static final int QUERY = 3;
160 
161        static final int QUIT = 1;
162 
163        static final int RELOAD = 7;
164 
165        // ~ Methods
166        // ----------------------------------------------------------------
167 
168        static final int SHUTDOWN = 8;
169 
170        //
171        // Constants defined from mysql
172        //
173        // DB Operations
174        static final int SLEEP = 0;
175 
176        static final int STATISTICS = 9;
177 
178        static final int TIME = 15;
179 
180        /**
181         * Maps the given MySQL type to the correct JDBC type.
182         */
183        static int mysqlToJavaType(int mysqlType) {
184                int jdbcType;
185 
186                switch (mysqlType) {
187                case MysqlDefs.FIELD_TYPE_NEW_DECIMAL:
188                case MysqlDefs.FIELD_TYPE_DECIMAL:
189                        jdbcType = Types.DECIMAL;
190 
191                        break;
192 
193                case MysqlDefs.FIELD_TYPE_TINY:
194                        jdbcType = Types.TINYINT;
195 
196                        break;
197 
198                case MysqlDefs.FIELD_TYPE_SHORT:
199                        jdbcType = Types.SMALLINT;
200 
201                        break;
202 
203                case MysqlDefs.FIELD_TYPE_LONG:
204                        jdbcType = Types.INTEGER;
205 
206                        break;
207 
208                case MysqlDefs.FIELD_TYPE_FLOAT:
209                        jdbcType = Types.REAL;
210 
211                        break;
212 
213                case MysqlDefs.FIELD_TYPE_DOUBLE:
214                        jdbcType = Types.DOUBLE;
215 
216                        break;
217 
218                case MysqlDefs.FIELD_TYPE_NULL:
219                        jdbcType = Types.NULL;
220 
221                        break;
222 
223                case MysqlDefs.FIELD_TYPE_TIMESTAMP:
224                        jdbcType = Types.TIMESTAMP;
225 
226                        break;
227 
228                case MysqlDefs.FIELD_TYPE_LONGLONG:
229                        jdbcType = Types.BIGINT;
230 
231                        break;
232 
233                case MysqlDefs.FIELD_TYPE_INT24:
234                        jdbcType = Types.INTEGER;
235 
236                        break;
237 
238                case MysqlDefs.FIELD_TYPE_DATE:
239                        jdbcType = Types.DATE;
240 
241                        break;
242 
243                case MysqlDefs.FIELD_TYPE_TIME:
244                        jdbcType = Types.TIME;
245 
246                        break;
247 
248                case MysqlDefs.FIELD_TYPE_DATETIME:
249                        jdbcType = Types.TIMESTAMP;
250 
251                        break;
252 
253                case MysqlDefs.FIELD_TYPE_YEAR:
254                        jdbcType = Types.DATE;
255 
256                        break;
257 
258                case MysqlDefs.FIELD_TYPE_NEWDATE:
259                        jdbcType = Types.DATE;
260 
261                        break;
262 
263                case MysqlDefs.FIELD_TYPE_ENUM:
264                        jdbcType = Types.CHAR;
265 
266                        break;
267 
268                case MysqlDefs.FIELD_TYPE_SET:
269                        jdbcType = Types.CHAR;
270 
271                        break;
272 
273                case MysqlDefs.FIELD_TYPE_TINY_BLOB:
274                        jdbcType = Types.VARBINARY;
275 
276                        break;
277 
278                case MysqlDefs.FIELD_TYPE_MEDIUM_BLOB:
279                        jdbcType = Types.LONGVARBINARY;
280 
281                        break;
282 
283                case MysqlDefs.FIELD_TYPE_LONG_BLOB:
284                        jdbcType = Types.LONGVARBINARY;
285 
286                        break;
287 
288                case MysqlDefs.FIELD_TYPE_BLOB:
289                        jdbcType = Types.LONGVARBINARY;
290 
291                        break;
292 
293                case MysqlDefs.FIELD_TYPE_VAR_STRING:
294                case MysqlDefs.FIELD_TYPE_VARCHAR:
295                        jdbcType = Types.VARCHAR;
296 
297                        break;
298 
299                case MysqlDefs.FIELD_TYPE_STRING:
300                        jdbcType = Types.CHAR;
301 
302                        break;
303                case MysqlDefs.FIELD_TYPE_GEOMETRY:
304                        jdbcType = Types.BINARY;
305 
306                        break;
307                case MysqlDefs.FIELD_TYPE_BIT:
308                        jdbcType = Types.BIT;
309 
310                        break;
311                default:
312                        jdbcType = Types.VARCHAR;
313                }
314 
315                return jdbcType;
316        }
317 
318        /**
319         * Maps the given MySQL type to the correct JDBC type.
320         */
321        static int mysqlToJavaType(String mysqlType) {
322                if (mysqlType.equalsIgnoreCase("TINYINT")) { //$NON-NLS-1$
323                        return mysqlToJavaType(FIELD_TYPE_TINY);
324                } else if (mysqlType.equalsIgnoreCase("SMALLINT")) { //$NON-NLS-1$
325                        return mysqlToJavaType(FIELD_TYPE_SHORT);
326                } else if (mysqlType.equalsIgnoreCase("MEDIUMINT")) { //$NON-NLS-1$
327                        return mysqlToJavaType(FIELD_TYPE_INT24);
328                } else if (mysqlType.equalsIgnoreCase("INT") || mysqlType.equalsIgnoreCase("INTEGER")) { //$NON-NLS-1$ //$NON-NLS-2$
329                        return mysqlToJavaType(FIELD_TYPE_LONG);
330                } else if (mysqlType.equalsIgnoreCase("BIGINT")) { //$NON-NLS-1$
331                        return mysqlToJavaType(FIELD_TYPE_LONGLONG);
332                } else if (mysqlType.equalsIgnoreCase("INT24")) { //$NON-NLS-1$
333                        return mysqlToJavaType(FIELD_TYPE_INT24);
334                } else if (mysqlType.equalsIgnoreCase("REAL")) { //$NON-NLS-1$
335                        return mysqlToJavaType(FIELD_TYPE_DOUBLE);
336                } else if (mysqlType.equalsIgnoreCase("FLOAT")) { //$NON-NLS-1$
337                        return mysqlToJavaType(FIELD_TYPE_FLOAT);
338                } else if (mysqlType.equalsIgnoreCase("DECIMAL")) { //$NON-NLS-1$
339                        return mysqlToJavaType(FIELD_TYPE_DECIMAL);
340                } else if (mysqlType.equalsIgnoreCase("NUMERIC")) { //$NON-NLS-1$
341                        return mysqlToJavaType(FIELD_TYPE_DECIMAL);
342                } else if (mysqlType.equalsIgnoreCase("DOUBLE")) { //$NON-NLS-1$
343                        return mysqlToJavaType(FIELD_TYPE_DOUBLE);
344                } else if (mysqlType.equalsIgnoreCase("CHAR")) { //$NON-NLS-1$
345                        return mysqlToJavaType(FIELD_TYPE_STRING);
346                } else if (mysqlType.equalsIgnoreCase("VARCHAR")) { //$NON-NLS-1$
347                        return mysqlToJavaType(FIELD_TYPE_VAR_STRING);
348                } else if (mysqlType.equalsIgnoreCase("DATE")) { //$NON-NLS-1$
349                        return mysqlToJavaType(FIELD_TYPE_DATE);
350                } else if (mysqlType.equalsIgnoreCase("TIME")) { //$NON-NLS-1$
351                        return mysqlToJavaType(FIELD_TYPE_TIME);
352                } else if (mysqlType.equalsIgnoreCase("YEAR")) { //$NON-NLS-1$
353                        return mysqlToJavaType(FIELD_TYPE_YEAR);
354                } else if (mysqlType.equalsIgnoreCase("TIMESTAMP")) { //$NON-NLS-1$
355                        return mysqlToJavaType(FIELD_TYPE_TIMESTAMP);
356                } else if (mysqlType.equalsIgnoreCase("DATETIME")) { //$NON-NLS-1$
357                        return mysqlToJavaType(FIELD_TYPE_DATETIME);
358                } else if (mysqlType.equalsIgnoreCase("TINYBLOB")) { //$NON-NLS-1$
359                        return java.sql.Types.BINARY;
360                } else if (mysqlType.equalsIgnoreCase("BLOB")) { //$NON-NLS-1$
361                        return java.sql.Types.LONGVARBINARY;
362                } else if (mysqlType.equalsIgnoreCase("MEDIUMBLOB")) { //$NON-NLS-1$
363                        return java.sql.Types.LONGVARBINARY;
364                } else if (mysqlType.equalsIgnoreCase("LONGBLOB")) { //$NON-NLS-1$
365                        return java.sql.Types.LONGVARBINARY;
366                } else if (mysqlType.equalsIgnoreCase("TINYTEXT")) { //$NON-NLS-1$
367                        return java.sql.Types.VARCHAR;
368                } else if (mysqlType.equalsIgnoreCase("TEXT")) { //$NON-NLS-1$
369                        return java.sql.Types.LONGVARCHAR;
370                } else if (mysqlType.equalsIgnoreCase("MEDIUMTEXT")) { //$NON-NLS-1$
371                        return java.sql.Types.LONGVARCHAR;
372                } else if (mysqlType.equalsIgnoreCase("LONGTEXT")) { //$NON-NLS-1$
373                        return java.sql.Types.LONGVARCHAR;
374                } else if (mysqlType.equalsIgnoreCase("ENUM")) { //$NON-NLS-1$
375                        return mysqlToJavaType(FIELD_TYPE_ENUM);
376                } else if (mysqlType.equalsIgnoreCase("SET")) { //$NON-NLS-1$
377                        return mysqlToJavaType(FIELD_TYPE_SET);
378                } else if (mysqlType.equalsIgnoreCase("GEOMETRY")) {
379                        return mysqlToJavaType(FIELD_TYPE_GEOMETRY);
380                } else if (mysqlType.equalsIgnoreCase("BINARY")) {
381                        return Types.BINARY; // no concrete type on the wire
382                } else if (mysqlType.equalsIgnoreCase("VARBINARY")) {
383                        return Types.VARBINARY; // no concrete type on the wire
384                } else if (mysqlType.equalsIgnoreCase("BIT")) {
385                        return mysqlToJavaType(FIELD_TYPE_BIT);
386                }
387 
388                // Punt
389                return java.sql.Types.OTHER;
390        }
391 
392        /**
393         * @param mysqlType
394         * @return
395         */
396        public static String typeToName(int mysqlType) {
397                switch (mysqlType) {
398                case MysqlDefs.FIELD_TYPE_DECIMAL:
399                        return "FIELD_TYPE_DECIMAL";
400 
401                case MysqlDefs.FIELD_TYPE_TINY:
402                        return "FIELD_TYPE_TINY";
403 
404                case MysqlDefs.FIELD_TYPE_SHORT:
405                        return "FIELD_TYPE_SHORT";
406 
407                case MysqlDefs.FIELD_TYPE_LONG:
408                        return "FIELD_TYPE_LONG";
409 
410                case MysqlDefs.FIELD_TYPE_FLOAT:
411                        return "FIELD_TYPE_FLOAT";
412 
413                case MysqlDefs.FIELD_TYPE_DOUBLE:
414                        return "FIELD_TYPE_DOUBLE";
415 
416                case MysqlDefs.FIELD_TYPE_NULL:
417                        return "FIELD_TYPE_NULL";
418 
419                case MysqlDefs.FIELD_TYPE_TIMESTAMP:
420                        return "FIELD_TYPE_TIMESTAMP";
421 
422                case MysqlDefs.FIELD_TYPE_LONGLONG:
423                        return "FIELD_TYPE_LONGLONG";
424 
425                case MysqlDefs.FIELD_TYPE_INT24:
426                        return "FIELD_TYPE_INT24";
427 
428                case MysqlDefs.FIELD_TYPE_DATE:
429                        return "FIELD_TYPE_DATE";
430 
431                case MysqlDefs.FIELD_TYPE_TIME:
432                        return "FIELD_TYPE_TIME";
433 
434                case MysqlDefs.FIELD_TYPE_DATETIME:
435                        return "FIELD_TYPE_DATETIME";
436 
437                case MysqlDefs.FIELD_TYPE_YEAR:
438                        return "FIELD_TYPE_YEAR";
439 
440                case MysqlDefs.FIELD_TYPE_NEWDATE:
441                        return "FIELD_TYPE_NEWDATE";
442 
443                case MysqlDefs.FIELD_TYPE_ENUM:
444                        return "FIELD_TYPE_ENUM";
445 
446                case MysqlDefs.FIELD_TYPE_SET:
447                        return "FIELD_TYPE_SET";
448 
449                case MysqlDefs.FIELD_TYPE_TINY_BLOB:
450                        return "FIELD_TYPE_TINY_BLOB";
451 
452                case MysqlDefs.FIELD_TYPE_MEDIUM_BLOB:
453                        return "FIELD_TYPE_MEDIUM_BLOB";
454 
455                case MysqlDefs.FIELD_TYPE_LONG_BLOB:
456                        return "FIELD_TYPE_LONG_BLOB";
457 
458                case MysqlDefs.FIELD_TYPE_BLOB:
459                        return "FIELD_TYPE_BLOB";
460 
461                case MysqlDefs.FIELD_TYPE_VAR_STRING:
462                        return "FIELD_TYPE_VAR_STRING";
463 
464                case MysqlDefs.FIELD_TYPE_STRING:
465                        return "FIELD_TYPE_STRING";
466 
467                case MysqlDefs.FIELD_TYPE_VARCHAR:
468                        return "FIELD_TYPE_VARCHAR";
469 
470                case MysqlDefs.FIELD_TYPE_GEOMETRY:
471                        return "FIELD_TYPE_GEOMETRY";
472 
473                default:
474                        return " Unknown MySQL Type # " + mysqlType;
475                }
476        }
477}

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