#ifndef SQL_PARSER_INDEX_INCLUDED
#define SQL_PARSER_INDEX_INCLUDED
#include "string"
using std::string;
struct Field_Description{
Item_field * field_name;
Item_func::Functype operator_type;
int cardinality;
const char * field_print;
Field_Description(Item_field * field, int card_value,Item_func::Functype type,const char * field_ptr){
field_name = field;
operator_type = type;
cardinality = card_value;
field_print = field_ptr;
}
Field_Description(Item_field * field){
field_name = field;
operator_type = Item_func::UNKNOWN_FUNC;
cardinality = 0;
field_print = NULL;
}
};
struct INDEX_FIELD{
Field_Description * index_field;
INDEX_FIELD * next_field;
INDEX_FIELD(Field_Description * field){
index_field = field;
next_field = NULL;
}
};
struct JOIN_CONDITION{
List<Item_field> join_fields;
TABLE_LIST * join_table;
JOIN_CONDITION(TABLE_LIST * table){
join_table = table;
}
List<Item_field> * get_join_field(){
if (join_fields.elements == 0){
join_fields.empty();
}
return &join_fields;
}
};
struct POSSBILE_INDEX{
string index_name;
longlong cardinality;
List<char> index_columns;
POSSBILE_INDEX(char * indexname){
index_name = string(indexname);
cardinality = 0;
}
List<char> * get_index_columns(){
if (index_columns.elements == 0){
index_columns.empty();
}
return &index_columns;
}
};
#endif