[
https://issues.apache.org/jira/browse/DERBY-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12484566
]
Bernt M. Johnsen commented on DERBY-1623:
-----------------------------------------
The standard says (Ch. 6.29):
Syntax Rules:
11) If <trim function> is specified, then
a) Case:
i) If FROM is specified, then:
1) Either <trim specification> or <trim character> or both shall be
specified.
2) If <trim specification> is not specified, then BOTH is implicit.
3) If <trim character> is not specified, then ' ' is implicit.
ii) Otherwise, let SRC be <trim source>. TRIM ( SRC ) is equivalent to
TRIM ( BOTH ' ' FROM SRC ).
b) Case:
i) If the declared type of <character value expression> is fixed-length
character string or variablelength
character string, then the declared type of the <trim function> is
variable-length character
string with maximum length equal to the fixed length or maximum
variable length of the <trim
source>.
ii) Otherwise, the declared type of the <trim function> is a character
large object type with maximum
length equal to the maximum variable length of the <trim source>.
c) If a <trim character> is specified, then <trim character> and <trim
source> shall be comparable.
d) The declared type of the <trim function> is that of the <trim source>.
General Rules:
9) If <trim function> is specified, then:
a) Let S be the value of the <trim source>.
b) If <trim character> is specified, then let SC be the value of <trim
character>; otherwise, let SC be <space>.
c) If either S or SC is the null value, then the result of the <trim
function> is the null value.
d) If the length in characters of SC is not 1 (one), then an exception
condition is raised: data exception — trim error.
e) Case:
i) If BOTH is specified or if no <trim specification> is specified, then
the result of the <trim function> is the value of S with any leading or
trailing characters equal to SC removed.
ii) If TRAILING is specified, then the result of the <trim function> is
the value of S with any trailing characters equal to SC removed.
iii) If LEADING is specified, then the result of the <trim function> is
the value of S with any leading characters equal to SC removed.
So we can safely assume that <trim character> is one character.
Another clarification: Both <trim character> and <trim source> are <character
value expression> which means they may be literals, expressions (e.g string
functions, concatenations etc) or column refernces. Thus
create table tt (v varchar(256), t varchar(10));
select TRIM(TRAILING t FROM v);
is legal as long as that values of t is of length 1.
> Add ANSI TRIM implementation
> ----------------------------
>
> Key: DERBY-1623
> URL: https://issues.apache.org/jira/browse/DERBY-1623
> Project: Derby
> Issue Type: Improvement
> Components: SQL
> Reporter: Emmanuel Bernard
> Assigned To: Manish Khettry
>
> JPA is requiring databases to support this ANSI feature esp the ability to
> chose the trimmed character
> TRIM([ [ LEADING | TRAILING | BOTH ] [ chars ] FROM ] str)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.