DT: Fix sparse vector to float8[] casting bug
JIRA: MADLIB-1234
The cast to float array (float8[]) should be evaluated before we access
the individual elements of the array, otherwise we encounter a strange
notation such as feature::madlib.svec::float8[][1]. A simple addition of
parentheses should fix the issue ((feature::madlib.svec::float8[])[1]).
Co-authored-by: Orhan Kislal <okislal@pivotal.io>
diff --git a/src/ports/postgres/modules/recursive_partitioning/decision_tree.py_in b/src/ports/postgres/modules/recursive_partitioning/decision_tree.py_in
index 99ddce2..6f64234 100644
--- a/src/ports/postgres/modules/recursive_partitioning/decision_tree.py_in
+++ b/src/ports/postgres/modules/recursive_partitioning/decision_tree.py_in
@@ -147,7 +147,7 @@
FROM {tbl}
LIMIT 1
""".format(f=feat, tbl=training_table_name))[0]
- final_feature_list += ["{f}[{i}]".format(f=feat, i=i)
+ final_feature_list += ["({f})[{i}]".format(f=feat, i=i)
for i in range(feat_dims['l'], feat_dims['u'] + 1)]
else:
final_feature_list.append(feat)