xref: /dflybsd-src/contrib/file/magic/Magdir/sql (revision 739f0ef867128a933e021db3d831e906fcafd825)
1327e51cbSPeter Avalos
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*3b9cdfa3SAntonio Huete Jimenez# $File: sql,v 1.24 2022/07/17 15:32:48 christos Exp $
4327e51cbSPeter Avalos# sql:  file(1) magic for SQL files
5327e51cbSPeter Avalos#
6327e51cbSPeter Avalos# From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
7327e51cbSPeter Avalos# Recognize some MySQL files.
8e8af9738SPeter Avalos# Elan Ruusamae <glen@delfi.ee>, added MariaDB signatures
9e8af9738SPeter Avalos# from https://bazaar.launchpad.net/~maria-captains/maria/5.5/view/head:/support-files/magic
10327e51cbSPeter Avalos#
11327e51cbSPeter Avalos0	beshort			0xfe01		MySQL table definition file
12327e51cbSPeter Avalos>2	byte			x		Version %d
13c30bd091SSascha Wildner>3	byte			0		\b, type UNKNOWN
14c30bd091SSascha Wildner>3	byte			1		\b, type DIAM_ISAM
15c30bd091SSascha Wildner>3	byte			2		\b, type HASH
16c30bd091SSascha Wildner>3	byte			3		\b, type MISAM
17c30bd091SSascha Wildner>3	byte			4		\b, type PISAM
18c30bd091SSascha Wildner>3	byte			5		\b, type RMS_ISAM
19c30bd091SSascha Wildner>3	byte			6		\b, type HEAP
20c30bd091SSascha Wildner>3	byte			7		\b, type ISAM
21c30bd091SSascha Wildner>3	byte			8		\b, type MRG_ISAM
22c30bd091SSascha Wildner>3	byte			9		\b, type MYISAM
23c30bd091SSascha Wildner>3	byte			10		\b, type MRG_MYISAM
24c30bd091SSascha Wildner>3	byte			11		\b, type BERKELEY_DB
25c30bd091SSascha Wildner>3	byte			12		\b, type INNODB
26c30bd091SSascha Wildner>3	byte			13		\b, type GEMINI
27c30bd091SSascha Wildner>3	byte			14		\b, type NDBCLUSTER
28c30bd091SSascha Wildner>3	byte			15		\b, type EXAMPLE_DB
29c30bd091SSascha Wildner>3	byte			16		\b, type CSV_DB
30c30bd091SSascha Wildner>3	byte			17		\b, type FEDERATED_DB
31c30bd091SSascha Wildner>3	byte			18		\b, type BLACKHOLE_DB
32c30bd091SSascha Wildner>3	byte			19		\b, type PARTITION_DB
33c30bd091SSascha Wildner>3	byte			20		\b, type BINLOG
34c30bd091SSascha Wildner>3	byte			21		\b, type SOLID
35c30bd091SSascha Wildner>3	byte			22		\b, type PBXT
36c30bd091SSascha Wildner>3	byte			23		\b, type TABLE_FUNCTION
37c30bd091SSascha Wildner>3	byte			24		\b, type MEMCACHE
38c30bd091SSascha Wildner>3	byte			25		\b, type FALCON
39c30bd091SSascha Wildner>3	byte			26		\b, type MARIA
40c30bd091SSascha Wildner>3	byte			27		\b, type PERFORMANCE_SCHEMA
41c30bd091SSascha Wildner>3	byte			127		\b, type DEFAULT
42c30bd091SSascha Wildner>0x0033	ulong			x		\b, MySQL version %d
43327e51cbSPeter Avalos0	belong&0xffffff00	0xfefe0500	MySQL ISAM index file
44327e51cbSPeter Avalos>3	byte			x		Version %d
45327e51cbSPeter Avalos0	belong&0xffffff00	0xfefe0600	MySQL ISAM compressed data file
46327e51cbSPeter Avalos>3	byte			x		Version %d
47c30bd091SSascha Wildner0	belong&0xffffff00	0xfefe0700	MySQL MyISAM index file
48c30bd091SSascha Wildner>3	byte			x		Version %d
49c30bd091SSascha Wildner>14	beshort			x		\b, %d key parts
50c30bd091SSascha Wildner>16	beshort			x		\b, %d unique key parts
51c30bd091SSascha Wildner>18	byte			x		\b, %d keys
52c30bd091SSascha Wildner>28	bequad			x		\b, %lld records
53c30bd091SSascha Wildner>36	bequad			x		\b, %lld deleted records
54c30bd091SSascha Wildner0	belong&0xffffff00	0xfefe0800	MySQL MyISAM compressed data file
55c30bd091SSascha Wildner>3	byte			x		Version %d
56c30bd091SSascha Wildner0	belong&0xffffff00	0xfefe0900	MySQL Maria index file
57c30bd091SSascha Wildner>3	byte			x		Version %d
58c30bd091SSascha Wildner0	belong&0xffffff00	0xfefe0a00	MySQL Maria compressed data file
59c30bd091SSascha Wildner>3	byte			x		Version %d
60e8af9738SPeter Avalos0	belong&0xffffff00	0xfefe0c00
61e8af9738SPeter Avalos>4	string			MACF		MySQL Maria control file
62e8af9738SPeter Avalos>>3	byte			x		Version %d
63c30bd091SSascha Wildner0	string			\376bin	MySQL replication log,
64c30bd091SSascha Wildner>9	long			x		server id %d
65c30bd091SSascha Wildner>8	byte			1
66c30bd091SSascha Wildner>>13	long			69		\b, MySQL V3.2.3
67c30bd091SSascha Wildner>>>19	string			x		\b, server version %s
68c30bd091SSascha Wildner>>13	long			75		\b, MySQL V4.0.2-V4.1
69c30bd091SSascha Wildner>>>25	string			x		\b, server version %s
70c30bd091SSascha Wildner>8	byte			15		MySQL V5+,
71c30bd091SSascha Wildner>>25	string			x		server version %s
72c30bd091SSascha Wildner>4	string			MARIALOG	MySQL Maria transaction log file
73c30bd091SSascha Wildner>>3	byte			x		Version %d
74327e51cbSPeter Avalos
75327e51cbSPeter Avalos#------------------------------------------------------------------------------
76327e51cbSPeter Avalos# iRiver H Series database file
77327e51cbSPeter Avalos# From Ken Guest <ken@linux.ie>
78327e51cbSPeter Avalos# As observed from iRivNavi.iDB and unencoded firmware
79327e51cbSPeter Avalos#
80327e51cbSPeter Avalos0   string		iRivDB	iRiver Database file
81327e51cbSPeter Avalos>11  string	>\0	Version %s
82327e51cbSPeter Avalos>39  string		iHP-100	[H Series]
83327e51cbSPeter Avalos
84327e51cbSPeter Avalos#------------------------------------------------------------------------------
85327e51cbSPeter Avalos# SQLite database files
86327e51cbSPeter Avalos# Ken Guest <ken@linux.ie>, Ty Sarna, Zack Weinberg
87327e51cbSPeter Avalos#
88327e51cbSPeter Avalos# Version 1 used GDBM internally; its files cannot be distinguished
89327e51cbSPeter Avalos# from other GDBM files.
90327e51cbSPeter Avalos#
91327e51cbSPeter Avalos# Version 2 used this format:
92327e51cbSPeter Avalos0	string	**\ This\ file\ contains\ an\ SQLite  SQLite 2.x database
93327e51cbSPeter Avalos
94614728caSSascha Wildner# URL:		https://en.wikipedia.org/wiki/SQLite
95614728caSSascha Wildner# Reference:	https://www.sqlite.org/fileformat.html
96614728caSSascha Wildner# Update:	Joerg Jenderek
97327e51cbSPeter Avalos# Version 3 of SQLite allows applications to embed their own "user version"
98e8af9738SPeter Avalos# number in the database at offset 60.  Later, SQLite added an "application id"
99e8af9738SPeter Avalos# at offset 68 that is preferred over "user version" for indicating the
100e8af9738SPeter Avalos# associated application.
101e8af9738SPeter Avalos#
102614728caSSascha Wildner0   string  SQLite\ format\ 3
103614728caSSascha Wildner# skip DROID fmt-729-signature-id-1053.sqlite by checking for valid page size
104614728caSSascha Wildner>16 ubeshort >0                 SQLite 3.x
105614728caSSascha Wildner# deprecated
106614728caSSascha Wildner#!:mime	application/x-sqlite3
107614728caSSascha Wildner!:mime	application/vnd.sqlite3
108c30bd091SSascha Wildner# seldom found extension sqlite3 like in SyncData.sqlite3
109c30bd091SSascha Wildner# db
110614728caSSascha Wildner# db3 like: AddrBook.db3 cgipcrvp.db3
111614728caSSascha Wildner# https://www.maplesoft.com/support/help/Maple/view.aspx?path=worksheet%2freference%2fhelpdatabase
112614728caSSascha Wildner# help is used for newer Maple help database
113614728caSSascha Wildner# SQLite database weewx.sdb used by weather software weewx
114614728caSSascha Wildner# https://www.weewx.com/docs/usersguide.htm
115c30bd091SSascha Wildner# Avira Antivir use extension "dbe" like in avevtdb.dbe, avguard_tchk.dbe
116c30bd091SSascha Wildner# Unfortunately extension sqlite also used for other databases starting with string
117c30bd091SSascha Wildner# "TTCONTAINER" like in tracks.sqlite contentconsumer.sqlite contentproducerrepository.sqlite
118c30bd091SSascha Wildner# and with string "ZV-zlib" in like extra.sqlite
119614728caSSascha Wildner>>68 belong !0x5CDE09EF	database
120614728caSSascha Wildner!:ext sqlite/sqlite3/db/db3/dbe/sdb/help
121614728caSSascha Wildner>>68 belong =0x5CDE09EF  database
122614728caSSascha Wildner# maple is used for Maple Workbook
123614728caSSascha Wildner!:ext maple
124614728caSSascha Wildner>>60 belong =0x5f4d544e  (Monotone source repository)
125614728caSSascha Wildner# if no known user version then check for Application IDs with default clause
126614728caSSascha Wildner>>60 belong !0x5f4d544e
127614728caSSascha Wildner# The "Application ID" set by PRAGMA application_id
128614728caSSascha Wildner>>>68 belong =0x0f055112 (Fossil checkout)
129614728caSSascha Wildner>>>68 belong =0x0f055113 (Fossil global configuration)
130614728caSSascha Wildner>>>68 belong =0x0f055111 (Fossil repository)
131614728caSSascha Wildner>>>68 belong =0x42654462 (Bentley Systems BeSQLite Database)
132614728caSSascha Wildner>>>68 belong =0x42654c6e (Bentley Systems Localization File)
133614728caSSascha Wildner>>>68 belong =0x47504b47 (OGC GeoPackage file)
134614728caSSascha Wildner#	https://www.sqlite.org/src/artifact?ci=trunk&filename=magic.txt
135614728caSSascha Wildner>>>68 belong =0x47503130 (OGC GeoPackage version 1.0 file)
136614728caSSascha Wildner>>>68 belong =0x45737269 (Esri Spatially-Enabled Database)
137614728caSSascha Wildner>>>68 belong =0x4d504258 (MBTiles tileset)
138614728caSSascha Wildner#	https://www.maplesoft.com/support/help/errors/view.aspx?path=Formats/Maple
139614728caSSascha Wildner>>>68 belong =0x5CDE09EF (Maple Workbook)
140614728caSSascha Wildner# unknown application ID
141614728caSSascha Wildner>>>68 default x
142614728caSSascha Wildner>>>>68 belong !0         \b, application id %u
143614728caSSascha Wildner# The "user version" as read and set by the user_version pragma like:
144614728caSSascha Wildner# 1 2 4 5 7 9 10 25 36 43 53 400 416 131073 131074 131075
145e8af9738SPeter Avalos>>60 belong !0          \b, user version %d
146614728caSSascha Wildner# SQLITE_VERSION_NUMBER like: 0 3008011 3016002 3007014 3017000 3022000 3028000 3031001
147614728caSSascha Wildner>>96 belong  x           \b, last written using SQLite version %d
148614728caSSascha Wildner# database page size in bytes; a power of two between 512 and 32768, or 1 for 65536
149614728caSSascha Wildner# like: 512 1024 often 4096 32768
150614728caSSascha Wildner>>16 ubeshort !4096      \b, page size %u
151614728caSSascha Wildner# File format write version. 1 for legacy; 2 for WAL; 0 for corruptDB.sqlite
152614728caSSascha Wildner>>18 ubyte   !1          \b, writer version %u
153614728caSSascha Wildner# File format read version. 1 for legacy; 2 for WAL; 4 for corruptDB.sqlite
154614728caSSascha Wildner>>19 ubyte   !1          \b, read version %u
155614728caSSascha Wildner# Bytes of unused "reserved" space at the end of each page. Usually 0
156614728caSSascha Wildner>>20 ubyte   !0          \b, unused bytes %u
157614728caSSascha Wildner# maximum embedded payload fraction. Must be 64; 1 for corruptDB.sqlite
158614728caSSascha Wildner>>21 ubyte   !64         \b, maximum payload %u
159614728caSSascha Wildner# Minimum embedded payload fraction. Must be 32; 1 for corruptDB.sqlite
160614728caSSascha Wildner>>22 ubyte   !32         \b, minimum payload %u
161614728caSSascha Wildner# Leaf payload fraction. Must be 32; 0 for corruptDB.sqlite
162614728caSSascha Wildner>>23 ubyte   !32         \b, leaf payload %u
163614728caSSascha Wildner# file change counter
164614728caSSascha Wildner>>24 ubelong x           \b, file counter %u
165614728caSSascha Wildner# Size of the database file in pages
166614728caSSascha Wildner>>28 ubelong x           \b, database pages %u
167614728caSSascha Wildner# page number of the first freelist trunk page like: 0 2 3 4 5 9
168614728caSSascha Wildner# 10 13 14 15 16 17 18 19 23 36 39 46 50 136 190 217 307 505 516 561 883 1659
169614728caSSascha Wildner>>32 ubelong !0          \b, 1st free page %u
170614728caSSascha Wildner# total number of freelist pages
171614728caSSascha Wildner>>36 ubelong !0          \b, free pages %u
172614728caSSascha Wildner# The schema cookie like: 2 3 4 6 7 9 A D E F 13 14 1C 25 2A 2F 33 44 4B 53 5A 5F 62 86 87 8F 91 A8
173614728caSSascha Wildner>>40 ubelong x           \b, cookie %#x
174614728caSSascha Wildner# the schema format number. Supported formats are 1 2 3 and often 4
175614728caSSascha Wildner# 3328 for corruptDB.sqlite and 0 for 512 byte storage.sqlite (TorBrowser Firefox Thunderbird)
176614728caSSascha Wildner>>44 ubelong x           \b, schema %u
177614728caSSascha Wildner# Suggested cache size  like: 0 2000
178614728caSSascha Wildner>>48 ubelong !0          \b, cache page size %u
179614728caSSascha Wildner# The page number of the largest root b-tree page when in auto-vacuum or incremental-vacuum modes, or zero otherwise.
180614728caSSascha Wildner>>52 ubelong !0          \b, largest root page %u
181614728caSSascha Wildner# The database text encoding; a value of 1 means UTF-8; 2 means UTF-16le; 3 means UTF-16be
182614728caSSascha Wildner#>>56 ubelong x           \b, encoding %u
183614728caSSascha Wildner>>56 ubelong x
184614728caSSascha Wildner>>>56 ubelong =1         \b, UTF-8
185614728caSSascha Wildner>>>56 ubelong =2         \b, UTF-16 little endian
186614728caSSascha Wildner>>>56 ubelong =3         \b, UTF-16 big endian
187614728caSSascha Wildner# 0 for corruptDB.sqlite and for storage.sqlite with database pages 1 (TorBrowser Firefox Thunderbird)
188614728caSSascha Wildner# https://mozilla.github.io/firefox-browser-architecture/text/0010-firefox-data-stores.html
189614728caSSascha Wildner>>>56 default x
190614728caSSascha Wildner>>>>56 ubelong x         \b, unknown %#x encoding
191614728caSSascha Wildner# True (non-zero) for incremental-vacuum mode; false (zero) otherwiseqy
192614728caSSascha Wildner>>64 ubelong !0           \b, vacuum mode %u
193614728caSSascha Wildner# Reserved for expansion. Must be zero
194614728caSSascha Wildner>>72 uquad !0             \b, reserved %#llx
195614728caSSascha Wildner# The version-valid-for number like:
196614728caSSascha Wildner# 1 2 3 4 C F 68h 95h 266h A99h 3DCDh B7CEh
197614728caSSascha Wildner>>92 ubelong x            \b, version-valid-for %u
198e8af9738SPeter Avalos
199e8af9738SPeter Avalos# SQLite Write-Ahead Log from SQLite version >= 3.7.0
2006fca56fbSSascha Wildner# https://www.sqlite.org/fileformat.html#walformat
201e8af9738SPeter Avalos0	belong&0xfffffffe	0x377f0682	SQLite Write-Ahead Log,
202c30bd091SSascha Wildner!:ext sqlite-wal/db-wal
20382c5fa3eSPeter Avalos>4	belong	x	version %d
204e8af9738SPeter Avalos
205e8af9738SPeter Avalos# SQLite Rollback Journal
2066fca56fbSSascha Wildner# https://www.sqlite.org/fileformat.html#rollbackjournal
207e8af9738SPeter Avalos0	string	\xd9\xd5\x05\xf9\x20\xa1\x63\xd7	SQLite Rollback Journal
208e8af9738SPeter Avalos
209e8af9738SPeter Avalos# Panasonic channel list database svl.bin or svl.db added by Joerg Jenderek
210c30bd091SSascha Wildner# https://github.com/PredatH0r/ChanSort
211c30bd091SSascha Wildner0	string		PSDB\0			Panasonic channel list DataBase
212c30bd091SSascha Wildner!:ext db/bin
213c30bd091SSascha Wildner#!:mime	application/x-db-svl-panasonic
214e8af9738SPeter Avalos>126	string		SQLite\ format\ 3
215c30bd091SSascha Wildner#!:mime	application/x-panasonic-sqlite3
216e8af9738SPeter Avalos>>&-15	indirect	x			\b; contains
217c30bd091SSascha Wildner
2186fca56fbSSascha Wildner# H2 Database from https://www.h2database.com/
219c30bd091SSascha Wildner0	string		--\ H2\ 0.5/B\ --\ \n	H2 Database file
220*3b9cdfa3SAntonio Huete Jimenez
221*3b9cdfa3SAntonio Huete Jimenez# DuckDB database file from https://duckdb.org
222*3b9cdfa3SAntonio Huete Jimenez8	string	DUCK    DuckDB database file
223*3b9cdfa3SAntonio Huete Jimenez>12	lequad	x	\b, version %lld
224*3b9cdfa3SAntonio Huete Jimenez#>20	lequad	x	\b, flags %#llx
225*3b9cdfa3SAntonio Huete Jimenez#>28	lequad	x	\b, flags %#llx
226