Changeset: 6144f788ab60 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6144f788ab60 Modified Files: monetdb5/modules/weldudfs/weld_udfs.c sql/backends/monet5/rel_weld.c Branch: rel-weld Log Message:
weld date_extract_year udf diffs (52 lines): diff --git a/monetdb5/modules/weldudfs/weld_udfs.c b/monetdb5/modules/weldudfs/weld_udfs.c --- a/monetdb5/modules/weldudfs/weld_udfs.c +++ b/monetdb5/modules/weldudfs/weld_udfs.c @@ -9,6 +9,7 @@ #include "monetdb_config.h" #include "gdk.h" #include "mal.h" +#include "mtime.h" #include "pcre_pub.h" typedef struct { @@ -20,6 +21,7 @@ MT_Lock initLock MT_LOCK_INITIALIZER("ud mal_export void state_init(i8vec *op, int64_t *state_ptr); mal_export void like(int64_t *state_ptr, i8vec *col, i8vec *pattern, i8vec *exc, int8_t *result); +mal_export void year(int32_t *col, int32_t *result); void state_init(i8vec *op, int64_t *state_ptr) { (void)op; @@ -43,3 +45,7 @@ void like(int64_t *state_ptr, i8vec *col } *result = (int8_t)re_match_no_ignore(col->data, re); } + +void year(int32_t *col, int32_t *result) { + (void)MTIMEdate_extract_year(result, col); +} diff --git a/sql/backends/monet5/rel_weld.c b/sql/backends/monet5/rel_weld.c --- a/sql/backends/monet5/rel_weld.c +++ b/sql/backends/monet5/rel_weld.c @@ -149,6 +149,8 @@ get_weld_func(sql_subfunc *f) { return "/"; else if (strcmp(name, "like") == 0) return "like"; + else if (strcmp(name, "year") == 0) + return "year"; return NULL; } @@ -344,7 +346,11 @@ exp_to_weld(backend *be, weld_state *wst if (right_type < left_type) wprintf(wstate, ")"); } else { - wprintf(wstate, "%s(", weld_func); + if (strcmp(weld_func, "year") == 0) { + wprintf(wstate, "cudf[%s, i32](", weld_func); + } else { + wprintf(wstate, "%s(", weld_func); + } exps_to_weld(be, wstate, exp->l, ", "); wprintf(wstate, ")"); } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list