~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/definitions.h

Merged fix-headers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
971
971
#define OPEN_FRM_ONLY   1                // open FRM file only
972
972
#define OPEN_FULL_TABLE 2                // open FRM,MYD, MYI files
973
973
 
 
974
/*
 
975
   "Declared Type Collation"
 
976
   A combination of collation and its derivation.
 
977
 
 
978
  Flags for collation aggregation modes:
 
979
  MY_COLL_ALLOW_SUPERSET_CONV  - allow conversion to a superset
 
980
  MY_COLL_ALLOW_COERCIBLE_CONV - allow conversion of a coercible value
 
981
                                 (i.e. constant).
 
982
  MY_COLL_ALLOW_CONV           - allow any kind of conversion
 
983
                                 (combination of the above two)
 
984
  MY_COLL_DISALLOW_NONE        - don't allow return DERIVATION_NONE
 
985
                                 (e.g. when aggregating for comparison)
 
986
  MY_COLL_CMP_CONV             - combination of MY_COLL_ALLOW_CONV
 
987
                                 and MY_COLL_DISALLOW_NONE
 
988
*/
 
989
 
 
990
#define MY_COLL_ALLOW_SUPERSET_CONV   1
 
991
#define MY_COLL_ALLOW_COERCIBLE_CONV  2
 
992
#define MY_COLL_ALLOW_CONV            3
 
993
#define MY_COLL_DISALLOW_NONE         4
 
994
#define MY_COLL_CMP_CONV              7
 
995
 
 
996
 
 
997
/*
 
998
  This enum is used to report information about monotonicity of function
 
999
  represented by Item* tree.
 
1000
  Monotonicity is defined only for Item* trees that represent table
 
1001
  partitioning expressions (i.e. have no subselects/user vars/PS parameters
 
1002
  etc etc). An Item* tree is assumed to have the same monotonicity properties
 
1003
  as its correspoinding function F:
 
1004
 
 
1005
  [signed] int64_t F(field1, field2, ...) {
 
1006
    put values of field_i into table record buffer;
 
1007
    return item->val_int(); 
 
1008
  }
 
1009
 
 
1010
  NOTE
 
1011
  At the moment function monotonicity is not well defined (and so may be
 
1012
  incorrect) for Item trees with parameters/return types that are different
 
1013
  from INT_RESULT, may be NULL, or are unsigned.
 
1014
  It will be possible to address this issue once the related partitioning bugs
 
1015
  (BUG#16002, BUG#15447, BUG#13436) are fixed.
 
1016
*/
 
1017
 
 
1018
typedef enum monotonicity_info 
 
1019
{
 
1020
   NON_MONOTONIC,              /* none of the below holds */
 
1021
   MONOTONIC_INCREASING,       /* F() is unary and (x < y) => (F(x) <= F(y)) */
 
1022
   MONOTONIC_STRICT_INCREASING /* F() is unary and (x < y) => (F(x) <  F(y)) */
 
1023
} enum_monotonicity_info;
 
1024
 
974
1025
 
975
1026
#endif /* DRIZZLE_SERVER_DEFINITIONS_H */
976
1027