Commit 2f770c91 authored by davi@skynet.(none)'s avatar davi@skynet.(none)
Browse files

Bug#27430 Crash in subquery code when in PS and table DDL changed after PREPARE

Add test target to the makefile that will cause all
statements to be re-prepared before execution.
parent aef39682
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ tags:
  test-pl test-force-pl test-full-pl test-force-full-pl test-force-pl-mem \
  test-unit test-ps test-nr test-pr test-ns test-binlog-statement \
  test-ext-funcs test-ext-rpl test-ext-partitions test-ext-jp \
  test-ext-stress test-ext test-embedded \
  test-ext-stress test-ext test-embedded test-reprepare \
  test-fast test-fast-cursor test-fast-view test-fast-prepare \
  test-full-qa

@@ -111,6 +111,11 @@ test-embedded:
	  echo "no program found for 'embedded' tests - skipped testing" ; \
	fi

test-reprepare:
	cd mysql-test ; \
	    @PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol \
		--mysqld=--debug=+d,reprepare_each_statement

test:	test-unit test-ns test-pr

test-full:	test test-nr test-ps
+4 −3
Original line number Diff line number Diff line
@@ -3770,16 +3770,17 @@ check_and_update_table_version(THD *thd,
    /* Always maintain the latest version and type */
    tables->set_metadata_id(table_share);
  }
#if 0

#ifndef DBUG_OFF
  /* Spuriously reprepare each statement. */
  if (thd->m_metadata_observer && thd->stmt_arena->is_reprepared == FALSE)
  if (_db_strict_keyword_("reprepare_each_statement") &&
      thd->m_metadata_observer && thd->stmt_arena->is_reprepared == FALSE)
  {
    thd->m_metadata_observer->report_error(thd);
    return TRUE;
  }
#endif
#endif

  return FALSE;
}