You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@madlib.apache.org by ri...@apache.org on 2016/04/01 22:26:20 UTC

[02/11] incubator-madlib git commit: Upgrade: Add support for upgrading from v1.x to v1.9

http://git-wip-us.apache.org/repos/asf/incubator-madlib/blob/7d38786d/src/madpack/changelist_1.6_1.9.yaml
----------------------------------------------------------------------
diff --git a/src/madpack/changelist_1.6_1.9.yaml b/src/madpack/changelist_1.6_1.9.yaml
new file mode 100644
index 0000000..9bd519e
--- /dev/null
+++ b/src/madpack/changelist_1.6_1.9.yaml
@@ -0,0 +1,914 @@
+# Changelist for MADlib version 1.6 to 1.7
+
+# This file contains all changes that were introduced in a new version of
+# MADlib. This changelist is used by the upgrade script to detect what objects
+# should be upgraded (while retaining all other objects from the previous version)
+
+# New modules (actually .sql_in files) added in upgrade version
+# For these files the sql_in code is retained as is with the functions in the
+# file installed on the upgrade version. All other files (that don't have
+# updates), are cleaned up to remove object replacements
+new module:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------
+    glm:
+    multiresponseglm:
+    ordinal:
+    decision_tree:
+    random_forest:
+    distribution:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    text_utilities:
+
+# Changes in the types (UDT) including removal and modification
+udt:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------
+    bytea8:
+    # ----------------- Changes from 1.8 to 1.9 ----------
+    __enc_tbl_result:
+    __gen_acc_time:
+    __rep_type:
+    __train_result:
+    c45_classify_result:
+    c45_train_result:
+    correlation_result:
+    lsvm_sgd_model_rec:
+    lsvm_sgd_result:
+    rf_classify_result:
+    rf_train_result:
+    svm_cls_result:
+    svm_model_pr:
+    svm_model_rec:
+    svm_nd_result:
+    svm_reg_result:
+    svm_support_vector:
+    _prune_result_type:
+    _tree_result_type:
+    linear_svm_result:
+
+# List of the UDF changes that affect the user externally. This includes change
+# in function name, return type, argument order or types, or removal of
+# the function. In each case, the original function is as good as removed and a
+# new function is created. In such cases, we should abort the upgrade if there
+# are user views dependent on this function, since the original function will
+# not be present in the upgraded version.
+udf:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------
+    - cross_validation_general:   # change in name of argument "fold_num"
+        rettype: void
+        argument: character varying, character varying[], character varying[], character varying, character varying[], character varying, character varying[], character varying[], character varying, character varying[], character varying[], character varying, character varying, boolean, character varying, character varying[], integer
+    - lmf_igd_transition:
+        rettype: double precision[]
+        argument: double precision[], smallint, smallint, double precision, double precision[], smallint, smallint, smallint, double precision, double precision
+    # depending on bytea8
+    # return type is bytea8
+    - __clustered_err_lin_merge:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - __clustered_err_lin_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, double precision, double precision[], double precision[]
+    - __clustered_err_log_merge:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - __clustered_err_log_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, boolean, double precision[], double precision[]
+    - __clustered_err_mlog_merge:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - __clustered_err_mlog_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, integer, double precision[], double precision[], integer, integer
+    - dense_residual_norm_merge_states:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - dense_residual_norm_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, double precision[], double precision, double precision[]
+    - hetero_linregr_merge_states:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - hetero_linregr_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, double precision, double precision[], double precision[]
+    - linregr_merge_states:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - linregr_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, double precision, double precision[]
+    - robust_linregr_merge_states:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - robust_linregr_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, double precision, double precision[], double precision[]
+    - weighted_sample_merge_int64:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - weighted_sample_merge_vector:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8
+    - weighted_sample_transition_int64:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, bigint, double precision
+    - weighted_sample_transition_vector:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, double precision[], double precision
+    # argument type bytea8
+    - __clustered_err_lin_final:
+        rettype: schema_madlib.__clustered_agg_result
+        argument: schema_madlib.bytea8
+    - __clustered_err_log_final:
+        rettype: schema_madlib.__clustered_agg_result
+        argument: schema_madlib.bytea8
+    - __clustered_err_mlog_final:
+        rettype: schema_madlib.__clustered_agg_result
+        argument: schema_madlib.bytea8
+    - dense_residual_norm_final:
+        rettype: schema_madlib.residual_norm_result
+        argument: schema_madlib.bytea8
+    - hetero_linregr_final:
+        rettype: schema_madlib.heteroskedasticity_test_result
+        argument: schema_madlib.bytea8
+    - linregr_final:
+        rettype: schema_madlib.linregr_result
+        argument: schema_madlib.bytea8
+    - robust_linregr_final:
+        rettype: schema_madlib.robust_linregr_result
+        argument: schema_madlib.bytea8
+    - weighted_sample_final_int64:
+        rettype: bigint
+        argument: schema_madlib.bytea8
+    - weighted_sample_final_vector:
+        rettype: double precision[]
+        argument: schema_madlib.bytea8
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    - __filter_input_relation:
+        rettype: character varying
+        argument: character varying, character varying
+    - __lda_util_unnest:
+        rettype: SETOF bigint[]
+        argument: bigint[]
+    - matrix_block_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text
+    - matrix_block_square:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_block_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_block_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_blockize:
+        rettype: schema_madlib.matrix_result
+        argument: text, integer, integer, text
+    - matrix_densify:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, text, boolean
+    - matrix_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, boolean, text, boolean, text
+    - matrix_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, boolean, text, text, text, text, boolean, text
+    - matrix_norm:
+        rettype: double precision
+        argument: text
+    - matrix_scale_and_add:
+        rettype: void
+        argument: text, text, double precision, text
+    - matrix_sparsify:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_square:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, text, boolean
+    - matrix_unblockize:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    # ----------------- Changes from 1.8 to 1.9 ----------
+
+    - _dt_apply:
+       rettype: schema_madlib._tree_result_type
+       argument: schema_madlib.bytea8,schema_madlib.bytea8,schema_madlib.bytea8,smallint,smallint,smallint,boolean,integer
+
+    - internal_linear_svm_igd_result:
+       rettype: schema_madlib.linear_svm_result
+       argument: double precision[]
+
+    - _prune_and_cplist:
+       rettype: schema_madlib._prune_result_type
+       argument: schema_madlib.bytea8,double precision,boolean
+
+    - __array_elem_in:
+       rettype: boolean[]
+       argument: anyarray, anyarray
+
+    - __array_indexed_agg_ffunc:
+       rettype: double precision[]
+       argument: double precision[]
+
+    - __array_indexed_agg_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __array_indexed_agg_sfunc:
+       rettype: double precision[]
+       argument: double precision[], double precision, bigint, bigint
+
+    - __array_search:
+       rettype: boolean
+       argument: anyelement, anyarray
+
+    - __array_sort:
+       rettype: anyarray
+       argument: anyarray
+
+    - __assert:
+       rettype: void
+       argument: boolean, text
+
+    - __assert_table:
+       rettype: void
+       argument: text, boolean
+
+    - __best_scv_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __best_scv_sfunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[], integer, double precision
+
+    - __bigint_array_add:
+       rettype: bigint[]
+       argument: bigint[], bigint[]
+
+    - __breakup_table:
+       rettype: void
+       argument: text, text, text, text, text, text[], boolean[], integer, integer
+
+    - __check_dt_common_params:
+       rettype: void
+       argument: text, text, text, text, text, text, text, text, integer, double precision, double precision, integer, text
+
+    - __check_training_table:
+       rettype: void
+       argument: text, text[], text[], text, text, integer
+
+    - __column_exists:
+       rettype: boolean
+       argument: text, text
+
+    - __columns_in_table:
+       rettype: boolean
+       argument: text[], text
+
+    - __create_metatable:
+       rettype: void
+       argument: text
+
+    - __create_tree_tables:
+       rettype: void
+       argument: text
+
+    - __csvstr_to_array:
+       rettype: text[]
+       argument: text
+
+    - __display_node_sfunc:
+       rettype: text
+       argument: text, integer, boolean, text, text, double precision, double precision, text, integer
+
+    - __display_tree_no_ordered_aggr:
+       rettype: text
+       argument: text, integer, integer, integer, boolean, double precision, text, integer, integer
+
+    - __distinct_feature_value:
+       rettype: integer
+       argument: text, integer
+
+    - __drop_metatable:
+       rettype: void
+       argument: text
+
+    - __dt_acc_count_sfunc:
+       rettype: bigint[]
+       argument: bigint[], integer, bigint, integer
+
+    - __dt_get_node_split_fids:
+       rettype: integer[]
+       argument: integer, integer, integer, integer[]
+
+    - __ebp_calc_errors:
+       rettype: double precision
+       argument: double precision, double precision, double precision
+
+    - __ebp_prune_tree:
+       rettype: void
+       argument: text
+
+    - __encode_and_train:
+       rettype: record
+       argument: text, text, integer, integer, text, text, text, text, text, text, text, double precision, text, integer, double precision, boolean, double precision, double precision, text, integer
+
+    - __encode_columns:
+       rettype: void
+       argument: text, text, integer, integer
+
+    - __encode_table:
+       rettype: void
+       argument: text, text, text, integer, integer
+
+    - __encode_table:
+       rettype: void
+       argument: text, text, text[], text, text[], text, text, integer, integer
+
+    - __find_best_split:
+       rettype: void
+       argument: text, double precision, text, integer, integer, text, integer, integer
+
+    - __format:
+       rettype: text
+       argument: text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text[]
+
+    - __gen_acc:
+       rettype: __gen_acc_time
+       argument: text, text, text, text, text, integer, integer, boolean, integer
+
+    - __gen_enc_meta_names:
+       rettype: text[]
+       argument: text, text
+
+    - __gen_horizontal_encoded_table:
+       rettype: void
+       argument: text, text, integer, integer
+
+    - __gen_vertical_encoded_table:
+       rettype: void
+       argument: text, text, text, boolean, integer
+
+    - __generate_final_tree:
+       rettype: void
+       argument: text
+
+    - __get_class_column_name:
+       rettype: text
+       argument: text
+
+    - __get_class_value:
+       rettype: text
+       argument: integer, text
+
+    - __get_classtable_name:
+       rettype: text
+       argument: text
+
+    - __get_column_value:
+       rettype: text
+       argument: integer, integer, character, text
+
+    - __get_feature_name:
+       rettype: text
+       argument: integer, text
+
+    - __get_feature_value:
+       rettype: text
+       argument: integer, integer, text
+
+    - __get_features_of_nodes:
+       rettype: text
+       argument: text, text, integer, integer, integer
+
+    - __get_id_column_name:
+       rettype: text
+       argument: text
+
+    - __get_schema_name:
+       rettype: text
+       argument: text
+
+    - __get_table_name:
+       rettype: text
+       argument: text
+
+    - __insert_into_metatable:
+       rettype: void
+       argument: text, integer, text, character, boolean, text, integer
+
+    - __is_valid_enc_table:
+       rettype: boolean
+       argument: text
+
+    - __num_of_class:
+       rettype: integer
+       argument: text
+
+    - __num_of_columns:
+       rettype: integer
+       argument: text
+
+    - __num_of_feature:
+       rettype: integer
+       argument: text
+
+    - __regclass_to_text:
+       rettype: text
+       argument: regclass
+
+    - __rename_table:
+       rettype: void
+       argument: text, text
+
+    - __rep_aggr_class_count_ffunc:
+       rettype: bigint[]
+       argument: bigint[]
+
+    - __rep_aggr_class_count_sfunc:
+       rettype: bigint[]
+       argument: bigint[], integer, integer, integer
+
+    - __rep_prune_tree:
+       rettype: void
+       argument: text, text, integer
+
+    - __sample_with_replacement:
+       rettype: void
+       argument: integer, bigint, text, text
+
+    - __sample_within_range:
+       rettype: SETOF bigint
+       argument: bigint, bigint, bigint
+
+    - __scv_aggr_ffunc:
+       rettype: double precision[]
+       argument: double precision[]
+
+    - __scv_aggr_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __scv_aggr_sfunc:
+       rettype: double precision[]
+       argument: double precision[], integer, boolean, integer, double precision[], double precision[], bigint
+
+    - __strip_schema_name:
+       rettype: text
+       argument: text
+
+    - __svm_random_ind2:
+       rettype: double precision[]
+       argument: integer
+
+    - __svm_random_ind:
+       rettype: double precision[]
+       argument: integer
+
+    - __svm_target_cl_func:
+       rettype: double precision
+       argument: double precision[]
+
+    - __svm_target_reg_func:
+       rettype: double precision
+       argument: double precision[]
+
+    - __table_exists:
+       rettype: boolean
+       argument: text
+
+    - __train_tree:
+       rettype: __train_result
+       argument: text, integer, integer, text, text, text, text, text, text, double precision, integer, double precision, double precision, double precision, boolean, integer, integer
+
+    - __treemodel_classify_internal:
+       rettype: text[]
+       argument: text, text, integer
+
+    - __treemodel_classify_internal_serial:
+       rettype: text[]
+       argument: text, text, integer
+
+    - __treemodel_display_no_ordered_aggr:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - __treemodel_display_with_ordered_aggr:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - __treemodel_get_vote_result:
+       rettype: void
+       argument: text, text
+
+    - __treemodel_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - __validate_input_table:
+       rettype: void
+       argument: text, text[], text, text
+
+    - __validate_metatable:
+       rettype: void
+       argument: text
+
+    - c45_classify:
+       rettype: c45_classify_result
+       argument: text, text, text
+
+    - c45_classify:
+       rettype: c45_classify_result
+       argument: text, text, text, integer
+
+    - c45_clean:
+       rettype: boolean
+       argument: text
+
+    - c45_display:
+       rettype: SETOF text
+       argument: text
+
+    - c45_display:
+       rettype: SETOF text
+       argument: text, integer
+
+    - c45_genrule:
+       rettype: SETOF text
+       argument: text
+
+    - c45_genrule:
+       rettype: SETOF text
+       argument: text, integer
+
+    - c45_score:
+       rettype: double precision
+       argument: text, text
+
+    - c45_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text, text, text, text, text, text, double precision, text
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text, text, text, text, text, text, double precision, text, integer, double precision, double precision, integer
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying, character varying
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying, character varying, boolean
+
+    - linear_svm_igd_transition:
+       rettype: double precision[]
+       argument: double precision[], double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean, boolean, double precision, double precision
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean, boolean, double precision, double precision, integer
+
+    - lsvm_predict:
+       rettype: double precision
+       argument: double precision[], double precision[]
+
+    - lsvm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text
+
+    - lsvm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text, boolean
+
+    - matrix_block_trans:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_densify:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_sparsify:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_trans:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text, boolean, integer
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text, integer
+
+    - rf_clean:
+       rettype: boolean
+       argument: text
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text, integer[]
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - rf_score:
+       rettype: double precision
+       argument: text, text
+
+    - rf_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - rf_train:
+       rettype: rf_train_result
+       argument: text, text, text
+
+    - rf_train:
+       rettype: rf_train_result
+       argument: text, text, text, integer, integer, double precision, text, text, text, text, text, integer, double precision, double precision, integer
+
+    - svdmf_run:
+       rettype: text
+       argument: text, text, text, text, integer
+
+    - svdmf_run:
+       rettype: text
+       argument: text, text, text, text, integer, integer, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, boolean, double precision, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, double precision
+
+    - svm_cls_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], double precision, text, double precision, double precision, double precision
+
+    - svm_data_normalization:
+       rettype: void
+       argument: text
+
+    - svm_dot:
+       rettype: double precision
+       argument: double precision[], double precision[]
+
+    - svm_dot:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_drop_model:
+       rettype: void
+       argument: text
+
+    - svm_gaussian:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_generate_cls_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_generate_nd_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_generate_reg_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_nd_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], text, double precision, double precision, double precision
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text, boolean, double precision, double precision
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_polynomial:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_predict:
+       rettype: double precision
+       argument: schema_madlib.svm_model_rec, double precision[], text, double precision
+
+    - svm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text, boolean
+
+    - svm_predict_sub:
+       rettype: double precision
+       argument: integer, integer, double precision[], double precision[], double precision[], text, double precision
+
+    - svm_reg_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], double precision, text, double precision, double precision, double precision, double precision
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision, double precision
+
+    - svm_store_model:
+       rettype: void
+       argument: text, text, text
+
+# Changes to aggregates (UDA) including removal and modification
+# Overloaded functions should be mentioned separately
+uda:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------
+    - lmf_igd_step:
+        rettype: double precision[]
+        argument: smallint, smallint, double precision, double precision[], smallint, smallint, smallint, double precision, double precision
+    - __clustered_err_lin_step:
+        rettype: schema_madlib.__clustered_agg_result
+        argument: double precision, double precision[], double precision[]
+    - __clustered_err_log_step:
+        rettype: schema_madlib.__clustered_agg_result
+        argument: boolean, double precision[], double precision[]
+    - __clustered_err_mlog_step:
+        rettype: schema_madlib.__clustered_agg_result
+        argument: integer, double precision[], double precision[], integer, integer
+    - dense_residual_norm:
+        rettype: schema_madlib.residual_norm_result
+        argument: double precision[], double precision, double precision[]
+    - heteroskedasticity_test_linregr:
+        rettype: schema_madlib.heteroskedasticity_test_result
+        argument: double precision, double precision[], double precision[]
+    - linregr:
+        rettype: schema_madlib.linregr_result
+        argument: double precision, double precision[]
+    - robust_linregr:
+        rettype: schema_madlib.robust_linregr_result
+        argument: double precision, double precision[], double precision[]
+    - weighted_sample:
+        rettype: double precision[]
+        argument: double precision[], double precision
+    - weighted_sample:
+        rettype: bigint
+        argument: bigint, double precision
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    - discrete_distribution_agg:
+        rettype: double precision[]
+        argument: integer, double precision, integer
+    - vectorized_distribution_agg:
+        rettype: double precision[]
+        argument: integer[], integer[]
+    # ----------------- Changes from 1.8 to 1.9 ----------
+    - __array_indexed_agg:
+        rettype: double precision[]
+        argument: double precision, bigint, bigint
+
+    - __best_scv_aggr:
+        rettype: double precision[]
+        argument: double precision[], integer, double precision
+
+    - __bigint_array_sum:
+        rettype: bigint[]
+        argument: bigint[]
+
+    - __display_tree_aggr:
+        rettype: text
+        argument: integer, boolean, text, text, double precision, double precision, text, integer
+
+    - __dt_acc_count_aggr:
+        rettype: bigint[]
+        argument: integer, bigint, integer
+
+    - __rep_aggr_class_count:
+        rettype: bigint[]
+        argument: integer, integer, integer
+
+    - __scv_aggr:
+        rettype: double precision[]
+        argument: integer, boolean, integer, double precision[], double precision[], bigint
+
+    - linear_svm_igd_step:
+        rettype: double precision[]
+        argument: double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - linear_svm_igd_step_serial:
+        rettype: double precision[]
+        argument: double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - svm_cls_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], double precision, text, double precision, double precision, double precision
+
+    - svm_nd_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], text, double precision, double precision, double precision
+
+    - svm_reg_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], double precision, text, double precision, double precision, double precision, double precision
+
+    - __svm_random_ind2:
+        rettype: double precision[]
+        argument: integer
+# Casts (UDC) updated/removed
+udc:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------
+
+# Operators (UDO) removed/updated
+udo:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------
+
+# Operator Classes (UDOC) removed/updated
+udoc:
+    # ----------------- Changes from 1.6 to 1.6.0S ----------
+    # ----------------- Changes from 1.6.0S to 1.7 ----------

