00001 #ifndef Impala_Core_Column_Find_h
00002 #define Impala_Core_Column_Find_h
00003
00004 #include "Core/Column/InvalidColumn.h"
00005
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Column
00011 {
00012
00013
00014 template <class C>
00015 inline int
00016 Find(C* col, typename C::ColElemType elem)
00017 {
00018 return Find(col, elem, 0, col->Capacity());
00019 }
00020
00021 template <class C>
00022 inline int
00023 Find(C* col, typename C::ColElemType elem, int start, int end)
00024 {
00025 if (end == -1)
00026 end = col->Capacity();
00027 for (int i=start ; i<end ; i++)
00028 if (col->Get(i) == elem)
00029 return i;
00030 return end;
00031 }
00032
00033 inline int
00034 Find(InvalidColumn* col, InvalidColumn::ColElemType elem, int start, int end)
00035 {
00036
00037 return 0;
00038 }
00039
00040 }
00041 }
00042 }
00043
00044 #endif