~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to m4/progtest.m4

  • Committer: Prafulla Tekawade
  • Date: 2010-07-18 03:36:32 UTC
  • mto: (1662.1.4 rollup)
  • mto: This revision was merged to the branch mainline in revision 1664.
  • Revision ID: prafulla_t@users.sourceforge.net-20100718033632-p7q6qtgliqbhe38p
Fix for Bug 592444

There were two problems:
o. In greedy_search optimizer method, best_extension_by_limited search
   maintains join embedding(nestedness) of tables added so far, so that 
   correct(valid)  join order is selected
   These are requirements from nested outer join executioner.
   The problem was, embedding_map was not correctly updated when a table 
   is added to optimal plan outside best_extension_by_limited search, 
   by greedy_search method. We need to update join->cur_embedding_map
   correctly here so that execution plan for other tables get
   generated.
   Invoked checked_interleaving_with_nj from greedy_search on the
   best_table selected. Fixed its prototype to take only one JoinTab
   This is same as mysql 5.1 source tree.
o. The other problem was, join->cur_embedding_map was not restored correctly
   when a table is added to the optimal plan to reflect the current embedding 
   map. 
   Taken good documented method restore_prev_nj_state which restores 
   cur_embedding_map from mysql 5.1 source tree and modified it for drizzled 
   code.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# progtest.m4 serial 6 (gettext-0.18)
2
 
dnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software Foundation, Inc.
3
 
dnl This file is free software; the Free Software Foundation
4
 
dnl gives unlimited permission to copy and/or distribute it,
5
 
dnl with or without modifications, as long as this notice is preserved.
6
 
dnl
7
 
dnl This file can can be used in projects which are not available under
8
 
dnl the GNU General Public License or the GNU Library General Public
9
 
dnl License but which still want to provide support for the GNU gettext
10
 
dnl functionality.
11
 
dnl Please note that the actual code of the GNU gettext library is covered
12
 
dnl by the GNU Library General Public License, and the rest of the GNU
13
 
dnl gettext package package is covered by the GNU General Public License.
14
 
dnl They are *not* in the public domain.
15
 
 
16
 
dnl Authors:
17
 
dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
18
 
 
19
 
AC_PREREQ([2.50])
20
 
 
21
 
# Search path for a program which passes the given test.
22
 
 
23
 
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
24
 
dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
25
 
AC_DEFUN([AM_PATH_PROG_WITH_TEST],
26
 
[
27
 
# Prepare PATH_SEPARATOR.
28
 
# The user is always right.
29
 
if test "${PATH_SEPARATOR+set}" != set; then
30
 
  echo "#! /bin/sh" >conf$$.sh
31
 
  echo  "exit 0"   >>conf$$.sh
32
 
  chmod +x conf$$.sh
33
 
  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
34
 
    PATH_SEPARATOR=';'
35
 
  else
36
 
    PATH_SEPARATOR=:
37
 
  fi
38
 
  rm -f conf$$.sh
39
 
fi
40
 
 
41
 
# Find out how to test for executable files. Don't use a zero-byte file,
42
 
# as systems may use methods other than mode bits to determine executability.
43
 
cat >conf$$.file <<_ASEOF
44
 
#! /bin/sh
45
 
exit 0
46
 
_ASEOF
47
 
chmod +x conf$$.file
48
 
if test -x conf$$.file >/dev/null 2>&1; then
49
 
  ac_executable_p="test -x"
50
 
else
51
 
  ac_executable_p="test -f"
52
 
fi
53
 
rm -f conf$$.file
54
 
 
55
 
# Extract the first word of "$2", so it can be a program name with args.
56
 
set dummy $2; ac_word=[$]2
57
 
AC_MSG_CHECKING([for $ac_word])
58
 
AC_CACHE_VAL([ac_cv_path_$1],
59
 
[case "[$]$1" in
60
 
  [[\\/]]* | ?:[[\\/]]*)
61
 
    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
62
 
    ;;
63
 
  *)
64
 
    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
65
 
    for ac_dir in ifelse([$5], , $PATH, [$5]); do
66
 
      IFS="$ac_save_IFS"
67
 
      test -z "$ac_dir" && ac_dir=.
68
 
      for ac_exec_ext in '' $ac_executable_extensions; do
69
 
        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
70
 
          echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
71
 
          if [$3]; then
72
 
            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
73
 
            break 2
74
 
          fi
75
 
        fi
76
 
      done
77
 
    done
78
 
    IFS="$ac_save_IFS"
79
 
dnl If no 4th arg is given, leave the cache variable unset,
80
 
dnl so AC_PATH_PROGS will keep looking.
81
 
ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
82
 
])dnl
83
 
    ;;
84
 
esac])dnl
85
 
$1="$ac_cv_path_$1"
86
 
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
87
 
  AC_MSG_RESULT([$][$1])
88
 
else
89
 
  AC_MSG_RESULT([no])
90
 
fi
91
 
AC_SUBST([$1])dnl
92
 
])