[
https://issues.apache.org/jira/browse/CALCITE-5591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17727573#comment-17727573
]
Dan Zou commented on CALCITE-5591:
----------------------------------
[~tanclary] I have the germ of an idea:
{code:java}
public static final SqlReturnTypeInference FORCE_NULLABLE_SUM =
new SqlReturnTypeInferenceChain(DECIMAL_SUM_NULLABLE, LEAST_RESTRICTIVE)
.andThen(SqlTypeTransforms.FORCE_NULLABLE);
{code}
And I find it is more complicated to handle overflow for each return type, it
would be great if you could share some ideas when you find a good way to do it.
> Implement BigQuery functions SAFE_ADD, SAFE_SUBTRACT, SAFE_MULTIPLY,
> SAFE_DIVIDE and SAFE_NEGATE
> ------------------------------------------------------------------------------------------------
>
> Key: CALCITE-5591
> URL: https://issues.apache.org/jira/browse/CALCITE-5591
> Project: Calcite
> Issue Type: New Feature
> Reporter: Dan Zou
> Assignee: Dan Zou
> Priority: Major
>
> Add support for SAFE_ADD, SAFE_SUBTRACT, SAFE_MULTIPLY, SAFE_DIVIDE and
> SAFE_NEGATE in BigQuery.
> Function description:
> * SAFE_ADD: Equivalent to the addition operator '+', but returns NULL if
> overflow occurs.
> * SAFE_SUBTRACT: Returns the result of Y subtracted from X. Equivalent to the
> subtraction operator '-', but returns NULL if overflow occurs.
> * SAFE_MULTIPLY: Equivalent to the multiplication operator '*', but returns
> NULL if overflow occurs.
> * SAFE_DIVIDE: Equivalent to the division operator '/ ', but returns NULL if
> an error occurs, such as a division by zero error.
> * SAFE_NEGATE: Equivalent to the unary minus operator '-', but returns NULL
> if overflow occurs.
> See more details in [BigQuery
> Doc|https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#safe_divide]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)