~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/statement/commit.cc

  • Committer: Lee Bieber
  • Date: 2009-10-20 20:39:01 UTC
  • mto: This revision was merged to the branch mainline in revision 1191.
  • Revision ID: lbieber@dhcp-umpk18-111-94.sfbay.sun.com-20091020203901-wmeq850fgv7iiqff
Add test case for MySQL BUG #42742: crash in setup_sj_materialization, Copy_field::set
If a semi-join strategy covers certain [first_table; last_table] range in join order, do reset the sj_strategy member for all tables within the range, except the first one.  Failure to do so caused EXPLAIN/execution code to try applying two strategies at once which would cause all kinds of undesired effects. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
3
 *
4
 
 *  Copyright (C) 2009 Sun Microsystems, Inc.
 
4
 *  Copyright (C) 2009 Sun Microsystems
5
5
 *
6
6
 *  This program is free software; you can redistribute it and/or modify
7
7
 *  it under the terms of the GNU General Public License as published by
18
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
 */
20
20
 
21
 
#include "config.h"
 
21
#include <drizzled/server_includes.h>
22
22
#include <drizzled/show.h>
23
23
#include <drizzled/session.h>
24
24
#include <drizzled/statement/commit.h>
25
25
 
26
 
namespace drizzled
27
 
{
 
26
using namespace drizzled;
28
27
 
29
28
bool statement::Commit::execute()
30
29
{
31
 
  if (! getSession()->endTransaction(tx_release ? COMMIT_RELEASE : tx_chain ? COMMIT_AND_CHAIN : COMMIT))
 
30
  if (! session->endTransaction(tx_release ? COMMIT_RELEASE : tx_chain ? COMMIT_AND_CHAIN : COMMIT))
32
31
  {
33
32
    return true;
34
33
  }
35
 
  getSession()->my_ok();
 
34
  session->my_ok();
36
35
  return false;
37
36
}
38
 
 
39
 
} /* namespace drizzled */
40