1453
1450
Create_udf_func Create_udf_func::s_singleton;
1456
Create_udf_func::create(Session *session, LEX_STRING name, List<Item> *item_list)
1453
Create_udf_func::create(THD *thd, LEX_STRING name, List<Item> *item_list)
1458
1455
udf_func *udf= find_udf(name.str, name.length);
1460
return create(session, udf, item_list);
1457
return create(thd, udf, item_list);
1465
Create_udf_func::create(Session *session, udf_func *udf, List<Item> *item_list)
1462
Create_udf_func::create(THD *thd, udf_func *udf, List<Item> *item_list)
1467
Item_func *func= NULL;
1468
1465
int arg_count= 0;
1470
1467
if (item_list != NULL)
1471
1468
arg_count= item_list->elements;
1473
session->lex->set_stmt_unsafe();
1475
func= udf->create_func(session->mem_root);
1477
func->set_arguments(*item_list);
1470
thd->lex->set_stmt_unsafe();
1472
assert( (udf->type == UDFTYPE_FUNCTION)
1473
|| (udf->type == UDFTYPE_AGGREGATE));
1475
switch(udf->returns) {
1478
if (udf->type == UDFTYPE_FUNCTION)
1481
func= new (thd->mem_root) Item_func_udf_str(udf, *item_list);
1483
func= new (thd->mem_root) Item_func_udf_str(udf);
1488
func= new (thd->mem_root) Item_sum_udf_str(udf, *item_list);
1490
func= new (thd->mem_root) Item_sum_udf_str(udf);
1496
if (udf->type == UDFTYPE_FUNCTION)
1499
func= new (thd->mem_root) Item_func_udf_float(udf, *item_list);
1501
func= new (thd->mem_root) Item_func_udf_float(udf);
1506
func= new (thd->mem_root) Item_sum_udf_float(udf, *item_list);
1508
func= new (thd->mem_root) Item_sum_udf_float(udf);
1514
if (udf->type == UDFTYPE_FUNCTION)
1517
func= new (thd->mem_root) Item_func_udf_int(udf, *item_list);
1519
func= new (thd->mem_root) Item_func_udf_int(udf);
1524
func= new (thd->mem_root) Item_sum_udf_int(udf, *item_list);
1526
func= new (thd->mem_root) Item_sum_udf_int(udf);
1530
case DECIMAL_RESULT:
1532
if (udf->type == UDFTYPE_FUNCTION)
1535
func= new (thd->mem_root) Item_func_udf_decimal(udf, *item_list);
1537
func= new (thd->mem_root) Item_func_udf_decimal(udf);
1542
func= new (thd->mem_root) Item_sum_udf_decimal(udf, *item_list);
1544
func= new (thd->mem_root) Item_sum_udf_decimal(udf);
1550
my_error(ER_NOT_SUPPORTED_YET, MYF(0), "UDF return type");
1484
Create_native_func::create(Session *session, LEX_STRING name, List<Item> *item_list)
1558
Create_native_func::create(THD *thd, LEX_STRING name, List<Item> *item_list)
1486
1560
if (has_named_parameters(item_list))
1594
return create(session, param_1, param_2, param_3);
1668
return create(thd, param_1, param_2, param_3);
1598
1672
Create_func_abs Create_func_abs::s_singleton;
1601
Create_func_abs::create(Session *session, Item *arg1)
1675
Create_func_abs::create(THD *thd, Item *arg1)
1603
return new (session->mem_root) Item_func_abs(arg1);
1677
return new (thd->mem_root) Item_func_abs(arg1);
1607
1681
Create_func_acos Create_func_acos::s_singleton;
1610
Create_func_acos::create(Session *session, Item *arg1)
1684
Create_func_acos::create(THD *thd, Item *arg1)
1612
return new (session->mem_root) Item_func_acos(arg1);
1686
return new (thd->mem_root) Item_func_acos(arg1);
1616
1690
Create_func_addtime Create_func_addtime::s_singleton;
1619
Create_func_addtime::create(Session *session, Item *arg1, Item *arg2)
1693
Create_func_addtime::create(THD *thd, Item *arg1, Item *arg2)
1621
return new (session->mem_root) Item_func_add_time(arg1, arg2, 0, 0);
1695
return new (thd->mem_root) Item_func_add_time(arg1, arg2, 0, 0);
1625
1699
Create_func_asin Create_func_asin::s_singleton;
1628
Create_func_asin::create(Session *session, Item *arg1)
1702
Create_func_asin::create(THD *thd, Item *arg1)
1630
return new (session->mem_root) Item_func_asin(arg1);
1704
return new (thd->mem_root) Item_func_asin(arg1);
1634
1708
Create_func_atan Create_func_atan::s_singleton;
1637
Create_func_atan::create_native(Session *session, LEX_STRING name,
1711
Create_func_atan::create_native(THD *thd, LEX_STRING name,
1638
1712
List<Item> *item_list)
1640
1714
Item* func= NULL;
1671
1745
Create_func_benchmark Create_func_benchmark::s_singleton;
1674
Create_func_benchmark::create(Session *session, Item *arg1, Item *arg2)
1748
Create_func_benchmark::create(THD *thd, Item *arg1, Item *arg2)
1676
return new (session->mem_root) Item_func_benchmark(arg1, arg2);
1750
return new (thd->mem_root) Item_func_benchmark(arg1, arg2);
1680
1754
Create_func_bin Create_func_bin::s_singleton;
1683
Create_func_bin::create(Session *session, Item *arg1)
1757
Create_func_bin::create(THD *thd, Item *arg1)
1685
Item *i10= new (session->mem_root) Item_int((int32_t) 10,2);
1686
Item *i2= new (session->mem_root) Item_int((int32_t) 2,1);
1687
return new (session->mem_root) Item_func_conv(arg1, i10, i2);
1759
Item *i10= new (thd->mem_root) Item_int((int32_t) 10,2);
1760
Item *i2= new (thd->mem_root) Item_int((int32_t) 2,1);
1761
return new (thd->mem_root) Item_func_conv(arg1, i10, i2);
1691
1765
Create_func_bit_count Create_func_bit_count::s_singleton;
1694
Create_func_bit_count::create(Session *session, Item *arg1)
1768
Create_func_bit_count::create(THD *thd, Item *arg1)
1696
return new (session->mem_root) Item_func_bit_count(arg1);
1770
return new (thd->mem_root) Item_func_bit_count(arg1);
1700
1774
Create_func_bit_length Create_func_bit_length::s_singleton;
1703
Create_func_bit_length::create(Session *session, Item *arg1)
1777
Create_func_bit_length::create(THD *thd, Item *arg1)
1705
return new (session->mem_root) Item_func_bit_length(arg1);
1779
return new (thd->mem_root) Item_func_bit_length(arg1);
1709
1783
Create_func_ceiling Create_func_ceiling::s_singleton;
1712
Create_func_ceiling::create(Session *session, Item *arg1)
1786
Create_func_ceiling::create(THD *thd, Item *arg1)
1714
return new (session->mem_root) Item_func_ceiling(arg1);
1788
return new (thd->mem_root) Item_func_ceiling(arg1);
1718
1792
Create_func_char_length Create_func_char_length::s_singleton;
1721
Create_func_char_length::create(Session *session, Item *arg1)
1795
Create_func_char_length::create(THD *thd, Item *arg1)
1723
return new (session->mem_root) Item_func_char_length(arg1);
1797
return new (thd->mem_root) Item_func_char_length(arg1);
1727
1801
Create_func_coercibility Create_func_coercibility::s_singleton;
1730
Create_func_coercibility::create(Session *session, Item *arg1)
1804
Create_func_coercibility::create(THD *thd, Item *arg1)
1732
return new (session->mem_root) Item_func_coercibility(arg1);
1806
return new (thd->mem_root) Item_func_coercibility(arg1);
1736
1810
Create_func_concat Create_func_concat::s_singleton;
1739
Create_func_concat::create_native(Session *session, LEX_STRING name,
1813
Create_func_concat::create_native(THD *thd, LEX_STRING name,
1740
1814
List<Item> *item_list)
1742
1816
int arg_count= 0;
1775
return new (session->mem_root) Item_func_concat_ws(*item_list);
1849
return new (thd->mem_root) Item_func_concat_ws(*item_list);
1779
1853
Create_func_connection_id Create_func_connection_id::s_singleton;
1782
Create_func_connection_id::create(Session *session)
1856
Create_func_connection_id::create(THD *thd)
1784
return new (session->mem_root) Item_func_connection_id();
1858
return new (thd->mem_root) Item_func_connection_id();
1788
1862
Create_func_conv Create_func_conv::s_singleton;
1791
Create_func_conv::create(Session *session, Item *arg1, Item *arg2, Item *arg3)
1865
Create_func_conv::create(THD *thd, Item *arg1, Item *arg2, Item *arg3)
1793
return new (session->mem_root) Item_func_conv(arg1, arg2, arg3);
1867
return new (thd->mem_root) Item_func_conv(arg1, arg2, arg3);
1797
1871
Create_func_cos Create_func_cos::s_singleton;
1800
Create_func_cos::create(Session *session, Item *arg1)
1874
Create_func_cos::create(THD *thd, Item *arg1)
1802
return new (session->mem_root) Item_func_cos(arg1);
1876
return new (thd->mem_root) Item_func_cos(arg1);
1806
1880
Create_func_cot Create_func_cot::s_singleton;
1809
Create_func_cot::create(Session *session, Item *arg1)
1883
Create_func_cot::create(THD *thd, Item *arg1)
1811
Item *i1= new (session->mem_root) Item_int((char*) "1", 1, 1);
1812
Item *i2= new (session->mem_root) Item_func_tan(arg1);
1813
return new (session->mem_root) Item_func_div(i1, i2);
1885
Item *i1= new (thd->mem_root) Item_int((char*) "1", 1, 1);
1886
Item *i2= new (thd->mem_root) Item_func_tan(arg1);
1887
return new (thd->mem_root) Item_func_div(i1, i2);
1816
1890
Create_func_date_format Create_func_date_format::s_singleton;
1819
Create_func_date_format::create(Session *session, Item *arg1, Item *arg2)
1893
Create_func_date_format::create(THD *thd, Item *arg1, Item *arg2)
1821
return new (session->mem_root) Item_func_date_format(arg1, arg2, 0);
1895
return new (thd->mem_root) Item_func_date_format(arg1, arg2, 0);
1825
1899
Create_func_datediff Create_func_datediff::s_singleton;
1828
Create_func_datediff::create(Session *session, Item *arg1, Item *arg2)
1902
Create_func_datediff::create(THD *thd, Item *arg1, Item *arg2)
1830
Item *i1= new (session->mem_root) Item_func_to_days(arg1);
1831
Item *i2= new (session->mem_root) Item_func_to_days(arg2);
1904
Item *i1= new (thd->mem_root) Item_func_to_days(arg1);
1905
Item *i2= new (thd->mem_root) Item_func_to_days(arg2);
1833
return new (session->mem_root) Item_func_minus(i1, i2);
1907
return new (thd->mem_root) Item_func_minus(i1, i2);
1837
1911
Create_func_dayname Create_func_dayname::s_singleton;
1840
Create_func_dayname::create(Session *session, Item *arg1)
1914
Create_func_dayname::create(THD *thd, Item *arg1)
1842
return new (session->mem_root) Item_func_dayname(arg1);
1916
return new (thd->mem_root) Item_func_dayname(arg1);
1846
1920
Create_func_dayofmonth Create_func_dayofmonth::s_singleton;
1849
Create_func_dayofmonth::create(Session *session, Item *arg1)
1923
Create_func_dayofmonth::create(THD *thd, Item *arg1)
1851
return new (session->mem_root) Item_func_dayofmonth(arg1);
1925
return new (thd->mem_root) Item_func_dayofmonth(arg1);
1855
1929
Create_func_dayofweek Create_func_dayofweek::s_singleton;
1858
Create_func_dayofweek::create(Session *session, Item *arg1)
1932
Create_func_dayofweek::create(THD *thd, Item *arg1)
1860
return new (session->mem_root) Item_func_weekday(arg1, 1);
1934
return new (thd->mem_root) Item_func_weekday(arg1, 1);
1864
1938
Create_func_dayofyear Create_func_dayofyear::s_singleton;
1867
Create_func_dayofyear::create(Session *session, Item *arg1)
1941
Create_func_dayofyear::create(THD *thd, Item *arg1)
1869
return new (session->mem_root) Item_func_dayofyear(arg1);
1943
return new (thd->mem_root) Item_func_dayofyear(arg1);
1873
1947
Create_func_degrees Create_func_degrees::s_singleton;
1876
Create_func_degrees::create(Session *session, Item *arg1)
1950
Create_func_degrees::create(THD *thd, Item *arg1)
1878
return new (session->mem_root) Item_func_units((char*) "degrees", arg1,
1952
return new (thd->mem_root) Item_func_units((char*) "degrees", arg1,
1879
1953
180/M_PI, 0.0);
1983
return new (session->mem_root) Item_func_field(*item_list);
2057
return new (thd->mem_root) Item_func_field(*item_list);
1987
2061
Create_func_find_in_set Create_func_find_in_set::s_singleton;
1990
Create_func_find_in_set::create(Session *session, Item *arg1, Item *arg2)
2064
Create_func_find_in_set::create(THD *thd, Item *arg1, Item *arg2)
1992
return new (session->mem_root) Item_func_find_in_set(arg1, arg2);
2066
return new (thd->mem_root) Item_func_find_in_set(arg1, arg2);
1996
2070
Create_func_floor Create_func_floor::s_singleton;
1999
Create_func_floor::create(Session *session, Item *arg1)
2073
Create_func_floor::create(THD *thd, Item *arg1)
2001
return new (session->mem_root) Item_func_floor(arg1);
2075
return new (thd->mem_root) Item_func_floor(arg1);
2005
2079
Create_func_format Create_func_format::s_singleton;
2008
Create_func_format::create(Session *session, Item *arg1, Item *arg2)
2082
Create_func_format::create(THD *thd, Item *arg1, Item *arg2)
2010
return new (session->mem_root) Item_func_format(arg1, arg2);
2084
return new (thd->mem_root) Item_func_format(arg1, arg2);
2014
2088
Create_func_found_rows Create_func_found_rows::s_singleton;
2017
Create_func_found_rows::create(Session *session)
2091
Create_func_found_rows::create(THD *thd)
2019
session->lex->set_stmt_unsafe();
2020
return new (session->mem_root) Item_func_found_rows();
2093
thd->lex->set_stmt_unsafe();
2094
return new (thd->mem_root) Item_func_found_rows();
2024
2098
Create_func_from_days Create_func_from_days::s_singleton;
2027
Create_func_from_days::create(Session *session, Item *arg1)
2101
Create_func_from_days::create(THD *thd, Item *arg1)
2029
return new (session->mem_root) Item_func_from_days(arg1);
2103
return new (thd->mem_root) Item_func_from_days(arg1);
2033
2107
Create_func_from_unixtime Create_func_from_unixtime::s_singleton;
2036
Create_func_from_unixtime::create_native(Session *session, LEX_STRING name,
2110
Create_func_from_unixtime::create_native(THD *thd, LEX_STRING name,
2037
2111
List<Item> *item_list)
2039
2113
Item *func= NULL;
2088
return new (session->mem_root) Item_func_max(*item_list);
2162
return new (thd->mem_root) Item_func_max(*item_list);
2092
2166
Create_func_hex Create_func_hex::s_singleton;
2095
Create_func_hex::create(Session *session, Item *arg1)
2169
Create_func_hex::create(THD *thd, Item *arg1)
2097
return new (session->mem_root) Item_func_hex(arg1);
2171
return new (thd->mem_root) Item_func_hex(arg1);
2101
2175
Create_func_ifnull Create_func_ifnull::s_singleton;
2104
Create_func_ifnull::create(Session *session, Item *arg1, Item *arg2)
2178
Create_func_ifnull::create(THD *thd, Item *arg1, Item *arg2)
2106
return new (session->mem_root) Item_func_ifnull(arg1, arg2);
2180
return new (thd->mem_root) Item_func_ifnull(arg1, arg2);
2110
2184
Create_func_instr Create_func_instr::s_singleton;
2113
Create_func_instr::create(Session *session, Item *arg1, Item *arg2)
2187
Create_func_instr::create(THD *thd, Item *arg1, Item *arg2)
2115
return new (session->mem_root) Item_func_locate(arg1, arg2);
2189
return new (thd->mem_root) Item_func_locate(arg1, arg2);
2119
2193
Create_func_isnull Create_func_isnull::s_singleton;
2122
Create_func_isnull::create(Session *session, Item *arg1)
2196
Create_func_isnull::create(THD *thd, Item *arg1)
2124
return new (session->mem_root) Item_func_isnull(arg1);
2198
return new (thd->mem_root) Item_func_isnull(arg1);
2128
2202
Create_func_last_day Create_func_last_day::s_singleton;
2131
Create_func_last_day::create(Session *session, Item *arg1)
2205
Create_func_last_day::create(THD *thd, Item *arg1)
2133
return new (session->mem_root) Item_func_last_day(arg1);
2207
return new (thd->mem_root) Item_func_last_day(arg1);
2137
2211
Create_func_last_insert_id Create_func_last_insert_id::s_singleton;
2140
Create_func_last_insert_id::create_native(Session *session, LEX_STRING name,
2214
Create_func_last_insert_id::create_native(THD *thd, LEX_STRING name,
2141
2215
List<Item> *item_list)
2143
2217
Item *func= NULL;
2307
2381
Create_func_log10 Create_func_log10::s_singleton;
2310
Create_func_log10::create(Session *session, Item *arg1)
2384
Create_func_log10::create(THD *thd, Item *arg1)
2312
return new (session->mem_root) Item_func_log10(arg1);
2386
return new (thd->mem_root) Item_func_log10(arg1);
2316
2390
Create_func_log2 Create_func_log2::s_singleton;
2319
Create_func_log2::create(Session *session, Item *arg1)
2393
Create_func_log2::create(THD *thd, Item *arg1)
2321
return new (session->mem_root) Item_func_log2(arg1);
2395
return new (thd->mem_root) Item_func_log2(arg1);
2325
2399
Create_func_lpad Create_func_lpad::s_singleton;
2328
Create_func_lpad::create(Session *session, Item *arg1, Item *arg2, Item *arg3)
2402
Create_func_lpad::create(THD *thd, Item *arg1, Item *arg2, Item *arg3)
2330
return new (session->mem_root) Item_func_lpad(arg1, arg2, arg3);
2404
return new (thd->mem_root) Item_func_lpad(arg1, arg2, arg3);
2334
2408
Create_func_ltrim Create_func_ltrim::s_singleton;
2337
Create_func_ltrim::create(Session *session, Item *arg1)
2411
Create_func_ltrim::create(THD *thd, Item *arg1)
2339
return new (session->mem_root) Item_func_ltrim(arg1);
2413
return new (thd->mem_root) Item_func_ltrim(arg1);
2343
2417
Create_func_makedate Create_func_makedate::s_singleton;
2346
Create_func_makedate::create(Session *session, Item *arg1, Item *arg2)
2420
Create_func_makedate::create(THD *thd, Item *arg1, Item *arg2)
2348
return new (session->mem_root) Item_func_makedate(arg1, arg2);
2422
return new (thd->mem_root) Item_func_makedate(arg1, arg2);
2352
2426
Create_func_maketime Create_func_maketime::s_singleton;
2355
Create_func_maketime::create(Session *session, Item *arg1, Item *arg2, Item *arg3)
2429
Create_func_maketime::create(THD *thd, Item *arg1, Item *arg2, Item *arg3)
2357
return new (session->mem_root) Item_func_maketime(arg1, arg2, arg3);
2431
return new (thd->mem_root) Item_func_maketime(arg1, arg2, arg3);
2361
2435
Create_func_make_set Create_func_make_set::s_singleton;
2364
Create_func_make_set::create_native(Session *session, LEX_STRING name,
2438
Create_func_make_set::create_native(THD *thd, LEX_STRING name,
2365
2439
List<Item> *item_list)
2367
2441
int arg_count= 0;
2423
2497
Create_func_monthname Create_func_monthname::s_singleton;
2426
Create_func_monthname::create(Session *session, Item *arg1)
2500
Create_func_monthname::create(THD *thd, Item *arg1)
2428
return new (session->mem_root) Item_func_monthname(arg1);
2502
return new (thd->mem_root) Item_func_monthname(arg1);
2432
2506
Create_func_nullif Create_func_nullif::s_singleton;
2435
Create_func_nullif::create(Session *session, Item *arg1, Item *arg2)
2509
Create_func_nullif::create(THD *thd, Item *arg1, Item *arg2)
2437
return new (session->mem_root) Item_func_nullif(arg1, arg2);
2511
return new (thd->mem_root) Item_func_nullif(arg1, arg2);
2441
2515
Create_func_oct Create_func_oct::s_singleton;
2444
Create_func_oct::create(Session *session, Item *arg1)
2518
Create_func_oct::create(THD *thd, Item *arg1)
2446
Item *i10= new (session->mem_root) Item_int((int32_t) 10,2);
2447
Item *i8= new (session->mem_root) Item_int((int32_t) 8,1);
2448
return new (session->mem_root) Item_func_conv(arg1, i10, i8);
2520
Item *i10= new (thd->mem_root) Item_int((int32_t) 10,2);
2521
Item *i8= new (thd->mem_root) Item_int((int32_t) 8,1);
2522
return new (thd->mem_root) Item_func_conv(arg1, i10, i8);
2452
2526
Create_func_ord Create_func_ord::s_singleton;
2455
Create_func_ord::create(Session *session, Item *arg1)
2529
Create_func_ord::create(THD *thd, Item *arg1)
2457
return new (session->mem_root) Item_func_ord(arg1);
2531
return new (thd->mem_root) Item_func_ord(arg1);
2461
2535
Create_func_period_add Create_func_period_add::s_singleton;
2464
Create_func_period_add::create(Session *session, Item *arg1, Item *arg2)
2538
Create_func_period_add::create(THD *thd, Item *arg1, Item *arg2)
2466
return new (session->mem_root) Item_func_period_add(arg1, arg2);
2540
return new (thd->mem_root) Item_func_period_add(arg1, arg2);
2470
2544
Create_func_period_diff Create_func_period_diff::s_singleton;
2473
Create_func_period_diff::create(Session *session, Item *arg1, Item *arg2)
2547
Create_func_period_diff::create(THD *thd, Item *arg1, Item *arg2)
2475
return new (session->mem_root) Item_func_period_diff(arg1, arg2);
2549
return new (thd->mem_root) Item_func_period_diff(arg1, arg2);
2479
2553
Create_func_pi Create_func_pi::s_singleton;
2482
Create_func_pi::create(Session *session)
2556
Create_func_pi::create(THD *thd)
2484
return new (session->mem_root) Item_static_float_func("pi()", M_PI, 6, 8);
2558
return new (thd->mem_root) Item_static_float_func("pi()", M_PI, 6, 8);
2488
2562
Create_func_pow Create_func_pow::s_singleton;
2491
Create_func_pow::create(Session *session, Item *arg1, Item *arg2)
2565
Create_func_pow::create(THD *thd, Item *arg1, Item *arg2)
2493
return new (session->mem_root) Item_func_pow(arg1, arg2);
2567
return new (thd->mem_root) Item_func_pow(arg1, arg2);
2497
2571
Create_func_quote Create_func_quote::s_singleton;
2500
Create_func_quote::create(Session *session, Item *arg1)
2574
Create_func_quote::create(THD *thd, Item *arg1)
2502
return new (session->mem_root) Item_func_quote(arg1);
2576
return new (thd->mem_root) Item_func_quote(arg1);
2506
2580
Create_func_radians Create_func_radians::s_singleton;
2509
Create_func_radians::create(Session *session, Item *arg1)
2583
Create_func_radians::create(THD *thd, Item *arg1)
2511
return new (session->mem_root) Item_func_units((char*) "radians", arg1,
2585
return new (thd->mem_root) Item_func_units((char*) "radians", arg1,
2512
2586
M_PI/180, 0.0);
2589
2663
Create_func_row_count Create_func_row_count::s_singleton;
2592
Create_func_row_count::create(Session *session)
2666
Create_func_row_count::create(THD *thd)
2594
session->lex->set_stmt_unsafe();
2595
return new (session->mem_root) Item_func_row_count();
2668
thd->lex->set_stmt_unsafe();
2669
return new (thd->mem_root) Item_func_row_count();
2599
2673
Create_func_rpad Create_func_rpad::s_singleton;
2602
Create_func_rpad::create(Session *session, Item *arg1, Item *arg2, Item *arg3)
2676
Create_func_rpad::create(THD *thd, Item *arg1, Item *arg2, Item *arg3)
2604
return new (session->mem_root) Item_func_rpad(arg1, arg2, arg3);
2678
return new (thd->mem_root) Item_func_rpad(arg1, arg2, arg3);
2608
2682
Create_func_rtrim Create_func_rtrim::s_singleton;
2611
Create_func_rtrim::create(Session *session, Item *arg1)
2685
Create_func_rtrim::create(THD *thd, Item *arg1)
2613
return new (session->mem_root) Item_func_rtrim(arg1);
2687
return new (thd->mem_root) Item_func_rtrim(arg1);
2617
2691
Create_func_sec_to_time Create_func_sec_to_time::s_singleton;
2620
Create_func_sec_to_time::create(Session *session, Item *arg1)
2694
Create_func_sec_to_time::create(THD *thd, Item *arg1)
2622
return new (session->mem_root) Item_func_sec_to_time(arg1);
2696
return new (thd->mem_root) Item_func_sec_to_time(arg1);
2626
2700
Create_func_sign Create_func_sign::s_singleton;
2629
Create_func_sign::create(Session *session, Item *arg1)
2703
Create_func_sign::create(THD *thd, Item *arg1)
2631
return new (session->mem_root) Item_func_sign(arg1);
2705
return new (thd->mem_root) Item_func_sign(arg1);
2635
2709
Create_func_sin Create_func_sin::s_singleton;
2638
Create_func_sin::create(Session *session, Item *arg1)
2712
Create_func_sin::create(THD *thd, Item *arg1)
2640
return new (session->mem_root) Item_func_sin(arg1);
2714
return new (thd->mem_root) Item_func_sin(arg1);
2644
2718
Create_func_space Create_func_space::s_singleton;
2647
Create_func_space::create(Session *session, Item *arg1)
2721
Create_func_space::create(THD *thd, Item *arg1)
2650
2724
TODO: Fix Bug#23637
2651
2725
The parsed item tree should not depend on
2652
<code>session->variables.collation_connection</code>.
2726
<code>thd->variables.collation_connection</code>.
2654
const CHARSET_INFO * const cs= session->variables.collation_connection;
2728
const CHARSET_INFO * const cs= thd->variables.collation_connection;
2657
2731
if (cs->mbminlen > 1)
2659
uint32_t dummy_errors;
2660
sp= new (session->mem_root) Item_string("", 0, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII);
2661
sp->str_value.copy(" ", 1, &my_charset_utf8_general_ci, cs, &dummy_errors);
2734
sp= new (thd->mem_root) Item_string("", 0, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII);
2735
sp->str_value.copy(" ", 1, &my_charset_latin1, cs, &dummy_errors);
2665
sp= new (session->mem_root) Item_string(" ", 1, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII);
2739
sp= new (thd->mem_root) Item_string(" ", 1, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII);
2668
return new (session->mem_root) Item_func_repeat(sp, arg1);
2742
return new (thd->mem_root) Item_func_repeat(sp, arg1);
2672
2746
Create_func_sqrt Create_func_sqrt::s_singleton;
2675
Create_func_sqrt::create(Session *session, Item *arg1)
2749
Create_func_sqrt::create(THD *thd, Item *arg1)
2677
return new (session->mem_root) Item_func_sqrt(arg1);
2751
return new (thd->mem_root) Item_func_sqrt(arg1);
2681
2755
Create_func_str_to_date Create_func_str_to_date::s_singleton;
2684
Create_func_str_to_date::create(Session *session, Item *arg1, Item *arg2)
2758
Create_func_str_to_date::create(THD *thd, Item *arg1, Item *arg2)
2686
return new (session->mem_root) Item_func_str_to_date(arg1, arg2);
2760
return new (thd->mem_root) Item_func_str_to_date(arg1, arg2);
2690
2764
Create_func_strcmp Create_func_strcmp::s_singleton;
2693
Create_func_strcmp::create(Session *session, Item *arg1, Item *arg2)
2767
Create_func_strcmp::create(THD *thd, Item *arg1, Item *arg2)
2695
return new (session->mem_root) Item_func_strcmp(arg1, arg2);
2769
return new (thd->mem_root) Item_func_strcmp(arg1, arg2);
2699
2773
Create_func_substr_index Create_func_substr_index::s_singleton;
2702
Create_func_substr_index::create(Session *session, Item *arg1, Item *arg2, Item *arg3)
2776
Create_func_substr_index::create(THD *thd, Item *arg1, Item *arg2, Item *arg3)
2704
return new (session->mem_root) Item_func_substr_index(arg1, arg2, arg3);
2778
return new (thd->mem_root) Item_func_substr_index(arg1, arg2, arg3);
2708
2782
Create_func_subtime Create_func_subtime::s_singleton;
2711
Create_func_subtime::create(Session *session, Item *arg1, Item *arg2)
2785
Create_func_subtime::create(THD *thd, Item *arg1, Item *arg2)
2713
return new (session->mem_root) Item_func_add_time(arg1, arg2, 0, 1);
2787
return new (thd->mem_root) Item_func_add_time(arg1, arg2, 0, 1);
2717
2791
Create_func_tan Create_func_tan::s_singleton;
2720
Create_func_tan::create(Session *session, Item *arg1)
2794
Create_func_tan::create(THD *thd, Item *arg1)
2722
return new (session->mem_root) Item_func_tan(arg1);
2796
return new (thd->mem_root) Item_func_tan(arg1);
2726
2800
Create_func_time_format Create_func_time_format::s_singleton;
2729
Create_func_time_format::create(Session *session, Item *arg1, Item *arg2)
2803
Create_func_time_format::create(THD *thd, Item *arg1, Item *arg2)
2731
return new (session->mem_root) Item_func_date_format(arg1, arg2, 1);
2805
return new (thd->mem_root) Item_func_date_format(arg1, arg2, 1);
2735
2809
Create_func_time_to_sec Create_func_time_to_sec::s_singleton;
2738
Create_func_time_to_sec::create(Session *session, Item *arg1)
2812
Create_func_time_to_sec::create(THD *thd, Item *arg1)
2740
return new (session->mem_root) Item_func_time_to_sec(arg1);
2814
return new (thd->mem_root) Item_func_time_to_sec(arg1);
2744
2818
Create_func_timediff Create_func_timediff::s_singleton;
2747
Create_func_timediff::create(Session *session, Item *arg1, Item *arg2)
2821
Create_func_timediff::create(THD *thd, Item *arg1, Item *arg2)
2749
return new (session->mem_root) Item_func_timediff(arg1, arg2);
2823
return new (thd->mem_root) Item_func_timediff(arg1, arg2);
2753
2827
Create_func_to_days Create_func_to_days::s_singleton;
2756
Create_func_to_days::create(Session *session, Item *arg1)
2830
Create_func_to_days::create(THD *thd, Item *arg1)
2758
return new (session->mem_root) Item_func_to_days(arg1);
2832
return new (thd->mem_root) Item_func_to_days(arg1);
2762
2836
Create_func_ucase Create_func_ucase::s_singleton;
2765
Create_func_ucase::create(Session *session, Item *arg1)
2839
Create_func_ucase::create(THD *thd, Item *arg1)
2767
return new (session->mem_root) Item_func_ucase(arg1);
2841
return new (thd->mem_root) Item_func_ucase(arg1);
2771
2845
Create_func_unhex Create_func_unhex::s_singleton;
2774
Create_func_unhex::create(Session *session, Item *arg1)
2848
Create_func_unhex::create(THD *thd, Item *arg1)
2776
return new (session->mem_root) Item_func_unhex(arg1);
2850
return new (thd->mem_root) Item_func_unhex(arg1);
2780
2854
Create_func_unix_timestamp Create_func_unix_timestamp::s_singleton;
2783
Create_func_unix_timestamp::create_native(Session *session, LEX_STRING name,
2857
Create_func_unix_timestamp::create_native(THD *thd, LEX_STRING name,
2784
2858
List<Item> *item_list)
2786
2860
Item *func= NULL;
3091
create_func_char_cast(Session *session, Item *a, int len, const CHARSET_INFO * const cs)
3165
create_func_char_cast(THD *thd, Item *a, int len, const CHARSET_INFO * const cs)
3093
const CHARSET_INFO * const real_cs= (cs ? cs : session->variables.collation_connection);
3094
return new (session->mem_root) Item_char_typecast(a, len, real_cs);
3167
const CHARSET_INFO * const real_cs= (cs ? cs : thd->variables.collation_connection);
3168
return new (thd->mem_root) Item_char_typecast(a, len, real_cs);
3099
create_func_cast(Session *session, Item *a, Cast_target cast_type,
3173
create_func_cast(THD *thd, Item *a, Cast_target cast_type,
3100
3174
const char *c_len, const char *c_dec,
3101
3175
const CHARSET_INFO * const cs)
3107
3181
switch (cast_type) {
3108
3182
case ITEM_CAST_BINARY:
3109
res= new (session->mem_root) Item_func_binary(a);
3183
res= new (thd->mem_root) Item_func_binary(a);
3111
3185
case ITEM_CAST_SIGNED_INT:
3112
res= new (session->mem_root) Item_func_signed(a);
3186
res= new (thd->mem_root) Item_func_signed(a);
3114
3188
case ITEM_CAST_UNSIGNED_INT:
3115
res= new (session->mem_root) Item_func_unsigned(a);
3189
res= new (thd->mem_root) Item_func_unsigned(a);
3117
3191
case ITEM_CAST_DATE:
3118
res= new (session->mem_root) Item_date_typecast(a);
3192
res= new (thd->mem_root) Item_date_typecast(a);
3120
3194
case ITEM_CAST_TIME:
3121
res= new (session->mem_root) Item_time_typecast(a);
3195
res= new (thd->mem_root) Item_time_typecast(a);
3123
3197
case ITEM_CAST_DATETIME:
3124
res= new (session->mem_root) Item_datetime_typecast(a);
3198
res= new (thd->mem_root) Item_datetime_typecast(a);
3126
3200
case ITEM_CAST_DECIMAL: