# ------------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
# ------------------------------------------------------------------------------

# Changelist for MADlib version rel/v1.17.0 to release118

# 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:
    dbscan:
    madlib_keras_automl:
    madlib_keras_custom_function:

# Changes in the types (UDT) including removal and modification
udt:

# 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:
    - fit_transition:
        rettype: bytea
        argument: bytea, bytea, bytea, integer[], integer[], text, text, text, integer, integer[], integer, integer, integer[], boolean, integer[], bytea, boolean
    - fit_transition_multiple_model:
        rettype: bytea
        argument: bytea, bytea, bytea, integer[], integer[], text, text, text, integer, integer[], integer, integer, integer[], boolean, integer[], bytea, boolean
    - graph_bfs:
        rettype: void
        argument: text, text, text, text, integer, text
    - graph_bfs:
        rettype: void
        argument: text, text, text, text, integer, text, integer
    - graph_bfs:
        rettype: void
        argument: text, text, text, text, integer, text, integer, boolean
    - graph_bfs:
        rettype: void
        argument: text, text, text, text, integer, text, integer, boolean, text
    - internal_keras_eval_transition:
        rettype: real[]
        argument: real[], bytea, bytea, integer[], integer[], text, bytea, text, integer, integer[], integer, integer, integer[], boolean, integer[], boolean
    - internal_keras_predict:
        rettype: double precision[]
        argument: real[], text, bytea, boolean, double precision, integer, integer[], integer[], boolean, integer, integer
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer, boolean
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer, boolean, character varying
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer, boolean, character varying, integer
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer, boolean, character varying, integer, boolean
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer, boolean, character varying, integer, boolean, character varying
    - madlib_keras_fit:
        rettype: void
        argument: character varying, character varying, character varying, integer, character varying, character varying, integer, boolean, character varying, integer, boolean, character varying, character varying
    - madlib_keras_fit_multiple_model:
        rettype: void
        argument: character varying, character varying, character varying, integer, boolean, character varying, integer, boolean, character varying, character varying
    - madlib_keras_predict:
        rettype: void
        argument: character varying, character varying, character varying, character varying, character varying
    - madlib_keras_predict:
        rettype: void
        argument: character varying, character varying, character varying, character varying, character varying, character varying
    - madlib_keras_predict:
        rettype: void
        argument: character varying, character varying, character varying, character varying, character varying, character varying, boolean
    - madlib_keras_predict_byom:
        rettype: void
        argument: character varying, integer, character varying, character varying, character varying, character varying
    - madlib_keras_predict_byom:
        rettype: void
        argument: character varying, integer, character varying, character varying, character varying, character varying, character varying
    - madlib_keras_predict_byom:
        rettype: void
        argument: character varying, integer, character varying, character varying, character varying, character varying, character varying, boolean
    - madlib_keras_predict_byom:
        rettype: void
        argument: character varying, integer, character varying, character varying, character varying, character varying, character varying, boolean, text[]
    - madlib_keras_predict_byom:
        rettype: void
        argument: character varying, integer, character varying, character varying, character varying, character varying, character varying, boolean, text[], double precision
    - pagerank:
        rettype: void
        argument: text, text, text, text, text, double precision, integer, double precision, character varying, integer[]
    - training_preprocessor_dl:
        rettype: character varying
        argument:
    - training_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying
    - training_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying, integer
    - training_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying, integer, real
    - training_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying, integer, real, integer
    - training_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying, integer, real, integer, text
    - validation_preprocessor_dl:
        rettype: character varying
        argument:
    - validation_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying, character varying
    - validation_preprocessor_dl:
        rettype: void
        argument: character varying, character varying, character varying, character varying, character varying, integer

# Changes to aggregates (UDA) including removal and modification
# Overloaded functions should be mentioned separately
uda:
    - fit_step:
        rettype: bytea
        argument: bytea, bytea, integer[], integer[], text, text, text, integer, integer[], integer, integer, integer[], boolean, integer[], bytea, boolean
    - fit_step_multiple_model:
        rettype: bytea
        argument: bytea, bytea, integer[], integer[], text, text, text, integer, integer[], integer, integer, integer[], boolean, integer[], bytea, boolean
    - internal_keras_evaluate:
        rettype: real[]
        argument: bytea, bytea, integer[], integer[], text, bytea, text, integer, integer[], integer, integer, integer[], boolean, integer[], boolean

# List of the UDC, UDO and UDOC changes.
udc:

# Changes in the operators (UDO)
udo:

# Changes in the operator classes (UDOC)
udoc:
