summaryrefslogtreecommitdiff
path: root/storage/connect/myutil.cpp
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2013-12-28 15:46:49 +0100
committerOlivier Bertrand <bertrandop@gmail.com>2013-12-28 15:46:49 +0100
commitc055e5e0efcdd3750550230a483cdf8847b3d414 (patch)
tree77384e1d1f2f168c3d1df7a58d72a620f3416e46 /storage/connect/myutil.cpp
parent889b08b050a1d7e8a5bb842e5d72b4b18be139e4 (diff)
downloadmariadb-git-c055e5e0efcdd3750550230a483cdf8847b3d414.tar.gz
- Add the DECIMAL data type (TYPE_DECIM)
Change the variable name of the DOUBLE type from TYPE_FLOAT to TYPE_DOUBLE Change some names to reflect ODBC version 3. This affects some variable names, function names and catalog table column names. Qualifier -> Catalog Owner (Creator) -> Schema Length -> Precision Prec -> Scale modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/filamdbf.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/mysql_new.result storage/connect/mysql-test/connect/r/odbc_oracle.result storage/connect/myutil.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/rcmsg.c storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.cpp storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabutil.cpp storage/connect/tabwmi.cpp storage/connect/tabxml.cpp storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h - Fix crash when GetTDB returned NULL in Open_Table modified: storage/connect/ha_connect.cc - Fix assert error setting double values from PSZ modified: storage/connect/valblk.cpp
Diffstat (limited to 'storage/connect/myutil.cpp')
-rw-r--r--storage/connect/myutil.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/storage/connect/myutil.cpp b/storage/connect/myutil.cpp
index 4bfdc1a03ec..1594afb1b3d 100644
--- a/storage/connect/myutil.cpp
+++ b/storage/connect/myutil.cpp
@@ -42,9 +42,10 @@ int MYSQLtoPLG(char *typname, char *var)
!stricmp(typname, "text") || !stricmp(typname, "blob"))
type = TYPE_STRING;
else if (!stricmp(typname, "double") || !stricmp(typname, "float") ||
- !stricmp(typname, "real") ||
- !stricmp(typname, "decimal") || !stricmp(typname, "numeric"))
- type = TYPE_FLOAT;
+ !stricmp(typname, "real"))
+ type = TYPE_DOUBLE;
+ else if (!stricmp(typname, "decimal") || !stricmp(typname, "numeric"))
+ type = TYPE_DECIM;
else if (!stricmp(typname, "date") || !stricmp(typname, "datetime") ||
!stricmp(typname, "time") || !stricmp(typname, "timestamp") ||
!stricmp(typname, "year"))
@@ -95,7 +96,7 @@ enum enum_field_types PLGtoMYSQL(int type, bool dbf, char v)
case TYPE_SHORT:
mytype = MYSQL_TYPE_SHORT;
break;
- case TYPE_FLOAT:
+ case TYPE_DOUBLE:
mytype = MYSQL_TYPE_DOUBLE;
break;
case TYPE_DATE:
@@ -114,6 +115,13 @@ enum enum_field_types PLGtoMYSQL(int type, bool dbf, char v)
case TYPE_TINY:
mytype = MYSQL_TYPE_TINY;
break;
+ case TYPE_DECIM:
+#if !defined(ALPHA)
+ mytype = MYSQL_TYPE_NEWDECIMAL;
+#else // ALPHA
+ mytype = MYSQL_TYPE_DECIMAL;
+#endif // ALPHA
+ break;
default:
mytype = MYSQL_TYPE_NULL;
} // endswitch mytype
@@ -129,7 +137,7 @@ const char *PLGtoMYSQLtype(int type, bool dbf, char v)
switch (type) {
case TYPE_INT: return "INT";
case TYPE_SHORT: return "SMALLINT";
- case TYPE_FLOAT: return "DOUBLE";
+ case TYPE_DOUBLE: return "DOUBLE";
case TYPE_DATE: return dbf ? "DATE" :
(v == 'S') ? "TIMESTAMP" :
(v == 'D') ? "DATE" :
@@ -138,6 +146,7 @@ const char *PLGtoMYSQLtype(int type, bool dbf, char v)
case TYPE_STRING: return v ? "VARCHAR" : "CHAR";
case TYPE_BIGINT: return "BIGINT";
case TYPE_TINY: return "TINYINT";
+ case TYPE_DECIM: return "DECIMAL";
default: return "CHAR(0)";
} // endswitch mytype
@@ -170,9 +179,11 @@ int MYSQLtoPLG(int mytype, char *var)
#if !defined(ALPHA)
case MYSQL_TYPE_NEWDECIMAL:
#endif // !ALPHA)
+ type = TYPE_DECIM;
+ break;
case MYSQL_TYPE_FLOAT:
case MYSQL_TYPE_DOUBLE:
- type = TYPE_FLOAT;
+ type = TYPE_DOUBLE;
break;
case MYSQL_TYPE_TIMESTAMP:
case MYSQL_TYPE_DATE: