diff options
author | Olivier Bertrand <bertrandop@gmail.com> | 2013-12-28 15:46:49 +0100 |
---|---|---|
committer | Olivier Bertrand <bertrandop@gmail.com> | 2013-12-28 15:46:49 +0100 |
commit | c055e5e0efcdd3750550230a483cdf8847b3d414 (patch) | |
tree | 77384e1d1f2f168c3d1df7a58d72a620f3416e46 /storage/connect/myutil.cpp | |
parent | 889b08b050a1d7e8a5bb842e5d72b4b18be139e4 (diff) | |
download | mariadb-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.cpp | 23 |
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: |