/ Hex Artifact Content
Login

Artifact 4255db3a17f0da4b3f561a904585a6605fe6a6b8:


0000: 23 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74  # This file cont
0010: 61 69 6e 73 20 73 75 67 67 65 73 74 65 64 20 6d  ains suggested m
0020: 61 67 69 63 28 35 29 20 74 65 78 74 20 66 6f 72  agic(5) text for
0030: 20 74 68 65 20 75 6e 69 78 20 66 69 6c 65 28 31   the unix file(1
0040: 29 0a 23 20 75 74 69 6c 69 74 79 20 66 6f 72 20  ).# utility for 
0050: 72 65 63 6f 67 6e 69 7a 69 6e 67 20 53 51 4c 69  recognizing SQLi
0060: 74 65 33 20 64 61 74 61 62 61 73 65 73 2e 0a 23  te3 databases..#
0070: 0a 23 20 57 68 65 6e 20 53 51 4c 69 74 65 20 69  .# When SQLite i
0080: 73 20 75 73 65 64 20 61 73 20 61 6e 20 61 70 70  s used as an app
0090: 6c 69 63 61 74 69 6f 6e 20 66 69 6c 65 20 66 6f  lication file fo
00a0: 72 6d 61 74 2c 20 69 74 20 69 73 20 64 65 73 69  rmat, it is desi
00b0: 72 61 62 6c 65 20 74 6f 0a 23 20 68 61 76 65 20  rable to.# have 
00c0: 66 69 6c 65 28 31 29 20 72 65 63 6f 67 6e 69 7a  file(1) recogniz
00d0: 65 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66  e the database f
00e0: 69 6c 65 20 61 73 20 62 65 69 6e 67 20 77 69 74  ile as being wit
00f0: 68 20 74 68 65 20 73 70 65 63 69 66 69 63 0a 23  h the specific.#
0100: 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 20 20 59   application.  Y
0110: 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 20 61  ou can set the a
0120: 70 70 6c 69 63 61 74 69 6f 6e 5f 69 64 20 66 6f  pplication_id fo
0130: 72 20 61 20 64 61 74 61 62 61 73 65 20 66 69 6c  r a database fil
0140: 65 0a 23 20 75 73 69 6e 67 3a 0a 23 0a 23 20 20  e.# using:.#.#  
0150: 20 20 20 50 52 41 47 4d 41 20 61 70 70 6c 69 63     PRAGMA applic
0160: 61 74 69 6f 6e 5f 69 64 20 3d 20 49 4e 54 45 47  ation_id = INTEG
0170: 45 52 3b 0a 23 0a 23 20 49 4e 54 45 47 45 52 20  ER;.#.# INTEGER 
0180: 63 61 6e 20 62 65 20 61 6e 79 20 73 69 67 6e 65  can be any signe
0190: 64 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72  d 32-bit integer
01a0: 2e 20 20 54 68 61 74 20 69 6e 74 65 67 65 72 20  .  That integer 
01b0: 69 73 20 77 72 69 74 74 65 6e 20 61 73 0a 23 20  is written as.# 
01c0: 61 20 34 2d 62 79 74 65 20 62 69 67 2d 65 6e 64  a 4-byte big-end
01d0: 69 61 6e 20 69 6e 74 65 67 65 72 20 69 6e 74 6f  ian integer into
01e0: 20 6f 66 66 73 65 74 20 36 38 20 6f 66 20 74 68   offset 68 of th
01f0: 65 20 64 61 74 61 62 61 73 65 20 68 65 61 64 65  e database heade
0200: 72 2e 20 20 49 6e 0a 23 20 74 68 65 20 74 65 73  r.  In.# the tes
0210: 74 73 20 62 65 6c 6f 77 2c 20 74 68 69 73 20 69  ts below, this i
0220: 6e 74 65 67 65 72 20 69 73 20 73 6f 6d 65 74 69  nteger is someti
0230: 6d 65 73 20 72 65 6e 64 65 72 65 64 20 61 73 20  mes rendered as 
0240: 61 20 73 74 72 69 6e 67 2e 20 20 46 6f 72 0a 23  a string.  For.#
0250: 20 65 78 61 6d 70 6c 65 2c 20 69 6e 73 74 65 61   example, instea
0260: 64 20 6f 66 20 22 62 65 6c 6f 6e 67 20 3d 31 35  d of "belong =15
0270: 39 38 34 34 34 33 36 34 22 20 77 65 20 77 72 69  98444364" we wri
0280: 74 65 20 22 73 74 72 69 6e 67 20 3d 5f 46 53 4c  te "string =_FSL
0290: 22 20 61 6e 64 0a 23 20 69 6e 73 74 65 61 64 20  " and.# instead 
02a0: 6f 66 20 22 62 65 6c 6f 6e 67 20 3d 31 35 39 38  of "belong =1598
02b0: 39 30 33 33 37 34 22 20 77 65 20 77 72 69 74 65  903374" we write
02c0: 20 22 73 74 72 69 6e 67 20 3d 5f 4d 54 4e 22 2e   "string =_MTN".
02d0: 0a 23 0a 23 20 54 68 65 20 4d 6f 6e 6f 74 6f 6e  .#.# The Monoton
02e0: 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 75 73  e application us
02f0: 65 64 20 22 50 52 41 47 4d 41 20 75 73 65 72 5f  ed "PRAGMA user_
0300: 76 65 72 73 69 6f 6e 3d 31 35 39 38 39 30 33 33  version=15989033
0310: 37 34 3b 22 20 74 6f 20 73 65 74 0a 23 20 69 74  74;" to set.# it
0320: 73 20 69 64 65 6e 74 69 66 69 65 72 20 6c 6f 6e  s identifier lon
0330: 67 20 62 65 66 6f 72 65 20 22 50 52 41 47 4d 41  g before "PRAGMA
0340: 20 61 70 70 6c 69 63 61 74 69 6f 6e 5f 69 64 22   application_id"
0350: 20 62 65 63 61 6d 65 20 61 76 61 69 6c 61 62 6c   became availabl
0360: 65 2e 0a 23 20 54 68 65 20 75 73 65 72 5f 76 65  e..# The user_ve
0370: 72 73 69 6f 6e 20 69 73 20 76 65 72 79 20 73 69  rsion is very si
0380: 6d 69 6c 61 72 20 74 6f 20 61 70 70 6c 69 63 61  milar to applica
0390: 74 69 6f 6e 5f 69 64 20 65 78 63 65 70 74 20 74  tion_id except t
03a0: 68 61 74 20 69 74 20 69 73 0a 23 20 73 74 6f 72  hat it is.# stor
03b0: 65 64 20 61 74 20 6f 66 66 73 65 74 20 36 30 20  ed at offset 60 
03c0: 69 6e 73 74 65 61 64 20 6f 66 20 6f 66 66 73 65  instead of offse
03d0: 74 20 36 38 2e 20 20 54 68 65 20 75 73 65 72 20  t 68.  The user 
03e0: 6f 66 20 0a 23 20 22 50 52 41 47 4d 41 20 61 70  of .# "PRAGMA ap
03f0: 70 6c 69 63 61 74 69 6f 6e 5f 69 64 22 20 69 73  plication_id" is
0400: 20 70 72 65 66 65 72 72 65 64 20 6e 6f 77 2e 20   preferred now. 
0410: 20 54 68 65 20 72 75 6c 65 73 20 75 73 69 6e 67   The rules using
0420: 20 6f 66 66 73 65 74 20 36 30 0a 23 20 66 6f 72   offset 60.# for
0430: 20 4d 6f 6e 6f 74 6f 6e 65 20 61 72 65 20 66 6f   Monotone are fo
0440: 72 20 68 69 73 74 6f 72 69 63 61 6c 20 63 6f 6d  r historical com
0450: 70 61 74 69 62 69 6c 69 74 79 20 6f 6e 6c 79 2e  patibility only.
0460: 0a 23 0a 30 20 20 20 20 73 74 72 69 6e 67 20 20  .#.0    string  
0470: 3d 53 51 4c 69 74 65 5c 20 66 6f 72 6d 61 74 5c  =SQLite\ format\
0480: 20 33 0a 3e 36 38 20 20 73 74 72 69 6e 67 20 20   3.>68  string  
0490: 3d 5f 46 53 4c 20 20 20 20 20 46 6f 73 73 69 6c  =_FSL     Fossil
04a0: 20 72 65 70 6f 73 69 74 6f 72 79 0a 3e 36 38 20   repository.>68 
04b0: 20 62 65 6c 6f 6e 67 20 20 3d 30 0a 3e 3e 36 30   belong  =0.>>60
04c0: 20 73 74 72 69 6e 67 20 20 3d 5f 4d 54 4e 20 20   string  =_MTN  
04d0: 20 20 20 4d 6f 6e 6f 74 6f 6e 65 20 73 6f 75 72     Monotone sour
04e0: 63 65 20 72 65 70 6f 73 69 74 6f 72 79 0a 3e 3e  ce repository.>>
04f0: 36 30 20 73 74 72 69 6e 67 20 20 21 5f 4d 54 4e  60 string  !_MTN
0500: 20 20 20 20 20 53 51 4c 69 74 65 20 33 2e 78 20       SQLite 3.x 
0510: 64 61 74 61 62 61 73 65 0a                       database.