Skip to content

Commit

Permalink
add changes to allow cast null to non-null data types in coralIR for …
Browse files Browse the repository at this point in the history
…trino
  • Loading branch information
aastha25 committed Jan 18, 2023
1 parent f6e1ab1 commit 5fd9c18
Showing 1 changed file with 4 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,14 @@ public Result visit(Project e) {
final List<SqlNode> selectList = new ArrayList<>();
for (RexNode ref : e.getChildExps()) {
SqlNode sqlExpr = builder.context.toSql(null, ref);

RelDataTypeField targetField = e.getRowType().getFieldList().get(selectList.size());
if (SqlUtil.isNullLiteral(sqlExpr, false) && !targetField.toString().equalsIgnoreCase("NULL")) {
sqlExpr = castNullType(sqlExpr, e.getRowType().getFieldList().get(selectList.size()));
if (SqlUtil.isNullLiteral(sqlExpr, false) && !targetField.getValue().getSqlTypeName().equals(SqlTypeName.NULL)) {
sqlExpr = SqlStdOperatorTable.CAST.createCall(POS, sqlExpr, dialect.getCastSpec(targetField.getType()));
}

addSelect(selectList, sqlExpr, e.getRowType());
}

builder.setSelect(new SqlNodeList(selectList, POS));
return builder.result();
}
Expand Down

0 comments on commit 5fd9c18

Please sign in to comment.