diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2021-10-29 13:01:02 +0200 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2021-10-29 13:01:02 +0200 |
commit | facd9d524d102df30f9f90bab427aa4fd8c60e2e (patch) | |
tree | 535fd5270b3b628bc21301b66478b6b26e4429d8 | |
parent | dbd6c6dc01228fe6e63f3f7dc695eb56ca8cd28d (diff) | |
parent | 1974df01d5fddcfd891809dcea2c6d922b009682 (diff) | |
download | mariadb-git-facd9d524d102df30f9f90bab427aa4fd8c60e2e.tar.gz |
Merge branch '10.5' into 10.6
m--------- | extra/wolfssl/wolfssl | 0 | ||||
-rw-r--r-- | sql/sql_cursor.h | 4 | ||||
-rw-r--r-- | sql/sql_prepare.h | 4 | ||||
-rw-r--r-- | sql/threadpool_generic.cc | 4 | ||||
-rw-r--r-- | storage/connect/colblk.h | 2 | ||||
-rw-r--r-- | storage/connect/mysql-test/connect/t/mongo.inc | 12 | ||||
-rw-r--r-- | storage/connect/odbconn.cpp | 9 | ||||
-rw-r--r-- | storage/connect/tabbson.cpp | 21 | ||||
-rw-r--r-- | storage/connect/tabbson.h | 2 |
9 files changed, 38 insertions, 20 deletions
diff --git a/extra/wolfssl/wolfssl b/extra/wolfssl/wolfssl -Subproject add4a68465bcdad238bcf3e5f2771d8da05e628 +Subproject 723ed009ae5dc68acc14cd7664f93503d64cd51 diff --git a/sql/sql_cursor.h b/sql/sql_cursor.h index 00b9cd4e67a..b9d0b41ea19 100644 --- a/sql/sql_cursor.h +++ b/sql/sql_cursor.h @@ -39,7 +39,7 @@ class JOIN; its base class. */ -class Server_side_cursor: protected Query_arena, public Sql_alloc +class Server_side_cursor: protected Query_arena { protected: /** Row destination used for fetch */ @@ -61,6 +61,8 @@ public: } virtual ~Server_side_cursor(); + static void *operator new(size_t size, MEM_ROOT *mem_root) + { return alloc_root(mem_root, size); } static void operator delete(void *ptr, size_t size); static void operator delete(void *, MEM_ROOT *){} }; diff --git a/sql/sql_prepare.h b/sql/sql_prepare.h index 166be95eb89..1e81b9f80e6 100644 --- a/sql/sql_prepare.h +++ b/sql/sql_prepare.h @@ -115,7 +115,7 @@ class Ed_row; automatic type conversion. */ -class Ed_result_set: public Sql_alloc +class Ed_result_set { public: operator List<Ed_row>&() { return *m_rows; } @@ -129,6 +129,8 @@ public: size_t get_field_count() const { return m_column_count; } + static void *operator new(size_t size, MEM_ROOT *mem_root) + { return alloc_root(mem_root, size); } static void operator delete(void *ptr, size_t size) throw (); static void operator delete(void *, MEM_ROOT *){} private: diff --git a/sql/threadpool_generic.cc b/sql/threadpool_generic.cc index c265bc9de8a..eb08441a4d5 100644 --- a/sql/threadpool_generic.cc +++ b/sql/threadpool_generic.cc @@ -1746,9 +1746,9 @@ static void print_pool_blocked_message(bool max_threads_reached) if (now > pool_block_start + BLOCK_MSG_DELAY && !msg_written) { if (max_threads_reached) - sql_print_error(MAX_THREADS_REACHED_MSG); + sql_print_warning(MAX_THREADS_REACHED_MSG); else - sql_print_error(CREATE_THREAD_ERROR_MSG, my_errno); + sql_print_warning(CREATE_THREAD_ERROR_MSG, my_errno); sql_print_information("Threadpool has been blocked for %u seconds\n", (uint)((now- pool_block_start)/1000000)); diff --git a/storage/connect/colblk.h b/storage/connect/colblk.h index 7f1af8b8368..c9712f516b5 100644 --- a/storage/connect/colblk.h +++ b/storage/connect/colblk.h @@ -1,7 +1,7 @@ /*************** Colblk H Declares Source Code File (.H) ***************/ /* Name: COLBLK.H Version 1.7 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2005-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 2005-2019 */ /* */ /* This file contains the COLBLK and derived classes declares. */ /***********************************************************************/ diff --git a/storage/connect/mysql-test/connect/t/mongo.inc b/storage/connect/mysql-test/connect/t/mongo.inc index fab2ca84139..25c3f207696 100644 --- a/storage/connect/mysql-test/connect/t/mongo.inc +++ b/storage/connect/mysql-test/connect/t/mongo.inc @@ -1,3 +1,11 @@ -let $MONGO= C:/Applic/MongoDB/Server/3.6/bin/mongo; -let $MONGOIMPORT= C:/Applic/MongoDB/Server/3.6/bin/mongoimport; +#let $MONGO= C:/Applic/MongoDB/Server/3.6/bin/mongo; +#let $MONGOIMPORT= C:/Applic/MongoDB/Server/3.6/bin/mongoimport; +let $MONGO= mongo; +let $MONGOIMPORT= mongoimport; + + + + + + diff --git a/storage/connect/odbconn.cpp b/storage/connect/odbconn.cpp index c7843dfe245..50069b7433b 100644 --- a/storage/connect/odbconn.cpp +++ b/storage/connect/odbconn.cpp @@ -1,7 +1,7 @@ /***********************************************************************/ -/* Name: ODBCONN.CPP Version 2.3 */ +/* Name: ODBCONN.CPP Version 2.4 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 1998-2017 */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2021 */ /* */ /* This file contains the ODBC connection classes functions. */ /***********************************************************************/ @@ -1509,7 +1509,7 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) ThrowDBX(MSG(COL_NUM_MISM)); // Now bind the column buffers - for (n = 1, colp = tocols; colp; colp = (PODBCCOL)colp->GetNext()) + for (colp = tocols; colp; colp = (PODBCCOL)colp->GetNext()) if (!colp->IsSpecial()) { buffer = colp->GetBuffer(m_RowsetSize); len = colp->GetBuflen(); @@ -1525,12 +1525,11 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) htrc("Binding col=%u type=%d buf=%p len=%d slen=%p\n", n, tp, buffer, len, colp->GetStrLen()); - rc = SQLBindCol(hstmt, n, tp, buffer, len, colp->GetStrLen()); + rc = SQLBindCol(hstmt, colp->GetIndex(), tp, buffer, len, colp->GetStrLen()); if (!Check(rc)) ThrowDBX(rc, "SQLBindCol", hstmt); - n++; } // endif pcol } catch(DBX *x) { diff --git a/storage/connect/tabbson.cpp b/storage/connect/tabbson.cpp index de272798e7c..871a54c8c94 100644 --- a/storage/connect/tabbson.cpp +++ b/storage/connect/tabbson.cpp @@ -376,7 +376,7 @@ int BSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) } // endswitch ReadDB } else - jsp = bp->GetArrayValue(bdp, i); + jsp = bp->GetNext(jsp); if (!(row = (jsp) ? bp->GetObject(jsp) : NULL)) break; @@ -2187,7 +2187,9 @@ void BSONCOL::WriteColumn(PGLOBAL g) TDBBSON::TDBBSON(PGLOBAL g, PBDEF tdp, PTXF txfp) : TDBBSN(g, tdp, txfp) { Docp = NULL; + Docrow = NULL; Multiple = tdp->Multiple; + Docsize = 0; Done = Changed = false; Bp->SetPretty(2); } // end of TDBBSON standard constructor @@ -2195,7 +2197,9 @@ TDBBSON::TDBBSON(PGLOBAL g, PBDEF tdp, PTXF txfp) : TDBBSN(g, tdp, txfp) TDBBSON::TDBBSON(PBTDB tdbp) : TDBBSN(tdbp) { Docp = tdbp->Docp; + Docrow = tdbp->Docrow; Multiple = tdbp->Multiple; + Docsize = tdbp->Docsize; Done = tdbp->Done; Changed = tdbp->Changed; } // end of TDBBSON copy constructor @@ -2376,6 +2380,7 @@ int TDBBSON::MakeDocument(PGLOBAL g) } // endif jsp + Docsize = Bp->GetSize(Docp); Done = true; return RC_OK; } // end of MakeDocument @@ -2390,7 +2395,7 @@ int TDBBSON::Cardinality(PGLOBAL g) else if (Cardinal < 0) { if (!Multiple) { if (MakeDocument(g) == RC_OK) - Cardinal = Bp->GetSize(Docp); + Cardinal = Docsize; } else return 10; @@ -2419,6 +2424,7 @@ void TDBBSON::ResetSize(void) MaxSize = Cardinal = -1; Fpos = -1; N = 0; + Docrow = NULL; Done = false; } // end of ResetSize @@ -2477,6 +2483,7 @@ bool TDBBSON::SetRecpos(PGLOBAL, int recpos) #endif // 0 Fpos = recpos - 1; + Docrow = NULL; return false; } // end of SetRecpos @@ -2492,6 +2499,7 @@ bool TDBBSON::OpenDB(PGLOBAL g) Fpos = -1; NextSame = false; SameRow = 0; + Docrow = NULL; return false; } // endif use @@ -2532,12 +2540,9 @@ int TDBBSON::ReadDB(PGLOBAL) NextSame = false; M++; rc = RC_OK; - } else if (++Fpos < (signed)Bp->GetSize(Docp)) { - Row = Bp->GetArrayValue(Docp, Fpos); - - if (Row->Type == TYPE_JVAL) - Row = Bp->GetBson(Row); - + } else if (++Fpos < Docsize) { + Docrow = (Docrow) ? Bp->GetNext(Docrow) : Bp->GetArrayValue(Docp, Fpos); + Row = (Docrow->Type == TYPE_JVAL) ? Bp->GetBson(Docrow) : Docrow; SameRow = 0; M = 1; rc = RC_OK; diff --git a/storage/connect/tabbson.h b/storage/connect/tabbson.h index 7f41bba6bd9..1696f4dfdbc 100644 --- a/storage/connect/tabbson.h +++ b/storage/connect/tabbson.h @@ -318,7 +318,9 @@ protected: // Members PBVAL Docp; // The document array + PBVAL Docrow; // Document row int Multiple; // 0: No 1: DIR 2: Section 3: filelist + int Docsize; // The document size bool Done; // True when document parsing is done bool Changed; // After Update, Insert or Delete }; // end of class TDBBSON |