home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 January / Chip_2001-01_cd1.bin / tema / mysql / mysql-3.23.28g-win-source.exe / sql / item_create.cpp < prev    next >
C/C++ Source or Header  |  2000-11-14  |  7KB  |  379 lines

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.    
  3.    This program is free software; you can redistribute it and/or modify
  4.    it under the terms of the GNU General Public License as published by
  5.    the Free Software Foundation; either version 2 of the License, or
  6.    (at your option) any later version.
  7.    
  8.    This program is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.    GNU General Public License for more details.
  12.    
  13.    You should have received a copy of the GNU General Public License
  14.    along with this program; if not, write to the Free Software
  15.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  16.  
  17. /* Functions to create an item. Used by lex.h */
  18.  
  19. #include "mysql_priv.h"
  20.  
  21. #ifndef M_PI
  22. #define M_PI 3.14159265358979323846
  23. #endif
  24.  
  25. Item *create_func_abs(Item* a)
  26. {
  27.   return new Item_func_abs(a);
  28. }
  29.  
  30. Item *create_func_acos(Item* a)
  31. {
  32.   return new Item_func_acos(a);
  33. }
  34.  
  35. Item *create_func_ascii(Item* a)
  36. {
  37.   return new Item_func_ascii(a);
  38. }
  39.  
  40. Item *create_func_ord(Item* a)
  41. {
  42.   return new Item_func_ord(a);
  43. }
  44.  
  45. Item *create_func_asin(Item* a)
  46. {
  47.   return new Item_func_asin(a);
  48. }
  49.  
  50. Item *create_func_bin(Item* a)
  51. {
  52.   return new Item_func_conv(a,new Item_int((int32) 10,2),
  53.                 new Item_int((int32) 2,1));
  54. }
  55.  
  56. Item *create_func_bit_count(Item* a)
  57. {
  58.   return new Item_func_bit_count(a);
  59. }
  60.  
  61. Item *create_func_ceiling(Item* a)
  62. {
  63.   return new Item_func_ceiling(a);
  64. }
  65.  
  66. Item *create_func_connection_id(void)
  67. {
  68.   return new Item_int("CONNECTION_ID()",(longlong) current_thd->thread_id,10);
  69. }
  70.  
  71. Item *create_func_conv(Item* a, Item *b, Item *c)
  72. {
  73.   return new Item_func_conv(a,b,c);
  74. }
  75.  
  76. Item *create_func_cos(Item* a)
  77. {
  78.   return new Item_func_cos(a);
  79. }
  80.  
  81. Item *create_func_cot(Item* a)
  82. {
  83.   return new Item_func_div(new Item_int((char*) "1",1,1),
  84.                new Item_func_tan(a));
  85. }
  86.  
  87. Item *create_func_date_format(Item* a,Item *b)
  88. {
  89.   return new Item_func_date_format(a,b,0);
  90. }
  91.  
  92. Item *create_func_dayofmonth(Item* a)
  93. {
  94.   return new Item_func_dayofmonth(a);
  95. }
  96.  
  97. Item *create_func_dayofweek(Item* a)
  98. {
  99.   return new Item_func_weekday(new Item_func_to_days(a),1);
  100. }
  101.  
  102. Item *create_func_dayofyear(Item* a)
  103. {
  104.   return new Item_func_dayofyear(a);
  105. }
  106.  
  107. Item *create_func_dayname(Item* a)
  108. {
  109.   return new Item_func_dayname(new Item_func_to_days(a));
  110. }
  111.  
  112. Item *create_func_degrees(Item *a)
  113. {
  114.   return new Item_func_units((char*) "degrees",a,180/M_PI,0.0);
  115. }
  116.  
  117. Item *create_func_exp(Item* a)
  118. {
  119.   return new Item_func_exp(a);
  120. }
  121.  
  122. Item *create_func_find_in_set(Item* a, Item *b)
  123. {
  124.   return new Item_func_find_in_set(a, b);
  125. }
  126.  
  127. Item *create_func_floor(Item* a)
  128. {
  129.   return new Item_func_floor(a);
  130. }
  131.  
  132. Item *create_func_from_days(Item* a)
  133. {
  134.   return new Item_func_from_days(a);
  135. }
  136.  
  137. Item *create_func_get_lock(Item* a, Item *b)
  138. {
  139.   return new Item_func_get_lock(a, b);
  140. }
  141.  
  142. Item *create_func_hex(Item *a)
  143. {
  144.   return new Item_func_conv(a,new Item_int((int32) 10,2),
  145.                 new Item_int((int32) 16,2));
  146. }
  147.  
  148. Item *create_func_inet_ntoa(Item* a)
  149. {
  150.   return new Item_func_inet_ntoa(a);
  151. }
  152.  
  153. Item *create_func_inet_aton(Item* a)
  154. {
  155.   return new Item_func_inet_aton(a);
  156. }
  157.  
  158.  
  159. Item *create_func_ifnull(Item* a, Item *b)
  160. {
  161.   return new Item_func_ifnull(a,b);
  162. }
  163.  
  164. Item *create_func_nullif(Item* a, Item *b)
  165. {
  166.   return new Item_func_nullif(a,b);
  167. }
  168.  
  169. Item *create_func_locate(Item* a, Item *b)
  170. {
  171.   return new Item_func_locate(b,a);
  172. }
  173.  
  174. Item *create_func_instr(Item* a, Item *b)
  175. {
  176.   return new Item_func_locate(a,b);
  177. }
  178.  
  179. Item *create_func_isnull(Item* a)
  180. {
  181.   return new Item_func_isnull(a);
  182. }
  183.  
  184. Item *create_func_lcase(Item* a)
  185. {
  186.   return new Item_func_lcase(a);
  187. }
  188.  
  189. Item *create_func_length(Item* a)
  190. {
  191.   return new Item_func_length(a);
  192. }
  193.  
  194. Item *create_func_char_length(Item* a)
  195. {
  196.   return new Item_func_char_length(a);
  197. }
  198.  
  199. Item *create_func_log(Item* a)
  200. {
  201.   return new Item_func_log(a);
  202. }
  203.  
  204. Item *create_func_log10(Item* a)
  205. {
  206.   return new Item_func_log10(a);
  207. }
  208.  
  209. Item *create_func_lpad(Item* a, Item *b, Item *c)
  210. {
  211.   return new Item_func_lpad(a,b,c);
  212. }
  213.  
  214. Item *create_func_ltrim(Item* a)
  215. {
  216.   return new Item_func_ltrim(a,new Item_string(" ",1));
  217. }
  218.  
  219. Item *create_func_md5(Item* a)
  220. {
  221.   return new Item_func_md5(a);
  222. }
  223.  
  224. Item *create_func_mod(Item* a, Item *b)
  225. {
  226.   return new Item_func_mod(a,b);
  227. }
  228.  
  229. Item *create_func_monthname(Item* a)
  230. {
  231.   return new Item_func_monthname(a);
  232. }
  233.  
  234. Item *create_func_month(Item* a)
  235. {
  236.   return new Item_func_month(a);
  237. }
  238.  
  239. Item *create_func_oct(Item *a)
  240. {
  241.   return new Item_func_conv(a,new Item_int((int32) 10,2),
  242.                 new Item_int((int32) 8,1));
  243. }
  244.  
  245. Item *create_func_period_add(Item* a, Item *b)
  246. {
  247.   return new Item_func_period_add(a,b);
  248. }
  249.  
  250. Item *create_func_period_diff(Item* a, Item *b)
  251. {
  252.   return new Item_func_period_diff(a,b);
  253. }
  254.  
  255. Item *create_func_pi(void)
  256. {
  257.   return new Item_real("PI()",M_PI,6,8);
  258. }
  259.  
  260. Item *create_func_pow(Item* a, Item *b)
  261. {
  262.   return new Item_func_pow(a,b);
  263. }
  264.  
  265. Item *create_func_quarter(Item* a)
  266. {
  267.   return new Item_func_quarter(a);
  268. }
  269.  
  270. Item *create_func_radians(Item *a)
  271. {
  272.   return new Item_func_units((char*) "radians",a,M_PI/180,0.0);
  273. }
  274.  
  275. Item *create_func_release_lock(Item* a)
  276. {
  277.   return new Item_func_release_lock(a);
  278. }
  279.  
  280. Item *create_func_repeat(Item* a, Item *b)
  281. {
  282.   return new Item_func_repeat(a,b);
  283. }
  284.  
  285. Item *create_func_reverse(Item* a)
  286. {
  287.   return new Item_func_reverse(a);
  288. }
  289.  
  290. Item *create_func_rpad(Item* a, Item *b, Item *c)
  291. {
  292.   return new Item_func_rpad(a,b,c);
  293. }
  294.  
  295. Item *create_func_rtrim(Item* a)
  296. {
  297.   return new Item_func_rtrim(a,new Item_string(" ",1));
  298. }
  299.  
  300. Item *create_func_sec_to_time(Item* a)
  301. {
  302.   return new Item_func_sec_to_time(a);
  303. }
  304.  
  305. Item *create_func_sign(Item* a)
  306. {
  307.   return new Item_func_sign(a);
  308. }
  309.  
  310. Item *create_func_sin(Item* a)
  311. {
  312.   return new Item_func_sin(a);
  313. }
  314.  
  315. Item *create_func_space(Item *a)
  316. {
  317.   return new Item_func_repeat(new Item_string(" ",1),a);
  318. }
  319.  
  320. Item *create_func_soundex(Item* a)
  321. {
  322.   return new Item_func_soundex(a);
  323. }
  324.  
  325. Item *create_func_sqrt(Item* a)
  326. {
  327.   return new Item_func_sqrt(a);
  328. }
  329.  
  330. Item *create_func_strcmp(Item* a, Item *b)
  331. {
  332.   return new Item_func_strcmp(a,b);
  333. }
  334.  
  335. Item *create_func_tan(Item* a)
  336. {
  337.   return new Item_func_tan(a);
  338. }
  339.  
  340. Item *create_func_time_format(Item *a, Item *b)
  341. {
  342.   return new Item_func_date_format(a,b,1);
  343. }
  344.  
  345. Item *create_func_time_to_sec(Item* a)
  346. {
  347.   return new Item_func_time_to_sec(a);
  348. }
  349.  
  350. Item *create_func_to_days(Item* a)
  351. {
  352.   return new Item_func_to_days(a);
  353. }
  354.  
  355. Item *create_func_ucase(Item* a)
  356. {
  357.   return new Item_func_ucase(a);
  358. }
  359.  
  360. Item *create_func_version(void)
  361. {
  362.   return new Item_string(NullS,server_version, (uint) strlen(server_version));
  363. }
  364.  
  365. Item *create_func_weekday(Item* a)
  366. {
  367.   return new Item_func_weekday(new Item_func_to_days(a),0);
  368. }
  369.  
  370. Item *create_func_year(Item* a)
  371. {
  372.   return new Item_func_year(a);
  373. }
  374.  
  375. Item *create_load_file(Item* a)
  376. {
  377.   return new Item_load_file(a);
  378. }
  379.