commonext.cpp 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. /*##############################################################################
  2. Copyright (C) 2011 HPCC Systems.
  3. All rights reserved. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU Affero General Public License as
  5. published by the Free Software Foundation, either version 3 of the
  6. License, or (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU Affero General Public License for more details.
  11. You should have received a copy of the GNU Affero General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. ############################################################################## */
  14. #include "platform.h"
  15. #define CHEAP_UCHAR_DEF
  16. #ifdef _WIN32
  17. typedef wchar_t UChar;
  18. #else
  19. typedef unsigned short UChar;
  20. #endif
  21. #include "eclhelper.hpp"
  22. #include "jmisc.hpp"
  23. #include "commonext.hpp"
  24. static const char **kindArray;
  25. MODULE_INIT(INIT_PRIORITY_STANDARD)
  26. {
  27. kindArray = (const char **)malloc(TAKlast * sizeof(const char *));
  28. memset(kindArray, 0, TAKlast * sizeof(const char *));
  29. kindArray[TAKnone] = "none";
  30. kindArray[TAKdiskwrite] = "diskwrite" ;
  31. kindArray[TAKsort] = "sort" ;
  32. kindArray[TAKdedup] = "dedup" ;
  33. kindArray[TAKfilter] = "filter" ;
  34. kindArray[TAKsplit] = "split" ;
  35. kindArray[TAKproject] = "project" ;
  36. kindArray[TAKrollup] = "rollup";
  37. kindArray[TAKiterate] = "iterate";
  38. kindArray[TAKaggregate] = "aggregate";
  39. kindArray[TAKhashaggregate] = "hashaggregate";
  40. kindArray[TAKfirstn] = "firstn";
  41. kindArray[TAKsample] = "sample";
  42. kindArray[TAKdegroup] = "degroup";
  43. kindArray[TAKjoin] = "join";
  44. kindArray[TAKhashjoin] = "hashjoin";
  45. kindArray[TAKlookupjoin] = "lookupjoin";
  46. kindArray[TAKselfjoin] = "selfjoin";
  47. kindArray[TAKkeyedjoin] = "keyedjoin";
  48. kindArray[TAKgroup] = "group";
  49. kindArray[TAKworkunitwrite] = "workunitwrite";
  50. kindArray[TAKfunnel] = "funnel";
  51. kindArray[TAKapply] = "apply";
  52. kindArray[TAKtemptable] = "temptable";
  53. kindArray[TAKtemprow] = "temprow";
  54. kindArray[TAKhashdistribute] = "hashdistribute";
  55. kindArray[TAKhashdedup] = "hashdedup";
  56. kindArray[TAKnormalize] = "normalize";
  57. kindArray[TAKremoteresult] = "remoteresult";
  58. kindArray[TAKpull] = "pull";
  59. kindArray[TAKdenormalize] = "denormalize";
  60. kindArray[TAKnormalizechild] = "normalizechild";
  61. kindArray[TAKchilddataset] = "childdataset";
  62. kindArray[TAKselectn] = "selectn";
  63. kindArray[TAKenth] = "enth";
  64. kindArray[TAKif] = "if";
  65. kindArray[TAKnull] = "null";
  66. kindArray[TAKdistribution] = "distribution";
  67. kindArray[TAKcountproject] = "countproject";
  68. kindArray[TAKchoosesets] = "choosesets";
  69. kindArray[TAKpiperead] = "piperead";
  70. kindArray[TAKpipewrite] = "pipewrite";
  71. kindArray[TAKcsvwrite] = "csvwrite";
  72. kindArray[TAKpipethrough] = "pipethrough";
  73. kindArray[TAKindexwrite] = "indexwrite";
  74. kindArray[TAKchoosesetsenth] = "choosesetsenth";
  75. kindArray[TAKchoosesetslast] = "choosesetslast";
  76. kindArray[TAKfetch] = "fetch";
  77. kindArray[TAKhashdenormalize] = "hashdenormalize";
  78. kindArray[TAKworkunitread] = "workunitread";
  79. kindArray[TAKthroughaggregate] = "throughaggregate";
  80. kindArray[TAKspill] = "spill";
  81. kindArray[TAKcase] = "case";
  82. kindArray[TAKlimit] = "limit";
  83. kindArray[TAKcsvfetch] = "csvfetch";
  84. kindArray[TAKxmlwrite] = "xmlwrite";
  85. kindArray[TAKparse] = "parse";
  86. kindArray[TAKtopn] = "topn";
  87. kindArray[TAKmerge] = "merge";
  88. kindArray[TAKxmlfetch] = "xmlfetch";
  89. kindArray[TAKxmlparse] = "xmlparse";
  90. kindArray[TAKkeyeddistribute] = "keyeddistribute";
  91. kindArray[TAKjoinlight] = "joinlight";
  92. kindArray[TAKalljoin] = "alljoin";
  93. kindArray[TAKsoap_rowdataset] = "SOAP_rowdataset";
  94. kindArray[TAKsoap_rowaction] = "SOAP_rowaction";
  95. kindArray[TAKsoap_datasetdataset] = "SOAP_datasetdataset";
  96. kindArray[TAKsoap_datasetaction] = "SOAP_datasetaction";
  97. kindArray[TAKkeydiff] = "keydiff";
  98. kindArray[TAKkeypatch] = "keypatch";
  99. kindArray[TAKkeyeddenormalize] = "keyeddenormalize";
  100. kindArray[TAKchilditerator] = "Child Dataset";
  101. kindArray[TAKdatasetresult] = "Dataset Result";
  102. kindArray[TAKrowresult] = "Row Result";
  103. kindArray[TAKchildif] = "childif";
  104. kindArray[TAKpartition] = "partition";
  105. kindArray[TAKlocalgraph] = "local graph";
  106. kindArray[TAKifaction] = "if action";
  107. kindArray[TAKsequential] = "sequential";
  108. kindArray[TAKparallel] = "parallel";
  109. kindArray[TAKemptyaction] = "emptyaction";
  110. kindArray[TAKskiplimit] = "skip_limit";
  111. kindArray[TAKdiskread] = "diskread";
  112. kindArray[TAKdisknormalize] = "disknormalize";
  113. kindArray[TAKdiskaggregate] = "diskaggregate";
  114. kindArray[TAKdiskcount] = "diskcount";
  115. kindArray[TAKdiskgroupaggregate] = "diskgroupaggregate";
  116. kindArray[TAKindexread] = "indexread";
  117. kindArray[TAKindexnormalize] = "indexnormalize";
  118. kindArray[TAKindexaggregate] = "indexaggregate";
  119. kindArray[TAKindexcount] = "indexcount";
  120. kindArray[TAKindexgroupaggregate] = "indexgroupaggregate";
  121. kindArray[TAKchildnormalize] = "childnormalize";
  122. kindArray[TAKchildaggregate] = "childaggregate";
  123. kindArray[TAKchildgroupaggregate] = "childgroupaggregate";
  124. kindArray[TAKchildthroughnormalize] = "childthroughnormalize";
  125. kindArray[TAKcsvread] = "csvread";
  126. kindArray[TAKxmlread] = "xmlread";
  127. kindArray[TAKlocalresultread] = "localresultread";
  128. kindArray[TAKlocalresultwrite] = "localresultwrite";
  129. kindArray[TAKcombine] = "combine";
  130. kindArray[TAKregroup] = "regroup";
  131. kindArray[TAKrollupgroup] = "rollupgroup";
  132. kindArray[TAKcombinegroup] = "combinegroup";
  133. kindArray[TAKlookupdenormalize] = "lookupdenormalize";
  134. kindArray[TAKalldenormalize] = "alldenormalize";
  135. kindArray[TAKdenormalizegroup] = "denormalizegroup";
  136. kindArray[TAKhashdenormalizegroup] = "hashdenormalizegroup";
  137. kindArray[TAKlookupdenormalizegroup] = "lookupdenormalizegroup";
  138. kindArray[TAKkeyeddenormalizegroup] = "keyeddenormalizegroup";
  139. kindArray[TAKalldenormalizegroup] = "alldenormalizegroup";
  140. kindArray[TAKlocalresultspill] = "localresultspill";
  141. kindArray[TAKsimpleaction] = "simpleaction";
  142. kindArray[TAKloopcount] = "loop";
  143. kindArray[TAKlooprow] = "loop";
  144. kindArray[TAKloopdataset] = "loop";
  145. kindArray[TAKchildcase] = "childcase";
  146. kindArray[TAKremotegraph] = "remote";
  147. kindArray[TAKlibrarycall] = "librarycall";
  148. kindArray[TAKrawiterator] = "Child Dataset";
  149. kindArray[TAKlocalstreamread] = "localstreamread";
  150. kindArray[TAKprocess] = "process";
  151. kindArray[TAKgraphloop] ="graph";
  152. kindArray[TAKparallelgraphloop] = "graph";
  153. kindArray[TAKgraphloopresultread] = "graphloopread";
  154. kindArray[TAKgraphloopresultwrite] = "graphloopwrite";
  155. kindArray[TAKgrouped] = "grouped";
  156. kindArray[TAKsorted] = "sorted";
  157. kindArray[TAKdistributed] = "distributed";
  158. kindArray[TAKnwayjoin] = "nwayjoin";
  159. kindArray[TAKnwaymerge] = "nwaymerge";
  160. kindArray[TAKnwaymergejoin] = "nwaymergejoin";
  161. kindArray[TAKnwayinput] = "nwayinput";
  162. kindArray[TAKnwaygraphloopresultread] = "nwaygraphloopread";
  163. kindArray[TAKnwayselect] = "nwayselect";
  164. kindArray[TAKnonempty] = "nonempty";
  165. kindArray[TAKcreaterowlimit] = "createrow_limit";
  166. kindArray[TAKexistsaggregate] = "existsaggregate";
  167. kindArray[TAKcountaggregate] = "countaggregate";
  168. kindArray[TAKprefetchproject] = "prefetchproject";
  169. kindArray[TAKprefetchcountproject] = "prefetchcountproject";
  170. kindArray[TAKfiltergroup] = "filtergroup";
  171. kindArray[TAKmemoryspillread] = "memoryspillread";
  172. kindArray[TAKmemoryspillwrite] = "memoryspillwrite";
  173. kindArray[TAKmemoryspillsplit] = "memoryspillsplit";
  174. kindArray[TAKsection] = "section";
  175. kindArray[TAKlinkedrawiterator] = "linkedrawiterator";
  176. kindArray[TAKnormalizelinkedchild] = "normalizelinkedchild";
  177. kindArray[TAKfilterproject] = "filterproject";
  178. kindArray[TAKcatch] = "catch";
  179. kindArray[TAKskipcatch] = "skip_catch";
  180. kindArray[TAKcreaterowcatch] = "createrow_catch";
  181. kindArray[TAKsectioninput] = "sectioninput";
  182. kindArray[TAKindexgroupexists] = "indexgroupexists";
  183. kindArray[TAKindexgroupcount] = "indexgroupcount";
  184. kindArray[TAKhashdistributemerge] = "hashdistributemerge";
  185. kindArray[TAKselfjoinlight] = "selfjoinlight";
  186. kindArray[TAKwhen_dataset] = "when_dataset";
  187. kindArray[TAKhttp_rowdataset] = "http";
  188. kindArray[TAKstreamediterator] = "streamediterator";
  189. kindArray[TAKexternalsource] = "externalsource";
  190. kindArray[TAKexternalsink] = "externalsink";
  191. kindArray[TAKexternalprocess] = "externalprocess";
  192. kindArray[TAKwhen_action] = "when_action";
  193. //Non standard
  194. kindArray[TAKcountindex] = "countindex";
  195. kindArray[TAKcountdisk] = "countdisk";
  196. kindArray[TAKsubgraph] = "subgraph";
  197. return true;
  198. }
  199. MODULE_EXIT()
  200. {
  201. free(kindArray);
  202. }
  203. const char *activityKindStr(ThorActivityKind kind)
  204. {
  205. const char *ret = kind<TAKlast?kindArray[kind]:NULL;
  206. if (ret) return ret;
  207. static char num[32];
  208. itoa(kind,num,10);
  209. return num;
  210. }