summaryrefslogtreecommitdiff
path: root/storage/connect/table.cpp
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2014-10-21 17:29:51 +0200
committerOlivier Bertrand <bertrandop@gmail.com>2014-10-21 17:29:51 +0200
commit56e27713213e5b0f7be6b3ac01f06ee26584f38a (patch)
tree38df18a52a5bdff0df36a5bc0786745091bfe179 /storage/connect/table.cpp
parentc65a9fb4c6a0c7aade6fa4c52641cfec3a88b377 (diff)
downloadmariadb-git-56e27713213e5b0f7be6b3ac01f06ee26584f38a.tar.gz
1) Handling string memory allocation with a new STRING class. This is only
the beginning. Defining the STRING class and begining to use it (MYSQL) 2) Change the xtrace, use_tempfile and exact_info connect variables from GLOBAL to SESSION. Remaining GLOBAL variables have been made readonly. 3) Take care of LEX_STRING variables. The .str should not be regarded as allways being 0 terminated. This is handled by the Strz functions that make sure to return 0 terminated strings. Bug fix: - When inserting in MYSQL table with special column(s) a query such as: insert into t2 values(0,4,'new04'),(0,5,'new05'); failed saying: column id (the special column) not found in t2. It is now accepted but must be counted in values (these 0 are ignored) - ROWID was returning row numbers based 0. Now it is from base 1. modified: storage/connect/array.cpp storage/connect/blkfil.cpp storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamtxt.cpp storage/connect/filamvct.cpp storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/filter.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/libdoc.cpp storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/odbconn.cpp storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabdos.cpp storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/table.cpp storage/connect/tabmul.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabsys.cpp storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabvct.cpp storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxcl.cpp storage/connect/tabxml.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
Diffstat (limited to 'storage/connect/table.cpp')
-rw-r--r--storage/connect/table.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/storage/connect/table.cpp b/storage/connect/table.cpp
index 5db50d44787..b093e2102c2 100644
--- a/storage/connect/table.cpp
+++ b/storage/connect/table.cpp
@@ -28,8 +28,6 @@
int TDB::Tnum = 0;
-extern "C" int trace; // The general trace value
-
/***********************************************************************/
/* Utility routines. */
/***********************************************************************/
@@ -193,6 +191,18 @@ PSZ TDBASE::GetPath(void)
} // end of GetPath
/***********************************************************************/
+/* Return true if name is a special column of this table. */
+/***********************************************************************/
+bool TDBASE::IsSpecial(PSZ name)
+ {
+ for (PCOLDEF cdp = To_Def->GetCols(); cdp; cdp = cdp->GetNext())
+ if (!stricmp(cdp->GetName(), name) && (cdp->Flags & U_SPECIAL))
+ return true; // Special column to ignore while inserting
+
+ return false; // Not found or not special or not inserting
+ } // end of IsSpecial
+
+/***********************************************************************/
/* Initialize TDBASE based column description block construction. */
/* name is used to call columns by name. */
/* num is used by TBL to construct columns by index number. */