~mordred/drizzle/codestyle

« back to all changes in this revision

Viewing changes to drizzled/item.h

  • Committer: Brian Aker
  • Date: 2008-10-13 16:50:30 UTC
  • mfrom: (509.1.4 codestyle)
  • Revision ID: brian@tangent.org-20081013165030-642le57opeglwfdw
Merge from Monty

Show diffs side-by-side

added added

removed removed

Lines of Context:
890
890
  { return 0; }
891
891
  virtual bool register_field_in_read_map(unsigned char *arg __attribute__((unused)))
892
892
  { return 0; }
 
893
  /*
 
894
    The next function differs from the previous one that a bitmap to be updated
 
895
    is passed as unsigned char *arg.
 
896
  */
 
897
  virtual bool register_field_in_bitmap(unsigned char *arg __attribute__((unused)))
 
898
  { return 0; }
893
899
  virtual bool subst_argument_checker(unsigned char **arg)
894
900
  {
895
901
    if (*arg)
897
903
    return true;
898
904
  }
899
905
 
 
906
  /*
 
907
    Check if an expression/function is allowed for a virtual column
 
908
    SYNOPSIS
 
909
      check_vcol_func_processor()
 
910
      arg is just ignored
 
911
    RETURN VALUE
 
912
      TRUE                           Function not accepted
 
913
      FALSE                          Function accepted
 
914
  */
 
915
  virtual bool check_vcol_func_processor(unsigned char *arg __attribute__((unused))) 
 
916
  { return true; }
 
917
 
900
918
  virtual Item *equal_fields_propagator(unsigned char * arg __attribute__((unused))) { return this; }
901
919
  virtual bool set_no_const_sub(unsigned char *arg __attribute__((unused))) { return false; }
902
920
  virtual Item *replace_equal_field(unsigned char * arg __attribute__((unused))) { return this; }
903
921
 
 
922
 
904
923
  /*
905
924
    For SP local variable returns pointer to Item representing its
906
925
    current value and pointer to current Item otherwise.
1157
1176
  bool collect_item_field_processor(unsigned char * arg);
1158
1177
  bool find_item_in_field_list_processor(unsigned char *arg);
1159
1178
  bool register_field_in_read_map(unsigned char *arg);
 
1179
  bool register_field_in_bitmap(unsigned char *arg);
 
1180
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1181
  { return false; }
1160
1182
  void cleanup();
1161
1183
  bool result_as_int64_t()
1162
1184
  {
1212
1234
  }
1213
1235
 
1214
1236
  Item *safe_charset_converter(const CHARSET_INFO * const tocs);
 
1237
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1238
  { return false; }
1215
1239
};
1216
1240
 
1217
1241
class Item_null_result :public Item_null
1224
1248
  {
1225
1249
    save_in_field(result_field, no_conversions);
1226
1250
  }
 
1251
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1252
  { return true; }
1227
1253
};  
1228
1254
 
1229
1255
/* Item represents one placeholder ('?') of prepared statement */
1399
1425
  uint32_t decimal_precision() const
1400
1426
  { return (uint)(max_length - test(value < 0)); }
1401
1427
  bool eq(const Item *, bool binary_cmp) const;
 
1428
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1429
  { return false; }
1402
1430
};
1403
1431
 
1404
1432
 
1416
1444
  virtual void print(String *str, enum_query_type query_type);
1417
1445
  Item_num *neg ();
1418
1446
  uint32_t decimal_precision() const { return max_length; }
 
1447
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1448
  { return false; }
1419
1449
};
1420
1450
 
1421
1451
 
1457
1487
  uint32_t decimal_precision() const { return decimal_value.precision(); }
1458
1488
  bool eq(const Item *, bool binary_cmp) const;
1459
1489
  void set_decimal_value(my_decimal *value_par);
 
1490
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1491
  { return false; }
1460
1492
};
1461
1493
 
1462
1494
 
1524
1556
  }
1525
1557
 
1526
1558
  Item *safe_charset_converter(const CHARSET_INFO * const tocs);
 
1559
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1560
  { return false; }
1527
1561
};
1528
1562
 
1529
1563
 
1653
1687
  {
1654
1688
    m_cs_specified= cs_specified;
1655
1689
  }
 
1690
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1691
  { return false; }
1656
1692
 
1657
1693
private:
1658
1694
  bool m_cs_specified;
1675
1711
  {
1676
1712
    str->append(func_name);
1677
1713
  }
 
1714
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1715
  { return true; }
1678
1716
};
1679
1717
 
1680
1718
 
1754
1792
  virtual void print(String *str, enum_query_type query_type);
1755
1793
  bool eq(const Item *item, bool binary_cmp) const;
1756
1794
  virtual Item *safe_charset_converter(const CHARSET_INFO * const tocs);
 
1795
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1796
  { return false; }
1757
1797
};
1758
1798
 
1759
1799
 
1785
1825
    save_in_field(result_field, no_conversions);
1786
1826
  }
1787
1827
  void cleanup();
 
1828
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
1829
  { return false; }
1788
1830
};
1789
1831
 
1790
1832
 
2272
2314
    return arg->walk(processor, walk_subquery, args) ||
2273
2315
            (this->*processor)(args);
2274
2316
  }
 
2317
  bool check_vcol_func_processor(unsigned char *arg __attribute__((unused)))
 
2318
  { return true; }
2275
2319
};
2276
2320
 
2277
2321