cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Utralite crashes using subquery with CASE

Former Member
5,193

I have a query that causes a crash in Ultralite, both in the iPad and Interactive SQL. The crash began to happen after I installed EBF 3798. Before that, the query was executed without error.

The original query is somewhat complex, but I succeeded in devising a simple query that causes the crash as well.

The query is:

select * from (
    select 
    A.id as i,
       case A.num 
            when 0 then 'a'
            when 1 then 'b'
            when 2 then 'c'
            else 'd'
       end as v,
       v + ' - ' + A.num as s
    from testTable A
) as X(i, v, s)
where i = 1

And the Ultralite database has only one table:

create table testTable
(
     id int primary key,
     num int,
     descr varchar(100)
)

The crash occurs when executing ULConnection's PrepareStatement method. And the table does not need to have any data in it.

If I remove the enclosing select, the problem does not happen again. Also, if remove either column v (the one that contains the case statement) or column s, that concatenates the preceding field with another field from the table, the problem does not occur any longer.

Those solutions are not acceptable, because the outer query is generated at runtime, in other to add extra filters to an existing query.

View Entire Topic
Former Member

I changed the query to use STRING instead of "+", but it still crashes on iPad and in InteractiveSQL for Mac OS.

Also, I changed the query to

select *
from (
select 
   A.id as i,
   (case A.num 
        when 0 then 'a'
        when 1 then 'b'
        when 2 then 'c'
        else 'd'
   end) as v,
   v + ' - ' + A.descr as s
from testTable A
) as X(i, v, s)

where i = 1

The crash always happens, and the first time when there was an ambiguity, Ultralite did not return any error. It simply crashes.

Former Member

I can confirm the crash also happens to me using the above query. I'm also using the 3798 EBF, as far as I know it is the latest Ultralite EBF for iOS, or there is any more recent?

Ask a Question