Hi,
I used to bitwise stuff in Assembler in the 60's when disk space was dear. Do not know your environment. But maybe my observations will help. CASE stops after one conditions is met and does not test other cases. The next line executed is after the CASEs When I worked with bits, I would look at the sum of the bits. So a 1st bit and a 2nd bit set has a sum 3. A 1st and a 3rd has a sum of 5.
Generally do not answer to list but hope this helps.
Clemens Herschel ( a different Clemens)
On 10/13/14, 9:39 AM, Paul Sanderson wrote:
Thanks all

Clemens - I went initially for your solution as it fitsbetter with some
other work i have done

My actual code is as folows

   (CASE visits.transition & 0xFFFFFF00  WHEN 0x00800000 THEN 'Blocked'
     ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x01000000 THEN
'Forward_Back'      ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x02000000 THEN
'From_Address_Bar' ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x04000000 THEN 'Home_Page'
     ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x08000000 THEN 'From_API'
     ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x10000000 THEN 'Chain_Start'
     ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x20000000 THEN 'Chain_end'
     ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x40000000 THEN
'Client_Redirect'  ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0x80000000 THEN
'Server_Redirect'  ELSE '' END ||
    CASE visits.transition & 0xFFFFFF00  WHEN 0xC0000000 THEN
'Is_Redirect_Mask' ELSE '' END )
   AS Qualifiers

The query is on a visits table from a google chrome history database. The
query seems to work OK if a single bit is set, but fails (a blank string is
returned) when multiple bits are set. Any ideas why?

Thanks


Paul
www.sandersonforensics.com
skype: r3scue193
twitter: @sandersonforens
Tel +44 (0)1326 572786
http://sandersonforensics.com/forum/content.php?195-SQLite-Forensic-Toolkit
<http://sandersonforensics.com/forum/content.php?190-SQLite-Recovery>
-SQLite Forensic Toolkit
http://sandersonforensics.com/forum/content.php?168-Reconnoitre - VSC
processing made easy


On 13 October 2014 13:17, Clemens Ladisch <clem...@ladisch.de> wrote:

Paul Sanderson wrote:
I have a table with an integer value which is a bitmask.

0c01 readonly
0x02 hidden
0x04 system
0x10 directory
0x20 archive

I'd like to create a query which would take an attribute, say 0x07 and
spit
out "system, hidden, readonly"
SELECT substr(CASE WHEN attr & 32 THEN ', archive'   ELSE '' END ||
               CASE WHEN attr & 16 THEN ', directory' ELSE '' END ||
               CASE WHEN attr &  4 THEN ', system'    ELSE '' END ||
               CASE WHEN attr &  2 THEN ', hidden'    ELSE '' END ||
               CASE WHEN attr &  1 THEN ', readonly'  ELSE '' END, 3)
FROM MyTable;


Regards,
Clemens
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to