bool PPLMGeneralComparison::compare_minmax(xmlscm_type type_info, bool min_changed) { if (type_info==xs_untyped) return false; if (min_changed) { switch (type_info) { case xs_string: if (min_str && max_str && op_lt(min_str_cell,max_str_cell,handler).get_xs_boolean()) return true; if (min_ut_num && max_num && op_lt(min_ut_num_cell,max_num_cell,handler).get_xs_boolean()) return true; if (min_ut_dat && max_dat && op_lt(min_ut_dat_cell,max_dat_cell,handler).get_xs_boolean()) return true; break; case xs_double: if (min_num && max_num && op_lt(min_num_cell,max_num_cell,handler).get_xs_boolean()) return true; if (min_num && max_ut_num && op_lt(min_num_cell,max_ut_num_cell,handler).get_xs_boolean()) return true; break; case xs_date: if (min_dat && max_dat && op_lt(min_dat_cell,max_dat_cell,handler).get_xs_boolean()) return true; if (min_dat && max_ut_dat && op_lt(min_dat_cell,max_ut_dat_cell,handler).get_xs_boolean()) return true; break; } } else { switch (type_info) { case xs_string: if (min_str && max_str && op_lt(min_str_cell,max_str_cell,handler).get_xs_boolean()) return true; if (min_num && max_ut_num && op_lt(min_num_cell,max_ut_num_cell,handler).get_xs_boolean()) return true; if (min_dat && max_ut_dat && op_lt(min_dat_cell,max_ut_dat_cell,handler).get_xs_boolean()) return true; break; case xs_double: if (min_ut_num && max_num && op_lt(min_ut_num_cell,max_num_cell,handler).get_xs_boolean()) return true; if (min_num && max_num && op_lt(min_num_cell,max_num_cell,handler).get_xs_boolean()) return true; break; case xs_date: if (min_ut_dat && max_dat && op_lt(min_ut_dat_cell,max_dat_cell,handler).get_xs_boolean()) return true; if (min_dat && max_dat && op_lt(min_dat_cell,max_dat_cell,handler).get_xs_boolean()) return true; break; } } return false; }
int main(int argc, char** argv) { concatenating_strings(); op_lt(); return 0; }
/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// PPLMGeneralComparison /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// xmlscm_type PPLMGeneralComparison::fill_minimums(tuple_cell value) { xmlscm_type ret_type=xs_untyped; if (!is_fixed_size_type(value.get_atomic_type())) { if (min_str) { if (op_lt(value,min_str_cell,handler).get_xs_boolean()) { min_str_cell=value; ret_type=xs_string; } } else { min_str_cell=value; min_str=true; ret_type=xs_string; } try { tuple_cell num_val=cast(value, xs_double); if (min_ut_num) { if (op_lt(num_val,min_ut_num_cell,handler).get_xs_boolean()) { min_ut_num_cell=num_val; ret_type=xs_string; } } else { min_ut_num_cell=num_val; min_ut_num=true; ret_type=xs_string; } } catch(ANY_SE_EXCEPTION) { if (max_num) throw XQUERY_EXCEPTION(FORG0001); min_num_cast=true; } try { tuple_cell num_val=cast(value,xs_date); if (min_ut_dat) { if (op_lt(num_val,min_ut_dat_cell,handler).get_xs_boolean()) { min_ut_dat_cell=num_val; ret_type=xs_string; } } else { min_ut_dat_cell=num_val; min_ut_dat=true; ret_type=xs_string; } } catch(ANY_SE_EXCEPTION) { if (max_dat) throw XQUERY_EXCEPTION(FORG0001); min_dat_cast=true; } return ret_type; } if (is_numeric_type(value.get_atomic_type())) { if (min_num) { if (op_lt(value,min_num_cell,handler).get_xs_boolean()) { min_num_cell=value; ret_type=xs_double; } } else { min_num_cell=value; min_num=true; ret_type=xs_double; } return ret_type; } if (value.get_type()==xs_date) { if (min_dat) { if (op_lt(value,min_dat_cell,handler).get_xs_boolean()) { min_dat_cell=value; ret_type=xs_date; } } else { min_dat_cell=value; min_dat=true; ret_type=xs_date; } return ret_type; } return ret_type; }