eclhelper_base.cpp 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  1. /*##############################################################################
  2. HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®.
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. ############################################################################## */
  13. #include "platform.h"
  14. #include "eclrtl.hpp"
  15. #include "eclhelper.hpp"
  16. #include "rtlkey.hpp"
  17. #include "eclrtl_imp.hpp"
  18. #include "rtlfield.hpp"
  19. #include "rtlds_imp.hpp"
  20. #include "eclhelper_base.hpp"
  21. #include "rtlbcd.hpp"
  22. #include "rtlrecord.hpp"
  23. //---------------------------------------------------------------------------
  24. //CThorIndexWriteArg
  25. unsigned CThorIndexWriteArg::getFlags() { return 0; }
  26. const char * CThorIndexWriteArg::getDistributeIndexName() { return NULL; }
  27. unsigned CThorIndexWriteArg::getExpiryDays() { return 0; }
  28. void CThorIndexWriteArg::getUpdateCRCs(unsigned & eclCRC, unsigned __int64 & totalCRC) { }
  29. const char * CThorIndexWriteArg::getCluster(unsigned idx) { return NULL; }
  30. bool CThorIndexWriteArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  31. bool CThorIndexWriteArg::getIndexMeta(size32_t & lenName, char * & name, size32_t & lenValue, char * & value, unsigned idx) { return false; }
  32. unsigned CThorIndexWriteArg::getWidth() { return 0; }
  33. ICompare * CThorIndexWriteArg::queryCompare() { return NULL; }
  34. //CThorFirstNArg
  35. __int64 CThorFirstNArg::numToSkip() { return 0; }
  36. bool CThorFirstNArg::preserveGrouping() { return false; }
  37. //CThorDiskWriteArg
  38. int CThorDiskWriteArg::getSequence() { return -3; }
  39. unsigned CThorDiskWriteArg::getFlags() { return 0; }
  40. unsigned CThorDiskWriteArg::getTempUsageCount() { return 0; }
  41. unsigned CThorDiskWriteArg::getExpiryDays() { return 0; }
  42. void CThorDiskWriteArg::getUpdateCRCs(unsigned & eclCRC, unsigned __int64 & totalCRC) { }
  43. void CThorDiskWriteArg::getEncryptKey(size32_t & keyLen, void * & key) { keyLen = 0; key = 0; }
  44. const char * CThorDiskWriteArg::getCluster(unsigned idx) { return NULL; }
  45. //CThorPipeReadArg
  46. unsigned CThorPipeReadArg::getPipeFlags() { return 0; }
  47. ICsvToRowTransformer * CThorPipeReadArg::queryCsvTransformer() { return NULL; }
  48. IXmlToRowTransformer * CThorPipeReadArg::queryXmlTransformer() { return NULL; }
  49. const char * CThorPipeReadArg::getXmlIteratorPath() { return NULL; }
  50. //CThorPipeWriteArg
  51. char * CThorPipeWriteArg::getNameFromRow(const void * _self) { return NULL; }
  52. bool CThorPipeWriteArg::recreateEachRow() { return (getPipeFlags() & TPFrecreateeachrow) != 0; }
  53. unsigned CThorPipeWriteArg::getPipeFlags() { return 0; }
  54. IHThorCsvWriteExtra * CThorPipeWriteArg::queryCsvOutput() { return NULL; }
  55. IHThorXmlWriteExtra * CThorPipeWriteArg::queryXmlOutput() { return NULL; }
  56. //CThorPipeThroughArg
  57. char * CThorPipeThroughArg::getNameFromRow(const void * _self) { return NULL; }
  58. bool CThorPipeThroughArg::recreateEachRow() { return (getPipeFlags() & TPFrecreateeachrow) != 0; }
  59. unsigned CThorPipeThroughArg::getPipeFlags() { return 0; }
  60. IHThorCsvWriteExtra * CThorPipeThroughArg::queryCsvOutput() { return NULL; }
  61. IHThorXmlWriteExtra * CThorPipeThroughArg::queryXmlOutput() { return NULL; }
  62. ICsvToRowTransformer * CThorPipeThroughArg::queryCsvTransformer() { return NULL; }
  63. IXmlToRowTransformer * CThorPipeThroughArg::queryXmlTransformer() { return NULL; }
  64. const char * CThorPipeThroughArg::getXmlIteratorPath() { return NULL; }
  65. //CThorFilterArg
  66. bool CThorFilterArg::canMatchAny() { return true; }
  67. bool CThorFilterArg::isValid(const void * _left) { return true; }
  68. //CThorFilterGroupArg
  69. bool CThorFilterGroupArg::canMatchAny() { return true; }
  70. bool CThorFilterGroupArg::isValid(unsigned _num, const void * * _rows) { return true; }
  71. //CThorIterateArg
  72. bool CThorIterateArg::canFilter() { return false; }
  73. //CThorProcessArg
  74. bool CThorProcessArg::canFilter() { return false; }
  75. //CThorProjectArg
  76. bool CThorProjectArg::canFilter() { return false; }
  77. //CThorQuantileArg
  78. unsigned CThorQuantileArg::getFlags() { return 0; }
  79. unsigned __int64 CThorQuantileArg::getNumDivisions() { return 2; }
  80. double CThorQuantileArg::getSkew() { return 0; }
  81. unsigned __int64 CThorQuantileArg::getScore(const void * _left) { return 1; }
  82. void CThorQuantileArg::getRange(bool & isAll, size32_t & tlen, void * & tgt) { isAll = true; tlen = 0; tgt = NULL; }
  83. //CThorPrefetchProjectArg
  84. bool CThorPrefetchProjectArg::canFilter() { return false; }
  85. bool CThorPrefetchProjectArg::canMatchAny() { return true; }
  86. unsigned CThorPrefetchProjectArg::getFlags() { return 0; }
  87. unsigned CThorPrefetchProjectArg::getLookahead() { return 0; }
  88. IThorChildGraph *CThorPrefetchProjectArg::queryChild() { return NULL; }
  89. bool CThorPrefetchProjectArg::preTransform(rtlRowBuilder & extract, const void * _left, unsigned __int64 _counter) { return true; }
  90. //CThorFilterProjectArg
  91. bool CThorFilterProjectArg::canFilter() { return false; }
  92. bool CThorFilterProjectArg::canMatchAny() { return true; }
  93. //CThorCountProjectArg
  94. bool CThorCountProjectArg::canFilter() { return false; }
  95. //CThorCombineArg
  96. bool CThorCombineArg::canFilter() { return false; }
  97. //CThorCombineGroupArg
  98. bool CThorCombineGroupArg::canFilter() { return false; }
  99. //CThorActionArg
  100. void CThorActionArg::action() {}
  101. //CThorLimitArg
  102. void CThorLimitArg::onLimitExceeded() {}
  103. size32_t CThorLimitArg::transformOnLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  104. //CThorCatchArg
  105. unsigned CThorCatchArg::getFlags() { return 0; }
  106. bool CThorCatchArg::isHandler(IException * e) { return true; }
  107. void CThorCatchArg::onExceptionCaught() { }
  108. size32_t CThorCatchArg::transformOnExceptionCaught(ARowBuilder & rowBuilder, IException * e) { return 0; }
  109. //CThorSplitArg
  110. unsigned CThorSplitArg::numBranches() { return 2; }
  111. bool CThorSplitArg::isBalanced() { return false; }
  112. //CThorSpillArg
  113. IOutputMetaData * CThorSpillArg::queryDiskRecordSize() { return queryOutputMeta(); }
  114. int CThorSpillArg::getSequence() { return -3; }
  115. unsigned CThorSpillArg::getFlags() { return 0; }
  116. unsigned CThorSpillArg::getTempUsageCount() { return 1; }
  117. unsigned CThorSpillArg::getExpiryDays() { return 0; }
  118. void CThorSpillArg::getUpdateCRCs(unsigned & eclCRC, unsigned __int64 & totalCRC) { }
  119. void CThorSpillArg::getEncryptKey(size32_t & keyLen, void * & key) { keyLen = 0; key = 0; }
  120. const char * CThorSpillArg::getCluster(unsigned idx) { return NULL; }
  121. //CThorRollupArg
  122. unsigned CThorRollupArg::getFlags() { return 0; }
  123. bool CThorRollupArg::matches(const void * _left, const void * _right) { return true; }
  124. //CThorDedupArg
  125. bool CThorDedupArg::matches(const void * _left, const void * _right) { return true; }
  126. unsigned CThorDedupArg::numToKeep() { return 1; }
  127. ICompare * CThorDedupArg::queryComparePrimary() { return NULL; }
  128. unsigned CThorDedupArg::getFlags() { return HDFkeepleft; }
  129. ICompare * CThorDedupArg::queryCompareBest() { return NULL; }
  130. //CThorAggregateArg
  131. unsigned CThorAggregateArg::getAggregateFlags() { return 0; }
  132. size32_t CThorAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  133. //CThorCountAggregateArg
  134. size32_t CThorCountAggregateArg::clearAggregate(ARowBuilder & rowBuilder)
  135. {
  136. void * target = rowBuilder.getSelf();
  137. *((unsigned __int64 *)target) = 0;
  138. return sizeof(unsigned __int64);
  139. }
  140. size32_t CThorCountAggregateArg::processFirst(ARowBuilder & rowBuilder, const void * src)
  141. {
  142. void * target = rowBuilder.getSelf();
  143. *((unsigned __int64 *)target) = 1;
  144. return sizeof(unsigned __int64);
  145. }
  146. size32_t CThorCountAggregateArg::processNext(ARowBuilder & rowBuilder, const void * src)
  147. {
  148. void * target = rowBuilder.getSelf();
  149. ++*((unsigned __int64 *)target);
  150. return sizeof(unsigned __int64);
  151. }
  152. size32_t CThorCountAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src)
  153. {
  154. void * target = rowBuilder.getSelf();
  155. *((unsigned __int64 *)target) += *((unsigned __int64 *)src);
  156. return sizeof(unsigned __int64);
  157. }
  158. //CThorExistsAggregateArg
  159. size32_t CThorExistsAggregateArg::clearAggregate(ARowBuilder & rowBuilder)
  160. {
  161. void * target = rowBuilder.getSelf();
  162. *((bool *)target) = false;
  163. return sizeof(bool);
  164. }
  165. size32_t CThorExistsAggregateArg::processFirst(ARowBuilder & rowBuilder, const void * src)
  166. {
  167. void * target = rowBuilder.getSelf();
  168. *((bool *)target) = true;
  169. return sizeof(bool);
  170. }
  171. size32_t CThorExistsAggregateArg::processNext(ARowBuilder & rowBuilder, const void * src)
  172. {
  173. return sizeof(bool);
  174. }
  175. size32_t CThorExistsAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src)
  176. {
  177. void * target = rowBuilder.getSelf();
  178. if (*((bool *)src))
  179. *((bool *)target) = true;
  180. return sizeof(bool);
  181. }
  182. //CThorThroughAggregateArg
  183. unsigned CThorThroughAggregateArg::getAggregateFlags() { return 0; }
  184. size32_t CThorThroughAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  185. //CThorGroupAggregateArg
  186. unsigned CThorGroupAggregateArg::getAggregateFlags() { return 0; }
  187. size32_t CThorGroupAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  188. //CThorHashAggregateArg
  189. unsigned CThorHashAggregateArg::getAggregateFlags() { return 0; }
  190. size32_t CThorHashAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  191. //CThorInlineTableArg
  192. unsigned CThorInlineTableArg::getFlags() { return 0; }
  193. //CThorInlineRowArg
  194. __uint64 CThorInlineRowArg::numRows() { return 1; }
  195. //CThorFunnelArg
  196. bool CThorFunnelArg::isOrdered() { return false; }
  197. bool CThorFunnelArg::pullSequentially() { return false; }
  198. //CThorMergeArg
  199. ISortKeySerializer * CThorMergeArg::querySerialize() { return NULL; } // only if global
  200. ICompare * CThorMergeArg::queryCompareKey() { return NULL; }
  201. ICompare * CThorMergeArg::queryCompareRowKey() { return NULL; } // row is lhs, key is rhs
  202. bool CThorMergeArg::dedup() { return false; }
  203. //CThorRemoteResultArg
  204. int CThorRemoteResultArg::getSequence() { return -3; }
  205. //CThorApplyArg
  206. void CThorApplyArg::start() { }
  207. void CThorApplyArg::end() { }
  208. //CThorSortArg
  209. double CThorSortArg::getSkew() { return 0; } // 0=default
  210. bool CThorSortArg::hasManyRecords() { return false; }
  211. double CThorSortArg::getTargetSkew() { return 0; }
  212. ISortKeySerializer * CThorSortArg::querySerialize() { return NULL; }
  213. unsigned __int64 CThorSortArg::getThreshold() { return 0; }
  214. IOutputMetaData * CThorSortArg::querySortedRecordSize() { return NULL; }
  215. const char * CThorSortArg::getSortedFilename() { return NULL; }
  216. ICompare * CThorSortArg::queryCompareLeftRight() { return NULL; }
  217. ICompare * CThorSortArg::queryCompareSerializedRow() { return NULL; }
  218. unsigned CThorSortArg::getAlgorithmFlags() { return TAFconstant; }
  219. const char * CThorSortArg::getAlgorithm() { return NULL; }
  220. //CThorTopNArg
  221. double CThorTopNArg::getSkew() { return 0; } // 0=default
  222. bool CThorTopNArg::hasManyRecords() { return false; }
  223. double CThorTopNArg::getTargetSkew() { return 0; }
  224. ISortKeySerializer * CThorTopNArg::querySerialize() { return NULL; }
  225. unsigned __int64 CThorTopNArg::getThreshold() { return 0; }
  226. IOutputMetaData * CThorTopNArg::querySortedRecordSize() { return NULL; }
  227. const char * CThorTopNArg::getSortedFilename() { return NULL; }
  228. ICompare * CThorTopNArg::queryCompareLeftRight() { return NULL; }
  229. ICompare * CThorTopNArg::queryCompareSerializedRow() { return NULL; }
  230. unsigned CThorTopNArg::getAlgorithmFlags() { return TAFconstant; }
  231. const char * CThorTopNArg::getAlgorithm() { return NULL; }
  232. bool CThorTopNArg::hasBest() { return false; }
  233. int CThorTopNArg::compareBest(const void * _left) { return +1; }
  234. //CThorSubSortArg
  235. double CThorSubSortArg::getSkew() { return 0; } // 0=default
  236. bool CThorSubSortArg::hasManyRecords() { return false; }
  237. double CThorSubSortArg::getTargetSkew() { return 0; }
  238. ISortKeySerializer * CThorSubSortArg::querySerialize() { return NULL; }
  239. unsigned __int64 CThorSubSortArg::getThreshold() { return 0; }
  240. IOutputMetaData * CThorSubSortArg::querySortedRecordSize() { return NULL; }
  241. const char * CThorSubSortArg::getSortedFilename() { return NULL; }
  242. ICompare * CThorSubSortArg::queryCompareLeftRight() { return NULL; }
  243. ICompare * CThorSubSortArg::queryCompareSerializedRow() { return NULL; }
  244. //CThorKeyedJoinArg
  245. bool CThorKeyedJoinArg::diskAccessRequired() { return false; }
  246. const char * CThorKeyedJoinArg::getFileName() { return NULL; }
  247. IOutputMetaData * CThorKeyedJoinArg::queryDiskRecordSize() { return NULL; }
  248. IOutputMetaData * CThorKeyedJoinArg::queryProjectedDiskRecordSize() { return NULL; }
  249. unsigned __int64 CThorKeyedJoinArg::extractPosition(const void * _right) { return 0; }
  250. bool CThorKeyedJoinArg::leftCanMatch(const void * inputRow) { return true; }
  251. bool CThorKeyedJoinArg::indexReadMatch(const void * indexRow, const void * inputRow, IBlobProvider * blobs) { return true; }
  252. unsigned __int64 CThorKeyedJoinArg::getRowLimit() { return (unsigned __int64) -1; }
  253. void CThorKeyedJoinArg::onLimitExceeded() { }
  254. unsigned __int64 CThorKeyedJoinArg::getSkipLimit() { return 0; }
  255. unsigned CThorKeyedJoinArg::getMatchAbortLimit() { return 0; }
  256. void CThorKeyedJoinArg::onMatchAbortLimitExceeded() { }
  257. unsigned CThorKeyedJoinArg::getJoinLimit() { return 0; }
  258. unsigned CThorKeyedJoinArg::getKeepLimit() { return 0; }
  259. unsigned CThorKeyedJoinArg::getJoinFlags() { return 0; }
  260. bool CThorKeyedJoinArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  261. size32_t CThorKeyedJoinArg::extractFetchFields(ARowBuilder & rowBuilder, const void * _input) { return 0; }
  262. bool CThorKeyedJoinArg::fetchMatch(const void * diskRow, const void * inputRow) { return true; }
  263. size32_t CThorKeyedJoinArg::createDefaultRight(ARowBuilder & rowBuilder) { return 0; }
  264. size32_t CThorKeyedJoinArg::onFailTransform(ARowBuilder & rowBuilder, const void * _dummyRight, const void * _origRow, unsigned __int64 keyedFpos, IException * e) { return 0; }
  265. //Join:
  266. //Denormalize:
  267. size32_t CThorKeyedJoinArg::transform(ARowBuilder & rowBuilder, const void * _joinFields, const void * _origRow, unsigned __int64 keyedFpos, unsigned counter) { return 0; }
  268. //Denormalize group:
  269. size32_t CThorKeyedJoinArg::transform(ARowBuilder & rowBuilder, const void * _joinFields, const void * _origRow, unsigned _numRows, const void * * _rows) { return 0; }
  270. //CThorJoinArg
  271. bool CThorJoinArg::isLeftAlreadySorted() { return false; }
  272. bool CThorJoinArg::isRightAlreadySorted() { return false; }
  273. size32_t CThorJoinArg::createDefaultLeft(ARowBuilder & rowBuilder) { return 0; }
  274. size32_t CThorJoinArg::createDefaultRight(ARowBuilder & rowBuilder) { return 0; }
  275. bool CThorJoinArg::match(const void * _left, const void * _right) { return true; }
  276. ISortKeySerializer * CThorJoinArg::querySerializeLeft() { return NULL; }
  277. ISortKeySerializer * CThorJoinArg::querySerializeRight() { return NULL; }
  278. unsigned __int64 CThorJoinArg::getThreshold() { return 0; }
  279. double CThorJoinArg::getSkew() { return 0; } // 0=default
  280. double CThorJoinArg::getTargetSkew() { return 0; } // 0=default
  281. unsigned CThorJoinArg::getJoinLimit() { return 0; }
  282. unsigned CThorJoinArg::getKeepLimit() { return 0; }
  283. unsigned CThorJoinArg::getJoinFlags() { return 0; }
  284. unsigned CThorJoinArg::getMatchAbortLimit() { return 0; }
  285. void CThorJoinArg::onMatchAbortLimitExceeded() { }
  286. ICompare * CThorJoinArg::queryCompareLeftRightLower() { return NULL; }
  287. ICompare * CThorJoinArg::queryCompareLeftRightUpper() { return NULL; }
  288. ICompare * CThorJoinArg::queryPrefixCompare() { return NULL; }
  289. ICompare * CThorJoinArg::queryCompareLeftKeyRightRow() { return NULL; }
  290. ICompare * CThorJoinArg::queryCompareRightKeyLeftRow() { return NULL; }
  291. size32_t CThorJoinArg::onFailTransform(ARowBuilder & rowBuilder, const void * _left, const void * _right, IException * e, unsigned flggs) { return 0; }
  292. size32_t CThorJoinArg::transform(ARowBuilder & rowBuilder, const void * _left, const void * _right, unsigned _count, unsigned flags) { return 0; }
  293. size32_t CThorJoinArg::transform(ARowBuilder & rowBuilder, const void * _left, const void * _right, unsigned _numRows, const void * * _rows, unsigned flags) { return 0; }
  294. //CThorAllJoinArg
  295. size32_t CThorAllJoinArg::createDefaultLeft(ARowBuilder & rowBuilder) { return 0; }
  296. size32_t CThorAllJoinArg::createDefaultRight(ARowBuilder & rowBuilder) { return 0; }
  297. bool CThorAllJoinArg::match(const void * _left, const void * _right) { return true; }
  298. unsigned CThorAllJoinArg::getKeepLimit() { return 0; }
  299. unsigned CThorAllJoinArg::getJoinFlags() { return 0; }
  300. size32_t CThorAllJoinArg::transform(ARowBuilder & rowBuilder, const void * _left, const void * _right, unsigned _count, unsigned flags) { return 0; }
  301. size32_t CThorAllJoinArg::transform(ARowBuilder & rowBuilder, const void * _left, const void * _right, unsigned _numRows, const void * * _rows, unsigned flags) { return 0; }
  302. unsigned CThorAllJoinArg::getMatchAbortLimit() { return 0; }
  303. void CThorAllJoinArg::onMatchAbortLimitExceeded() { }
  304. //CThorHashJoinArg
  305. bool CThorHashJoinArg::isLeftAlreadySorted() { return false; }
  306. bool CThorHashJoinArg::isRightAlreadySorted() { return false; }
  307. size32_t CThorHashJoinArg::createDefaultLeft(ARowBuilder & rowBuilder) { return 0; }
  308. size32_t CThorHashJoinArg::createDefaultRight(ARowBuilder & rowBuilder) { return 0; }
  309. bool CThorHashJoinArg::match(const void * _left, const void * _right) { return true; }
  310. ISortKeySerializer * CThorHashJoinArg::querySerializeLeft() { return NULL; }
  311. ISortKeySerializer * CThorHashJoinArg::querySerializeRight() { return NULL; }
  312. unsigned __int64 CThorHashJoinArg::getThreshold() { return 0; }
  313. double CThorHashJoinArg::getSkew() { return 0; } // 0=default
  314. double CThorHashJoinArg::getTargetSkew() { return 0; } // 0=default
  315. unsigned CThorHashJoinArg::getJoinLimit() { return 0; }
  316. unsigned CThorHashJoinArg::getKeepLimit() { return 0; }
  317. unsigned CThorHashJoinArg::getJoinFlags() { return 0; }
  318. unsigned CThorHashJoinArg::getMatchAbortLimit() { return 0; }
  319. void CThorHashJoinArg::onMatchAbortLimitExceeded() { }
  320. ICompare * CThorHashJoinArg::queryCompareLeftRightLower() { return NULL; }
  321. ICompare * CThorHashJoinArg::queryCompareLeftRightUpper() { return NULL; }
  322. ICompare * CThorHashJoinArg::queryCompareLeft() { return NULL; } // not needed for lookup
  323. ICompare * CThorHashJoinArg::queryCompareRight() { return NULL; } // not needed for many lookup
  324. ICompare * CThorHashJoinArg::queryPrefixCompare() { return NULL; }
  325. ICompare * CThorHashJoinArg::queryCompareLeftKeyRightRow() { return NULL; }
  326. ICompare * CThorHashJoinArg::queryCompareRightKeyLeftRow() { return NULL; }
  327. size32_t CThorHashJoinArg::onFailTransform(ARowBuilder & rowBuilder, const void * _left, const void * _right, IException * e, unsigned flags) { return 0; }
  328. size32_t CThorHashJoinArg::transform(ARowBuilder & rowBuilder, const void * _left, const void * _right, unsigned _count, unsigned flags) { return 0; }
  329. size32_t CThorHashJoinArg::transform(ARowBuilder & rowBuilder, const void * _left, const void * _right, unsigned _numRows, const void * * _rows, unsigned flags) { return 0; }
  330. //CThorKeyedDistributeArg
  331. unsigned CThorKeyedDistributeArg::getFlags() { return 0; }
  332. bool CThorKeyedDistributeArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  333. //CThorWorkUnitWriteArg
  334. int CThorWorkUnitWriteArg::getSequence() { return -3; }
  335. const char * CThorWorkUnitWriteArg::queryName() { return NULL; }
  336. unsigned CThorWorkUnitWriteArg::getFlags() { return 0; }
  337. void CThorWorkUnitWriteArg::serializeXml(const byte * self, IXmlWriter & out) { queryOutputMeta()->toXML(self, out); }
  338. unsigned CThorWorkUnitWriteArg::getMaxSize() { return 0; }
  339. //CThorXmlWorkunitWriteArg
  340. int CThorXmlWorkunitWriteArg::getSequence() { return -3; }
  341. const char * CThorXmlWorkunitWriteArg::queryName() { return NULL; }
  342. unsigned CThorXmlWorkunitWriteArg::getFlags() { return 0; }
  343. //CThorDictionaryWorkUnitWriteArg
  344. int CThorDictionaryWorkUnitWriteArg::getSequence() { return -3; }
  345. const char * CThorDictionaryWorkUnitWriteArg::queryName() { return NULL; }
  346. unsigned CThorDictionaryWorkUnitWriteArg::getFlags() { return 0; }
  347. //CThorDictionaryResultWriteArg
  348. bool CThorDictionaryResultWriteArg::usedOutsideGraph() { return true; }
  349. //CThorHashDistributeArg
  350. IHash * CThorHashDistributeArg::queryHash() { return NULL; }
  351. double CThorHashDistributeArg::getSkew() { return 0; } // 0=default
  352. double CThorHashDistributeArg::getTargetSkew() { return 0; } // 0=default
  353. ICompare * CThorHashDistributeArg::queryMergeCompare() { return NULL; }
  354. //CThorHashDedupArg
  355. unsigned CThorHashDedupArg::getFlags() { return HDFkeepleft; }
  356. ICompare * CThorHashDedupArg::queryCompareBest() { return NULL; }
  357. IOutputMetaData * CThorHashDedupArg::queryKeySize() { return NULL; }
  358. size32_t CThorHashDedupArg::recordToKey(ARowBuilder & rowBuilder, const void * _record) { return 0; }
  359. //CThorKeyDiffArg
  360. unsigned CThorKeyDiffArg::getFlags() { return 0; }
  361. unsigned CThorKeyDiffArg::getExpiryDays() { return 0; }
  362. //CThorKeyPatchArg
  363. unsigned CThorKeyPatchArg::getFlags() { return 0; }
  364. unsigned CThorKeyPatchArg::getExpiryDays() { return 0; }
  365. //CThorWorkunitReadArg
  366. int CThorWorkunitReadArg::querySequence() { return -3; }
  367. const char * CThorWorkunitReadArg::getWUID() { return NULL; }
  368. ICsvToRowTransformer * CThorWorkunitReadArg::queryCsvTransformer() { return NULL; }
  369. IXmlToRowTransformer * CThorWorkunitReadArg::queryXmlTransformer() { return NULL; }
  370. //CThorLocalResultWriteArg
  371. bool CThorLocalResultWriteArg::usedOutsideGraph() { return true; }
  372. //CThorCsvWriteArg
  373. int CThorCsvWriteArg::getSequence() { return -3; }
  374. unsigned CThorCsvWriteArg::getFlags() { return 0; }
  375. unsigned CThorCsvWriteArg::getTempUsageCount() { return 0; }
  376. unsigned CThorCsvWriteArg::getExpiryDays() { return 0; }
  377. void CThorCsvWriteArg::getUpdateCRCs(unsigned & eclCRC, unsigned __int64 & totalCRC) { }
  378. void CThorCsvWriteArg::getEncryptKey(size32_t & keyLen, void * & key) { keyLen = 0; key = 0; }
  379. const char * CThorCsvWriteArg::getCluster(unsigned idx) { return NULL; }
  380. //CThorXmlParseArg
  381. bool CThorXmlParseArg::requiresContents() { return false; }
  382. //CThorXmlFetchArg
  383. bool CThorXmlFetchArg::requiresContents() { return false; }
  384. //CThorXmlWriteArg
  385. const char * CThorXmlWriteArg::getXmlIteratorPath() { return NULL; } // supplies the prefix and suffix for a row
  386. const char * CThorXmlWriteArg::getHeader() { return NULL; }
  387. const char * CThorXmlWriteArg::getFooter() { return NULL; }
  388. unsigned CThorXmlWriteArg::getXmlFlags() { return 0; }
  389. int CThorXmlWriteArg::getSequence() { return -3; }
  390. unsigned CThorXmlWriteArg::getFlags() { return 0; }
  391. unsigned CThorXmlWriteArg::getTempUsageCount() { return 0; }
  392. unsigned CThorXmlWriteArg::getExpiryDays() { return 0; }
  393. void CThorXmlWriteArg::getUpdateCRCs(unsigned & eclCRC, unsigned __int64 & totalCRC) { }
  394. void CThorXmlWriteArg::getEncryptKey(size32_t & keyLen, void * & key) { keyLen = 0; key = 0; }
  395. const char * CThorXmlWriteArg::getCluster(unsigned idx) { return NULL; }
  396. //CThorSoapActionArg
  397. void CThorSoapActionArg::toXML(const byte * self, IXmlWriter & out) { return; }
  398. const char * CThorSoapActionArg::getHeader() { return NULL; }
  399. const char * CThorSoapActionArg::getFooter() { return NULL; }
  400. unsigned CThorSoapActionArg::getFlags() { return 0; }
  401. unsigned CThorSoapActionArg::numParallelThreads() { return 0; }
  402. unsigned CThorSoapActionArg::numRecordsPerBatch() { return 0; }
  403. int CThorSoapActionArg::numRetries() { return -1; }
  404. double CThorSoapActionArg::getTimeout() { return -1.0; }
  405. double CThorSoapActionArg::getTimeLimit() { return 0.0; }
  406. const char * CThorSoapActionArg::getSoapAction() { return NULL; }
  407. const char * CThorSoapActionArg::getNamespaceName() { return NULL; }
  408. const char * CThorSoapActionArg::getNamespaceVar() { return NULL; }
  409. const char * CThorSoapActionArg::getHttpHeaderName() { return NULL; }
  410. const char * CThorSoapActionArg::getHttpHeaderValue() { return NULL; }
  411. const char * CThorSoapActionArg::getHttpHeaders() { return NULL; }
  412. const char * CThorSoapActionArg::getProxyAddress() { return NULL; }
  413. const char * CThorSoapActionArg::getAcceptType() { return NULL; }
  414. IXmlToRowTransformer * CThorSoapActionArg::queryInputTransformer() { return NULL; }
  415. const char * CThorSoapActionArg::getInputIteratorPath() { return NULL; }
  416. size32_t CThorSoapActionArg::onFailTransform(ARowBuilder & rowBuilder, const void * left, IException * e) { return 0; }
  417. void CThorSoapActionArg::getLogText(size32_t & lenText, char * & text, const void * left) { lenText =0; text = NULL; }
  418. //CThorSoapCallArg
  419. void CThorSoapCallArg::toXML(const byte * self, IXmlWriter & out) { return; }
  420. const char * CThorSoapCallArg::getHeader() { return NULL; }
  421. const char * CThorSoapCallArg::getFooter() { return NULL; }
  422. unsigned CThorSoapCallArg::getFlags() { return 0; }
  423. unsigned CThorSoapCallArg::numParallelThreads() { return 0; }
  424. unsigned CThorSoapCallArg::numRecordsPerBatch() { return 0; }
  425. int CThorSoapCallArg::numRetries() { return -1; }
  426. double CThorSoapCallArg::getTimeout() { return -1.0; }
  427. double CThorSoapCallArg::getTimeLimit() { return 0.0; }
  428. const char * CThorSoapCallArg::getSoapAction() { return NULL; }
  429. const char * CThorSoapCallArg::getNamespaceName() { return NULL; }
  430. const char * CThorSoapCallArg::getNamespaceVar() { return NULL; }
  431. const char * CThorSoapCallArg::getHttpHeaderName() { return NULL; }
  432. const char * CThorSoapCallArg::getHttpHeaderValue() { return NULL; }
  433. const char * CThorSoapCallArg::getHttpHeaders() { return NULL; }
  434. const char * CThorSoapCallArg::getProxyAddress() { return NULL; }
  435. const char * CThorSoapCallArg::getAcceptType() { return NULL; }
  436. IXmlToRowTransformer * CThorSoapCallArg::queryInputTransformer() { return NULL; }
  437. const char * CThorSoapCallArg::getInputIteratorPath() { return NULL; }
  438. size32_t CThorSoapCallArg::onFailTransform(ARowBuilder & rowBuilder, const void * left, IException * e) { return 0; }
  439. void CThorSoapCallArg::getLogText(size32_t & lenText, char * & text, const void * left) { lenText =0; text = NULL; }
  440. //CThorParseArg
  441. INlpHelper * CThorParseArg::queryHelper() { return NULL; }
  442. unsigned CThorParseArg::getFlags() { return 0; }
  443. IOutputMetaData * CThorParseArg::queryProductionMeta(unsigned id) { return NULL; }
  444. size32_t CThorParseArg::executeProduction(ARowBuilder & rowBuilder, unsigned id, IProductionCallback * input) { return 0; }
  445. //CThorIndexReadArg
  446. unsigned CThorIndexReadArg::getFlags() { return 0; }
  447. bool CThorIndexReadArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  448. void CThorIndexReadArg::setCallback(IThorIndexCallback * _tc) { fpp = _tc; }
  449. bool CThorIndexReadArg::needTransform() { return false; }
  450. bool CThorIndexReadArg::transformMayFilter() { return false; }
  451. unsigned __int64 CThorIndexReadArg::getKeyedLimit() { return (unsigned __int64) -1; }
  452. void CThorIndexReadArg::onKeyedLimitExceeded() { }
  453. ISteppingMeta * CThorIndexReadArg::queryRawSteppingMeta() { return NULL; }
  454. ISteppingMeta * CThorIndexReadArg::queryProjectedSteppingMeta() { return NULL; }
  455. void CThorIndexReadArg::mapOutputToInput(ARowBuilder & rowBuilder, const void * projectedRow, unsigned numFields) {}
  456. size32_t CThorIndexReadArg::unfilteredTransform(ARowBuilder & rowBuilder, const void * src) { return 0; }
  457. size32_t CThorIndexReadArg::transformOnLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  458. size32_t CThorIndexReadArg::transformOnKeyedLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  459. IHThorSteppedSourceExtra *CThorIndexReadArg::querySteppingExtra() { return NULL; }
  460. //CThorSteppedIndexReadArg
  461. IHThorSteppedSourceExtra *CThorSteppedIndexReadArg::querySteppingExtra() { return this; }
  462. unsigned CThorSteppedIndexReadArg::getSteppedFlags() { return 0; }
  463. double CThorSteppedIndexReadArg::getPriority() { return 0; }
  464. unsigned CThorSteppedIndexReadArg::getPrefetchSize() { return 0; }
  465. //CThorIndexNormalizeArg
  466. unsigned CThorIndexNormalizeArg::getFlags() { return 0; }
  467. bool CThorIndexNormalizeArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  468. void CThorIndexNormalizeArg::setCallback(IThorIndexCallback * _tc) { fpp = _tc; }
  469. size32_t CThorIndexNormalizeArg::transformOnLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  470. size32_t CThorIndexNormalizeArg::transformOnKeyedLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  471. //CThorIndexAggregateArg
  472. unsigned CThorIndexAggregateArg::getFlags() { return 0; }
  473. bool CThorIndexAggregateArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  474. void CThorIndexAggregateArg::setCallback(IThorIndexCallback * _tc) { fpp = _tc; }
  475. size32_t CThorIndexAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  476. //CThorIndexCountArg
  477. unsigned CThorIndexCountArg::getFlags() { return 0; }
  478. bool CThorIndexCountArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  479. void CThorIndexCountArg::setCallback(IThorIndexCallback * _tc) { fpp = _tc; }
  480. unsigned __int64 CThorIndexCountArg::getRowLimit() { return (unsigned __int64) -1; }
  481. void CThorIndexCountArg::onLimitExceeded() { }
  482. unsigned __int64 CThorIndexCountArg::getKeyedLimit() { return (unsigned __int64) -1; }
  483. void CThorIndexCountArg::onKeyedLimitExceeded() { }
  484. size32_t CThorIndexCountArg::numValid(size32_t srcLen, const void * _src)
  485. {
  486. rtlFailUnexpected();
  487. return 0;
  488. }
  489. //CThorIndexGroupAggregateArg
  490. unsigned CThorIndexGroupAggregateArg::getFlags() { return 0; }
  491. bool CThorIndexGroupAggregateArg::getIndexLayout(size32_t & _retLen, void * & _retData) { return false; }
  492. void CThorIndexGroupAggregateArg::setCallback(IThorIndexCallback * _tc) { fpp = _tc; }
  493. bool CThorIndexGroupAggregateArg::createGroupSegmentMonitors(IIndexReadContext *ctx) { return false; }
  494. unsigned CThorIndexGroupAggregateArg::getGroupingMaxField() { return 0; }
  495. size32_t CThorIndexGroupAggregateArg::initialiseCountGrouping(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  496. size32_t CThorIndexGroupAggregateArg::processCountGrouping(ARowBuilder & rowBuilder, unsigned __int64 count) { rtlFailUnexpected(); return 0; }
  497. size32_t CThorIndexGroupAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  498. //CThorDiskReadArg
  499. unsigned CThorDiskReadArg::getFlags() { return 0; }
  500. void CThorDiskReadArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  501. bool CThorDiskReadArg::needTransform() { return false; }
  502. bool CThorDiskReadArg::transformMayFilter() { return false; }
  503. unsigned __int64 CThorDiskReadArg::getKeyedLimit() { return (unsigned __int64) -1; }
  504. void CThorDiskReadArg::onKeyedLimitExceeded() { }
  505. ISteppingMeta * CThorDiskReadArg::queryRawSteppingMeta() { return NULL; }
  506. ISteppingMeta * CThorDiskReadArg::queryProjectedSteppingMeta() { return NULL; }
  507. void CThorDiskReadArg::mapOutputToInput(ARowBuilder & rowBuilder, const void * projectedRow, unsigned numFields) { }
  508. size32_t CThorDiskReadArg::unfilteredTransform(ARowBuilder & rowBuilder, const void * src) { return 0; }
  509. size32_t CThorDiskReadArg::transformOnLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  510. size32_t CThorDiskReadArg::transformOnKeyedLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  511. //CThorDiskNormalizeArg
  512. unsigned CThorDiskNormalizeArg::getFlags() { return 0; }
  513. void CThorDiskNormalizeArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  514. size32_t CThorDiskNormalizeArg::transformOnLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  515. size32_t CThorDiskNormalizeArg::transformOnKeyedLimitExceeded(ARowBuilder & rowBuilder) { return 0; }
  516. //CThorDiskAggregateArg
  517. unsigned CThorDiskAggregateArg::getFlags() { return 0; }
  518. void CThorDiskAggregateArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  519. size32_t CThorDiskAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  520. //CThorDiskCountArg
  521. unsigned CThorDiskCountArg::getFlags() { return 0; }
  522. void CThorDiskCountArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  523. unsigned __int64 CThorDiskCountArg::getRowLimit() { return (unsigned __int64) -1; }
  524. void CThorDiskCountArg::onLimitExceeded() { }
  525. unsigned __int64 CThorDiskCountArg::getKeyedLimit() { return (unsigned __int64) -1; }
  526. void CThorDiskCountArg::onKeyedLimitExceeded() { }
  527. //CThorDiskGroupAggregateArg
  528. unsigned CThorDiskGroupAggregateArg::getFlags() { return 0; }
  529. void CThorDiskGroupAggregateArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  530. bool CThorDiskGroupAggregateArg::createGroupSegmentMonitors(IIndexReadContext *ctx) { return false; }
  531. unsigned CThorDiskGroupAggregateArg::getGroupingMaxField() { return 0; }
  532. size32_t CThorDiskGroupAggregateArg::initialiseCountGrouping(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  533. size32_t CThorDiskGroupAggregateArg::processCountGrouping(ARowBuilder & rowBuilder, unsigned __int64 count) { rtlFailUnexpected(); return 0; }
  534. size32_t CThorDiskGroupAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  535. //CThorCsvReadArg
  536. unsigned CThorCsvReadArg::getFlags() { return 0; }
  537. unsigned __int64 CThorCsvReadArg::getChooseNLimit() { return I64C(0x7fffffffffffffff); }
  538. unsigned __int64 CThorCsvReadArg::getRowLimit() { return (unsigned __int64) -1; }
  539. void CThorCsvReadArg::onLimitExceeded() { }
  540. unsigned CThorCsvReadArg::getFormatCrc() { return 0; } // no meaning
  541. void CThorCsvReadArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  542. //CThorXmlReadArg
  543. unsigned CThorXmlReadArg::getFlags() { return 0; }
  544. unsigned __int64 CThorXmlReadArg::getChooseNLimit() { return I64C(0x7fffffffffffffff); }
  545. unsigned __int64 CThorXmlReadArg::getRowLimit() { return (unsigned __int64) -1; }
  546. void CThorXmlReadArg::onLimitExceeded() { }
  547. unsigned CThorXmlReadArg::getFormatCrc() { return 0; } // no meaning
  548. void CThorXmlReadArg::setCallback(IThorDiskCallback * _tc) { fpp = _tc; }
  549. //CThorChildGroupAggregateArg
  550. size32_t CThorChildGroupAggregateArg::mergeAggregate(ARowBuilder & rowBuilder, const void * src) { rtlFailUnexpected(); return 0; }
  551. //CThorLoopArg
  552. unsigned CThorLoopArg::getFlags() { return 0; }
  553. bool CThorLoopArg::sendToLoop(unsigned counter, const void * in) { return true; }
  554. unsigned CThorLoopArg::numIterations() { return 0; }
  555. bool CThorLoopArg::loopAgain(unsigned counter, unsigned num, const void * * _rows) { return num != 0; }
  556. unsigned CThorLoopArg::defaultParallelIterations() { return 0; }
  557. bool CThorLoopArg::loopFirstTime() { return false; }
  558. unsigned CThorLoopArg::loopAgainResult() { return 0; }
  559. //CThorGraphLoopArg
  560. unsigned CThorGraphLoopArg::getFlags() { return 0; }
  561. //CThorRemoteArg
  562. IOutputMetaData * CThorRemoteArg::queryOutputMeta() { return NULL; } // for action variety
  563. unsigned __int64 CThorRemoteArg::getRowLimit() { return 10000; }
  564. void CThorRemoteArg::onLimitExceeded() { rtlSysFail(1, "Too many records returned from ALLNODES()"); }
  565. //CThorNWayGraphLoopResultReadArg
  566. bool CThorNWayGraphLoopResultReadArg::isGrouped() const { return false; }
  567. //CThorNWayMergeArg
  568. ISortKeySerializer * CThorNWayMergeArg::querySerialize() { return NULL; } // only if global
  569. ICompare * CThorNWayMergeArg::queryCompareKey() { return NULL; }
  570. ICompare * CThorNWayMergeArg::queryCompareRowKey() { return NULL; } // row is lhs, key is rhs
  571. bool CThorNWayMergeArg::dedup() { return false; }
  572. ISteppingMeta * CThorNWayMergeArg::querySteppingMeta() { return NULL; }
  573. //CThorNWayMergeJoinArg
  574. unsigned CThorNWayMergeJoinArg::getJoinFlags() { return 0; }
  575. ICompareEq * CThorNWayMergeJoinArg::queryNonSteppedCompare() { return NULL; }
  576. void CThorNWayMergeJoinArg::adjustRangeValue(ARowBuilder & rowBuilder, const void * input, __int64 delta) {}
  577. unsigned __int64 CThorNWayMergeJoinArg::extractRangeValue(const void * input) { return 0; }
  578. __int64 CThorNWayMergeJoinArg::maxRightBeforeLeft() { return 0; }
  579. __int64 CThorNWayMergeJoinArg::maxLeftBeforeRight() { return 0; }
  580. size32_t CThorNWayMergeJoinArg::transform(ARowBuilder & rowBuilder, unsigned _num, const void * * _rows) { return 0; }
  581. bool CThorNWayMergeJoinArg::createNextJoinValue(ARowBuilder & rowBuilder, const void * _value) { return false; }
  582. unsigned CThorNWayMergeJoinArg::getMinMatches() { return 0; }
  583. unsigned CThorNWayMergeJoinArg::getMaxMatches() { return 0x7fffffff; }
  584. INaryCompareEq * CThorNWayMergeJoinArg::queryGlobalCompare() { return NULL; }
  585. size32_t CThorNWayMergeJoinArg::createLowInputRow(ARowBuilder & rowBuilder) { return 0; }
  586. ICompareEq * CThorNWayMergeJoinArg::queryPartitionCompareEq() { return NULL; }
  587. //CThorSectionArg
  588. unsigned CThorSectionArg::getFlags() { return 0; }
  589. void CThorSectionArg::getDescription(size32_t & _retLen, char * & _retData) { _retLen = 0; _retData = NULL; }
  590. //CThorSectionInputArg
  591. unsigned CThorSectionInputArg::getFlags() { return 0; }
  592. //CThorTraceArg
  593. bool CThorTraceArg::isValid(const void * _left) { return true; }
  594. bool CThorTraceArg::canMatchAny() { return true; }
  595. unsigned CThorTraceArg::getKeepLimit() { return (unsigned) -1; }
  596. unsigned CThorTraceArg::getSample() { return 0; }
  597. unsigned CThorTraceArg::getSkip() { return 0; }
  598. const char *CThorTraceArg::getName() { return NULL; }