~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to win32/alloca.h

  • Committer: Prafulla Tekawade
  • Date: 2010-08-06 11:21:12 UTC
  • mto: (1711.1.21 build) (1725.1.1 build)
  • mto: This revision was merged to the branch mainline in revision 1714.
  • Revision ID: prafulla_t@users.sourceforge.net-20100806112112-7w5u0s3nx9u67nzt
Fix for Bug 586051

1. test_if_ref method which checks whether predicate is already evaluated
   due to ref/eq_ref access or not was incorrectly removing a predicate 
   that was not implicitly evaluated due to ref access (due to presence of filesort ?)
   It was field=NULL predicate.
   Such predicate should be kept and execution engine will filter out rows
   correctly. Removal of such predicate led to returning of rows which had
   NULL for join/predicate columns.
2. field COMP_OP NULL will always false for all fields except when COMP_OP
   is NULL-safe equality operator. Modified range optimizer to return zero
   row count in such cases.
   Query now does not even run. It returns zero result. As such Fix(1) is not
   required but we might hit that case in some other query (I have not tried it
   yet)
3. Fixed Field::val_str to print "NULL" for literal NULL instead of "0". It
   added lot of confusion while debugging.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Memory allocation on the stack.
2
 
 
3
 
   Copyright (C) 1995, 1999, 2001-2004, 2006-2008 Free Software
4
 
   Foundation, Inc.
5
 
 
6
 
   This program is free software; you can redistribute it and/or modify it
7
 
   under the terms of the GNU Lesser General Public License as published
8
 
   by the Free Software Foundation; either version 2, or (at your option)
9
 
   any later version.
10
 
 
11
 
   This program is distributed in the hope that it will be useful,
12
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
   General Public License for more details.
15
 
 
16
 
   You should have received a copy of the GNU Lesser General Public
17
 
   License along with this program; if not, write to the Free Software
18
 
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19
 
   USA.  */
20
 
 
21
 
/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
22
 
   means there is a real alloca function.  */
23
 
#ifndef _GL_ALLOCA_H
24
 
#define _GL_ALLOCA_H
25
 
 
26
 
/* alloca (N) returns a pointer to N bytes of memory
27
 
   allocated on the stack, which will last until the function returns.
28
 
   Use of alloca should be avoided:
29
 
     - inside arguments of function calls - undefined behaviour,
30
 
     - in inline functions - the allocation may actually last until the
31
 
       calling function returns,
32
 
     - for huge N (say, N >= 65536) - you never know how large (or small)
33
 
       the stack is, and when the stack cannot fulfill the memory allocation
34
 
       request, the program just crashes.
35
 
 */
36
 
 
37
 
#ifndef alloca
38
 
# ifdef __GNUC__
39
 
#  define alloca __builtin_alloca
40
 
# elif defined _AIX
41
 
#  define alloca __alloca
42
 
# elif defined _MSC_VER
43
 
#  include <malloc.h>
44
 
#  define alloca _alloca
45
 
# elif defined __DECC && defined __VMS
46
 
#  define alloca __ALLOCA
47
 
# else
48
 
#  include <stddef.h>
49
 
#  ifdef  __cplusplus
50
 
extern "C"
51
 
#  endif
52
 
void *alloca (size_t);
53
 
# endif
54
 
#endif
55
 
 
56
 
#endif /* _GL_ALLOCA_H */