mirror of
https://github.com/MariaDB/server.git
synced 2025-04-18 21:25:32 +02:00
- Fix a bug in XCOL tables. When a row was filtered internally the XColumn
was not reset causing rows to be lost. modified: storage/connect/connect.cc storage/connect/ha_connect.cc storage/connect/tabxcl.cpp - Typo modified: storage/connect/connect.cc storage/connect/ha_connect.cc
This commit is contained in:
parent
c4cf40c21b
commit
652b964827
3 changed files with 8 additions and 7 deletions
storage/connect
|
@ -416,14 +416,14 @@ RCODE EvalColumns(PGLOBAL g, PTDB tdbp, bool mrr)
|
|||
|
||||
for (colp= tdbp->GetColumns(); rc == RC_OK && colp;
|
||||
colp= colp->GetNext()) {
|
||||
colp->Reset();
|
||||
colp->Reset();
|
||||
|
||||
// Virtual columns are computed by MariaDB
|
||||
if (!colp->GetColUse(U_VIRTUAL) && (!mrr || colp->GetKcol()))
|
||||
if (colp->Eval(g))
|
||||
rc= RC_FX;
|
||||
// Virtual columns are computed by MariaDB
|
||||
if (!colp->GetColUse(U_VIRTUAL) && (!mrr || colp->GetKcol()))
|
||||
if (colp->Eval(g))
|
||||
rc= RC_FX;
|
||||
|
||||
} // endfor colp
|
||||
} // endfor colp
|
||||
|
||||
err:
|
||||
g->jump_level--;
|
||||
|
|
|
@ -2188,7 +2188,7 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond)
|
|||
|
||||
if (trace)
|
||||
htrc("Func type=%d argnum=%d\n", condf->functype(),
|
||||
condf->argument_count());
|
||||
condf->argument_count());
|
||||
|
||||
switch (condf->functype()) {
|
||||
case Item_func::EQUAL_FUNC:
|
||||
|
|
|
@ -266,6 +266,7 @@ bool XCLCOL::Init(PGLOBAL g, PTDBASE tp)
|
|||
void XCLCOL::ReadColumn(PGLOBAL g)
|
||||
{
|
||||
if (((PTDBXCL)To_Tdb)->New) {
|
||||
Colp->Reset(); // In case of failed filtering
|
||||
Colp->Eval(g);
|
||||
strncpy(Cbuf, To_Val->GetCharValue(), Colp->GetLength());
|
||||
Cbuf[Colp->GetLength()] = 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue