[ https://issues.apache.org/jira/browse/DERBY-3341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12575426#action_12575426 ]
Daniel John Debrunner commented on DERBY-3341: ---------------------------------------------- I haven't looked in detail at the patch but the approach seems unusual to me. The passing of the return types as a string and then unpacking it at execution time seems more like compile time work. Standard functions use a CastNode (ie. operation all figured out at compile time) to perform conversions. That or a NormalizeResultSet would seem more in line with existing code. > TABLE FUNCTION returning CHAR values does not return a correct value if the > Java ResultSet class returns a value less than the length of the defined CHAR. > ---------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-3341 > URL: https://issues.apache.org/jira/browse/DERBY-3341 > Project: Derby > Issue Type: Bug > Components: SQL > Reporter: Daniel John Debrunner > Fix For: 10.4.0.0 > > Attachments: derby-3341-01-coerce.diff, derby_3341_test.txt > > > Defining a column in the returned type as CHAR(10) requires that the returned > value be of length 10 characters. > Defining a table function with a return type of: > returns TABLE column0 char( 10 ), column1 char( 10 )) > seems to just return whatever the Java ResultSet implementation handed it. > My guess this is true for all variable length types, no casting of the value > occurs when it is returned to the SQL domain. > Java single value functions and procedure out parameters do perform any > required casting to ensure the value is of the declared type. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.