From 5e28a3424cebb5a06f1fd0505db96789fcb787e0 Mon Sep 17 00:00:00 2001 From: pokeeffe-molecula <85502298+pokeeffe-molecula@users.noreply.github.com> Date: Wed, 7 Dec 2022 14:27:01 -0600 Subject: [PATCH] you should be able to cast an id as a string (#2334) (cherry picked from commit e599f12ee4dd199be164a1b940bee0a68fd480f3) --- sql3/planner/expressiontypes.go | 2 ++ sql3/test/defs/defs_cast.go | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sql3/planner/expressiontypes.go b/sql3/planner/expressiontypes.go index ac10070ae..3f3e103b8 100644 --- a/sql3/planner/expressiontypes.go +++ b/sql3/planner/expressiontypes.go @@ -753,6 +753,8 @@ func typesCanBeCast(sourceType parser.ExprDataType, targetType parser.ExprDataTy *parser.DataTypeDecimal, *parser.DataTypeID: return true + case *parser.DataTypeString: + return true } case *parser.DataTypeIDSet: diff --git a/sql3/test/defs/defs_cast.go b/sql3/test/defs/defs_cast.go index 222fc1b1f..49137c80c 100644 --- a/sql3/test/defs/defs_cast.go +++ b/sql3/test/defs/defs_cast.go @@ -484,7 +484,14 @@ var castID = TableTest{ SQLs: sqls( "select _id, cast(id1 as string) from cast_id", ), - ExpErr: "'id' cannot be cast to 'string'", + ExpHdrs: hdrs( + hdr("_id", fldTypeID), + hdr("", fldTypeString), + ), + ExpRows: rows( + row(int64(1), string("20")), + ), + Compare: CompareExactUnordered, }, { SQLs: sqls(