http://git-wip-us.apache.org/repos/asf/incubator-madlib/blob/7d38786d/src/madpack/changelist_1.7.1_1.9.yaml
----------------------------------------------------------------------
diff --git a/src/madpack/changelist_1.7.1_1.9.yaml b/src/madpack/changelist_1.7.1_1.9.yaml
new file mode 100644
index 0000000..20d0922
--- /dev/null
+++ b/src/madpack/changelist_1.7.1_1.9.yaml
@@ -0,0 +1,778 @@
+# Changelist for MADlib version 1.7.1 to 1.8
+
+# This file contains all changes that were introduced in a new version of
+# MADlib. This changelist is used by the upgrade script to detect what objects
+# should be upgraded (while retaining all other objects from the previous version)
+
+# New modules (actually .sql_in files) added in upgrade version
+# For these files the sql_in code is retained as is with the functions in the
+# file installed on the upgrade version. All other files (that don't have
+# updates), are cleaned up to remove object replacements
+new module:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    text_utilities:
+
+# Changes in the types (UDT) including removal and modification
+udt:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    # ----------------- Changes from 1.8 to 1.9 ----------
+    __enc_tbl_result:
+    __gen_acc_time:
+    __rep_type:
+    __train_result:
+    c45_classify_result:
+    c45_train_result:
+    correlation_result:
+    lsvm_sgd_model_rec:
+    lsvm_sgd_result:
+    rf_classify_result:
+    rf_train_result:
+    svm_cls_result:
+    svm_model_pr:
+    svm_model_rec:
+    svm_nd_result:
+    svm_reg_result:
+    svm_support_vector:
+    _prune_result_type:
+    _tree_result_type:
+    linear_svm_result:
+
+# List of the UDF changes that affect the user externally. This includes change
+# in function name, return type, argument order or types, or removal of
+# the function. In each case, the original function is as good as removed and a
+# new function is created. In such cases, we should abort the upgrade if there
+# are user views dependent on this function, since the original function will
+# not be present in the upgraded version.
+udf:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    - __filter_input_relation:
+        rettype: character varying
+        argument: character varying, character varying
+    - __lda_util_unnest:
+        rettype: SETOF bigint[]
+        argument: bigint[]
+    - matrix_block_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text
+    - matrix_block_square:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_block_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_block_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_blockize:
+        rettype: schema_madlib.matrix_result
+        argument: text, integer, integer, text
+    - matrix_densify:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, text, boolean
+    - matrix_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, boolean, text, boolean, text
+    - matrix_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, boolean, text, text, text, text, boolean, text
+    - matrix_norm:
+        rettype: double precision
+        argument: text
+    - matrix_scale_and_add:
+        rettype: void
+        argument: text, text, double precision, text
+    - matrix_sparsify:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_square:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, text, boolean
+    - matrix_unblockize:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    # ----------------- Changes from 1.8 to 1.9 ----------
+
+    - _dt_apply:
+       rettype: schema_madlib._tree_result_type
+       argument: schema_madlib.bytea8,schema_madlib.bytea8,schema_madlib.bytea8,smallint,smallint,smallint,boolean,integer
+
+    - internal_linear_svm_igd_result:
+       rettype: schema_madlib.linear_svm_result
+       argument: double precision[]
+
+    - _prune_and_cplist:
+       rettype: schema_madlib._prune_result_type
+       argument: schema_madlib.bytea8,double precision,boolean
+
+    - __array_elem_in:
+       rettype: boolean[]
+       argument: anyarray, anyarray
+
+    - __array_indexed_agg_ffunc:
+       rettype: double precision[]
+       argument: double precision[]
+
+    - __array_indexed_agg_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __array_indexed_agg_sfunc:
+       rettype: double precision[]
+       argument: double precision[], double precision, bigint, bigint
+
+    - __array_search:
+       rettype: boolean
+       argument: anyelement, anyarray
+
+    - __array_sort:
+       rettype: anyarray
+       argument: anyarray
+
+    - __assert:
+       rettype: void
+       argument: boolean, text
+
+    - __assert_table:
+       rettype: void
+       argument: text, boolean
+
+    - __best_scv_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __best_scv_sfunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[], integer, double precision
+
+    - __bigint_array_add:
+       rettype: bigint[]
+       argument: bigint[], bigint[]
+
+    - __breakup_table:
+       rettype: void
+       argument: text, text, text, text, text, text[], boolean[], integer, integer
+
+    - __check_dt_common_params:
+       rettype: void
+       argument: text, text, text, text, text, text, text, text, integer, double precision, double precision, integer, text
+
+    - __check_training_table:
+       rettype: void
+       argument: text, text[], text[], text, text, integer
+
+    - __column_exists:
+       rettype: boolean
+       argument: text, text
+
+    - __columns_in_table:
+       rettype: boolean
+       argument: text[], text
+
+    - __create_metatable:
+       rettype: void
+       argument: text
+
+    - __create_tree_tables:
+       rettype: void
+       argument: text
+
+    - __csvstr_to_array:
+       rettype: text[]
+       argument: text
+
+    - __display_node_sfunc:
+       rettype: text
+       argument: text, integer, boolean, text, text, double precision, double precision, text, integer
+
+    - __display_tree_no_ordered_aggr:
+       rettype: text
+       argument: text, integer, integer, integer, boolean, double precision, text, integer, integer
+
+    - __distinct_feature_value:
+       rettype: integer
+       argument: text, integer
+
+    - __drop_metatable:
+       rettype: void
+       argument: text
+
+    - __dt_acc_count_sfunc:
+       rettype: bigint[]
+       argument: bigint[], integer, bigint, integer
+
+    - __dt_get_node_split_fids:
+       rettype: integer[]
+       argument: integer, integer, integer, integer[]
+
+    - __ebp_calc_errors:
+       rettype: double precision
+       argument: double precision, double precision, double precision
+
+    - __ebp_prune_tree:
+       rettype: void
+       argument: text
+
+    - __encode_and_train:
+       rettype: record
+       argument: text, text, integer, integer, text, text, text, text, text, text, text, double precision, text, integer, double precision, boolean, double precision, double precision, text, integer
+
+    - __encode_columns:
+       rettype: void
+       argument: text, text, integer, integer
+
+    - __encode_table:
+       rettype: void
+       argument: text, text, text, integer, integer
+
+    - __encode_table:
+       rettype: void
+       argument: text, text, text[], text, text[], text, text, integer, integer
+
+    - __find_best_split:
+       rettype: void
+       argument: text, double precision, text, integer, integer, text, integer, integer
+
+    - __format:
+       rettype: text
+       argument: text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text[]
+
+    - __gen_acc:
+       rettype: __gen_acc_time
+       argument: text, text, text, text, text, integer, integer, boolean, integer
+
+    - __gen_enc_meta_names:
+       rettype: text[]
+       argument: text, text
+
+    - __gen_horizontal_encoded_table:
+       rettype: void
+       argument: text, text, integer, integer
+
+    - __gen_vertical_encoded_table:
+       rettype: void
+       argument: text, text, text, boolean, integer
+
+    - __generate_final_tree:
+       rettype: void
+       argument: text
+
+    - __get_class_column_name:
+       rettype: text
+       argument: text
+
+    - __get_class_value:
+       rettype: text
+       argument: integer, text
+
+    - __get_classtable_name:
+       rettype: text
+       argument: text
+
+    - __get_column_value:
+       rettype: text
+       argument: integer, integer, character, text
+
+    - __get_feature_name:
+       rettype: text
+       argument: integer, text
+
+    - __get_feature_value:
+       rettype: text
+       argument: integer, integer, text
+
+    - __get_features_of_nodes:
+       rettype: text
+       argument: text, text, integer, integer, integer
+
+    - __get_id_column_name:
+       rettype: text
+       argument: text
+
+    - __get_schema_name:
+       rettype: text
+       argument: text
+
+    - __get_table_name:
+       rettype: text
+       argument: text
+
+    - __insert_into_metatable:
+       rettype: void
+       argument: text, integer, text, character, boolean, text, integer
+
+    - __is_valid_enc_table:
+       rettype: boolean
+       argument: text
+
+    - __num_of_class:
+       rettype: integer
+       argument: text
+
+    - __num_of_columns:
+       rettype: integer
+       argument: text
+
+    - __num_of_feature:
+       rettype: integer
+       argument: text
+
+    - __regclass_to_text:
+       rettype: text
+       argument: regclass
+
+    - __rename_table:
+       rettype: void
+       argument: text, text
+
+    - __rep_aggr_class_count_ffunc:
+       rettype: bigint[]
+       argument: bigint[]
+
+    - __rep_aggr_class_count_sfunc:
+       rettype: bigint[]
+       argument: bigint[], integer, integer, integer
+
+    - __rep_prune_tree:
+       rettype: void
+       argument: text, text, integer
+
+    - __sample_with_replacement:
+       rettype: void
+       argument: integer, bigint, text, text
+
+    - __sample_within_range:
+       rettype: SETOF bigint
+       argument: bigint, bigint, bigint
+
+    - __scv_aggr_ffunc:
+       rettype: double precision[]
+       argument: double precision[]
+
+    - __scv_aggr_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __scv_aggr_sfunc:
+       rettype: double precision[]
+       argument: double precision[], integer, boolean, integer, double precision[], double precision[], bigint
+
+    - __strip_schema_name:
+       rettype: text
+       argument: text
+
+    - __svm_random_ind2:
+       rettype: double precision[]
+       argument: integer
+
+    - __svm_random_ind:
+       rettype: double precision[]
+       argument: integer
+
+    - __svm_target_cl_func:
+       rettype: double precision
+       argument: double precision[]
+
+    - __svm_target_reg_func:
+       rettype: double precision
+       argument: double precision[]
+
+    - __table_exists:
+       rettype: boolean
+       argument: text
+
+    - __train_tree:
+       rettype: __train_result
+       argument: text, integer, integer, text, text, text, text, text, text, double precision, integer, double precision, double precision, double precision, boolean, integer, integer
+
+    - __treemodel_classify_internal:
+       rettype: text[]
+       argument: text, text, integer
+
+    - __treemodel_classify_internal_serial:
+       rettype: text[]
+       argument: text, text, integer
+
+    - __treemodel_display_no_ordered_aggr:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - __treemodel_display_with_ordered_aggr:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - __treemodel_get_vote_result:
+       rettype: void
+       argument: text, text
+
+    - __treemodel_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - __validate_input_table:
+       rettype: void
+       argument: text, text[], text, text
+
+    - __validate_metatable:
+       rettype: void
+       argument: text
+
+    - c45_classify:
+       rettype: c45_classify_result
+       argument: text, text, text
+
+    - c45_classify:
+       rettype: c45_classify_result
+       argument: text, text, text, integer
+
+    - c45_clean:
+       rettype: boolean
+       argument: text
+
+    - c45_display:
+       rettype: SETOF text
+       argument: text
+
+    - c45_display:
+       rettype: SETOF text
+       argument: text, integer
+
+    - c45_genrule:
+       rettype: SETOF text
+       argument: text
+
+    - c45_genrule:
+       rettype: SETOF text
+       argument: text, integer
+
+    - c45_score:
+       rettype: double precision
+       argument: text, text
+
+    - c45_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text, text, text, text, text, text, double precision, text
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text, text, text, text, text, text, double precision, text, integer, double precision, double precision, integer
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying, character varying
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying, character varying, boolean
+
+    - linear_svm_igd_transition:
+       rettype: double precision[]
+       argument: double precision[], double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean, boolean, double precision, double precision
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean, boolean, double precision, double precision, integer
+
+    - lsvm_predict:
+       rettype: double precision
+       argument: double precision[], double precision[]
+
+    - lsvm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text
+
+    - lsvm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text, boolean
+
+    - matrix_block_trans:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_densify:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_sparsify:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_trans:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text, boolean, integer
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text, integer
+
+    - rf_clean:
+       rettype: boolean
+       argument: text
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text, integer[]
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - rf_score:
+       rettype: double precision
+       argument: text, text
+
+    - rf_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - rf_train:
+       rettype: rf_train_result
+       argument: text, text, text
+
+    - rf_train:
+       rettype: rf_train_result
+       argument: text, text, text, integer, integer, double precision, text, text, text, text, text, integer, double precision, double precision, integer
+
+    - svdmf_run:
+       rettype: text
+       argument: text, text, text, text, integer
+
+    - svdmf_run:
+       rettype: text
+       argument: text, text, text, text, integer, integer, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, boolean, double precision, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, double precision
+
+    - svm_cls_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], double precision, text, double precision, double precision, double precision
+
+    - svm_data_normalization:
+       rettype: void
+       argument: text
+
+    - svm_dot:
+       rettype: double precision
+       argument: double precision[], double precision[]
+
+    - svm_dot:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_drop_model:
+       rettype: void
+       argument: text
+
+    - svm_gaussian:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_generate_cls_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_generate_nd_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_generate_reg_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_nd_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], text, double precision, double precision, double precision
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text, boolean, double precision, double precision
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_polynomial:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_predict:
+       rettype: double precision
+       argument: schema_madlib.svm_model_rec, double precision[], text, double precision
+
+    - svm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text, boolean
+
+    - svm_predict_sub:
+       rettype: double precision
+       argument: integer, integer, double precision[], double precision[], double precision[], text, double precision
+
+    - svm_reg_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], double precision, text, double precision, double precision, double precision, double precision
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision, double precision
+
+    - svm_store_model:
+       rettype: void
+       argument: text, text, text
+
+# Changes to aggregates (UDA) including removal and modification
+# Overloaded functions should be mentioned separately
+uda:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    - discrete_distribution_agg:
+        rettype: double precision[]
+        argument: integer, double precision, integer
+    - vectorized_distribution_agg:
+        rettype: double precision[]
+        argument: integer[], integer[]
+    # ----------------- Changes from 1.8 to 1.9 ----------
+
+    - __array_indexed_agg:
+        rettype: double precision[]
+        argument: double precision, bigint, bigint
+
+    - __best_scv_aggr:
+        rettype: double precision[]
+        argument: double precision[], integer, double precision
+
+    - __bigint_array_sum:
+        rettype: bigint[]
+        argument: bigint[]
+
+    - __display_tree_aggr:
+        rettype: text
+        argument: integer, boolean, text, text, double precision, double precision, text, integer
+
+    - __dt_acc_count_aggr:
+        rettype: bigint[]
+        argument: integer, bigint, integer
+
+    - __rep_aggr_class_count:
+        rettype: bigint[]
+        argument: integer, integer, integer
+
+    - __scv_aggr:
+        rettype: double precision[]
+        argument: integer, boolean, integer, double precision[], double precision[], bigint
+
+    - linear_svm_igd_step:
+        rettype: double precision[]
+        argument: double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - linear_svm_igd_step_serial:
+        rettype: double precision[]
+        argument: double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - svm_cls_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], double precision, text, double precision, double precision, double precision
+
+    - svm_nd_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], text, double precision, double precision, double precision
+
+    - svm_reg_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], double precision, text, double precision, double precision, double precision, double precision
+
+    - __svm_random_ind2:
+        rettype: double precision[]
+        argument: integer
+# Casts (UDC) updated/removed
+udc:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+
+# Operators (UDO) removed/updated
+udo:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+
+# Operator Classes (UDOC) removed/updated
+udoc:
+    # ----------------- Changes from 1.7.1 to 1.8 ----------

