augustoasilva commented on a change in pull request #11166:
URL: https://github.com/apache/arrow/pull/11166#discussion_r743570760



##########
File path: cpp/src/gandiva/gdv_function_stubs.cc
##########
@@ -794,6 +795,162 @@ const char* gdv_fn_initcap_utf8(int64_t context, const 
char* data, int32_t data_
   *out_len = out_idx;
   return out;
 }
+
+GANDIVA_EXPORT
+const char* gdv_fn_elt_int32_utf8_utf8(int64_t context, int32_t pos, const 
char* word1,
+                                       int32_t word1_len, const char* word2,
+                                       int32_t word2_len, int32_t* out_len) {
+  const char* selected;
+  if (pos < 1 || pos > 2) {
+    *out_len = 0;
+    return "";
+  }
+
+  if (pos == 1) {
+    *out_len = word1_len;
+    selected = word1;
+  }
+
+  if (pos == 2) {
+    *out_len = word2_len;
+    selected = word2;
+  }
+
+  char* out = reinterpret_cast<char*>(gdv_fn_context_arena_malloc(context, 
*out_len));
+  if (out == nullptr) {
+    gdv_fn_context_set_error_msg(context, "Could not allocate memory for 
output string");
+    *out_len = 0;
+    return "";
+  }
+  memcpy(out, selected, *out_len);
+  return out;
+}
+
+GANDIVA_EXPORT
+const char* gdv_fn_elt_int32_utf8_utf8_utf8(int64_t context, int32_t pos,
+                                            const char* word1, int32_t 
word1_len,
+                                            const char* word2, int32_t 
word2_len,
+                                            const char* word3, int32_t 
word3_len,
+                                            int32_t* out_len) {
+  const char* selected;
+  if (pos < 1 || pos > 3) {
+    *out_len = 0;
+    return "";
+  }
+
+  if (pos == 1) {

Review comment:
       Done




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to