commonext.cpp 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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. #define CHEAP_UCHAR_DEF
  15. #ifdef _WIN32
  16. typedef wchar_t UChar;
  17. #else
  18. typedef unsigned short UChar;
  19. #endif
  20. #include "eclhelper.hpp"
  21. #include "jmisc.hpp"
  22. #include "commonext.hpp"
  23. static const char **kindArray;
  24. MODULE_INIT(INIT_PRIORITY_STANDARD)
  25. {
  26. kindArray = (const char **)malloc(TAKlast * sizeof(const char *));
  27. memset(kindArray, 0, TAKlast * sizeof(const char *));
  28. kindArray[TAKnone] = "none";
  29. kindArray[TAKdiskwrite] = "diskwrite" ;
  30. kindArray[TAKsort] = "sort" ;
  31. kindArray[TAKdedup] = "dedup" ;
  32. kindArray[TAKfilter] = "filter" ;
  33. kindArray[TAKsplit] = "split" ;
  34. kindArray[TAKproject] = "project" ;
  35. kindArray[TAKrollup] = "rollup";
  36. kindArray[TAKiterate] = "iterate";
  37. kindArray[TAKaggregate] = "aggregate";
  38. kindArray[TAKhashaggregate] = "hashaggregate";
  39. kindArray[TAKfirstn] = "firstn";
  40. kindArray[TAKsample] = "sample";
  41. kindArray[TAKdegroup] = "degroup";
  42. kindArray[TAKjoin] = "join";
  43. kindArray[TAKhashjoin] = "hashjoin";
  44. kindArray[TAKlookupjoin] = "lookupjoin";
  45. kindArray[TAKselfjoin] = "selfjoin";
  46. kindArray[TAKkeyedjoin] = "keyedjoin";
  47. kindArray[TAKgroup] = "group";
  48. kindArray[TAKworkunitwrite] = "workunitwrite";
  49. kindArray[TAKfunnel] = "funnel";
  50. kindArray[TAKapply] = "apply";
  51. kindArray[TAKinlinetable] = "inlinetable";
  52. kindArray[TAKhashdistribute] = "hashdistribute";
  53. kindArray[TAKhashdedup] = "hashdedup";
  54. kindArray[TAKnormalize] = "normalize";
  55. kindArray[TAKremoteresult] = "remoteresult";
  56. kindArray[TAKpull] = "pull";
  57. kindArray[TAKdenormalize] = "denormalize";
  58. kindArray[TAKnormalizechild] = "normalizechild";
  59. kindArray[TAKchilddataset] = "childdataset";
  60. kindArray[TAKselectn] = "selectn";
  61. kindArray[TAKenth] = "enth";
  62. kindArray[TAKif] = "if";
  63. kindArray[TAKnull] = "null";
  64. kindArray[TAKdistribution] = "distribution";
  65. kindArray[TAKcountproject] = "countproject";
  66. kindArray[TAKchoosesets] = "choosesets";
  67. kindArray[TAKpiperead] = "piperead";
  68. kindArray[TAKpipewrite] = "pipewrite";
  69. kindArray[TAKcsvwrite] = "csvwrite";
  70. kindArray[TAKpipethrough] = "pipethrough";
  71. kindArray[TAKindexwrite] = "indexwrite";
  72. kindArray[TAKchoosesetsenth] = "choosesetsenth";
  73. kindArray[TAKchoosesetslast] = "choosesetslast";
  74. kindArray[TAKfetch] = "fetch";
  75. kindArray[TAKhashdenormalize] = "hashdenormalize";
  76. kindArray[TAKworkunitread] = "workunitread";
  77. kindArray[TAKthroughaggregate] = "throughaggregate";
  78. kindArray[TAKspill] = "spill";
  79. kindArray[TAKcase] = "case";
  80. kindArray[TAKlimit] = "limit";
  81. kindArray[TAKcsvfetch] = "csvfetch";
  82. kindArray[TAKxmlwrite] = "xmlwrite";
  83. kindArray[TAKjsonwrite] = "jsonwrite";
  84. kindArray[TAKparse] = "parse";
  85. kindArray[TAKtopn] = "topn";
  86. kindArray[TAKmerge] = "merge";
  87. kindArray[TAKxmlfetch] = "xmlfetch";
  88. kindArray[TAKjsonfetch] = "jsonfetch";
  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[TAKjsonread] = "jsonread";
  128. kindArray[TAKlocalresultread] = "localresultread";
  129. kindArray[TAKlocalresultwrite] = "localresultwrite";
  130. kindArray[TAKcombine] = "combine";
  131. kindArray[TAKregroup] = "regroup";
  132. kindArray[TAKrollupgroup] = "rollupgroup";
  133. kindArray[TAKcombinegroup] = "combinegroup";
  134. kindArray[TAKlookupdenormalize] = "lookupdenormalize";
  135. kindArray[TAKalldenormalize] = "alldenormalize";
  136. kindArray[TAKdenormalizegroup] = "denormalizegroup";
  137. kindArray[TAKhashdenormalizegroup] = "hashdenormalizegroup";
  138. kindArray[TAKlookupdenormalizegroup] = "lookupdenormalizegroup";
  139. kindArray[TAKkeyeddenormalizegroup] = "keyeddenormalizegroup";
  140. kindArray[TAKalldenormalizegroup] = "alldenormalizegroup";
  141. kindArray[TAKlocalresultspill] = "localresultspill";
  142. kindArray[TAKsimpleaction] = "simpleaction";
  143. kindArray[TAKloopcount] = "loop";
  144. kindArray[TAKlooprow] = "loop";
  145. kindArray[TAKloopdataset] = "loop";
  146. kindArray[TAKchildcase] = "childcase";
  147. kindArray[TAKremotegraph] = "remote";
  148. kindArray[TAKlibrarycall] = "librarycall";
  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. kindArray[TAKsubsort] = "subsort";
  194. kindArray[TAKdictionaryworkunitwrite] = "dictionaryworkunitwrite";
  195. kindArray[TAKdictionaryresultwrite] = "dictionaryresultwrite";
  196. kindArray[TAKsmartjoin] = "smartjoin";
  197. kindArray[TAKsmartdenormalize] = "smartdenormalize";
  198. kindArray[TAKsmartdenormalizegroup] = "smartdenormalizegroup";
  199. kindArray[TAKselfdenormalize] = "selfdenormalize";
  200. kindArray[TAKselfdenormalizegroup] = "selfdenormalizegroup";
  201. kindArray[TAKspillread] = "spillread" ;
  202. kindArray[TAKspillwrite] = "spillwrite" ;
  203. //Non standard
  204. kindArray[TAKsubgraph] = "subgraph";
  205. return true;
  206. }
  207. MODULE_EXIT()
  208. {
  209. free(kindArray);
  210. }
  211. const char *activityKindStr(ThorActivityKind kind)
  212. {
  213. const char *ret = kind<TAKlast?kindArray[kind]:NULL;
  214. if (ret) return ret;
  215. static char num[32];
  216. itoa(kind,num,10);
  217. return num;
  218. }