http://git-wip-us.apache.org/repos/asf/incubator-madlib/blob/7d38786d/src/madpack/changelist_1.7_1.8.yaml
----------------------------------------------------------------------
diff --git a/src/madpack/changelist_1.7_1.8.yaml b/src/madpack/changelist_1.7_1.8.yaml
deleted file mode 100644
index 3a45dac..0000000
--- a/src/madpack/changelist_1.7_1.8.yaml
+++ /dev/null
@@ -1,121 +0,0 @@
-# Changelist for MADlib version 1.7 to 1.7.1
-
-# This file contains all changes that were introduced in a new version of
-# MADlib. This changelist is used by the upgrade script to detect what objects
-# should be upgraded (while retaining all other objects from the previous version)
-
-# New modules (actually .sql_in files) added in upgrade version
-# For these files the sql_in code is retained as is with the functions in the
-# file installed on the upgrade version. All other files (that don't have
-# updates), are cleaned up to remove object replacements
-new module:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------
-    # ----------------- Changes from 1.7.1 to 1.8 ----------
-    text_utilities:
-
-# Changes in the types (UDT) including removal and modification
-udt:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------
-
-# List of the UDF changes that affect the user externally. This includes change
-# in function name, return type, argument order or types, or removal of
-# the function. In each case, the original function is as good as removed and a
-# new function is created. In such cases, we should abort the upgrade if there
-# are user views dependent on this function, since the original function will
-# not be present in the upgraded version.
-udf:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------
-    - discrete_distribution_merge: # replaced by array_add
-        rettype: double precision[]
-        argument: double precision[], double precision[]
-    - _compute_leaf_stats_transition:
-        rettype: schema_madlib.bytea8
-        argument: schema_madlib.bytea8, schema_madlib.bytea8, integer[], double precision[], double precision, double precision, integer[], schema_madlib.bytea8, smallint
-    - _compute_surr_stats_transition:
-        rettype: schema_madlib.bytea8
-        argument: schema_madlib.bytea8, schema_madlib.bytea8, integer[], double precision[], integer[], schema_madlib.bytea8
-    # ----------------- Changes from 1.7.1 to 1.8 ----------
-    - __filter_input_relation:
-        rettype: character varying                                                         
-        argument: character varying, character varying                                     
-    - __lda_util_unnest:
-        rettype: SETOF bigint[]                                                            
-        argument: bigint[]                                                                 
-    - matrix_block_mult:
-        rettype: schema_madlib.matrix_result                                                             
-        argument: text, text, text                                                         
-    - matrix_block_square:
-        rettype: schema_madlib.matrix_result
-        argument: text, text
-    - matrix_block_trans:
-        rettype: schema_madlib.matrix_result
-        argument: text, text
-    - matrix_block_trans:
-        rettype: schema_madlib.matrix_result
-        argument: text, text, boolean
-    - matrix_blockize:
-        rettype: schema_madlib.matrix_result
-        argument: text, integer, integer, text
-    - matrix_densify:
-        rettype: schema_madlib.matrix_result
-        argument: text, text, text, text, text, boolean
-    - matrix_mult:
-        rettype: schema_madlib.matrix_result
-        argument: text, boolean, text, boolean, text
-    - matrix_mult:
-        rettype: schema_madlib.matrix_result
-        argument: text, text, text, text, boolean, text, text, text, text, boolean, text
-    - matrix_norm:
-        rettype: double precision
-        argument: text
-    - matrix_scale_and_add:
-        rettype: void
-        argument: text, text, double precision, text
-    - matrix_sparsify:
-        rettype: schema_madlib.matrix_result
-        argument: text, text, boolean
-    - matrix_square:
-        rettype: schema_madlib.matrix_result
-        argument: text, text
-    - matrix_trans:
-        rettype: schema_madlib.matrix_result
-        argument: text, text, boolean
-    - matrix_trans:
-        rettype: schema_madlib.matrix_result
-        argument: text, text, text, text, text, boolean
-    - matrix_unblockize:
-        rettype: schema_madlib.matrix_result
-        argument: text, text
-
-# Changes to aggregates (UDA) including removal and modification
-# Overloaded functions should be mentioned separately
-uda:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------
-    - discrete_distribution_agg: # merge function replaced
-        rettype: double precision[]
-        argument: integer, double precision, integer
-    - _compute_leaf_stats: # dup_count added
-        rettype: schema_madlib.bytea8
-        argument: schema_madlib.bytea8, integer[], double precision[], double precision, double precision, integer[], schema_madlib.bytea8, smallint
-    - _compute_surr_stats: # dup_count added
-        rettype: schema_madlib.bytea8
-        argument: schema_madlib.bytea8, integer[], double precision[], integer[], schema_madlib.bytea8
-    # ----------------- Changes from 1.7.1 to 1.8 ----------
-    - discrete_distribution_agg:
-        rettype: double precision[]
-        argument: integer, double precision, integer
-    - vectorized_distribution_agg:
-        rettype: double precision[]
-        argument: integer[], integer[]
-
-# Casts (UDC) updated/removed
-udc:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------
-
-# Operators (UDO) removed/updated
-udo:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------
-
-# Operator Classes (UDOC) removed/updated
-udoc:
-    # ----------------- Changes from 1.7 to 1.7.1 ----------

