## Changes between Rasqal 0.9.28 and 0.9.29

### New functions, types and enums

Functions

- void `rasqal_free_xsd_date`(rasqal_xsd_date* d)

- rasqal_xsd_date* `rasqal_new_xsd_date`(rasqal_world* world, const char *date_string)

- rasqal_xsd_datetime* `rasqal_new_xsd_datetime_from_xsd_date`(rasqal_world* world, rasqal_xsd_date *date)

- int `rasqal_query_graph_pattern_visit2`(rasqal_query* query, rasqal_graph_pattern_visit_fn visit_fn, void* data)

- char* `rasqal_regex_replace`(rasqal_world* world, raptor_locator* locator, const char* pattern, const char* regex_flags, const char* subject, size_t subject_len, const char* replace, size_t replace_len, size_t* result_len_p)

- int `rasqal_xsd_date_compare`(const rasqal_xsd_date *d1, const rasqal_xsd_date *d2, int *incomparible_p)

- int `rasqal_xsd_date_equals`(const rasqal_xsd_date *d1, const rasqal_xsd_date *d2, int *incomparible_p)

- char* `rasqal_xsd_date_to_counted_string`(const rasqal_xsd_date *d, size_t *len_p)

- char* `rasqal_xsd_date_to_string`(const rasqal_xsd_date *d)

- int `rasqal_xsd_datetime_compare2`(const rasqal_xsd_datetime *dt1, const rasqal_xsd_datetime *dt2, int *incomparible_p)

- int `rasqal_xsd_datetime_equals2`(const rasqal_xsd_datetime *dt1, const rasqal_xsd_datetime *dt2, int *incomparible_p)

Types

- rasqal_xsd_date

Enums

- `RASQAL_EXPR_STRUUID` - Expression for STRUUID() string UUID

- `RASQAL_EXPR_UUID` - Expression for UUID() UUID

- `RASQAL_LITERAL_DATE` - Date literal type

### Changed functions and types

0.9.28 type | 0.9.29 type | Notes
--- | --- | ---
rasqal_literal | rasqal_literal | Added date to value union.
rasqal_xsd_datetime | rasqal_xsd_datetime | Added time_on_timeline and have_tz fields.