Jerome Isaac Haltom created CALCITE-7756:
--------------------------------------------

             Summary: Invalid unparse for VARCHAR without precision in 
MssqlSqlDialect
                 Key: CALCITE-7756
                 URL: https://issues.apache.org/jira/browse/CALCITE-7756
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Jerome Isaac Haltom


{{CAST(x AS VARCHAR)}} with no precision unparses as a bare {{VARCHAR}} for SQL 
Server. A bare {{varchar}} is 30 characters in a CAST, so the value gets cut to 
30.

{code:sql}
-- g is a uniqueidentifier, n is an nvarchar(200) holding 40 characters

SELECT CAST(g AS VARCHAR) FROM t
-- Msg 8170: Insufficient result space to convert uniqueidentifier value to char

SELECT LEN(CAST(n AS VARCHAR)) FROM t
-- 30, no error
{code}

SQL Server spells unbounded {{varchar(max)}}. I think that is what 
{{MssqlSqlDialect#getCastSpec}} should write when the precision is unspecified.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to