http://git-wip-us.apache.org/repos/asf/incubator-madlib/blob/7d38786d/src/madpack/changelist_1.7_1.9.yaml
----------------------------------------------------------------------
diff --git a/src/madpack/changelist_1.7_1.9.yaml b/src/madpack/changelist_1.7_1.9.yaml
new file mode 100644
index 0000000..8534196
--- /dev/null
+++ b/src/madpack/changelist_1.7_1.9.yaml
@@ -0,0 +1,799 @@
+# Changelist for MADlib version 1.7 to 1.7.1
+
+# This file contains all changes that were introduced in a new version of
+# MADlib. This changelist is used by the upgrade script to detect what objects
+# should be upgraded (while retaining all other objects from the previous version)
+
+# New modules (actually .sql_in files) added in upgrade version
+# For these files the sql_in code is retained as is with the functions in the
+# file installed on the upgrade version. All other files (that don't have
+# updates), are cleaned up to remove object replacements
+new module:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    text_utilities:
+
+# Changes in the types (UDT) including removal and modification
+udt:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------
+    # ----------------- Changes from 1.8 to 1.9 ----------
+    __enc_tbl_result:
+    __gen_acc_time:
+    __rep_type:
+    __train_result:
+    c45_classify_result:
+    c45_train_result:
+    correlation_result:
+    lsvm_sgd_model_rec:
+    lsvm_sgd_result:
+    rf_classify_result:
+    rf_train_result:
+    svm_cls_result:
+    svm_model_pr:
+    svm_model_rec:
+    svm_nd_result:
+    svm_reg_result:
+    svm_support_vector:
+    _prune_result_type:
+    _tree_result_type:
+    linear_svm_result:
+
+# List of the UDF changes that affect the user externally. This includes change
+# in function name, return type, argument order or types, or removal of
+# the function. In each case, the original function is as good as removed and a
+# new function is created. In such cases, we should abort the upgrade if there
+# are user views dependent on this function, since the original function will
+# not be present in the upgraded version.
+udf:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------
+    - discrete_distribution_merge: # replaced by array_add
+        rettype: double precision[]
+        argument: double precision[], double precision[]
+    - _compute_leaf_stats_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8, integer[], double precision[], double precision, double precision, integer[], schema_madlib.bytea8, smallint
+    - _compute_surr_stats_transition:
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, schema_madlib.bytea8, integer[], double precision[], integer[], schema_madlib.bytea8
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    - __filter_input_relation:
+        rettype: character varying
+        argument: character varying, character varying
+    - __lda_util_unnest:
+        rettype: SETOF bigint[]
+        argument: bigint[]
+    - matrix_block_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text
+    - matrix_block_square:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_block_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_block_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_blockize:
+        rettype: schema_madlib.matrix_result
+        argument: text, integer, integer, text
+    - matrix_densify:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, text, boolean
+    - matrix_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, boolean, text, boolean, text
+    - matrix_mult:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, boolean, text, text, text, text, boolean, text
+    - matrix_norm:
+        rettype: double precision
+        argument: text
+    - matrix_scale_and_add:
+        rettype: void
+        argument: text, text, double precision, text
+    - matrix_sparsify:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_square:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    - matrix_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, boolean
+    - matrix_trans:
+        rettype: schema_madlib.matrix_result
+        argument: text, text, text, text, text, boolean
+    - matrix_unblockize:
+        rettype: schema_madlib.matrix_result
+        argument: text, text
+    # ----------------- Changes from 1.8 to 1.9 ----------
+
+    - _dt_apply:
+       rettype: schema_madlib._tree_result_type
+       argument: schema_madlib.bytea8,schema_madlib.bytea8,schema_madlib.bytea8,smallint,smallint,smallint,boolean,integer
+
+    - internal_linear_svm_igd_result:
+       rettype: schema_madlib.linear_svm_result
+       argument: double precision[]
+
+    - _prune_and_cplist:
+       rettype: schema_madlib._prune_result_type
+       argument: schema_madlib.bytea8,double precision,boolean
+
+    - __array_elem_in:
+       rettype: boolean[]
+       argument: anyarray, anyarray
+
+    - __array_indexed_agg_ffunc:
+       rettype: double precision[]
+       argument: double precision[]
+
+    - __array_indexed_agg_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __array_indexed_agg_sfunc:
+       rettype: double precision[]
+       argument: double precision[], double precision, bigint, bigint
+
+    - __array_search:
+       rettype: boolean
+       argument: anyelement, anyarray
+
+    - __array_sort:
+       rettype: anyarray
+       argument: anyarray
+
+    - __assert:
+       rettype: void
+       argument: boolean, text
+
+    - __assert_table:
+       rettype: void
+       argument: text, boolean
+
+    - __best_scv_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __best_scv_sfunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[], integer, double precision
+
+    - __bigint_array_add:
+       rettype: bigint[]
+       argument: bigint[], bigint[]
+
+    - __breakup_table:
+       rettype: void
+       argument: text, text, text, text, text, text[], boolean[], integer, integer
+
+    - __check_dt_common_params:
+       rettype: void
+       argument: text, text, text, text, text, text, text, text, integer, double precision, double precision, integer, text
+
+    - __check_training_table:
+       rettype: void
+       argument: text, text[], text[], text, text, integer
+
+    - __column_exists:
+       rettype: boolean
+       argument: text, text
+
+    - __columns_in_table:
+       rettype: boolean
+       argument: text[], text
+
+    - __create_metatable:
+       rettype: void
+       argument: text
+
+    - __create_tree_tables:
+       rettype: void
+       argument: text
+
+    - __csvstr_to_array:
+       rettype: text[]
+       argument: text
+
+    - __display_node_sfunc:
+       rettype: text
+       argument: text, integer, boolean, text, text, double precision, double precision, text, integer
+
+    - __display_tree_no_ordered_aggr:
+       rettype: text
+       argument: text, integer, integer, integer, boolean, double precision, text, integer, integer
+
+    - __distinct_feature_value:
+       rettype: integer
+       argument: text, integer
+
+    - __drop_metatable:
+       rettype: void
+       argument: text
+
+    - __dt_acc_count_sfunc:
+       rettype: bigint[]
+       argument: bigint[], integer, bigint, integer
+
+    - __dt_get_node_split_fids:
+       rettype: integer[]
+       argument: integer, integer, integer, integer[]
+
+    - __ebp_calc_errors:
+       rettype: double precision
+       argument: double precision, double precision, double precision
+
+    - __ebp_prune_tree:
+       rettype: void
+       argument: text
+
+    - __encode_and_train:
+       rettype: record
+       argument: text, text, integer, integer, text, text, text, text, text, text, text, double precision, text, integer, double precision, boolean, double precision, double precision, text, integer
+
+    - __encode_columns:
+       rettype: void
+       argument: text, text, integer, integer
+
+    - __encode_table:
+       rettype: void
+       argument: text, text, text, integer, integer
+
+    - __encode_table:
+       rettype: void
+       argument: text, text, text[], text, text[], text, text, integer, integer
+
+    - __find_best_split:
+       rettype: void
+       argument: text, double precision, text, integer, integer, text, integer, integer
+
+    - __format:
+       rettype: text
+       argument: text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text, text, text, text
+
+    - __format:
+       rettype: text
+       argument: text, text[]
+
+    - __gen_acc:
+       rettype: __gen_acc_time
+       argument: text, text, text, text, text, integer, integer, boolean, integer
+
+    - __gen_enc_meta_names:
+       rettype: text[]
+       argument: text, text
+
+    - __gen_horizontal_encoded_table:
+       rettype: void
+       argument: text, text, integer, integer
+
+    - __gen_vertical_encoded_table:
+       rettype: void
+       argument: text, text, text, boolean, integer
+
+    - __generate_final_tree:
+       rettype: void
+       argument: text
+
+    - __get_class_column_name:
+       rettype: text
+       argument: text
+
+    - __get_class_value:
+       rettype: text
+       argument: integer, text
+
+    - __get_classtable_name:
+       rettype: text
+       argument: text
+
+    - __get_column_value:
+       rettype: text
+       argument: integer, integer, character, text
+
+    - __get_feature_name:
+       rettype: text
+       argument: integer, text
+
+    - __get_feature_value:
+       rettype: text
+       argument: integer, integer, text
+
+    - __get_features_of_nodes:
+       rettype: text
+       argument: text, text, integer, integer, integer
+
+    - __get_id_column_name:
+       rettype: text
+       argument: text
+
+    - __get_schema_name:
+       rettype: text
+       argument: text
+
+    - __get_table_name:
+       rettype: text
+       argument: text
+
+    - __insert_into_metatable:
+       rettype: void
+       argument: text, integer, text, character, boolean, text, integer
+
+    - __is_valid_enc_table:
+       rettype: boolean
+       argument: text
+
+    - __num_of_class:
+       rettype: integer
+       argument: text
+
+    - __num_of_columns:
+       rettype: integer
+       argument: text
+
+    - __num_of_feature:
+       rettype: integer
+       argument: text
+
+    - __regclass_to_text:
+       rettype: text
+       argument: regclass
+
+    - __rename_table:
+       rettype: void
+       argument: text, text
+
+    - __rep_aggr_class_count_ffunc:
+       rettype: bigint[]
+       argument: bigint[]
+
+    - __rep_aggr_class_count_sfunc:
+       rettype: bigint[]
+       argument: bigint[], integer, integer, integer
+
+    - __rep_prune_tree:
+       rettype: void
+       argument: text, text, integer
+
+    - __sample_with_replacement:
+       rettype: void
+       argument: integer, bigint, text, text
+
+    - __sample_within_range:
+       rettype: SETOF bigint
+       argument: bigint, bigint, bigint
+
+    - __scv_aggr_ffunc:
+       rettype: double precision[]
+       argument: double precision[]
+
+    - __scv_aggr_prefunc:
+       rettype: double precision[]
+       argument: double precision[], double precision[]
+
+    - __scv_aggr_sfunc:
+       rettype: double precision[]
+       argument: double precision[], integer, boolean, integer, double precision[], double precision[], bigint
+
+    - __strip_schema_name:
+       rettype: text
+       argument: text
+
+    - __svm_random_ind2:
+       rettype: double precision[]
+       argument: integer
+
+    - __svm_random_ind:
+       rettype: double precision[]
+       argument: integer
+
+    - __svm_target_cl_func:
+       rettype: double precision
+       argument: double precision[]
+
+    - __svm_target_reg_func:
+       rettype: double precision
+       argument: double precision[]
+
+    - __table_exists:
+       rettype: boolean
+       argument: text
+
+    - __train_tree:
+       rettype: __train_result
+       argument: text, integer, integer, text, text, text, text, text, text, double precision, integer, double precision, double precision, double precision, boolean, integer, integer
+
+    - __treemodel_classify_internal:
+       rettype: text[]
+       argument: text, text, integer
+
+    - __treemodel_classify_internal_serial:
+       rettype: text[]
+       argument: text, text, integer
+
+    - __treemodel_display_no_ordered_aggr:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - __treemodel_display_with_ordered_aggr:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - __treemodel_get_vote_result:
+       rettype: void
+       argument: text, text
+
+    - __treemodel_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - __validate_input_table:
+       rettype: void
+       argument: text, text[], text, text
+
+    - __validate_metatable:
+       rettype: void
+       argument: text
+
+    - c45_classify:
+       rettype: c45_classify_result
+       argument: text, text, text
+
+    - c45_classify:
+       rettype: c45_classify_result
+       argument: text, text, text, integer
+
+    - c45_clean:
+       rettype: boolean
+       argument: text
+
+    - c45_display:
+       rettype: SETOF text
+       argument: text
+
+    - c45_display:
+       rettype: SETOF text
+       argument: text, integer
+
+    - c45_genrule:
+       rettype: SETOF text
+       argument: text
+
+    - c45_genrule:
+       rettype: SETOF text
+       argument: text, integer
+
+    - c45_score:
+       rettype: double precision
+       argument: text, text
+
+    - c45_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text, text, text, text, text, text, double precision, text
+
+    - c45_train:
+       rettype: c45_train_result
+       argument: text, text, text, text, text, text, text, text, double precision, text, integer, double precision, double precision, integer
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying, character varying
+
+    - correlation:
+       rettype: correlation_result
+       argument: character varying, character varying, character varying, boolean
+
+    - linear_svm_igd_transition:
+       rettype: double precision[]
+       argument: double precision[], double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean, boolean, double precision, double precision
+
+    - lsvm_classification:
+       rettype: SETOF lsvm_sgd_result
+       argument: text, text, boolean, boolean, double precision, double precision, integer
+
+    - lsvm_predict:
+       rettype: double precision
+       argument: double precision[], double precision[]
+
+    - lsvm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text
+
+    - lsvm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text, boolean
+
+    - matrix_block_trans:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_densify:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_sparsify:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - matrix_trans:
+       rettype: matrix_result
+       argument: text, text, text, text, boolean
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text, boolean, integer
+
+    - rf_classify:
+       rettype: rf_classify_result
+       argument: text, text, text, integer
+
+    - rf_clean:
+       rettype: boolean
+       argument: text
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text, integer[]
+
+    - rf_display:
+       rettype: SETOF text
+       argument: text, integer[], integer
+
+    - rf_score:
+       rettype: double precision
+       argument: text, text
+
+    - rf_score:
+       rettype: double precision
+       argument: text, text, integer
+
+    - rf_train:
+       rettype: rf_train_result
+       argument: text, text, text
+
+    - rf_train:
+       rettype: rf_train_result
+       argument: text, text, text, integer, integer, double precision, text, text, text, text, text, integer, double precision, double precision, integer
+
+    - svdmf_run:
+       rettype: text
+       argument: text, text, text, text, integer
+
+    - svdmf_run:
+       rettype: text
+       argument: text, text, text, text, integer, integer, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, boolean, double precision, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_classification:
+       rettype: SETOF svm_cls_result
+       argument: text, text, boolean, text, double precision
+
+    - svm_cls_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], double precision, text, double precision, double precision, double precision
+
+    - svm_data_normalization:
+       rettype: void
+       argument: text
+
+    - svm_dot:
+       rettype: double precision
+       argument: double precision[], double precision[]
+
+    - svm_dot:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_drop_model:
+       rettype: void
+       argument: text
+
+    - svm_gaussian:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_generate_cls_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_generate_nd_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_generate_reg_data:
+       rettype: void
+       argument: text, integer, integer
+
+    - svm_nd_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], text, double precision, double precision, double precision
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text, boolean, double precision, double precision
+
+    - svm_novelty_detection:
+       rettype: SETOF schema_madlib.svm_nd_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_polynomial:
+       rettype: double precision
+       argument: double precision[], double precision[], double precision
+
+    - svm_predict:
+       rettype: double precision
+       argument: schema_madlib.svm_model_rec, double precision[], text, double precision
+
+    - svm_predict_batch:
+       rettype: text
+       argument: text, text, text, text, text, boolean
+
+    - svm_predict_sub:
+       rettype: double precision
+       argument: integer, integer, double precision[], double precision[], double precision[], text, double precision
+
+    - svm_reg_update:
+       rettype: schema_madlib.svm_model_rec
+       argument: schema_madlib.svm_model_rec, double precision[], double precision, text, double precision, double precision, double precision, double precision
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision
+
+    - svm_regression:
+       rettype: SETOF svm_reg_result
+       argument: text, text, boolean, text, boolean, double precision, double precision, double precision, double precision
+
+    - svm_store_model:
+       rettype: void
+       argument: text, text, text
+
+# Changes to aggregates (UDA) including removal and modification
+# Overloaded functions should be mentioned separately
+uda:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------
+    - discrete_distribution_agg: # merge function replaced
+        rettype: double precision[]
+        argument: integer, double precision, integer
+    - _compute_leaf_stats: # dup_count added
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, integer[], double precision[], double precision, double precision, integer[], schema_madlib.bytea8, smallint
+    - _compute_surr_stats: # dup_count added
+        rettype: schema_madlib.bytea8
+        argument: schema_madlib.bytea8, integer[], double precision[], integer[], schema_madlib.bytea8
+    # ----------------- Changes from 1.7.1 to 1.8 ----------
+    - discrete_distribution_agg:
+        rettype: double precision[]
+        argument: integer, double precision, integer
+    - vectorized_distribution_agg:
+        rettype: double precision[]
+        argument: integer[], integer[]
+    # ----------------- Changes from 1.8 to 1.9 ----------
+
+    - __array_indexed_agg:
+        rettype: double precision[]
+        argument: double precision, bigint, bigint
+
+    - __best_scv_aggr:
+        rettype: double precision[]
+        argument: double precision[], integer, double precision
+
+    - __bigint_array_sum:
+        rettype: bigint[]
+        argument: bigint[]
+
+    - __display_tree_aggr:
+        rettype: text
+        argument: integer, boolean, text, text, double precision, double precision, text, integer
+
+    - __dt_acc_count_aggr:
+        rettype: bigint[]
+        argument: integer, bigint, integer
+
+    - __rep_aggr_class_count:
+        rettype: bigint[]
+        argument: integer, integer, integer
+
+    - __scv_aggr:
+        rettype: double precision[]
+        argument: integer, boolean, integer, double precision[], double precision[], bigint
+
+    - linear_svm_igd_step:
+        rettype: double precision[]
+        argument: double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - linear_svm_igd_step_serial:
+        rettype: double precision[]
+        argument: double precision[], boolean, double precision[], integer, double precision, double precision
+
+    - svm_cls_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], double precision, text, double precision, double precision, double precision
+
+    - svm_nd_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], text, double precision, double precision, double precision
+
+    - svm_reg_agg:
+        rettype: schema_madlib.svm_model_rec
+        argument: double precision[], double precision, text, double precision, double precision, double precision, double precision
+
+    - __svm_random_ind2:
+        rettype: double precision[]
+        argument: integer
+# Casts (UDC) updated/removed
+udc:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------
+
+# Operators (UDO) removed/updated
+udo:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------
+
+# Operator Classes (UDOC) removed/updated
+udoc:
+    # ----------------- Changes from 1.7 to 1.7.1 ----------

