public static boolean areOverloadedJSONExpressionLists(
            String jsontext1, String jsontext2) {
        try {
            List<AbstractExpression> list1 = fromJSONArrayString(jsontext1, null);
            List<AbstractExpression> list2 = fromJSONArrayString(jsontext2, null);
            return list1.equals(list2);
        }
        catch (JSONException je) {
            return false;
        }
    }
public static boolean areOverloadedJSONExpressionLists ( String jsontext1 , String jsontext2 ) { try { List < AbstractExpression > list1 = fromJSONArrayString ( jsontext1 , null ) ; List < AbstractExpression > list2 = fromJSONArrayString ( jsontext2 , null ) ; return list1 . equals ( list2 ) ; } catch ( JSONException je ) { return false ; } }
Deserialize 2 lists of AbstractExpressions from JSON format strings
and determine whether the expressions at each position are equal.
The issue that must be worked around is that json format string equality
is sensitive to the valuetype and valuesize of each expression and its
subexpressions, but AbstractExpression.equals is not
-- overloaded abstract expressions are equal, for example,
two overloads of the same function or operator applied to columns
with the same name but different types.
These overloads are sometimes allowable in live schema updates where
more general changes might be forbidden.
@return true iff the two strings represent lists of the same expressions,
allowing for value type differences