1 /***************************************************************************
2 * Copyright (C) 2007 by www.databasecache.com *
3 * Contact: praba_tuty@databasecache.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 ***************************************************************************/
21 #include<HeapAllocator.h>
23 class DllExport OrderByFldDef
26 char fldName
[IDENTIFIER_LENGTH
];
53 class DllExport OrderByTree
61 HashMap projMap
; //used in distinct projection
64 OrderByTree(){ isDistinct
=false; fullOrderBy
= false; keySize
=0; type
= UnKnown
; dataNode
.reset();}
65 DbRetVal
insertDataNode(void *data
);
66 bool find(void *data
);
68 //Used for float type field and individual order by clause
69 void insertSpecialCaseDataNode(void *data
);
71 void setKeySize(int size
){ keySize
= size
; projMap
.setKeySize(size
);}
72 int getKeySize(){return keySize
;}
73 void setDistinct(bool dist
){ isDistinct
= dist
;}
74 bool getDistinct(){return isDistinct
;}
75 void setOrderByType(OrderByType oType
){ type
= oType
;}
76 OrderByType
getOrderByType(){ return type
; }
77 int compare(void *element1
,void *element2
,int size
);
78 ListIterator
getListIterator();
79 void setOrderByList(List oList
) { orderByList
= oList
; }
80 void setFullOrderBy() {fullOrderBy
= true; }
81 void setOrdIntNoNull() { projMap
.setGrpIntNoNull(); }