http://git-wip-us.apache.org/repos/asf/incubator-madlib/blob/7d38786d/src/madpack/diff_udf.sql
----------------------------------------------------------------------
diff --git a/src/madpack/diff_udf.sql b/src/madpack/diff_udf.sql
index d51f497..56a00a1 100644
--- a/src/madpack/diff_udf.sql
+++ b/src/madpack/diff_udf.sql
@@ -139,7 +139,7 @@ $$ LANGUAGE plpythonu;
 DROP TABLE IF EXISTS functions_madlib_old_version;
 DROP TABLE IF EXISTS functions_madlib_new_version;
 
-sELECT get_functions('madlib_v171');
+SELECT get_functions('madlib_v18');
 
 SELECT
     --'\t-' || name || ':' || '\n\t\t-rettype: ' || retype || '\n\t\t-argument: ' || argtypes

http://git-wip-us.apache.org/repos/asf/incubator-madlib/blob/7d38786d/src/madpack/diff_udt.sql
----------------------------------------------------------------------
diff --git a/src/madpack/diff_udt.sql b/src/madpack/diff_udt.sql
index 73c2140..0bf6647 100644
--- a/src/madpack/diff_udt.sql
+++ b/src/madpack/diff_udt.sql
@@ -51,15 +51,11 @@ $$
             (
                 SELECT array_agg(a.attname || pg_catalog.format_type(a.atttypid, a.atttypmod) || a.attnum order by a.attnum) AS old_type
                 FROM pg_catalog.pg_attribute a
-                LEFT OUTER JOIN pg_catalog.pg_attribute_encoding e
-                ON   e.attrelid = a .attrelid AND e.attnum = a.attnum
                 WHERE a.attrelid = '{old_relid}' AND a.attnum > 0 AND NOT a.attisdropped
             ) t1,
             (
                 SELECT array_agg(a.attname || pg_catalog.format_type(a.atttypid, a.atttypmod) || a.attnum order by a.attnum) AS new_type
                 FROM pg_catalog.pg_attribute a
-                LEFT OUTER JOIN pg_catalog.pg_attribute_encoding e
-                ON   e.attrelid = a .attrelid AND e.attnum = a.attnum
                 WHERE a.attrelid = '{new_relid}' AND a.attnum > 0 AND NOT a.attisdropped
             ) t2
             """.format(old_relid=old_relid, new_relid=new_relid))[0]['changed']
@@ -69,45 +65,45 @@ $$
 $$ LANGUAGE plpythonu;
 
 -- Get UDTs
-DROP TABLE IF EXISTS types_madlib_v17;
-DROP TABLE IF EXISTS types_madlib_v16;
-SELECT get_types('madlib_v17');
-SELECT get_types('madlib_v16');
+DROP TABLE IF EXISTS types_madlib;
+DROP TABLE IF EXISTS types_madlib_v18;
+SELECT get_types('madlib');
+SELECT get_types('madlib_v18');
 
 --SELECT name FROM types_madlib;
 --SELECT name FROM types_madlib_v15;
 
 --Dropped
 SELECT
-    v16.name AS "Dropped UDTs"
+    v18.name AS "Dropped UDTs"
 FROM
-    types_madlib_v16 AS v16
+    types_madlib_v18 AS v18
     LEFT JOIN
-    types_madlib_v17 AS v17
+    types_madlib AS v19
     USING (name)
-WHERE v17.name IS NULL;
+WHERE v19.name IS NULL;
 
 --Added
--- SELECT
---     v17.name AS "Added UDTs"
--- FROM
---     types_madlib_v16 AS v16
---     RIGHT JOIN
---     types_madlib_v17 AS v17
---     USING (name)
--- WHERE v16.name IS NULL;
+SELECT
+     v19.name AS "Added UDTs"
+FROM
+     types_madlib_v18 AS v18
+     RIGHT JOIN
+     types_madlib AS v19
+     USING (name)
+WHERE v18.name IS NULL;
 
 --Common
 DROP TABLE IF EXISTS types_common;
 CREATE TABLE types_common AS
 SELECT
-    v16.name, v16.typrelid AS old_relid, v17.typrelid AS new_relid
+    v18.name, v18.typrelid AS old_relid, v19.typrelid AS new_relid
 FROM
-    types_madlib_v16 AS v16
+    types_madlib_v18 AS v18
     JOIN
-    types_madlib_v17 AS v17
+    types_madlib AS v19
     USING (name)
-WHERE v16.typrelid <> 0; -- 0 means base type
+WHERE v18.typrelid <> 0; -- 0 means base type
 
 SELECT
     array_upper(detect_changed_types('types_common'), 1) AS N,