summaryrefslogtreecommitdiff
path: root/storage/connect/valblk.cpp
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2014-02-03 16:14:13 +0100
committerOlivier Bertrand <bertrandop@gmail.com>2014-02-03 16:14:13 +0100
commit5133cb5e2530954a23b93ee22a49273f7333e36b (patch)
tree42b7b2654c305d6a19aa426d153300ad369b788c /storage/connect/valblk.cpp
parent4d5f5f4cdf8c99bf693fd78490524a72418f1f45 (diff)
downloadmariadb-git-5133cb5e2530954a23b93ee22a49273f7333e36b.tar.gz
This is a major update of CONNECT that goes from version 1.1 to 1.2
=================================================================== - Implement a first support of the ALTER TABLE command. This fixes MDEV-5440 but does much more than only that. See the details of how ALTER is supported in the new documentation and also in MDEV-5440 comment. This is done principally by implementing for CONNECT the virtual function check_if_supported_inplace_alter. modified: storage/connect/connect.cc storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/index.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/occur.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/t/dbf.test storage/connect/plugutil.c storage/connect/user_connect.cc - Fixes the tabname/table_name issue for XML tables. Implement multiple files XML tables. modified: storage/connect/tabxml.cpp storage/connect/tabxml.h - Set to varchar(256) the fields of catalog tables stored as STRBLK's (had length 0 --> CHAR(1)) Add the GetCharString function to the VALBLK class modified: storage/connect/ha_connect.cc storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp - Translate CONNECT error messages to system_charset to avoid truncation on not ASCII characters. modified: storage/connect/ha_connect.cc - Update version number modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/r/xml.result - Move the TDBASE::data_charset body from xtable.h to table.cpp. (dont' remember why) modified: storage/connect/table.cpp storage/connect/xtable.h - Other modifications are to enhance the support of OEM tables. In particular, they can now provide column definition in dicovery. modified: storage/connect/colblk.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/xtable.h - Or to add or modify tracing. modified: storage/connect/filamtxt.cpp storage/connect/ha_connect.cc storage/connect/plgdbutl.cpp storage/connect/tabfix.cpp storage/connect/tabmysql.cpp
Diffstat (limited to 'storage/connect/valblk.cpp')
-rw-r--r--storage/connect/valblk.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/storage/connect/valblk.cpp b/storage/connect/valblk.cpp
index bef5d6ef716..c0127072896 100644
--- a/storage/connect/valblk.cpp
+++ b/storage/connect/valblk.cpp
@@ -1,7 +1,7 @@
/************ Valblk C++ Functions Source Code File (.CPP) *************/
-/* Name: VALBLK.CPP Version 2.0 */
+/* Name: VALBLK.CPP Version 2.1 */
/* */
-/* (C) Copyright to the author Olivier BERTRAND 2005-2013 */
+/* (C) Copyright to the author Olivier BERTRAND 2005-2014 */
/* */
/* This file contains the VALBLK and derived classes functions. */
/* Second family is VALBLK, representing simple suballocated arrays */
@@ -237,6 +237,23 @@ void TYPBLK<TYPE>::Init(PGLOBAL g, bool check)
} // end of Init
/***********************************************************************/
+/* TYPVAL GetCharString: get string representation of a typed value. */
+/***********************************************************************/
+template <class TYPE>
+char *TYPBLK<TYPE>::GetCharString(char *p, int n)
+ {
+ sprintf(p, Fmt, Typp[n]);
+ return p;
+ } // end of GetCharString
+
+template <>
+char *TYPBLK<double>::GetCharString(char *p, int n)
+ {
+ sprintf(p, Fmt, Prec, Typp[n]);
+ return p;
+ } // end of GetCharString
+
+/***********************************************************************/
/* Set one value in a block. */
/***********************************************************************/
template <class TYPE>
@@ -678,6 +695,14 @@ double CHRBLK::GetFloatValue(int n)
} // end of GetFloatValue
/***********************************************************************/
+/* STRING GetCharString: get string representation of a char value. */
+/***********************************************************************/
+char *CHRBLK::GetCharString(char *p, int n)
+ {
+ return (char *)GetValPtrEx(n);
+ } // end of GetCharString
+
+/***********************************************************************/
/* Set one value in a block. */
/***********************************************************************/
void CHRBLK::SetValue(PVAL valp, int n)
@@ -1186,6 +1211,22 @@ bool DATBLK::SetFormat(PGLOBAL g, PSZ fmt, int len, int year)
} // end of SetFormat
/***********************************************************************/
+/* DTVAL GetCharString: get string representation of a date value. */
+/***********************************************************************/
+char *DATBLK::GetCharString(char *p, int n)
+ {
+ char *vp;
+
+ if (Dvalp) {
+ Dvalp->SetValue(Typp[n]);
+ vp = Dvalp->GetCharString(p);
+ } else
+ vp = TYPBLK<int>::GetCharString(p, n);
+
+ return vp;
+ } // end of GetCharString
+
+/***********************************************************************/
/* Set one value in a block from a char string. */
/***********************************************************************/
void DATBLK::SetValue(PSZ p, int n)