Subject | Re: UDF Failure |
---|---|
Author | alex_vnru |
Post date | 2002-03-26T20:05:33Z |
--- In ib-support@y..., Paul Reeves <paul@f...> wrote:
somewhere. I have a doubt: is it correct to check not an aexpression
result but operands declarations or intermediate result (I'm not shure
what's done)? Next statements should provide result within range but
are rejected now:
Trimmed result of concatenation
select Trim(cast ('c' as varchar (32000)) || Cast ('c' as varchar
(32000))) from rdb$database
Trimmed first operand
select Trim(cast ('c' as varchar (32700))) || Cast ('c' as varchar
(32700)) from rdb$database
In last it seems something wrong with check itself, because
select Trim(cast ('c' as varchar (32500))) || Cast ('c' as varchar
(32500)) from rdb$database
is successfully executed.
Best regards, Alexander V.Nevsky.
> iananewby wrote:explains
> Ah, you should read the FAQ here: http://www.ibphoenix.com It
> all. The problem has arisen because no check was made on expressionnow
> size. It was possible to crash the server because of this. There is
> a check and string expressions that evaluate to greater than 32kfail.
>expressions
> I'm not sure how this one is going to be resolved. String
> have to max out somewhere and 32k seems reasonable to me. The realfew
> problem is that no check was ever made in the past, so more than a
> people have unknowingly taken advantage of this.Paul, sorry if I repost, first message walks for a couple of hours
somewhere. I have a doubt: is it correct to check not an aexpression
result but operands declarations or intermediate result (I'm not shure
what's done)? Next statements should provide result within range but
are rejected now:
Trimmed result of concatenation
select Trim(cast ('c' as varchar (32000)) || Cast ('c' as varchar
(32000))) from rdb$database
Trimmed first operand
select Trim(cast ('c' as varchar (32700))) || Cast ('c' as varchar
(32700)) from rdb$database
In last it seems something wrong with check itself, because
select Trim(cast ('c' as varchar (32500))) || Cast ('c' as varchar
(32500)) from rdb$database
is successfully executed.
Best regards, Alexander V.Nevsky.