Files
sqlite/ext/sqlrr
adam e6c3c72c1b Merging in OSX customizations:
A ext/sqlrr/sqlrr.[ch]
-- add sql recording/replay support (very experimental extension -- pre alpha)

M ext/rtree/rtree.c
-- fix cast compiler warning

M src/func.c
-- substring backward compatiblity <rdar://problem/6778339> 

M src/legacy.c
-- replay recorder calls

M src/main.c
-- if SQLITE_ENABLE_AUTO_PROFILE, call sqlite3_profile when env(SQLITE_AUTO_PROFILE)   
-- replay recorder calls

M src/mem1.c
-- use custom malloc zone on single core systems

M src/os_unix.c
-- hostid via gethostuuid
-- read-only file system support for proxy locking
-- improved handling of simulated shared lock on AFP/SMB on 64 bit systems
-- disable whole-file-lock NFS file locking
-- fix for downgrading from exclusive to shared lock on NFS
-- proxy lock breaking & recreating local lock files
-- support SQLITE_OPEN_AUTOPROXY flag
-- only write 1st byte into new zero-length files if fs is DOS
-- cache fs type info in unixFile struct
-- force use of fsync() even if fdatasync() is available
-- remove flock locking style support for SMB
-- replace strcpy with strlcpy

M src/prepare.c
-- replay recorder calls

M src/sqlite.h.in
-- added SQLITE_OPEN_AUTOPROXY

M src/sqliteInt.h
-- include replay recorder header

M src/vdbeapi.c
-- checking for NULL statement for <rdar://6646331> 
-- replay recorder calls

FossilOrigin-Name: 941a01eb868815f566539e9ab21f807d9e798e40
2009-11-03 22:34:35 +00:00
..
2009-11-03 22:34:35 +00:00
2009-11-03 22:34:35 +00:00
2009-11-03 22:34:35 +00:00

sqlrr - 10/19/2009

SQL Replay Recording

SUMMARY
-------------------------------------------------------
This extension enables recording sqlite API calls that access the database so that they can be replayed or examined.

USAGE
------------------------------------------------------
Recording is enabled by compiling sqlite with symbolic constant SQLITE_ENABLE_SQLRR defined.  
By default logs are written to /tmp/<databasename>_<pid>_<connection_number>.sqlrr, to choose another directory, set the environment variable SQLITE_REPLAY_RECORD_DIR to that path.

FILE FORMAT
-----------------------------------------------------
 file:			<header>[<sql-command>]*
 
 header:			<signature><format-version>
   signature: 		SQLRR (5 bytes)
   format-version:	n (1 byte)
 
 sql-command:		<timestamp><type><arg-data>
   timestamp:       n (16 bytes)
   type:			n (1 byte)
        open		0
        close		1
        exec		8
        bind-text	16
        bind-double	17
        bind-int	18
        bind-null	19
        bind-value	20
        bind-clear	21
        prep		32
        step		33
        reset		34
        finalize	35

  open-arg-data:		<connection><path><flags>
  close-arg-data:		<connection>
  exec-arg-data:		<connection><len><statement-text>
  bind-text-arg-data:	<statement-ref><index><len><data>
  bind-double-arg-data:	<statement-ref><index><data>
  bind-int-arg-data:	<statement-ref><index><data>
  bind-null-arg-data:	<statement-ref><index>
  bind-value-arg-data:	<statement-ref><index><len><data> ???
  bind-clear-arg-data:	<statement-ref>
  prep-arg-data:		<connection><len><statement-text>
  step-arg-data:		<statement-ref>
  reset-arg-data:		<statement-ref>
  finalize-arg-data:	<statement-ref>

NOTES