| ofs | hex dump | ascii | 
|---|
| 0000 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | emacsql-4.3.1/.................. | 
| 0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0060 | 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000755.0000000.0000000.0000 | 
| 0080 | 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 31 36 30 33 00 20 35 00 00 00 | 0000000.00000000000.011603..5... | 
| 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0100 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 0120 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0200 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 63 6f 6d 70 69 6c 65 72 2e 65 | emacsql-4.3.1/emacsql-compiler.e | 
| 0220 | 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | l............................... | 
| 0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 0280 | 30 30 35 33 33 31 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 33 37 30 00 20 30 00 00 00 | 0053314.00000000000.015370..0... | 
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 0320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0400 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 63 6f 6d 70    69 6c 65 72 2e 65 6c 20 2d 2d 2d 20 53 2d 65 78 | ;;;.emacsql-compiler.el.---.S-ex | 
| 0420 | 70 72 65 73 73 69 6f 6e 20 53 51 4c 20 63 6f 6d    70 69 6c 65 72 20 20 2d 2a 2d 20 6c 65 78 69 63 | pression.SQL.compiler..-*-.lexic | 
| 0440 | 61 6c 2d 62 69 6e 64 69 6e 67 3a 74 20 2d 2a 2d    0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 | al-binding:t.-*-..;;.This.is.fre | 
| 0460 | 65 20 61 6e 64 20 75 6e 65 6e 63 75 6d 62 65 72    65 64 20 73 6f 66 74 77 61 72 65 20 72 65 6c 65 | e.and.unencumbered.software.rele | 
| 0480 | 61 73 65 64 20 69 6e 74 6f 20 74 68 65 20 70 75    62 6c 69 63 20 64 6f 6d 61 69 6e 2e 0a 0a 3b 3b | ased.into.the.public.domain...;; | 
| 04a0 | 20 41 75 74 68 6f 72 3a 20 43 68 72 69 73 74 6f    70 68 65 72 20 57 65 6c 6c 6f 6e 73 20 3c 77 65 | .Author:.Christopher.Wellons.<we | 
| 04c0 | 6c 6c 6f 6e 73 40 6e 75 6c 6c 70 72 6f 67 72 61    6d 2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 | llons@nullprogram.com>.;;.Mainta | 
| 04e0 | 69 6e 65 72 3a 20 4a 6f 6e 61 73 20 42 65 72 6e    6f 75 6c 6c 69 20 3c 65 6d 61 63 73 2e 65 6d 61 | iner:.Jonas.Bernoulli.<emacs.ema | 
| 0500 | 63 73 71 6c 40 6a 6f 6e 61 73 2e 62 65 72 6e 6f    75 6c 6c 69 2e 64 65 76 3e 0a 0a 3b 3b 20 53 50 | csql@jonas.bernoulli.dev>..;;.SP | 
| 0520 | 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74    69 66 69 65 72 3a 20 55 6e 6c 69 63 65 6e 73 65 | DX-License-Identifier:.Unlicense | 
| 0540 | 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79    3a 0a 0a 3b 3b 20 54 68 69 73 20 6c 69 62 72 61 | ..;;;.Commentary:..;;.This.libra | 
| 0560 | 72 79 20 70 72 6f 76 69 64 65 73 20 73 75 70 70    6f 72 74 20 66 6f 72 20 63 6f 6d 70 69 6c 69 6e | ry.provides.support.for.compilin | 
| 0580 | 67 20 53 2d 65 78 70 72 65 73 73 69 6f 6e 73 20    74 6f 20 53 51 4c 2e 0a 0a 3b 3b 3b 20 43 6f 64 | g.S-expressions.to.SQL...;;;.Cod | 
| 05a0 | 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c    2d 6c 69 62 29 0a 0a 28 65 76 61 6c 2d 77 68 65 | e:..(require.'cl-lib)..(eval-whe | 
| 05c0 | 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69    72 65 20 27 73 75 62 72 2d 78 29 29 0a 0a 3b 3b | n-compile.(require.'subr-x))..;; | 
| 05e0 | 3b 20 45 72 72 6f 72 20 73 79 6d 62 6f 6c 73 0a    0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 61 63 73 | ;.Error.symbols..(defmacro.emacs | 
| 0600 | 71 6c 2d 64 65 66 65 72 72 6f 72 20 28 73 79 6d    62 6f 6c 20 70 61 72 65 6e 74 73 20 6d 65 73 73 | ql-deferror.(symbol.parents.mess | 
| 0620 | 61 67 65 29 0a 20 20 22 44 65 66 69 6e 65 73 20    61 20 6e 65 77 20 65 72 72 6f 72 20 73 79 6d 62 | age)..."Defines.a.new.error.symb | 
| 0640 | 6f 6c 20 66 6f 72 20 45 6d 61 63 53 51 4c 2e 22    0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 | ol.for.EmacSQL."...(declare.(ind | 
| 0660 | 65 6e 74 20 32 29 29 0a 20 20 28 6c 65 74 20 28    28 63 6f 6e 64 69 74 69 6f 6e 73 20 28 63 6c 2d | ent.2))...(let.((conditions.(cl- | 
| 0680 | 72 65 6d 6f 76 65 2d 64 75 70 6c 69 63 61 74 65    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | remove-duplicates............... | 
| 06a0 | 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 70    61 72 65 6e 74 73 20 28 6c 69 73 74 20 73 79 6d | .......(append.parents.(list.sym | 
| 06c0 | 62 6f 6c 20 27 65 6d 61 63 73 71 6c 2d 65 72 72    6f 72 20 27 65 72 72 6f 72 29 29 29 29 29 0a 20 | bol.'emacsql-error.'error))))).. | 
| 06e0 | 20 20 20 60 28 70 72 6f 67 31 20 27 2c 73 79 6d    62 6f 6c 0a 20 20 20 20 20 20 20 28 70 75 74 20 | ...`(prog1.',symbol........(put. | 
| 0700 | 27 2c 73 79 6d 62 6f 6c 20 27 65 72 72 6f 72 2d    63 6f 6e 64 69 74 69 6f 6e 73 20 27 2c 63 6f 6e | ',symbol.'error-conditions.',con | 
| 0720 | 64 69 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20    28 70 75 74 20 27 2c 73 79 6d 62 6f 6c 20 27 65 | ditions)........(put.',symbol.'e | 
| 0740 | 72 72 6f 72 2d 6d 65 73 73 61 67 65 20 2c 6d 65    73 73 61 67 65 29 29 29 29 0a 0a 28 65 6d 61 63 | rror-message.,message))))..(emac | 
| 0760 | 73 71 6c 2d 64 65 66 65 72 72 6f 72 20 65 6d 61    63 73 71 6c 2d 65 72 72 6f 72 20 28 29 20 3b 3b | sql-deferror.emacsql-error.().;; | 
| 0780 | 20 70 61 72 65 6e 74 20 63 6f 6e 64 69 74 69 6f    6e 20 66 6f 72 20 61 6c 6c 20 6f 74 68 65 72 73 | .parent.condition.for.all.others | 
| 07a0 | 0a 20 20 22 45 6d 61 63 53 51 4c 20 68 61 64 20    61 6e 20 75 6e 68 61 6e 64 6c 65 64 20 63 6f 6e | ..."EmacSQL.had.an.unhandled.con | 
| 07c0 | 64 69 74 69 6f 6e 22 29 0a 0a 28 65 6d 61 63 73    71 6c 2d 64 65 66 65 72 72 6f 72 20 65 6d 61 63 | dition")..(emacsql-deferror.emac | 
| 07e0 | 73 71 6c 2d 73 79 6e 74 61 78 20 28 29 20 22 49    6e 76 61 6c 69 64 20 53 51 4c 20 73 74 61 74 65 | sql-syntax.()."Invalid.SQL.state | 
| 0800 | 6d 65 6e 74 22 29 0a 28 65 6d 61 63 73 71 6c 2d    64 65 66 65 72 72 6f 72 20 65 6d 61 63 73 71 6c | ment").(emacsql-deferror.emacsql | 
| 0820 | 2d 69 6e 74 65 72 6e 61 6c 20 28 29 20 22 49 6e    74 65 72 6e 61 6c 20 65 72 72 6f 72 22 29 0a 28 | -internal.()."Internal.error").( | 
| 0840 | 65 6d 61 63 73 71 6c 2d 64 65 66 65 72 72 6f 72    20 65 6d 61 63 73 71 6c 2d 6c 6f 63 6b 65 64 20 | emacsql-deferror.emacsql-locked. | 
| 0860 | 28 29 20 22 44 61 74 61 62 61 73 65 20 6c 6f 63    6b 65 64 22 29 0a 28 65 6d 61 63 73 71 6c 2d 64 | ()."Database.locked").(emacsql-d | 
| 0880 | 65 66 65 72 72 6f 72 20 65 6d 61 63 73 71 6c 2d    66 61 74 61 6c 20 28 29 20 22 46 61 74 61 6c 20 | eferror.emacsql-fatal.()."Fatal. | 
| 08a0 | 65 72 72 6f 72 22 29 0a 28 65 6d 61 63 73 71 6c    2d 64 65 66 65 72 72 6f 72 20 65 6d 61 63 73 71 | error").(emacsql-deferror.emacsq | 
| 08c0 | 6c 2d 6d 65 6d 6f 72 79 20 28 29 20 22 4f 75 74    20 6f 66 20 6d 65 6d 6f 72 79 22 29 0a 28 65 6d | l-memory.()."Out.of.memory").(em | 
| 08e0 | 61 63 73 71 6c 2d 64 65 66 65 72 72 6f 72 20 65    6d 61 63 73 71 6c 2d 63 6f 72 72 75 70 74 69 6f | acsql-deferror.emacsql-corruptio | 
| 0900 | 6e 20 28 29 20 22 44 61 74 61 62 61 73 65 20 63    6f 72 72 75 70 74 65 64 22 29 0a 28 65 6d 61 63 | n.()."Database.corrupted").(emac | 
| 0920 | 73 71 6c 2d 64 65 66 65 72 72 6f 72 20 65 6d 61    63 73 71 6c 2d 61 63 63 65 73 73 20 28 29 20 22 | sql-deferror.emacsql-access.()." | 
| 0940 | 44 61 74 61 62 61 73 65 20 61 63 63 65 73 73 20    65 72 72 6f 72 22 29 0a 28 65 6d 61 63 73 71 6c | Database.access.error").(emacsql | 
| 0960 | 2d 64 65 66 65 72 72 6f 72 20 65 6d 61 63 73 71    6c 2d 74 69 6d 65 6f 75 74 20 28 29 20 22 51 75 | -deferror.emacsql-timeout.()."Qu | 
| 0980 | 65 72 79 20 74 69 6d 65 6f 75 74 20 65 72 72 6f    72 22 29 0a 28 65 6d 61 63 73 71 6c 2d 64 65 66 | ery.timeout.error").(emacsql-def | 
| 09a0 | 65 72 72 6f 72 20 65 6d 61 63 73 71 6c 2d 77 61    72 6e 69 6e 67 20 28 29 20 22 57 61 72 6e 69 6e | error.emacsql-warning.()."Warnin | 
| 09c0 | 67 20 6d 65 73 73 61 67 65 22 29 0a 0a 28 64 65    66 75 6e 20 65 6d 61 63 73 71 6c 2d 65 72 72 6f | g.message")..(defun.emacsql-erro | 
| 09e0 | 72 20 28 66 6f 72 6d 61 74 20 26 72 65 73 74 20    61 72 67 73 29 0a 20 20 22 4c 69 6b 65 20 60 65 | r.(format.&rest.args)..."Like.`e | 
| 0a00 | 72 72 6f 72 27 2c 20 62 75 74 20 73 69 67 6e 61    6c 20 61 6e 20 65 6d 61 63 73 71 6c 2d 73 79 6e | rror',.but.signal.an.emacsql-syn | 
| 0a20 | 74 61 78 20 63 6f 6e 64 69 74 69 6f 6e 2e 22 0a    20 20 28 73 69 67 6e 61 6c 20 27 65 6d 61 63 73 | tax.condition."...(signal.'emacs | 
| 0a40 | 71 6c 2d 73 79 6e 74 61 78 20 28 6c 69 73 74 20    28 61 70 70 6c 79 20 23 27 66 6f 72 6d 61 74 20 | ql-syntax.(list.(apply.#'format. | 
| 0a60 | 66 6f 72 6d 61 74 20 61 72 67 73 29 29 29 29 0a    0a 3b 3b 3b 20 45 73 63 61 70 69 6e 67 20 66 75 | format.args))))..;;;.Escaping.fu | 
| 0a80 | 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 76 61 72    20 65 6d 61 63 73 71 6c 2d 72 65 73 65 72 76 65 | nctions..(defvar.emacsql-reserve | 
| 0aa0 | 64 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62    6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 | d.(make-hash-table.:test.'equal) | 
| 0ac0 | 0a 20 20 22 43 6f 6c 6c 65 63 74 69 6f 6e 20 6f    66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 72 65 73 65 | ..."Collection.of.all.known.rese | 
| 0ae0 | 72 76 65 64 20 77 6f 72 64 73 2c 20 75 73 65 64    20 66 6f 72 20 65 73 63 61 70 69 6e 67 2e 22 29 | rved.words,.used.for.escaping.") | 
| 0b00 | 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c    2d 72 65 67 69 73 74 65 72 2d 72 65 73 65 72 76 | ..(defun.emacsql-register-reserv | 
| 0b20 | 65 64 20 28 73 65 71 29 0a 20 20 22 52 65 67 69    73 74 65 72 20 73 65 71 75 65 6e 63 65 20 6f 66 | ed.(seq)..."Register.sequence.of | 
| 0b40 | 20 6b 65 79 77 6f 72 64 73 20 61 73 20 72 65 73    65 72 76 65 64 20 77 6f 72 64 73 2c 20 72 65 74 | .keywords.as.reserved.words,.ret | 
| 0b60 | 75 72 6e 69 6e 67 20 53 45 51 2e 22 0a 20 20 28    63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 77 6f 72 64 | urning.SEQ."...(cl-loop.for.word | 
| 0b80 | 20 62 65 69 6e 67 20 74 68 65 20 65 6c 65 6d 65    6e 74 73 20 6f 66 20 73 65 71 0a 20 20 20 20 20 | .being.the.elements.of.seq...... | 
| 0ba0 | 20 20 20 20 20 20 64 6f 20 28 73 65 74 66 20 28    67 65 74 68 61 73 68 20 28 75 70 63 61 73 65 20 | ......do.(setf.(gethash.(upcase. | 
| 0bc0 | 28 66 6f 72 6d 61 74 20 22 25 73 22 20 77 6f 72    64 29 29 20 65 6d 61 63 73 71 6c 2d 72 65 73 65 | (format."%s".word)).emacsql-rese | 
| 0be0 | 72 76 65 64 29 20 74 29 0a 20 20 20 20 20 20 20    20 20 20 20 66 69 6e 61 6c 6c 79 20 28 63 6c 2d | rved).t)............finally.(cl- | 
| 0c00 | 72 65 74 75 72 6e 20 73 65 71 29 29 29 0a 0a 28    64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 72 65 | return.seq)))..(defun.emacsql-re | 
| 0c20 | 73 65 72 76 65 64 2d 70 20 28 6e 61 6d 65 29 0a    20 20 22 52 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e | served-p.(name)..."Returns.non-n | 
| 0c40 | 69 6c 20 69 66 20 73 74 72 69 6e 67 20 4e 41 4d    45 20 69 73 20 61 20 53 51 4c 20 6b 65 79 77 6f | il.if.string.NAME.is.a.SQL.keywo | 
| 0c60 | 72 64 2e 22 0a 20 20 28 67 65 74 68 61 73 68 20    28 75 70 63 61 73 65 20 6e 61 6d 65 29 20 65 6d | rd."...(gethash.(upcase.name).em | 
| 0c80 | 61 63 73 71 6c 2d 72 65 73 65 72 76 65 64 29 29    0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c | acsql-reserved))..(defun.emacsql | 
| 0ca0 | 2d 71 75 6f 74 65 2d 73 63 61 6c 61 72 20 28 73    74 72 69 6e 67 29 0a 20 20 22 53 69 6e 67 6c 65 | -quote-scalar.(string)..."Single | 
| 0cc0 | 2d 71 75 6f 74 65 20 28 73 63 61 6c 61 72 29 20    53 54 52 49 4e 47 20 66 6f 72 20 75 73 65 20 69 | -quote.(scalar).STRING.for.use.i | 
| 0ce0 | 6e 20 61 20 53 51 4c 20 65 78 70 72 65 73 73 69    6f 6e 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d | n.a.SQL.expression."...(with-tem | 
| 0d00 | 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e    73 65 72 74 20 73 74 72 69 6e 67 29 0a 20 20 20 | p-buffer.....(insert.string).... | 
| 0d20 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69    6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 | .(goto-char.(point-min)).....(wh | 
| 0d40 | 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66    6f 72 77 61 72 64 20 22 27 22 20 6e 69 6c 20 74 | ile.(re-search-forward."'".nil.t | 
| 0d60 | 29 0a 20 20 20 20 20 20 28 72 65 70 6c 61 63 65    2d 6d 61 74 63 68 20 22 27 27 22 29 29 0a 20 20 | ).......(replace-match."''"))... | 
| 0d80 | 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f    69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 69 | ..(goto-char.(point-min)).....(i | 
| 0da0 | 6e 73 65 72 74 20 22 27 22 29 0a 20 20 20 20 28    67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 | nsert."'").....(goto-char.(point | 
| 0dc0 | 2d 6d 61 78 29 29 0a 20 20 20 20 28 69 6e 73 65    72 74 20 22 27 22 29 0a 20 20 20 20 28 62 75 66 | -max)).....(insert."'").....(buf | 
| 0de0 | 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 28    64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 71 75 | fer-string)))..(defun.emacsql-qu | 
| 0e00 | 6f 74 65 2d 63 68 61 72 61 63 74 65 72 20 28 63    29 0a 20 20 22 53 69 6e 67 6c 65 2d 71 75 6f 74 | ote-character.(c)..."Single-quot | 
| 0e20 | 65 20 63 68 61 72 61 63 74 65 72 20 43 20 66 6f    72 20 75 73 65 20 69 6e 20 61 20 53 51 4c 20 65 | e.character.C.for.use.in.a.SQL.e | 
| 0e40 | 78 70 72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 69    66 20 28 63 68 61 72 2d 65 71 75 61 6c 20 63 20 | xpression."...(if.(char-equal.c. | 
| 0e60 | 3f 27 29 0a 20 20 20 20 20 20 22 27 27 27 27 22    0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 27 25 | ?')......."''''".....(format."'% | 
| 0e80 | 63 27 22 20 63 29 29 29 0a 0a 28 64 65 66 75 6e    20 65 6d 61 63 73 71 6c 2d 71 75 6f 74 65 2d 69 | c'".c)))..(defun.emacsql-quote-i | 
| 0ea0 | 64 65 6e 74 69 66 69 65 72 20 28 73 74 72 69 6e    67 29 0a 20 20 22 44 6f 75 62 6c 65 2d 71 75 6f | dentifier.(string)..."Double-quo | 
| 0ec0 | 74 65 20 28 69 64 65 6e 74 69 66 69 65 72 29 20    53 54 52 49 4e 47 20 66 6f 72 20 75 73 65 20 69 | te.(identifier).STRING.for.use.i | 
| 0ee0 | 6e 20 61 20 53 51 4c 20 65 78 70 72 65 73 73 69    6f 6e 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 | n.a.SQL.expression."...(format." | 
| 0f00 | 5c 22 25 73 5c 22 22 20 28 72 65 70 6c 61 63 65    2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e | \"%s\"".(replace-regexp-in-strin | 
| 0f20 | 67 20 22 5c 22 22 20 22 5c 22 5c 22 22 20 73 74    72 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 | g."\""."\"\"".string)))..(defun. | 
| 0f40 | 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d 69    64 65 6e 74 69 66 69 65 72 20 28 69 64 65 6e 74 | emacsql-escape-identifier.(ident | 
| 0f60 | 69 66 69 65 72 29 0a 20 20 22 45 73 63 61 70 65    20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2c 20 | ifier)..."Escape.an.identifier,. | 
| 0f80 | 69 66 20 6e 65 65 64 65 64 2c 20 66 6f 72 20 53    51 4c 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f 72 | if.needed,.for.SQL."...(when.(or | 
| 0fa0 | 20 28 6e 75 6c 6c 20 69 64 65 6e 74 69 66 69 65    72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | .(null.identifier).............( | 
| 0fc0 | 6b 65 79 77 6f 72 64 70 20 69 64 65 6e 74 69 66    69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | keywordp.identifier)............ | 
| 0fe0 | 20 28 6e 6f 74 20 28 6f 72 20 28 73 79 6d 62 6f    6c 70 20 69 64 65 6e 74 69 66 69 65 72 29 0a 20 | .(not.(or.(symbolp.identifier).. | 
| 1000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 76 65 63 74 6f 72 70 20 69 64 65 | ....................(vectorp.ide | 
| 1020 | 6e 74 69 66 69 65 72 29 29 29 29 0a 20 20 20 20    28 65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 20 22 | ntifier)))).....(emacsql-error." | 
| 1040 | 49 6e 76 61 6c 69 64 20 69 64 65 6e 74 69 66 69    65 72 3a 20 25 53 22 20 69 64 65 6e 74 69 66 69 | Invalid.identifier:.%S".identifi | 
| 1060 | 65 72 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20    28 28 76 65 63 74 6f 72 70 20 69 64 65 6e 74 69 | er))...(cond....((vectorp.identi | 
| 1080 | 66 69 65 72 29 0a 20 20 20 20 28 6d 61 70 63 6f    6e 63 61 74 20 23 27 65 6d 61 63 73 71 6c 2d 65 | fier).....(mapconcat.#'emacsql-e | 
| 10a0 | 73 63 61 70 65 2d 69 64 65 6e 74 69 66 69 65 72    20 69 64 65 6e 74 69 66 69 65 72 20 22 2c 20 22 | scape-identifier.identifier.",." | 
| 10c0 | 29 29 0a 20 20 20 28 28 65 71 20 69 64 65 6e 74    69 66 69 65 72 20 27 2a 29 20 22 2a 22 29 0a 20 | ))....((eq.identifier.'*)."*").. | 
| 10e0 | 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28 28    6e 61 6d 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d | ..(t.....(let.((name.(symbol-nam | 
| 1100 | 65 20 69 64 65 6e 74 69 66 69 65 72 29 29 29 0a    20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e | e.identifier))).......(if.(strin | 
| 1120 | 67 2d 6d 61 74 63 68 2d 70 20 22 3a 22 20 6e 61    6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d | g-match-p.":".name)...........(m | 
| 1140 | 61 70 63 6f 6e 63 61 74 20 23 27 65 6d 61 63 73    71 6c 2d 65 73 63 61 70 65 2d 69 64 65 6e 74 69 | apconcat.#'emacsql-escape-identi | 
| 1160 | 66 69 65 72 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 | fier......................(mapca | 
| 1180 | 72 20 23 27 69 6e 74 65 72 6e 20 28 73 70 6c 69    74 2d 73 74 72 69 6e 67 20 6e 61 6d 65 20 22 3a | r.#'intern.(split-string.name.": | 
| 11a0 | 22 29 29 20 22 2e 22 29 0a 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 70 72 69 6e 74 20 28 72 | ")).".").........(let.((print.(r | 
| 11c0 | 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e    2d 73 74 72 69 6e 67 20 22 2d 22 20 22 5f 22 20 | eplace-regexp-in-string."-"."_". | 
| 11e0 | 28 66 6f 72 6d 61 74 20 22 25 53 22 20 69 64 65    6e 74 69 66 69 65 72 29 29 29 0a 20 20 20 20 20 | (format."%S".identifier)))...... | 
| 1200 | 20 20 20 20 20 20 20 20 20 28 73 70 65 63 69 61    6c 20 22 5b 5d 2d 5c 30 30 30 2d 5c 30 34 30 21 | .........(special."[]-\000-\040! | 
| 1220 | 5c 22 23 25 26 27 28 29 2a 2b 2c 2e 2f 3a 3b 3c    3d 3e 3f 40 5b 5c 5c 5e 60 7b 7c 7d 7e 5c 31 37 | \"#%&'()*+,./:;<=>?@[\\^`{|}~\17 | 
| 1240 | 37 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 6f 72 20 28 73 74 72 69 6e 67 2d | 7]"))...........(if.(or.(string- | 
| 1260 | 6d 61 74 63 68 2d 70 20 73 70 65 63 69 61 6c 20    70 72 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 | match-p.special.print).......... | 
| 1280 | 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67    2d 6d 61 74 63 68 2d 70 20 22 5e 5b 30 2d 39 24 | .........(string-match-p."^[0-9$ | 
| 12a0 | 5d 22 20 70 72 69 6e 74 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 | ]".print)...................(ema | 
| 12c0 | 63 73 71 6c 2d 72 65 73 65 72 76 65 64 2d 70 20    70 72 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 | csql-reserved-p.print))......... | 
| 12e0 | 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 71    75 6f 74 65 2d 69 64 65 6e 74 69 66 69 65 72 20 | ......(emacsql-quote-identifier. | 
| 1300 | 70 72 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 70 72 69 6e 74 29 29 29 29 29 29 29 0a | print).............print))))))). | 
| 1320 | 0a 28 64 65 66 76 61 72 20 70 72 69 6e 74 2d 65    73 63 61 70 65 2d 63 6f 6e 74 72 6f 6c 2d 63 68 | .(defvar.print-escape-control-ch | 
| 1340 | 61 72 61 63 74 65 72 73 29 0a 0a 28 64 65 66 75    6e 20 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 | aracters)..(defun.emacsql-escape | 
| 1360 | 2d 73 63 61 6c 61 72 20 28 76 61 6c 75 65 29 0a    20 20 22 45 73 63 61 70 65 20 56 41 4c 55 45 20 | -scalar.(value)..."Escape.VALUE. | 
| 1380 | 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 53    51 4c 69 74 65 2e 22 0a 20 20 28 6c 65 74 20 28 | for.sending.to.SQLite."...(let.( | 
| 13a0 | 28 70 72 69 6e 74 2d 65 73 63 61 70 65 2d 6e 65    77 6c 69 6e 65 73 20 74 29 0a 20 20 20 20 20 20 | (print-escape-newlines.t)....... | 
| 13c0 | 20 20 28 70 72 69 6e 74 2d 65 73 63 61 70 65 2d    63 6f 6e 74 72 6f 6c 2d 63 68 61 72 61 63 74 65 | ..(print-escape-control-characte | 
| 13e0 | 72 73 20 74 29 29 0a 20 20 20 20 28 63 6f 6e 64    20 28 28 6e 75 6c 6c 20 76 61 6c 75 65 29 20 22 | rs.t)).....(cond.((null.value)." | 
| 1400 | 4e 55 4c 4c 22 29 0a 20 20 20 20 20 20 20 20 20    20 28 28 6e 75 6d 62 65 72 70 20 76 61 6c 75 65 | NULL")...........((numberp.value | 
| 1420 | 29 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69    6e 67 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 | ).(prin1-to-string.value))...... | 
| 1440 | 20 20 20 20 20 28 28 65 6d 61 63 73 71 6c 2d 71    75 6f 74 65 2d 73 63 61 6c 61 72 20 28 70 72 69 | .....((emacsql-quote-scalar.(pri | 
| 1460 | 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 76 61 6c    75 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e | n1-to-string.value))))))..(defun | 
| 1480 | 20 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d    72 61 77 20 28 76 61 6c 75 65 29 0a 20 20 22 45 | .emacsql-escape-raw.(value)..."E | 
| 14a0 | 73 63 61 70 65 20 56 41 4c 55 45 20 66 6f 72 20    73 65 6e 64 69 6e 67 20 74 6f 20 53 51 4c 69 74 | scape.VALUE.for.sending.to.SQLit | 
| 14c0 | 65 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75    6c 6c 20 76 61 6c 75 65 29 20 22 4e 55 4c 4c 22 | e."...(cond.((null.value)."NULL" | 
| 14e0 | 29 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69    6e 67 70 20 76 61 6c 75 65 29 20 28 65 6d 61 63 | ).........((stringp.value).(emac | 
| 1500 | 73 71 6c 2d 71 75 6f 74 65 2d 73 63 61 6c 61 72    20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 | sql-quote-scalar.value))........ | 
| 1520 | 20 28 28 65 72 72 6f 72 20 22 45 78 70 65 63 74    65 64 20 73 74 72 69 6e 67 20 6f 72 20 6e 69 6c | .((error."Expected.string.or.nil | 
| 1540 | 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d    61 63 73 71 6c 2d 65 73 63 61 70 65 2d 76 65 63 | "))))..(defun.emacsql-escape-vec | 
| 1560 | 74 6f 72 20 28 76 65 63 74 6f 72 29 0a 20 20 22    45 6e 63 6f 64 65 20 56 45 43 54 4f 52 20 69 6e | tor.(vector)..."Encode.VECTOR.in | 
| 1580 | 74 6f 20 61 20 53 51 4c 20 76 65 63 74 6f 72 20    73 63 61 6c 61 72 2e 22 0a 20 20 28 63 6c 2d 74 | to.a.SQL.vector.scalar."...(cl-t | 
| 15a0 | 79 70 65 63 61 73 65 20 76 65 63 74 6f 72 0a 20    20 20 20 28 6e 75 6c 6c 20 20 20 28 65 6d 61 63 | ypecase.vector.....(null...(emac | 
| 15c0 | 73 71 6c 2d 65 72 72 6f 72 20 22 45 6d 70 74 79    20 53 51 4c 20 76 65 63 74 6f 72 20 65 78 70 72 | sql-error."Empty.SQL.vector.expr | 
| 15e0 | 65 73 73 69 6f 6e 22 29 29 0a 20 20 20 20 28 6c    69 73 74 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 | ession")).....(list...(mapconcat | 
| 1600 | 20 23 27 65 6d 61 63 73 71 6c 2d 65 73 63 61 70    65 2d 76 65 63 74 6f 72 20 76 65 63 74 6f 72 20 | .#'emacsql-escape-vector.vector. | 
| 1620 | 22 2c 20 22 29 29 0a 20 20 20 20 28 76 65 63 74    6f 72 20 28 63 6f 6e 63 61 74 20 22 28 22 20 28 | ",.")).....(vector.(concat."(".( | 
| 1640 | 6d 61 70 63 6f 6e 63 61 74 20 23 27 65 6d 61 63    73 71 6c 2d 65 73 63 61 70 65 2d 73 63 61 6c 61 | mapconcat.#'emacsql-escape-scala | 
| 1660 | 72 20 76 65 63 74 6f 72 20 22 2c 20 22 29 20 22    29 22 29 29 0a 20 20 20 20 28 6f 74 68 65 72 77 | r.vector.",.").")")).....(otherw | 
| 1680 | 69 73 65 20 28 65 6d 61 63 73 71 6c 2d 65 72 72    6f 72 20 22 49 6e 76 61 6c 69 64 20 76 65 63 74 | ise.(emacsql-error."Invalid.vect | 
| 16a0 | 6f 72 20 25 53 22 20 76 65 63 74 6f 72 29 29 29    29 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 73 71 | or.%S".vector))))..(defun.emacsq | 
| 16c0 | 6c 2d 65 73 63 61 70 65 2d 66 6f 72 6d 61 74 20    28 74 68 69 6e 67 29 0a 20 20 22 45 73 63 61 70 | l-escape-format.(thing)..."Escap | 
| 16e0 | 65 20 54 48 49 4e 47 20 66 6f 72 20 75 73 65 20    61 73 20 61 20 60 66 6f 72 6d 61 74 27 20 73 70 | e.THING.for.use.as.a.`format'.sp | 
| 1700 | 65 63 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 2d    72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 | ec."...(replace-regexp-in-string | 
| 1720 | 20 22 25 22 20 22 25 25 22 20 74 68 69 6e 67 29    29 0a 0a 3b 3b 3b 20 53 63 68 65 6d 61 20 63 6f | ."%"."%%".thing))..;;;.Schema.co | 
| 1740 | 6d 70 69 6c 65 72 0a 0a 28 64 65 66 76 61 72 20    65 6d 61 63 73 71 6c 2d 74 79 70 65 2d 6d 61 70 | mpiler..(defvar.emacsql-type-map | 
| 1760 | 0a 20 20 27 28 28 69 6e 74 65 67 65 72 20 22 26    49 4e 54 45 47 45 52 22 29 0a 20 20 20 20 28 66 | ...'((integer."&INTEGER").....(f | 
| 1780 | 6c 6f 61 74 20 22 26 52 45 41 4c 22 29 0a 20 20    20 20 28 6f 62 6a 65 63 74 20 22 26 54 45 58 54 | loat."&REAL").....(object."&TEXT | 
| 17a0 | 22 29 0a 20 20 20 20 28 6e 69 6c 20 22 26 4e 4f    4e 45 22 29 29 0a 20 20 22 41 6e 20 61 6c 69 73 | ").....(nil."&NONE"))..."An.alis | 
| 17c0 | 74 20 6d 61 70 70 69 6e 67 20 45 6d 61 63 53 51    4c 20 74 79 70 65 73 20 74 6f 20 53 51 4c 20 74 | t.mapping.EmacSQL.types.to.SQL.t | 
| 17e0 | 79 70 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20    65 6d 61 63 73 71 6c 2d 2d 66 72 6f 6d 2d 6b 65 | ypes.")..(defun.emacsql--from-ke | 
| 1800 | 79 77 6f 72 64 20 28 6b 65 79 77 6f 72 64 29 0a    20 20 22 43 6f 6e 76 65 72 74 20 4b 45 59 57 4f | yword.(keyword)..."Convert.KEYWO | 
| 1820 | 52 44 20 69 6e 74 6f 20 53 51 4c 2e 22 0a 20 20    28 6c 65 74 20 28 28 6e 61 6d 65 20 28 73 75 62 | RD.into.SQL."...(let.((name.(sub | 
| 1840 | 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e    61 6d 65 20 6b 65 79 77 6f 72 64 29 20 31 29 29 | string.(symbol-name.keyword).1)) | 
| 1860 | 29 0a 20 20 20 20 28 75 70 63 61 73 65 20 28 72    65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e | ).....(upcase.(replace-regexp-in | 
| 1880 | 2d 73 74 72 69 6e 67 20 22 2d 22 20 22 20 22 20    6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e | -string."-".".".name))))..(defun | 
| 18a0 | 20 65 6d 61 63 73 71 6c 2d 2d 70 72 65 70 61 72    65 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 63 | .emacsql--prepare-constraints.(c | 
| 18c0 | 6f 6e 73 74 72 61 69 6e 74 73 29 0a 20 20 22 43    6f 6d 70 69 6c 65 20 43 4f 4e 53 54 52 41 49 4e | onstraints)..."Compile.CONSTRAIN | 
| 18e0 | 54 53 20 69 6e 74 6f 20 61 20 70 61 72 74 69 61    6c 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e | TS.into.a.partial.SQL.expression | 
| 1900 | 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a    20 20 20 23 27 69 64 65 6e 74 69 74 79 0a 20 20 | ."...(mapconcat....#'identity... | 
| 1920 | 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 6f    6e 73 74 72 61 69 6e 74 20 69 6e 20 63 6f 6e 73 | .(cl-loop.for.constraint.in.cons | 
| 1940 | 74 72 61 69 6e 74 73 20 63 6f 6c 6c 65 63 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d | traints.collect.............(cl- | 
| 1960 | 74 79 70 65 63 61 73 65 20 63 6f 6e 73 74 72 61    69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | typecase.constraint............. | 
| 1980 | 20 20 28 6e 75 6c 6c 20 22 4e 55 4c 4c 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b | ..(null."NULL")...............(k | 
| 19a0 | 65 79 77 6f 72 64 20 28 65 6d 61 63 73 71 6c 2d    2d 66 72 6f 6d 2d 6b 65 79 77 6f 72 64 20 63 6f | eyword.(emacsql--from-keyword.co | 
| 19c0 | 6e 73 74 72 61 69 6e 74 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c | nstraint))...............(symbol | 
| 19e0 | 20 28 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65    2d 69 64 65 6e 74 69 66 69 65 72 20 63 6f 6e 73 | .(emacsql-escape-identifier.cons | 
| 1a00 | 74 72 61 69 6e 74 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 76 65 63 74 6f 72 20 28 | traint))...............(vector.( | 
| 1a20 | 66 6f 72 6d 61 74 20 22 28 25 73 29 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | format."(%s)"................... | 
| 1a40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70    63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 | ............(mapconcat.......... | 
| 1a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 23 27 65 6d 61 63 73 71 6c 2d | ......................#'emacsql- | 
| 1a80 | 65 73 63 61 70 65 2d 69 64 65 6e 74 69 66 69 65    72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | escape-identifier............... | 
| 1aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 63 6f 6e 73 74 72 61 69 6e 74 0a 20 20 20 20 | .................constraint..... | 
| 1ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 22 2c 20 22 29 | ...........................",.") | 
| 1ae0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 | ))...............(list.(format." | 
| 1b00 | 28 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (%s)"........................... | 
| 1b20 | 20 20 28 63 61 72 20 28 65 6d 61 63 73 71 6c 2d    2d 2a 65 78 70 72 20 63 6f 6e 73 74 72 61 69 6e | ..(car.(emacsql--*expr.constrain | 
| 1b40 | 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6f 74 68 65 72 77 69 73 65 0a 20 | t))))...............(otherwise.. | 
| 1b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d 73 63 | ..............(emacsql-escape-sc | 
| 1b80 | 61 6c 61 72 20 63 6f 6e 73 74 72 61 69 6e 74 29    29 29 29 0a 20 20 20 22 20 22 29 29 0a 0a 28 64 | alar.constraint))))...."."))..(d | 
| 1ba0 | 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 2d 70 72    65 70 61 72 65 2d 63 6f 6c 75 6d 6e 20 28 63 6f | efun.emacsql--prepare-column.(co | 
| 1bc0 | 6c 75 6d 6e 29 0a 20 20 22 43 6f 6e 76 65 72 74    20 43 4f 4c 55 4d 4e 20 69 6e 74 6f 20 61 20 70 | lumn)..."Convert.COLUMN.into.a.p | 
| 1be0 | 61 72 74 69 61 6c 20 53 51 4c 20 73 74 72 69 6e    67 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 | artial.SQL.string."...(mapconcat | 
| 1c00 | 0a 20 20 20 23 27 69 64 65 6e 74 69 74 79 0a 20    20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 | ....#'identity....(cl-etypecase. | 
| 1c20 | 63 6f 6c 75 6d 6e 0a 20 20 20 20 20 28 73 79 6d    62 6f 6c 20 28 6c 69 73 74 20 28 65 6d 61 63 73 | column......(symbol.(list.(emacs | 
| 1c40 | 71 6c 2d 65 73 63 61 70 65 2d 69 64 65 6e 74 69    66 69 65 72 20 63 6f 6c 75 6d 6e 29 0a 20 20 20 | ql-escape-identifier.column).... | 
| 1c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 61 64 72 20 28 61 73 73 6f 63 20 6e 69 6c | ................(cadr.(assoc.nil | 
| 1c80 | 20 65 6d 61 63 73 71 6c 2d 74 79 70 65 2d 6d 61    70 29 29 29 29 0a 20 20 20 20 20 28 6c 69 73 74 | .emacsql-type-map))))......(list | 
| 1ca0 | 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69    6e 67 2d 62 69 6e 64 20 28 6e 61 6d 65 20 2e 20 | .(cl-destructuring-bind.(name... | 
| 1cc0 | 63 6f 6e 73 74 72 61 69 6e 74 73 29 20 63 6f 6c    75 6d 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | constraints).column............. | 
| 1ce0 | 20 28 63 6c 2d 64 65 6c 65 74 65 2d 69 66 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | .(cl-delete-if...............(la | 
| 1d00 | 6d 62 64 61 20 28 73 29 20 28 7a 65 72 6f 70 20    28 6c 65 6e 67 74 68 20 73 29 29 29 0a 20 20 20 | mbda.(s).(zerop.(length.s))).... | 
| 1d20 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74    20 28 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 | ...........(list.(emacsql-escape | 
| 1d40 | 2d 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -identifier.name)............... | 
| 1d60 | 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65    72 20 28 63 61 72 20 63 6f 6e 73 74 72 61 69 6e | ......(if.(member.(car.constrain | 
| 1d80 | 74 73 29 20 27 28 69 6e 74 65 67 65 72 20 66 6c    6f 61 74 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 | ts).'(integer.float.object)).... | 
| 1da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 63 61 64 72 20 28 61 73 73 6f | .....................(cadr.(asso | 
| 1dc0 | 63 20 28 70 6f 70 20 63 6f 6e 73 74 72 61 69 6e    74 73 29 20 65 6d 61 63 73 71 6c 2d 74 79 70 65 | c.(pop.constraints).emacsql-type | 
| 1de0 | 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 | -map)).......................(ca | 
| 1e00 | 64 72 20 28 61 73 73 6f 63 20 6e 69 6c 20 65 6d    61 63 73 71 6c 2d 74 79 70 65 2d 6d 61 70 29 29 | dr.(assoc.nil.emacsql-type-map)) | 
| 1e20 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 2d | ).....................(emacsql-- | 
| 1e40 | 70 72 65 70 61 72 65 2d 63 6f 6e 73 74 72 61 69    6e 74 73 20 63 6f 6e 73 74 72 61 69 6e 74 73 29 | prepare-constraints.constraints) | 
| 1e60 | 29 29 29 29 29 0a 20 20 20 22 20 22 29 29 0a 0a    28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 70 | )))))...."."))..(defun.emacsql-p | 
| 1e80 | 72 65 70 61 72 65 2d 73 63 68 65 6d 61 20 28 73    63 68 65 6d 61 29 0a 20 20 22 43 6f 6d 70 69 6c | repare-schema.(schema)..."Compil | 
| 1ea0 | 65 20 53 43 48 45 4d 41 20 69 6e 74 6f 20 61 20    53 51 4c 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 | e.SCHEMA.into.a.SQL.string."...( | 
| 1ec0 | 69 66 20 28 76 65 63 74 6f 72 70 20 73 63 68 65    6d 61 29 0a 20 20 20 20 20 20 28 65 6d 61 63 73 | if.(vectorp.schema).......(emacs | 
| 1ee0 | 71 6c 2d 70 72 65 70 61 72 65 2d 73 63 68 65 6d    61 20 28 6c 69 73 74 20 73 63 68 65 6d 61 29 29 | ql-prepare-schema.(list.schema)) | 
| 1f00 | 0a 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63    74 75 72 69 6e 67 2d 62 69 6e 64 20 28 63 6f 6c | .....(cl-destructuring-bind.(col | 
| 1f20 | 75 6d 6e 73 20 2e 20 63 6f 6e 73 74 72 61 69 6e    74 73 29 20 73 63 68 65 6d 61 0a 20 20 20 20 20 | umns...constraints).schema...... | 
| 1f40 | 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20    20 20 20 23 27 69 64 65 6e 74 69 74 79 0a 20 20 | .(mapconcat........#'identity... | 
| 1f60 | 20 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 20 20    20 20 20 20 28 6d 61 70 63 61 72 20 23 27 65 6d | .....(nconc.........(mapcar.#'em | 
| 1f80 | 61 63 73 71 6c 2d 2d 70 72 65 70 61 72 65 2d 63    6f 6c 75 6d 6e 20 63 6f 6c 75 6d 6e 73 29 0a 20 | acsql--prepare-column.columns).. | 
| 1fa0 | 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23    27 65 6d 61 63 73 71 6c 2d 2d 70 72 65 70 61 72 | .......(mapcar.#'emacsql--prepar | 
| 1fc0 | 65 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 63 6f    6e 73 74 72 61 69 6e 74 73 29 29 0a 20 20 20 20 | e-constraints.constraints))..... | 
| 1fe0 | 20 20 20 22 2c 20 22 29 29 29 29 0a 0a 3b 3b 3b    20 53 74 61 74 65 6d 65 6e 74 20 63 6f 6d 70 69 | ...",."))))..;;;.Statement.compi | 
| 2000 | 6c 61 74 69 6f 6e 0a 0a 28 64 65 66 76 61 72 20    65 6d 61 63 73 71 6c 2d 70 72 65 70 61 72 65 2d | lation..(defvar.emacsql-prepare- | 
| 2020 | 63 61 63 68 65 20 28 6d 61 6b 65 2d 68 61 73 68    2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 | cache.(make-hash-table.:test.'eq | 
| 2040 | 75 61 6c 20 3a 77 65 61 6b 6e 65 73 73 20 27 6b    65 79 29 0a 20 20 22 43 61 63 68 65 20 75 73 65 | ual.:weakness.'key)..."Cache.use | 
| 2060 | 64 20 74 6f 20 6d 65 6d 6f 69 7a 65 20 60 65 6d    61 63 73 71 6c 2d 70 72 65 70 61 72 65 27 2e 22 | d.to.memoize.`emacsql-prepare'." | 
| 2080 | 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 61 63 73    71 6c 2d 2d 76 61 72 73 20 28 29 0a 20 20 22 55 | )..(defvar.emacsql--vars.()..."U | 
| 20a0 | 73 65 64 20 77 69 74 68 69 6e 20 60 65 6d 61 63    73 71 6c 2d 77 69 74 68 2d 70 61 72 61 6d 73 27 | sed.within.`emacsql-with-params' | 
| 20c0 | 20 74 6f 20 63 6f 6c 6c 65 63 74 20 70 61 72 61    6d 65 74 65 72 73 2e 22 29 0a 0a 28 64 65 66 75 | .to.collect.parameters.")..(defu | 
| 20e0 | 6e 20 65 6d 61 63 73 71 6c 2d 73 71 6c 2d 70 20    28 74 68 69 6e 67 29 0a 20 20 22 52 65 74 75 72 | n.emacsql-sql-p.(thing)..."Retur | 
| 2100 | 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 54 48 49    4e 47 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 61 20 | n.non-nil.if.THING.looks.like.a. | 
| 2120 | 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65    6e 74 2e 22 0a 20 20 28 61 6e 64 20 28 76 65 63 | prepared.statement."...(and.(vec | 
| 2140 | 74 6f 72 70 20 74 68 69 6e 67 29 20 28 3e 20 28    6c 65 6e 67 74 68 20 74 68 69 6e 67 29 20 30 29 | torp.thing).(>.(length.thing).0) | 
| 2160 | 20 28 6b 65 79 77 6f 72 64 70 20 28 61 72 65 66    20 74 68 69 6e 67 20 30 29 29 29 29 0a 0a 28 64 | .(keywordp.(aref.thing.0))))..(d | 
| 2180 | 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 70 61 72    61 6d 20 28 74 68 69 6e 67 29 0a 20 20 22 52 65 | efun.emacsql-param.(thing)..."Re | 
| 21a0 | 74 75 72 6e 20 74 68 65 20 69 6e 64 65 78 20 61    6e 64 20 74 79 70 65 20 6f 66 20 54 48 49 4e 47 | turn.the.index.and.type.of.THING | 
| 21c0 | 2c 20 6f 72 20 6e 69 6c 20 69 66 20 54 48 49 4e    47 20 69 73 20 6e 6f 74 20 61 20 70 61 72 61 6d | ,.or.nil.if.THING.is.not.a.param | 
| 21e0 | 65 74 65 72 2e 0a 41 20 70 61 72 61 6d 65 74 65    72 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 74 68 | eter..A.parameter.is.a.symbol.th | 
| 2200 | 61 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 24 69    31 2c 20 24 73 32 2c 20 24 76 33 2c 20 65 74 63 | at.looks.like.$i1,.$s2,.$v3,.etc | 
| 2220 | 2e 20 54 68 65 0a 6c 65 74 74 65 72 20 72 65 66    65 72 73 20 74 6f 20 74 68 65 20 74 79 70 65 3a | ..The.letter.refers.to.the.type: | 
| 2240 | 20 69 64 65 6e 74 69 66 69 65 72 20 28 69 29 2c    20 73 63 61 6c 61 72 20 28 73 29 2c 0a 76 65 63 | .identifier.(i),.scalar.(s),.vec | 
| 2260 | 74 6f 72 20 28 76 29 2c 20 72 61 77 20 73 74 72    69 6e 67 20 28 72 29 2c 20 73 63 68 65 6d 61 20 | tor.(v),.raw.string.(r),.schema. | 
| 2280 | 28 53 29 2e 22 0a 20 20 28 61 6e 64 20 28 73 79    6d 62 6f 6c 70 20 74 68 69 6e 67 29 0a 20 20 20 | (S)."...(and.(symbolp.thing).... | 
| 22a0 | 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20    28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 68 69 | ....(let.((name.(symbol-name.thi | 
| 22c0 | 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 28    61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 | ng)))..........(and.(string-matc | 
| 22e0 | 68 2d 70 20 22 5e 5c 5c 24 5b 69 73 76 72 53 5d    5b 30 2d 39 5d 2b 24 22 20 6e 61 6d 65 29 0a 20 | h-p."^\\$[isvrS][0-9]+$".name).. | 
| 2300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f    6e 73 20 28 31 2d 20 28 72 65 61 64 20 28 73 75 | .............(cons.(1-.(read.(su | 
| 2320 | 62 73 74 72 69 6e 67 20 6e 61 6d 65 20 32 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bstring.name.2)))............... | 
| 2340 | 20 20 20 20 20 20 28 63 6c 2d 65 63 61 73 65 20    28 61 72 65 66 20 6e 61 6d 65 20 31 29 0a 20 20 | ......(cl-ecase.(aref.name.1)... | 
| 2360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 3f 69 20 3a 69 64 65 6e 74 69 66 | ....................(?i.:identif | 
| 2380 | 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3f 73 20 3a | ier).......................(?s.: | 
| 23a0 | 73 63 61 6c 61 72 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f | scalar).......................(? | 
| 23c0 | 76 20 3a 76 65 63 74 6f 72 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | v.:vector)...................... | 
| 23e0 | 20 28 3f 72 20 3a 72 61 77 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(?r.:raw)...................... | 
| 2400 | 20 28 3f 53 20 3a 73 63 68 65 6d 61 29 29 29 29    29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 | .(?S.:schema)))))))..(defmacro.e | 
| 2420 | 6d 61 63 73 71 6c 2d 77 69 74 68 2d 70 61 72 61    6d 73 20 28 70 72 65 66 69 78 20 26 72 65 73 74 | macsql-with-params.(prefix.&rest | 
| 2440 | 20 62 6f 64 79 29 0a 20 20 22 45 76 61 6c 75 61    74 65 20 42 4f 44 59 2c 20 63 6f 6c 6c 65 63 74 | .body)..."Evaluate.BODY,.collect | 
| 2460 | 69 6e 67 20 70 61 72 61 6d 65 74 65 72 73 2e 0a    50 72 6f 76 69 64 65 64 20 6c 6f 63 61 6c 20 66 | ing.parameters..Provided.local.f | 
| 2480 | 75 6e 63 74 69 6f 6e 73 3a 20 60 70 61 72 61 6d    27 2c 20 60 69 64 65 6e 74 69 66 69 65 72 27 2c | unctions:.`param',.`identifier', | 
| 24a0 | 20 60 73 63 61 6c 61 72 27 2c 20 60 72 61 77 27    2c 0a 60 73 76 65 63 74 6f 72 27 2c 20 60 65 78 | .`scalar',.`raw',.`svector',.`ex | 
| 24c0 | 70 72 27 2c 20 60 73 75 62 73 71 6c 27 2c 20 61    6e 64 20 60 63 6f 6d 62 69 6e 65 27 2e 20 20 42 | pr',.`subsql',.and.`combine'...B | 
| 24e0 | 4f 44 59 20 73 68 6f 75 6c 64 20 72 65 74 75 72    6e 20 61 0a 73 74 72 69 6e 67 2c 20 77 68 69 63 | ODY.should.return.a.string,.whic | 
| 2500 | 68 20 77 69 6c 6c 20 62 65 20 63 6f 6d 62 69 6e    65 64 20 77 69 74 68 20 76 61 72 69 61 62 6c 65 | h.will.be.combined.with.variable | 
| 2520 | 20 64 65 66 69 6e 69 74 69 6f 6e 73 2e 22 0a 20    20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e | .definitions."...(declare.(inden | 
| 2540 | 74 20 31 29 29 0a 20 20 60 28 6c 65 74 20 28 28    65 6d 61 63 73 71 6c 2d 2d 76 61 72 73 20 28 29 | t.1))...`(let.((emacsql--vars.() | 
| 2560 | 29 29 0a 20 20 20 20 20 28 63 6c 2d 66 6c 65 74    2a 20 28 28 63 6f 6d 62 69 6e 65 20 28 70 72 65 | ))......(cl-flet*.((combine.(pre | 
| 2580 | 70 61 72 65 64 29 20 28 65 6d 61 63 73 71 6c 2d    2d 2a 63 6f 6d 62 69 6e 65 20 70 72 65 70 61 72 | pared).(emacsql--*combine.prepar | 
| 25a0 | 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 61 72 61 6d 20 28 74 68 69 | ed)).................(param.(thi | 
| 25c0 | 6e 67 29 20 28 65 6d 61 63 73 71 6c 2d 2d 21 70    61 72 61 6d 20 74 68 69 6e 67 29 29 0a 20 20 20 | ng).(emacsql--!param.thing)).... | 
| 25e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 64    65 6e 74 69 66 69 65 72 20 28 74 68 69 6e 67 29 | .............(identifier.(thing) | 
| 2600 | 20 28 65 6d 61 63 73 71 6c 2d 2d 21 70 61 72 61    6d 20 74 68 69 6e 67 20 3a 69 64 65 6e 74 69 66 | .(emacsql--!param.thing.:identif | 
| 2620 | 69 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 73 63 61 6c 61 72 20 28 74 | ier)).................(scalar.(t | 
| 2640 | 68 69 6e 67 29 20 28 65 6d 61 63 73 71 6c 2d 2d    21 70 61 72 61 6d 20 74 68 69 6e 67 20 3a 73 63 | hing).(emacsql--!param.thing.:sc | 
| 2660 | 61 6c 61 72 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 72 61 77 20 28 74 68 69 | alar)).................(raw.(thi | 
| 2680 | 6e 67 29 20 28 65 6d 61 63 73 71 6c 2d 2d 21 70    61 72 61 6d 20 74 68 69 6e 67 20 3a 72 61 77 29 | ng).(emacsql--!param.thing.:raw) | 
| 26a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 76 65 63 74 6f 72 20 28 74 68 69 6e | ).................(svector.(thin | 
| 26c0 | 67 29 20 28 63 6f 6d 62 69 6e 65 20 28 65 6d 61    63 73 71 6c 2d 2d 2a 76 65 63 74 6f 72 20 74 68 | g).(combine.(emacsql--*vector.th | 
| 26e0 | 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 78 70 72 20 28 74 68 | ing))).................(expr.(th | 
| 2700 | 69 6e 67 29 20 28 63 6f 6d 62 69 6e 65 20 28 65    6d 61 63 73 71 6c 2d 2d 2a 65 78 70 72 20 74 68 | ing).(combine.(emacsql--*expr.th | 
| 2720 | 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 75 62 73 71 6c 20 28 | ing))).................(subsql.( | 
| 2740 | 74 68 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | thing)...................(format | 
| 2760 | 20 22 28 25 73 29 22 20 28 63 6f 6d 62 69 6e 65    20 28 65 6d 61 63 73 71 6c 2d 70 72 65 70 61 72 | ."(%s)".(combine.(emacsql-prepar | 
| 2780 | 65 20 74 68 69 6e 67 29 29 29 29 29 0a 20 20 20    20 20 20 20 28 63 6f 6e 73 20 28 63 6f 6e 63 61 | e.thing)))))........(cons.(conca | 
| 27a0 | 74 20 2c 70 72 65 66 69 78 20 28 70 72 6f 67 6e    20 2c 40 62 6f 64 79 29 29 20 65 6d 61 63 73 71 | t.,prefix.(progn.,@body)).emacsq | 
| 27c0 | 6c 2d 2d 76 61 72 73 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 65 6d 61 63 73 71 6c 2d 2d 21 70 61 | l--vars))))..(defun.emacsql--!pa | 
| 27e0 | 72 61 6d 20 28 74 68 69 6e 67 20 26 6f 70 74 69    6f 6e 61 6c 20 6b 69 6e 64 29 0a 20 20 22 50 61 | ram.(thing.&optional.kind)..."Pa | 
| 2800 | 72 73 65 2c 20 65 73 63 61 70 65 2c 20 61 6e 64    20 73 74 6f 72 65 20 54 48 49 4e 47 2e 0a 49 66 | rse,.escape,.and.store.THING..If | 
| 2820 | 20 6f 70 74 69 6f 6e 61 6c 20 4b 49 4e 44 20 69    73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c | .optional.KIND.is.not.specified, | 
| 2840 | 20 74 68 65 6e 20 74 72 79 20 74 6f 20 67 75 65    73 73 20 69 74 2e 0a 4f 6e 6c 79 20 75 73 65 20 | .then.try.to.guess.it..Only.use. | 
| 2860 | 77 69 74 68 69 6e 20 60 65 6d 61 63 73 71 6c 2d    77 69 74 68 2d 70 61 72 61 6d 73 27 21 22 0a 20 | within.`emacsql-with-params'!".. | 
| 2880 | 20 28 63 6c 2d 66 6c 65 74 20 28 28 63 68 65 63    6b 20 28 70 61 72 61 6d 29 0a 20 20 20 20 20 20 | .(cl-flet.((check.(param)....... | 
| 28a0 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61    6e 64 20 6b 69 6e 64 20 28 6e 6f 74 20 28 65 71 | ........(when.(and.kind.(not.(eq | 
| 28c0 | 20 6b 69 6e 64 20 28 63 64 72 20 70 61 72 61 6d    29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .kind.(cdr.param))))............ | 
| 28e0 | 20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 65 72    72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....(emacsql-error............. | 
| 2900 | 20 20 20 20 20 22 49 6e 76 61 6c 69 64 20 70 61    72 61 6d 65 74 65 72 20 74 79 70 65 20 25 73 2c | ....."Invalid.parameter.type.%s, | 
| 2920 | 20 65 78 70 65 63 74 69 6e 67 20 25 73 22 20 74    68 69 6e 67 20 6b 69 6e 64 29 29 29 29 0a 20 20 | .expecting.%s".thing.kind))))... | 
| 2940 | 20 20 28 6c 65 74 20 28 28 70 61 72 61 6d 20 28    65 6d 61 63 73 71 6c 2d 70 61 72 61 6d 20 74 68 | ..(let.((param.(emacsql-param.th | 
| 2960 | 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 69 66    20 28 6e 75 6c 6c 20 70 61 72 61 6d 29 0a 20 20 | ing))).......(if.(null.param)... | 
| 2980 | 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c    2d 65 73 63 61 70 65 2d 66 6f 72 6d 61 74 0a 20 | ........(emacsql-escape-format.. | 
| 29a0 | 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6b 69    6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(if.kind.............. | 
| 29c0 | 20 20 28 63 6c 2d 63 61 73 65 20 6b 69 6e 64 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(cl-case.kind................. | 
| 29e0 | 20 28 3a 69 64 65 6e 74 69 66 69 65 72 20 28 65    6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d 69 64 | .(:identifier.(emacsql-escape-id | 
| 2a00 | 65 6e 74 69 66 69 65 72 20 74 68 69 6e 67 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | entifier.thing))................ | 
| 2a20 | 20 20 28 3a 73 63 61 6c 61 72 20 28 65 6d 61 63    73 71 6c 2d 65 73 63 61 70 65 2d 73 63 61 6c 61 | ..(:scalar.(emacsql-escape-scala | 
| 2a40 | 72 20 74 68 69 6e 67 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 76 65 63 | r.thing))..................(:vec | 
| 2a60 | 74 6f 72 20 28 65 6d 61 63 73 71 6c 2d 65 73 63    61 70 65 2d 76 65 63 74 6f 72 20 74 68 69 6e 67 | tor.(emacsql-escape-vector.thing | 
| 2a80 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 3a 72 61 77 20 28 65 6d 61 63 73 | ))..................(:raw.(emacs | 
| 2aa0 | 71 6c 2d 65 73 63 61 70 65 2d 72 61 77 20 74 68    69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ql-escape-raw.thing))........... | 
| 2ac0 | 20 20 20 20 20 20 20 28 3a 73 63 68 65 6d 61 20    28 65 6d 61 63 73 71 6c 2d 70 72 65 70 61 72 65 | .......(:schema.(emacsql-prepare | 
| 2ae0 | 2d 73 63 68 65 6d 61 20 74 68 69 6e 67 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | -schema.thing)))..............(i | 
| 2b00 | 66 20 28 61 6e 64 20 28 6e 6f 74 20 28 6e 75 6c    6c 20 74 68 69 6e 67 29 29 0a 20 20 20 20 20 20 | f.(and.(not.(null.thing))....... | 
| 2b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6e 6f 74 20 28 6b 65 79 77 6f 72 64 70 20 74 | ................(not.(keywordp.t | 
| 2b40 | 68 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 | hing)).......................(sy | 
| 2b60 | 6d 62 6f 6c 70 20 74 68 69 6e 67 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | mbolp.thing))..................( | 
| 2b80 | 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d 69    64 65 6e 74 69 66 69 65 72 20 74 68 69 6e 67 29 | emacsql-escape-identifier.thing) | 
| 2ba0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d | ................(emacsql-escape- | 
| 2bc0 | 73 63 61 6c 61 72 20 74 68 69 6e 67 29 29 29 29    0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 | scalar.thing)))).........(prog1. | 
| 2be0 | 28 69 66 20 28 65 71 20 28 63 64 72 20 70 61 72    61 6d 29 20 3a 73 63 68 65 6d 61 29 20 22 28 25 | (if.(eq.(cdr.param).:schema)."(% | 
| 2c00 | 73 29 22 20 22 25 73 22 29 0a 20 20 20 20 20 20    20 20 20 20 28 63 68 65 63 6b 20 70 61 72 61 6d | s)"."%s")...........(check.param | 
| 2c20 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 65 6d 61 63 73 71 6c 2d 2d 76 61 72 73 20 | )...........(setq.emacsql--vars. | 
| 2c40 | 28 6e 63 6f 6e 63 20 65 6d 61 63 73 71 6c 2d 2d    76 61 72 73 20 28 6c 69 73 74 20 70 61 72 61 6d | (nconc.emacsql--vars.(list.param | 
| 2c60 | 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 65 6d 61 63 73 71 6c 2d 2d 2a 76 65 63 74 6f | ))))))))..(defun.emacsql--*vecto | 
| 2c80 | 72 20 28 76 65 63 74 6f 72 29 0a 20 20 22 50 72    65 70 61 72 65 20 56 45 43 54 4f 52 2e 22 0a 20 | r.(vector)..."Prepare.VECTOR.".. | 
| 2ca0 | 20 28 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d 70    61 72 61 6d 73 20 22 22 0a 20 20 20 20 28 63 6c | .(emacsql-with-params."".....(cl | 
| 2cc0 | 2d 74 79 70 65 63 61 73 65 20 76 65 63 74 6f 72    0a 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 | -typecase.vector.......(symbol.( | 
| 2ce0 | 65 6d 61 63 73 71 6c 2d 2d 21 70 61 72 61 6d 20    76 65 63 74 6f 72 20 3a 76 65 63 74 6f 72 29 29 | emacsql--!param.vector.:vector)) | 
| 2d00 | 0a 20 20 20 20 20 20 28 6c 69 73 74 20 28 6d 61    70 63 6f 6e 63 61 74 20 23 27 73 76 65 63 74 6f | .......(list.(mapconcat.#'svecto | 
| 2d20 | 72 20 76 65 63 74 6f 72 20 22 2c 20 22 29 29 0a    20 20 20 20 20 20 28 76 65 63 74 6f 72 20 28 66 | r.vector.",.")).......(vector.(f | 
| 2d40 | 6f 72 6d 61 74 20 22 28 25 73 29 22 20 28 6d 61    70 63 6f 6e 63 61 74 20 23 27 73 63 61 6c 61 72 | ormat."(%s)".(mapconcat.#'scalar | 
| 2d60 | 20 76 65 63 74 6f 72 20 22 2c 20 22 29 29 29 0a    20 20 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 | .vector.",."))).......(otherwise | 
| 2d80 | 20 28 65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 20    22 49 6e 76 61 6c 69 64 20 76 65 63 74 6f 72 3a | .(emacsql-error."Invalid.vector: | 
| 2da0 | 20 25 53 22 20 76 65 63 74 6f 72 29 29 29 29 29    0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d 61 63 | .%S".vector)))))..(defmacro.emac | 
| 2dc0 | 73 71 6c 2d 2d 67 65 6e 65 72 61 74 65 2d 6f 70    2d 6c 6f 6f 6b 75 70 2d 64 65 66 75 6e 20 28 6e | sql--generate-op-lookup-defun.(n | 
| 2de0 | 61 6d 65 20 6f 70 65 72 61 74 6f 72 2d 70 72 65    63 65 64 65 6e 63 65 2d 67 72 6f 75 70 73 29 0a | ame.operator-precedence-groups). | 
| 2e00 | 20 20 22 47 65 6e 65 72 61 74 65 20 66 75 6e 63    74 69 6f 6e 20 74 6f 20 6c 6f 6f 6b 20 75 70 20 | .."Generate.function.to.look.up. | 
| 2e20 | 70 72 65 64 65 66 69 6e 65 64 20 53 51 4c 20 6f    70 65 72 61 74 6f 72 20 6d 65 74 61 64 61 74 61 | predefined.SQL.operator.metadata | 
| 2e40 | 2e 0a 0a 54 68 65 20 67 65 6e 65 72 61 74 65 64    20 66 75 6e 63 74 69 6f 6e 20 69 73 20 62 6f 75 | ...The.generated.function.is.bou | 
| 2e60 | 6e 64 20 74 6f 20 4e 41 4d 45 20 61 6e 64 20 61    63 63 65 70 74 73 20 74 77 6f 0a 61 72 67 75 6d | nd.to.NAME.and.accepts.two.argum | 
| 2e80 | 65 6e 74 73 2c 20 4f 50 45 52 41 54 4f 52 2d 4e    41 4d 45 20 61 6e 64 20 4f 50 45 52 41 54 4f 52 | ents,.OPERATOR-NAME.and.OPERATOR | 
| 2ea0 | 2d 41 52 47 55 4d 45 4e 54 2d 43 4f 55 4e 54 2e    0a 4f 50 45 52 41 54 4f 52 2d 50 52 45 43 45 44 | -ARGUMENT-COUNT..OPERATOR-PRECED | 
| 2ec0 | 45 4e 43 45 2d 47 52 4f 55 50 53 20 73 68 6f 75    6c 64 20 62 65 20 61 20 6e 75 6d 62 65 72 20 6f | ENCE-GROUPS.should.be.a.number.o | 
| 2ee0 | 66 20 6c 69 73 74 73 20 63 6f 6e 74 61 69 6e 69    6e 67 0a 6f 70 65 72 61 74 6f 72 73 20 67 72 6f | f.lists.containing.operators.gro | 
| 2f00 | 75 70 65 64 20 62 79 20 6f 70 65 72 61 74 6f 72    20 70 72 65 63 65 64 65 6e 63 65 20 28 69 6e 20 | uped.by.operator.precedence.(in. | 
| 2f20 | 6f 72 64 65 72 20 6f 66 20 70 72 65 63 65 64 65    6e 63 65 0a 66 72 6f 6d 20 68 69 67 68 65 73 74 | order.of.precedence.from.highest | 
| 2f40 | 20 74 6f 20 6c 6f 77 65 73 74 29 2e 20 20 41 20    73 69 6e 67 6c 65 20 6f 70 65 72 61 74 6f 72 20 | .to.lowest)...A.single.operator. | 
| 2f60 | 69 73 20 72 65 70 72 65 73 65 6e 74 65 64 20 62    79 20 61 0a 6c 69 73 74 20 6f 66 20 61 74 20 6c | is.represented.by.a.list.of.at.l | 
| 2f80 | 65 61 73 74 20 74 77 6f 20 65 6c 65 6d 65 6e 74    73 3a 20 6f 70 65 72 61 74 6f 72 20 6e 61 6d 65 | east.two.elements:.operator.name | 
| 2fa0 | 20 28 73 79 6d 62 6f 6c 29 20 61 6e 64 0a 6f 70    65 72 61 74 6f 72 20 61 72 69 74 79 20 28 3a 75 | .(symbol).and.operator.arity.(:u | 
| 2fc0 | 6e 61 72 79 20 6f 72 20 3a 62 69 6e 61 72 79 29    2e 20 20 4f 70 74 69 6f 6e 61 6c 6c 79 20 61 20 | nary.or.:binary)...Optionally.a. | 
| 2fe0 | 63 75 73 74 6f 6d 0a 65 78 70 72 65 73 73 69 6f    6e 20 63 61 6e 20 62 65 20 69 6e 63 6c 75 64 65 | custom.expression.can.be.include | 
| 3000 | 64 2c 20 77 68 69 63 68 20 64 65 66 69 6e 65 73    20 68 6f 77 20 74 68 65 20 6f 70 65 72 61 74 6f | d,.which.defines.how.the.operato | 
| 3020 | 72 20 69 73 0a 65 78 70 61 6e 64 65 64 20 69 6e    74 6f 20 61 6e 20 53 51 4c 20 65 78 70 72 65 73 | r.is.expanded.into.an.SQL.expres | 
| 3040 | 73 69 6f 6e 20 28 74 68 65 72 65 20 61 72 65 20    74 77 6f 20 64 65 66 61 75 6c 74 73 2c 20 6f 6e | sion.(there.are.two.defaults,.on | 
| 3060 | 65 20 66 6f 72 0a 3a 75 6e 61 72 79 20 61 6e 64    20 6f 6e 65 20 66 6f 72 20 3a 62 69 6e 61 72 79 | e.for.:unary.and.one.for.:binary | 
| 3080 | 20 6f 70 65 72 61 74 6f 72 73 29 2e 0a 0a 41 6e    20 65 78 61 6d 70 6c 65 20 66 6f 72 20 4f 50 45 | .operators)...An.example.for.OPE | 
| 30a0 | 52 41 54 4f 52 2d 50 52 45 43 45 44 45 4e 43 45    2d 47 52 4f 55 50 53 3a 0a 5c 28 28 28 2b 20 3a | RATOR-PRECEDENCE-GROUPS:.\(((+.: | 
| 30c0 | 75 6e 61 72 79 20 28 5c 22 2b 5c 22 20 3a 6f 70    65 72 61 6e 64 29 29 20 28 2d 20 3a 75 6e 61 72 | unary.(\"+\".:operand)).(-.:unar | 
| 30e0 | 79 20 28 5c 22 2d 5c 22 20 3a 6f 70 65 72 61 6e    64 29 29 29 0a 20 28 28 2b 20 3a 62 69 6e 61 72 | y.(\"-\".:operand)))..((+.:binar | 
| 3100 | 79 29 20 28 2d 20 3a 62 69 6e 61 72 79 29 29 29    22 0a 20 20 60 28 64 65 66 75 6e 20 2c 6e 61 6d | y).(-.:binary)))"...`(defun.,nam | 
| 3120 | 65 20 28 6f 70 65 72 61 74 6f 72 2d 6e 61 6d 65    20 6f 70 65 72 61 74 6f 72 2d 61 72 67 75 6d 65 | e.(operator-name.operator-argume | 
| 3140 | 6e 74 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 22    4c 6f 6f 6b 20 75 70 20 70 72 65 64 65 66 69 6e | nt-count)......"Look.up.predefin | 
| 3160 | 65 64 20 53 51 4c 20 6f 70 65 72 61 74 6f 72 20    6d 65 74 61 64 61 74 61 2e 0a 53 65 65 20 60 65 | ed.SQL.operator.metadata..See.`e | 
| 3180 | 6d 61 63 73 71 6c 2d 2d 67 65 6e 65 72 61 74 65    2d 6f 70 2d 6c 6f 6f 6b 75 70 2d 64 65 66 75 6e | macsql--generate-op-lookup-defun | 
| 31a0 | 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a    20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 | '.for.details."......(cond...... | 
| 31c0 | 20 2c 40 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20    20 20 20 20 20 66 6f 72 20 70 72 65 63 65 64 65 | .,@(cl-loop..........for.precede | 
| 31e0 | 6e 63 65 2d 76 61 6c 75 65 20 66 72 6f 6d 20 31    0a 20 20 20 20 20 20 20 20 20 66 6f 72 20 70 72 | nce-value.from.1..........for.pr | 
| 3200 | 65 63 65 64 65 6e 63 65 2d 67 72 6f 75 70 20 69    6e 20 28 72 65 76 65 72 73 65 20 6f 70 65 72 61 | ecedence-group.in.(reverse.opera | 
| 3220 | 74 6f 72 2d 70 72 65 63 65 64 65 6e 63 65 2d 67    72 6f 75 70 73 29 0a 20 20 20 20 20 20 20 20 20 | tor-precedence-groups).......... | 
| 3240 | 61 70 70 65 6e 64 20 28 63 6c 2d 6c 6f 6f 70 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | append.(cl-loop................. | 
| 3260 | 20 66 6f 72 20 28 6f 70 2d 6e 61 6d 65 20 61 72    69 74 79 20 63 75 73 74 6f 6d 2d 65 78 70 72 29 | .for.(op-name.arity.custom-expr) | 
| 3280 | 20 69 6e 20 70 72 65 63 65 64 65 6e 63 65 2d 67    72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 | .in.precedence-group............ | 
| 32a0 | 20 20 20 20 20 20 66 6f 72 20 73 71 6c 2d 6e 61    6d 65 20 3d 20 28 75 70 63 61 73 65 20 28 73 79 | ......for.sql-name.=.(upcase.(sy | 
| 32c0 | 6d 62 6f 6c 2d 6e 61 6d 65 20 6f 70 2d 6e 61 6d    65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | mbol-name.op-name))............. | 
| 32e0 | 20 20 20 20 20 66 6f 72 20 73 71 6c 2d 65 78 70    72 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....for.sql-expr.=............. | 
| 3300 | 20 20 20 20 20 28 6f 72 20 63 75 73 74 6f 6d 2d    65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(or.custom-expr............ | 
| 3320 | 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65    20 61 72 69 74 79 0a 20 20 20 20 20 20 20 20 20 | ..........(pcase.arity.......... | 
| 3340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a    75 6e 61 72 79 20 60 28 2c 73 71 6c 2d 6e 61 6d | ..............(:unary.`(,sql-nam | 
| 3360 | 65 20 22 20 22 20 3a 6f 70 65 72 61 6e 64 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.".".:operand))................ | 
| 3380 | 20 20 20 20 20 20 20 20 28 3a 62 69 6e 61 72 79    20 60 28 3a 6f 70 65 72 61 6e 64 20 22 20 22 20 | ........(:binary.`(:operand.".". | 
| 33a0 | 2c 73 71 6c 2d 6e 61 6d 65 20 22 20 22 20 3a 6f    70 65 72 61 6e 64 29 29 29 29 0a 0a 20 20 20 20 | ,sql-name.".".:operand))))...... | 
| 33c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c    6c 65 63 74 20 28 6c 69 73 74 20 60 28 61 6e 64 | .............collect.(list.`(and | 
| 33e0 | 20 28 65 71 20 6f 70 65 72 61 74 6f 72 2d 6e 61    6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(eq.operator-name.............. | 
| 3400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 71 75 6f | ............................(quo | 
| 3420 | 74 65 20 2c 6f 70 2d 6e 61 6d 65 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | te.,op-name))................... | 
| 3440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 2c 28 69 66 20 28 65 71 20 61 72 69 74 | ...................,(if.(eq.arit | 
| 3460 | 79 20 3a 75 6e 61 72 79 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y.:unary)....................... | 
| 3480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 60 28 65 71 6c 20 6f 70 65 72 61 74 | ....................`(eql.operat | 
| 34a0 | 6f 72 2d 61 72 67 75 6d 65 6e 74 2d 63 6f 75 6e    74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 | or-argument-count.1)............ | 
| 34c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3e | .............................`(> | 
| 34e0 | 3d 20 6f 70 65 72 61 74 6f 72 2d 61 72 67 75 6d    65 6e 74 2d 63 6f 75 6e 74 20 32 29 29 29 0a 20 | =.operator-argument-count.2))).. | 
| 3500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 | ..............................`( | 
| 3520 | 6c 69 73 74 20 27 2c 73 71 6c 2d 65 78 70 72 20    2c 61 72 69 74 79 20 2c 70 72 65 63 65 64 65 6e | list.',sql-expr.,arity.,preceden | 
| 3540 | 63 65 2d 76 61 6c 75 65 29 29 29 29 0a 20 20 20    20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c 20 | ce-value)))).......(t.(list.nil. | 
| 3560 | 6e 69 6c 20 6e 69 6c 29 29 29 29 29 0a 0a 28 65    6d 61 63 73 71 6c 2d 2d 67 65 6e 65 72 61 74 65 | nil.nil)))))..(emacsql--generate | 
| 3580 | 2d 6f 70 2d 6c 6f 6f 6b 75 70 2d 64 65 66 75 6e    0a 20 65 6d 61 63 73 71 6c 2d 2d 67 65 74 2d 6f | -op-lookup-defun..emacsql--get-o | 
| 35a0 | 70 0a 20 28 28 28 7e 20 3a 75 6e 61 72 79 20 28    22 7e 22 20 3a 6f 70 65 72 61 6e 64 29 29 29 0a | p..(((~.:unary.("~".:operand))). | 
| 35c0 | 20 20 28 28 63 6f 6c 6c 61 74 65 20 3a 62 69 6e    61 72 79 29 29 0a 20 20 28 28 7c 7c 20 3a 62 69 | ..((collate.:binary))...((||.:bi | 
| 35e0 | 6e 61 72 79 29 29 0a 20 20 28 28 2a 20 3a 62 69    6e 61 72 79 29 20 28 2f 20 3a 62 69 6e 61 72 79 | nary))...((*.:binary).(/.:binary | 
| 3600 | 29 20 28 25 20 3a 62 69 6e 61 72 79 29 29 0a 20    20 28 28 2b 20 3a 75 6e 61 72 79 20 28 22 2b 22 | ).(%.:binary))...((+.:unary.("+" | 
| 3620 | 20 3a 6f 70 65 72 61 6e 64 29 29 20 28 2d 20 3a    75 6e 61 72 79 20 28 22 2d 22 20 3a 6f 70 65 72 | .:operand)).(-.:unary.("-".:oper | 
| 3640 | 61 6e 64 29 29 29 0a 20 20 28 28 2b 20 3a 62 69    6e 61 72 79 29 20 28 2d 20 3a 62 69 6e 61 72 79 | and)))...((+.:binary).(-.:binary | 
| 3660 | 29 29 0a 20 20 28 28 26 20 3a 62 69 6e 61 72 79    29 20 28 7c 20 3a 62 69 6e 61 72 79 29 20 28 3c | ))...((&.:binary).(|.:binary).(< | 
| 3680 | 3c 20 3a 62 69 6e 61 72 79 29 20 28 3e 3e 20 3a    62 69 6e 61 72 79 29 29 0a 20 20 28 28 65 73 63 | <.:binary).(>>.:binary))...((esc | 
| 36a0 | 61 70 65 20 3a 62 69 6e 61 72 79 20 28 3a 6f 70    65 72 61 6e 64 20 22 20 45 53 43 41 50 45 20 22 | ape.:binary.(:operand.".ESCAPE." | 
| 36c0 | 20 3a 6f 70 65 72 61 6e 64 29 29 29 0a 20 20 28    28 3c 20 3a 62 69 6e 61 72 79 29 20 28 3c 3d 20 | .:operand)))...((<.:binary).(<=. | 
| 36e0 | 3a 62 69 6e 61 72 79 29 20 28 3e 20 3a 62 69 6e    61 72 79 29 20 28 3e 3d 20 3a 62 69 6e 61 72 79 | :binary).(>.:binary).(>=.:binary | 
| 3700 | 29 29 0a 0a 20 20 28 3b 3b 54 4f 44 4f 3f 20 28    62 65 74 77 65 65 6e 20 3a 62 69 6e 61 72 79 29 | ))....(;;TODO?.(between.:binary) | 
| 3720 | 20 28 6e 6f 74 2d 62 65 74 77 65 65 6e 20 3a 62    69 6e 61 72 79 29 0a 20 20 20 28 69 73 20 3a 62 | .(not-between.:binary)....(is.:b | 
| 3740 | 69 6e 61 72 79 29 20 28 69 73 2d 6e 6f 74 20 3a    62 69 6e 61 72 79 20 28 3a 6f 70 65 72 61 6e 64 | inary).(is-not.:binary.(:operand | 
| 3760 | 20 22 20 49 53 20 4e 4f 54 20 22 20 3a 6f 70 65    72 61 6e 64 29 29 0a 20 20 20 28 6d 61 74 63 68 | .".IS.NOT.".:operand))....(match | 
| 3780 | 20 3a 62 69 6e 61 72 79 29 20 28 6e 6f 74 2d 6d    61 74 63 68 20 3a 62 69 6e 61 72 79 20 28 3a 6f | .:binary).(not-match.:binary.(:o | 
| 37a0 | 70 65 72 61 6e 64 20 22 20 4e 4f 54 20 4d 41 54    43 48 20 22 20 3a 6f 70 65 72 61 6e 64 29 29 0a | perand.".NOT.MATCH.".:operand)). | 
| 37c0 | 20 20 20 28 6c 69 6b 65 20 3a 62 69 6e 61 72 79    29 20 28 6e 6f 74 2d 6c 69 6b 65 20 3a 62 69 6e | ...(like.:binary).(not-like.:bin | 
| 37e0 | 61 72 79 20 28 3a 6f 70 65 72 61 6e 64 20 20 22    20 4e 4f 54 20 4c 49 4b 45 20 22 20 3a 6f 70 65 | ary.(:operand..".NOT.LIKE.".:ope | 
| 3800 | 72 61 6e 64 29 29 0a 20 20 20 28 69 6e 20 3a 62    69 6e 61 72 79 29 20 28 6e 6f 74 2d 69 6e 20 3a | rand))....(in.:binary).(not-in.: | 
| 3820 | 62 69 6e 61 72 79 20 28 3a 6f 70 65 72 61 6e 64    20 22 20 4e 4f 54 20 49 4e 20 22 20 3a 6f 70 65 | binary.(:operand.".NOT.IN.".:ope | 
| 3840 | 72 61 6e 64 29 29 0a 20 20 20 28 69 73 6e 75 6c    6c 20 3a 75 6e 61 72 79 20 28 3a 6f 70 65 72 61 | rand))....(isnull.:unary.(:opera | 
| 3860 | 6e 64 20 22 20 49 53 4e 55 4c 4c 22 29 29 0a 20    20 20 28 6e 6f 74 6e 75 6c 6c 20 3a 75 6e 61 72 | nd.".ISNULL"))....(notnull.:unar | 
| 3880 | 79 20 28 3a 6f 70 65 72 61 6e 64 20 22 20 4e 4f    54 4e 55 4c 4c 22 29 29 0a 20 20 20 28 3d 20 3a | y.(:operand.".NOTNULL"))....(=.: | 
| 38a0 | 62 69 6e 61 72 79 29 20 28 3d 3d 20 3a 62 69 6e    61 72 79 29 0a 20 20 20 28 21 3d 20 3a 62 69 6e | binary).(==.:binary)....(!=.:bin | 
| 38c0 | 61 72 79 29 20 28 3c 3e 20 3a 62 69 6e 61 72 79    29 0a 20 20 20 28 67 6c 6f 62 20 3a 62 69 6e 61 | ary).(<>.:binary)....(glob.:bina | 
| 38e0 | 72 79 29 20 28 6e 6f 74 2d 67 6c 6f 62 20 3a 62    69 6e 61 72 79 20 28 3a 6f 70 65 72 61 6e 64 20 | ry).(not-glob.:binary.(:operand. | 
| 3900 | 22 20 4e 4f 54 20 47 4c 4f 42 20 22 20 3a 6f 70    65 72 61 6e 64 29 29 0a 20 20 20 28 72 65 67 65 | ".NOT.GLOB.".:operand))....(rege | 
| 3920 | 78 70 20 3a 62 69 6e 61 72 79 29 20 28 6e 6f 74    2d 72 65 67 65 78 70 20 3a 62 69 6e 61 72 79 20 | xp.:binary).(not-regexp.:binary. | 
| 3940 | 28 3a 6f 70 65 72 61 6e 64 20 22 20 4e 4f 54 20    52 45 47 45 58 50 20 22 20 3a 6f 70 65 72 61 6e | (:operand.".NOT.REGEXP.".:operan | 
| 3960 | 64 29 29 29 0a 0a 20 20 28 28 6e 6f 74 20 3a 75    6e 61 72 79 29 29 0a 20 20 28 28 61 6e 64 20 3a | d)))....((not.:unary))...((and.: | 
| 3980 | 62 69 6e 61 72 79 29 29 0a 20 20 28 28 6f 72 20    3a 62 69 6e 61 72 79 29 29 29 29 0a 0a 28 64 65 | binary))...((or.:binary))))..(de | 
| 39a0 | 66 75 6e 20 65 6d 61 63 73 71 6c 2d 2d 65 78 70    61 6e 64 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e | fun.emacsql--expand-format-strin | 
| 39c0 | 67 20 28 6f 70 20 65 78 70 72 20 61 72 69 74 79    20 61 72 67 75 6d 65 6e 74 2d 63 6f 75 6e 74 29 | g.(op.expr.arity.argument-count) | 
| 39e0 | 0a 20 20 22 43 72 65 61 74 65 20 66 6f 72 6d 61    74 2d 73 74 72 69 6e 67 20 66 6f 72 20 61 6e 20 | ..."Create.format-string.for.an. | 
| 3a00 | 53 51 4c 20 6f 70 65 72 61 74 6f 72 2e 0a 54 68    65 20 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 | SQL.operator..The.format-string. | 
| 3a20 | 72 65 74 75 72 6e 65 64 20 69 73 20 69 6e 74 65    6e 64 65 64 20 74 6f 20 62 65 20 75 73 65 64 20 | returned.is.intended.to.be.used. | 
| 3a40 | 77 69 74 68 20 60 66 6f 72 6d 61 74 27 0a 74 6f    20 63 72 65 61 74 65 20 61 6e 20 53 51 4c 20 65 | with.`format'.to.create.an.SQL.e | 
| 3a60 | 78 70 72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 61    6e 64 20 65 78 70 72 0a 20 20 20 20 20 20 20 28 | xpression."...(and.expr........( | 
| 3a80 | 63 6c 2d 6c 61 62 65 6c 73 20 28 28 72 65 70 6c    61 63 65 2d 6f 70 65 72 61 6e 64 20 28 78 29 20 | cl-labels.((replace-operand.(x). | 
| 3aa0 | 28 69 66 20 28 65 71 20 78 20 3a 6f 70 65 72 61    6e 64 29 20 22 25 73 22 20 78 29 29 0a 20 20 20 | (if.(eq.x.:operand)."%s".x)).... | 
| 3ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 74 6f 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e | ................(to-format-strin | 
| 3ae0 | 67 20 28 65 29 20 28 6d 61 70 63 6f 6e 63 61 74    20 23 27 72 65 70 6c 61 63 65 2d 6f 70 65 72 61 | g.(e).(mapconcat.#'replace-opera | 
| 3b00 | 6e 64 20 65 20 22 22 29 29 29 0a 20 20 20 20 20    20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 | nd.e."")))..........(cond....... | 
| 3b20 | 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 61 72    69 74 79 20 3a 75 6e 61 72 79 29 20 28 65 71 6c | ....((and.(eq.arity.:unary).(eql | 
| 3b40 | 20 61 72 67 75 6d 65 6e 74 2d 63 6f 75 6e 74 20    31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | .argument-count.1))............( | 
| 3b60 | 74 6f 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67    20 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 | to-format-string.expr))......... | 
| 3b80 | 20 20 28 28 61 6e 64 20 28 65 71 20 61 72 69 74    79 20 3a 62 69 6e 61 72 79 29 20 28 3e 3d 20 61 | ..((and.(eq.arity.:binary).(>=.a | 
| 3ba0 | 72 67 75 6d 65 6e 74 2d 63 6f 75 6e 74 20 32 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 | rgument-count.2))............(le | 
| 3bc0 | 74 20 28 28 72 65 73 75 6c 74 20 28 72 65 76 65    72 73 65 20 65 78 70 72 29 29 29 0a 20 20 20 20 | t.((result.(reverse.expr)))..... | 
| 3be0 | 20 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65    73 20 28 5f 20 28 2d 20 61 72 67 75 6d 65 6e 74 | .........(dotimes.(_.(-.argument | 
| 3c00 | 2d 63 6f 75 6e 74 20 32 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | -count.2))................(setq. | 
| 3c20 | 72 65 73 75 6c 74 20 28 6e 63 6f 6e 63 20 28 72    65 76 65 72 73 65 20 65 78 70 72 29 20 28 63 64 | result.(nconc.(reverse.expr).(cd | 
| 3c40 | 72 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 74 6f 2d 66 6f | r.result))))..............(to-fo | 
| 3c60 | 72 6d 61 74 2d 73 74 72 69 6e 67 20 28 6e 72 65    76 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 29 | rmat-string.(nreverse.result)))) | 
| 3c80 | 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65    6d 61 63 73 71 6c 2d 65 72 72 6f 72 20 22 57 72 | ...........(t.(emacsql-error."Wr | 
| 3ca0 | 6f 6e 67 20 6e 75 6d 62 65 72 20 6f 66 20 6f 70    65 72 61 6e 64 73 20 66 6f 72 20 25 73 22 20 6f | ong.number.of.operands.for.%s".o | 
| 3cc0 | 70 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    65 6d 61 63 73 71 6c 2d 2d 67 65 74 2d 6f 70 2d | p))))))..(defun.emacsql--get-op- | 
| 3ce0 | 69 6e 66 6f 20 28 6f 70 20 61 72 67 75 6d 65 6e    74 2d 63 6f 75 6e 74 20 70 61 72 65 6e 74 2d 70 | info.(op.argument-count.parent-p | 
| 3d00 | 72 65 63 65 64 65 6e 63 65 2d 76 61 6c 75 65 29    0a 20 20 22 4c 6f 6f 6b 75 70 20 53 51 4c 20 6f | recedence-value)..."Lookup.SQL.o | 
| 3d20 | 70 65 72 61 74 6f 72 20 69 6e 66 6f 72 6d 61 74    69 6f 6e 20 66 6f 72 20 67 65 6e 65 72 61 74 69 | perator.information.for.generati | 
| 3d40 | 6e 67 20 61 6e 20 53 51 4c 20 65 78 70 72 65 73    73 69 6f 6e 2e 0a 52 65 74 75 72 6e 73 20 74 68 | ng.an.SQL.expression..Returns.th | 
| 3d60 | 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 75 6c 74    69 70 6c 65 20 76 61 6c 75 65 73 20 77 68 65 6e | e.following.multiple.values.when | 
| 3d80 | 20 61 6e 20 6f 70 65 72 61 74 6f 72 20 63 61 6e    20 62 65 0a 69 64 65 6e 74 69 66 69 65 64 3a 20 | .an.operator.can.be.identified:. | 
| 3da0 | 61 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 20    28 73 65 65 20 60 65 6d 61 63 73 71 6c 2d 2d 65 | a.format.string.(see.`emacsql--e | 
| 3dc0 | 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 74 72    69 6e 67 27 29 0a 61 6e 64 20 61 20 70 72 65 63 | xpand-format-string').and.a.prec | 
| 3de0 | 65 64 65 6e 63 65 20 76 61 6c 75 65 2e 20 20 49    66 20 50 41 52 45 4e 54 2d 50 52 45 43 45 44 45 | edence.value...If.PARENT-PRECEDE | 
| 3e00 | 4e 43 45 2d 56 41 4c 55 45 20 69 73 20 67 72 65    61 74 65 72 20 6f 72 0a 65 71 75 61 6c 20 74 6f | NCE-VALUE.is.greater.or.equal.to | 
| 3e20 | 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 64 20    6f 70 65 72 61 74 6f 72 27 73 20 70 72 65 63 65 | .the.identified.operator's.prece | 
| 3e40 | 64 65 6e 63 65 2c 20 74 68 65 6e 20 74 68 65 20    66 6f 72 6d 61 74 0a 73 74 72 69 6e 67 20 72 65 | dence,.then.the.format.string.re | 
| 3e60 | 74 75 72 6e 65 64 20 69 73 20 77 72 61 70 70 65    64 20 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 | turned.is.wrapped.with.parenthes | 
| 3e80 | 65 73 2e 22 0a 20 20 28 63 6c 2d 64 65 73 74 72    75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 66 | es."...(cl-destructuring-bind.(f | 
| 3ea0 | 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 61 72 69    74 79 20 70 72 65 63 65 64 65 6e 63 65 2d 76 61 | ormat-string.arity.precedence-va | 
| 3ec0 | 6c 75 65 29 0a 20 20 20 20 20 20 28 65 6d 61 63    73 71 6c 2d 2d 67 65 74 2d 6f 70 20 6f 70 20 61 | lue).......(emacsql--get-op.op.a | 
| 3ee0 | 72 67 75 6d 65 6e 74 2d 63 6f 75 6e 74 29 0a 20    20 20 20 28 6c 65 74 20 28 28 65 78 70 61 6e 64 | rgument-count).....(let.((expand | 
| 3f00 | 65 64 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67    0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 | ed-format-string............(ema | 
| 3f20 | 63 73 71 6c 2d 2d 65 78 70 61 6e 64 2d 66 6f 72    6d 61 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 | csql--expand-format-string...... | 
| 3f40 | 20 20 20 20 20 20 20 6f 70 0a 20 20 20 20 20 20    20 20 20 20 20 20 66 6f 72 6d 61 74 2d 73 74 72 | .......op.............format-str | 
| 3f60 | 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20    61 72 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 | ing.............arity........... | 
| 3f80 | 20 20 61 72 67 75 6d 65 6e 74 2d 63 6f 75 6e 74    29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 76 61 | ..argument-count))).......(cl-va | 
| 3fa0 | 6c 75 65 73 20 28 63 6f 6e 64 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e | lues.(cond...................((n | 
| 3fc0 | 75 6c 6c 20 66 6f 72 6d 61 74 2d 73 74 72 69 6e    67 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 | ull.format-string).nil)......... | 
| 3fe0 | 20 20 20 20 20 20 20 20 20 20 28 28 3e 3d 20 70    61 72 65 6e 74 2d 70 72 65 63 65 64 65 6e 63 65 | ..........((>=.parent-precedence | 
| 4000 | 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 | -value........................pr | 
| 4020 | 65 63 65 64 65 6e 63 65 2d 76 61 6c 75 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ecedence-value)................. | 
| 4040 | 20 20 20 28 66 6f 72 6d 61 74 20 22 28 25 73 29    22 20 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 61 | ...(format."(%s)".expanded-forma | 
| 4060 | 74 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 | t-string))...................(t. | 
| 4080 | 65 78 70 61 6e 64 65 64 2d 66 6f 72 6d 61 74 2d    73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 | expanded-format-string))........ | 
| 40a0 | 20 20 20 20 20 20 20 20 20 20 70 72 65 63 65 64    65 6e 63 65 2d 76 61 6c 75 65 29 29 29 29 0a 0a | ..........precedence-value)))).. | 
| 40c0 | 28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 2d    2a 65 78 70 72 20 28 65 78 70 72 20 26 6f 70 74 | (defun.emacsql--*expr.(expr.&opt | 
| 40e0 | 69 6f 6e 61 6c 20 70 61 72 65 6e 74 2d 70 72 65    63 65 64 65 6e 63 65 2d 76 61 6c 75 65 29 0a 20 | ional.parent-precedence-value).. | 
| 4100 | 20 22 45 78 70 61 6e 64 20 45 58 50 52 20 72 65    63 75 72 73 69 76 65 6c 79 2e 22 0a 20 20 28 65 | ."Expand.EXPR.recursively."...(e | 
| 4120 | 6d 61 63 73 71 6c 2d 77 69 74 68 2d 70 61 72 61    6d 73 20 22 22 0a 20 20 20 20 28 63 6f 6e 64 0a | macsql-with-params."".....(cond. | 
| 4140 | 20 20 20 20 20 28 28 65 6d 61 63 73 71 6c 2d 73    71 6c 2d 70 20 65 78 70 72 29 20 28 73 75 62 73 | .....((emacsql-sql-p.expr).(subs | 
| 4160 | 71 6c 20 65 78 70 72 29 29 0a 20 20 20 20 20 28    28 76 65 63 74 6f 72 70 20 65 78 70 72 29 20 28 | ql.expr))......((vectorp.expr).( | 
| 4180 | 73 76 65 63 74 6f 72 20 65 78 70 72 29 29 0a 20    20 20 20 20 28 28 61 74 6f 6d 20 65 78 70 72 29 | svector.expr))......((atom.expr) | 
| 41a0 | 20 28 70 61 72 61 6d 20 65 78 70 72 29 29 0a 20    20 20 20 20 28 28 63 6c 2d 64 65 73 74 72 75 63 | .(param.expr))......((cl-destruc | 
| 41c0 | 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 6f 70 20    2e 20 61 72 67 73 29 20 65 78 70 72 0a 20 20 20 | turing-bind.(op...args).expr.... | 
| 41e0 | 20 20 20 20 20 28 63 6c 2d 6d 75 6c 74 69 70 6c    65 2d 76 61 6c 75 65 2d 62 69 6e 64 20 28 66 6f | .....(cl-multiple-value-bind.(fo | 
| 4200 | 72 6d 61 74 2d 73 74 72 69 6e 67 20 70 72 65 63    65 64 65 6e 63 65 2d 76 61 6c 75 65 29 0a 20 20 | rmat-string.precedence-value)... | 
| 4220 | 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73    71 6c 2d 2d 67 65 74 2d 6f 70 2d 69 6e 66 6f 20 | ..........(emacsql--get-op-info. | 
| 4240 | 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | op.............................. | 
| 4260 | 20 20 20 20 20 28 6c 65 6e 67 74 68 20 61 72 67    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(length.args).............. | 
| 4280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6f 72 20 70 61 72 65 6e 74 2d | .....................(or.parent- | 
| 42a0 | 70 72 65 63 65 64 65 6e 63 65 2d 76 61 6c 75 65    20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | precedence-value.0))...........( | 
| 42c0 | 63 6c 2d 66 6c 65 74 20 28 28 72 65 63 75 72 20    28 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | cl-flet.((recur.(n)............. | 
| 42e0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 62 69    6e 65 20 28 65 6d 61 63 73 71 6c 2d 2d 2a 65 78 | ..........(combine.(emacsql--*ex | 
| 4300 | 70 72 20 28 6e 74 68 20 6e 20 61 72 67 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pr.(nth.n.args)................. | 
| 4320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( | 
| 4340 | 6f 72 20 70 72 65 63 65 64 65 6e 63 65 2d 76 61    6c 75 65 20 30 29 29 29 29 0a 20 20 20 20 20 20 | or.precedence-value.0))))....... | 
| 4360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e    6f 70 73 20 28 6f 70 29 0a 20 20 20 20 20 20 20 | ..............(nops.(op)........ | 
| 4380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 20 22 57 | ...............(emacsql-error."W | 
| 43a0 | 72 6f 6e 67 20 6e 75 6d 62 65 72 20 6f 66 20 6f    70 65 72 61 6e 64 73 20 66 6f 72 20 25 73 22 20 | rong.number.of.operands.for.%s". | 
| 43c0 | 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 63 6c 2d 63 61 73 65 20 6f 70 0a 20 20 | op))).............(cl-case.op... | 
| 43e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53    70 65 63 69 61 6c 20 63 61 73 65 73 20 3c 3d 20 | ............;;.Special.cases.<=. | 
| 4400 | 3e 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 3c 3d 20 3e 3d 29 0a 20 20 20 20 20 20 | >=...............((<=.>=)....... | 
| 4420 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73    65 20 28 6c 65 6e 67 74 68 20 61 72 67 73 29 0a | .........(cl-case.(length.args). | 
| 4440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 32 20 28 66 6f 72 6d 61 74 20 66 6f 72 6d | .................(2.(format.form | 
| 4460 | 61 74 2d 73 74 72 69 6e 67 20 28 72 65 63 75 72    20 30 29 20 28 72 65 63 75 72 20 31 29 29 29 0a | at-string.(recur.0).(recur.1))). | 
| 4480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 33 20 28 66 6f 72 6d 61 74 20 28 69 66 20 | .................(3.(format.(if. | 
| 44a0 | 28 3e 3d 20 28 6f 72 20 70 61 72 65 6e 74 2d 70    72 65 63 65 64 65 6e 63 65 2d 76 61 6c 75 65 20 | (>=.(or.parent-precedence-value. | 
| 44c0 | 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 0).............................. | 
| 44e0 | 20 20 20 20 20 20 20 70 72 65 63 65 64 65 6e 63    65 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 | .......precedence-value)........ | 
| 4500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 22 28 25 73 20 42 45 | ........................."(%s.BE | 
| 4520 | 54 57 45 45 4e 20 25 73 20 41 4e 44 20 25 73 29    22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | TWEEN.%s.AND.%s)"............... | 
| 4540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    22 25 73 20 42 45 54 57 45 45 4e 20 25 73 20 41 | ................"%s.BETWEEN.%s.A | 
| 4560 | 4e 44 20 25 73 22 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ND.%s")......................... | 
| 4580 | 20 20 20 20 28 72 65 63 75 72 20 31 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(recur.1)................... | 
| 45a0 | 20 20 20 20 20 20 20 20 20 20 28 72 65 63 75 72    20 28 69 66 20 28 65 71 20 6f 70 20 27 3e 3d 29 | ..........(recur.(if.(eq.op.'>=) | 
| 45c0 | 20 32 20 30 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .2.0)).......................... | 
| 45e0 | 20 20 20 28 72 65 63 75 72 20 28 69 66 20 28 65    71 20 6f 70 20 27 3e 3d 29 20 30 20 32 29 29 29 | ...(recur.(if.(eq.op.'>=).0.2))) | 
| 4600 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6f 74 68 65 72 77 69 73 65 20 28 6e | )..................(otherwise.(n | 
| 4620 | 6f 70 73 20 6f 70 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3b 3b 20 65 6e 66 6f | ops.op))))...............;;.enfo | 
| 4640 | 72 63 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d    65 6e 74 20 74 6f 20 62 65 20 61 20 63 68 61 72 | rce.second.argument.to.be.a.char | 
| 4660 | 61 63 74 65 72 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 28 65 73 63 61 70 65 29 0a 20 20 | acter...............((escape)... | 
| 4680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65    74 20 28 28 73 65 63 6f 6e 64 2d 61 72 67 20 28 | .............(let.((second-arg.( | 
| 46a0 | 63 61 64 72 20 61 72 67 73 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | cadr.args)))..................(c | 
| 46c0 | 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 28 6e 6f 74 20 28 3d 20 32 | ond...................((not.(=.2 | 
| 46e0 | 20 28 6c 65 6e 67 74 68 20 61 72 67 73 29 29 29    20 28 6e 6f 70 73 20 6f 70 29 29 0a 20 20 20 20 | .(length.args))).(nops.op))..... | 
| 4700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28    6e 6f 74 20 28 63 68 61 72 61 63 74 65 72 70 20 | ..............((not.(characterp. | 
| 4720 | 73 65 63 6f 6e 64 2d 61 72 67 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | second-arg)).................... | 
| 4740 | 28 65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (emacsql-error.................. | 
| 4760 | 20 20 20 22 53 65 63 6f 6e 64 20 6f 70 65 72 61    6e 64 20 6f 66 20 65 73 63 61 70 65 20 68 61 73 | ..."Second.operand.of.escape.has | 
| 4780 | 20 74 6f 20 62 65 20 61 20 63 68 61 72 61 63 74    65 72 2c 20 67 6f 74 20 25 73 22 0a 20 20 20 20 | .to.be.a.character,.got.%s"..... | 
| 47a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    73 65 63 6f 6e 64 2d 61 72 67 29 29 0a 20 20 20 | ................second-arg)).... | 
| 47c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    74 20 28 66 6f 72 6d 61 74 20 66 6f 72 6d 61 74 | ...............(t.(format.format | 
| 47e0 | 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -string......................... | 
| 4800 | 20 20 20 20 20 28 72 65 63 75 72 20 30 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(recur.0).................. | 
| 4820 | 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61    63 73 71 6c 2d 71 75 6f 74 65 2d 63 68 61 72 61 | ............(emacsql-quote-chara | 
| 4840 | 63 74 65 72 20 73 65 63 6f 6e 64 2d 61 72 67 29    29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | cter.second-arg))))))........... | 
| 4860 | 20 20 20 20 3b 3b 20 4f 72 64 65 72 69 6e 67 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 | ....;;.Ordering...............(( | 
| 4880 | 61 73 63 20 64 65 73 63 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | asc.desc)................(format | 
| 48a0 | 20 22 25 73 20 25 73 22 20 28 72 65 63 75 72 20    30 29 20 28 75 70 63 61 73 65 20 28 73 79 6d 62 | ."%s.%s".(recur.0).(upcase.(symb | 
| 48c0 | 6f 6c 2d 6e 61 6d 65 20 6f 70 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | ol-name.op))))...............;;. | 
| 48e0 | 53 70 65 63 69 61 6c 20 63 61 73 65 20 71 75 6f    74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | Special.case.quote.............. | 
| 4900 | 20 28 28 71 75 6f 74 65 29 20 28 6c 65 74 20 28    28 61 72 67 20 28 6e 74 68 20 30 20 61 72 67 73 | .((quote).(let.((arg.(nth.0.args | 
| 4920 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | )))..........................(if | 
| 4940 | 20 28 73 74 72 69 6e 67 70 20 61 72 67 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(stringp.arg).................. | 
| 4960 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 61 77    20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 | ............(raw.arg)........... | 
| 4980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 63 61 6c 61 72 20 61 72 67 29 29 29 29 | .................(scalar.arg)))) | 
| 49a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 53 70 65 63 69 61 6c 20 63 61 73 65 20 66 | ...............;;.Special.case.f | 
| 49c0 | 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 66 75 6e 63 61 6c 6c 29 0a | uncall...............((funcall). | 
| 49e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    66 6f 72 6d 61 74 20 22 25 73 28 25 73 29 22 20 | ...............(format."%s(%s)". | 
| 4a00 | 28 72 65 63 75 72 20 30 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (recur.0)....................... | 
| 4a20 | 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .(cond.........................( | 
| 4a40 | 28 61 6e 64 20 28 3d 20 32 20 28 6c 65 6e 67 74    68 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 | (and.(=.2.(length.args))........ | 
| 4a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 71 20 27 2a 20 28 6e | .......................(eq.'*.(n | 
| 4a80 | 74 68 20 31 20 61 72 67 73 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | th.1.args))).................... | 
| 4aa0 | 20 20 20 20 20 20 22 2a 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......"*")...................... | 
| 4ac0 | 20 20 20 28 28 61 6e 64 20 28 3d 20 33 20 28 6c    65 6e 67 74 68 20 61 72 67 73 29 29 0a 20 20 20 | ...((and.(=.3.(length.args)).... | 
| 4ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 3a | ...........................(eq.: | 
| 4b00 | 64 69 73 74 69 6e 63 74 20 28 6e 74 68 20 31 20    61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 | distinct.(nth.1.args)).......... | 
| 4b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 44 49 | .....................(format."DI | 
| 4b40 | 53 54 49 4e 43 54 20 25 73 22 20 28 72 65 63 75    72 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 | STINCT.%s".(recur.2))))......... | 
| 4b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 | ................((mapconcat..... | 
| 4b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 23 27 72 65 63 75 72 20 28 63 | ......................#'recur.(c | 
| 4ba0 | 6c 2d 6c 6f 6f 70 20 66 6f 72 20 69 20 66 72 6f    6d 20 31 20 62 65 6c 6f 77 20 28 6c 65 6e 67 74 | l-loop.for.i.from.1.below.(lengt | 
| 4bc0 | 68 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h.args)......................... | 
| 4be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 63 6f 6c 6c 65 63 74 20 69 29 0a 20 20 | ...................collect.i)... | 
| 4c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 22 2c 20 22 29 29 29 29 | ........................",.")))) | 
| 4c20 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 47 75 65 73 73 0a 20 20 20 20 20 20 20 | )...............;;.Guess........ | 
| 4c40 | 20 20 20 20 20 20 20 28 6f 74 68 65 72 77 69 73    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(otherwise............... | 
| 4c60 | 20 28 6c 65 74 20 28 28 61 72 67 2d 69 6e 64 69    63 65 73 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 | .(let.((arg-indices.(cl-loop.for | 
| 4c80 | 20 69 20 66 72 6f 6d 20 30 20 62 65 6c 6f 77 20    28 6c 65 6e 67 74 68 20 61 72 67 73 29 20 63 6f | .i.from.0.below.(length.args).co | 
| 4ca0 | 6c 6c 65 63 74 20 69 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | llect.i)))..................(if. | 
| 4cc0 | 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | format-string................... | 
| 4ce0 | 20 20 20 28 61 70 70 6c 79 20 23 27 66 6f 72 6d    61 74 20 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 | ...(apply.#'format.format-string | 
| 4d00 | 20 28 6d 61 70 63 61 72 20 23 27 72 65 63 75 72    20 61 72 67 2d 69 6e 64 69 63 65 73 29 29 0a 20 | .(mapcar.#'recur.arg-indices)).. | 
| 4d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 | ..................(mapconcat.... | 
| 4d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 23 27 72 65 63 75 72 20 28 63 6c 2d 6c 6f 6f | .................#'recur.(cl-loo | 
| 4d60 | 70 20 66 6f 72 20 69 20 66 72 6f 6d 20 30 20 62    65 6c 6f 77 20 28 6c 65 6e 67 74 68 20 61 72 67 | p.for.i.from.0.below.(length.arg | 
| 4d80 | 73 29 20 63 6f 6c 6c 65 63 74 20 69 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s).collect.i)................... | 
| 4da0 | 20 20 28 66 6f 72 6d 61 74 20 22 20 25 73 20 22    20 28 75 70 63 61 73 65 20 28 73 79 6d 62 6f 6c | ..(format.".%s.".(upcase.(symbol | 
| 4dc0 | 2d 6e 61 6d 65 20 6f 70 29 29 29 29 29 29 29 29    29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | -name.op)))))))))))))))..(defun. | 
| 4de0 | 65 6d 61 63 73 71 6c 2d 2d 2a 69 64 65 6e 74 73    20 28 69 64 65 6e 74 73 29 0a 20 20 22 52 65 61 | emacsql--*idents.(idents)..."Rea | 
| 4e00 | 64 20 69 6e 20 61 20 76 65 63 74 6f 72 20 6f 66    20 49 44 45 4e 54 53 20 69 64 65 6e 74 69 66 69 | d.in.a.vector.of.IDENTS.identifi | 
| 4e20 | 65 72 73 2c 20 6f 72 20 6a 75 73 74 20 61 6e 20    73 69 6e 67 6c 65 20 69 64 65 6e 74 69 66 69 65 | ers,.or.just.an.single.identifie | 
| 4e40 | 72 2e 22 0a 20 20 28 65 6d 61 63 73 71 6c 2d 77    69 74 68 2d 70 61 72 61 6d 73 20 22 22 0a 20 20 | r."...(emacsql-with-params.""... | 
| 4e60 | 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 65    78 70 72 20 69 64 65 6e 74 73 20 22 2c 20 22 29 | ..(mapconcat.#'expr.idents.",.") | 
| 4e80 | 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 73    71 6c 2d 2d 2a 63 6f 6d 62 69 6e 65 20 28 70 72 | ))..(defun.emacsql--*combine.(pr | 
| 4ea0 | 65 70 61 72 65 64 29 0a 20 20 22 41 70 70 65 6e    64 20 70 61 72 61 6d 65 74 65 72 73 20 66 72 6f | epared)..."Append.parameters.fro | 
| 4ec0 | 6d 20 50 52 45 50 41 52 45 44 20 74 6f 20 60 65    6d 61 63 73 71 6c 2d 2d 76 61 72 73 27 2c 20 72 | m.PREPARED.to.`emacsql--vars',.r | 
| 4ee0 | 65 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67    2e 0a 4f 6e 6c 79 20 75 73 65 20 77 69 74 68 69 | eturn.the.string..Only.use.withi | 
| 4f00 | 6e 20 60 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d    70 61 72 61 6d 73 27 21 22 0a 20 20 28 63 6c 2d | n.`emacsql-with-params'!"...(cl- | 
| 4f20 | 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69    6e 64 20 28 73 74 72 69 6e 67 20 2e 20 76 61 72 | destructuring-bind.(string...var | 
| 4f40 | 73 29 20 70 72 65 70 61 72 65 64 0a 20 20 20 20    28 73 65 74 71 20 65 6d 61 63 73 71 6c 2d 2d 76 | s).prepared.....(setq.emacsql--v | 
| 4f60 | 61 72 73 20 28 6e 63 6f 6e 63 20 65 6d 61 63 73    71 6c 2d 2d 76 61 72 73 20 76 61 72 73 29 29 0a | ars.(nconc.emacsql--vars.vars)). | 
| 4f80 | 20 20 20 20 73 74 72 69 6e 67 29 29 0a 0a 28 64    65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 70 72 65 | ....string))..(defun.emacsql-pre | 
| 4fa0 | 70 61 72 65 2d 2d 73 74 72 69 6e 67 20 28 73 74    72 69 6e 67 29 0a 20 20 22 43 72 65 61 74 65 20 | pare--string.(string)..."Create. | 
| 4fc0 | 61 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65    6d 65 6e 74 20 66 72 6f 6d 20 53 54 52 49 4e 47 | a.prepared.statement.from.STRING | 
| 4fe0 | 2e 22 0a 20 20 28 65 6d 61 63 73 71 6c 2d 77 69    74 68 2d 70 61 72 61 6d 73 20 22 22 0a 20 20 20 | ."...(emacsql-with-params."".... | 
| 5000 | 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70    2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 | .(replace-regexp-in-string...... | 
| 5020 | 22 5c 5c 24 5b 69 73 76 5d 5b 30 2d 39 5d 2b 22    20 28 6c 61 6d 62 64 61 20 28 76 29 20 28 70 61 | "\\$[isv][0-9]+".(lambda.(v).(pa | 
| 5040 | 72 61 6d 20 28 69 6e 74 65 72 6e 20 76 29 29 29    20 73 74 72 69 6e 67 29 29 29 0a 0a 28 64 65 66 | ram.(intern.v))).string)))..(def | 
| 5060 | 75 6e 20 65 6d 61 63 73 71 6c 2d 70 72 65 70 61    72 65 2d 2d 73 65 78 70 20 28 73 65 78 70 29 0a | un.emacsql-prepare--sexp.(sexp). | 
| 5080 | 20 20 22 43 72 65 61 74 65 20 61 20 70 72 65 70    61 72 65 64 20 73 74 61 74 65 6d 65 6e 74 20 66 | .."Create.a.prepared.statement.f | 
| 50a0 | 72 6f 6d 20 53 45 58 50 2e 22 0a 20 20 28 65 6d    61 63 73 71 6c 2d 77 69 74 68 2d 70 61 72 61 6d | rom.SEXP."...(emacsql-with-param | 
| 50c0 | 73 20 22 22 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f    70 20 77 69 74 68 20 69 74 65 6d 73 20 3d 20 28 | s."".....(cl-loop.with.items.=.( | 
| 50e0 | 63 6c 2d 63 6f 65 72 63 65 20 73 65 78 70 20 27    6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 | cl-coerce.sexp.'list)........... | 
| 5100 | 20 20 20 61 6e 64 20 6c 61 73 74 20 3d 20 6e 69    6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 | ...and.last.=.nil..............w | 
| 5120 | 68 69 6c 65 20 28 6e 6f 74 20 28 6e 75 6c 6c 20    69 74 65 6d 73 29 29 0a 20 20 20 20 20 20 20 20 | hile.(not.(null.items))......... | 
| 5140 | 20 20 20 20 20 66 6f 72 20 69 74 65 6d 20 3d 20    28 70 6f 70 20 69 74 65 6d 73 29 0a 20 20 20 20 | .....for.item.=.(pop.items)..... | 
| 5160 | 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | .........collect..............(c | 
| 5180 | 6c 2d 74 79 70 65 63 61 73 65 20 69 74 65 6d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | l-typecase.item................( | 
| 51a0 | 6b 65 79 77 6f 72 64 20 28 69 66 20 28 65 71 20    3a 76 61 6c 75 65 73 20 69 74 65 6d 29 0a 20 20 | keyword.(if.(eq.:values.item)... | 
| 51c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 | ..........................(conca | 
| 51e0 | 74 20 22 56 41 4c 55 45 53 20 22 20 28 73 76 65    63 74 6f 72 20 28 70 6f 70 20 69 74 65 6d 73 29 | t."VALUES.".(svector.(pop.items) | 
| 5200 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d | ))...........................(em | 
| 5220 | 61 63 73 71 6c 2d 2d 66 72 6f 6d 2d 6b 65 79 77    6f 72 64 20 69 74 65 6d 29 29 29 0a 20 20 20 20 | acsql--from-keyword.item)))..... | 
| 5240 | 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62    6f 6c 20 28 69 66 20 28 65 71 20 69 74 65 6d 20 | ...........(symbol.(if.(eq.item. | 
| 5260 | 27 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | '*)............................" | 
| 5280 | 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 | *"..........................(par | 
| 52a0 | 61 6d 20 69 74 65 6d 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f | am.item)))................(vecto | 
| 52c0 | 72 20 28 69 66 20 28 65 6d 61 63 73 71 6c 2d 73    71 6c 2d 70 20 69 74 65 6d 29 0a 20 20 20 20 20 | r.(if.(emacsql-sql-p.item)...... | 
| 52e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 73 75 62 73 71 6c 20 69 74 | ......................(subsql.it | 
| 5300 | 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 | em)..........................(le | 
| 5320 | 74 20 28 28 69 64 65 6e 74 73 20 28 63 6f 6d 62    69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t.((idents.(combine............. | 
| 5340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 | ............................(ema | 
| 5360 | 63 73 71 6c 2d 2d 2a 69 64 65 6e 74 73 20 69 74    65 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | csql--*idents.item)))).......... | 
| 5380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 69 66 20 28 6b 65 79 77 6f 72 64 70 20 | ..................(if.(keywordp. | 
| 53a0 | 6c 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | last)........................... | 
| 53c0 | 20 20 20 20 20 69 64 65 6e 74 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....idents..................... | 
| 53e0 | 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74    20 22 28 25 73 29 22 20 69 64 65 6e 74 73 29 29 | .........(format."(%s)".idents)) | 
| 5400 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6c 69 73 74 20 28 69 66 20 28 76 65 | )))................(list.(if.(ve | 
| 5420 | 63 74 6f 72 70 20 28 63 61 72 20 69 74 65 6d 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ctorp.(car.item))............... | 
| 5440 | 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63    73 71 6c 2d 65 73 63 61 70 65 2d 66 6f 72 6d 61 | ...........(emacsql-escape-forma | 
| 5460 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 | t...........................(for | 
| 5480 | 6d 61 74 20 22 28 25 73 29 22 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mat."(%s)"...................... | 
| 54a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d    61 63 73 71 6c 2d 70 72 65 70 61 72 65 2d 73 63 | .............(emacsql-prepare-sc | 
| 54c0 | 68 65 6d 61 20 69 74 65 6d 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | hema.item))).................... | 
| 54e0 | 20 20 20 20 28 63 6f 6d 62 69 6e 65 20 28 65 6d    61 63 73 71 6c 2d 2d 2a 65 78 70 72 20 69 74 65 | ....(combine.(emacsql--*expr.ite | 
| 5500 | 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 0a | m))))................(otherwise. | 
| 5520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 65 6d 61 63 73 71 6c 2d 65 73 63 61 70 65 2d | ................(emacsql-escape- | 
| 5540 | 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c | format..................(emacsql | 
| 5560 | 2d 65 73 63 61 70 65 2d 73 63 61 6c 61 72 20 69    74 65 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 | -escape-scalar.item))))......... | 
| 5580 | 20 20 20 20 20 69 6e 74 6f 20 70 61 72 74 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 | .....into.parts..............do. | 
| 55a0 | 28 73 65 74 71 20 6c 61 73 74 20 69 74 65 6d 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 | (setq.last.item)..............fi | 
| 55c0 | 6e 61 6c 6c 79 20 28 63 6c 2d 72 65 74 75 72 6e    20 28 73 74 72 69 6e 67 2d 6a 6f 69 6e 20 70 61 | nally.(cl-return.(string-join.pa | 
| 55e0 | 72 74 73 20 22 20 22 29 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 70 72 65 | rts.".")))))..(defun.emacsql-pre | 
| 5600 | 70 61 72 65 20 28 73 71 6c 29 0a 20 20 22 45 78    70 61 6e 64 20 53 51 4c 20 28 73 74 72 69 6e 67 | pare.(sql)..."Expand.SQL.(string | 
| 5620 | 20 6f 72 20 73 65 78 70 29 20 69 6e 74 6f 20 61    20 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d | .or.sexp).into.a.prepared.statem | 
| 5640 | 65 6e 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28    63 61 63 68 65 20 65 6d 61 63 73 71 6c 2d 70 72 | ent."...(let*.((cache.emacsql-pr | 
| 5660 | 65 70 61 72 65 2d 63 61 63 68 65 29 0a 20 20 20    20 20 20 20 20 20 28 6b 65 79 20 28 63 6f 6e 73 | epare-cache)..........(key.(cons | 
| 5680 | 20 65 6d 61 63 73 71 6c 2d 74 79 70 65 2d 6d 61    70 20 73 71 6c 29 29 29 0a 20 20 20 20 28 6f 72 | .emacsql-type-map.sql))).....(or | 
| 56a0 | 20 28 67 65 74 68 61 73 68 20 6b 65 79 20 63 61    63 68 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 | .(gethash.key.cache).........(se | 
| 56c0 | 74 66 20 28 67 65 74 68 61 73 68 20 6b 65 79 20    63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 | tf.(gethash.key.cache).......... | 
| 56e0 | 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67    70 20 73 71 6c 29 0a 20 20 20 20 20 20 20 20 20 | .....(if.(stringp.sql).......... | 
| 5700 | 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 71    6c 2d 70 72 65 70 61 72 65 2d 2d 73 74 72 69 6e | .........(emacsql-prepare--strin | 
| 5720 | 67 20 73 71 6c 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d | g.sql).................(emacsql- | 
| 5740 | 70 72 65 70 61 72 65 2d 2d 73 65 78 70 20 73 71    6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | prepare--sexp.sql))))))..(defun. | 
| 5760 | 65 6d 61 63 73 71 6c 2d 66 6f 72 6d 61 74 20 28    65 78 70 61 6e 73 69 6f 6e 20 26 72 65 73 74 20 | emacsql-format.(expansion.&rest. | 
| 5780 | 61 72 67 73 29 0a 20 20 22 46 69 6c 6c 20 69 6e    20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 45 | args)..."Fill.in.the.variables.E | 
| 57a0 | 58 50 41 4e 53 49 4f 4e 20 77 69 74 68 20 41 52    47 53 2e 22 0a 20 20 28 63 6c 2d 64 65 73 74 72 | XPANSION.with.ARGS."...(cl-destr | 
| 57c0 | 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 66    6f 72 6d 61 74 20 2e 20 76 61 72 73 29 20 65 78 | ucturing-bind.(format...vars).ex | 
| 57e0 | 70 61 6e 73 69 6f 6e 0a 20 20 20 20 28 6c 65 74    20 28 28 70 72 69 6e 74 2d 6c 65 76 65 6c 20 6e | pansion.....(let.((print-level.n | 
| 5800 | 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 70    72 69 6e 74 2d 6c 65 6e 67 74 68 20 6e 69 6c 29 | il)...........(print-length.nil) | 
| 5820 | 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23    27 66 6f 72 6d 61 74 20 66 6f 72 6d 61 74 0a 20 | ).......(apply.#'format.format.. | 
| 5840 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d    6c 6f 6f 70 20 66 6f 72 20 28 69 20 2e 20 6b 69 | ............(cl-loop.for.(i...ki | 
| 5860 | 6e 64 29 20 69 6e 20 76 61 72 73 20 63 6f 6c 6c    65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | nd).in.vars.collect............. | 
| 5880 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28    28 74 68 69 6e 67 20 28 6e 74 68 20 69 20 61 72 | ..........(let.((thing.(nth.i.ar | 
| 58a0 | 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | gs))).........................(c | 
| 58c0 | 6c 2d 63 61 73 65 20 6b 69 6e 64 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-case.kind..................... | 
| 58e0 | 20 20 20 20 20 20 28 3a 69 64 65 6e 74 69 66 69    65 72 20 28 65 6d 61 63 73 71 6c 2d 65 73 63 61 | ......(:identifier.(emacsql-esca | 
| 5900 | 70 65 2d 69 64 65 6e 74 69 66 69 65 72 20 74 68    69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | pe-identifier.thing))........... | 
| 5920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3a 73 63 61 6c 61 72 20 28 65 6d 61 63 73 71 | ................(:scalar.(emacsq | 
| 5940 | 6c 2d 65 73 63 61 70 65 2d 73 63 61 6c 61 72 20    74 68 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 | l-escape-scalar.thing))......... | 
| 5960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 76 65 63 74 6f 72 20 28 65 6d 61 63 | ..................(:vector.(emac | 
| 5980 | 73 71 6c 2d 65 73 63 61 70 65 2d 76 65 63 74 6f    72 20 74 68 69 6e 67 29 29 0a 20 20 20 20 20 20 | sql-escape-vector.thing))....... | 
| 59a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 3a 72 61 77 20 28 65 6d 61 63 73 | ....................(:raw.(emacs | 
| 59c0 | 71 6c 2d 65 73 63 61 70 65 2d 72 61 77 20 74 68    69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ql-escape-raw.thing))........... | 
| 59e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3a 73 63 68 65 6d 61 20 28 65 6d 61 63 73 71 | ................(:schema.(emacsq | 
| 5a00 | 6c 2d 70 72 65 70 61 72 65 2d 73 63 68 65 6d 61    20 74 68 69 6e 67 29 29 0a 20 20 20 20 20 20 20 | l-prepare-schema.thing))........ | 
| 5a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6f 74 68 65 72 77 69 73 65 0a 20 20 | ...................(otherwise... | 
| 5a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 71 | .........................(emacsq | 
| 5a60 | 6c 2d 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64    20 76 61 72 20 74 79 70 65 20 25 53 22 20 6b 69 | l-error."Invalid.var.type.%S".ki | 
| 5a80 | 6e 64 29 29 29 29 29 29 29 29 29 0a 0a 28 70 72    6f 76 69 64 65 20 27 65 6d 61 63 73 71 6c 2d 63 | nd)))))))))..(provide.'emacsql-c | 
| 5aa0 | 6f 6d 70 69 6c 65 72 29 0a 0a 3b 3b 3b 20 65 6d    61 63 73 71 6c 2d 63 6f 6d 70 69 6c 65 72 2e 65 | ompiler)..;;;.emacsql-compiler.e | 
| 5ac0 | 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | l.ends.here..................... | 
| 5ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5c00 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 | emacsql-4.3.1/emacsql-sqlite-mod | 
| 5c20 | 75 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ule.el.......................... | 
| 5c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 5c80 | 30 30 30 36 37 31 31 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 36 33 34 31 00 20 30 00 00 00 | 0006711.00000000000.016341..0... | 
| 5ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5d00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 5d20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 5d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 5e00 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69    74 65 2d 6d 6f 64 75 6c 65 2e 65 6c 20 2d 2d 2d | ;;;.emacsql-sqlite-module.el.--- | 
| 5e20 | 20 45 6d 61 63 53 51 4c 20 62 61 63 6b 2d 65 6e    64 20 66 6f 72 20 53 51 4c 69 74 65 20 75 73 69 | .EmacSQL.back-end.for.SQLite.usi | 
| 5e40 | 6e 67 20 61 20 6d 6f 64 75 6c 65 20 20 2d 2a 2d    20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 | ng.a.module..-*-.lexical-binding | 
| 5e60 | 3a 74 20 2d 2a 2d 0a 0a 3b 3b 20 54 68 69 73 20    69 73 20 66 72 65 65 20 61 6e 64 20 75 6e 65 6e | :t.-*-..;;.This.is.free.and.unen | 
| 5e80 | 63 75 6d 62 65 72 65 64 20 73 6f 66 74 77 61 72    65 20 72 65 6c 65 61 73 65 64 20 69 6e 74 6f 20 | cumbered.software.released.into. | 
| 5ea0 | 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69    6e 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4a | the.public.domain...;;.Author:.J | 
| 5ec0 | 6f 6e 61 73 20 42 65 72 6e 6f 75 6c 6c 69 20 3c    65 6d 61 63 73 2e 65 6d 61 63 73 71 6c 40 6a 6f | onas.Bernoulli.<emacs.emacsql@jo | 
| 5ee0 | 6e 61 73 2e 62 65 72 6e 6f 75 6c 6c 69 2e 64 65    76 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72 | nas.bernoulli.dev>.;;.Maintainer | 
| 5f00 | 3a 20 4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c 6c    69 20 3c 65 6d 61 63 73 2e 65 6d 61 63 73 71 6c | :.Jonas.Bernoulli.<emacs.emacsql | 
| 5f20 | 40 6a 6f 6e 61 73 2e 62 65 72 6e 6f 75 6c 6c 69    2e 64 65 76 3e 0a 0a 3b 3b 20 53 50 44 58 2d 4c | @jonas.bernoulli.dev>..;;.SPDX-L | 
| 5f40 | 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65    72 3a 20 55 6e 6c 69 63 65 6e 73 65 0a 0a 3b 3b | icense-Identifier:.Unlicense..;; | 
| 5f60 | 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b    3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 20 70 | ;.Commentary:..;;.This.library.p | 
| 5f80 | 72 6f 76 69 64 65 73 20 61 6e 20 45 6d 61 63 53    51 4c 20 62 61 63 6b 2d 65 6e 64 20 66 6f 72 20 | rovides.an.EmacSQL.back-end.for. | 
| 5fa0 | 53 51 4c 69 74 65 2c 20 77 68 69 63 68 20 75 73    65 73 0a 3b 3b 20 74 68 65 20 45 6d 61 63 73 20 | SQLite,.which.uses.;;.the.Emacs. | 
| 5fc0 | 6d 6f 64 75 6c 65 20 70 72 6f 76 69 64 65 64 20    62 79 20 74 68 65 20 60 73 71 6c 69 74 65 33 27 | module.provided.by.the.`sqlite3' | 
| 5fe0 | 20 70 61 63 6b 61 67 65 2e 0a 0a 3b 3b 3b 20 43    6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 | .package...;;;.Code:..(require.' | 
| 6000 | 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 29 0a    0a 28 72 65 71 75 69 72 65 20 27 73 71 6c 69 74 | emacsql-sqlite)..(require.'sqlit | 
| 6020 | 65 33 20 6e 69 6c 20 74 29 0a 28 64 65 63 6c 61    72 65 2d 66 75 6e 63 74 69 6f 6e 20 73 71 6c 69 | e3.nil.t).(declare-function.sqli | 
| 6040 | 74 65 33 2d 6f 70 65 6e 20 22 65 78 74 3a 73 71    6c 69 74 65 33 2d 61 70 69 22 29 0a 28 64 65 63 | te3-open."ext:sqlite3-api").(dec | 
| 6060 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 73 71    6c 69 74 65 33 2d 65 78 65 63 20 22 65 78 74 3a | lare-function.sqlite3-exec."ext: | 
| 6080 | 73 71 6c 69 74 65 33 2d 61 70 69 22 29 0a 28 64    65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 | sqlite3-api").(declare-function. | 
| 60a0 | 73 71 6c 69 74 65 33 2d 63 6c 6f 73 65 20 22 65    78 74 3a 73 71 6c 69 74 65 33 2d 61 70 69 22 29 | sqlite3-close."ext:sqlite3-api") | 
| 60c0 | 0a 28 64 65 66 76 61 72 20 73 71 6c 69 74 65 2d    6f 70 65 6e 2d 72 65 61 64 77 72 69 74 65 29 0a | .(defvar.sqlite-open-readwrite). | 
| 60e0 | 28 64 65 66 76 61 72 20 73 71 6c 69 74 65 2d 6f    70 65 6e 2d 63 72 65 61 74 65 29 0a 0a 28 65 6d | (defvar.sqlite-open-create)..(em | 
| 6100 | 61 63 73 71 6c 2d 72 65 67 69 73 74 65 72 2d 72    65 73 65 72 76 65 64 20 65 6d 61 63 73 71 6c 2d | acsql-register-reserved.emacsql- | 
| 6120 | 73 71 6c 69 74 65 2d 72 65 73 65 72 76 65 64 29    0a 0a 28 64 65 66 63 6c 61 73 73 20 65 6d 61 63 | sqlite-reserved)..(defclass.emac | 
| 6140 | 73 71 6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 75 6c    65 2d 63 6f 6e 6e 65 63 74 69 6f 6e 20 28 65 6d | sql-sqlite-module-connection.(em | 
| 6160 | 61 63 73 71 6c 2d 2d 73 71 6c 69 74 65 2d 62 61    73 65 29 20 28 29 0a 20 20 22 41 20 63 6f 6e 6e | acsql--sqlite-base).()..."A.conn | 
| 6180 | 65 63 74 69 6f 6e 20 74 6f 20 61 20 53 51 4c 69    74 65 20 64 61 74 61 62 61 73 65 20 75 73 69 6e | ection.to.a.SQLite.database.usin | 
| 61a0 | 67 20 61 20 6d 6f 64 75 6c 65 2e 22 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 69 6e 69 | g.a.module.")..(cl-defmethod.ini | 
| 61c0 | 74 69 61 6c 69 7a 65 2d 69 6e 73 74 61 6e 63 65    20 3a 61 66 74 65 72 0a 20 20 28 28 63 6f 6e 6e | tialize-instance.:after...((conn | 
| 61e0 | 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 73    71 6c 69 74 65 2d 6d 6f 64 75 6c 65 2d 63 6f 6e | ection.emacsql-sqlite-module-con | 
| 6200 | 6e 65 63 74 69 6f 6e 29 20 26 72 65 73 74 20 5f    29 0a 20 20 28 72 65 71 75 69 72 65 20 28 71 75 | nection).&rest._)...(require.(qu | 
| 6220 | 6f 74 65 20 73 71 6c 69 74 65 33 29 29 0a 20 20    28 6f 73 65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e | ote.sqlite3))...(oset.connection | 
| 6240 | 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20    28 73 71 6c 69 74 65 33 2d 6f 70 65 6e 20 28 6f | .handle.........(sqlite3-open.(o | 
| 6260 | 72 20 28 6f 72 65 66 20 63 6f 6e 6e 65 63 74 69    6f 6e 20 66 69 6c 65 29 20 22 3a 6d 65 6d 6f 72 | r.(oref.connection.file).":memor | 
| 6280 | 79 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 73 71 6c 69 74 | y:").......................sqlit | 
| 62a0 | 65 2d 6f 70 65 6e 2d 72 65 61 64 77 72 69 74 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-open-readwrite................ | 
| 62c0 | 20 20 20 20 20 20 20 73 71 6c 69 74 65 2d 6f 70    65 6e 2d 63 72 65 61 74 65 29 29 0a 20 20 28 65 | .......sqlite-open-create))...(e | 
| 62e0 | 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 73 65    74 2d 62 75 73 79 2d 74 69 6d 65 6f 75 74 20 63 | macsql-sqlite-set-busy-timeout.c | 
| 6300 | 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 28 65 6d    61 63 73 71 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e | onnection)...(emacsql.connection | 
| 6320 | 20 5b 3a 70 72 61 67 6d 61 20 28 3d 20 66 6f 72    65 69 67 6e 2d 6b 65 79 73 20 6f 6e 29 5d 29 0a | .[:pragma.(=.foreign-keys.on)]). | 
| 6340 | 20 20 28 65 6d 61 63 73 71 6c 2d 72 65 67 69 73    74 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 | ..(emacsql-register.connection)) | 
| 6360 | 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 65 6d 61 63    73 71 6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 75 6c | ..(cl-defun.emacsql-sqlite-modul | 
| 6380 | 65 20 28 66 69 6c 65 20 26 6b 65 79 20 64 65 62    75 67 29 0a 20 20 22 4f 70 65 6e 20 61 20 63 6f | e.(file.&key.debug)..."Open.a.co | 
| 63a0 | 6e 6e 65 63 74 65 64 20 74 6f 20 64 61 74 61 62    61 73 65 20 73 74 6f 72 65 64 20 69 6e 20 46 49 | nnected.to.database.stored.in.FI | 
| 63c0 | 4c 45 2e 0a 49 66 20 46 49 4c 45 20 69 73 20 6e    69 6c 20 75 73 65 20 61 6e 20 69 6e 2d 6d 65 6d | LE..If.FILE.is.nil.use.an.in-mem | 
| 63e0 | 6f 72 79 20 64 61 74 61 62 61 73 65 2e 0a 0a 3a    64 65 62 75 67 20 4c 4f 47 20 2d 2d 20 57 68 65 | ory.database...:debug.LOG.--.Whe | 
| 6400 | 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 6c 6f 67 20 61    6c 6c 20 53 51 4c 69 74 65 20 63 6f 6d 6d 61 6e | n.non-nil,.log.all.SQLite.comman | 
| 6420 | 64 73 20 74 6f 20 61 20 6c 6f 67 0a 62 75 66 66    65 72 2e 20 20 54 68 69 73 20 69 73 20 66 6f 72 | ds.to.a.log.buffer...This.is.for | 
| 6440 | 20 64 65 62 75 67 67 69 6e 67 20 70 75 72 70 6f    73 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 | .debugging.purposes."...(let.((c | 
| 6460 | 6f 6e 6e 65 63 74 69 6f 6e 20 28 6d 61 6b 65 2d    69 6e 73 74 61 6e 63 65 20 23 27 65 6d 61 63 73 | onnection.(make-instance.#'emacs | 
| 6480 | 71 6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 75 6c 65    2d 63 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20 20 | ql-sqlite-module-connection..... | 
| 64a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ...............................: | 
| 64c0 | 66 69 6c 65 20 66 69 6c 65 29 29 29 0a 20 20 20    20 28 77 68 65 6e 20 64 65 62 75 67 0a 20 20 20 | file.file))).....(when.debug.... | 
| 64e0 | 20 20 20 28 65 6d 61 63 73 71 6c 2d 65 6e 61 62    6c 65 2d 64 65 62 75 67 67 69 6e 67 20 63 6f 6e | ...(emacsql-enable-debugging.con | 
| 6500 | 6e 65 63 74 69 6f 6e 29 29 0a 20 20 20 20 63 6f    6e 6e 65 63 74 69 6f 6e 29 29 0a 0a 28 63 6c 2d | nection)).....connection))..(cl- | 
| 6520 | 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63 73 71    6c 2d 6c 69 76 65 2d 70 20 28 28 63 6f 6e 6e 65 | defmethod.emacsql-live-p.((conne | 
| 6540 | 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 73 71    6c 69 74 65 2d 6d 6f 64 75 6c 65 2d 63 6f 6e 6e | ction.emacsql-sqlite-module-conn | 
| 6560 | 65 63 74 69 6f 6e 29 29 0a 20 20 28 61 6e 64 20    28 6f 72 65 66 20 63 6f 6e 6e 65 63 74 69 6f 6e | ection))...(and.(oref.connection | 
| 6580 | 20 68 61 6e 64 6c 65 29 20 74 29 29 0a 0a 28 63    6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63 | .handle).t))..(cl-defmethod.emac | 
| 65a0 | 73 71 6c 2d 63 6c 6f 73 65 20 28 28 63 6f 6e 6e    65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 73 | sql-close.((connection.emacsql-s | 
| 65c0 | 71 6c 69 74 65 2d 6d 6f 64 75 6c 65 2d 63 6f 6e    6e 65 63 74 69 6f 6e 29 29 0a 20 20 28 73 71 6c | qlite-module-connection))...(sql | 
| 65e0 | 69 74 65 33 2d 63 6c 6f 73 65 20 28 6f 72 65 66    20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 6e 64 | ite3-close.(oref.connection.hand | 
| 6600 | 6c 65 29 29 0a 20 20 28 6f 73 65 74 20 63 6f 6e    6e 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65 20 6e | le))...(oset.connection.handle.n | 
| 6620 | 69 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74    68 6f 64 20 65 6d 61 63 73 71 6c 2d 73 65 6e 64 | il))..(cl-defmethod.emacsql-send | 
| 6640 | 2d 6d 65 73 73 61 67 65 0a 20 20 28 28 63 6f 6e    6e 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d | -message...((connection.emacsql- | 
| 6660 | 73 71 6c 69 74 65 2d 6d 6f 64 75 6c 65 2d 63 6f    6e 6e 65 63 74 69 6f 6e 29 20 6d 65 73 73 61 67 | sqlite-module-connection).messag | 
| 6680 | 65 29 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d    63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 28 | e)...(condition-case.err.......( | 
| 66a0 | 6c 65 74 20 28 28 69 6e 63 6c 75 64 65 2d 68 65    61 64 65 72 20 65 6d 61 63 73 71 6c 2d 69 6e 63 | let.((include-header.emacsql-inc | 
| 66c0 | 6c 75 64 65 2d 68 65 61 64 65 72 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 72 6f 77 73 20 28 | lude-header).............(rows.( | 
| 66e0 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 71 6c    69 74 65 33 2d 65 78 65 63 20 28 6f 72 65 66 20 | ))).........(sqlite3-exec.(oref. | 
| 6700 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 6e 64 6c    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | connection.handle).............. | 
| 6720 | 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........message................ | 
| 6740 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28    5f 20 72 6f 77 20 68 65 61 64 65 72 29 0a 20 20 | .......(lambda.(_.row.header)... | 
| 6760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 63 6c | ......................(when.incl | 
| 6780 | 75 64 65 2d 68 65 61 64 65 72 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ude-header...................... | 
| 67a0 | 20 20 20 20 20 28 70 75 73 68 20 68 65 61 64 65    72 20 72 6f 77 73 29 0a 20 20 20 20 20 20 20 20 | .....(push.header.rows)......... | 
| 67c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 69 6e 63 6c 75 64 65 2d | ..................(setq.include- | 
| 67e0 | 68 65 61 64 65 72 20 6e 69 6c 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | header.nil)).................... | 
| 6800 | 20 20 20 20 20 28 70 75 73 68 20 28 6d 61 70 63    61 6e 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c 29 | .....(push.(mapcan.(lambda.(col) | 
| 6820 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 6840 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(cond.................. | 
| 6860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 63 | ........................((null.c | 
| 6880 | 6f 6c 29 20 20 20 20 20 28 6c 69 73 74 20 6e 69    6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ol).....(list.nil))............. | 
| 68a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 | .............................((e | 
| 68c0 | 71 75 61 6c 20 63 6f 6c 20 22 22 29 20 28 6c 69    73 74 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 | qual.col."").(list.""))......... | 
| 68e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 6900 | 20 28 28 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74    65 2d 72 65 61 64 2d 63 6f 6c 75 6d 6e 20 63 6f | .((emacsql-sqlite-read-column.co | 
| 6920 | 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l))))........................... | 
| 6940 | 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 77 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............row)................ | 
| 6960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72    6f 77 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 | ...............rows))).........( | 
| 6980 | 6e 72 65 76 65 72 73 65 20 72 6f 77 73 29 29 0a    20 20 20 20 28 28 64 62 2d 65 72 72 6f 72 20 73 | nreverse.rows)).....((db-error.s | 
| 69a0 | 71 6c 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 28    70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c | ql-error)......(pcase-let*.((`(, | 
| 69c0 | 5f 20 2c 65 72 72 6d 73 67 20 2c 65 72 72 63 6f    64 65 29 20 65 72 72 29 0a 20 20 20 20 20 20 20 | _.,errmsg.,errcode).err)........ | 
| 69e0 | 20 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 5f    20 2c 5f 20 2c 73 69 67 6e 61 6c 20 2c 65 72 72 | ...........(`(,_.,_.,signal.,err | 
| 6a00 | 73 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 61 73 73 71 20 65 72 | str)....................(assq.er | 
| 6a20 | 72 63 6f 64 65 20 65 6d 61 63 73 71 6c 2d 73 71    6c 69 74 65 2d 65 72 72 6f 72 2d 63 6f 64 65 73 | rcode.emacsql-sqlite-error-codes | 
| 6a40 | 29 29 29 0a 20 20 20 20 20 20 20 28 73 69 67 6e    61 6c 20 28 6f 72 20 73 69 67 6e 61 6c 20 27 65 | )))........(signal.(or.signal.'e | 
| 6a60 | 6d 61 63 73 71 6c 2d 65 72 72 6f 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 | macsql-error)................(li | 
| 6a80 | 73 74 20 65 72 72 6d 73 67 20 65 72 72 63 6f 64    65 20 6e 69 6c 20 65 72 72 73 74 72 29 29 29 29 | st.errmsg.errcode.nil.errstr)))) | 
| 6aa0 | 0a 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20    20 28 73 69 67 6e 61 6c 20 27 65 6d 61 63 73 71 | .....(error......(signal.'emacsq | 
| 6ac0 | 6c 2d 65 72 72 6f 72 20 28 63 64 72 20 65 72 72    29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | l-error.(cdr.err)))))..(cl-defme | 
| 6ae0 | 74 68 6f 64 20 65 6d 61 63 73 71 6c 20 28 28 63    6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 | thod.emacsql.((connection.emacsq | 
| 6b00 | 6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 75 6c 65 2d    63 6f 6e 6e 65 63 74 69 6f 6e 29 20 73 71 6c 20 | l-sqlite-module-connection).sql. | 
| 6b20 | 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 28 65    6d 61 63 73 71 6c 2d 73 65 6e 64 2d 6d 65 73 73 | &rest.args)...(emacsql-send-mess | 
| 6b40 | 61 67 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 28    61 70 70 6c 79 20 23 27 65 6d 61 63 73 71 6c 2d | age.connection.(apply.#'emacsql- | 
| 6b60 | 63 6f 6d 70 69 6c 65 20 63 6f 6e 6e 65 63 74 69    6f 6e 20 73 71 6c 20 61 72 67 73 29 29 29 0a 0a | compile.connection.sql.args))).. | 
| 6b80 | 28 70 72 6f 76 69 64 65 20 27 65 6d 61 63 73 71    6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 75 6c 65 29 | (provide.'emacsql-sqlite-module) | 
| 6ba0 | 0a 0a 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 73 71    6c 69 74 65 2d 6d 6f 64 75 6c 65 2e 65 6c 20 65 | ..;;;.emacsql-sqlite-module.el.e | 
| 6bc0 | 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | nds.here........................ | 
| 6be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c00 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 73 71 6c 69 74 65 2e 65 6c 00 | emacsql-4.3.1/emacsql-sqlite.el. | 
| 6c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 6c80 | 30 30 33 31 35 37 31 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 30 36 30 00 20 30 00 00 00 | 0031571.00000000000.015060..0... | 
| 6ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 6d20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 6d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 6e00 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69    74 65 2e 65 6c 20 2d 2d 2d 20 43 6f 64 65 20 75 | ;;;.emacsql-sqlite.el.---.Code.u | 
| 6e20 | 73 65 64 20 62 79 20 62 6f 74 68 20 53 51 4c 69    74 65 20 62 61 63 6b 2d 65 6e 64 73 20 20 2d 2a | sed.by.both.SQLite.back-ends..-* | 
| 6e40 | 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e    67 3a 74 20 2d 2a 2d 0a 0a 3b 3b 20 54 68 69 73 | -.lexical-binding:t.-*-..;;.This | 
| 6e60 | 20 69 73 20 66 72 65 65 20 61 6e 64 20 75 6e 65    6e 63 75 6d 62 65 72 65 64 20 73 6f 66 74 77 61 | .is.free.and.unencumbered.softwa | 
| 6e80 | 72 65 20 72 65 6c 65 61 73 65 64 20 69 6e 74 6f    20 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 | re.released.into.the.public.doma | 
| 6ea0 | 69 6e 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20    4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c 6c 69 20 | in...;;.Author:.Jonas.Bernoulli. | 
| 6ec0 | 3c 65 6d 61 63 73 2e 65 6d 61 63 73 71 6c 40 6a    6f 6e 61 73 2e 62 65 72 6e 6f 75 6c 6c 69 2e 64 | <emacs.emacsql@jonas.bernoulli.d | 
| 6ee0 | 65 76 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65    72 3a 20 4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c | ev>.;;.Maintainer:.Jonas.Bernoul | 
| 6f00 | 6c 69 20 3c 65 6d 61 63 73 2e 65 6d 61 63 73 71    6c 40 6a 6f 6e 61 73 2e 62 65 72 6e 6f 75 6c 6c | li.<emacs.emacsql@jonas.bernoull | 
| 6f20 | 69 2e 64 65 76 3e 0a 0a 3b 3b 20 53 50 44 58 2d    4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 | i.dev>..;;.SPDX-License-Identifi | 
| 6f40 | 65 72 3a 20 55 6e 6c 69 63 65 6e 73 65 0a 0a 3b    3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a | er:.Unlicense..;;;.Commentary:.. | 
| 6f60 | 3b 3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 20    63 6f 6e 74 61 69 6e 73 20 63 6f 64 65 20 74 68 | ;;.This.library.contains.code.th | 
| 6f80 | 61 74 20 69 73 20 75 73 65 64 20 62 79 20 62 6f    74 68 20 53 51 4c 69 74 65 20 62 61 63 6b 2d 65 | at.is.used.by.both.SQLite.back-e | 
| 6fa0 | 6e 64 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a    0a 28 72 65 71 75 69 72 65 20 27 65 6d 61 63 73 | nds...;;;.Code:..(require.'emacs | 
| 6fc0 | 71 6c 29 0a 0a 3b 3b 3b 20 42 61 73 65 20 63 6c    61 73 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 65 | ql)..;;;.Base.class..(defclass.e | 
| 6fe0 | 6d 61 63 73 71 6c 2d 2d 73 71 6c 69 74 65 2d 62    61 73 65 20 28 65 6d 61 63 73 71 6c 2d 63 6f 6e | macsql--sqlite-base.(emacsql-con | 
| 7000 | 6e 65 63 74 69 6f 6e 29 0a 20 20 28 28 66 69 6c    65 20 3a 69 6e 69 74 61 72 67 20 3a 66 69 6c 65 | nection)...((file.:initarg.:file | 
| 7020 | 0a 20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 66    6f 72 6d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 | ..........:initform.nil......... | 
| 7040 | 20 3a 74 79 70 65 20 28 6f 72 20 6e 75 6c 6c 20    73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 | .:type.(or.null.string)......... | 
| 7060 | 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20    22 44 61 74 61 62 61 73 65 20 66 69 6c 65 20 6e | .:documentation."Database.file.n | 
| 7080 | 61 6d 65 2e 22 29 0a 20 20 20 28 74 79 70 65 73    20 3a 61 6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c | ame.")....(types.:allocation.:cl | 
| 70a0 | 61 73 73 0a 20 20 20 20 20 20 20 20 20 20 3a 72    65 61 64 65 72 20 65 6d 61 63 73 71 6c 2d 74 79 | ass...........:reader.emacsql-ty | 
| 70c0 | 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 3a 69    6e 69 74 66 6f 72 6d 20 27 28 28 69 6e 74 65 67 | pes...........:initform.'((integ | 
| 70e0 | 65 72 20 22 49 4e 54 45 47 45 52 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er."INTEGER")................... | 
| 7100 | 20 20 20 20 28 66 6c 6f 61 74 20 22 52 45 41 4c    22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(float."REAL").............. | 
| 7120 | 20 20 20 20 20 20 20 20 20 28 6f 62 6a 65 63 74    20 22 54 45 58 54 22 29 0a 20 20 20 20 20 20 20 | .........(object."TEXT")........ | 
| 7140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 69 6c 20 6e 69 6c 29 29 29 29 0a 20 20 3a 61 | ...............(nil.nil))))...:a | 
| 7160 | 62 73 74 72 61 63 74 20 74 29 0a 0a 3b 3b 3b 20    43 6f 6e 73 74 61 6e 74 73 0a 0a 28 64 65 66 63 | bstract.t)..;;;.Constants..(defc | 
| 7180 | 6f 6e 73 74 20 65 6d 61 63 73 71 6c 2d 73 71 6c    69 74 65 2d 72 65 73 65 72 76 65 64 0a 20 20 27 | onst.emacsql-sqlite-reserved...' | 
| 71a0 | 28 20 41 42 4f 52 54 20 41 43 54 49 4f 4e 20 41    44 44 20 41 46 54 45 52 20 41 4c 4c 20 41 4c 54 | (.ABORT.ACTION.ADD.AFTER.ALL.ALT | 
| 71c0 | 45 52 20 41 4e 41 4c 59 5a 45 20 41 4e 44 20 41    53 20 41 53 43 20 41 54 54 41 43 48 0a 20 20 20 | ER.ANALYZE.AND.AS.ASC.ATTACH.... | 
| 71e0 | 20 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20    42 45 46 4f 52 45 20 42 45 47 49 4e 20 42 45 54 | ..AUTOINCREMENT.BEFORE.BEGIN.BET | 
| 7200 | 57 45 45 4e 20 42 59 20 43 41 53 43 41 44 45 20    43 41 53 45 20 43 41 53 54 20 43 48 45 43 4b 0a | WEEN.BY.CASCADE.CASE.CAST.CHECK. | 
| 7220 | 20 20 20 20 20 43 4f 4c 4c 41 54 45 20 43 4f 4c    55 4d 4e 20 43 4f 4d 4d 49 54 20 43 4f 4e 46 4c | .....COLLATE.COLUMN.COMMIT.CONFL | 
| 7240 | 49 43 54 20 43 4f 4e 53 54 52 41 49 4e 54 20 43    52 45 41 54 45 20 43 52 4f 53 53 0a 20 20 20 20 | ICT.CONSTRAINT.CREATE.CROSS..... | 
| 7260 | 20 43 55 52 52 45 4e 54 5f 44 41 54 45 20 43 55    52 52 45 4e 54 5f 54 49 4d 45 20 43 55 52 52 45 | .CURRENT_DATE.CURRENT_TIME.CURRE | 
| 7280 | 4e 54 5f 54 49 4d 45 53 54 41 4d 50 20 44 41 54    41 42 41 53 45 20 44 45 46 41 55 4c 54 0a 20 20 | NT_TIMESTAMP.DATABASE.DEFAULT... | 
| 72a0 | 20 20 20 44 45 46 45 52 52 41 42 4c 45 20 44 45    46 45 52 52 45 44 20 44 45 4c 45 54 45 20 44 45 | ...DEFERRABLE.DEFERRED.DELETE.DE | 
| 72c0 | 53 43 20 44 45 54 41 43 48 20 44 49 53 54 49 4e    43 54 20 44 52 4f 50 20 45 41 43 48 20 45 4c 53 | SC.DETACH.DISTINCT.DROP.EACH.ELS | 
| 72e0 | 45 20 45 4e 44 0a 20 20 20 20 20 45 53 43 41 50    45 20 45 58 43 45 50 54 20 45 58 43 4c 55 53 49 | E.END......ESCAPE.EXCEPT.EXCLUSI | 
| 7300 | 56 45 20 45 58 49 53 54 53 20 45 58 50 4c 41 49    4e 20 46 41 49 4c 20 46 4f 52 20 46 4f 52 45 49 | VE.EXISTS.EXPLAIN.FAIL.FOR.FOREI | 
| 7320 | 47 4e 20 46 52 4f 4d 20 46 55 4c 4c 0a 20 20 20    20 20 47 4c 4f 42 20 47 52 4f 55 50 20 48 41 56 | GN.FROM.FULL......GLOB.GROUP.HAV | 
| 7340 | 49 4e 47 20 49 46 20 49 47 4e 4f 52 45 20 49 4d    4d 45 44 49 41 54 45 20 49 4e 20 49 4e 44 45 58 | ING.IF.IGNORE.IMMEDIATE.IN.INDEX | 
| 7360 | 20 49 4e 44 45 58 45 44 20 49 4e 49 54 49 41 4c    4c 59 0a 20 20 20 20 20 49 4e 4e 45 52 20 49 4e | .INDEXED.INITIALLY......INNER.IN | 
| 7380 | 53 45 52 54 20 49 4e 53 54 45 41 44 20 49 4e 54    45 52 53 45 43 54 20 49 4e 54 4f 20 49 53 20 49 | SERT.INSTEAD.INTERSECT.INTO.IS.I | 
| 73a0 | 53 4e 55 4c 4c 20 4a 4f 49 4e 20 4b 45 59 20 4c    45 46 54 20 4c 49 4b 45 0a 20 20 20 20 20 4c 49 | SNULL.JOIN.KEY.LEFT.LIKE......LI | 
| 73c0 | 4d 49 54 20 4d 41 54 43 48 20 4e 41 54 55 52 41    4c 20 4e 4f 20 4e 4f 54 20 4e 4f 54 4e 55 4c 4c | MIT.MATCH.NATURAL.NO.NOT.NOTNULL | 
| 73e0 | 20 4e 55 4c 4c 20 4f 46 20 4f 46 46 53 45 54 20    4f 4e 20 4f 52 20 4f 52 44 45 52 0a 20 20 20 20 | .NULL.OF.OFFSET.ON.OR.ORDER..... | 
| 7400 | 20 4f 55 54 45 52 20 50 4c 41 4e 20 50 52 41 47    4d 41 20 50 52 49 4d 41 52 59 20 51 55 45 52 59 | .OUTER.PLAN.PRAGMA.PRIMARY.QUERY | 
| 7420 | 20 52 41 49 53 45 20 52 45 43 55 52 53 49 56 45    20 52 45 46 45 52 45 4e 43 45 53 20 52 45 47 45 | .RAISE.RECURSIVE.REFERENCES.REGE | 
| 7440 | 58 50 0a 20 20 20 20 20 52 45 49 4e 44 45 58 20    52 45 4c 45 41 53 45 20 52 45 4e 41 4d 45 20 52 | XP......REINDEX.RELEASE.RENAME.R | 
| 7460 | 45 50 4c 41 43 45 20 52 45 53 54 52 49 43 54 20    52 49 47 48 54 20 52 4f 4c 4c 42 41 43 4b 20 52 | EPLACE.RESTRICT.RIGHT.ROLLBACK.R | 
| 7480 | 4f 57 0a 20 20 20 20 20 53 41 56 45 50 4f 49 4e    54 20 53 45 4c 45 43 54 20 53 45 54 20 54 41 42 | OW......SAVEPOINT.SELECT.SET.TAB | 
| 74a0 | 4c 45 20 54 45 4d 50 20 54 45 4d 50 4f 52 41 52    59 20 54 48 45 4e 20 54 4f 20 54 52 41 4e 53 41 | LE.TEMP.TEMPORARY.THEN.TO.TRANSA | 
| 74c0 | 43 54 49 4f 4e 0a 20 20 20 20 20 54 52 49 47 47    45 52 20 55 4e 49 4f 4e 20 55 4e 49 51 55 45 20 | CTION......TRIGGER.UNION.UNIQUE. | 
| 74e0 | 55 50 44 41 54 45 20 55 53 49 4e 47 20 56 41 43    55 55 4d 20 56 41 4c 55 45 53 20 56 49 45 57 20 | UPDATE.USING.VACUUM.VALUES.VIEW. | 
| 7500 | 56 49 52 54 55 41 4c 20 57 48 45 4e 0a 20 20 20    20 20 57 48 45 52 45 20 57 49 54 48 20 57 49 54 | VIRTUAL.WHEN......WHERE.WITH.WIT | 
| 7520 | 48 4f 55 54 29 0a 20 20 22 4c 69 73 74 20 6f 66    20 61 6c 6c 20 6f 66 20 53 51 4c 69 74 65 27 73 | HOUT)..."List.of.all.of.SQLite's | 
| 7540 | 20 72 65 73 65 72 76 65 64 20 77 6f 72 64 73 2e    0a 41 6c 73 6f 20 73 65 65 20 68 74 74 70 3a 2f | .reserved.words..Also.see.http:/ | 
| 7560 | 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f    6c 61 6e 67 5f 6b 65 79 77 6f 72 64 73 2e 68 74 | /www.sqlite.org/lang_keywords.ht | 
| 7580 | 6d 6c 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74    20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d | ml.")..(defconst.emacsql-sqlite- | 
| 75a0 | 65 72 72 6f 72 2d 63 6f 64 65 73 0a 20 20 27 28    28 31 20 20 53 51 4c 49 54 45 5f 45 52 52 4f 52 | error-codes...'((1..SQLITE_ERROR | 
| 75c0 | 20 20 20 20 20 20 65 6d 61 63 73 71 6c 2d 65 72    72 6f 72 20 20 20 20 20 20 22 53 51 4c 20 6c 6f | ......emacsql-error......"SQL.lo | 
| 75e0 | 67 69 63 20 65 72 72 6f 72 22 29 0a 20 20 20 20    28 32 20 20 53 51 4c 49 54 45 5f 49 4e 54 45 52 | gic.error").....(2..SQLITE_INTER | 
| 7600 | 4e 41 4c 20 20 20 65 6d 61 63 73 71 6c 2d 69 6e    74 65 72 6e 61 6c 20 20 20 6e 69 6c 29 0a 20 20 | NAL...emacsql-internal...nil)... | 
| 7620 | 20 20 28 33 20 20 53 51 4c 49 54 45 5f 50 45 52    4d 20 20 20 20 20 20 20 65 6d 61 63 73 71 6c 2d | ..(3..SQLITE_PERM.......emacsql- | 
| 7640 | 61 63 63 65 73 73 20 20 20 20 20 22 61 63 63 65    73 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 64 65 | access....."access.permission.de | 
| 7660 | 6e 69 65 64 22 29 0a 20 20 20 20 28 34 20 20 53    51 4c 49 54 45 5f 41 42 4f 52 54 20 20 20 20 20 | nied").....(4..SQLITE_ABORT..... | 
| 7680 | 20 65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 20 20    20 20 20 20 22 71 75 65 72 79 20 61 62 6f 72 74 | .emacsql-error......"query.abort | 
| 76a0 | 65 64 22 29 0a 20 20 20 20 28 35 20 20 53 51 4c    49 54 45 5f 42 55 53 59 20 20 20 20 20 20 20 65 | ed").....(5..SQLITE_BUSY.......e | 
| 76c0 | 6d 61 63 73 71 6c 2d 6c 6f 63 6b 65 64 20 20 20    20 20 22 64 61 74 61 62 61 73 65 20 69 73 20 6c | macsql-locked....."database.is.l | 
| 76e0 | 6f 63 6b 65 64 22 29 0a 20 20 20 20 28 36 20 20    53 51 4c 49 54 45 5f 4c 4f 43 4b 45 44 20 20 20 | ocked").....(6..SQLITE_LOCKED... | 
| 7700 | 20 20 65 6d 61 63 73 71 6c 2d 6c 6f 63 6b 65 64    20 20 20 20 20 22 64 61 74 61 62 61 73 65 20 74 | ..emacsql-locked....."database.t | 
| 7720 | 61 62 6c 65 20 69 73 20 6c 6f 63 6b 65 64 22 29    0a 20 20 20 20 28 37 20 20 53 51 4c 49 54 45 5f | able.is.locked").....(7..SQLITE_ | 
| 7740 | 4e 4f 4d 45 4d 20 20 20 20 20 20 65 6d 61 63 73    71 6c 2d 6d 65 6d 6f 72 79 20 20 20 20 20 22 6f | NOMEM......emacsql-memory....."o | 
| 7760 | 75 74 20 6f 66 20 6d 65 6d 6f 72 79 22 29 0a 20    20 20 20 28 38 20 20 53 51 4c 49 54 45 5f 52 45 | ut.of.memory").....(8..SQLITE_RE | 
| 7780 | 41 44 4f 4e 4c 59 20 20 20 65 6d 61 63 73 71 6c    2d 61 63 63 65 73 73 20 20 20 20 20 22 61 74 74 | ADONLY...emacsql-access....."att | 
| 77a0 | 65 6d 70 74 20 74 6f 20 77 72 69 74 65 20 61 20    72 65 61 64 6f 6e 6c 79 20 64 61 74 61 62 61 73 | empt.to.write.a.readonly.databas | 
| 77c0 | 65 22 29 0a 20 20 20 20 28 39 20 20 53 51 4c 49    54 45 5f 49 4e 54 45 52 52 55 50 54 20 20 65 6d | e").....(9..SQLITE_INTERRUPT..em | 
| 77e0 | 61 63 73 71 6c 2d 65 72 72 6f 72 20 20 20 20 20    20 22 69 6e 74 65 72 72 75 70 74 65 64 22 29 0a | acsql-error......"interrupted"). | 
| 7800 | 20 20 20 20 28 31 30 20 53 51 4c 49 54 45 5f 49    4f 45 52 52 20 20 20 20 20 20 65 6d 61 63 73 71 | ....(10.SQLITE_IOERR......emacsq | 
| 7820 | 6c 2d 61 63 63 65 73 73 20 20 20 20 20 22 64 69    73 6b 20 49 2f 4f 20 65 72 72 6f 72 22 29 0a 20 | l-access....."disk.I/O.error").. | 
| 7840 | 20 20 20 28 31 31 20 53 51 4c 49 54 45 5f 43 4f    52 52 55 50 54 20 20 20 20 65 6d 61 63 73 71 6c | ...(11.SQLITE_CORRUPT....emacsql | 
| 7860 | 2d 63 6f 72 72 75 70 74 69 6f 6e 20 22 64 61 74    61 62 61 73 65 20 64 69 73 6b 20 69 6d 61 67 65 | -corruption."database.disk.image | 
| 7880 | 20 69 73 20 6d 61 6c 66 6f 72 6d 65 64 22 29 0a    20 20 20 20 28 31 32 20 53 51 4c 49 54 45 5f 4e | .is.malformed").....(12.SQLITE_N | 
| 78a0 | 4f 54 46 4f 55 4e 44 20 20 20 65 6d 61 63 73 71    6c 2d 65 72 72 6f 72 20 20 20 20 20 20 22 75 6e | OTFOUND...emacsql-error......"un | 
| 78c0 | 6b 6e 6f 77 6e 20 6f 70 65 72 61 74 69 6f 6e 22    29 0a 20 20 20 20 28 31 33 20 53 51 4c 49 54 45 | known.operation").....(13.SQLITE | 
| 78e0 | 5f 46 55 4c 4c 20 20 20 20 20 20 20 65 6d 61 63    73 71 6c 2d 61 63 63 65 73 73 20 20 20 20 20 22 | _FULL.......emacsql-access....." | 
| 7900 | 64 61 74 61 62 61 73 65 20 6f 72 20 64 69 73 6b    20 69 73 20 66 75 6c 6c 22 29 0a 20 20 20 20 28 | database.or.disk.is.full").....( | 
| 7920 | 31 34 20 53 51 4c 49 54 45 5f 43 41 4e 54 4f 50    45 4e 20 20 20 65 6d 61 63 73 71 6c 2d 61 63 63 | 14.SQLITE_CANTOPEN...emacsql-acc | 
| 7940 | 65 73 73 20 20 20 20 20 22 75 6e 61 62 6c 65 20    74 6f 20 6f 70 65 6e 20 64 61 74 61 62 61 73 65 | ess....."unable.to.open.database | 
| 7960 | 20 66 69 6c 65 22 29 0a 20 20 20 20 28 31 35 20    53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 | .file").....(15.SQLITE_PROTOCOL. | 
| 7980 | 20 20 65 6d 61 63 73 71 6c 2d 61 63 63 65 73 73    20 20 20 20 20 22 6c 6f 63 6b 69 6e 67 20 70 72 | ..emacsql-access....."locking.pr | 
| 79a0 | 6f 74 6f 63 6f 6c 22 29 0a 20 20 20 20 28 31 36    20 53 51 4c 49 54 45 5f 45 4d 50 54 59 20 20 20 | otocol").....(16.SQLITE_EMPTY... | 
| 79c0 | 20 20 20 65 6d 61 63 73 71 6c 2d 63 6f 72 72 75    70 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 28 | ...emacsql-corruption.nil).....( | 
| 79e0 | 31 37 20 53 51 4c 49 54 45 5f 53 43 48 45 4d 41    20 20 20 20 20 65 6d 61 63 73 71 6c 2d 65 72 72 | 17.SQLITE_SCHEMA.....emacsql-err | 
| 7a00 | 6f 72 20 20 20 20 20 20 22 64 61 74 61 62 61 73    65 20 73 63 68 65 6d 61 20 68 61 73 20 63 68 61 | or......"database.schema.has.cha | 
| 7a20 | 6e 67 65 64 22 29 0a 20 20 20 20 28 31 38 20 53    51 4c 49 54 45 5f 54 4f 4f 42 49 47 20 20 20 20 | nged").....(18.SQLITE_TOOBIG.... | 
| 7a40 | 20 65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 20 20    20 20 20 20 22 73 74 72 69 6e 67 20 6f 72 20 62 | .emacsql-error......"string.or.b | 
| 7a60 | 6c 6f 62 20 74 6f 6f 20 62 69 67 22 29 0a 20 20    20 20 28 31 39 20 53 51 4c 49 54 45 5f 43 4f 4e | lob.too.big").....(19.SQLITE_CON | 
| 7a80 | 53 54 52 41 49 4e 54 20 65 6d 61 63 73 71 6c 2d    63 6f 6e 73 74 72 61 69 6e 74 20 22 63 6f 6e 73 | STRAINT.emacsql-constraint."cons | 
| 7aa0 | 74 72 61 69 6e 74 20 66 61 69 6c 65 64 22 29 0a    20 20 20 20 28 32 30 20 53 51 4c 49 54 45 5f 4d | traint.failed").....(20.SQLITE_M | 
| 7ac0 | 49 53 4d 41 54 43 48 20 20 20 65 6d 61 63 73 71    6c 2d 65 72 72 6f 72 20 20 20 20 20 20 22 64 61 | ISMATCH...emacsql-error......"da | 
| 7ae0 | 74 61 74 79 70 65 20 6d 69 73 6d 61 74 63 68 22    29 0a 20 20 20 20 28 32 31 20 53 51 4c 49 54 45 | tatype.mismatch").....(21.SQLITE | 
| 7b00 | 5f 4d 49 53 55 53 45 20 20 20 20 20 65 6d 61 63    73 71 6c 2d 65 72 72 6f 72 20 20 20 20 20 20 22 | _MISUSE.....emacsql-error......" | 
| 7b20 | 62 61 64 20 70 61 72 61 6d 65 74 65 72 20 6f 72    20 6f 74 68 65 72 20 41 50 49 20 6d 69 73 75 73 | bad.parameter.or.other.API.misus | 
| 7b40 | 65 22 29 0a 20 20 20 20 28 32 32 20 53 51 4c 49    54 45 5f 4e 4f 4c 46 53 20 20 20 20 20 20 65 6d | e").....(22.SQLITE_NOLFS......em | 
| 7b60 | 61 63 73 71 6c 2d 65 72 72 6f 72 20 20 20 20 20    20 22 6c 61 72 67 65 20 66 69 6c 65 20 73 75 70 | acsql-error......"large.file.sup | 
| 7b80 | 70 6f 72 74 20 69 73 20 64 69 73 61 62 6c 65 64    22 29 0a 20 20 20 20 28 32 33 20 53 51 4c 49 54 | port.is.disabled").....(23.SQLIT | 
| 7ba0 | 45 5f 41 55 54 48 20 20 20 20 20 20 20 65 6d 61    63 73 71 6c 2d 61 63 63 65 73 73 20 20 20 20 20 | E_AUTH.......emacsql-access..... | 
| 7bc0 | 22 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 64    65 6e 69 65 64 22 29 0a 20 20 20 20 28 32 34 20 | "authorization.denied").....(24. | 
| 7be0 | 53 51 4c 49 54 45 5f 46 4f 52 4d 41 54 20 20 20    20 20 65 6d 61 63 73 71 6c 2d 63 6f 72 72 75 70 | SQLITE_FORMAT.....emacsql-corrup | 
| 7c00 | 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 28 32    35 20 53 51 4c 49 54 45 5f 52 41 4e 47 45 20 20 | tion.nil).....(25.SQLITE_RANGE.. | 
| 7c20 | 20 20 20 20 65 6d 61 63 73 71 6c 2d 65 72 72 6f    72 20 20 20 20 20 20 22 63 6f 6c 75 6d 6e 20 69 | ....emacsql-error......"column.i | 
| 7c40 | 6e 64 65 78 20 6f 75 74 20 6f 66 20 72 61 6e 67    65 22 29 0a 20 20 20 20 28 32 36 20 53 51 4c 49 | ndex.out.of.range").....(26.SQLI | 
| 7c60 | 54 45 5f 4e 4f 54 41 44 42 20 20 20 20 20 65 6d    61 63 73 71 6c 2d 63 6f 72 72 75 70 74 69 6f 6e | TE_NOTADB.....emacsql-corruption | 
| 7c80 | 20 22 66 69 6c 65 20 69 73 20 6e 6f 74 20 61 20    64 61 74 61 62 61 73 65 22 29 0a 20 20 20 20 28 | ."file.is.not.a.database").....( | 
| 7ca0 | 32 37 20 53 51 4c 49 54 45 5f 4e 4f 54 49 43 45    20 20 20 20 20 65 6d 61 63 73 71 6c 2d 77 61 72 | 27.SQLITE_NOTICE.....emacsql-war | 
| 7cc0 | 6e 69 6e 67 20 20 20 20 22 6e 6f 74 69 66 69 63    61 74 69 6f 6e 20 6d 65 73 73 61 67 65 22 29 0a | ning...."notification.message"). | 
| 7ce0 | 20 20 20 20 28 32 38 20 53 51 4c 49 54 45 5f 57    41 52 4e 49 4e 47 20 20 20 20 65 6d 61 63 73 71 | ....(28.SQLITE_WARNING....emacsq | 
| 7d00 | 6c 2d 77 61 72 6e 69 6e 67 20 20 20 20 22 77 61    72 6e 69 6e 67 20 6d 65 73 73 61 67 65 22 29 29 | l-warning...."warning.message")) | 
| 7d20 | 0a 20 20 22 41 6c 69 73 74 20 6d 61 70 70 69 6e    67 20 53 51 4c 69 74 65 20 65 72 72 6f 72 20 63 | ..."Alist.mapping.SQLite.error.c | 
| 7d40 | 6f 64 65 73 20 74 6f 20 45 6d 61 63 53 51 4c 20    63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 45 6c 65 6d | odes.to.EmacSQL.conditions..Elem | 
| 7d60 | 65 6e 74 73 20 68 61 76 65 20 74 68 65 20 66 6f    72 6d 20 28 45 52 52 43 4f 44 45 20 53 59 4d 42 | ents.have.the.form.(ERRCODE.SYMB | 
| 7d80 | 4f 4c 49 43 2d 4e 41 4d 45 20 45 4d 41 43 53 51    4c 2d 45 52 52 4f 52 0a 45 52 52 53 54 52 29 2e | OLIC-NAME.EMACSQL-ERROR.ERRSTR). | 
| 7da0 | 20 20 41 6c 73 6f 20 73 65 65 20 68 74 74 70 73    3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 | ..Also.see.https://www.sqlite.or | 
| 7dc0 | 67 2f 72 65 73 63 6f 64 65 2e 68 74 6d 6c 2e 22    29 0a 0a 3b 3b 3b 20 56 61 72 69 61 62 6c 65 73 | g/rescode.html.")..;;;.Variables | 
| 7de0 | 0a 0a 28 64 65 66 76 61 72 20 65 6d 61 63 73 71    6c 2d 69 6e 63 6c 75 64 65 2d 68 65 61 64 65 72 | ..(defvar.emacsql-include-header | 
| 7e00 | 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20    74 6f 20 69 6e 63 6c 75 64 65 20 6e 61 6d 65 73 | .nil..."Whether.to.include.names | 
| 7e20 | 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 61 73 20 61    6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 6f 77 | .of.columns.as.an.additional.row | 
| 7e40 | 2e 0a 4e 65 76 65 72 20 65 6e 61 62 6c 65 20 74    68 69 73 20 67 6c 6f 62 61 6c 6c 79 2c 20 6f 6e | ..Never.enable.this.globally,.on | 
| 7e60 | 6c 79 20 6c 65 74 2d 62 69 6e 64 20 69 74 20 61    72 6f 75 6e 64 20 63 61 6c 6c 73 20 74 6f 20 60 | ly.let-bind.it.around.calls.to.` | 
| 7e80 | 65 6d 61 63 73 71 6c 27 2e 0a 43 75 72 72 65 6e    74 6c 79 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 | emacsql'..Currently.only.support | 
| 7ea0 | 65 64 20 62 79 20 60 65 6d 61 63 73 71 6c 2d 73    71 6c 69 74 65 2d 62 75 69 6c 74 69 6e 2d 63 6f | ed.by.`emacsql-sqlite-builtin-co | 
| 7ec0 | 6e 6e 65 63 74 69 6f 6e 27 20 61 6e 64 0a 60 65    6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 6d 6f | nnection'.and.`emacsql-sqlite-mo | 
| 7ee0 | 64 75 6c 65 2d 63 6f 6e 6e 65 63 74 69 6f 6e 27    2e 22 29 0a 0a 28 64 65 66 76 61 72 20 65 6d 61 | dule-connection'.")..(defvar.ema | 
| 7f00 | 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 73 79    2d 74 69 6d 65 6f 75 74 20 32 30 0a 20 20 22 53 | csql-sqlite-busy-timeout.20..."S | 
| 7f20 | 65 63 6f 6e 64 73 20 74 6f 20 77 61 69 74 20 77    68 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 61 63 | econds.to.wait.when.trying.to.ac | 
| 7f40 | 63 65 73 73 20 61 20 74 61 62 6c 65 20 62 6c 6f    63 6b 65 64 20 62 79 20 61 6e 6f 74 68 65 72 20 | cess.a.table.blocked.by.another. | 
| 7f60 | 70 72 6f 63 65 73 73 2e 0a 53 65 65 20 68 74 74    70 73 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e | process..See.https://www.sqlite. | 
| 7f80 | 6f 72 67 2f 63 33 72 65 66 2f 62 75 73 79 5f 74    69 6d 65 6f 75 74 2e 68 74 6d 6c 2e 22 29 0a 0a | org/c3ref/busy_timeout.html.").. | 
| 7fa0 | 3b 3b 3b 20 55 74 69 6c 69 74 69 65 73 0a 0a 28    64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 73 71 | ;;;.Utilities..(defun.emacsql-sq | 
| 7fc0 | 6c 69 74 65 2d 63 6f 6e 6e 65 63 74 69 6f 6e 20    28 76 61 72 69 61 62 6c 65 20 66 69 6c 65 20 26 | lite-connection.(variable.file.& | 
| 7fe0 | 6f 70 74 69 6f 6e 61 6c 20 73 65 74 75 70 20 75    73 65 2d 6d 6f 64 75 6c 65 29 0a 20 20 22 52 65 | optional.setup.use-module)..."Re | 
| 8000 | 74 75 72 6e 20 74 68 65 20 63 6f 6e 6e 65 63 74    69 6f 6e 20 73 74 6f 72 65 64 20 69 6e 20 56 41 | turn.the.connection.stored.in.VA | 
| 8020 | 52 49 41 42 4c 45 20 74 6f 20 74 68 65 20 64 61    74 61 62 61 73 65 20 69 6e 20 46 49 4c 45 2e 0a | RIABLE.to.the.database.in.FILE.. | 
| 8040 | 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66    20 56 41 52 49 41 42 4c 45 20 69 73 20 61 20 6c | .If.the.value.of.VARIABLE.is.a.l | 
| 8060 | 69 76 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e    6e 65 63 74 69 6f 6e 2c 20 72 65 74 75 72 6e 20 | ive.database.connection,.return. | 
| 8080 | 74 68 61 74 2e 0a 0a 4f 74 68 65 72 77 69 73 65    20 6f 70 65 6e 20 61 20 6e 65 77 20 63 6f 6e 6e | that...Otherwise.open.a.new.conn | 
| 80a0 | 65 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 64 61    74 61 62 61 73 65 20 69 6e 20 46 49 4c 45 20 61 | ection.to.the.database.in.FILE.a | 
| 80c0 | 6e 64 20 73 74 6f 72 65 20 74 68 65 0a 63 6f 6e    6e 65 63 74 69 6f 6e 20 69 6e 20 56 41 52 49 41 | nd.store.the.connection.in.VARIA | 
| 80e0 | 42 4c 45 2c 20 62 65 66 6f 72 65 20 72 65 74 75    72 6e 69 6e 67 20 69 74 2e 20 20 49 66 20 46 49 | BLE,.before.returning.it...If.FI | 
| 8100 | 4c 45 20 69 73 20 6e 69 6c 2c 20 75 73 65 20 61    6e 0a 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 | LE.is.nil,.use.an.in-memory.data | 
| 8120 | 62 61 73 65 2e 20 20 41 6c 77 61 79 73 20 65 6e    61 62 6c 65 20 73 75 70 70 6f 72 74 20 66 6f 72 | base...Always.enable.support.for | 
| 8140 | 20 66 6f 72 65 69 67 6e 20 6b 65 79 20 63 6f 6e    73 74 72 61 69 6e 73 2e 0a 49 66 20 6f 70 74 69 | .foreign.key.constrains..If.opti | 
| 8160 | 6f 6e 61 6c 20 53 45 54 55 50 20 69 73 20 6e 6f    6e 2d 6e 69 6c 2c 20 69 74 20 6d 75 73 74 20 62 | onal.SETUP.is.non-nil,.it.must.b | 
| 8180 | 65 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68    69 63 68 20 74 61 6b 65 73 20 74 68 65 0a 63 6f | e.a.function,.which.takes.the.co | 
| 81a0 | 6e 6e 65 63 74 69 6f 6e 20 61 73 20 6f 6e 6c 79    20 61 72 67 75 6d 65 6e 74 2e 20 20 54 68 69 73 | nnection.as.only.argument...This | 
| 81c0 | 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65    20 75 73 65 64 20 74 6f 20 69 6e 69 74 69 61 6c | .function.can.be.used.to.initial | 
| 81e0 | 69 7a 65 0a 74 61 62 6c 65 73 2c 20 66 6f 72 20    65 78 61 6d 70 6c 65 2e 0a 0a 49 66 20 6f 70 74 | ize.tables,.for.example...If.opt | 
| 8200 | 69 6f 6e 61 6c 20 55 53 45 2d 4d 4f 44 55 4c 45    20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 | ional.USE-MODULE.is.non-nil,.the | 
| 8220 | 6e 20 75 73 65 20 74 68 65 20 65 78 74 65 72 6e    61 6c 20 6d 6f 64 75 6c 65 20 65 76 65 6e 0a 77 | n.use.the.external.module.even.w | 
| 8240 | 68 65 6e 20 45 6d 61 63 73 20 77 61 73 20 62 75    69 6c 74 20 77 69 74 68 20 53 51 4c 69 74 65 20 | hen.Emacs.was.built.with.SQLite. | 
| 8260 | 73 75 70 70 6f 72 74 2e 20 20 54 68 69 73 20 69    73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 74 | support...This.is.intended.for.t | 
| 8280 | 65 73 74 69 6e 67 0a 70 75 72 70 6f 73 65 73 2e    22 0a 20 20 28 6f 72 20 28 6c 65 74 20 28 28 63 | esting.purposes."...(or.(let.((c | 
| 82a0 | 6f 6e 6e 65 63 74 69 6f 6e 20 28 73 79 6d 62 6f    6c 2d 76 61 6c 75 65 20 76 61 72 69 61 62 6c 65 | onnection.(symbol-value.variable | 
| 82c0 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 6e 64    20 63 6f 6e 6e 65 63 74 69 6f 6e 20 28 65 6d 61 | ))).........(and.connection.(ema | 
| 82e0 | 63 73 71 6c 2d 6c 69 76 65 2d 70 20 63 6f 6e 6e    65 63 74 69 6f 6e 29 20 63 6f 6e 6e 65 63 74 69 | csql-live-p.connection).connecti | 
| 8300 | 6f 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74 20    76 61 72 69 61 62 6c 65 20 28 65 6d 61 63 73 71 | on)).......(set.variable.(emacsq | 
| 8320 | 6c 2d 73 71 6c 69 74 65 2d 6f 70 65 6e 20 66 69    6c 65 20 6e 69 6c 20 73 65 74 75 70 20 75 73 65 | l-sqlite-open.file.nil.setup.use | 
| 8340 | 2d 6d 6f 64 75 6c 65 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 | -module))))..(defun.emacsql-sqli | 
| 8360 | 74 65 2d 6f 70 65 6e 20 28 66 69 6c 65 20 26 6f    70 74 69 6f 6e 61 6c 20 64 65 62 75 67 20 73 65 | te-open.(file.&optional.debug.se | 
| 8380 | 74 75 70 20 75 73 65 2d 6d 6f 64 75 6c 65 29 0a    20 20 22 4f 70 65 6e 20 61 20 63 6f 6e 6e 65 63 | tup.use-module)..."Open.a.connec | 
| 83a0 | 74 69 6f 6e 20 74 6f 20 74 68 65 20 64 61 74 61    62 61 73 65 20 73 74 6f 72 65 64 20 69 6e 20 46 | tion.to.the.database.stored.in.F | 
| 83c0 | 49 4c 45 20 75 73 69 6e 67 20 61 6e 20 53 51 4c    69 74 65 20 62 61 63 6b 2d 65 6e 64 2e 0a 0a 41 | ILE.using.an.SQLite.back-end...A | 
| 83e0 | 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 73 65    20 74 68 65 20 62 65 73 74 20 61 76 61 69 6c 61 | utomatically.use.the.best.availa | 
| 8400 | 62 6c 65 20 62 61 63 6b 2d 65 6e 64 2c 20 61 73    20 72 65 74 75 72 6e 65 64 20 62 79 0a 60 65 6d | ble.back-end,.as.returned.by.`em | 
| 8420 | 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 64 65 66    61 75 6c 74 2d 63 6f 6e 6e 65 63 74 69 6f 6e 27 | acsql-sqlite-default-connection' | 
| 8440 | 2e 0a 0a 49 66 20 46 49 4c 45 20 69 73 20 6e 69    6c 2c 20 75 73 65 20 61 6e 20 69 6e 2d 6d 65 6d | ...If.FILE.is.nil,.use.an.in-mem | 
| 8460 | 6f 72 79 20 64 61 74 61 62 61 73 65 2e 20 20 49    66 20 6f 70 74 69 6f 6e 61 6c 20 44 45 42 55 47 | ory.database...If.optional.DEBUG | 
| 8480 | 20 69 73 0a 6e 6f 6e 2d 6e 69 6c 2c 20 6c 6f 67    20 61 6c 6c 20 53 51 4c 69 74 65 20 63 6f 6d 6d | .is.non-nil,.log.all.SQLite.comm | 
| 84a0 | 61 6e 64 73 20 74 6f 20 61 20 6c 6f 67 20 62 75    66 66 65 72 2c 20 66 6f 72 20 64 65 62 75 67 67 | ands.to.a.log.buffer,.for.debugg | 
| 84c0 | 69 6e 67 0a 70 75 72 70 6f 73 65 73 2e 20 20 41    6c 77 61 79 73 20 65 6e 61 62 6c 65 20 73 75 70 | ing.purposes...Always.enable.sup | 
| 84e0 | 70 6f 72 74 20 66 6f 72 20 66 6f 72 65 69 67 6e    20 6b 65 79 20 63 6f 6e 73 74 72 61 69 6e 73 2e | port.for.foreign.key.constrains. | 
| 8500 | 0a 0a 49 66 20 6f 70 74 69 6f 6e 61 6c 20 53 45    54 55 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 | ..If.optional.SETUP.is.non-nil,. | 
| 8520 | 69 74 20 6d 75 73 74 20 62 65 20 61 20 66 75 6e    63 74 69 6f 6e 2c 20 77 68 69 63 68 20 74 61 6b | it.must.be.a.function,.which.tak | 
| 8540 | 65 73 20 74 68 65 0a 63 6f 6e 6e 65 63 74 69 6f    6e 20 61 73 20 6f 6e 6c 79 20 61 72 67 75 6d 65 | es.the.connection.as.only.argume | 
| 8560 | 6e 74 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69    6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 | nt...This.function.can.be.used.t | 
| 8580 | 6f 20 69 6e 69 74 69 61 6c 69 7a 65 0a 74 61 62    6c 65 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 | o.initialize.tables,.for.example | 
| 85a0 | 2e 0a 0a 49 66 20 6f 70 74 69 6f 6e 61 6c 20 55    53 45 2d 4d 4f 44 55 4c 45 20 69 73 20 6e 6f 6e | ...If.optional.USE-MODULE.is.non | 
| 85c0 | 2d 6e 69 6c 2c 20 74 68 65 6e 20 75 73 65 20 74    68 65 20 65 78 74 65 72 6e 61 6c 20 6d 6f 64 75 | -nil,.then.use.the.external.modu | 
| 85e0 | 6c 65 20 65 76 65 6e 0a 77 68 65 6e 20 45 6d 61    63 73 20 77 61 73 20 62 75 69 6c 74 20 77 69 74 | le.even.when.Emacs.was.built.wit | 
| 8600 | 68 20 53 51 4c 69 74 65 20 73 75 70 70 6f 72 74    2e 20 20 54 68 69 73 20 69 73 20 69 6e 74 65 6e | h.SQLite.support...This.is.inten | 
| 8620 | 64 65 64 20 66 6f 72 20 74 65 73 74 69 6e 67 0a    70 75 72 70 6f 73 65 73 2e 22 0a 20 20 28 77 68 | ded.for.testing.purposes."...(wh | 
| 8640 | 65 6e 20 66 69 6c 65 0a 20 20 20 20 28 6d 61 6b    65 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c | en.file.....(make-directory.(fil | 
| 8660 | 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79    20 66 69 6c 65 29 20 74 29 29 0a 20 20 28 6c 65 | e-name-directory.file).t))...(le | 
| 8680 | 74 2a 20 28 28 63 6c 61 73 73 20 28 65 6d 61 63    73 71 6c 2d 73 71 6c 69 74 65 2d 64 65 66 61 75 | t*.((class.(emacsql-sqlite-defau | 
| 86a0 | 6c 74 2d 63 6f 6e 6e 65 63 74 69 6f 6e 20 75 73    65 2d 6d 6f 64 75 6c 65 29 29 0a 20 20 20 20 20 | lt-connection.use-module))...... | 
| 86c0 | 20 20 20 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 20    28 6d 61 6b 65 2d 69 6e 73 74 61 6e 63 65 20 63 | ....(connection.(make-instance.c | 
| 86e0 | 6c 61 73 73 20 3a 66 69 6c 65 20 66 69 6c 65 29    29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 62 | lass.:file.file))).....(when.deb | 
| 8700 | 75 67 0a 20 20 20 20 20 20 28 65 6d 61 63 73 71    6c 2d 65 6e 61 62 6c 65 2d 64 65 62 75 67 67 69 | ug.......(emacsql-enable-debuggi | 
| 8720 | 6e 67 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a    20 20 20 20 28 65 6d 61 63 73 71 6c 20 63 6f 6e | ng.connection)).....(emacsql.con | 
| 8740 | 6e 65 63 74 69 6f 6e 20 5b 3a 70 72 61 67 6d 61    20 28 3d 20 66 6f 72 65 69 67 6e 2d 6b 65 79 73 | nection.[:pragma.(=.foreign-keys | 
| 8760 | 20 6f 6e 29 5d 29 0a 20 20 20 20 28 77 68 65 6e    20 73 65 74 75 70 0a 20 20 20 20 20 20 28 66 75 | .on)]).....(when.setup.......(fu | 
| 8780 | 6e 63 61 6c 6c 20 73 65 74 75 70 20 63 6f 6e 6e    65 63 74 69 6f 6e 29 29 0a 20 20 20 20 63 6f 6e | ncall.setup.connection)).....con | 
| 87a0 | 6e 65 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 75    6e 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 | nection))..(defun.emacsql-sqlite | 
| 87c0 | 2d 64 65 66 61 75 6c 74 2d 63 6f 6e 6e 65 63 74    69 6f 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 75 | -default-connection.(&optional.u | 
| 87e0 | 73 65 2d 6d 6f 64 75 6c 65 29 0a 20 20 22 44 65    74 65 72 6d 69 6e 65 20 61 6e 64 20 72 65 74 75 | se-module)..."Determine.and.retu | 
| 8800 | 72 6e 20 74 68 65 20 62 65 73 74 20 53 51 4c 69    74 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 63 6c | rn.the.best.SQLite.connection.cl | 
| 8820 | 61 73 73 2e 0a 0a 53 69 67 6e 61 6c 20 61 6e 20    65 72 72 6f 72 20 69 66 20 6e 6f 6e 65 20 6f 66 | ass...Signal.an.error.if.none.of | 
| 8840 | 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20    63 6c 61 73 73 65 73 20 63 61 6e 20 62 65 20 75 | .the.connection.classes.can.be.u | 
| 8860 | 73 65 64 2e 0a 0a 49 66 20 6f 70 74 69 6f 6e 61    6c 20 55 53 45 2d 4d 4f 44 55 4c 45 20 69 73 20 | sed...If.optional.USE-MODULE.is. | 
| 8880 | 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 6e 20 75 73    65 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 6d | non-nil,.then.use.the.external.m | 
| 88a0 | 6f 64 75 6c 65 20 65 76 65 6e 0a 77 68 65 6e 20    45 6d 61 63 73 20 77 61 73 20 62 75 69 6c 74 20 | odule.even.when.Emacs.was.built. | 
| 88c0 | 77 69 74 68 20 53 51 4c 69 74 65 20 73 75 70 70    6f 72 74 2e 20 20 54 68 69 73 20 69 73 20 69 6e | with.SQLite.support...This.is.in | 
| 88e0 | 74 65 6e 64 65 64 20 66 6f 72 20 74 65 73 74 69    6e 67 0a 70 75 72 70 6f 73 65 73 2e 22 0a 20 20 | tended.for.testing.purposes."... | 
| 8900 | 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 75 73    65 2d 6d 6f 64 75 6c 65 29 0a 20 20 20 20 20 20 | (or.(and.(not.use-module)....... | 
| 8920 | 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 27 73    71 6c 69 74 65 2d 61 76 61 69 6c 61 62 6c 65 2d | .....(fboundp.'sqlite-available- | 
| 8940 | 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73    71 6c 69 74 65 2d 61 76 61 69 6c 61 62 6c 65 2d | p)............(sqlite-available- | 
| 8960 | 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72    65 71 75 69 72 65 20 27 65 6d 61 63 73 71 6c 2d | p)............(require.'emacsql- | 
| 8980 | 73 71 6c 69 74 65 2d 62 75 69 6c 74 69 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 27 65 6d 61 63 | sqlite-builtin)............'emac | 
| 89a0 | 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 69 6c 74    69 6e 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 | sql-sqlite-builtin-connection).. | 
| 89c0 | 20 20 20 20 20 28 61 6e 64 20 28 62 6f 75 6e 64    70 20 27 6d 6f 64 75 6c 65 2d 66 69 6c 65 2d 73 | .....(and.(boundp.'module-file-s | 
| 89e0 | 75 66 66 69 78 29 0a 20 20 20 20 20 20 20 20 20    20 20 6d 6f 64 75 6c 65 2d 66 69 6c 65 2d 73 75 | uffix)............module-file-su | 
| 8a00 | 66 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 | ffix............(condition-case. | 
| 8a20 | 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 46 61 69 6c 75 72 65 20 6d 6f | nil................;;.Failure.mo | 
| 8a40 | 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 31 2e 20 60 6c 69 62 73 71 | des:................;;.1..`libsq | 
| 8a60 | 6c 69 74 65 27 20 73 68 61 72 65 64 20 6c 69 62    72 61 72 79 20 69 73 6e 27 74 20 61 76 61 69 6c | lite'.shared.library.isn't.avail | 
| 8a80 | 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 32 2e 20 55 73 65 72 20 | able.................;;.2..User. | 
| 8aa0 | 63 68 6f 6f 73 65 73 20 74 6f 20 6e 6f 74 20 63    6f 6d 70 69 6c 65 20 60 6c 69 62 73 71 6c 69 74 | chooses.to.not.compile.`libsqlit | 
| 8ac0 | 65 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 33 2e 20 60 6c 69 62 73 71 6c | e'.................;;.3..`libsql | 
| 8ae0 | 69 74 65 27 20 63 6f 6d 70 69 6c 61 74 69 6f 6e    20 66 61 69 6c 73 2e 0a 20 20 20 20 20 20 20 20 | ite'.compilation.fails.......... | 
| 8b00 | 20 20 20 20 20 20 20 28 61 6e 64 20 28 72 65 71    75 69 72 65 20 27 73 71 6c 69 74 65 33 29 0a 20 | .......(and.(require.'sqlite3).. | 
| 8b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 72 65 71 75 69 72 65 20 27 65 6d 61 | ...................(require.'ema | 
| 8b40 | 63 73 71 6c 2d 73 71 6c 69 74 65 2d 6d 6f 64 75    6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | csql-sqlite-module)............. | 
| 8b60 | 20 20 20 20 20 20 20 20 27 65 6d 61 63 73 71 6c    2d 73 71 6c 69 74 65 2d 6d 6f 64 75 6c 65 2d 63 | ........'emacsql-sqlite-module-c | 
| 8b80 | 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 | onnection)..............(error.. | 
| 8ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69    73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 20 27 65 | .............(display-warning.'e | 
| 8bc0 | 6d 61 63 73 71 6c 20 22 5c 0a 53 69 6e 63 65 20    79 6f 75 72 20 45 6d 61 63 73 20 64 6f 65 73 20 | macsql."\.Since.your.Emacs.does. | 
| 8be0 | 6e 6f 74 20 63 6f 6d 65 20 77 69 74 68 0a 62 75    69 6c 74 2d 69 6e 20 53 51 4c 69 74 65 20 73 75 | not.come.with.built-in.SQLite.su | 
| 8c00 | 70 70 6f 72 74 20 5b 31 5d 2c 20 62 75 74 20 64    6f 65 73 20 73 75 70 70 6f 72 74 20 43 20 6d 6f | pport.[1],.but.does.support.C.mo | 
| 8c20 | 64 75 6c 65 73 2c 20 77 65 20 63 61 6e 0a 75 73    65 20 61 6e 20 45 6d 61 63 53 51 4c 20 62 61 63 | dules,.we.can.use.an.EmacSQL.bac | 
| 8c40 | 6b 65 6e 64 20 74 68 61 74 20 72 65 6c 69 65 73    20 6f 6e 20 74 68 65 20 74 68 69 72 64 2d 70 61 | kend.that.relies.on.the.third-pa | 
| 8c60 | 72 74 79 20 60 73 71 6c 69 74 65 33 27 0a 70 61    63 6b 61 67 65 20 5b 32 5d 2e 0a 0a 50 6c 65 61 | rty.`sqlite3'.package.[2]...Plea | 
| 8c80 | 73 65 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 60    73 71 6c 69 74 65 33 27 20 45 6c 69 73 70 20 70 | se.install.the.`sqlite3'.Elisp.p | 
| 8ca0 | 61 63 6b 61 67 65 20 75 73 69 6e 67 20 79 6f 75    72 20 70 72 65 66 65 72 72 65 64 0a 45 6d 61 63 | ackage.using.your.preferred.Emac | 
| 8cc0 | 73 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65    72 2c 20 61 6e 64 20 69 6e 73 74 61 6c 6c 20 74 | s.package.manager,.and.install.t | 
| 8ce0 | 68 65 20 53 51 4c 69 74 65 20 73 68 61 72 65 64    20 6c 69 62 72 61 72 79 0a 75 73 69 6e 67 20 79 | he.SQLite.shared.library.using.y | 
| 8d00 | 6f 75 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e    27 73 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 | our.distribution's.package.manag | 
| 8d20 | 65 72 2e 20 20 54 68 61 74 20 70 61 63 6b 61 67    65 20 73 68 6f 75 6c 64 0a 62 65 20 6e 61 6d 65 | er...That.package.should.be.name | 
| 8d40 | 64 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65    20 60 6c 69 62 73 71 6c 69 74 65 33 27 20 5b 33 | d.something.like.`libsqlite3'.[3 | 
| 8d60 | 5d 20 61 6e 64 20 4e 4f 54 20 6a 75 73 74 20 60    73 71 6c 69 74 65 33 27 2e 0a 0a 54 68 65 20 6c | ].and.NOT.just.`sqlite3'...The.l | 
| 8d80 | 65 67 61 63 79 20 62 61 63 6b 65 6e 64 2c 20 77    68 69 63 68 20 75 73 65 73 20 61 20 63 75 73 74 | egacy.backend,.which.uses.a.cust | 
| 8da0 | 6f 6d 20 53 51 4c 69 74 65 20 65 78 65 63 75 74    61 62 6c 65 2c 20 68 61 73 0a 62 65 65 6e 20 72 | om.SQLite.executable,.has.been.r | 
| 8dc0 | 65 6d 6f 76 65 2c 20 73 6f 20 77 65 20 63 61 6e    20 6e 6f 20 6c 6f 6e 67 65 72 20 66 61 6c 6c 20 | emove,.so.we.can.no.longer.fall. | 
| 8de0 | 62 61 63 6b 20 74 6f 20 74 68 61 74 2e 0a 0a 5b    31 5d 3a 20 53 75 70 70 6f 72 74 65 64 20 73 69 | back.to.that...[1]:.Supported.si | 
| 8e00 | 6e 63 65 20 45 6d 61 63 73 20 32 39 2e 31 2c 20    70 72 6f 76 69 64 65 64 20 69 74 20 77 61 73 20 | nce.Emacs.29.1,.provided.it.was. | 
| 8e20 | 6e 6f 74 20 64 69 73 61 62 6c 65 64 0a 20 20 20    20 20 77 69 74 68 20 60 2d 2d 77 69 74 68 6f 75 | not.disabled......with.`--withou | 
| 8e40 | 74 2d 73 71 6c 69 74 65 33 27 2e 0a 5b 32 5d 3a    20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | t-sqlite3'..[2]:.https://github. | 
| 8e60 | 63 6f 6d 2f 70 65 6b 69 6e 67 64 75 63 6b 2f 65    6d 61 63 73 2d 73 71 6c 69 74 65 33 2d 61 70 69 | com/pekingduck/emacs-sqlite3-api | 
| 8e80 | 0a 5b 33 5d 3a 20 4f 6e 20 44 65 62 69 61 6e 20    68 74 74 70 73 3a 2f 2f 70 61 63 6b 61 67 65 73 | .[3]:.On.Debian.https://packages | 
| 8ea0 | 2e 64 65 62 69 61 6e 2e 6f 72 67 2f 62 75 73 74    65 72 2f 6c 69 62 73 71 6c 69 74 65 33 2d 30 22 | .debian.org/buster/libsqlite3-0" | 
| 8ec0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 54 68 65 20 62 75 66 66 65 72 20 64 69 | )...............;;.The.buffer.di | 
| 8ee0 | 73 70 6c 61 79 69 6e 67 20 74 68 65 20 77 61 72    6e 69 6e 67 20 6d 69 67 68 74 20 69 6d 6d 65 64 | splaying.the.warning.might.immed | 
| 8f00 | 69 61 74 65 6c 79 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 62 65 20 72 65 70 6c 61 | iately...............;;.be.repla | 
| 8f20 | 63 65 64 20 62 79 20 61 6e 6f 74 68 65 72 20 62    75 66 66 65 72 2c 20 62 65 66 6f 72 65 20 74 68 | ced.by.another.buffer,.before.th | 
| 8f40 | 65 20 75 73 65 72 20 67 65 74 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 63 | e.user.gets...............;;.a.c | 
| 8f60 | 68 61 6e 63 65 20 74 6f 20 73 65 65 20 69 74 2e    20 20 57 65 20 63 61 6e 6e 6f 74 20 68 61 76 65 | hance.to.see.it...We.cannot.have | 
| 8f80 | 20 74 68 61 74 2e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6c 65 74 20 28 66 6e 29 0a 20 | .that................(let.(fn).. | 
| 8fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 66 6e 20 28 6c 61 6d 62 64 61 20 | ...............(setq.fn.(lambda. | 
| 8fc0 | 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 | ()............................(r | 
| 8fe0 | 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 70 6f 73 74    2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 66 6e | emove-hook.'post-command-hook.fn | 
| 9000 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f | )............................(po | 
| 9020 | 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74    2d 62 75 66 66 65 72 20 22 2a 57 61 72 6e 69 6e | p-to-buffer.(get-buffer."*Warnin | 
| 9040 | 67 73 2a 22 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f | gs*")))).................(add-ho | 
| 9060 | 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64    2d 68 6f 6f 6b 20 66 6e 29 29 0a 20 20 20 20 20 | ok.'post-command-hook.fn))...... | 
| 9080 | 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a    20 20 20 20 20 20 28 65 72 72 6f 72 20 22 45 6d | .........nil))).......(error."Em | 
| 90a0 | 61 63 53 51 4c 20 63 6f 75 6c 64 20 6e 6f 74 20    66 69 6e 64 20 6f 72 20 63 6f 6d 70 69 6c 65 20 | acSQL.could.not.find.or.compile. | 
| 90c0 | 61 20 62 61 63 6b 2d 65 6e 64 22 29 29 29 0a 0a    28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 73 | a.back-end")))..(defun.emacsql-s | 
| 90e0 | 71 6c 69 74 65 2d 73 65 74 2d 62 75 73 79 2d 74    69 6d 65 6f 75 74 20 28 63 6f 6e 6e 65 63 74 69 | qlite-set-busy-timeout.(connecti | 
| 9100 | 6f 6e 29 0a 20 20 28 77 68 65 6e 20 65 6d 61 63    73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 73 79 2d | on)...(when.emacsql-sqlite-busy- | 
| 9120 | 74 69 6d 65 6f 75 74 0a 20 20 20 20 28 65 6d 61    63 73 71 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 | timeout.....(emacsql.connection. | 
| 9140 | 5b 3a 70 72 61 67 6d 61 20 28 3d 20 62 75 73 79    2d 74 69 6d 65 6f 75 74 20 24 73 31 29 5d 0a 20 | [:pragma.(=.busy-timeout.$s1)].. | 
| 9160 | 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 65    6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 | ............(*.emacsql-sqlite-bu | 
| 9180 | 73 79 2d 74 69 6d 65 6f 75 74 20 31 30 30 30 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 | sy-timeout.1000))))..(defun.emac | 
| 91a0 | 73 71 6c 2d 73 71 6c 69 74 65 2d 72 65 61 64 2d    63 6f 6c 75 6d 6e 20 28 73 74 72 69 6e 67 29 0a | sql-sqlite-read-column.(string). | 
| 91c0 | 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 6e    69 6c 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 | ..(let.((value.nil).........(beg | 
| 91e0 | 20 30 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64    20 28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29 | .0).........(end.(length.string) | 
| 9200 | 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c    20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 | )).....(while.(<.beg.end)....... | 
| 9220 | 28 6c 65 74 20 28 28 76 20 28 72 65 61 64 2d 66    72 6f 6d 2d 73 74 72 69 6e 67 20 73 74 72 69 6e | (let.((v.(read-from-string.strin | 
| 9240 | 67 20 62 65 67 29 29 29 0a 20 20 20 20 20 20 20    20 28 70 75 73 68 20 28 63 61 72 20 76 29 20 76 | g.beg))).........(push.(car.v).v | 
| 9260 | 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 28 73    65 74 71 20 62 65 67 20 28 63 64 72 20 76 29 29 | alue).........(setq.beg.(cdr.v)) | 
| 9280 | 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65    20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 | )).....(nreverse.value)))..(defu | 
| 92a0 | 6e 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65    2d 6c 69 73 74 2d 74 61 62 6c 65 73 20 28 63 6f | n.emacsql-sqlite-list-tables.(co | 
| 92c0 | 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 22 52 65 74    75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 73 79 | nnection)..."Return.a.list.of.sy | 
| 92e0 | 6d 62 6f 6c 73 20 69 64 65 6e 74 69 66 79 69 6e    67 20 74 61 62 6c 65 73 20 69 6e 20 43 4f 4e 4e | mbols.identifying.tables.in.CONN | 
| 9300 | 45 43 54 49 4f 4e 2e 0a 54 61 62 6c 65 73 20 77    68 6f 73 65 20 6e 61 6d 65 73 20 62 65 67 69 6e | ECTION..Tables.whose.names.begin | 
| 9320 | 20 77 69 74 68 20 5c 22 73 71 6c 69 74 65 5f 5c    22 2c 20 61 72 65 20 6e 6f 74 20 69 6e 63 6c 75 | .with.\"sqlite_\",.are.not.inclu | 
| 9340 | 64 65 64 0a 69 6e 20 74 68 65 20 72 65 74 75 72    6e 65 64 20 76 61 6c 75 65 2e 22 0a 20 20 28 6d | ded.in.the.returned.value."...(m | 
| 9360 | 61 70 63 61 72 20 23 27 63 61 72 0a 20 20 20 20    20 20 20 20 20 20 28 65 6d 61 63 73 71 6c 20 63 | apcar.#'car...........(emacsql.c | 
| 9380 | 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 5b 3a 73 | onnection....................[:s | 
| 93a0 | 65 6c 65 63 74 20 6e 61 6d 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | elect.name.....................; | 
| 93c0 | 3b 20 54 68 65 20 6e 65 77 20 6e 61 6d 65 20 69    73 20 60 73 71 6c 69 74 65 2d 73 63 68 65 6d 61 | ;.The.new.name.is.`sqlite-schema | 
| 93e0 | 27 2c 20 62 75 74 20 74 68 69 73 20 6e 61 6d 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ',.but.this.name................ | 
| 9400 | 20 20 20 20 20 3b 3b 20 69 73 20 73 75 70 70 6f    72 74 65 64 20 62 79 20 6f 6c 64 20 61 6e 64 20 | .....;;.is.supported.by.old.and. | 
| 9420 | 6e 65 77 20 53 51 4c 69 74 65 20 76 65 72 73 69    6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 | new.SQLite.versions............. | 
| 9440 | 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20    68 74 74 70 73 3a 2f 2f 77 77 77 2e 73 71 6c 69 | .........;;.See.https://www.sqli | 
| 9460 | 74 65 2e 6f 72 67 2f 73 63 68 65 6d 61 74 61 62    2e 68 74 6d 6c 2e 0a 20 20 20 20 20 20 20 20 20 | te.org/schematab.html........... | 
| 9480 | 20 20 20 20 20 20 20 20 20 20 20 3a 66 72 6f 6d    20 73 71 6c 69 74 65 2d 6d 61 73 74 65 72 0a 20 | ...........:from.sqlite-master.. | 
| 94a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3a 77 68 65 72 65 20 28 61 6e 64 20 28 | ...................:where.(and.( | 
| 94c0 | 3d 20 74 79 70 65 20 27 74 61 62 6c 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | =.type.'table).................. | 
| 94e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 6f 74 2d 6c 69 6b 65 20 6e 61 6d 65 20 22 73 | ...............(not-like.name."s | 
| 9500 | 71 6c 69 74 65 5f 25 22 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | qlite_%")).....................: | 
| 9520 | 6f 72 64 65 72 2d 62 79 20 5b 28 61 73 63 20 6e    61 6d 65 29 5d 5d 29 29 29 0a 0a 28 64 65 66 75 | order-by.[(asc.name)]])))..(defu | 
| 9540 | 6e 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65    2d 64 75 6d 70 2d 64 61 74 61 62 61 73 65 20 28 | n.emacsql-sqlite-dump-database.( | 
| 9560 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 26 6f 70 74 69    6f 6e 61 6c 20 76 65 72 73 69 6f 6e 70 29 0a 20 | connection.&optional.versionp).. | 
| 9580 | 20 22 44 75 6d 70 20 74 68 65 20 64 61 74 61 62    61 73 65 20 73 70 65 63 69 66 69 65 64 20 62 79 | ."Dump.the.database.specified.by | 
| 95a0 | 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 74 6f 20 61    20 66 69 6c 65 2e 0a 0a 54 68 65 20 64 75 6d 70 | .CONNECTION.to.a.file...The.dump | 
| 95c0 | 20 66 69 6c 65 20 69 73 20 70 6c 61 63 65 64 20    69 6e 20 74 68 65 20 73 61 6d 65 20 64 69 72 65 | .file.is.placed.in.the.same.dire | 
| 95e0 | 63 74 6f 72 79 20 61 73 20 74 68 65 20 64 61 74    61 62 61 73 65 0a 66 69 6c 65 20 61 6e 64 20 69 | ctory.as.the.database.file.and.i | 
| 9600 | 74 73 20 6e 61 6d 65 20 64 65 72 69 76 65 73 20    66 72 6f 6d 20 74 68 65 20 6e 61 6d 65 20 6f 66 | ts.name.derives.from.the.name.of | 
| 9620 | 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69    6c 65 2e 0a 54 68 65 20 73 75 66 66 69 78 20 69 | .the.database.file..The.suffix.i | 
| 9640 | 73 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20    5c 22 2e 73 71 6c 5c 22 20 61 6e 64 20 69 66 20 | s.replaced.with.\".sql\".and.if. | 
| 9660 | 6f 70 74 69 6f 6e 61 6c 20 56 45 52 53 49 4f 4e    50 20 69 73 0a 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 | optional.VERSIONP.is.non-nil,.th | 
| 9680 | 65 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 20    76 65 72 73 69 6f 6e 20 28 74 68 65 20 60 75 73 | en.the.database.version.(the.`us | 
| 96a0 | 65 72 5f 76 65 72 73 69 6f 6e 27 20 70 72 61 67    6d 61 29 0a 61 6e 64 20 61 20 74 69 6d 65 73 74 | er_version'.pragma).and.a.timest | 
| 96c0 | 61 6d 70 20 61 72 65 20 61 70 70 65 6e 64 65 64    20 74 6f 20 74 68 65 20 66 69 6c 65 20 6e 61 6d | amp.are.appended.to.the.file.nam | 
| 96e0 | 65 2e 0a 0a 44 75 6d 70 69 6e 67 20 69 73 20 64    6f 6e 65 20 75 73 69 6e 67 20 74 68 65 20 6f 66 | e...Dumping.is.done.using.the.of | 
| 9700 | 66 69 63 69 61 6c 20 60 73 71 6c 69 74 65 33 27    20 62 69 6e 61 72 79 2e 20 20 49 66 20 74 68 61 | ficial.`sqlite3'.binary...If.tha | 
| 9720 | 74 20 69 73 0a 6e 6f 74 20 61 76 61 69 6c 61 62    6c 65 20 61 6e 64 20 56 45 52 53 49 4f 4e 50 20 | t.is.not.available.and.VERSIONP. | 
| 9740 | 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 6e    20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69 | is.non-nil,.then.the.database.fi | 
| 9760 | 6c 65 20 69 73 0a 63 6f 70 69 65 64 20 69 6e 73    74 65 61 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 | le.is.copied.instead."...(let*.( | 
| 9780 | 28 76 65 72 73 69 6f 6e 20 28 63 61 61 72 20 28    65 6d 61 63 73 71 6c 20 63 6f 6e 6e 65 63 74 69 | (version.(caar.(emacsql.connecti | 
| 97a0 | 6f 6e 20 5b 3a 70 72 61 67 6d 61 20 75 73 65 72    2d 76 65 72 73 69 6f 6e 5d 29 29 29 0a 20 20 20 | on.[:pragma.user-version]))).... | 
| 97c0 | 20 20 20 20 20 20 28 64 62 20 28 6f 72 65 66 20    63 6f 6e 6e 65 63 74 69 6f 6e 20 66 69 6c 65 29 | ......(db.(oref.connection.file) | 
| 97e0 | 29 0a 20 20 20 20 20 20 20 20 20 28 64 62 20 28    69 66 20 28 73 79 6d 62 6f 6c 70 20 64 62 29 20 | )..........(db.(if.(symbolp.db). | 
| 9800 | 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 64 62    29 20 64 62 29 29 0a 20 20 20 20 20 20 20 20 20 | (symbol-value.db).db)).......... | 
| 9820 | 28 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65    2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 64 62 | (name.(file-name-nondirectory.db | 
| 9840 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 75 74    70 75 74 20 28 63 6f 6e 63 61 74 20 28 66 69 6c | ))..........(output.(concat.(fil | 
| 9860 | 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65    6e 73 69 6f 6e 20 64 62 29 0a 20 20 20 20 20 20 | e-name-sans-extension.db)....... | 
| 9880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 61 6e 64 20 76 65 72 73 69 6f 6e 70 | ...................(and.versionp | 
| 98a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( | 
| 98c0 | 63 6f 6e 63 61 74 20 28 66 6f 72 6d 61 74 20 22    2d 76 25 73 22 20 76 65 72 73 69 6f 6e 29 0a 20 | concat.(format."-v%s".version).. | 
| 98e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 9900 | 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d    65 2d 73 74 72 69 6e 67 20 22 2d 25 59 25 6d 25 | .....(format-time-string."-%Y%m% | 
| 9920 | 64 2d 25 48 25 4d 22 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d-%H%M")))...................... | 
| 9940 | 20 20 20 20 22 2e 73 71 6c 22 29 29 29 0a 20 20    20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6c | ....".sql"))).....(cond......((l | 
| 9960 | 6f 63 61 74 65 2d 66 69 6c 65 20 22 73 71 6c 69    74 65 33 22 20 65 78 65 63 2d 70 61 74 68 29 0a | ocate-file."sqlite3".exec-path). | 
| 9980 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64    20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 | ......(when.(and.(file-exists-p. | 
| 99a0 | 6f 75 74 70 75 74 29 20 76 65 72 73 69 6f 6e 70    29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 | output).versionp).........(error | 
| 99c0 | 20 22 43 61 6e 6e 6f 74 20 64 75 6d 70 20 64 61    74 61 62 61 73 65 3b 20 25 73 20 61 6c 72 65 61 | ."Cannot.dump.database;.%s.alrea | 
| 99e0 | 64 79 20 65 78 69 73 74 73 22 20 6f 75 74 70 75    74 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d | dy.exists".output)).......(with- | 
| 9a00 | 74 65 6d 70 2d 66 69 6c 65 20 6f 75 74 70 75 74    0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | temp-file.output.........(messag | 
| 9a20 | 65 20 22 44 75 6d 70 69 6e 67 20 25 73 20 64 61    74 61 62 61 73 65 20 74 6f 20 25 73 2e 2e 2e 22 | e."Dumping.%s.database.to.%s..." | 
| 9a40 | 20 6e 61 6d 65 20 6f 75 74 70 75 74 29 0a 20 20    20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a | .name.output).........(unless.(z | 
| 9a60 | 65 72 6f 70 20 28 73 61 76 65 2d 65 78 63 75 72    73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 | erop.(save-excursion............ | 
| 9a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 73 71 6c | ..............(call-process."sql | 
| 9aa0 | 69 74 65 33 22 20 6e 69 6c 20 74 20 6e 69 6c 20    64 62 20 22 2e 64 75 6d 70 22 29 29 29 0a 20 20 | ite3".nil.t.nil.db.".dump")))... | 
| 9ac0 | 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22    46 61 69 6c 65 64 20 74 6f 20 64 75 6d 70 20 25 | ........(error."Failed.to.dump.% | 
| 9ae0 | 73 22 20 64 62 29 29 0a 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 76 65 72 73 69 6f 6e 0a 20 20 | s".db)).........(when.version... | 
| 9b00 | 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20    28 66 6f 72 6d 61 74 20 22 50 52 41 47 4d 41 20 | ........(insert.(format."PRAGMA. | 
| 9b20 | 75 73 65 72 5f 76 65 72 73 69 6f 6e 3d 25 73 3b    5c 6e 22 20 76 65 72 73 69 6f 6e 29 29 29 0a 20 | user_version=%s;\n".version))).. | 
| 9b40 | 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 6f 75    74 70 75 74 20 63 6f 6e 74 61 69 6e 73 20 22 50 | .......;;.The.output.contains."P | 
| 9b60 | 52 41 47 4d 41 20 66 6f 72 65 69 67 6e 5f 6b 65    79 73 3d 4f 46 46 3b 22 2e 0a 20 20 20 20 20 20 | RAGMA.foreign_keys=OFF;"........ | 
| 9b80 | 20 20 3b 3b 20 43 68 61 6e 67 65 20 74 68 61 74    20 74 6f 20 61 76 6f 69 64 20 61 6c 61 72 6d 69 | ..;;.Change.that.to.avoid.alarmi | 
| 9ba0 | 6e 67 20 61 74 74 65 6e 74 69 76 65 20 75 73 65    72 73 2e 0a 20 20 20 20 20 20 20 20 28 77 68 65 | ng.attentive.users..........(whe | 
| 9bc0 | 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72    77 61 72 64 20 22 5e 50 52 41 47 4d 41 20 66 6f | n.(re-search-forward."^PRAGMA.fo | 
| 9be0 | 72 65 69 67 6e 5f 6b 65 79 73 3d 5c 5c 28 4f 46    46 5c 5c 29 3b 22 20 31 30 30 30 20 74 29 0a 20 | reign_keys=\\(OFF\\);".1000.t).. | 
| 9c00 | 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63    65 2d 6d 61 74 63 68 20 22 4f 4e 22 20 74 20 74 | .........(replace-match."ON".t.t | 
| 9c20 | 20 6e 69 6c 20 31 29 29 0a 20 20 20 20 20 20 20    20 28 6d 65 73 73 61 67 65 20 22 44 75 6d 70 69 | .nil.1)).........(message."Dumpi | 
| 9c40 | 6e 67 20 25 73 20 64 61 74 61 62 61 73 65 20 74    6f 20 25 73 2e 2e 2e 64 6f 6e 65 22 20 6e 61 6d | ng.%s.database.to.%s...done".nam | 
| 9c60 | 65 20 6f 75 74 70 75 74 29 29 29 0a 20 20 20 20    20 28 76 65 72 73 69 6f 6e 70 0a 20 20 20 20 20 | e.output)))......(versionp...... | 
| 9c80 | 20 28 73 65 74 71 20 6f 75 74 70 75 74 20 28 63    6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 | .(setq.output.(concat.(file-name | 
| 9ca0 | 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20    6f 75 74 70 75 74 29 20 22 2e 64 62 22 29 29 0a | -sans-extension.output).".db")). | 
| 9cc0 | 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22    43 61 6e 6e 6f 74 20 64 75 6d 70 20 64 61 74 61 | ......(message."Cannot.dump.data | 
| 9ce0 | 62 61 73 65 20 62 65 63 61 75 73 65 20 73 71 6c    69 74 65 33 20 62 69 6e 61 72 79 20 63 61 6e 6e | base.because.sqlite3.binary.cann | 
| 9d00 | 6f 74 20 62 65 20 66 6f 75 6e 64 22 29 0a 20 20    20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 | ot.be.found").......(when.(and.( | 
| 9d20 | 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 6f 75    74 70 75 74 29 20 76 65 72 73 69 6f 6e 70 29 0a | file-exists-p.output).versionp). | 
| 9d40 | 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22    43 61 6e 6e 6f 74 20 63 6f 70 79 20 64 61 74 61 | ........(error."Cannot.copy.data | 
| 9d60 | 62 61 73 65 3b 20 25 73 20 61 6c 72 65 61 64 79    20 65 78 69 73 74 73 22 20 6f 75 74 70 75 74 29 | base;.%s.already.exists".output) | 
| 9d80 | 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65    20 22 43 6f 70 79 69 6e 67 20 25 73 20 64 61 74 | ).......(message."Copying.%s.dat | 
| 9da0 | 61 62 61 73 65 20 74 6f 20 25 73 2e 2e 2e 22 20    6e 61 6d 65 20 6f 75 74 70 75 74 29 0a 20 20 20 | abase.to.%s...".name.output).... | 
| 9dc0 | 20 20 20 28 63 6f 70 79 2d 66 69 6c 65 20 64 62    20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 28 | ...(copy-file.db.output).......( | 
| 9de0 | 6d 65 73 73 61 67 65 20 22 43 6f 70 79 69 6e 67    20 25 73 20 64 61 74 61 62 61 73 65 20 74 6f 20 | message."Copying.%s.database.to. | 
| 9e00 | 25 73 2e 2e 2e 64 6f 6e 65 22 20 6e 61 6d 65 20    6f 75 74 70 75 74 29 29 0a 20 20 20 20 20 28 28 | %s...done".name.output))......(( | 
| 9e20 | 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 64 75    6d 70 20 64 61 74 61 62 61 73 65 3b 20 73 71 6c | error."Cannot.dump.database;.sql | 
| 9e40 | 69 74 65 33 20 62 69 6e 61 72 79 20 69 73 6e 27    74 20 61 76 61 69 6c 61 62 6c 65 22 29 29 29 29 | ite3.binary.isn't.available")))) | 
| 9e60 | 29 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 73 71    6c 2d 73 71 6c 69 74 65 2d 72 65 73 74 6f 72 65 | )..(defun.emacsql-sqlite-restore | 
| 9e80 | 2d 64 61 74 61 62 61 73 65 20 28 64 62 20 64 75    6d 70 29 0a 20 20 22 52 65 73 74 6f 72 65 20 64 | -database.(db.dump)..."Restore.d | 
| 9ea0 | 61 74 61 62 61 73 65 20 44 42 20 66 72 6f 6d 20    44 55 4d 50 2e 0a 0a 44 55 4d 50 20 69 73 20 61 | atabase.DB.from.DUMP...DUMP.is.a | 
| 9ec0 | 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67    20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e | .file.containing.SQL.statements. | 
| 9ee0 | 20 20 44 42 20 63 61 6e 20 62 65 20 74 68 65 20    66 69 6c 65 0a 69 6e 20 77 68 69 63 68 20 74 68 | ..DB.can.be.the.file.in.which.th | 
| 9f00 | 65 20 64 61 74 61 62 61 73 65 20 69 73 20 74 6f    20 62 65 20 73 74 6f 72 65 64 2c 20 6f 72 20 69 | e.database.is.to.be.stored,.or.i | 
| 9f20 | 74 20 63 61 6e 20 62 65 20 61 20 64 61 74 61 62    61 73 65 0a 63 6f 6e 6e 65 63 74 69 6f 6e 2e 20 | t.can.be.a.database.connection.. | 
| 9f40 | 20 49 6e 20 74 68 65 20 6c 61 74 74 65 72 20 63    61 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 | .In.the.latter.case.the.current. | 
| 9f60 | 64 61 74 61 62 61 73 65 20 69 73 20 66 69 72 73    74 0a 64 75 6d 70 65 64 20 74 6f 20 61 20 6e 65 | database.is.first.dumped.to.a.ne | 
| 9f80 | 77 20 66 69 6c 65 20 61 6e 64 20 74 68 65 20 63    6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20 63 6c 6f | w.file.and.the.connection.is.clo | 
| 9fa0 | 73 65 64 2e 20 20 54 68 65 6e 20 74 68 65 0a 64    61 74 61 62 61 73 65 20 69 73 20 72 65 73 74 6f | sed...Then.the.database.is.resto | 
| 9fc0 | 72 65 64 20 66 72 6f 6d 20 44 55 4d 50 2e 20 20    4e 6f 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f | red.from.DUMP...No.connection.to | 
| 9fe0 | 20 74 68 65 20 6e 65 77 0a 64 61 74 61 62 61 73    65 20 69 73 20 63 72 65 61 74 65 64 2e 22 0a 20 | .the.new.database.is.created.".. | 
| a000 | 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67    70 20 64 62 29 0a 20 20 20 20 28 65 6d 61 63 73 | .(unless.(stringp.db).....(emacs | 
| a020 | 71 6c 2d 73 71 6c 69 74 65 2d 64 75 6d 70 2d 64    61 74 61 62 61 73 65 20 64 62 20 74 29 0a 20 20 | ql-sqlite-dump-database.db.t)... | 
| a040 | 20 20 28 65 6d 61 63 73 71 6c 2d 63 6c 6f 73 65    20 28 70 72 6f 67 31 20 64 62 20 28 73 65 74 71 | ..(emacsql-close.(prog1.db.(setq | 
| a060 | 20 64 62 20 28 6f 72 65 66 20 64 62 20 66 69 6c    65 29 29 29 29 29 0a 20 20 28 77 69 74 68 2d 74 | .db.(oref.db.file)))))...(with-t | 
| a080 | 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28    75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 28 63 | emp-buffer.....(unless.(zerop.(c | 
| a0a0 | 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 73 71 6c    69 74 65 33 22 20 6e 69 6c 20 74 20 6e 69 6c 20 | all-process."sqlite3".nil.t.nil. | 
| a0c0 | 64 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | db.............................. | 
| a0e0 | 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2e 72 65    61 64 20 25 73 22 20 64 75 6d 70 29 29 29 0a 20 | ....(format.".read.%s".dump))).. | 
| a100 | 20 20 20 20 20 28 65 72 72 6f 72 20 22 46 61 69    6c 65 64 20 74 6f 20 72 65 61 64 20 25 73 3a 20 | .....(error."Failed.to.read.%s:. | 
| a120 | 25 73 22 20 64 75 6d 70 20 28 62 75 66 66 65 72    2d 73 74 72 69 6e 67 29 29 29 29 29 0a 0a 28 70 | %s".dump.(buffer-string)))))..(p | 
| a140 | 72 6f 76 69 64 65 20 27 65 6d 61 63 73 71 6c 2d    73 71 6c 69 74 65 29 0a 0a 3b 3b 3b 20 65 6d 61 | rovide.'emacsql-sqlite)..;;;.ema | 
| a160 | 63 73 71 6c 2d 73 71 6c 69 74 65 2e 65 6c 20 65    6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 | csql-sqlite.el.ends.here........ | 
| a180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a200 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 70 67 2e 65 6c 00 00 00 00 00 | emacsql-4.3.1/emacsql-pg.el..... | 
| a220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| a280 | 30 30 30 36 30 35 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 31 36 33 00 20 30 00 00 00 | 0006054.00000000000.014163..0... | 
| a2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| a320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| a340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| a400 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 70 67 2e 65    6c 20 2d 2d 2d 20 45 6d 61 63 53 51 4c 20 62 61 | ;;;.emacsql-pg.el.---.EmacSQL.ba | 
| a420 | 63 6b 2d 65 6e 64 20 66 6f 72 20 50 6f 73 74 67    72 65 53 51 4c 20 76 69 61 20 70 67 20 20 2d 2a | ck-end.for.PostgreSQL.via.pg..-* | 
| a440 | 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e    67 3a 74 20 2d 2a 2d 0a 0a 3b 3b 20 54 68 69 73 | -.lexical-binding:t.-*-..;;.This | 
| a460 | 20 69 73 20 66 72 65 65 20 61 6e 64 20 75 6e 65    6e 63 75 6d 62 65 72 65 64 20 73 6f 66 74 77 61 | .is.free.and.unencumbered.softwa | 
| a480 | 72 65 20 72 65 6c 65 61 73 65 64 20 69 6e 74 6f    20 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 | re.released.into.the.public.doma | 
| a4a0 | 69 6e 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20    43 68 72 69 73 74 6f 70 68 65 72 20 57 65 6c 6c | in...;;.Author:.Christopher.Well | 
| a4c0 | 6f 6e 73 20 3c 77 65 6c 6c 6f 6e 73 40 6e 75 6c    6c 70 72 6f 67 72 61 6d 2e 63 6f 6d 3e 0a 3b 3b | ons.<wellons@nullprogram.com>.;; | 
| a4e0 | 20 4d 61 69 6e 74 61 69 6e 65 72 3a 20 4a 6f 6e    61 73 20 42 65 72 6e 6f 75 6c 6c 69 20 3c 65 6d | .Maintainer:.Jonas.Bernoulli.<em | 
| a500 | 61 63 73 2e 65 6d 61 63 73 71 6c 40 6a 6f 6e 61    73 2e 62 65 72 6e 6f 75 6c 6c 69 2e 64 65 76 3e | acs.emacsql@jonas.bernoulli.dev> | 
| a520 | 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73    65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 55 6e | ..;;.SPDX-License-Identifier:.Un | 
| a540 | 6c 69 63 65 6e 73 65 0a 0a 3b 3b 3b 20 43 6f 6d    6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 | license..;;;.Commentary:..;;.Thi | 
| a560 | 73 20 6c 69 62 72 61 72 79 20 70 72 6f 76 69 64    65 73 20 61 6e 20 45 6d 61 63 53 51 4c 20 62 61 | s.library.provides.an.EmacSQL.ba | 
| a580 | 63 6b 2d 65 6e 64 20 66 6f 72 20 50 6f 73 74 67    72 65 53 51 4c 2c 20 77 68 69 63 68 0a 3b 3b 20 | ck-end.for.PostgreSQL,.which.;;. | 
| a5a0 | 75 73 65 73 20 74 68 65 20 60 70 67 27 20 70 61    63 6b 61 67 65 20 74 6f 20 64 69 72 65 63 74 6c | uses.the.`pg'.package.to.directl | 
| a5c0 | 79 20 73 70 65 61 6b 20 74 6f 20 74 68 65 20 64    61 74 61 62 61 73 65 2e 20 20 54 68 69 73 0a 3b | y.speak.to.the.database...This.; | 
| a5e0 | 3b 20 6c 69 62 72 61 72 79 20 72 65 71 75 69 72    65 73 20 61 74 20 6c 65 61 73 74 20 45 6d 61 63 | ;.library.requires.at.least.Emac | 
| a600 | 73 20 32 38 2e 31 2e 0a 0a 3b 3b 20 28 46 6f 72    20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 | s.28.1...;;.(For.an.alternative. | 
| a620 | 62 61 63 6b 2d 65 6e 64 20 66 6f 72 20 50 6f 73    74 67 72 65 53 51 4c 2c 20 73 65 65 20 60 65 6d | back-end.for.PostgreSQL,.see.`em | 
| a640 | 61 63 73 71 6c 2d 70 73 71 6c 27 2e 29 0a 0a 3b    3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 | acsql-psql'.)..;;;.Code:..(requi | 
| a660 | 72 65 20 27 65 6d 61 63 73 71 6c 29 0a 0a 28 69    66 20 28 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f | re.'emacsql)..(if.(>=.emacs-majo | 
| a680 | 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 0a 20 20    20 20 28 72 65 71 75 69 72 65 20 27 70 67 20 6e | r-version.28).....(require.'pg.n | 
| a6a0 | 69 6c 20 74 29 0a 20 20 28 6d 65 73 73 61 67 65    20 22 65 6d 61 63 73 71 6c 2d 70 67 2e 65 6c 20 | il.t)...(message."emacsql-pg.el. | 
| a6c0 | 72 65 71 75 69 72 65 73 20 45 6d 61 63 73 20 32    38 2e 31 20 6f 72 20 6c 61 74 65 72 22 29 29 0a | requires.Emacs.28.1.or.later")). | 
| a6e0 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f    6e 20 70 67 2d 63 6f 6e 6e 65 63 74 20 22 70 67 | (declare-function.pg-connect."pg | 
| a700 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 20 64 62 6e 61 6d 65 20 75 73 65 | "...................(.dbname.use | 
| a720 | 72 20 26 6f 70 74 69 6f 6e 61 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.&optional..................... | 
| a740 | 28 70 61 73 73 77 6f 72 64 20 22 22 29 20 28 68    6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29 | (password."").(host."localhost") | 
| a760 | 20 28 70 6f 72 74 20 35 34 33 32 29 20 28 74 6c    73 20 6e 69 6c 29 29 29 0a 28 64 65 63 6c 61 72 | .(port.5432).(tls.nil))).(declar | 
| a780 | 65 2d 66 75 6e 63 74 69 6f 6e 20 70 67 2d 64 69    73 63 6f 6e 6e 65 63 74 20 22 70 67 22 20 28 63 | e-function.pg-disconnect."pg".(c | 
| a7a0 | 6f 6e 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75    6e 63 74 69 6f 6e 20 70 67 2d 65 78 65 63 20 22 | on)).(declare-function.pg-exec." | 
| a7c0 | 70 67 22 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 20    26 72 65 73 74 20 61 72 67 73 29 29 0a 28 64 65 | pg".(connection.&rest.args)).(de | 
| a7e0 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70    67 2d 72 65 73 75 6c 74 20 22 70 67 22 20 28 72 | clare-function.pg-result."pg".(r | 
| a800 | 65 73 75 6c 74 20 77 68 61 74 20 26 72 65 73 74    20 61 72 67 29 29 0a 0a 28 64 65 66 63 6c 61 73 | esult.what.&rest.arg))..(defclas | 
| a820 | 73 20 65 6d 61 63 73 71 6c 2d 70 67 2d 63 6f 6e    6e 65 63 74 69 6f 6e 20 28 65 6d 61 63 73 71 6c | s.emacsql-pg-connection.(emacsql | 
| a840 | 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 28    28 70 67 63 6f 6e 20 3a 72 65 61 64 65 72 20 65 | -connection)...((pgcon.:reader.e | 
| a860 | 6d 61 63 73 71 6c 2d 70 67 2d 70 67 63 6f 6e 20    3a 69 6e 69 74 61 72 67 20 3a 70 67 63 6f 6e 29 | macsql-pg-pgcon.:initarg.:pgcon) | 
| a880 | 0a 20 20 20 28 64 62 6e 61 6d 65 20 3a 72 65 61    64 65 72 20 65 6d 61 63 73 71 6c 2d 70 67 2d 64 | ....(dbname.:reader.emacsql-pg-d | 
| a8a0 | 62 6e 61 6d 65 20 3a 69 6e 69 74 61 72 67 20 3a    64 62 6e 61 6d 65 29 0a 20 20 20 28 72 65 73 75 | bname.:initarg.:dbname)....(resu | 
| a8c0 | 6c 74 20 3a 61 63 63 65 73 73 6f 72 20 65 6d 61    63 73 71 6c 2d 70 67 2d 72 65 73 75 6c 74 29 0a | lt.:accessor.emacsql-pg-result). | 
| a8e0 | 20 20 20 28 74 79 70 65 73 20 3a 61 6c 6c 6f 63    61 74 69 6f 6e 20 3a 63 6c 61 73 73 0a 20 20 20 | ...(types.:allocation.:class.... | 
| a900 | 20 20 20 20 20 20 20 3a 72 65 61 64 65 72 20 65    6d 61 63 73 71 6c 2d 74 79 70 65 73 0a 20 20 20 | .......:reader.emacsql-types.... | 
| a920 | 20 20 20 20 20 20 20 3a 69 6e 69 74 66 6f 72 6d    20 27 28 28 69 6e 74 65 67 65 72 20 22 42 49 47 | .......:initform.'((integer."BIG | 
| a940 | 49 4e 54 22 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 6f | INT").......................(flo | 
| a960 | 61 74 20 22 44 4f 55 42 4c 45 20 50 52 45 43 49    53 49 4f 4e 22 29 0a 20 20 20 20 20 20 20 20 20 | at."DOUBLE.PRECISION").......... | 
| a980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 62    6a 65 63 74 20 22 54 45 58 54 22 29 0a 20 20 20 | .............(object."TEXT").... | 
| a9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6e 69 6c 20 22 54 45 58 54 22 29 29 | ...................(nil."TEXT")) | 
| a9c0 | 29 29 0a 20 20 22 41 20 63 6f 6e 6e 65 63 74 69    6f 6e 20 74 6f 20 61 20 50 6f 73 74 67 72 65 53 | ))..."A.connection.to.a.PostgreS | 
| a9e0 | 51 4c 20 64 61 74 61 62 61 73 65 20 76 69 61 20    70 67 2e 65 6c 2e 22 29 0a 0a 28 63 6c 2d 64 65 | QL.database.via.pg.el.")..(cl-de | 
| aa00 | 66 75 6e 20 65 6d 61 63 73 71 6c 2d 70 67 20 28    64 62 6e 61 6d 65 20 75 73 65 72 20 26 6b 65 79 | fun.emacsql-pg.(dbname.user.&key | 
| aa20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 | ..............................(h | 
| aa40 | 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 22 29    20 28 70 61 73 73 77 6f 72 64 20 22 22 29 20 28 | ost."localhost").(password."").( | 
| aa60 | 70 6f 72 74 20 35 34 33 32 29 20 64 65 62 75 67    29 0a 20 20 22 43 6f 6e 6e 65 63 74 20 74 6f 20 | port.5432).debug)..."Connect.to. | 
| aa80 | 61 20 50 6f 73 74 67 72 65 53 51 4c 20 73 65 72    76 65 72 20 75 73 69 6e 67 20 70 67 2e 65 6c 2e | a.PostgreSQL.server.using.pg.el. | 
| aaa0 | 22 0a 20 20 28 72 65 71 75 69 72 65 20 27 70 67    29 0a 20 20 28 6c 65 74 2a 20 28 28 70 67 63 6f | "...(require.'pg)...(let*.((pgco | 
| aac0 | 6e 20 28 70 67 2d 63 6f 6e 6e 65 63 74 20 64 62    6e 61 6d 65 20 75 73 65 72 20 70 61 73 73 77 6f | n.(pg-connect.dbname.user.passwo | 
| aae0 | 72 64 20 68 6f 73 74 20 70 6f 72 74 29 29 0a 20    20 20 20 20 20 20 20 20 28 63 6f 6e 6e 65 63 74 | rd.host.port))..........(connect | 
| ab00 | 69 6f 6e 20 28 6d 61 6b 65 2d 69 6e 73 74 61 6e    63 65 20 27 65 6d 61 63 73 71 6c 2d 70 67 2d 63 | ion.(make-instance.'emacsql-pg-c | 
| ab20 | 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onnection....................... | 
| ab40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68    61 6e 64 6c 65 20 28 61 6e 64 20 28 66 62 6f 75 | ..............:handle.(and.(fbou | 
| ab60 | 6e 64 70 20 27 70 67 63 6f 6e 2d 70 72 6f 63 65    73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ndp.'pgcon-process)............. | 
| ab80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| aba0 | 20 20 20 20 20 28 70 67 63 6f 6e 2d 70 72 6f 63    65 73 73 20 70 67 63 6f 6e 29 29 0a 20 20 20 20 | .....(pgcon-process.pgcon))..... | 
| abc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| abe0 | 3a 70 67 63 6f 6e 20 70 67 63 6f 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :pgcon.pgcon.................... | 
| ac00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 64 62 6e 61 6d 65 20 64 62 6e 61 6d 65 29 | .................:dbname.dbname) | 
| ac20 | 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 62    75 67 20 28 65 6d 61 63 73 71 6c 2d 65 6e 61 62 | )).....(when.debug.(emacsql-enab | 
| ac40 | 6c 65 2d 64 65 62 75 67 67 69 6e 67 20 63 6f 6e    6e 65 63 74 69 6f 6e 29 29 0a 20 20 20 20 28 65 | le-debugging.connection)).....(e | 
| ac60 | 6d 61 63 73 71 6c 20 63 6f 6e 6e 65 63 74 69 6f    6e 20 5b 3a 73 65 74 20 28 3d 20 64 65 66 61 75 | macsql.connection.[:set.(=.defau | 
| ac80 | 6c 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69    73 6f 6c 61 74 69 6f 6e 20 27 53 45 52 49 41 4c | lt-transaction-isolation.'SERIAL | 
| aca0 | 49 5a 41 42 4c 45 29 5d 29 0a 20 20 20 20 28 65    6d 61 63 73 71 6c 2d 72 65 67 69 73 74 65 72 20 | IZABLE)]).....(emacsql-register. | 
| acc0 | 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 | connection)))..(cl-defmethod.ema | 
| ace0 | 63 73 71 6c 2d 63 6c 6f 73 65 20 28 28 63 6f 6e    6e 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d | csql-close.((connection.emacsql- | 
| ad00 | 70 67 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a    20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 | pg-connection))...(ignore-errors | 
| ad20 | 20 28 70 67 2d 64 69 73 63 6f 6e 6e 65 63 74 20    28 65 6d 61 63 73 71 6c 2d 70 67 2d 70 67 63 6f | .(pg-disconnect.(emacsql-pg-pgco | 
| ad40 | 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 29 29    0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 | n.connection))))..(cl-defmethod. | 
| ad60 | 65 6d 61 63 73 71 6c 2d 73 65 6e 64 2d 6d 65 73    73 61 67 65 20 28 28 63 6f 6e 6e 65 63 74 69 6f | emacsql-send-message.((connectio | 
| ad80 | 6e 20 65 6d 61 63 73 71 6c 2d 70 67 2d 63 6f 6e    6e 65 63 74 69 6f 6e 29 20 6d 65 73 73 61 67 65 | n.emacsql-pg-connection).message | 
| ada0 | 29 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63    61 73 65 20 65 72 72 6f 72 0a 20 20 20 20 20 20 | )...(condition-case.error....... | 
| adc0 | 28 73 65 74 66 20 28 65 6d 61 63 73 71 6c 2d 70    67 2d 72 65 73 75 6c 74 20 63 6f 6e 6e 65 63 74 | (setf.(emacsql-pg-result.connect | 
| ade0 | 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 70 67 2d 65 78 65 63 20 28 65 6d 61 63 73 | ion).............(pg-exec.(emacs | 
| ae00 | 71 6c 2d 70 67 2d 70 67 63 6f 6e 20 63 6f 6e 6e    65 63 74 69 6f 6e 29 20 6d 65 73 73 61 67 65 29 | ql-pg-pgcon.connection).message) | 
| ae20 | 29 0a 20 20 20 20 28 65 72 72 6f 72 20 28 73 69    67 6e 61 6c 20 27 65 6d 61 63 73 71 6c 2d 65 72 | ).....(error.(signal.'emacsql-er | 
| ae40 | 72 6f 72 20 65 72 72 6f 72 29 29 29 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 | ror.error))))..(cl-defmethod.ema | 
| ae60 | 63 73 71 6c 2d 77 61 69 74 69 6e 67 2d 70 20 28    28 5f 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 | csql-waiting-p.((_connection.ema | 
| ae80 | 63 73 71 6c 2d 70 67 2d 63 6f 6e 6e 65 63 74 69    6f 6e 29 29 0a 20 20 3b 3b 20 70 67 2d 65 78 65 | csql-pg-connection))...;;.pg-exe | 
| aea0 | 63 20 77 69 6c 6c 20 62 6c 6f 63 6b 0a 20 20 74    29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | c.will.block...t)..(cl-defmethod | 
| aec0 | 20 65 6d 61 63 73 71 6c 2d 70 61 72 73 65 20 28    28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 | .emacsql-parse.((connection.emac | 
| aee0 | 73 71 6c 2d 70 67 2d 63 6f 6e 6e 65 63 74 69 6f    6e 29 29 0a 20 20 28 6c 65 74 20 28 28 74 75 70 | sql-pg-connection))...(let.((tup | 
| af00 | 6c 65 73 20 28 70 67 2d 72 65 73 75 6c 74 20 28    65 6d 61 63 73 71 6c 2d 70 67 2d 72 65 73 75 6c | les.(pg-result.(emacsql-pg-resul | 
| af20 | 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 3a 74    75 70 6c 65 73 29 29 29 0a 20 20 20 20 28 63 6c | t.connection).:tuples))).....(cl | 
| af40 | 2d 6c 6f 6f 70 20 66 6f 72 20 74 75 70 6c 65 20    69 6e 20 74 75 70 6c 65 73 20 63 6f 6c 6c 65 63 | -loop.for.tuple.in.tuples.collec | 
| af60 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 76 61 6c 75 | t..............(cl-loop.for.valu | 
| af80 | 65 20 69 6e 20 74 75 70 6c 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.in.tuple...................... | 
| afa0 | 20 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 76    61 6c 75 65 29 20 63 6f 6c 6c 65 63 74 20 28 72 | .when.(stringp.value).collect.(r | 
| afc0 | 65 61 64 20 76 61 6c 75 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ead.value)...................... | 
| afe0 | 20 65 6c 73 65 20 63 6f 6c 6c 65 63 74 20 76 61    6c 75 65 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 | .else.collect.value))))..(provid | 
| b000 | 65 20 27 65 6d 61 63 73 71 6c 2d 70 67 29 0a 0a    3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 70 67 2e 65 | e.'emacsql-pg)..;;;.emacsql-pg.e | 
| b020 | 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | l.ends.here..................... | 
| b040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b200 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 52 45    41 44 4d 45 2e 6d 64 00 00 00 00 00 00 00 00 00 | emacsql-4.3.1/README.md......... | 
| b220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| b280 | 30 30 33 34 32 36 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 30 37 33 00 20 30 00 00 00 | 0034264.00000000000.013073..0... | 
| b2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| b320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| b340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| b400 | 23 20 45 6d 61 63 53 51 4c 0a 0a 45 6d 61 63 53    51 4c 20 69 73 20 61 20 68 69 67 68 2d 6c 65 76 | #.EmacSQL..EmacSQL.is.a.high-lev | 
| b420 | 65 6c 20 45 6d 61 63 73 20 4c 69 73 70 20 66 72    6f 6e 74 2d 65 6e 64 20 66 6f 72 20 53 51 4c 69 | el.Emacs.Lisp.front-end.for.SQLi | 
| b440 | 74 65 2e 0a 0a 50 6f 73 74 67 72 65 53 51 4c 20    61 6e 64 20 4d 79 53 51 4c 20 61 72 65 20 61 6c | te...PostgreSQL.and.MySQL.are.al | 
| b460 | 73 6f 20 73 75 70 70 6f 72 74 65 64 2c 20 62 75    74 20 75 73 65 20 6f 66 20 74 68 65 73 65 20 63 | so.supported,.but.use.of.these.c | 
| b480 | 6f 6e 6e 65 63 74 6f 72 73 0a 69 73 20 6e 6f 74    20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 0a 0a 41 | onnectors.is.not.recommended...A | 
| b4a0 | 6e 79 20 5b 72 65 61 64 61 62 6c 65 20 6c 69 73    70 20 76 61 6c 75 65 5d 5b 72 65 61 64 61 62 6c | ny.[readable.lisp.value][readabl | 
| b4c0 | 65 5d 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64    20 61 73 20 61 20 76 61 6c 75 65 20 69 6e 0a 45 | e].can.be.stored.as.a.value.in.E | 
| b4e0 | 6d 61 63 53 51 4c 2c 20 69 6e 63 6c 75 64 69 6e    67 20 6e 75 6d 62 65 72 73 2c 20 73 74 72 69 6e | macSQL,.including.numbers,.strin | 
| b500 | 67 73 2c 20 73 79 6d 62 6f 6c 73 2c 20 6c 69 73    74 73 2c 20 76 65 63 74 6f 72 73 2c 20 61 6e 64 | gs,.symbols,.lists,.vectors,.and | 
| b520 | 0a 63 6c 6f 73 75 72 65 73 2e 20 45 6d 61 63 53    51 4c 20 68 61 73 20 6e 6f 20 63 6f 6e 63 65 70 | .closures..EmacSQL.has.no.concep | 
| b540 | 74 20 6f 66 20 22 54 45 58 54 22 20 76 61 6c 75    65 73 3b 20 69 74 27 73 20 61 6c 6c 20 6a 75 73 | t.of."TEXT".values;.it's.all.jus | 
| b560 | 74 20 6c 69 73 70 0a 6f 62 6a 65 63 74 73 2e 20    54 68 65 20 6c 69 73 70 20 6f 62 6a 65 63 74 20 | t.lisp.objects..The.lisp.object. | 
| b580 | 60 6e 69 6c 60 20 63 6f 72 72 65 73 70 6f 6e 64    73 20 31 3a 31 20 77 69 74 68 20 60 4e 55 4c 4c | `nil`.corresponds.1:1.with.`NULL | 
| b5a0 | 60 20 69 6e 20 74 68 65 0a 64 61 74 61 62 61 73    65 2e 0a 0a 52 65 71 75 69 72 65 73 20 45 6d 61 | `.in.the.database...Requires.Ema | 
| b5c0 | 63 73 20 32 36 20 6f 72 20 6c 61 74 65 72 2e 0a    0a 5b 21 5b 43 6f 6d 70 69 6c 65 5d 28 68 74 74 | cs.26.or.later...[](https://github.com/magit | 
| b640 | 2f 65 6d 61 63 73 71 6c 2f 61 63 74 69 6f 6e 73    2f 77 6f 72 6b 66 6c 6f 77 73 2f 63 6f 6d 70 69 | /emacsql/actions/workflows/compi | 
| b660 | 6c 65 2e 79 6d 6c 29 0a 5b 21 5b 54 65 73 74 5d    28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | le.yml).[](https:/ | 
| b6c0 | 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 69    74 2f 65 6d 61 63 73 71 6c 2f 61 63 74 69 6f 6e | /github.com/magit/emacsql/action | 
| b6e0 | 73 2f 77 6f 72 6b 66 6c 6f 77 73 2f 74 65 73 74    2e 79 6d 6c 29 0a 5b 21 5b 4e 6f 6e 47 4e 55 20 | s/workflows/test.yml).[](https: | 
| b740 | 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72    67 2f 6e 6f 6e 67 6e 75 2d 64 65 76 65 6c 2f 65 | //elpa.nongnu.org/nongnu-devel/e | 
| b760 | 6d 61 63 73 71 6c 2e 68 74 6d 6c 29 0a 5b 21 5b    4d 45 4c 50 41 20 53 74 61 62 6c 65 5d 28 68 74 | macsql.html).[](https://stab | 
| b7c0 | 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 65    6d 61 63 73 71 6c 29 0a 5b 21 5b 4d 45 4c 50 41 | le.melpa.org/#/emacsql).[](https://melpa.o | 
| b820 | 72 67 2f 23 2f 65 6d 61 63 73 71 6c 29 0a 0a 23    23 23 20 46 41 51 0a 23 23 23 23 20 57 68 79 20 | rg/#/emacsql)..###.FAQ.####.Why. | 
| b840 | 61 72 65 20 61 6c 6c 20 76 61 6c 75 65 73 20 73    74 6f 72 65 64 20 61 73 20 73 74 72 69 6e 67 73 | are.all.values.stored.as.strings | 
| b860 | 3f 0a 0a 45 6d 61 63 53 51 4c 20 69 73 20 6e 6f    74 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 69 6e | ?..EmacSQL.is.not.intended.to.in | 
| b880 | 74 65 72 61 63 74 20 77 69 74 68 20 61 72 62 69    74 72 61 72 79 20 64 61 74 61 62 61 73 65 73 2c | teract.with.arbitrary.databases, | 
| b8a0 | 20 62 75 74 20 74 6f 0a 62 65 20 61 6e 20 41 43    49 44 2d 63 6f 6d 70 6c 69 61 6e 74 20 64 61 74 | .but.to.be.an.ACID-compliant.dat | 
| b8c0 | 61 62 61 73 65 20 66 6f 72 20 45 6d 61 63 73 20    65 78 74 65 6e 73 69 6f 6e 73 2e 20 20 54 68 69 | abase.for.Emacs.extensions...Thi | 
| b8e0 | 73 20 6d 65 61 6e 73 20 74 68 61 74 0a 45 6d 61    63 53 51 4c 20 63 61 6e 6e 6f 74 20 62 65 20 75 | s.means.that.EmacSQL.cannot.be.u | 
| b900 | 73 65 64 20 77 69 74 68 20 61 20 72 65 67 75 6c    61 72 20 53 51 4c 20 64 61 74 61 62 61 73 65 20 | sed.with.a.regular.SQL.database. | 
| b920 | 75 73 65 64 20 62 79 20 6f 74 68 65 72 0a 6e 6f    6e 2d 45 6d 61 63 73 20 63 6c 69 65 6e 74 73 2e | used.by.other.non-Emacs.clients. | 
| b940 | 0a 0a 41 6c 6c 20 64 61 74 61 62 61 73 65 20 76    61 6c 75 65 73 20 6d 75 73 74 20 62 65 20 73 2d | ..All.database.values.must.be.s- | 
| b960 | 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 57 68 65    6e 20 45 6d 61 63 53 51 4c 20 73 74 6f 72 65 73 | expressions..When.EmacSQL.stores | 
| b980 | 20 61 0a 76 61 6c 75 65 20 e2 80 94 20 73 74 72    69 6e 67 2c 20 73 79 6d 62 6f 6c 2c 20 63 6f 6e | .a.value.....string,.symbol,.con | 
| b9a0 | 73 2c 20 65 74 63 2e 20 e2 80 94 20 69 74 20 69    73 20 70 72 69 6e 74 65 64 20 61 6e 64 20 77 72 | s,.etc......it.is.printed.and.wr | 
| b9c0 | 69 74 74 65 6e 20 74 6f 0a 74 68 65 20 64 61 74    61 62 61 73 65 20 69 6e 20 69 74 73 20 70 72 69 | itten.to.the.database.in.its.pri | 
| b9e0 | 6e 74 65 64 20 66 6f 72 6d 2e 20 53 74 72 69 6e    67 73 20 61 72 65 20 77 72 61 70 70 65 64 20 69 | nted.form..Strings.are.wrapped.i | 
| ba00 | 6e 20 71 75 6f 74 65 73 0a 61 6e 64 20 65 73 63    61 70 65 64 20 61 73 20 6e 65 63 65 73 73 61 72 | n.quotes.and.escaped.as.necessar | 
| ba20 | 79 2e 20 54 68 61 74 20 6d 65 61 6e 73 20 22 62    61 72 65 22 20 73 79 6d 62 6f 6c 73 20 69 6e 20 | y..That.means."bare".symbols.in. | 
| ba40 | 74 68 65 20 64 61 74 61 62 61 73 65 0a 67 65 6e    65 72 61 6c 6c 79 20 6c 6f 6f 6b 20 6c 69 6b 65 | the.database.generally.look.like | 
| ba60 | 20 73 74 72 69 6e 67 73 2e 20 54 68 65 20 6f 6e    6c 79 20 65 78 63 65 70 74 69 6f 6e 20 69 73 20 | .strings..The.only.exception.is. | 
| ba80 | 60 6e 69 6c 60 2c 20 77 68 69 63 68 20 69 73 0a    73 74 6f 72 65 64 20 61 73 20 60 4e 55 4c 4c 60 | `nil`,.which.is.stored.as.`NULL` | 
| baa0 | 2e 0a 0a 23 23 23 23 20 57 69 6c 6c 20 45 6d 61    63 53 51 4c 20 65 76 65 72 20 73 75 70 70 6f 72 | ...####.Will.EmacSQL.ever.suppor | 
| bac0 | 74 20 61 72 62 69 74 72 61 72 79 20 64 61 74 61    62 61 73 65 73 3f 0a 0a 54 68 65 20 61 75 74 68 | t.arbitrary.databases?..The.auth | 
| bae0 | 6f 72 20 6f 66 20 45 6d 61 63 53 51 4c 20 5b 74    68 69 6e 6b 73 5d 5b 6d 69 73 74 61 6b 65 5d 20 | or.of.EmacSQL.[thinks][mistake]. | 
| bb00 | 74 68 61 74 20 69 74 20 77 61 73 20 70 72 6f 62    61 62 6c 79 20 61 0a 64 65 73 69 67 6e 20 6d 69 | that.it.was.probably.a.design.mi | 
| bb20 | 73 74 61 6b 65 20 74 6f 20 72 65 73 74 72 69 63    74 20 69 74 20 74 6f 20 45 6d 61 63 73 20 62 79 | stake.to.restrict.it.to.Emacs.by | 
| bb40 | 20 73 74 6f 72 69 6e 67 20 6f 6e 6c 79 20 70 72    69 6e 74 65 64 20 76 61 6c 75 65 73 2c 0a 61 6e | .storing.only.printed.values,.an | 
| bb60 | 64 20 74 68 61 74 20 69 74 20 77 6f 75 6c 64 20    62 65 20 61 20 6c 6f 74 20 6d 6f 72 65 20 75 73 | d.that.it.would.be.a.lot.more.us | 
| bb80 | 65 66 75 6c 20 69 66 20 69 74 20 6a 75 73 74 20    68 61 6e 64 6c 65 64 20 70 72 69 6d 69 74 69 76 | eful.if.it.just.handled.primitiv | 
| bba0 | 65 0a 64 61 74 61 62 61 73 65 20 74 79 70 65 73    2e 0a 0a 48 6f 77 65 76 65 72 2c 20 45 6d 61 63 | e.database.types...However,.Emac | 
| bbc0 | 53 51 4c 20 69 73 20 69 6e 20 6d 61 69 6e 74 65    6e 61 6e 63 65 20 6d 6f 64 65 20 61 6e 64 20 74 | SQL.is.in.maintenance.mode.and.t | 
| bbe0 | 68 65 72 65 20 61 72 65 20 6e 6f 20 70 6c 61 6e    73 20 74 6f 0a 6d 61 6b 65 20 61 6e 79 20 66 75 | here.are.no.plans.to.make.any.fu | 
| bc00 | 6e 64 61 6d 65 6e 74 61 6c 20 63 68 61 6e 67 65    73 2c 20 6e 6f 74 20 6c 65 61 73 74 20 62 65 63 | ndamental.changes,.not.least.bec | 
| bc20 | 61 75 73 65 20 74 68 65 79 20 77 6f 75 6c 64 20    62 72 65 61 6b 20 61 6c 6c 0a 65 78 69 73 74 69 | ause.they.would.break.all.existi | 
| bc40 | 6e 67 20 70 61 63 6b 61 67 65 73 20 61 6e 64 20    64 61 74 61 62 61 73 65 73 20 74 68 61 74 20 72 | ng.packages.and.databases.that.r | 
| bc60 | 65 6c 79 20 6f 6e 20 74 68 65 20 63 75 72 72 65    6e 74 20 45 6d 61 63 53 51 4c 0a 62 65 68 61 76 | ely.on.the.current.EmacSQL.behav | 
| bc80 | 69 6f 72 2e 0a 0a 23 23 23 20 57 69 6e 64 6f 77    73 20 49 73 73 75 65 73 0a 0a 45 6d 61 63 73 20 | ior...###.Windows.Issues..Emacs. | 
| bca0 | 60 73 74 61 72 74 2d 70 72 6f 63 65 73 73 2d 73    68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 60 20 66 75 | `start-process-shell-command`.fu | 
| bcc0 | 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 73 75    70 70 6f 72 74 65 64 20 6f 6e 0a 57 69 6e 64 6f | nction.is.not.supported.on.Windo | 
| bce0 | 77 73 2e 20 53 69 6e 63 65 20 62 6f 74 68 20 60    65 6d 61 63 73 71 6c 2d 6d 79 73 71 6c 60 20 61 | ws..Since.both.`emacsql-mysql`.a | 
| bd00 | 6e 64 20 60 65 6d 61 63 73 71 6c 2d 70 73 71 6c    60 20 72 65 6c 79 20 6f 6e 20 74 68 69 73 0a 66 | nd.`emacsql-psql`.rely.on.this.f | 
| bd20 | 75 6e 63 74 69 6f 6e 2c 20 6e 65 69 74 68 65 72    20 6f 66 20 74 68 65 73 65 20 63 6f 6e 6e 65 63 | unction,.neither.of.these.connec | 
| bd40 | 74 69 6f 6e 20 74 79 70 65 73 20 61 72 65 20 73    75 70 70 6f 72 74 65 64 20 6f 6e 20 57 69 6e 64 | tion.types.are.supported.on.Wind | 
| bd60 | 6f 77 73 2e 0a 0a 23 23 20 45 78 61 6d 70 6c 65    20 55 73 61 67 65 0a 0a 60 60 60 65 6c 0a 28 64 | ows...##.Example.Usage..```el.(d | 
| bd80 | 65 66 76 61 72 20 64 62 20 28 65 6d 61 63 73 71    6c 2d 73 71 6c 69 74 65 2d 6f 70 65 6e 20 22 7e | efvar.db.(emacsql-sqlite-open."~ | 
| bda0 | 2f 63 6f 6d 70 61 6e 79 2e 64 62 22 29 29 0a 0a    3b 3b 20 43 72 65 61 74 65 20 61 20 74 61 62 6c | /company.db"))..;;.Create.a.tabl | 
| bdc0 | 65 2e 20 54 61 62 6c 65 20 61 6e 64 20 63 6f 6c    75 6d 6e 20 69 64 65 6e 74 69 66 69 65 72 73 20 | e..Table.and.column.identifiers. | 
| bde0 | 61 72 65 20 73 79 6d 62 6f 6c 73 2e 0a 28 65 6d    61 63 73 71 6c 20 64 62 20 5b 3a 63 72 65 61 74 | are.symbols..(emacsql.db.[:creat | 
| be00 | 65 2d 74 61 62 6c 65 20 70 65 6f 70 6c 65 20 28    5b 6e 61 6d 65 20 69 64 20 73 61 6c 61 72 79 5d | e-table.people.([name.id.salary] | 
| be20 | 29 5d 29 0a 0a 3b 3b 20 4f 72 20 6f 70 74 69 6f    6e 61 6c 6c 79 20 70 72 6f 76 69 64 65 20 63 6f | )])..;;.Or.optionally.provide.co | 
| be40 | 6c 75 6d 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73    2e 0a 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a | lumn.constraints..(emacsql.db.[: | 
| be60 | 63 72 65 61 74 65 2d 74 61 62 6c 65 20 70 65 6f    70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | create-table.people............. | 
| be80 | 20 28 5b 6e 61 6d 65 20 28 69 64 20 69 6e 74 65    67 65 72 20 3a 70 72 69 6d 61 72 79 2d 6b 65 79 | .([name.(id.integer.:primary-key | 
| bea0 | 29 20 28 73 61 6c 61 72 79 20 66 6c 6f 61 74 29    5d 29 5d 29 0a 0a 3b 3b 20 49 6e 73 65 72 74 20 | ).(salary.float)])])..;;.Insert. | 
| bec0 | 73 6f 6d 65 20 64 61 74 61 3a 0a 28 65 6d 61 63    73 71 6c 20 64 62 20 5b 3a 69 6e 73 65 72 74 20 | some.data:.(emacsql.db.[:insert. | 
| bee0 | 3a 69 6e 74 6f 20 70 65 6f 70 6c 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 76 61 6c 75 65 | :into.people..............:value | 
| bf00 | 73 20 28 5b 22 4a 65 66 66 22 20 31 30 30 30 20    36 30 30 30 30 2e 30 5d 20 5b 22 53 75 73 61 6e | s.(["Jeff".1000.60000.0].["Susan | 
| bf20 | 22 20 31 30 30 31 20 36 34 30 30 30 2e 30 5d 29    5d 29 0a 0a 3b 3b 20 51 75 65 72 79 20 74 68 65 | ".1001.64000.0])])..;;.Query.the | 
| bf40 | 20 64 61 74 61 62 61 73 65 20 66 6f 72 20 72 65    73 75 6c 74 73 3a 0a 28 65 6d 61 63 73 71 6c 20 | .database.for.results:.(emacsql. | 
| bf60 | 64 62 20 5b 3a 73 65 6c 65 63 74 20 5b 6e 61 6d    65 20 69 64 5d 0a 20 20 20 20 20 20 20 20 20 20 | db.[:select.[name.id]........... | 
| bf80 | 20 20 20 3a 66 72 6f 6d 20 70 65 6f 70 6c 65 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 3a 77 68 | ...:from.people..............:wh | 
| bfa0 | 65 72 65 20 28 3e 20 73 61 6c 61 72 79 20 36 32    30 30 30 29 5d 29 0a 3b 3b 20 3d 3e 20 28 28 22 | ere.(>.salary.62000)]).;;.=>.((" | 
| bfc0 | 53 75 73 61 6e 22 20 31 30 30 31 29 29 0a 0a 3b    3b 20 51 75 65 72 69 65 73 20 63 61 6e 20 62 65 | Susan".1001))..;;.Queries.can.be | 
| bfe0 | 20 74 65 6d 70 6c 61 74 65 73 2c 20 75 73 69 6e    67 20 24 31 2c 20 24 32 2c 20 65 74 63 2e 3a 0a | .templates,.using.$1,.$2,.etc.:. | 
| c000 | 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 73 65    6c 65 63 74 20 5b 6e 61 6d 65 20 69 64 5d 0a 20 | (emacsql.db.[:select.[name.id].. | 
| c020 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 72 6f    6d 20 70 65 6f 70 6c 65 0a 20 20 20 20 20 20 20 | ............:from.people........ | 
| c040 | 20 20 20 20 20 20 3a 77 68 65 72 65 20 28 3e 20    73 61 6c 61 72 79 20 24 73 31 29 5d 0a 20 20 20 | ......:where.(>.salary.$s1)].... | 
| c060 | 20 20 20 20 20 20 35 30 30 30 30 29 0a 3b 3b 20    3d 3e 20 28 28 22 4a 65 66 66 22 20 31 30 30 30 | ......50000).;;.=>.(("Jeff".1000 | 
| c080 | 29 20 28 22 53 75 73 61 6e 22 20 31 30 30 31 29    29 0a 60 60 60 0a 0a 57 68 65 6e 20 65 64 69 74 | ).("Susan".1001)).```..When.edit | 
| c0a0 | 69 6e 67 20 74 68 65 73 65 20 70 72 65 70 61 72    65 64 20 53 51 4c 20 73 2d 65 78 70 72 65 73 73 | ing.these.prepared.SQL.s-express | 
| c0c0 | 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 2c 20    74 68 65 20 60 4d 2d 78 0a 65 6d 61 63 73 71 6c | ion.statements,.the.`M-x.emacsql | 
| c0e0 | 2d 73 68 6f 77 2d 6c 61 73 74 2d 73 71 6c 60 20    63 6f 6d 6d 61 6e 64 20 28 74 68 69 6e 6b 20 60 | -show-last-sql`.command.(think.` | 
| c100 | 65 76 61 6c 2d 6c 61 73 74 2d 73 65 78 70 60 29    20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 0a 73 | eval-last-sexp`).is.useful.for.s | 
| c120 | 65 65 69 6e 67 20 77 68 61 74 20 74 68 65 20 61    63 74 75 61 6c 20 53 51 4c 20 65 78 70 72 65 73 | eeing.what.the.actual.SQL.expres | 
| c140 | 73 69 6f 6e 20 77 69 6c 6c 20 62 65 63 6f 6d 65    20 77 68 65 6e 20 63 6f 6d 70 69 6c 65 64 2e 0a | sion.will.become.when.compiled.. | 
| c160 | 0a 23 23 20 53 63 68 65 6d 61 0a 0a 41 20 74 61    62 6c 65 20 73 63 68 65 6d 61 20 69 73 20 61 20 | .##.Schema..A.table.schema.is.a. | 
| c180 | 6c 69 73 74 20 77 68 6f 73 65 20 66 69 72 73 74    20 65 6c 65 6d 65 6e 74 20 69 73 20 61 20 76 65 | list.whose.first.element.is.a.ve | 
| c1a0 | 63 74 6f 72 20 6f 66 20 63 6f 6c 75 6d 6e 0a 73    70 65 63 69 66 69 63 61 74 69 6f 6e 73 2e 20 54 | ctor.of.column.specifications..T | 
| c1c0 | 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 6c    69 73 74 20 73 70 65 63 69 66 69 65 73 20 74 61 | he.rest.of.the.list.specifies.ta | 
| c1e0 | 62 6c 65 20 63 6f 6e 73 74 72 61 69 6e 74 73 2e    20 41 0a 63 6f 6c 75 6d 6e 20 69 64 65 6e 74 69 | ble.constraints..A.column.identi | 
| c200 | 66 69 65 72 20 69 73 20 61 20 73 79 6d 62 6f 6c    20 61 6e 64 20 61 20 63 6f 6c 75 6d 6e 27 73 20 | fier.is.a.symbol.and.a.column's. | 
| c220 | 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 63 61    6e 20 65 69 74 68 65 72 0a 62 65 20 6a 75 73 74 | specification.can.either.be.just | 
| c240 | 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 6f 72 20    69 74 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 63 | .this.symbol.or.it.can.include.c | 
| c260 | 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 61 20    6c 69 73 74 2e 20 42 65 63 61 75 73 65 0a 45 6d | onstraints.as.a.list..Because.Em | 
| c280 | 61 63 53 51 4c 20 73 74 6f 72 65 73 20 65 6e 74    69 72 65 20 6c 69 73 70 20 6f 62 6a 65 63 74 73 | acSQL.stores.entire.lisp.objects | 
| c2a0 | 20 61 73 20 76 61 6c 75 65 73 2c 20 74 68 65 20    6f 6e 6c 79 20 72 65 6c 65 76 61 6e 74 20 28 61 | .as.values,.the.only.relevant.(a | 
| c2c0 | 6e 64 0a 61 6c 6c 6f 77 65 64 29 20 74 79 70 65    73 20 61 72 65 20 60 69 6e 74 65 67 65 72 60 2c | nd.allowed).types.are.`integer`, | 
| c2e0 | 20 60 66 6c 6f 61 74 60 2c 20 61 6e 64 20 60 6f    62 6a 65 63 74 60 20 28 64 65 66 61 75 6c 74 29 | .`float`,.and.`object`.(default) | 
| c300 | 2e 0a 0a 20 20 20 20 28 5b 28 3c 63 6f 6c 75 6d    6e 3e 29 20 2e 2e 2e 5d 20 28 3c 74 61 62 6c 65 | .......([(<column>)....].(<table | 
| c320 | 2d 63 6f 6e 73 74 72 61 69 6e 74 3e 20 2e 2e 2e    29 20 2e 2e 2e 5d 29 0a 0a 44 61 73 68 65 73 20 | -constraint>....)....])..Dashes. | 
| c340 | 69 6e 20 69 64 65 6e 74 69 66 69 65 72 73 20 61    72 65 20 63 6f 6e 76 65 72 74 65 64 20 69 6e 74 | in.identifiers.are.converted.int | 
| c360 | 6f 20 75 6e 64 65 72 73 63 6f 72 65 73 20 77 68    65 6e 20 63 6f 6d 70 69 6c 65 64 0a 69 6e 74 6f | o.underscores.when.compiled.into | 
| c380 | 20 53 51 4c 2e 20 54 68 69 73 20 61 6c 6c 6f 77    73 20 66 6f 72 20 6c 69 73 70 2d 73 74 79 6c 65 | .SQL..This.allows.for.lisp-style | 
| c3a0 | 20 69 64 65 6e 74 69 66 69 65 72 73 20 74 6f 20    62 65 20 75 73 65 64 20 69 6e 20 53 51 4c 2e 0a | .identifiers.to.be.used.in.SQL.. | 
| c3c0 | 43 6f 6e 73 74 72 61 69 6e 74 73 20 66 6f 6c 6c    6f 77 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 | Constraints.follow.the.compilati | 
| c3e0 | 6f 6e 20 72 75 6c 65 73 20 62 65 6c 6f 77 2e 0a    0a 60 60 60 65 6c 0a 3b 3b 20 4e 6f 20 63 6f 6e | on.rules.below...```el.;;.No.con | 
| c400 | 73 74 72 61 69 6e 74 73 20 73 63 68 65 6d 61 20    77 69 74 68 20 66 6f 75 72 20 63 6f 6c 75 6d 6e | straints.schema.with.four.column | 
| c420 | 73 3a 0a 28 5b 6e 61 6d 65 20 69 64 20 62 75 69    6c 64 69 6e 67 20 72 6f 6f 6d 5d 29 0a 0a 3b 3b | s:.([name.id.building.room])..;; | 
| c440 | 20 41 64 64 20 73 6f 6d 65 20 63 6f 6c 75 6d 6e    20 63 6f 6e 73 74 72 61 69 6e 74 73 3a 0a 28 5b | .Add.some.column.constraints:.([ | 
| c460 | 28 6e 61 6d 65 20 3a 75 6e 69 71 75 65 29 20 28    69 64 20 69 6e 74 65 67 65 72 20 3a 70 72 69 6d | (name.:unique).(id.integer.:prim | 
| c480 | 61 72 79 2d 6b 65 79 29 20 62 75 69 6c 64 69 6e    67 20 72 6f 6f 6d 5d 29 0a 0a 3b 3b 20 41 64 64 | ary-key).building.room])..;;.Add | 
| c4a0 | 20 73 6f 6d 65 20 74 61 62 6c 65 20 63 6f 6e 73    74 72 61 69 6e 74 73 3a 0a 28 5b 28 6e 61 6d 65 | .some.table.constraints:.([(name | 
| c4c0 | 20 3a 75 6e 69 71 75 65 29 20 28 69 64 20 69 6e    74 65 67 65 72 20 3a 70 72 69 6d 61 72 79 2d 6b | .:unique).(id.integer.:primary-k | 
| c4e0 | 65 79 29 20 62 75 69 6c 64 69 6e 67 20 72 6f 6f    6d 5d 0a 20 28 3a 75 6e 69 71 75 65 20 5b 62 75 | ey).building.room]..(:unique.[bu | 
| c500 | 69 6c 64 69 6e 67 20 72 6f 6f 6d 5d 29 0a 20 28    3a 63 68 65 63 6b 20 28 3e 20 69 64 20 30 29 29 | ilding.room])..(:check.(>.id.0)) | 
| c520 | 29 0a 60 60 60 0a 0a 48 65 72 65 27 73 20 61 6e    20 65 78 61 6d 70 6c 65 20 75 73 69 6e 67 20 66 | ).```..Here's.an.example.using.f | 
| c540 | 6f 72 65 69 67 6e 20 6b 65 79 73 2e 0a 0a 60 60    60 65 6c 0a 3b 3b 20 22 73 75 62 6a 65 63 74 73 | oreign.keys...```el.;;."subjects | 
| c560 | 22 20 74 61 62 6c 65 20 73 63 68 65 6d 61 0a 28    5b 28 69 64 20 69 6e 74 65 67 65 72 20 3a 70 72 | ".table.schema.([(id.integer.:pr | 
| c580 | 69 6d 61 72 79 2d 6b 65 79 29 20 73 75 62 6a 65    63 74 5d 29 0a 0a 3b 3b 20 22 74 61 67 22 20 74 | imary-key).subject])..;;."tag".t | 
| c5a0 | 61 62 6c 65 20 72 65 66 65 72 65 6e 63 65 73 20    73 75 62 6a 65 63 74 73 0a 28 5b 28 73 75 62 6a | able.references.subjects.([(subj | 
| c5c0 | 65 63 74 2d 69 64 20 69 6e 74 65 67 65 72 29 20    74 61 67 5d 0a 20 28 3a 66 6f 72 65 69 67 6e 2d | ect-id.integer).tag]..(:foreign- | 
| c5e0 | 6b 65 79 20 5b 73 75 62 6a 65 63 74 2d 69 64 5d    20 3a 72 65 66 65 72 65 6e 63 65 73 20 73 75 62 | key.[subject-id].:references.sub | 
| c600 | 6a 65 63 74 73 20 5b 69 64 5d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 6f 6e 2d 64 65 | jects.[id]................:on-de | 
| c620 | 6c 65 74 65 20 3a 63 61 73 63 61 64 65 29 29 0a    60 60 60 0a 0a 46 6f 72 65 69 67 6e 20 6b 65 79 | lete.:cascade)).```..Foreign.key | 
| c640 | 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65    20 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 | .constraints.are.enabled.by.defa | 
| c660 | 75 6c 74 20 69 6e 20 45 6d 61 63 53 51 4c 2e 0a    0a 23 23 20 4f 70 65 72 61 74 6f 72 73 0a 0a 45 | ult.in.EmacSQL...##.Operators..E | 
| c680 | 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 77    72 69 74 74 65 6e 20 6c 69 73 70 2d 73 74 79 6c | xpressions.are.written.lisp-styl | 
| c6a0 | 65 2c 20 77 69 74 68 20 74 68 65 20 6f 70 65 72    61 74 6f 72 20 66 69 72 73 74 2e 20 49 66 20 69 | e,.with.the.operator.first..If.i | 
| c6c0 | 74 0a 6c 6f 6f 6b 73 20 6c 69 6b 65 20 61 6e 20    6f 70 65 72 61 74 6f 72 20 45 6d 61 63 53 51 4c | t.looks.like.an.operator.EmacSQL | 
| c6e0 | 20 74 72 65 61 74 73 20 69 74 20 6c 69 6b 65 20    61 6e 20 6f 70 65 72 61 74 6f 72 2e 20 48 6f 77 | .treats.it.like.an.operator..How | 
| c700 | 65 76 65 72 2c 0a 73 65 76 65 72 61 6c 20 6f 70    65 72 61 74 6f 72 73 20 61 72 65 20 73 70 65 63 | ever,.several.operators.are.spec | 
| c720 | 69 61 6c 2e 0a 0a 20 20 20 20 3c 3d 20 20 20 20    3e 3d 20 20 20 20 66 75 6e 63 61 6c 6c 20 20 20 | ial.......<=....>=....funcall... | 
| c740 | 20 71 75 6f 74 65 0a 0a 54 68 65 20 60 3c 3d 60    20 61 6e 64 20 60 3e 3d 60 20 6f 70 65 72 61 74 | .quote..The.`<=`.and.`>=`.operat | 
| c760 | 6f 72 73 20 61 63 63 65 70 74 20 32 20 6f 72 20    33 20 6f 70 65 72 61 6e 64 73 2c 20 74 72 61 6e | ors.accept.2.or.3.operands,.tran | 
| c780 | 73 66 6f 72 6d 69 6e 67 20 69 6e 74 6f 0a 61 20    53 51 4c 20 60 5f 20 42 45 54 57 45 45 4e 20 5f | sforming.into.a.SQL.`_.BETWEEN._ | 
| c7a0 | 20 41 4e 44 20 5f 60 20 6f 70 65 72 61 74 6f 72    20 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 2e | .AND._`.operator.as.appropriate. | 
| c7c0 | 0a 0a 46 6f 72 20 66 75 6e 63 74 69 6f 6e 2d 6c    69 6b 65 20 22 6f 70 65 72 61 74 6f 72 73 22 20 | ..For.function-like."operators". | 
| c7e0 | 6c 69 6b 65 20 60 63 6f 75 6e 74 60 20 61 6e 64    20 60 6d 61 78 60 20 75 73 65 20 74 68 65 20 60 | like.`count`.and.`max`.use.the.` | 
| c800 | 66 75 6e 63 61 6c 6c 60 0a 22 6f 70 65 72 61 74    6f 72 2e 22 0a 0a 60 60 60 65 6c 0a 5b 3a 73 65 | funcall`."operator."..```el.[:se | 
| c820 | 6c 65 63 74 20 28 66 75 6e 63 61 6c 6c 20 6d 61    78 20 61 67 65 29 20 3a 66 72 6f 6d 20 70 65 6f | lect.(funcall.max.age).:from.peo | 
| c840 | 70 6c 65 5d 0a 60 60 60 0a 0a 57 69 74 68 20 60    67 6c 6f 62 60 20 61 6e 64 20 60 6c 69 6b 65 60 | ple].```..With.`glob`.and.`like` | 
| c860 | 20 53 51 4c 20 6f 70 65 72 61 74 6f 72 73 20 6b    65 65 70 20 69 6e 20 6d 69 6e 64 20 74 68 61 74 | .SQL.operators.keep.in.mind.that | 
| c880 | 20 74 68 65 79 27 72 65 0a 6d 61 74 63 68 69 6e    67 20 74 68 65 20 2a 70 72 69 6e 74 65 64 2a 20 | .they're.matching.the.*printed*. | 
| c8a0 | 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20    6f 66 20 74 68 65 73 65 20 76 61 6c 75 65 73 2c | representations.of.these.values, | 
| c8c0 | 20 65 76 65 6e 20 69 66 20 74 68 65 0a 76 61 6c    75 65 20 69 73 20 61 20 73 74 72 69 6e 67 2e 0a | .even.if.the.value.is.a.string.. | 
| c8e0 | 0a 54 68 65 20 60 7c 7c 60 20 63 6f 6e 63 61 74    65 6e 61 74 69 6f 6e 20 6f 70 65 72 61 74 6f 72 | .The.`||`.concatenation.operator | 
| c900 | 20 69 73 20 75 6e 73 75 70 70 6f 72 74 65 64 20    62 65 63 61 75 73 65 20 63 6f 6e 63 61 74 65 6e | .is.unsupported.because.concaten | 
| c920 | 61 74 69 6e 67 0a 70 72 69 6e 74 65 64 20 72 65    70 72 65 73 65 6e 74 61 74 69 6f 6e 73 20 62 72 | ating.printed.representations.br | 
| c940 | 65 61 6b 73 20 61 6e 20 69 6d 70 6f 72 74 61 6e    74 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 61 6c | eaks.an.important.constraint:.al | 
| c960 | 6c 20 76 61 6c 75 65 73 20 6d 75 73 74 0a 72 65    6d 61 69 6e 20 72 65 61 64 61 62 6c 65 20 77 69 | l.values.must.remain.readable.wi | 
| c980 | 74 68 69 6e 20 53 51 4c 69 74 65 2e 0a 0a 23 23    20 51 75 6f 74 69 6e 67 0a 0a 49 6e 73 69 64 65 | thin.SQLite...##.Quoting..Inside | 
| c9a0 | 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 45 6d    61 63 53 51 4c 20 63 61 6e 6e 6f 74 20 74 65 6c | .expressions,.EmacSQL.cannot.tel | 
| c9c0 | 6c 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65    20 62 65 74 77 65 65 6e 20 73 79 6d 62 6f 6c 0a | l.the.difference.between.symbol. | 
| c9e0 | 6c 69 74 65 72 61 6c 73 20 61 6e 64 20 63 6f 6c    75 6d 6e 20 72 65 66 65 72 65 6e 63 65 73 2e 20 | literals.and.column.references.. | 
| ca00 | 49 66 20 79 6f 75 27 72 65 20 74 61 6c 6b 69 6e    67 20 61 62 6f 75 74 20 74 68 65 20 73 79 6d 62 | If.you're.talking.about.the.symb | 
| ca20 | 6f 6c 0a 69 74 73 65 6c 66 2c 20 6a 75 73 74 20    71 75 6f 74 65 20 69 74 20 61 73 20 79 6f 75 20 | ol.itself,.just.quote.it.as.you. | 
| ca40 | 77 6f 75 6c 64 20 69 6e 20 6e 6f 72 6d 61 6c 20    45 6c 69 73 70 2e 20 4e 6f 74 65 20 74 68 61 74 | would.in.normal.Elisp..Note.that | 
| ca60 | 20 74 68 69 73 0a 64 6f 65 73 20 6e 6f 74 20 22    65 73 63 61 70 65 22 20 60 24 74 6e 60 20 70 61 | .this.does.not."escape".`$tn`.pa | 
| ca80 | 72 61 6d 65 74 65 72 20 73 79 6d 62 6f 6c 73 2e    0a 0a 60 60 60 65 6c 0a 28 65 6d 61 63 73 71 6c | rameter.symbols...```el.(emacsql | 
| caa0 | 20 64 62 20 5b 2e 2e 2e 20 3a 77 68 65 72 65 20    28 3d 20 63 61 74 65 67 6f 72 79 20 27 68 69 6b | .db.[....:where.(=.category.'hik | 
| cac0 | 69 6e 67 29 5d 29 0a 60 60 60 0a 0a 51 75 6f 74    69 6e 67 20 61 20 73 74 72 69 6e 67 20 6d 61 6b | ing)]).```..Quoting.a.string.mak | 
| cae0 | 65 73 20 45 6d 61 63 53 51 4c 20 68 61 6e 64 6c    65 20 69 74 20 61 73 20 61 20 22 72 61 77 20 73 | es.EmacSQL.handle.it.as.a."raw.s | 
| cb00 | 74 72 69 6e 67 2e 22 20 54 68 65 73 65 20 72 61    77 0a 73 74 72 69 6e 67 73 20 61 72 65 20 6e 6f | tring.".These.raw.strings.are.no | 
| cb20 | 74 20 70 72 69 6e 74 65 64 20 77 68 65 6e 20 62    65 69 6e 67 20 61 73 73 65 6d 62 6c 65 64 20 69 | t.printed.when.being.assembled.i | 
| cb40 | 6e 74 6f 20 61 20 71 75 65 72 79 2e 20 54 68 65    73 65 20 61 72 65 0a 69 6e 74 65 6e 64 65 64 20 | nto.a.query..These.are.intended. | 
| cb60 | 66 6f 72 20 75 73 65 20 69 6e 20 73 70 65 63 69    61 6c 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 | for.use.in.special.circumstances | 
| cb80 | 20 6c 69 6b 65 20 66 69 6c 65 6e 61 6d 65 73 20    28 60 41 54 54 41 43 48 60 29 20 6f 72 0a 70 61 | .like.filenames.(`ATTACH`).or.pa | 
| cba0 | 74 74 65 72 6e 20 6d 61 74 63 68 69 6e 67 20 28    60 4c 49 4b 45 60 29 2e 20 49 74 20 69 73 20 76 | ttern.matching.(`LIKE`)..It.is.v | 
| cbc0 | 69 74 61 6c 20 74 68 61 74 20 72 61 77 20 73 74    72 69 6e 67 73 20 61 72 65 20 6e 6f 74 0a 72 65 | ital.that.raw.strings.are.not.re | 
| cbe0 | 74 75 72 6e 65 64 20 61 73 20 72 65 73 75 6c 74    73 2e 0a 0a 60 60 60 65 6c 0a 28 65 6d 61 63 73 | turned.as.results...```el.(emacs | 
| cc00 | 71 6c 20 64 62 20 5b 2e 2e 2e 20 3a 77 68 65 72    65 20 28 6c 69 6b 65 20 6e 61 6d 65 20 27 22 25 | ql.db.[....:where.(like.name.'"% | 
| cc20 | 66 6f 6f 25 22 29 5d 29 0a 28 65 6d 61 63 73 71    6c 20 64 62 20 5b 3a 61 74 74 61 63 68 20 27 22 | foo%")]).(emacsql.db.[:attach.'" | 
| cc40 | 2f 70 61 74 68 2f 74 6f 2f 66 6f 6f 2e 64 62 22    20 3a 61 73 20 66 6f 6f 5d 29 0a 60 60 60 0a 0a | /path/to/foo.db".:as.foo]).```.. | 
| cc60 | 53 69 6e 63 65 20 74 65 6d 70 6c 61 74 65 20 70    61 72 61 6d 65 74 65 72 73 20 69 6e 63 6c 75 64 | Since.template.parameters.includ | 
| cc80 | 65 20 74 68 65 69 72 20 74 79 70 65 20 74 68 65    79 20 6e 65 76 65 72 20 6e 65 65 64 20 74 6f 20 | e.their.type.they.never.need.to. | 
| cca0 | 62 65 0a 71 75 6f 74 65 64 2e 0a 0a 23 23 20 50    72 65 70 61 72 65 64 20 53 74 61 74 65 6d 65 6e | be.quoted...##.Prepared.Statemen | 
| ccc0 | 74 73 0a 0a 54 68 65 20 64 61 74 61 62 61 73 65    20 69 73 20 69 6e 74 65 72 61 63 74 65 64 20 77 | ts..The.database.is.interacted.w | 
| cce0 | 69 74 68 20 76 69 61 20 70 72 65 70 61 72 65 64    20 53 51 4c 20 73 2d 65 78 70 72 65 73 73 69 6f | ith.via.prepared.SQL.s-expressio | 
| cd00 | 6e 0a 73 74 61 74 65 6d 65 6e 74 73 2e 20 59 6f    75 20 73 68 6f 75 6c 64 6e 27 74 20 6e 6f 72 6d | n.statements..You.shouldn't.norm | 
| cd20 | 61 6c 6c 79 20 62 65 20 63 6f 6e 63 61 74 65 6e    61 74 69 6e 67 20 73 74 72 69 6e 67 73 20 6f 6e | ally.be.concatenating.strings.on | 
| cd40 | 20 79 6f 75 72 0a 6f 77 6e 2e 20 28 41 6e 64 20    69 74 20 6c 65 61 76 65 73 20 6f 75 74 20 61 6e | .your.own..(And.it.leaves.out.an | 
| cd60 | 79 20 70 6f 73 73 69 62 69 6c 69 74 79 20 6f 66    20 61 20 53 51 4c 20 69 6e 6a 65 63 74 69 6f 6e | y.possibility.of.a.SQL.injection | 
| cd80 | 21 29 20 53 65 65 20 74 68 65 0a 22 55 73 61 67    65 22 20 73 65 63 74 69 6f 6e 20 61 62 6f 76 65 | !).See.the."Usage".section.above | 
| cda0 | 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 20 41    20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 61 20 | .for.examples..A.statement.is.a. | 
| cdc0 | 76 65 63 74 6f 72 20 6f 66 0a 6b 65 79 77 6f 72    64 73 20 61 6e 64 20 6f 74 68 65 72 20 6c 69 73 | vector.of.keywords.and.other.lis | 
| cde0 | 70 20 6f 62 6a 65 63 74 2e 0a 0a 50 72 65 70 61    72 65 64 20 45 6d 61 63 53 51 4c 20 73 2d 65 78 | p.object...Prepared.EmacSQL.s-ex | 
| ce00 | 70 72 65 73 73 69 6f 6e 20 73 74 61 74 65 6d 65    6e 74 73 20 61 72 65 20 63 6f 6d 70 69 6c 65 64 | pression.statements.are.compiled | 
| ce20 | 20 69 6e 74 6f 20 53 51 4c 0a 73 74 61 74 65 6d    65 6e 74 73 2e 20 54 68 65 20 73 74 61 74 65 6d | .into.SQL.statements..The.statem | 
| ce40 | 65 6e 74 20 63 6f 6d 70 69 6c 65 72 20 69 73 20    6d 65 6d 6f 72 69 7a 65 64 20 73 6f 20 74 68 61 | ent.compiler.is.memorized.so.tha | 
| ce60 | 74 20 75 73 69 6e 67 20 74 68 65 20 73 61 6d 65    0a 73 74 61 74 65 6d 65 6e 74 20 6d 75 6c 74 69 | t.using.the.same.statement.multi | 
| ce80 | 70 6c 65 20 74 69 6d 65 73 20 69 73 20 66 61 73    74 2e 20 54 6f 20 61 73 73 69 73 74 20 69 6e 20 | ple.times.is.fast..To.assist.in. | 
| cea0 | 74 68 69 73 2c 20 74 68 65 20 73 74 61 74 65 6d    65 6e 74 20 63 61 6e 0a 61 63 74 20 61 73 20 61 | this,.the.statement.can.act.as.a | 
| cec0 | 20 74 65 6d 70 6c 61 74 65 20 2d 2d 20 75 73 69    6e 67 20 60 24 69 31 60 2c 20 60 24 73 32 60 2c | .template.--.using.`$i1`,.`$s2`, | 
| cee0 | 20 65 74 63 2e 20 2d 2d 20 77 6f 72 6b 69 6e 67    20 6c 69 6b 65 20 74 68 65 0a 45 6c 69 73 70 20 | .etc..--.working.like.the.Elisp. | 
| cf00 | 60 66 6f 72 6d 61 74 60 20 66 75 6e 63 74 69 6f    6e 2e 0a 0a 23 23 23 20 43 6f 6d 70 69 6c 61 74 | `format`.function...###.Compilat | 
| cf20 | 69 6f 6e 20 52 75 6c 65 73 0a 0a 52 61 74 68 65    72 20 74 68 61 6e 20 74 68 65 20 74 79 70 69 63 | ion.Rules..Rather.than.the.typic | 
| cf40 | 61 6c 20 75 70 70 65 72 63 61 73 65 20 53 51 4c    20 6b 65 79 77 6f 72 64 73 2c 20 6b 65 79 77 6f | al.uppercase.SQL.keywords,.keywo | 
| cf60 | 72 64 73 20 69 6e 20 61 20 70 72 65 70 61 72 65    64 0a 45 6d 61 63 53 51 4c 20 73 74 61 74 65 6d | rds.in.a.prepared.EmacSQL.statem | 
| cf80 | 65 6e 74 20 61 72 65 20 6c 69 74 65 72 61 6c 6c    79 20 6a 75 73 74 20 74 68 61 74 3a 20 6c 69 73 | ent.are.literally.just.that:.lis | 
| cfa0 | 70 20 6b 65 79 77 6f 72 64 73 2e 20 45 6d 61 63    53 51 4c 20 6f 6e 6c 79 0a 75 6e 64 65 72 73 74 | p.keywords..EmacSQL.only.underst | 
| cfc0 | 61 6e 64 73 20 61 20 76 65 72 79 20 73 6d 61 6c    6c 20 61 6d 6f 75 6e 74 20 6f 66 20 53 51 4c 27 | ands.a.very.small.amount.of.SQL' | 
| cfe0 | 73 20 73 79 6e 74 61 78 2e 20 54 68 65 20 63 6f    6d 70 69 6c 65 72 20 66 6f 6c 6c 6f 77 73 0a 73 | s.syntax..The.compiler.follows.s | 
| d000 | 6f 6d 65 20 73 69 6d 70 6c 65 20 72 75 6c 65 73    20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 73 | ome.simple.rules.to.convert.an.s | 
| d020 | 2d 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 74 6f    20 53 51 4c 2e 0a 0a 23 23 23 23 20 41 6c 6c 20 | -expression.into.SQL...####.All. | 
| d040 | 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65    6e 74 73 20 61 72 65 20 76 65 63 74 6f 72 73 2e | prepared.statements.are.vectors. | 
| d060 | 0a 0a 41 20 70 72 65 70 61 72 65 64 20 73 2d 65    78 70 72 65 73 73 69 6f 6e 20 73 74 61 74 65 6d | ..A.prepared.s-expression.statem | 
| d080 | 65 6e 74 20 69 73 20 61 20 76 65 63 74 6f 72 20    62 65 67 69 6e 6e 69 6e 67 20 77 69 74 68 20 61 | ent.is.a.vector.beginning.with.a | 
| d0a0 | 20 6b 65 79 77 6f 72 64 0a 66 6f 6c 6c 6f 77 65    64 20 62 79 20 61 20 73 65 72 69 65 73 20 6f 66 | .keyword.followed.by.a.series.of | 
| d0c0 | 20 6b 65 79 77 6f 72 64 73 20 61 6e 64 20 73 70    65 63 69 61 6c 20 76 61 6c 75 65 73 2e 20 54 68 | .keywords.and.special.values..Th | 
| d0e0 | 69 73 20 69 6e 63 6c 75 64 65 73 0a 6d 6f 73 74    20 6b 69 6e 64 73 20 6f 66 20 73 75 62 2d 71 75 | is.includes.most.kinds.of.sub-qu | 
| d100 | 65 72 69 65 73 2e 0a 0a 60 60 60 65 6c 0a 5b 3a    73 65 6c 65 63 74 20 2e 2e 2e 20 3a 66 72 6f 6d | eries...```el.[:select.....:from | 
| d120 | 20 2e 2e 2e 5d 0a 5b 3a 73 65 6c 65 63 74 20 74    61 67 20 3a 66 72 6f 6d 20 74 61 67 73 0a 20 3a | ....].[:select.tag.:from.tags..: | 
| d140 | 77 68 65 72 65 20 28 69 6e 20 74 61 67 20 5b 3a    73 65 6c 65 63 74 20 2e 2e 2e 5d 29 5d 0a 60 60 | where.(in.tag.[:select....])].`` | 
| d160 | 60 0a 0a 23 23 23 23 20 4b 65 79 77 6f 72 64 73    20 61 72 65 20 73 70 6c 69 74 20 61 6e 64 20 63 | `..####.Keywords.are.split.and.c | 
| d180 | 61 70 69 74 61 6c 69 7a 65 64 2e 0a 0a 44 61 73    68 65 73 20 61 72 65 20 63 6f 6e 76 65 72 74 65 | apitalized...Dashes.are.converte | 
| d1a0 | 64 20 69 6e 74 6f 20 73 70 61 63 65 73 20 61 6e    64 20 74 68 65 20 6b 65 79 77 6f 72 64 20 67 65 | d.into.spaces.and.the.keyword.ge | 
| d1c0 | 74 73 20 63 61 70 69 74 61 6c 69 7a 65 64 2e 20    46 6f 72 0a 65 78 61 6d 70 6c 65 2c 20 60 3a 69 | ts.capitalized..For.example,.`:i | 
| d1e0 | 66 2d 6e 6f 74 2d 65 78 69 73 74 73 60 20 62 65    63 6f 6d 65 73 20 60 49 46 20 4e 4f 54 20 45 58 | f-not-exists`.becomes.`IF.NOT.EX | 
| d200 | 49 53 54 53 60 2e 20 48 6f 77 20 79 6f 75 20 63    68 6f 6f 73 65 20 74 6f 0a 63 6f 6d 62 69 6e 65 | ISTS`..How.you.choose.to.combine | 
| d220 | 20 6b 65 79 77 6f 72 64 73 20 69 73 20 75 70 20    74 6f 20 79 6f 75 72 20 70 65 72 73 6f 6e 61 6c | .keywords.is.up.to.your.personal | 
| d240 | 20 74 61 73 74 65 20 28 65 2e 67 2e 2c 20 60 3a    64 72 6f 70 20 3a 74 61 62 6c 65 60 20 76 73 2e | .taste.(e.g.,.`:drop.:table`.vs. | 
| d260 | 0a 60 3a 64 72 6f 70 2d 74 61 62 6c 65 60 29 2e    0a 0a 23 23 23 23 20 53 74 61 6e 64 61 6c 6f 6e | .`:drop-table`)...####.Standalon | 
| d280 | 65 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 69 64    65 6e 74 69 66 69 65 72 73 2e 0a 0a 45 6d 61 63 | e.symbols.are.identifiers...Emac | 
| d2a0 | 53 51 4c 20 64 6f 65 73 6e 27 74 20 6b 6e 6f 77    20 77 68 61 74 20 73 79 6d 62 6f 6c 73 20 72 65 | SQL.doesn't.know.what.symbols.re | 
| d2c0 | 66 65 72 20 74 6f 20 69 64 65 6e 74 69 66 69 65    72 73 20 61 6e 64 20 77 68 61 74 0a 73 79 6d 62 | fer.to.identifiers.and.what.symb | 
| d2e0 | 6f 6c 73 20 73 68 6f 75 6c 64 20 62 65 20 74 72    65 61 74 65 64 20 61 73 20 76 61 6c 75 65 73 2e | ols.should.be.treated.as.values. | 
| d300 | 20 55 73 65 20 71 75 6f 74 65 73 20 74 6f 20 6d    61 72 6b 20 61 20 73 79 6d 62 6f 6c 20 61 73 20 | .Use.quotes.to.mark.a.symbol.as. | 
| d320 | 61 0a 76 61 6c 75 65 2e 20 46 6f 72 20 65 78 61    6d 70 6c 65 2c 20 60 70 65 6f 70 6c 65 60 20 68 | a.value..For.example,.`people`.h | 
| d340 | 65 72 65 20 77 69 6c 6c 20 62 65 20 74 72 65 61    74 65 64 20 61 73 20 61 6e 20 69 64 65 6e 74 69 | ere.will.be.treated.as.an.identi | 
| d360 | 66 69 65 72 2e 0a 0a 60 60 60 65 6c 0a 5b 3a 69    6e 73 65 72 74 2d 69 6e 74 6f 20 70 65 6f 70 6c | fier...```el.[:insert-into.peopl | 
| d380 | 65 20 3a 76 61 6c 75 65 73 20 2e 2e 2e 5d 0a 60    60 60 0a 0a 23 23 23 23 20 52 6f 77 2d 6f 72 69 | e.:values....].```..####.Row-ori | 
| d3a0 | 65 6e 74 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f    6e 20 69 73 20 61 6c 77 61 79 73 20 72 65 70 72 | ented.information.is.always.repr | 
| d3c0 | 65 73 65 6e 74 65 64 20 61 73 20 76 65 63 74 6f    72 73 2e 0a 0a 54 68 69 73 20 69 6e 63 6c 75 64 | esented.as.vectors...This.includ | 
| d3e0 | 65 73 20 72 6f 77 73 20 62 65 69 6e 67 20 69 6e    73 65 72 74 65 64 2c 20 61 6e 64 20 73 65 74 73 | es.rows.being.inserted,.and.sets | 
| d400 | 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 61    20 71 75 65 72 79 2e 20 49 66 0a 79 6f 75 27 72 | .of.columns.in.a.query..If.you'r | 
| d420 | 65 20 74 61 6c 6b 69 6e 67 20 61 62 6f 75 74 20    61 20 72 6f 77 2d 6c 69 6b 65 20 74 68 69 6e 67 | e.talking.about.a.row-like.thing | 
| d440 | 20 74 68 65 6e 20 70 75 74 20 69 74 20 69 6e 20    61 20 76 65 63 74 6f 72 2e 0a 0a 60 60 60 65 6c | .then.put.it.in.a.vector...```el | 
| d460 | 0a 5b 3a 73 65 6c 65 63 74 20 5b 69 64 20 6e 61    6d 65 5d 20 3a 66 72 6f 6d 20 70 65 6f 70 6c 65 | .[:select.[id.name].:from.people | 
| d480 | 5d 0a 60 60 60 0a 0a 4e 6f 74 65 20 74 68 61 74    20 60 2a 60 20 69 73 20 61 63 74 75 61 6c 6c 79 | ].```..Note.that.`*`.is.actually | 
| d4a0 | 20 61 20 53 51 4c 20 6b 65 79 77 6f 72 64 2c 20    73 6f 20 64 6f 6e 27 74 20 70 75 74 20 69 74 20 | .a.SQL.keyword,.so.don't.put.it. | 
| d4c0 | 69 6e 20 61 20 76 65 63 74 6f 72 2e 0a 0a 60 60    60 65 6c 0a 5b 3a 73 65 6c 65 63 74 20 2a 20 3a | in.a.vector...```el.[:select.*.: | 
| d4e0 | 66 72 6f 6d 20 2e 2e 2e 5d 0a 60 60 60 0a 0a 23    23 23 23 20 4c 69 73 74 73 20 61 72 65 20 74 72 | from....].```..####.Lists.are.tr | 
| d500 | 65 61 74 65 64 20 61 73 20 65 78 70 72 65 73 73    69 6f 6e 73 2e 0a 0a 54 68 69 73 20 69 73 20 74 | eated.as.expressions...This.is.t | 
| d520 | 72 75 65 20 65 76 65 6e 20 77 69 74 68 69 6e 20    72 6f 77 2d 6f 72 69 65 6e 74 65 64 20 76 65 63 | rue.even.within.row-oriented.vec | 
| d540 | 74 6f 72 73 2e 0a 0a 60 60 60 65 6c 0a 5b 2e 2e    2e 20 3a 77 68 65 72 65 20 28 3d 20 6e 61 6d 65 | tors...```el.[....:where.(=.name | 
| d560 | 20 22 42 6f 62 22 29 5d 0a 5b 3a 73 65 6c 65 63    74 20 5b 28 2f 20 73 65 63 6f 6e 64 73 20 36 30 | ."Bob")].[:select.[(/.seconds.60 | 
| d580 | 29 20 63 6f 75 6e 74 5d 20 3a 66 72 6f 6d 20 2e    2e 2e 5d 0a 60 60 60 0a 0a 53 6f 6d 65 20 74 68 | ).count].:from....].```..Some.th | 
| d5a0 | 69 6e 67 73 20 74 68 61 74 20 61 72 65 20 74 72    61 64 69 74 69 6f 6e 61 6c 6c 79 20 6b 65 79 77 | ings.that.are.traditionally.keyw | 
| d5c0 | 6f 72 64 73 20 2d 2d 20 70 61 72 74 69 63 75 6c    61 72 6c 79 20 74 68 6f 73 65 20 74 68 61 74 0a | ords.--.particularly.those.that. | 
| d5e0 | 61 72 65 20 6d 69 78 65 64 20 69 6e 20 77 69 74    68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 2d 2d | are.mixed.in.with.expressions.-- | 
| d600 | 20 68 61 76 65 20 62 65 65 6e 20 63 6f 6e 76 65    72 74 65 64 20 69 6e 74 6f 20 6f 70 65 72 61 74 | .have.been.converted.into.operat | 
| d620 | 6f 72 73 0a 28 60 41 53 60 2c 20 60 41 53 43 60    2c 20 60 44 45 53 43 60 29 2e 0a 0a 60 60 60 65 | ors.(`AS`,.`ASC`,.`DESC`)...```e | 
| d640 | 6c 0a 5b 2e 2e 2e 20 3a 6f 72 64 65 72 2d 62 79    20 5b 28 61 73 63 20 62 29 2c 20 28 64 65 73 63 | l.[....:order-by.[(asc.b),.(desc | 
| d660 | 20 61 29 5d 5d 20 20 20 3b 20 22 4f 52 44 45 52    20 42 59 20 62 20 41 53 43 2c 20 61 20 44 45 53 | .a)]]...;."ORDER.BY.b.ASC,.a.DES | 
| d680 | 43 22 0a 5b 3a 73 65 6c 65 63 74 20 70 3a 6e 61    6d 65 20 3a 66 72 6f 6d 20 28 61 73 20 70 65 6f | C".[:select.p:name.:from.(as.peo | 
| d6a0 | 70 6c 65 20 70 29 5d 20 20 3b 20 22 53 45 4c 45    43 54 20 70 2e 6e 61 6d 65 20 46 52 4f 4d 20 70 | ple.p)]..;."SELECT.p.name.FROM.p | 
| d6c0 | 65 6f 70 6c 65 20 41 53 20 70 22 0a 60 60 60 0a    0a 23 23 23 23 20 54 68 65 20 60 3a 76 61 6c 75 | eople.AS.p".```..####.The.`:valu | 
| d6e0 | 65 73 60 20 6b 65 79 77 6f 72 64 20 69 73 20 73    70 65 63 69 61 6c 2e 0a 0a 57 68 61 74 20 66 6f | es`.keyword.is.special...What.fo | 
| d700 | 6c 6c 6f 77 73 20 60 3a 76 61 6c 75 65 73 60 20    69 73 20 61 6c 77 61 79 73 20 74 72 65 61 74 65 | llows.`:values`.is.always.treate | 
| d720 | 64 20 6c 69 6b 65 20 61 20 76 65 63 74 6f 72 20    6f 72 20 6c 69 73 74 20 6f 66 0a 76 65 63 74 6f | d.like.a.vector.or.list.of.vecto | 
| d740 | 72 73 2e 20 4e 6f 72 6d 61 6c 6c 79 20 74 68 69    73 20 73 6f 72 74 20 6f 66 20 74 68 69 6e 67 20 | rs..Normally.this.sort.of.thing. | 
| d760 | 77 6f 75 6c 64 20 61 70 70 65 61 72 20 74 6f 20    62 65 20 61 20 63 6f 6c 75 6d 6e 0a 72 65 66 65 | would.appear.to.be.a.column.refe | 
| d780 | 72 65 6e 63 65 2e 0a 0a 60 60 60 65 6c 0a 5b 2e    2e 2e 20 3a 76 61 6c 75 65 73 20 5b 31 20 32 20 | rence...```el.[....:values.[1.2. | 
| d7a0 | 33 5d 5d 0a 5b 2e 2e 2e 20 3a 76 61 6c 75 65 73    20 28 5b 31 20 32 20 33 5d 20 5b 34 20 35 20 36 | 3]].[....:values.([1.2.3].[4.5.6 | 
| d7c0 | 5d 29 5d 20 20 3b 20 69 6e 73 65 72 74 20 6d 75    6c 74 69 70 6c 65 20 72 6f 77 73 0a 60 60 60 0a | ])]..;.insert.multiple.rows.```. | 
| d7e0 | 0a 23 23 23 23 20 41 20 6c 69 73 74 20 77 68 6f    73 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 | .####.A.list.whose.first.element | 
| d800 | 20 69 73 20 61 20 76 65 63 74 6f 72 20 69 73 20    61 20 74 61 62 6c 65 20 73 63 68 65 6d 61 2e 0a | .is.a.vector.is.a.table.schema.. | 
| d820 | 0a 54 68 69 73 20 69 73 20 74 6f 20 64 69 73 74    69 6e 67 75 69 73 68 20 73 63 68 65 6d 61 74 61 | .This.is.to.distinguish.schemata | 
| d840 | 20 66 72 6f 6d 20 65 76 65 72 79 74 68 69 6e 67    20 65 6c 73 65 2e 20 57 69 74 68 20 74 68 65 0a | .from.everything.else..With.the. | 
| d860 | 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 77 68 61    74 20 66 6f 6c 6c 6f 77 73 20 60 3a 76 61 6c 75 | exception.of.what.follows.`:valu | 
| d880 | 65 73 60 2c 20 6e 6f 74 68 69 6e 67 20 65 6c 73    65 20 69 73 20 73 68 61 70 65 64 20 6c 69 6b 65 | es`,.nothing.else.is.shaped.like | 
| d8a0 | 20 74 68 69 73 2e 0a 0a 60 60 60 65 6c 0a 5b 3a    63 72 65 61 74 65 2d 74 61 62 6c 65 20 70 65 6f | .this...```el.[:create-table.peo | 
| d8c0 | 70 6c 65 20 28 5b 28 69 64 20 3a 70 72 69 6d 61    72 79 2d 6b 65 79 29 20 6e 61 6d 65 5d 29 5d 0a | ple.([(id.:primary-key).name])]. | 
| d8e0 | 60 60 60 0a 0a 23 23 23 20 54 65 6d 70 6c 61 74    65 73 0a 0a 54 6f 20 6d 61 6b 65 20 73 74 61 74 | ```..###.Templates..To.make.stat | 
| d900 | 65 6d 65 6e 74 20 63 6f 6d 70 69 6c 61 74 69 6f    6e 20 66 61 73 74 65 72 2c 20 61 6e 64 20 74 6f | ement.compilation.faster,.and.to | 
| d920 | 20 61 76 6f 69 64 20 6d 61 6b 69 6e 67 20 79 6f    75 20 62 75 69 6c 64 20 75 70 0a 73 74 61 74 65 | .avoid.making.you.build.up.state | 
| d940 | 6d 65 6e 74 73 20 64 79 6e 61 6d 69 63 61 6c 6c    79 2c 20 79 6f 75 20 63 61 6e 20 69 6e 73 65 72 | ments.dynamically,.you.can.inser | 
| d960 | 74 20 60 24 74 6e 60 20 70 61 72 61 6d 65 74 65    72 73 20 69 6e 20 70 6c 61 63 65 20 6f 66 0a 69 | t.`$tn`.parameters.in.place.of.i | 
| d980 | 64 65 6e 74 69 66 69 65 72 73 20 61 6e 64 20 76    61 6c 75 65 73 2e 20 54 68 65 73 65 20 72 65 66 | dentifiers.and.values..These.ref | 
| d9a0 | 65 72 20 74 6f 20 74 68 65 20 61 72 67 75 6d 65    6e 74 27 73 20 74 79 70 65 20 61 6e 64 20 69 74 | er.to.the.argument's.type.and.it | 
| d9c0 | 73 0a 61 72 67 75 6d 65 6e 74 20 70 6f 73 69 74    69 6f 6e 20 61 66 74 65 72 20 74 68 65 20 73 74 | s.argument.position.after.the.st | 
| d9e0 | 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 60    65 6d 61 63 73 71 6c 60 20 66 75 6e 63 74 69 6f | atement.in.the.`emacsql`.functio | 
| da00 | 6e 2c 0a 6f 6e 65 2d 69 6e 64 65 78 65 64 2e 0a    0a 60 60 60 65 6c 0a 28 65 6d 61 63 73 71 6c 20 | n,.one-indexed...```el.(emacsql. | 
| da20 | 64 62 20 5b 3a 73 65 6c 65 63 74 20 2a 20 3a 66    72 6f 6d 20 24 69 31 20 3a 77 68 65 72 65 20 28 | db.[:select.*.:from.$i1.:where.( | 
| da40 | 3e 20 73 61 6c 61 72 79 20 24 73 32 29 5d 20 27    65 6d 70 6c 6f 79 65 65 73 20 35 30 30 30 30 29 | >.salary.$s2)].'employees.50000) | 
| da60 | 0a 0a 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a    73 65 6c 65 63 74 20 2a 20 3a 66 72 6f 6d 20 65 | ..(emacsql.db.[:select.*.:from.e | 
| da80 | 6d 70 6c 6f 79 65 65 73 20 3a 77 68 65 72 65 20    28 6c 69 6b 65 20 6e 61 6d 65 20 24 72 31 29 5d | mployees.:where.(like.name.$r1)] | 
| daa0 | 20 22 25 53 6d 69 74 68 25 22 29 0a 60 60 60 0a    0a 54 68 65 20 6c 65 74 74 65 72 20 62 65 66 6f | ."%Smith%").```..The.letter.befo | 
| dac0 | 72 65 20 74 68 65 20 6e 75 6d 62 65 72 20 69 73    20 74 68 65 20 74 79 70 65 2e 0a 0a 20 2a 20 60 | re.the.number.is.the.type....*.` | 
| dae0 | 69 60 20 3a 20 69 64 65 6e 74 69 66 69 65 72 0a    20 2a 20 60 73 60 20 3a 20 73 63 61 6c 61 72 0a | i`.:.identifier..*.`s`.:.scalar. | 
| db00 | 20 2a 20 60 76 60 20 3a 20 76 65 63 74 6f 72 20    28 6f 72 20 6d 75 6c 74 69 70 6c 65 20 76 65 63 | .*.`v`.:.vector.(or.multiple.vec | 
| db20 | 74 6f 72 73 29 0a 20 2a 20 60 72 60 20 3a 20 72    61 77 2c 20 75 6e 70 72 69 6e 74 65 64 20 73 74 | tors)..*.`r`.:.raw,.unprinted.st | 
| db40 | 72 69 6e 67 73 0a 20 2a 20 60 53 60 20 3a 20 73    63 68 65 6d 61 0a 0a 57 68 65 6e 20 63 6f 6d 62 | rings..*.`S`.:.schema..When.comb | 
| db60 | 69 6e 65 64 20 77 69 74 68 20 60 3a 76 61 6c 75    65 73 60 2c 20 74 68 65 20 76 65 63 74 6f 72 20 | ined.with.`:values`,.the.vector. | 
| db80 | 74 79 70 65 20 63 61 6e 20 72 65 66 65 72 20 74    6f 20 6c 69 73 74 73 20 6f 66 0a 72 6f 77 73 2e | type.can.refer.to.lists.of.rows. | 
| dba0 | 0a 0a 60 60 60 65 6c 0a 28 65 6d 61 63 73 71 6c    20 64 62 20 5b 3a 69 6e 73 65 72 74 2d 69 6e 74 | ..```el.(emacsql.db.[:insert-int | 
| dbc0 | 6f 20 66 61 76 6f 72 69 74 65 2d 63 68 61 72 61    63 74 65 72 73 20 3a 76 61 6c 75 65 73 20 24 76 | o.favorite-characters.:values.$v | 
| dbe0 | 31 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 27    28 5b 30 20 22 43 61 6c 76 69 6e 22 5d 20 5b 31 | 1].............'([0."Calvin"].[1 | 
| dc00 | 20 22 48 6f 62 62 65 73 22 5d 20 5b 33 20 22 53    75 73 69 65 22 5d 29 29 0a 60 60 60 0a 0a 54 68 | ."Hobbes"].[3."Susie"])).```..Th | 
| dc20 | 69 73 20 69 73 20 77 68 79 20 72 6f 77 73 20 6d    75 73 74 20 62 65 20 76 65 63 74 6f 72 73 20 61 | is.is.why.rows.must.be.vectors.a | 
| dc40 | 6e 64 20 6e 6f 74 20 6c 69 73 74 73 2e 0a 0a 23    23 23 20 49 67 6e 6f 72 65 64 20 46 65 61 74 75 | nd.not.lists...###.Ignored.Featu | 
| dc60 | 72 65 73 0a 0a 45 6d 61 63 53 51 4c 20 64 6f 65    73 6e 27 74 20 63 6f 76 65 72 20 61 6c 6c 20 6f | res..EmacSQL.doesn't.cover.all.o | 
| dc80 | 66 20 53 51 4c 69 74 65 27 73 20 66 65 61 74 75    72 65 73 2e 20 48 65 72 65 20 61 72 65 20 61 20 | f.SQLite's.features..Here.are.a. | 
| dca0 | 6c 69 73 74 20 6f 66 0a 74 68 69 6e 67 73 20 74    68 61 74 20 61 72 65 6e 27 74 20 73 75 70 70 6f | list.of.things.that.aren't.suppo | 
| dcc0 | 72 74 65 64 2c 20 61 6e 64 20 70 72 6f 62 61 62    6c 79 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 | rted,.and.probably.will.never.be | 
| dce0 | 2e 0a 0a 20 2a 20 43 6f 6c 6c 61 74 69 6e 67 2e    20 53 51 4c 69 74 65 20 68 61 73 20 74 68 72 65 | ....*.Collating..SQLite.has.thre | 
| dd00 | 65 20 62 75 69 6c 74 2d 69 6e 20 63 6f 6c 6c 61    74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 20 | e.built-in.collation.functions:. | 
| dd20 | 42 49 4e 41 52 59 0a 20 20 20 28 64 65 66 61 75    6c 74 29 2c 20 4e 4f 43 41 53 45 2c 20 61 6e 64 | BINARY....(default),.NOCASE,.and | 
| dd40 | 20 52 54 52 49 4d 2e 20 45 6d 61 63 53 51 4c 20    76 61 6c 75 65 73 20 6e 65 76 65 72 20 68 61 76 | .RTRIM..EmacSQL.values.never.hav | 
| dd60 | 65 20 72 69 67 68 74 2d 68 61 6e 64 0a 20 20 20    77 68 69 74 65 73 70 61 63 65 2c 20 73 6f 20 52 | e.right-hand....whitespace,.so.R | 
| dd80 | 54 52 49 4d 20 77 6f 6e 27 74 20 62 65 20 6f 66    20 61 6e 79 20 75 73 65 2e 20 4e 4f 43 41 53 45 | TRIM.won't.be.of.any.use..NOCASE | 
| dda0 | 20 69 73 20 62 72 6f 6b 65 6e 0a 20 20 20 28 41    53 43 49 49 2d 6f 6e 6c 79 29 20 61 6e 64 20 74 | .is.broken....(ASCII-only).and.t | 
| ddc0 | 68 65 72 65 27 73 20 6c 69 74 74 6c 65 20 72 65    61 73 6f 6e 20 74 6f 20 75 73 65 20 69 74 2e 0a | here's.little.reason.to.use.it.. | 
| dde0 | 0a 20 2a 20 54 65 78 74 20 6d 61 6e 69 70 75 6c    61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 2e | ..*.Text.manipulation.functions. | 
| de00 | 20 4c 69 6b 65 20 63 6f 6c 6c 61 74 69 6e 67 20    74 68 69 73 20 69 73 20 69 6e 63 6f 6d 70 61 74 | .Like.collating.this.is.incompat | 
| de20 | 69 62 6c 65 0a 20 20 20 77 69 74 68 20 45 6d 61    63 53 51 4c 20 73 2d 65 78 70 72 65 73 73 69 6f | ible....with.EmacSQL.s-expressio | 
| de40 | 6e 20 73 74 6f 72 61 67 65 2e 0a 0a 20 2a 20 44    61 74 65 20 61 6e 64 20 74 69 6d 65 2e 20 54 68 | n.storage....*.Date.and.time..Th | 
| de60 | 65 73 65 20 61 72 65 20 69 6e 63 6f 6d 70 61 74    69 62 6c 65 20 77 69 74 68 20 74 68 65 20 70 72 | ese.are.incompatible.with.the.pr | 
| de80 | 69 6e 74 65 64 20 76 61 6c 75 65 73 0a 20 20 20    73 74 6f 72 65 64 20 62 79 20 45 6d 61 63 53 51 | inted.values....stored.by.EmacSQ | 
| dea0 | 4c 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20    68 61 76 65 20 6c 69 74 74 6c 65 20 75 73 65 2e | L.and.therefore.have.little.use. | 
| dec0 | 0a 0a 23 23 20 4c 69 6d 69 74 61 74 69 6f 6e 73    0a 0a 45 6d 61 63 53 51 4c 20 69 73 20 2a 6e 6f | ..##.Limitations..EmacSQL.is.*no | 
| dee0 | 74 2a 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 70    6c 61 79 20 77 65 6c 6c 20 77 69 74 68 20 6f 74 | t*.intended.to.play.well.with.ot | 
| df00 | 68 65 72 20 70 72 6f 67 72 61 6d 73 20 61 63 63    65 73 73 69 6e 67 0a 74 68 65 20 53 51 4c 69 74 | her.programs.accessing.the.SQLit | 
| df20 | 65 20 64 61 74 61 62 61 73 65 2e 20 4e 6f 6e 2d    6e 75 6d 65 72 69 63 20 76 61 6c 75 65 73 20 61 | e.database..Non-numeric.values.a | 
| df40 | 72 65 20 73 74 6f 72 65 64 20 65 6e 63 6f 64 65    64 20 61 73 0a 73 2d 65 78 70 72 65 73 73 69 6f | re.stored.encoded.as.s-expressio | 
| df60 | 6e 73 20 54 45 58 54 20 76 61 6c 75 65 73 2e 20    54 68 69 73 20 61 76 6f 69 64 73 20 61 6d 62 69 | ns.TEXT.values..This.avoids.ambi | 
| df80 | 67 75 69 74 69 65 73 20 69 6e 20 70 61 72 73 69    6e 67 20 6f 75 74 70 75 74 0a 66 72 6f 6d 20 74 | guities.in.parsing.output.from.t | 
| dfa0 | 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20    61 6e 64 20 61 6c 6c 6f 77 73 20 66 6f 72 20 73 | he.command.line.and.allows.for.s | 
| dfc0 | 74 6f 72 61 67 65 20 6f 66 20 45 6d 61 63 73 20    72 69 63 68 65 72 20 64 61 74 61 0a 74 79 70 65 | torage.of.Emacs.richer.data.type | 
| dfe0 | 73 2e 20 54 68 69 73 20 69 73 20 61 6e 20 65 66    66 69 63 69 65 6e 74 2c 20 41 43 49 44 2d 63 6f | s..This.is.an.efficient,.ACID-co | 
| e000 | 6d 70 6c 69 61 6e 74 20 64 61 74 61 62 61 73 65    20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 66 6f | mpliant.database.specifically.fo | 
| e020 | 72 0a 45 6d 61 63 73 2e 0a 0a 23 23 20 45 6d 61    63 73 20 4c 69 73 70 20 49 6e 64 65 6e 74 61 74 | r.Emacs...##.Emacs.Lisp.Indentat | 
| e040 | 69 6f 6e 20 41 6e 6e 6f 79 61 6e 63 65 0a 0a 42    79 20 64 65 66 61 75 6c 74 2c 20 60 65 6d 61 63 | ion.Annoyance..By.default,.`emac | 
| e060 | 73 2d 6c 69 73 70 2d 6d 6f 64 65 60 20 69 6e 64    65 6e 74 73 20 76 65 63 74 6f 72 73 20 61 73 20 | s-lisp-mode`.indents.vectors.as. | 
| e080 | 69 66 20 74 68 65 79 20 77 65 72 65 20 72 65 67    75 6c 61 72 0a 66 75 6e 63 74 69 6f 6e 20 63 61 | if.they.were.regular.function.ca | 
| e0a0 | 6c 6c 73 2e 0a 0a 60 60 60 65 6c 0a 3b 3b 20 55    67 6c 79 20 69 6e 64 65 6e 74 61 74 69 6f 6e 21 | lls...```el.;;.Ugly.indentation! | 
| e0c0 | 0a 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 73    65 6c 65 63 74 20 2a 0a 20 20 20 20 20 20 20 20 | .(emacsql.db.[:select.*......... | 
| e0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 72    6f 6d 20 70 65 6f 70 6c 65 0a 20 20 20 20 20 20 | .............:from.people....... | 
| e100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    77 68 65 72 65 20 28 3e 20 61 67 65 20 36 30 29 | ...............:where.(>.age.60) | 
| e120 | 5d 29 0a 60 60 60 0a 0a 43 61 6c 6c 69 6e 67 20    74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 65 6d | ]).```..Calling.the.function.`em | 
| e140 | 61 63 73 71 6c 2d 66 69 78 2d 76 65 63 74 6f 72    2d 69 6e 64 65 6e 74 61 74 69 6f 6e 60 20 28 69 | acsql-fix-vector-indentation`.(i | 
| e160 | 6e 74 65 72 61 63 74 69 76 65 29 0a 61 64 76 69    73 65 73 20 74 68 65 20 6d 61 6a 6f 72 20 6d 6f | nteractive).advises.the.major.mo | 
| e180 | 64 65 20 74 6f 20 66 69 78 20 74 68 69 73 20 61    6e 6e 6f 79 61 6e 63 65 2e 0a 0a 60 60 60 65 6c | de.to.fix.this.annoyance...```el | 
| e1a0 | 0a 3b 3b 20 53 75 63 68 20 69 6e 64 65 6e 74 21    0a 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 73 | .;;.Such.indent!.(emacsql.db.[:s | 
| e1c0 | 65 6c 65 63 74 20 2a 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 66 72 6f 6d 20 70 65 6f 70 6c | elect.*..............:from.peopl | 
| e1e0 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    77 68 65 72 65 20 28 3e 20 61 67 65 20 36 30 29 | e..............:where.(>.age.60) | 
| e200 | 5d 29 0a 60 60 60 0a 0a 23 23 20 43 6f 6e 74 72    69 62 75 74 69 6e 67 20 61 6e 64 20 45 78 74 65 | ]).```..##.Contributing.and.Exte | 
| e220 | 6e 64 69 6e 67 0a 0a 54 6f 20 72 75 6e 20 74 68    65 20 74 65 73 74 20 73 75 69 74 65 2c 20 63 6c | nding..To.run.the.test.suite,.cl | 
| e240 | 6f 6e 65 20 74 68 65 20 60 70 67 60 20 61 6e 64    20 60 73 71 6c 69 74 65 33 60 20 70 61 63 6b 61 | one.the.`pg`.and.`sqlite3`.packa | 
| e260 | 67 65 73 20 69 6e 74 6f 0a 73 69 62 6c 69 6e 67    20 64 69 72 65 63 74 6f 72 69 65 73 2e 20 54 68 | ges.into.sibling.directories..Th | 
| e280 | 65 20 4d 61 6b 65 66 69 6c 65 20 77 69 6c 6c 20    61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 75 | e.Makefile.will.automatically.pu | 
| e2a0 | 74 20 74 68 65 73 65 20 70 61 74 68 73 20 6f 6e    0a 74 68 65 20 45 6d 61 63 73 20 6c 6f 61 64 20 | t.these.paths.on.the.Emacs.load. | 
| e2c0 | 70 61 74 68 20 28 6f 76 65 72 72 69 64 65 20 60    4c 44 46 4c 41 47 53 60 20 69 66 20 79 6f 75 72 | path.(override.`LDFLAGS`.if.your | 
| e2e0 | 20 73 69 74 75 61 74 69 6f 6e 20 69 73 20 64 69    66 66 65 72 65 6e 74 29 2e 0a 0a 60 60 60 73 68 | .situation.is.different)...```sh | 
| e300 | 65 6c 6c 0a 67 69 74 20 63 6c 6f 6e 65 20 68 74    74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | ell.git.clone.https://github.com | 
| e320 | 2f 65 6d 61 72 73 64 65 6e 2f 70 67 2d 65 6c 20    2e 2e 2f 70 67 0a 67 69 74 20 63 6c 6f 6e 65 20 | /emarsden/pg-el.../pg.git.clone. | 
| e340 | 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63    6f 6d 2f 70 65 6b 69 6e 67 64 75 63 6b 2f 65 6d | https://github.com/pekingduck/em | 
| e360 | 61 63 73 2d 73 71 6c 69 74 65 33 2d 61 70 69 20    2e 2e 2f 73 71 6c 69 74 65 33 0a 60 60 60 0a 0a | acs-sqlite3-api.../sqlite3.```.. | 
| e380 | 4f 72 20 73 65 74 20 60 4c 4f 41 44 5f 50 41 54    48 60 20 74 6f 20 70 6f 69 6e 74 20 61 74 20 74 | Or.set.`LOAD_PATH`.to.point.at.t | 
| e3a0 | 68 65 73 65 20 70 61 63 6b 61 67 65 73 20 65 6c    73 65 77 68 65 72 65 3a 0a 0a 60 60 60 73 68 65 | hese.packages.elsewhere:..```she | 
| e3c0 | 6c 6c 0a 6d 61 6b 65 20 4c 4f 41 44 5f 50 41 54    48 3d 27 2d 4c 20 70 61 74 68 2f 74 6f 2f 70 67 | ll.make.LOAD_PATH='-L.path/to/pg | 
| e3e0 | 20 2d 4c 20 70 61 74 68 2f 74 6f 2f 73 71 6c 69    74 65 33 27 0a 60 60 60 0a 0a 54 68 65 6e 20 69 | .-L.path/to/sqlite3'.```..Then.i | 
| e400 | 6e 76 6f 6b 65 20 6d 61 6b 65 3a 0a 0a 60 60 60    73 68 65 6c 6c 0a 6d 61 6b 65 20 74 65 73 74 0a | nvoke.make:..```shell.make.test. | 
| e420 | 60 60 60 0a 0a 49 66 20 74 68 65 20 65 6e 76 69    72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 | ```..If.the.environment.variable | 
| e440 | 20 60 50 47 44 41 54 41 42 41 53 45 60 20 69 73    20 70 72 65 73 65 6e 74 20 74 68 65 6e 20 74 68 | .`PGDATABASE`.is.present.then.th | 
| e460 | 65 20 75 6e 69 74 0a 74 65 73 74 73 20 77 69 6c    6c 20 61 6c 73 6f 20 62 65 20 72 75 6e 20 77 69 | e.unit.tests.will.also.be.run.wi | 
| e480 | 74 68 20 50 6f 73 74 67 72 65 53 51 4c 20 28 65    6d 61 63 73 71 6c 2d 70 73 71 6c 29 2e 20 50 72 | th.PostgreSQL.(emacsql-psql)..Pr | 
| e4a0 | 6f 76 69 64 65 0a 60 50 47 48 4f 53 54 60 2c 20    60 50 47 50 4f 52 54 60 2c 20 61 6e 64 20 60 50 | ovide.`PGHOST`,.`PGPORT`,.and.`P | 
| e4c0 | 47 55 53 45 52 60 20 69 66 20 6e 65 65 64 65 64    2e 20 49 66 20 60 50 47 55 53 45 52 60 20 69 73 | GUSER`.if.needed..If.`PGUSER`.is | 
| e4e0 | 20 70 72 6f 76 69 64 65 64 2c 0a 74 68 65 20 70    67 2e 65 6c 20 62 61 63 6b 2d 65 6e 64 20 28 65 | .provided,.the.pg.el.back-end.(e | 
| e500 | 6d 61 63 73 71 6c 2d 70 67 29 20 77 69 6c 6c 20    61 6c 73 6f 20 62 65 20 74 65 73 74 65 64 2e 0a | macsql-pg).will.also.be.tested.. | 
| e520 | 0a 49 66 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d    65 6e 74 20 76 61 72 69 61 62 6c 65 20 60 4d 59 | .If.the.environment.variable.`MY | 
| e540 | 53 51 4c 5f 44 42 4e 41 4d 45 60 20 69 73 20 70    72 65 73 65 6e 74 20 74 68 65 6e 20 74 68 65 20 | SQL_DBNAME`.is.present.then.the. | 
| e560 | 75 6e 69 74 0a 74 65 73 74 73 20 77 69 6c 6c 20    61 6c 73 6f 20 62 65 20 72 75 6e 20 77 69 74 68 | unit.tests.will.also.be.run.with | 
| e580 | 20 4d 79 53 51 4c 20 69 6e 20 74 68 65 20 6e 61    6d 65 64 20 64 61 74 61 62 61 73 65 2e 20 4e 6f | .MySQL.in.the.named.database..No | 
| e5a0 | 74 65 20 74 68 61 74 0a 74 68 69 73 20 69 73 20    6e 6f 74 20 61 6e 20 6f 66 66 69 63 69 61 6c 20 | te.that.this.is.not.an.official. | 
| e5c0 | 4d 79 53 51 4c 20 76 61 72 69 61 62 6c 65 2c 20    6a 75 73 74 20 73 6f 6d 65 74 68 69 6e 67 20 6d | MySQL.variable,.just.something.m | 
| e5e0 | 61 64 65 20 75 70 20 66 6f 72 0a 45 6d 61 63 53    51 4c 2e 0a 0a 23 23 23 20 43 72 65 61 74 69 6e | ade.up.for.EmacSQL...###.Creatin | 
| e600 | 67 20 61 20 4e 65 77 20 46 72 6f 6e 74 2d 65 6e    64 0a 0a 45 6d 61 63 53 51 4c 20 75 73 65 73 20 | g.a.New.Front-end..EmacSQL.uses. | 
| e620 | 45 49 45 49 4f 20 73 6f 20 74 68 61 74 20 69 6e    74 65 72 61 63 74 69 6f 6e 73 20 77 69 74 68 20 | EIEIO.so.that.interactions.with. | 
| e640 | 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 63 63    75 72 0a 74 68 72 6f 75 67 68 20 67 65 6e 65 72 | a.connection.occur.through.gener | 
| e660 | 69 63 20 66 75 6e 63 74 69 6f 6e 73 2e 20 59 6f    75 20 6e 65 65 64 20 74 6f 20 64 65 66 69 6e 65 | ic.functions..You.need.to.define | 
| e680 | 20 61 20 6e 65 77 20 63 6c 61 73 73 20 74 68 61    74 0a 69 6e 68 65 72 69 74 73 20 66 72 6f 6d 20 | .a.new.class.that.inherits.from. | 
| e6a0 | 60 65 6d 61 63 73 71 6c 2d 63 6f 6e 6e 65 63 74    69 6f 6e 60 2e 0a 0a 20 2a 20 49 6d 70 6c 65 6d | `emacsql-connection`....*.Implem | 
| e6c0 | 65 6e 74 20 60 65 6d 61 63 73 71 6c 2d 73 65 6e    64 2d 6d 65 73 73 61 67 65 60 2c 20 60 65 6d 61 | ent.`emacsql-send-message`,.`ema | 
| e6e0 | 63 73 71 6c 2d 77 61 69 74 69 6e 67 2d 70 60 2c    0a 20 20 20 60 65 6d 61 63 73 71 6c 2d 70 61 72 | csql-waiting-p`,....`emacsql-par | 
| e700 | 73 65 60 2c 20 61 6e 64 20 60 65 6d 61 63 73 71    6c 2d 63 6c 6f 73 65 60 2e 0a 20 2a 20 50 72 6f | se`,.and.`emacsql-close`...*.Pro | 
| e720 | 76 69 64 65 20 61 20 63 6f 6e 73 74 72 75 63 74    6f 72 20 74 68 61 74 20 69 6e 69 74 69 61 6c 69 | vide.a.constructor.that.initiali | 
| e740 | 7a 65 73 20 74 68 65 20 63 6f 6e 6e 65 63 74 69    6f 6e 20 61 6e 64 20 63 61 6c 6c 73 0a 20 20 20 | zes.the.connection.and.calls.... | 
| e760 | 60 65 6d 61 63 73 71 6c 2d 72 65 67 69 73 74 65    72 60 20 28 66 6f 72 20 61 75 74 6f 6d 61 74 69 | `emacsql-register`.(for.automati | 
| e780 | 63 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 63 6c 65    61 6e 75 70 29 2e 0a 20 2a 20 50 72 6f 76 69 64 | c.connection.cleanup)...*.Provid | 
| e7a0 | 65 20 60 65 6d 61 63 73 71 6c 2d 74 79 70 65 73    60 20 69 66 20 6e 65 65 64 65 64 20 28 68 69 6e | e.`emacsql-types`.if.needed.(hin | 
| e7c0 | 74 3a 20 75 73 65 20 61 20 63 6c 61 73 73 2d 61    6c 6c 6f 63 61 74 65 64 20 73 6c 6f 74 29 2e 0a | t:.use.a.class-allocated.slot).. | 
| e7e0 | 20 2a 20 45 6e 73 75 72 65 20 74 68 61 74 20 79    6f 75 20 70 72 6f 70 65 72 6c 79 20 72 65 61 64 | .*.Ensure.that.you.properly.read | 
| e800 | 20 4e 55 4c 4c 20 61 73 20 6e 69 6c 20 28 68 69    6e 74 3a 20 61 73 6b 20 79 6f 75 72 20 62 61 63 | .NULL.as.nil.(hint:.ask.your.bac | 
| e820 | 6b 2d 65 6e 64 0a 20 20 20 74 6f 20 70 72 69 6e    74 20 69 74 20 74 68 61 74 20 77 61 79 29 2e 0a | k-end....to.print.it.that.way).. | 
| e840 | 20 2a 20 52 65 67 69 73 74 65 72 20 61 6c 6c 20    72 65 73 65 72 76 65 64 20 77 6f 72 64 73 20 77 | .*.Register.all.reserved.words.w | 
| e860 | 69 74 68 20 60 65 6d 61 63 73 71 6c 2d 72 65 67    69 73 74 65 72 2d 72 65 73 65 72 76 65 64 60 2e | ith.`emacsql-register-reserved`. | 
| e880 | 0a 20 2a 20 50 72 65 66 65 72 61 62 6c 79 20 70    72 6f 76 69 64 65 20 60 65 6d 61 63 73 71 6c 2d | ..*.Preferably.provide.`emacsql- | 
| e8a0 | 72 65 63 6f 6e 6e 65 63 74 60 20 69 66 20 70 6f    73 73 69 62 6c 65 2e 0a 20 2a 20 53 65 74 20 74 | reconnect`.if.possible...*.Set.t | 
| e8c0 | 68 65 20 64 65 66 61 75 6c 74 20 69 73 6f 6c 61    74 69 6f 6e 20 6c 65 76 65 6c 20 74 6f 20 2a 73 | he.default.isolation.level.to.*s | 
| e8e0 | 65 72 69 61 6c 69 7a 61 62 6c 65 2a 2e 0a 20 2a    20 45 6e 61 62 6c 65 20 61 75 74 6f 63 6f 6d 6d | erializable*...*.Enable.autocomm | 
| e900 | 69 74 20 6d 6f 64 65 20 62 79 20 64 65 66 61 75    6c 74 2e 0a 20 2a 20 50 72 65 66 65 72 20 41 4e | it.mode.by.default...*.Prefer.AN | 
| e920 | 53 49 20 73 79 6e 74 61 78 20 28 76 61 6c 75 65    20 65 73 63 61 70 65 73 2c 20 69 64 65 6e 74 69 | SI.syntax.(value.escapes,.identi | 
| e940 | 66 69 65 72 20 65 73 63 61 70 65 73 2c 20 65 74    63 2e 29 2e 0a 20 2a 20 45 6e 61 62 6c 65 20 66 | fier.escapes,.etc.)...*.Enable.f | 
| e960 | 6f 72 65 69 67 6e 20 6b 65 79 20 63 6f 6e 73 74    72 61 69 6e 74 73 20 62 79 20 64 65 66 61 75 6c | oreign.key.constraints.by.defaul | 
| e980 | 74 2e 0a 0a 54 68 65 20 67 6f 61 6c 20 6f 66 20    74 68 65 20 61 75 74 6f 63 6f 6d 6d 69 74 2c 20 | t...The.goal.of.the.autocommit,. | 
| e9a0 | 69 73 6f 6c 61 74 69 6f 6e 2c 20 70 61 72 73 69    6e 67 2c 20 61 6e 64 20 66 6f 72 65 69 67 6e 20 | isolation,.parsing,.and.foreign. | 
| e9c0 | 6b 65 79 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f    6e 20 73 65 74 74 69 6e 67 73 20 69 73 20 74 6f | key.configuration.settings.is.to | 
| e9e0 | 20 6e 6f 72 6d 61 6c 69 7a 65 20 74 68 65 20 69    6e 74 65 72 66 61 63 65 20 61 73 20 6d 75 63 68 | .normalize.the.interface.as.much | 
| ea00 | 20 61 73 0a 70 6f 73 73 69 62 6c 65 2e 20 54 68    65 20 63 6f 6e 6e 65 63 74 69 6f 6e 27 73 20 75 | .as.possible..The.connection's.u | 
| ea20 | 73 65 72 20 73 68 6f 75 6c 64 20 68 61 76 65 20    74 68 65 20 6f 70 74 69 6f 6e 20 74 6f 20 62 65 | ser.should.have.the.option.to.be | 
| ea40 | 20 61 67 6e 6f 73 74 69 63 0a 61 62 6f 75 74 20    77 68 69 63 68 20 62 61 63 6b 2d 65 6e 64 20 69 | .agnostic.about.which.back-end.i | 
| ea60 | 73 20 61 63 74 75 61 6c 6c 79 20 69 6e 20 75 73    65 2e 0a 0a 54 68 65 20 70 72 6f 76 69 64 65 64 | s.actually.in.use...The.provided | 
| ea80 | 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73    20 73 68 6f 75 6c 64 20 73 65 72 76 65 20 61 73 | .implementations.should.serve.as | 
| eaa0 | 20 75 73 65 66 75 6c 20 65 78 61 6d 70 6c 65 73    2e 20 49 66 20 79 6f 75 72 0a 62 61 63 6b 2d 65 | .useful.examples..If.your.back-e | 
| eac0 | 6e 64 20 6f 75 74 70 75 74 73 20 64 61 74 61 20    69 6e 20 61 20 63 6c 65 61 6e 2c 20 73 74 61 6e | nd.outputs.data.in.a.clean,.stan | 
| eae0 | 64 61 72 64 20 77 61 79 20 79 6f 75 20 6d 61 79    20 62 65 20 61 62 6c 65 20 74 6f 20 75 73 65 0a | dard.way.you.may.be.able.to.use. | 
| eb00 | 74 68 65 20 65 6d 61 63 73 71 6c 2d 70 72 6f 74    6f 63 6f 6c 2d 6d 69 78 69 6e 20 63 6c 61 73 73 | the.emacsql-protocol-mixin.class | 
| eb20 | 20 74 6f 20 64 6f 20 6d 6f 73 74 20 6f 66 20 74    68 65 20 77 6f 72 6b 2e 0a 0a 23 23 20 53 65 65 | .to.do.most.of.the.work...##.See | 
| eb40 | 20 41 6c 73 6f 0a 0a 20 2a 20 5b 53 51 4c 69 74    65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5d | .Also...*.[SQLite.Documentation] | 
| eb60 | 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 73 71 6c    69 74 65 2e 6f 72 67 2f 64 6f 63 73 2e 68 74 6d | (https://www.sqlite.org/docs.htm | 
| eb80 | 6c 29 0a 0a 5b 72 65 61 64 61 62 6c 65 5d 3a 20    68 74 74 70 3a 2f 2f 6e 75 6c 6c 70 72 6f 67 72 | l)..[readable]:.http://nullprogr | 
| eba0 | 61 6d 2e 63 6f 6d 2f 62 6c 6f 67 2f 32 30 31 33    2f 31 32 2f 33 30 2f 23 61 6c 6d 6f 73 74 5f 65 | am.com/blog/2013/12/30/#almost_e | 
| ebc0 | 76 65 72 79 74 68 69 6e 67 5f 70 72 69 6e 74 73    5f 72 65 61 64 61 62 6c 79 0a 5b 6d 69 73 74 61 | verything_prints_readably.[mista | 
| ebe0 | 6b 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74    68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 65 6d | ke]:.https://github.com/magit/em | 
| ec00 | 61 63 73 71 6c 2f 69 73 73 75 65 73 2f 33 35 23    69 73 73 75 65 63 6f 6d 6d 65 6e 74 2d 33 34 36 | acsql/issues/35#issuecomment-346 | 
| ec20 | 33 35 32 34 33 39 0a 0a 3c 21 2d 2d 20 4c 6f 63    61 6c 57 6f 72 64 73 3a 20 45 49 45 49 4f 20 45 | 352439..<!--.LocalWords:.EIEIO.E | 
| ec40 | 6c 69 73 70 20 45 6d 61 63 53 51 4c 20 4d 45 4c    50 41 20 4d 61 6b 65 66 69 6c 65 20 4e 4f 43 41 | lisp.EmacSQL.MELPA.Makefile.NOCA | 
| ec60 | 53 45 20 52 54 52 49 4d 20 20 2d 2d 3e 0a 3c 21    2d 2d 20 4c 6f 63 61 6c 57 6f 72 64 73 3a 20 53 | SE.RTRIM..-->.<!--.LocalWords:.S | 
| ec80 | 51 4c 27 73 20 61 75 74 6f 63 6f 6d 6d 69 74 20    65 6c 20 65 6d 61 63 73 71 6c 20 75 6e 70 72 69 | QL's.autocommit.el.emacsql.unpri | 
| eca0 | 6e 74 65 64 20 77 68 69 74 65 73 70 61 63 65 20    2d 2d 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 | nted.whitespace.-->............. | 
| ecc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ece0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ed00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ed20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ed40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ed60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ed80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| eda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| edc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ede0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ee00 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 55 4e    4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 00 00 | emacsql-4.3.1/UNLICENSE......... | 
| ee20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ee40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ee60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| ee80 | 30 30 30 32 32 37 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 30 35 37 00 20 30 00 00 00 | 0002273.00000000000.013057..0... | 
| eea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| eec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| eee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ef00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| ef20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| ef40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ef60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| ef80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| efa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| efc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| efe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f000 | 54 68 69 73 20 69 73 20 66 72 65 65 20 61 6e 64    20 75 6e 65 6e 63 75 6d 62 65 72 65 64 20 73 6f | This.is.free.and.unencumbered.so | 
| f020 | 66 74 77 61 72 65 20 72 65 6c 65 61 73 65 64 20    69 6e 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 | ftware.released.into.the.public. | 
| f040 | 64 6f 6d 61 69 6e 2e 0a 0a 41 6e 79 6f 6e 65 20    69 73 20 66 72 65 65 20 74 6f 20 63 6f 70 79 2c | domain...Anyone.is.free.to.copy, | 
| f060 | 20 6d 6f 64 69 66 79 2c 20 70 75 62 6c 69 73 68    2c 20 75 73 65 2c 20 63 6f 6d 70 69 6c 65 2c 20 | .modify,.publish,.use,.compile,. | 
| f080 | 73 65 6c 6c 2c 20 6f 72 0a 64 69 73 74 72 69 62    75 74 65 20 74 68 69 73 20 73 6f 66 74 77 61 72 | sell,.or.distribute.this.softwar | 
| f0a0 | 65 2c 20 65 69 74 68 65 72 20 69 6e 20 73 6f 75    72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 6f 72 | e,.either.in.source.code.form.or | 
| f0c0 | 20 61 73 20 61 20 63 6f 6d 70 69 6c 65 64 0a 62    69 6e 61 72 79 2c 20 66 6f 72 20 61 6e 79 20 70 | .as.a.compiled.binary,.for.any.p | 
| f0e0 | 75 72 70 6f 73 65 2c 20 63 6f 6d 6d 65 72 63 69    61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6d 6d 65 72 | urpose,.commercial.or.non-commer | 
| f100 | 63 69 61 6c 2c 20 61 6e 64 20 62 79 20 61 6e 79    0a 6d 65 61 6e 73 2e 0a 0a 49 6e 20 6a 75 72 69 | cial,.and.by.any.means...In.juri | 
| f120 | 73 64 69 63 74 69 6f 6e 73 20 74 68 61 74 20 72    65 63 6f 67 6e 69 7a 65 20 63 6f 70 79 72 69 67 | sdictions.that.recognize.copyrig | 
| f140 | 68 74 20 6c 61 77 73 2c 20 74 68 65 20 61 75 74    68 6f 72 20 6f 72 20 61 75 74 68 6f 72 73 0a 6f | ht.laws,.the.author.or.authors.o | 
| f160 | 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20    64 65 64 69 63 61 74 65 20 61 6e 79 20 61 6e 64 | f.this.software.dedicate.any.and | 
| f180 | 20 61 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 69    6e 74 65 72 65 73 74 20 69 6e 20 74 68 65 0a 73 | .all.copyright.interest.in.the.s | 
| f1a0 | 6f 66 74 77 61 72 65 20 74 6f 20 74 68 65 20 70    75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 20 57 65 | oftware.to.the.public.domain..We | 
| f1c0 | 20 6d 61 6b 65 20 74 68 69 73 20 64 65 64 69 63    61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 62 65 | .make.this.dedication.for.the.be | 
| f1e0 | 6e 65 66 69 74 0a 6f 66 20 74 68 65 20 70 75 62    6c 69 63 20 61 74 20 6c 61 72 67 65 20 61 6e 64 | nefit.of.the.public.at.large.and | 
| f200 | 20 74 6f 20 74 68 65 20 64 65 74 72 69 6d 65 6e    74 20 6f 66 20 6f 75 72 20 68 65 69 72 73 20 61 | .to.the.detriment.of.our.heirs.a | 
| f220 | 6e 64 0a 73 75 63 63 65 73 73 6f 72 73 2e 20 57    65 20 69 6e 74 65 6e 64 20 74 68 69 73 20 64 65 | nd.successors..We.intend.this.de | 
| f240 | 64 69 63 61 74 69 6f 6e 20 74 6f 20 62 65 20 61    6e 20 6f 76 65 72 74 20 61 63 74 20 6f 66 0a 72 | dication.to.be.an.overt.act.of.r | 
| f260 | 65 6c 69 6e 71 75 69 73 68 6d 65 6e 74 20 69 6e    20 70 65 72 70 65 74 75 69 74 79 20 6f 66 20 61 | elinquishment.in.perpetuity.of.a | 
| f280 | 6c 6c 20 70 72 65 73 65 6e 74 20 61 6e 64 20 66    75 74 75 72 65 20 72 69 67 68 74 73 20 74 6f 20 | ll.present.and.future.rights.to. | 
| f2a0 | 74 68 69 73 0a 73 6f 66 74 77 61 72 65 20 75 6e    64 65 72 20 63 6f 70 79 72 69 67 68 74 20 6c 61 | this.software.under.copyright.la | 
| f2c0 | 77 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45    20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 | w...THE.SOFTWARE.IS.PROVIDED."AS | 
| f2e0 | 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41    52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 | .IS",.WITHOUT.WARRANTY.OF.ANY.KI | 
| f300 | 4e 44 2c 0a 45 58 50 52 45 53 53 20 4f 52 20 49    4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e | ND,.EXPRESS.OR.IMPLIED,.INCLUDIN | 
| f320 | 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45    44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 | G.BUT.NOT.LIMITED.TO.THE.WARRANT | 
| f340 | 49 45 53 20 4f 46 0a 4d 45 52 43 48 41 4e 54 41    42 49 4c 49 54 59 2c 20 46 49 54 4e 45 53 53 20 | IES.OF.MERCHANTABILITY,.FITNESS. | 
| f360 | 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52    20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e | FOR.A.PARTICULAR.PURPOSE.AND.NON | 
| f380 | 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 0a 49 4e    20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 | INFRINGEMENT..IN.NO.EVENT.SHALL. | 
| f3a0 | 54 48 45 20 41 55 54 48 4f 52 53 20 42 45 20 4c    49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c | THE.AUTHORS.BE.LIABLE.FOR.ANY.CL | 
| f3c0 | 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 0a    4f 54 48 45 52 20 4c 49 41 42 49 4c 49 54 59 2c | AIM,.DAMAGES.OR.OTHER.LIABILITY, | 
| f3e0 | 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41    43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 | .WHETHER.IN.AN.ACTION.OF.CONTRAC | 
| f400 | 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52    57 49 53 45 2c 0a 41 52 49 53 49 4e 47 20 46 52 | T,.TORT.OR.OTHERWISE,.ARISING.FR | 
| f420 | 4f 4d 2c 20 4f 55 54 20 4f 46 20 4f 52 20 49 4e    20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 | OM,.OUT.OF.OR.IN.CONNECTION.WITH | 
| f440 | 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52    20 54 48 45 20 55 53 45 20 4f 52 0a 4f 54 48 45 | .THE.SOFTWARE.OR.THE.USE.OR.OTHE | 
| f460 | 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 20 54 48    45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 46 6f 72 | R.DEALINGS.IN.THE.SOFTWARE...For | 
| f480 | 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f    6e 2c 20 70 6c 65 61 73 65 20 72 65 66 65 72 20 | .more.information,.please.refer. | 
| f4a0 | 74 6f 20 3c 68 74 74 70 3a 2f 2f 75 6e 6c 69 63    65 6e 73 65 2e 6f 72 67 2f 3e 0a 00 00 00 00 00 | to.<http://unlicense.org/>...... | 
| f4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f600 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 69 | emacsql-4.3.1/emacsql-sqlite-bui | 
| f620 | 6c 74 69 6e 2e 65 6c 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ltin.el......................... | 
| f640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| f680 | 30 30 30 36 33 36 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 36 35 32 35 00 20 30 00 00 00 | 0006363.00000000000.016525..0... | 
| f6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f700 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| f720 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| f740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| f800 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69    74 65 2d 62 75 69 6c 74 69 6e 2e 65 6c 20 2d 2d | ;;;.emacsql-sqlite-builtin.el.-- | 
| f820 | 2d 20 45 6d 61 63 53 51 4c 20 62 61 63 6b 2d 65    6e 64 20 66 6f 72 20 53 51 4c 69 74 65 20 75 73 | -.EmacSQL.back-end.for.SQLite.us | 
| f840 | 69 6e 67 20 62 75 69 6c 74 69 6e 20 73 75 70 70    6f 72 74 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | ing.builtin.support..-*-.lexical | 
| f860 | 2d 62 69 6e 64 69 6e 67 3a 74 20 2d 2a 2d 0a 0a    3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 | -binding:t.-*-..;;.This.is.free. | 
| f880 | 61 6e 64 20 75 6e 65 6e 63 75 6d 62 65 72 65 64    20 73 6f 66 74 77 61 72 65 20 72 65 6c 65 61 73 | and.unencumbered.software.releas | 
| f8a0 | 65 64 20 69 6e 74 6f 20 74 68 65 20 70 75 62 6c    69 63 20 64 6f 6d 61 69 6e 2e 0a 0a 3b 3b 20 41 | ed.into.the.public.domain...;;.A | 
| f8c0 | 75 74 68 6f 72 3a 20 4a 6f 6e 61 73 20 42 65 72    6e 6f 75 6c 6c 69 20 3c 65 6d 61 63 73 2e 65 6d | uthor:.Jonas.Bernoulli.<emacs.em | 
| f8e0 | 61 63 73 71 6c 40 6a 6f 6e 61 73 2e 62 65 72 6e    6f 75 6c 6c 69 2e 64 65 76 3e 0a 3b 3b 20 4d 61 | acsql@jonas.bernoulli.dev>.;;.Ma | 
| f900 | 69 6e 74 61 69 6e 65 72 3a 20 4a 6f 6e 61 73 20    42 65 72 6e 6f 75 6c 6c 69 20 3c 65 6d 61 63 73 | intainer:.Jonas.Bernoulli.<emacs | 
| f920 | 2e 65 6d 61 63 73 71 6c 40 6a 6f 6e 61 73 2e 62    65 72 6e 6f 75 6c 6c 69 2e 64 65 76 3e 0a 0a 3b | .emacsql@jonas.bernoulli.dev>..; | 
| f940 | 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49    64 65 6e 74 69 66 69 65 72 3a 20 55 6e 6c 69 63 | ;.SPDX-License-Identifier:.Unlic | 
| f960 | 65 6e 73 65 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e    74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 6c | ense..;;;.Commentary:..;;.This.l | 
| f980 | 69 62 72 61 72 79 20 70 72 6f 76 69 64 65 73 20    61 6e 20 45 6d 61 63 53 51 4c 20 62 61 63 6b 2d | ibrary.provides.an.EmacSQL.back- | 
| f9a0 | 65 6e 64 20 66 6f 72 20 53 51 4c 69 74 65 2c 20    77 68 69 63 68 20 75 73 65 73 0a 3b 3b 20 74 68 | end.for.SQLite,.which.uses.;;.th | 
| f9c0 | 65 20 62 75 69 6c 74 2d 69 6e 20 53 51 4c 69 74    65 20 73 75 70 70 6f 72 74 20 69 6e 20 45 6d 61 | e.built-in.SQLite.support.in.Ema | 
| f9e0 | 63 73 20 32 39 20 61 6e 20 6c 61 74 65 72 2e 0a    0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 | cs.29.an.later...;;;.Code:..(req | 
| fa00 | 75 69 72 65 20 27 65 6d 61 63 73 71 6c 2d 73 71    6c 69 74 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d | uire.'emacsql-sqlite)..(declare- | 
| fa20 | 66 75 6e 63 74 69 6f 6e 20 73 71 6c 69 74 65 2d    6f 70 65 6e 20 22 73 71 6c 69 74 65 2e 63 22 29 | function.sqlite-open."sqlite.c") | 
| fa40 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69    6f 6e 20 73 71 6c 69 74 65 2d 73 65 6c 65 63 74 | .(declare-function.sqlite-select | 
| fa60 | 20 22 73 71 6c 69 74 65 2e 63 22 29 0a 28 64 65    63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 73 | ."sqlite.c").(declare-function.s | 
| fa80 | 71 6c 69 74 65 2d 63 6c 6f 73 65 20 22 73 71 6c    69 74 65 2e 63 22 29 0a 0a 28 65 6d 61 63 73 71 | qlite-close."sqlite.c")..(emacsq | 
| faa0 | 6c 2d 72 65 67 69 73 74 65 72 2d 72 65 73 65 72    76 65 64 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 | l-register-reserved.emacsql-sqli | 
| fac0 | 74 65 2d 72 65 73 65 72 76 65 64 29 0a 0a 28 64    65 66 63 6c 61 73 73 20 65 6d 61 63 73 71 6c 2d | te-reserved)..(defclass.emacsql- | 
| fae0 | 73 71 6c 69 74 65 2d 62 75 69 6c 74 69 6e 2d 63    6f 6e 6e 65 63 74 69 6f 6e 20 28 65 6d 61 63 73 | sqlite-builtin-connection.(emacs | 
| fb00 | 71 6c 2d 2d 73 71 6c 69 74 65 2d 62 61 73 65 29    20 28 29 0a 20 20 22 41 20 63 6f 6e 6e 65 63 74 | ql--sqlite-base).()..."A.connect | 
| fb20 | 69 6f 6e 20 74 6f 20 61 20 53 51 4c 69 74 65 20    64 61 74 61 62 61 73 65 20 75 73 69 6e 67 20 62 | ion.to.a.SQLite.database.using.b | 
| fb40 | 75 69 6c 74 69 6e 20 73 75 70 70 6f 72 74 2e 22    29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | uiltin.support.")..(cl-defmethod | 
| fb60 | 20 69 6e 69 74 69 61 6c 69 7a 65 2d 69 6e 73 74    61 6e 63 65 20 3a 61 66 74 65 72 0a 20 20 28 28 | .initialize-instance.:after...(( | 
| fb80 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73    71 6c 2d 73 71 6c 69 74 65 2d 62 75 69 6c 74 69 | connection.emacsql-sqlite-builti | 
| fba0 | 6e 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 26 72    65 73 74 20 5f 29 0a 20 20 28 6f 73 65 74 20 63 | n-connection).&rest._)...(oset.c | 
| fbc0 | 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65    0a 20 20 20 20 20 20 20 20 28 73 71 6c 69 74 65 | onnection.handle.........(sqlite | 
| fbe0 | 2d 6f 70 65 6e 20 28 6f 72 65 66 20 63 6f 6e 6e    65 63 74 69 6f 6e 20 66 69 6c 65 29 29 29 0a 20 | -open.(oref.connection.file))).. | 
| fc00 | 20 28 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65    2d 73 65 74 2d 62 75 73 79 2d 74 69 6d 65 6f 75 | .(emacsql-sqlite-set-busy-timeou | 
| fc20 | 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20    28 65 6d 61 63 73 71 6c 20 63 6f 6e 6e 65 63 74 | t.connection)...(emacsql.connect | 
| fc40 | 69 6f 6e 20 5b 3a 70 72 61 67 6d 61 20 28 3d 20    66 6f 72 65 69 67 6e 2d 6b 65 79 73 20 6f 6e 29 | ion.[:pragma.(=.foreign-keys.on) | 
| fc60 | 5d 29 0a 20 20 28 65 6d 61 63 73 71 6c 2d 72 65    67 69 73 74 65 72 20 63 6f 6e 6e 65 63 74 69 6f | ])...(emacsql-register.connectio | 
| fc80 | 6e 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 65    6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 | n))..(cl-defun.emacsql-sqlite-bu | 
| fca0 | 69 6c 74 69 6e 20 28 66 69 6c 65 20 26 6b 65 79    20 64 65 62 75 67 29 0a 20 20 22 4f 70 65 6e 20 | iltin.(file.&key.debug)..."Open. | 
| fcc0 | 61 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 64    61 74 61 62 61 73 65 20 73 74 6f 72 65 64 20 69 | a.connected.to.database.stored.i | 
| fce0 | 6e 20 46 49 4c 45 2e 0a 49 66 20 46 49 4c 45 20    69 73 20 6e 69 6c 20 75 73 65 20 61 6e 20 69 6e | n.FILE..If.FILE.is.nil.use.an.in | 
| fd00 | 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65    2e 0a 0a 3a 64 65 62 75 67 20 4c 4f 47 20 2d 2d | -memory.database...:debug.LOG.-- | 
| fd20 | 20 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 6c    6f 67 20 61 6c 6c 20 53 51 4c 69 74 65 20 63 6f | .When.non-nil,.log.all.SQLite.co | 
| fd40 | 6d 6d 61 6e 64 73 20 74 6f 20 61 20 6c 6f 67 0a    62 75 66 66 65 72 2e 20 20 54 68 69 73 20 69 73 | mmands.to.a.log.buffer...This.is | 
| fd60 | 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 20 70    75 72 70 6f 73 65 73 2e 22 0a 20 20 28 6c 65 74 | .for.debugging.purposes."...(let | 
| fd80 | 20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 28 6d    61 6b 65 2d 69 6e 73 74 61 6e 63 65 20 23 27 65 | .((connection.(make-instance.#'e | 
| fda0 | 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75    69 6c 74 69 6e 2d 63 6f 6e 6e 65 63 74 69 6f 6e | macsql-sqlite-builtin-connection | 
| fdc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| fde0 | 20 20 20 20 3a 66 69 6c 65 20 66 69 6c 65 29 29    29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 62 75 | ....:file.file))).....(when.debu | 
| fe00 | 67 0a 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c    2d 65 6e 61 62 6c 65 2d 64 65 62 75 67 67 69 6e | g.......(emacsql-enable-debuggin | 
| fe20 | 67 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a 20    20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a | g.connection)).....connection)). | 
| fe40 | 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65    6d 61 63 73 71 6c 2d 6c 69 76 65 2d 70 20 28 28 | .(cl-defmethod.emacsql-live-p.(( | 
| fe60 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73    71 6c 2d 73 71 6c 69 74 65 2d 62 75 69 6c 74 69 | connection.emacsql-sqlite-builti | 
| fe80 | 6e 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a 20    20 28 61 6e 64 20 28 6f 72 65 66 20 63 6f 6e 6e | n-connection))...(and.(oref.conn | 
| fea0 | 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65 29 20 74    29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f | ection.handle).t))..(cl-defmetho | 
| fec0 | 64 20 65 6d 61 63 73 71 6c 2d 63 6c 6f 73 65 20    28 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 | d.emacsql-close.((connection.ema | 
| fee0 | 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 69 6c    74 69 6e 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 | csql-sqlite-builtin-connection)) | 
| ff00 | 0a 20 20 28 73 71 6c 69 74 65 2d 63 6c 6f 73 65    20 28 6f 72 65 66 20 63 6f 6e 6e 65 63 74 69 6f | ...(sqlite-close.(oref.connectio | 
| ff20 | 6e 20 68 61 6e 64 6c 65 29 29 0a 20 20 28 6f 73    65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 | n.handle))...(oset.connection.ha | 
| ff40 | 6e 64 6c 65 20 6e 69 6c 29 29 0a 0a 28 63 6c 2d    64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63 73 71 | ndle.nil))..(cl-defmethod.emacsq | 
| ff60 | 6c 2d 73 65 6e 64 2d 6d 65 73 73 61 67 65 0a 20    20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d | l-send-message...((connection.em | 
| ff80 | 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 69    6c 74 69 6e 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 | acsql-sqlite-builtin-connection) | 
| ffa0 | 20 6d 65 73 73 61 67 65 29 0a 20 20 28 63 6f 6e    64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a | .message)...(condition-case.err. | 
| ffc0 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 65 61    64 65 72 70 20 65 6d 61 63 73 71 6c 2d 69 6e 63 | ......(let.((headerp.emacsql-inc | 
| ffe0 | 6c 75 64 65 2d 68 65 61 64 65 72 29 29 0a 20 20    20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c | lude-header)).........(mapcar.(l | 
| 10000 | 61 6d 62 64 61 20 28 72 6f 77 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ambda.(row)...................(c | 
| 10020 | 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 68 65 61 64 65 72 70 20 | ond....................(headerp. | 
| 10040 | 28 73 65 74 71 20 68 65 61 64 65 72 70 20 6e 69    6c 29 20 72 6f 77 29 0a 20 20 20 20 20 20 20 20 | (setq.headerp.nil).row)......... | 
| 10060 | 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 61 70    63 61 6e 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c | ...........((mapcan.(lambda.(col | 
| 10080 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... | 
| 100a0 | 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 63 6f 6c    29 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 29 | (cond.((null.col).....(list.nil) | 
| 100c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... | 
| 100e0 | 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 63 6f    6c 20 22 22 29 20 28 6c 69 73 74 20 22 22 29 29 | ......((equal.col."").(list."")) | 
| 10100 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 10120 | 20 20 20 20 20 28 28 6e 75 6d 62 65 72 70 20 63    6f 6c 29 20 20 28 6c 69 73 74 20 63 6f 6c 29 29 | .....((numberp.col)..(list.col)) | 
| 10140 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 10160 | 20 20 20 20 20 28 28 65 6d 61 63 73 71 6c 2d 73    71 6c 69 74 65 2d 72 65 61 64 2d 63 6f 6c 75 6d | .....((emacsql-sqlite-read-colum | 
| 10180 | 6e 20 63 6f 6c 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.col))))....................... | 
| 101a0 | 20 20 20 20 20 20 72 6f 77 29 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | ......row)))).................(s | 
| 101c0 | 71 6c 69 74 65 2d 73 65 6c 65 63 74 20 28 6f 72    65 66 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 | qlite-select.(oref.connection.ha | 
| 101e0 | 6e 64 6c 65 29 20 6d 65 73 73 61 67 65 20 6e 69    6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndle).message.nil............... | 
| 10200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 61 6e 64 20 65 6d 61 63 73 71 6c 2d 69 6e | .................(and.emacsql-in | 
| 10220 | 63 6c 75 64 65 2d 68 65 61 64 65 72 20 27 66 75    6c 6c 29 29 29 29 0a 20 20 20 20 28 28 73 71 6c | clude-header.'full)))).....((sql | 
| 10240 | 69 74 65 2d 65 72 72 6f 72 20 73 71 6c 69 74 65    2d 6c 6f 63 6b 65 64 2d 65 72 72 6f 72 29 0a 20 | ite-error.sqlite-locked-error).. | 
| 10260 | 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70    20 28 63 64 72 20 65 72 72 29 29 0a 20 20 20 20 | ....(if.(stringp.(cdr.err))..... | 
| 10280 | 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 65 6d    61 63 73 71 6c 2d 65 72 72 6f 72 20 28 6c 69 73 | .....(signal.'emacsql-error.(lis | 
| 102a0 | 74 20 28 63 64 72 20 65 72 72 29 29 29 0a 20 20    20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a | t.(cdr.err)))........(pcase-let* | 
| 102c0 | 20 28 28 60 28 2c 5f 20 2c 65 72 72 73 74 72 20    2c 65 72 72 6d 73 67 20 2c 65 72 72 63 6f 64 65 | .((`(,_.,errstr.,errmsg.,errcode | 
| 102e0 | 20 2c 65 78 74 2d 65 72 72 63 6f 64 65 29 20 65    72 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .,ext-errcode).err)............. | 
| 10300 | 20 20 20 20 20 20 20 20 28 60 28 2c 5f 20 2c 5f    20 2c 73 69 67 6e 61 6c 20 2c 5f 29 0a 20 20 20 | ........(`(,_.,_.,signal.,_).... | 
| 10320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 61 73 73 71 20 65 72 72 63 6f 64 65 20 | ..................(assq.errcode. | 
| 10340 | 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 65    72 72 6f 72 2d 63 6f 64 65 73 29 29 29 0a 20 20 | emacsql-sqlite-error-codes)))... | 
| 10360 | 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 28    6f 72 20 73 69 67 6e 61 6c 20 27 65 6d 61 63 73 | .......(signal.(or.signal.'emacs | 
| 10380 | 71 6c 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 | ql-error)..................(list | 
| 103a0 | 20 65 72 72 6d 73 67 20 65 72 72 63 6f 64 65 20    65 78 74 2d 65 72 72 63 6f 64 65 20 65 72 72 73 | .errmsg.errcode.ext-errcode.errs | 
| 103c0 | 74 72 29 29 29 29 29 0a 20 20 20 20 28 65 72 72    6f 72 0a 20 20 20 20 20 28 73 69 67 6e 61 6c 20 | tr))))).....(error......(signal. | 
| 103e0 | 27 65 6d 61 63 73 71 6c 2d 65 72 72 6f 72 20 28    63 64 72 20 65 72 72 29 29 29 29 29 0a 0a 28 63 | 'emacsql-error.(cdr.err)))))..(c | 
| 10400 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63    73 71 6c 20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e | l-defmethod.emacsql.((connection | 
| 10420 | 20 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d    62 75 69 6c 74 69 6e 2d 63 6f 6e 6e 65 63 74 69 | .emacsql-sqlite-builtin-connecti | 
| 10440 | 6f 6e 29 20 73 71 6c 20 26 72 65 73 74 20 61 72    67 73 29 0a 20 20 28 65 6d 61 63 73 71 6c 2d 73 | on).sql.&rest.args)...(emacsql-s | 
| 10460 | 65 6e 64 2d 6d 65 73 73 61 67 65 20 63 6f 6e 6e    65 63 74 69 6f 6e 20 28 61 70 70 6c 79 20 23 27 | end-message.connection.(apply.#' | 
| 10480 | 65 6d 61 63 73 71 6c 2d 63 6f 6d 70 69 6c 65 20    63 6f 6e 6e 65 63 74 69 6f 6e 20 73 71 6c 20 61 | emacsql-compile.connection.sql.a | 
| 104a0 | 72 67 73 29 29 29 0a 0a 28 70 72 6f 76 69 64 65    20 27 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 | rgs)))..(provide.'emacsql-sqlite | 
| 104c0 | 2d 62 75 69 6c 74 69 6e 29 0a 0a 3b 3b 3b 20 65    6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 62 75 | -builtin)..;;;.emacsql-sqlite-bu | 
| 104e0 | 69 6c 74 69 6e 2e 65 6c 20 65 6e 64 73 20 68 65    72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 | iltin.el.ends.here.............. | 
| 10500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 105a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 105c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 105e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10600 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 70 6b 67 2e 65 6c 00 00 00 00 | emacsql-4.3.1/emacsql-pkg.el.... | 
| 10620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 10680 | 30 30 30 30 36 31 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 33 32 36 00 20 30 00 00 00 | 0000610.00000000000.014326..0... | 
| 106a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 106c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 106e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10700 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 10720 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 10740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 107a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 107c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 107e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10800 | 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63    6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e | ;;.Generated.package.description | 
| 10820 | 20 66 72 6f 6d 20 65 6d 61 63 73 71 6c 2e 65 6c    20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f | .from.emacsql.el..-*-.no-byte-co | 
| 10840 | 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65    66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 65 6d | mpile:.t.-*-.(define-package."em | 
| 10860 | 61 63 73 71 6c 22 20 22 34 2e 33 2e 31 22 20 22    48 69 67 68 2d 6c 65 76 65 6c 20 53 51 4c 20 64 | acsql"."4.3.1"."High-level.SQL.d | 
| 10880 | 61 74 61 62 61 73 65 20 66 72 6f 6e 74 2d 65 6e    64 22 20 27 28 28 65 6d 61 63 73 20 22 32 36 2e | atabase.front-end".'((emacs."26. | 
| 108a0 | 31 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 63 65    64 30 36 32 38 39 30 30 36 31 62 36 65 34 66 62 | 1")).:commit."ced062890061b6e4fb | 
| 108c0 | 65 34 64 30 30 63 30 36 31 37 66 37 66 66 38 34    66 66 66 32 35 63 22 20 3a 61 75 74 68 6f 72 73 | e4d00c0617f7ff84fff25c".:authors | 
| 108e0 | 20 27 28 28 22 43 68 72 69 73 74 6f 70 68 65 72    20 57 65 6c 6c 6f 6e 73 22 20 2e 20 22 77 65 6c | .'(("Christopher.Wellons"..."wel | 
| 10900 | 6c 6f 6e 73 40 6e 75 6c 6c 70 72 6f 67 72 61 6d    2e 63 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 69 | lons@nullprogram.com")).:maintai | 
| 10920 | 6e 65 72 20 27 28 22 4a 6f 6e 61 73 20 42 65 72    6e 6f 75 6c 6c 69 22 20 2e 20 22 65 6d 61 63 73 | ner.'("Jonas.Bernoulli"..."emacs | 
| 10940 | 2e 65 6d 61 63 73 71 6c 40 6a 6f 6e 61 73 2e 62    65 72 6e 6f 75 6c 6c 69 2e 64 65 76 22 29 20 3a | .emacsql@jonas.bernoulli.dev").: | 
| 10960 | 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74    68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 65 6d | url."https://github.com/magit/em | 
| 10980 | 61 63 73 71 6c 22 29 0a 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | acsql")......................... | 
| 109a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 109c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 109e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10a00 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 6d 79 73 71 6c 2e 65 6c 00 00 | emacsql-4.3.1/emacsql-mysql.el.. | 
| 10a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10a60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 10a80 | 30 30 31 34 31 37 36 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 37 32 36 00 20 30 00 00 00 | 0014176.00000000000.014726..0... | 
| 10aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10b00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 10b20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 10b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 10c00 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 6d 79 73 71    6c 2e 65 6c 20 2d 2d 2d 20 45 6d 61 63 53 51 4c | ;;;.emacsql-mysql.el.---.EmacSQL | 
| 10c20 | 20 62 61 63 6b 2d 65 6e 64 20 66 6f 72 20 4d 79    53 51 4c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | .back-end.for.MySQL..-*-.lexical | 
| 10c40 | 2d 62 69 6e 64 69 6e 67 3a 74 20 2d 2a 2d 0a 0a    3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 | -binding:t.-*-..;;.This.is.free. | 
| 10c60 | 61 6e 64 20 75 6e 65 6e 63 75 6d 62 65 72 65 64    20 73 6f 66 74 77 61 72 65 20 72 65 6c 65 61 73 | and.unencumbered.software.releas | 
| 10c80 | 65 64 20 69 6e 74 6f 20 74 68 65 20 70 75 62 6c    69 63 20 64 6f 6d 61 69 6e 2e 0a 0a 3b 3b 20 41 | ed.into.the.public.domain...;;.A | 
| 10ca0 | 75 74 68 6f 72 3a 20 43 68 72 69 73 74 6f 70 68    65 72 20 57 65 6c 6c 6f 6e 73 20 3c 77 65 6c 6c | uthor:.Christopher.Wellons.<well | 
| 10cc0 | 6f 6e 73 40 6e 75 6c 6c 70 72 6f 67 72 61 6d 2e    63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e | ons@nullprogram.com>.;;.Maintain | 
| 10ce0 | 65 72 3a 20 4a 6f 6e 61 73 20 42 65 72 6e 6f 75    6c 6c 69 20 3c 65 6d 61 63 73 2e 65 6d 61 63 73 | er:.Jonas.Bernoulli.<emacs.emacs | 
| 10d00 | 71 6c 40 6a 6f 6e 61 73 2e 62 65 72 6e 6f 75 6c    6c 69 2e 64 65 76 3e 0a 0a 3b 3b 20 53 50 44 58 | ql@jonas.bernoulli.dev>..;;.SPDX | 
| 10d20 | 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66    69 65 72 3a 20 55 6e 6c 69 63 65 6e 73 65 0a 0a | -License-Identifier:.Unlicense.. | 
| 10d40 | 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a    0a 3b 3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 | ;;;.Commentary:..;;.This.library | 
| 10d60 | 20 70 72 6f 76 69 64 65 73 20 61 6e 20 45 6d 61    63 53 51 4c 20 62 61 63 6b 2d 65 6e 64 20 66 6f | .provides.an.EmacSQL.back-end.fo | 
| 10d80 | 72 20 4d 79 53 51 4c 2c 20 77 68 69 63 68 20 75    73 65 73 0a 3b 3b 20 74 68 65 20 73 74 61 6e 64 | r.MySQL,.which.uses.;;.the.stand | 
| 10da0 | 61 72 64 20 60 6d 73 71 6c 27 20 63 6f 6d 6d 61    6e 64 20 6c 69 6e 65 20 70 72 6f 67 72 61 6d 2e | ard.`msql'.command.line.program. | 
| 10dc0 | 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65    71 75 69 72 65 20 27 65 6d 61 63 73 71 6c 29 0a | ..;;;.Code:..(require.'emacsql). | 
| 10de0 | 0a 28 64 65 66 76 61 72 20 65 6d 61 63 73 71 6c    2d 6d 79 73 71 6c 2d 65 78 65 63 75 74 61 62 6c | .(defvar.emacsql-mysql-executabl | 
| 10e00 | 65 20 22 6d 79 73 71 6c 22 0a 20 20 22 50 61 74    68 20 74 6f 20 74 68 65 20 6d 79 73 71 6c 20 63 | e."mysql"..."Path.to.the.mysql.c | 
| 10e20 | 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 65 78 65 63    75 74 61 62 6c 65 2e 22 29 0a 0a 28 64 65 66 76 | ommand.line.executable.")..(defv | 
| 10e40 | 61 72 20 65 6d 61 63 73 71 6c 2d 6d 79 73 71 6c    2d 73 65 6e 74 69 6e 65 6c 20 22 2d 2d 2d 2d 2d | ar.emacsql-mysql-sentinel."----- | 
| 10e60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 | ---------\n\n--------------\n\n" | 
| 10e80 | 0a 20 20 22 57 68 61 74 20 4d 79 53 51 4c 20 77    69 6c 6c 20 70 72 69 6e 74 20 77 68 65 6e 20 69 | ..."What.MySQL.will.print.when.i | 
| 10ea0 | 74 20 68 61 73 20 63 6f 6d 70 6c 65 74 65 64 20    69 74 73 20 6f 75 74 70 75 74 2e 22 29 0a 0a 28 | t.has.completed.its.output.")..( | 
| 10ec0 | 64 65 66 63 6f 6e 73 74 20 65 6d 61 63 73 71 6c    2d 6d 79 73 71 6c 2d 72 65 73 65 72 76 65 64 0a | defconst.emacsql-mysql-reserved. | 
| 10ee0 | 20 20 28 65 6d 61 63 73 71 6c 2d 72 65 67 69 73    74 65 72 2d 72 65 73 65 72 76 65 64 0a 20 20 20 | ..(emacsql-register-reserved.... | 
| 10f00 | 27 28 20 41 43 43 45 53 53 49 42 4c 45 20 41 44    44 20 41 4c 4c 20 41 4c 54 45 52 20 41 4e 41 4c | '(.ACCESSIBLE.ADD.ALL.ALTER.ANAL | 
| 10f20 | 59 5a 45 20 41 4e 44 20 41 53 20 41 53 43 20 41    53 45 4e 53 49 54 49 56 45 20 42 45 46 4f 52 45 | YZE.AND.AS.ASC.ASENSITIVE.BEFORE | 
| 10f40 | 0a 20 20 20 20 20 20 42 45 54 57 45 45 4e 20 42    49 47 49 4e 54 20 42 49 4e 41 52 59 20 42 4c 4f | .......BETWEEN.BIGINT.BINARY.BLO | 
| 10f60 | 42 20 42 4f 54 48 20 42 59 20 43 41 4c 4c 20 43    41 53 43 41 44 45 20 43 41 53 45 20 43 48 41 4e | B.BOTH.BY.CALL.CASCADE.CASE.CHAN | 
| 10f80 | 47 45 20 43 48 41 52 0a 20 20 20 20 20 20 43 48    41 52 41 43 54 45 52 20 43 48 45 43 4b 20 43 4f | GE.CHAR.......CHARACTER.CHECK.CO | 
| 10fa0 | 4c 4c 41 54 45 20 43 4f 4c 55 4d 4e 20 43 4f 4e    44 49 54 49 4f 4e 20 43 4f 4e 53 54 52 41 49 4e | LLATE.COLUMN.CONDITION.CONSTRAIN | 
| 10fc0 | 54 20 43 4f 4e 54 49 4e 55 45 0a 20 20 20 20 20    20 43 4f 4e 56 45 52 54 20 43 52 45 41 54 45 20 | T.CONTINUE.......CONVERT.CREATE. | 
| 10fe0 | 43 52 4f 53 53 20 43 55 52 52 45 4e 54 5f 44 41    54 45 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 20 | CROSS.CURRENT_DATE.CURRENT_TIME. | 
| 11000 | 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d    50 0a 20 20 20 20 20 20 43 55 52 52 45 4e 54 5f | CURRENT_TIMESTAMP.......CURRENT_ | 
| 11020 | 55 53 45 52 20 43 55 52 53 4f 52 20 44 41 54 41    42 41 53 45 20 44 41 54 41 42 41 53 45 53 20 44 | USER.CURSOR.DATABASE.DATABASES.D | 
| 11040 | 41 59 5f 48 4f 55 52 20 44 41 59 5f 4d 49 43 52    4f 53 45 43 4f 4e 44 0a 20 20 20 20 20 20 44 41 | AY_HOUR.DAY_MICROSECOND.......DA | 
| 11060 | 59 5f 4d 49 4e 55 54 45 20 44 41 59 5f 53 45 43    4f 4e 44 20 44 45 43 20 44 45 43 49 4d 41 4c 20 | Y_MINUTE.DAY_SECOND.DEC.DECIMAL. | 
| 11080 | 44 45 43 4c 41 52 45 20 44 45 46 41 55 4c 54 20    44 45 4c 41 59 45 44 20 44 45 4c 45 54 45 0a 20 | DECLARE.DEFAULT.DELAYED.DELETE.. | 
| 110a0 | 20 20 20 20 20 44 45 53 43 20 44 45 53 43 52 49    42 45 20 44 45 54 45 52 4d 49 4e 49 53 54 49 43 | .....DESC.DESCRIBE.DETERMINISTIC | 
| 110c0 | 20 44 49 53 54 49 4e 43 54 20 44 49 53 54 49 4e    43 54 52 4f 57 20 44 49 56 20 44 4f 55 42 4c 45 | .DISTINCT.DISTINCTROW.DIV.DOUBLE | 
| 110e0 | 20 44 52 4f 50 0a 20 20 20 20 20 20 44 55 41 4c    20 45 41 43 48 20 45 4c 53 45 20 45 4c 53 45 49 | .DROP.......DUAL.EACH.ELSE.ELSEI | 
| 11100 | 46 20 45 4e 43 4c 4f 53 45 44 20 45 53 43 41 50    45 44 20 45 58 49 53 54 53 20 45 58 49 54 20 45 | F.ENCLOSED.ESCAPED.EXISTS.EXIT.E | 
| 11120 | 58 50 4c 41 49 4e 20 46 41 4c 53 45 0a 20 20 20    20 20 20 46 45 54 43 48 20 46 4c 4f 41 54 20 46 | XPLAIN.FALSE.......FETCH.FLOAT.F | 
| 11140 | 4c 4f 41 54 34 20 46 4c 4f 41 54 38 20 46 4f 52    20 46 4f 52 43 45 20 46 4f 52 45 49 47 4e 20 46 | LOAT4.FLOAT8.FOR.FORCE.FOREIGN.F | 
| 11160 | 52 4f 4d 20 46 55 4c 4c 54 45 58 54 20 47 45 4e    45 52 41 4c 0a 20 20 20 20 20 20 47 52 41 4e 54 | ROM.FULLTEXT.GENERAL.......GRANT | 
| 11180 | 20 47 52 4f 55 50 20 48 41 56 49 4e 47 20 48 49    47 48 5f 50 52 49 4f 52 49 54 59 20 48 4f 55 52 | .GROUP.HAVING.HIGH_PRIORITY.HOUR | 
| 111a0 | 5f 4d 49 43 52 4f 53 45 43 4f 4e 44 20 48 4f 55    52 5f 4d 49 4e 55 54 45 0a 20 20 20 20 20 20 48 | _MICROSECOND.HOUR_MINUTE.......H | 
| 111c0 | 4f 55 52 5f 53 45 43 4f 4e 44 20 49 46 20 49 47    4e 4f 52 45 20 49 47 4e 4f 52 45 5f 53 45 52 56 | OUR_SECOND.IF.IGNORE.IGNORE_SERV | 
| 111e0 | 45 52 5f 49 44 53 20 49 4e 20 49 4e 44 45 58 20    49 4e 46 49 4c 45 20 49 4e 4e 45 52 0a 20 20 20 | ER_IDS.IN.INDEX.INFILE.INNER.... | 
| 11200 | 20 20 20 49 4e 4f 55 54 20 49 4e 53 45 4e 53 49    54 49 56 45 20 49 4e 53 45 52 54 20 49 4e 54 20 | ...INOUT.INSENSITIVE.INSERT.INT. | 
| 11220 | 49 4e 54 31 20 49 4e 54 32 20 49 4e 54 33 20 49    4e 54 34 20 49 4e 54 38 20 49 4e 54 45 47 45 52 | INT1.INT2.INT3.INT4.INT8.INTEGER | 
| 11240 | 0a 20 20 20 20 20 20 49 4e 54 45 52 56 41 4c 20    49 4e 54 4f 20 49 53 20 49 54 45 52 41 54 45 20 | .......INTERVAL.INTO.IS.ITERATE. | 
| 11260 | 4a 4f 49 4e 20 4b 45 59 20 4b 45 59 53 20 4b 49    4c 4c 20 4c 45 41 44 49 4e 47 20 4c 45 41 56 45 | JOIN.KEY.KEYS.KILL.LEADING.LEAVE | 
| 11280 | 20 4c 45 46 54 0a 20 20 20 20 20 20 4c 49 4b 45    20 4c 49 4d 49 54 20 4c 49 4e 45 41 52 20 4c 49 | .LEFT.......LIKE.LIMIT.LINEAR.LI | 
| 112a0 | 4e 45 53 20 4c 4f 41 44 20 4c 4f 43 41 4c 54 49    4d 45 20 4c 4f 43 41 4c 54 49 4d 45 53 54 41 4d | NES.LOAD.LOCALTIME.LOCALTIMESTAM | 
| 112c0 | 50 20 4c 4f 43 4b 20 4c 4f 4e 47 0a 20 20 20 20    20 20 4c 4f 4e 47 42 4c 4f 42 20 4c 4f 4e 47 54 | P.LOCK.LONG.......LONGBLOB.LONGT | 
| 112e0 | 45 58 54 20 4c 4f 4f 50 20 4c 4f 57 5f 50 52 49    4f 52 49 54 59 20 4d 41 53 54 45 52 5f 48 45 41 | EXT.LOOP.LOW_PRIORITY.MASTER_HEA | 
| 11300 | 52 54 42 45 41 54 5f 50 45 52 49 4f 44 0a 20 20    20 20 20 20 4d 41 53 54 45 52 5f 53 53 4c 5f 56 | RTBEAT_PERIOD.......MASTER_SSL_V | 
| 11320 | 45 52 49 46 59 5f 53 45 52 56 45 52 5f 43 45 52    54 20 4d 41 54 43 48 20 4d 41 58 56 41 4c 55 45 | ERIFY_SERVER_CERT.MATCH.MAXVALUE | 
| 11340 | 20 4d 41 58 56 41 4c 55 45 20 4d 45 44 49 55 4d    42 4c 4f 42 0a 20 20 20 20 20 20 4d 45 44 49 55 | .MAXVALUE.MEDIUMBLOB.......MEDIU | 
| 11360 | 4d 49 4e 54 20 4d 45 44 49 55 4d 54 45 58 54 20    4d 49 44 44 4c 45 49 4e 54 20 4d 49 4e 55 54 45 | MINT.MEDIUMTEXT.MIDDLEINT.MINUTE | 
| 11380 | 5f 4d 49 43 52 4f 53 45 43 4f 4e 44 20 4d 49 4e    55 54 45 5f 53 45 43 4f 4e 44 0a 20 20 20 20 20 | _MICROSECOND.MINUTE_SECOND...... | 
| 113a0 | 20 4d 4f 44 20 4d 4f 44 49 46 49 45 53 20 4e 41    54 55 52 41 4c 20 4e 4f 54 20 4e 4f 5f 57 52 49 | .MOD.MODIFIES.NATURAL.NOT.NO_WRI | 
| 113c0 | 54 45 5f 54 4f 5f 42 49 4e 4c 4f 47 20 4e 55 4c    4c 20 4e 55 4d 45 52 49 43 20 4f 4e 0a 20 20 20 | TE_TO_BINLOG.NULL.NUMERIC.ON.... | 
| 113e0 | 20 20 20 4f 50 54 49 4d 49 5a 45 20 4f 50 54 49    4f 4e 20 4f 50 54 49 4f 4e 41 4c 4c 59 20 4f 52 | ...OPTIMIZE.OPTION.OPTIONALLY.OR | 
| 11400 | 20 4f 52 44 45 52 20 4f 55 54 20 4f 55 54 45 52    20 4f 55 54 46 49 4c 45 20 50 52 45 43 49 53 49 | .ORDER.OUT.OUTER.OUTFILE.PRECISI | 
| 11420 | 4f 4e 0a 20 20 20 20 20 20 50 52 49 4d 41 52 59    20 50 52 4f 43 45 44 55 52 45 20 50 55 52 47 45 | ON.......PRIMARY.PROCEDURE.PURGE | 
| 11440 | 20 52 41 4e 47 45 20 52 45 41 44 20 52 45 41 44    53 20 52 45 41 44 5f 57 52 49 54 45 20 52 45 41 | .RANGE.READ.READS.READ_WRITE.REA | 
| 11460 | 4c 0a 20 20 20 20 20 20 52 45 46 45 52 45 4e 43    45 53 20 52 45 47 45 58 50 20 52 45 4c 45 41 53 | L.......REFERENCES.REGEXP.RELEAS | 
| 11480 | 45 20 52 45 4e 41 4d 45 20 52 45 50 45 41 54 20    52 45 50 4c 41 43 45 20 52 45 51 55 49 52 45 20 | E.RENAME.REPEAT.REPLACE.REQUIRE. | 
| 114a0 | 52 45 53 49 47 4e 41 4c 0a 20 20 20 20 20 20 52    45 53 49 47 4e 41 4c 20 52 45 53 54 52 49 43 54 | RESIGNAL.......RESIGNAL.RESTRICT | 
| 114c0 | 20 52 45 54 55 52 4e 20 52 45 56 4f 4b 45 20 52    49 47 48 54 20 52 4c 49 4b 45 20 53 43 48 45 4d | .RETURN.REVOKE.RIGHT.RLIKE.SCHEM | 
| 114e0 | 41 20 53 43 48 45 4d 41 53 0a 20 20 20 20 20 20    53 45 43 4f 4e 44 5f 4d 49 43 52 4f 53 45 43 4f | A.SCHEMAS.......SECOND_MICROSECO | 
| 11500 | 4e 44 20 53 45 4c 45 43 54 20 53 45 4e 53 49 54    49 56 45 20 53 45 50 41 52 41 54 4f 52 20 53 45 | ND.SELECT.SENSITIVE.SEPARATOR.SE | 
| 11520 | 54 20 53 48 4f 57 20 53 49 47 4e 41 4c 0a 20 20    20 20 20 20 53 49 47 4e 41 4c 20 53 4c 4f 57 20 | T.SHOW.SIGNAL.......SIGNAL.SLOW. | 
| 11540 | 53 4d 41 4c 4c 49 4e 54 20 53 50 41 54 49 41 4c    20 53 50 45 43 49 46 49 43 20 53 51 4c 20 53 51 | SMALLINT.SPATIAL.SPECIFIC.SQL.SQ | 
| 11560 | 4c 5f 42 49 47 5f 52 45 53 55 4c 54 0a 20 20 20    20 20 20 53 51 4c 5f 43 41 4c 43 5f 46 4f 55 4e | L_BIG_RESULT.......SQL_CALC_FOUN | 
| 11580 | 44 5f 52 4f 57 53 20 53 51 4c 45 58 43 45 50 54    49 4f 4e 20 53 51 4c 5f 53 4d 41 4c 4c 5f 52 45 | D_ROWS.SQLEXCEPTION.SQL_SMALL_RE | 
| 115a0 | 53 55 4c 54 20 53 51 4c 53 54 41 54 45 0a 20 20    20 20 20 20 53 51 4c 57 41 52 4e 49 4e 47 20 53 | SULT.SQLSTATE.......SQLWARNING.S | 
| 115c0 | 53 4c 20 53 54 41 52 54 49 4e 47 20 53 54 52 41    49 47 48 54 5f 4a 4f 49 4e 20 54 41 42 4c 45 20 | SL.STARTING.STRAIGHT_JOIN.TABLE. | 
| 115e0 | 54 45 52 4d 49 4e 41 54 45 44 20 54 48 45 4e 0a    20 20 20 20 20 20 54 49 4e 59 42 4c 4f 42 20 54 | TERMINATED.THEN.......TINYBLOB.T | 
| 11600 | 49 4e 59 49 4e 54 20 54 49 4e 59 54 45 58 54 20    54 4f 20 54 52 41 49 4c 49 4e 47 20 54 52 49 47 | INYINT.TINYTEXT.TO.TRAILING.TRIG | 
| 11620 | 47 45 52 20 54 52 55 45 20 55 4e 44 4f 20 55 4e    49 4f 4e 0a 20 20 20 20 20 20 55 4e 49 51 55 45 | GER.TRUE.UNDO.UNION.......UNIQUE | 
| 11640 | 20 55 4e 4c 4f 43 4b 20 55 4e 53 49 47 4e 45 44    20 55 50 44 41 54 45 20 55 53 41 47 45 20 55 53 | .UNLOCK.UNSIGNED.UPDATE.USAGE.US | 
| 11660 | 45 20 55 53 49 4e 47 20 55 54 43 5f 44 41 54 45    20 55 54 43 5f 54 49 4d 45 0a 20 20 20 20 20 20 | E.USING.UTC_DATE.UTC_TIME....... | 
| 11680 | 55 54 43 5f 54 49 4d 45 53 54 41 4d 50 20 56 41    4c 55 45 53 20 56 41 52 42 49 4e 41 52 59 20 56 | UTC_TIMESTAMP.VALUES.VARBINARY.V | 
| 116a0 | 41 52 43 48 41 52 20 56 41 52 43 48 41 52 41 43    54 45 52 20 56 41 52 59 49 4e 47 20 57 48 45 4e | ARCHAR.VARCHARACTER.VARYING.WHEN | 
| 116c0 | 0a 20 20 20 20 20 20 57 48 45 52 45 20 57 48 49    4c 45 20 57 49 54 48 20 57 52 49 54 45 20 58 4f | .......WHERE.WHILE.WITH.WRITE.XO | 
| 116e0 | 52 20 59 45 41 52 5f 4d 4f 4e 54 48 20 5a 45 52    4f 46 49 4c 4c 29 29 0a 20 20 22 4c 69 73 74 20 | R.YEAR_MONTH.ZEROFILL))..."List. | 
| 11700 | 6f 66 20 61 6c 6c 20 6f 66 20 4d 79 53 51 4c 27    73 20 72 65 73 65 72 76 65 64 20 77 6f 72 64 73 | of.all.of.MySQL's.reserved.words | 
| 11720 | 2e 0a 68 74 74 70 3a 2f 2f 64 65 76 2e 6d 79 73    71 6c 2e 63 6f 6d 2f 64 6f 63 2f 72 65 66 6d 61 | ..http://dev.mysql.com/doc/refma | 
| 11740 | 6e 2f 35 2e 35 2f 65 6e 2f 72 65 73 65 72 76 65    64 2d 77 6f 72 64 73 2e 68 74 6d 6c 22 29 0a 0a | n/5.5/en/reserved-words.html").. | 
| 11760 | 28 64 65 66 63 6c 61 73 73 20 65 6d 61 63 73 71    6c 2d 6d 79 73 71 6c 2d 63 6f 6e 6e 65 63 74 69 | (defclass.emacsql-mysql-connecti | 
| 11780 | 6f 6e 20 28 65 6d 61 63 73 71 6c 2d 63 6f 6e 6e    65 63 74 69 6f 6e 29 0a 20 20 28 28 64 62 6e 61 | on.(emacsql-connection)...((dbna | 
| 117a0 | 6d 65 20 3a 72 65 61 64 65 72 20 65 6d 61 63 73    71 6c 2d 70 73 71 6c 2d 64 62 6e 61 6d 65 20 3a | me.:reader.emacsql-psql-dbname.: | 
| 117c0 | 69 6e 69 74 61 72 67 20 3a 64 62 6e 61 6d 65 29    0a 20 20 20 28 74 79 70 65 73 20 3a 61 6c 6c 6f | initarg.:dbname)....(types.:allo | 
| 117e0 | 63 61 74 69 6f 6e 20 3a 63 6c 61 73 73 0a 20 20    20 20 20 20 20 20 20 20 3a 72 65 61 64 65 72 20 | cation.:class...........:reader. | 
| 11800 | 65 6d 61 63 73 71 6c 2d 74 79 70 65 73 0a 20 20    20 20 20 20 20 20 20 20 3a 69 6e 69 74 66 6f 72 | emacsql-types...........:initfor | 
| 11820 | 6d 20 27 28 28 69 6e 74 65 67 65 72 20 22 42 49    47 49 4e 54 22 29 0a 20 20 20 20 20 20 20 20 20 | m.'((integer."BIGINT").......... | 
| 11840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c    6f 61 74 20 22 44 4f 55 42 4c 45 22 29 0a 20 20 | .............(float."DOUBLE")... | 
| 11860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6f 62 6a 65 63 74 20 22 4c 4f 4e | ....................(object."LON | 
| 11880 | 47 54 45 58 54 22 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e | GTEXT").......................(n | 
| 118a0 | 69 6c 20 22 4c 4f 4e 47 54 45 58 54 22 29 29 29    29 0a 20 20 22 41 20 63 6f 6e 6e 65 63 74 69 6f | il."LONGTEXT"))))..."A.connectio | 
| 118c0 | 6e 20 74 6f 20 61 20 4d 79 53 51 4c 20 64 61 74    61 62 61 73 65 2e 22 29 0a 0a 28 63 6c 2d 64 65 | n.to.a.MySQL.database.")..(cl-de | 
| 118e0 | 66 75 6e 20 65 6d 61 63 73 71 6c 2d 6d 79 73 71    6c 20 28 64 61 74 61 62 61 73 65 20 26 6b 65 79 | fun.emacsql-mysql.(database.&key | 
| 11900 | 20 75 73 65 72 20 70 61 73 73 77 6f 72 64 20 68    6f 73 74 20 70 6f 72 74 20 64 65 62 75 67 29 0a | .user.password.host.port.debug). | 
| 11920 | 20 20 22 43 6f 6e 6e 65 63 74 20 74 6f 20 61 20    4d 79 53 51 4c 20 73 65 72 76 65 72 20 75 73 69 | .."Connect.to.a.MySQL.server.usi | 
| 11940 | 6e 67 20 74 68 65 20 6d 79 73 71 6c 20 63 6f 6d    6d 61 6e 64 20 6c 69 6e 65 20 70 72 6f 67 72 61 | ng.the.mysql.command.line.progra | 
| 11960 | 6d 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 79    73 71 6c 20 28 6f 72 20 28 65 78 65 63 75 74 61 | m."...(let*.((mysql.(or.(executa | 
| 11980 | 62 6c 65 2d 66 69 6e 64 20 65 6d 61 63 73 71 6c    2d 6d 79 73 71 6c 2d 65 78 65 63 75 74 61 62 6c | ble-find.emacsql-mysql-executabl | 
| 119a0 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e | e).....................(error."N | 
| 119c0 | 6f 20 6d 79 73 71 6c 20 62 69 6e 61 72 79 20 61    76 61 69 6c 61 62 6c 65 2c 20 61 62 6f 72 74 69 | o.mysql.binary.available,.aborti | 
| 119e0 | 6e 67 22 29 29 29 0a 20 20 20 20 20 20 20 20 20    28 63 6f 6d 6d 61 6e 64 20 28 6c 69 73 74 20 64 | ng")))..........(command.(list.d | 
| 11a00 | 61 74 61 62 61 73 65 20 22 2d 2d 73 6b 69 70 2d    70 61 67 65 72 22 20 22 2d 72 66 42 4e 4c 22 20 | atabase."--skip-pager"."-rfBNL". | 
| 11a20 | 6d 79 73 71 6c 29 29 29 0a 20 20 20 20 28 77 68    65 6e 20 75 73 65 72 20 20 20 20 20 28 70 75 73 | mysql))).....(when.user.....(pus | 
| 11a40 | 68 20 28 66 6f 72 6d 61 74 20 22 2d 2d 75 73 65    72 3d 25 73 22 20 75 73 65 72 29 20 63 6f 6d 6d | h.(format."--user=%s".user).comm | 
| 11a60 | 61 6e 64 29 29 0a 20 20 20 20 28 77 68 65 6e 20    70 61 73 73 77 6f 72 64 20 28 70 75 73 68 20 28 | and)).....(when.password.(push.( | 
| 11a80 | 66 6f 72 6d 61 74 20 22 2d 2d 70 61 73 73 77 6f    72 64 3d 25 73 22 20 70 61 73 73 77 6f 72 64 29 | format."--password=%s".password) | 
| 11aa0 | 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 28    77 68 65 6e 20 68 6f 73 74 20 20 20 20 20 28 70 | .command)).....(when.host.....(p | 
| 11ac0 | 75 73 68 20 28 66 6f 72 6d 61 74 20 22 2d 2d 68    6f 73 74 3d 25 73 22 20 68 6f 73 74 29 20 63 6f | ush.(format."--host=%s".host).co | 
| 11ae0 | 6d 6d 61 6e 64 29 29 0a 20 20 20 20 28 77 68 65    6e 20 70 6f 72 74 20 20 20 20 20 28 70 75 73 68 | mmand)).....(when.port.....(push | 
| 11b00 | 20 28 66 6f 72 6d 61 74 20 22 2d 2d 70 6f 72 74    3d 25 73 22 20 70 6f 72 74 29 20 63 6f 6d 6d 61 | .(format."--port=%s".port).comma | 
| 11b20 | 6e 64 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28    28 70 72 6f 63 65 73 73 2d 63 6f 6e 6e 65 63 74 | nd)).....(let*.((process-connect | 
| 11b40 | 69 6f 6e 2d 74 79 70 65 20 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 62 75 66 66 65 72 20 28 | ion-type.t)............(buffer.( | 
| 11b60 | 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66    66 65 72 20 22 20 2a 65 6d 61 63 73 71 6c 2d 6d | generate-new-buffer.".*emacsql-m | 
| 11b80 | 79 73 71 6c 2a 22 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 6d 61 | ysql*"))............(command.(ma | 
| 11ba0 | 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d    71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 28 | pconcat.#'shell-quote-argument.( | 
| 11bc0 | 6e 72 65 76 65 72 73 65 20 63 6f 6d 6d 61 6e 64    29 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 | nreverse.command)."."))......... | 
| 11be0 | 20 20 20 28 70 72 6f 63 65 73 73 20 28 73 74 61    72 74 2d 70 72 6f 63 65 73 73 2d 73 68 65 6c 6c | ...(process.(start-process-shell | 
| 11c00 | 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 | -command......................"e | 
| 11c20 | 6d 61 63 73 71 6c 2d 6d 79 73 71 6c 22 20 62 75    66 66 65 72 20 28 63 6f 6e 63 61 74 20 22 73 74 | macsql-mysql".buffer.(concat."st | 
| 11c40 | 74 79 20 72 61 77 20 26 26 22 20 63 6f 6d 6d 61    6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ty.raw.&&".command)))........... | 
| 11c60 | 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 28 6d 61    6b 65 2d 69 6e 73 74 61 6e 63 65 20 27 65 6d 61 | .(connection.(make-instance.'ema | 
| 11c80 | 63 73 71 6c 2d 6d 79 73 71 6c 2d 63 6f 6e 6e 65    63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 | csql-mysql-connection........... | 
| 11ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 68 61 6e | ............................:han | 
| 11cc0 | 64 6c 65 20 70 72 6f 63 65 73 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | dle.process..................... | 
| 11ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 64 62 6e 61 6d 65 20 64 61 74 61 62 61 | ..................:dbname.databa | 
| 11d00 | 73 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74    2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 | se))).......(set-process-sentine | 
| 11d20 | 6c 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.process....................... | 
| 11d40 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70    72 6f 63 20 5f 29 20 28 6b 69 6c 6c 2d 62 75 66 | ......(lambda.(proc._).(kill-buf | 
| 11d60 | 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66    66 65 72 20 70 72 6f 63 29 29 29 29 0a 20 20 20 | fer.(process-buffer.proc)))).... | 
| 11d80 | 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d    71 75 65 72 79 2d 6f 6e 2d 65 78 69 74 2d 66 6c | ...(set-process-query-on-exit-fl | 
| 11da0 | 61 67 20 28 6f 72 65 66 20 63 6f 6e 6e 65 63 74    69 6f 6e 20 68 61 6e 64 6c 65 29 20 6e 69 6c 29 | ag.(oref.connection.handle).nil) | 
| 11dc0 | 0a 20 20 20 20 20 20 28 77 68 65 6e 20 64 65 62    75 67 20 28 65 6d 61 63 73 71 6c 2d 65 6e 61 62 | .......(when.debug.(emacsql-enab | 
| 11de0 | 6c 65 2d 64 65 62 75 67 67 69 6e 67 20 63 6f 6e    6e 65 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 | le-debugging.connection))....... | 
| 11e00 | 28 65 6d 61 63 73 71 6c 20 63 6f 6e 6e 65 63 74    69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (emacsql.connection............. | 
| 11e20 | 20 20 20 5b 3a 73 65 74 2d 73 65 73 73 69 6f 6e    20 28 3d 20 73 71 6c 2d 6d 6f 64 65 20 27 4e 4f | ...[:set-session.(=.sql-mode.'NO | 
| 11e40 | 5f 42 41 43 4b 53 4c 41 53 48 5f 45 53 43 41 50    45 53 5c 2c 41 4e 53 49 5f 51 55 4f 54 45 53 29 | _BACKSLASH_ESCAPES\,ANSI_QUOTES) | 
| 11e60 | 5d 29 0a 20 20 20 20 20 20 28 65 6d 61 63 73 71    6c 20 63 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20 | ]).......(emacsql.connection.... | 
| 11e80 | 20 20 20 20 20 20 20 20 20 20 20 20 5b 3a 73 65    74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69 73 | ............[:set-transaction-is | 
| 11ea0 | 6f 6c 61 74 69 6f 6e 2d 6c 65 76 65 6c 20 3a 73    65 72 69 61 6c 69 7a 61 62 6c 65 5d 29 0a 20 20 | olation-level.:serializable])... | 
| 11ec0 | 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 72 65 67    69 73 74 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e | ....(emacsql-register.connection | 
| 11ee0 | 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74    68 6f 64 20 65 6d 61 63 73 71 6c 2d 63 6c 6f 73 | ))))..(cl-defmethod.emacsql-clos | 
| 11f00 | 65 20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65    6d 61 63 73 71 6c 2d 6d 79 73 71 6c 2d 63 6f 6e | e.((connection.emacsql-mysql-con | 
| 11f20 | 6e 65 63 74 69 6f 6e 29 29 0a 20 20 28 6c 65 74    20 28 28 70 72 6f 63 65 73 73 20 28 6f 72 65 66 | nection))...(let.((process.(oref | 
| 11f40 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68 61 6e 64    6c 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 | .connection.handle))).....(when. | 
| 11f60 | 28 70 72 6f 63 65 73 73 2d 6c 69 76 65 2d 70 20    70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 28 | (process-live-p.process).......( | 
| 11f80 | 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 65 6f 66    20 70 72 6f 63 65 73 73 29 29 29 29 0a 0a 28 63 | process-send-eof.process))))..(c | 
| 11fa0 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63    73 71 6c 2d 73 65 6e 64 2d 6d 65 73 73 61 67 65 | l-defmethod.emacsql-send-message | 
| 11fc0 | 20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d    61 63 73 71 6c 2d 6d 79 73 71 6c 2d 63 6f 6e 6e | .((connection.emacsql-mysql-conn | 
| 11fe0 | 65 63 74 69 6f 6e 29 20 6d 65 73 73 61 67 65 29    0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 65 73 | ection).message)...(let.((proces | 
| 12000 | 73 20 28 6f 72 65 66 20 63 6f 6e 6e 65 63 74 69    6f 6e 20 68 61 6e 64 6c 65 29 29 29 0a 20 20 20 | s.(oref.connection.handle))).... | 
| 12020 | 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73    74 72 69 6e 67 20 70 72 6f 63 65 73 73 20 6d 65 | .(process-send-string.process.me | 
| 12040 | 73 73 61 67 65 29 0a 20 20 20 20 28 70 72 6f 63    65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 | ssage).....(process-send-string. | 
| 12060 | 70 72 6f 63 65 73 73 20 22 5c 5c 63 5c 5c 70 5c    6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | process."\\c\\p\n")))..(cl-defme | 
| 12080 | 74 68 6f 64 20 65 6d 61 63 73 71 6c 2d 77 61 69    74 69 6e 67 2d 70 20 28 28 63 6f 6e 6e 65 63 74 | thod.emacsql-waiting-p.((connect | 
| 120a0 | 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 6d 79 73 71    6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a 20 | ion.emacsql-mysql-connection)).. | 
| 120c0 | 20 28 6c 65 74 20 28 28 6c 65 6e 67 74 68 20 28    6c 65 6e 67 74 68 20 65 6d 61 63 73 71 6c 2d 6d | .(let.((length.(length.emacsql-m | 
| 120e0 | 79 73 71 6c 2d 73 65 6e 74 69 6e 65 6c 29 29 29    0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 | ysql-sentinel))).....(with-curre | 
| 12100 | 6e 74 2d 62 75 66 66 65 72 20 28 65 6d 61 63 73    71 6c 2d 62 75 66 66 65 72 20 63 6f 6e 6e 65 63 | nt-buffer.(emacsql-buffer.connec | 
| 12120 | 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 61 6e 64    20 28 3e 3d 20 28 62 75 66 66 65 72 2d 73 69 7a | tion).......(and.(>=.(buffer-siz | 
| 12140 | 65 29 20 6c 65 6e 67 74 68 29 0a 20 20 20 20 20    20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 67 6f | e).length)............(progn.(go | 
| 12160 | 74 6f 2d 63 68 61 72 20 28 2d 20 28 70 6f 69 6e    74 2d 6d 61 78 29 20 6c 65 6e 67 74 68 29 29 0a | to-char.(-.(point-max).length)). | 
| 12180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 65 6d | ..................(looking-at.em | 
| 121a0 | 61 63 73 71 6c 2d 6d 79 73 71 6c 2d 73 65 6e 74    69 6e 65 6c 29 29 29 29 29 29 0a 0a 28 63 6c 2d | acsql-mysql-sentinel))))))..(cl- | 
| 121c0 | 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63 73 71    6c 2d 70 61 72 73 65 20 28 28 63 6f 6e 6e 65 63 | defmethod.emacsql-parse.((connec | 
| 121e0 | 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 6d 79 73    71 6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a | tion.emacsql-mysql-connection)). | 
| 12200 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d    62 75 66 66 65 72 20 28 65 6d 61 63 73 71 6c 2d | ..(with-current-buffer.(emacsql- | 
| 12220 | 62 75 66 66 65 72 20 63 6f 6e 6e 65 63 74 69 6f    6e 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 74 | buffer.connection).....(let.((st | 
| 12240 | 61 6e 64 61 72 64 2d 69 6e 70 75 74 20 28 63 75    72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a | andard-input.(current-buffer))). | 
| 12260 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72    20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 | ......(goto-char.(point-min))... | 
| 12280 | 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69    6e 67 2d 61 74 20 22 45 52 52 4f 52 22 29 0a 20 | ....(when.(looking-at."ERROR").. | 
| 122a0 | 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66    6f 72 77 61 72 64 20 22 3a 20 22 29 0a 20 20 20 | .......(search-forward.":.").... | 
| 122c0 | 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 65 6d    61 63 73 71 6c 2d 65 72 72 6f 72 0a 20 20 20 20 | .....(signal.'emacsql-error..... | 
| 122e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73    74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 | ............(list.(buffer-substr | 
| 12300 | 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e    65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 | ing.(point).(line-end-position)) | 
| 12320 | 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f    6f 70 20 75 6e 74 69 6c 20 28 6c 6f 6f 6b 69 6e | ))).......(cl-loop.until.(lookin | 
| 12340 | 67 2d 61 74 20 65 6d 61 63 73 71 6c 2d 6d 79 73    71 6c 2d 73 65 6e 74 69 6e 65 6c 29 0a 20 20 20 | g-at.emacsql-mysql-sentinel).... | 
| 12360 | 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c    65 63 74 20 28 72 65 61 64 29 20 69 6e 74 6f 20 | ............collect.(read).into. | 
| 12380 | 72 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 | row................when.(looking | 
| 123a0 | 2d 61 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 | -at."\n")................collect | 
| 123c0 | 20 72 6f 77 20 69 6e 74 6f 20 72 6f 77 73 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e | .row.into.rows................an | 
| 123e0 | 64 20 64 6f 20 28 73 65 74 71 20 72 6f 77 20 28    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.do.(setq.row.()).............. | 
| 12400 | 20 20 61 6e 64 20 64 6f 20 28 66 6f 72 77 61 72    64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 | ..and.do.(forward-char)......... | 
| 12420 | 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28    63 6c 2d 72 65 74 75 72 6e 20 72 6f 77 73 29 29 | .......finally.(cl-return.rows)) | 
| 12440 | 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 65    6d 61 63 73 71 6c 2d 6d 79 73 71 6c 29 0a 0a 3b | )))..(provide.'emacsql-mysql)..; | 
| 12460 | 3b 3b 20 65 6d 61 63 73 71 6c 2d 6d 79 73 71 6c    2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 | ;;.emacsql-mysql.el.ends.here... | 
| 12480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 124a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 124c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 124e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 125a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 125c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 125e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12600 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2e 65 6c 00 00 00 00 00 00 00 00 | emacsql-4.3.1/emacsql.el........ | 
| 12620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 12680 | 30 30 33 34 33 33 37 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 35 36 34 00 20 30 00 00 00 | 0034337.00000000000.013564..0... | 
| 126a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 126c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 126e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12700 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 12720 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 12740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 127a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 127c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 127e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 12800 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2e 65 6c 20 2d    2d 2d 20 48 69 67 68 2d 6c 65 76 65 6c 20 53 51 | ;;;.emacsql.el.---.High-level.SQ | 
| 12820 | 4c 20 64 61 74 61 62 61 73 65 20 66 72 6f 6e 74    2d 65 6e 64 20 20 2d 2a 2d 20 6c 65 78 69 63 61 | L.database.front-end..-*-.lexica | 
| 12840 | 6c 2d 62 69 6e 64 69 6e 67 3a 74 20 2d 2a 2d 0a    0a 3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 | l-binding:t.-*-..;;.This.is.free | 
| 12860 | 20 61 6e 64 20 75 6e 65 6e 63 75 6d 62 65 72 65    64 20 73 6f 66 74 77 61 72 65 20 72 65 6c 65 61 | .and.unencumbered.software.relea | 
| 12880 | 73 65 64 20 69 6e 74 6f 20 74 68 65 20 70 75 62    6c 69 63 20 64 6f 6d 61 69 6e 2e 0a 0a 3b 3b 20 | sed.into.the.public.domain...;;. | 
| 128a0 | 41 75 74 68 6f 72 3a 20 43 68 72 69 73 74 6f 70    68 65 72 20 57 65 6c 6c 6f 6e 73 20 3c 77 65 6c | Author:.Christopher.Wellons.<wel | 
| 128c0 | 6c 6f 6e 73 40 6e 75 6c 6c 70 72 6f 67 72 61 6d    2e 63 6f 6d 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 | lons@nullprogram.com>.;;.Maintai | 
| 128e0 | 6e 65 72 3a 20 4a 6f 6e 61 73 20 42 65 72 6e 6f    75 6c 6c 69 20 3c 65 6d 61 63 73 2e 65 6d 61 63 | ner:.Jonas.Bernoulli.<emacs.emac | 
| 12900 | 73 71 6c 40 6a 6f 6e 61 73 2e 62 65 72 6e 6f 75    6c 6c 69 2e 64 65 76 3e 0a 3b 3b 20 48 6f 6d 65 | sql@jonas.bernoulli.dev>.;;.Home | 
| 12920 | 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69    74 68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 65 | page:.https://github.com/magit/e | 
| 12940 | 6d 61 63 73 71 6c 0a 0a 3b 3b 20 50 61 63 6b 61    67 65 2d 56 65 72 73 69 6f 6e 3a 20 34 2e 33 2e | macsql..;;.Package-Version:.4.3. | 
| 12960 | 31 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71    75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 | 1.;;.Package-Requires:.((emacs." | 
| 12980 | 32 36 2e 31 22 29 29 0a 0a 3b 3b 20 53 50 44 58    2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 | 26.1"))..;;.SPDX-License-Identif | 
| 129a0 | 69 65 72 3a 20 55 6e 6c 69 63 65 6e 73 65 0a 0a    3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a | ier:.Unlicense..;;;.Commentary:. | 
| 129c0 | 0a 3b 3b 20 45 6d 61 63 53 51 4c 20 69 73 20 61    20 68 69 67 68 2d 6c 65 76 65 6c 20 45 6d 61 63 | .;;.EmacSQL.is.a.high-level.Emac | 
| 129e0 | 73 20 4c 69 73 70 20 66 72 6f 6e 74 2d 65 6e 64    20 66 6f 72 20 53 51 4c 69 74 65 2e 0a 0a 3b 3b | s.Lisp.front-end.for.SQLite...;; | 
| 12a00 | 20 50 6f 73 74 67 72 65 53 51 4c 20 61 6e 64 20    4d 79 53 51 4c 20 61 72 65 20 61 6c 73 6f 20 73 | .PostgreSQL.and.MySQL.are.also.s | 
| 12a20 | 75 70 70 6f 72 74 65 64 2c 20 62 75 74 20 75 73    65 20 6f 66 20 74 68 65 73 65 20 63 6f 6e 6e 65 | upported,.but.use.of.these.conne | 
| 12a40 | 63 74 6f 72 73 0a 3b 3b 20 69 73 20 6e 6f 74 20    72 65 63 6f 6d 6d 65 6e 64 65 64 2e 0a 0a 3b 3b | ctors.;;.is.not.recommended...;; | 
| 12a60 | 20 53 65 65 20 52 45 41 44 4d 45 2e 6d 64 20 66    6f 72 20 6d 75 63 68 20 6d 6f 72 65 20 63 6f 6d | .See.README.md.for.much.more.com | 
| 12a80 | 70 6c 65 74 65 20 64 6f 63 75 6d 65 6e 74 61 74    69 6f 6e 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a | plete.documentation...;;;.Code:. | 
| 12aa0 | 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69    62 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d | .(require.'cl-lib).(require.'cl- | 
| 12ac0 | 67 65 6e 65 72 69 63 29 0a 28 72 65 71 75 69 72    65 20 27 65 69 65 69 6f 29 0a 0a 28 72 65 71 75 | generic).(require.'eieio)..(requ | 
| 12ae0 | 69 72 65 20 27 65 6d 61 63 73 71 6c 2d 63 6f 6d    70 69 6c 65 72 29 0a 0a 28 64 65 66 67 72 6f 75 | ire.'emacsql-compiler)..(defgrou | 
| 12b00 | 70 20 65 6d 61 63 73 71 6c 20 6e 69 6c 0a 20 20    22 54 68 65 20 45 6d 61 63 53 51 4c 20 53 51 4c | p.emacsql.nil..."The.EmacSQL.SQL | 
| 12b20 | 20 64 61 74 61 62 61 73 65 20 66 72 6f 6e 74 2d    65 6e 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 | .database.front-end."...:group.' | 
| 12b40 | 63 6f 6d 6d 29 0a 0a 28 64 65 66 63 6f 6e 73 74    20 65 6d 61 63 73 71 6c 2d 76 65 72 73 69 6f 6e | comm)..(defconst.emacsql-version | 
| 12b60 | 20 22 34 2e 33 2e 31 22 29 0a 0a 28 64 65 66 76    61 72 20 65 6d 61 63 73 71 6c 2d 67 6c 6f 62 61 | ."4.3.1")..(defvar.emacsql-globa | 
| 12b80 | 6c 2d 74 69 6d 65 6f 75 74 20 33 30 0a 20 20 22    4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f | l-timeout.30..."Maximum.number.o | 
| 12ba0 | 66 20 73 65 63 6f 6e 64 73 20 74 6f 20 77 61 69    74 20 62 65 66 6f 72 65 20 62 61 69 6c 69 6e 67 | f.seconds.to.wait.before.bailing | 
| 12bc0 | 20 6f 75 74 20 6f 6e 20 61 20 53 51 4c 20 63 6f    6d 6d 61 6e 64 2e 0a 49 66 20 6e 69 6c 2c 20 77 | .out.on.a.SQL.command..If.nil,.w | 
| 12be0 | 61 69 74 20 66 6f 72 65 76 65 72 2e 20 20 54 68    69 73 20 69 73 20 75 73 65 64 20 62 79 20 74 68 | ait.forever...This.is.used.by.th | 
| 12c00 | 65 20 60 6d 79 73 71 6c 27 2c 20 60 70 67 27 20    61 6e 64 20 60 70 73 71 6c 27 2e 20 20 49 74 0a | e.`mysql',.`pg'.and.`psql'...It. | 
| 12c20 | 69 73 20 6e 6f 74 20 62 65 69 6e 67 20 75 73 65    64 20 62 79 20 74 68 65 20 60 73 71 6c 69 74 65 | is.not.being.used.by.the.`sqlite | 
| 12c40 | 2d 62 75 69 6c 74 69 6e 27 20 61 6e 64 20 60 73    71 6c 69 74 65 2d 6d 6f 64 75 6c 65 27 20 62 61 | -builtin'.and.`sqlite-module'.ba | 
| 12c60 | 63 6b 2d 65 6e 64 73 2c 0a 77 68 69 63 68 20 72    65 73 70 65 63 74 20 60 65 6d 61 63 73 71 6c 2d | ck-ends,.which.respect.`emacsql- | 
| 12c80 | 73 71 6c 69 74 65 2d 62 75 73 79 2d 74 69 6d 65    6f 75 74 27 20 69 6e 73 74 65 61 64 2e 22 29 0a | sqlite-busy-timeout'.instead."). | 
| 12ca0 | 0a 3b 3b 3b 20 44 61 74 61 62 61 73 65 20 63 6f    6e 6e 65 63 74 69 6f 6e 0a 0a 28 64 65 66 63 6c | .;;;.Database.connection..(defcl | 
| 12cc0 | 61 73 73 20 65 6d 61 63 73 71 6c 2d 63 6f 6e 6e    65 63 74 69 6f 6e 20 28 29 0a 20 20 28 28 68 61 | ass.emacsql-connection.()...((ha | 
| 12ce0 | 6e 64 6c 65 20 3a 69 6e 69 74 61 72 67 20 3a 68    61 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 20 20 | ndle.:initarg.:handle........... | 
| 12d00 | 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20    22 49 6e 74 65 72 6e 61 6c 20 63 6f 6e 6e 65 63 | .:documentation."Internal.connec | 
| 12d20 | 74 69 6f 6e 20 68 61 6e 64 6c 65 72 2e 0a 54 68    65 20 76 61 6c 75 65 20 69 73 20 61 20 72 65 63 | tion.handler..The.value.is.a.rec | 
| 12d40 | 6f 72 64 2d 6c 69 6b 65 20 6f 62 6a 65 63 74 20    61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 | ord-like.object.and.should.not.b | 
| 12d60 | 65 20 61 63 63 65 73 73 65 64 0a 64 69 72 65 63    74 6c 79 2e 20 20 44 65 70 65 6e 64 69 6e 67 20 | e.accessed.directly...Depending. | 
| 12d80 | 6f 6e 20 74 68 65 20 63 6f 6e 63 72 65 74 65 20    69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2c 20 | on.the.concrete.implementation,. | 
| 12da0 | 60 74 79 70 65 2d 6f 66 27 0a 6d 61 79 20 72 65    74 75 72 6e 20 60 70 72 6f 63 65 73 73 27 2c 20 | `type-of'.may.return.`process',. | 
| 12dc0 | 60 75 73 65 72 2d 70 74 72 27 20 6f 72 20 60 73    71 6c 69 74 65 27 20 66 6f 72 20 74 68 69 73 20 | `user-ptr'.or.`sqlite'.for.this. | 
| 12de0 | 76 61 6c 75 65 2e 22 29 0a 20 20 20 28 6c 6f 67    2d 62 75 66 66 65 72 20 3a 74 79 70 65 20 28 6f | value.")....(log-buffer.:type.(o | 
| 12e00 | 72 20 6e 75 6c 6c 20 62 75 66 66 65 72 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 | r.null.buffer)................:i | 
| 12e20 | 6e 69 74 61 72 67 20 3a 6c 6f 67 2d 62 75 66 66    65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | nitarg.:log-buffer.............. | 
| 12e40 | 20 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ..:initform.nil................: | 
| 12e60 | 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 4f    75 74 70 75 74 20 6c 6f 67 20 28 64 65 62 75 67 | documentation."Output.log.(debug | 
| 12e80 | 29 2e 22 29 0a 20 20 20 28 66 69 6e 61 6c 69 7a    65 72 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f | ).")....(finalizer.:documentatio | 
| 12ea0 | 6e 20 22 4f 62 6a 65 63 74 20 72 65 74 75 72 6e    65 64 20 66 72 6f 6d 20 60 6d 61 6b 65 2d 66 69 | n."Object.returned.from.`make-fi | 
| 12ec0 | 6e 61 6c 69 7a 65 72 27 2e 22 29 0a 20 20 20 28    74 79 70 65 73 20 3a 61 6c 6c 6f 63 61 74 69 6f | nalizer'.")....(types.:allocatio | 
| 12ee0 | 6e 20 3a 63 6c 61 73 73 0a 20 20 20 20 20 20 20    20 20 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c | n.:class...........:initform.nil | 
| 12f00 | 0a 20 20 20 20 20 20 20 20 20 20 3a 72 65 61 64    65 72 20 65 6d 61 63 73 71 6c 2d 74 79 70 65 73 | ...........:reader.emacsql-types | 
| 12f20 | 0a 20 20 20 20 20 20 20 20 20 20 3a 64 6f 63 75    6d 65 6e 74 61 74 69 6f 6e 20 22 4d 61 70 73 20 | ...........:documentation."Maps. | 
| 12f40 | 45 6d 61 63 53 51 4c 20 74 79 70 65 73 20 74 6f    20 53 51 4c 20 74 79 70 65 73 2e 22 29 29 0a 20 | EmacSQL.types.to.SQL.types.")).. | 
| 12f60 | 20 22 41 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74    6f 20 61 20 53 51 4c 20 64 61 74 61 62 61 73 65 | ."A.connection.to.a.SQL.database | 
| 12f80 | 2e 22 0a 20 20 3a 61 62 73 74 72 61 63 74 20 74    29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 | ."...:abstract.t)..(cl-defgeneri | 
| 12fa0 | 63 20 65 6d 61 63 73 71 6c 2d 63 6c 6f 73 65 20    28 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 22 | c.emacsql-close.(connection)..." | 
| 12fc0 | 43 6c 6f 73 65 20 43 4f 4e 4e 45 43 54 49 4f 4e    20 61 6e 64 20 66 72 65 65 20 61 6c 6c 20 72 65 | Close.CONNECTION.and.free.all.re | 
| 12fe0 | 73 6f 75 72 63 65 73 2e 22 29 0a 0a 28 63 6c 2d    64 65 66 67 65 6e 65 72 69 63 20 65 6d 61 63 73 | sources.")..(cl-defgeneric.emacs | 
| 13000 | 71 6c 2d 72 65 63 6f 6e 6e 65 63 74 20 28 63 6f    6e 6e 65 63 74 69 6f 6e 29 0a 20 20 22 52 65 2d | ql-reconnect.(connection)..."Re- | 
| 13020 | 65 73 74 61 62 6c 69 73 68 20 43 4f 4e 4e 45 43    54 49 4f 4e 20 77 69 74 68 20 74 68 65 20 73 61 | establish.CONNECTION.with.the.sa | 
| 13040 | 6d 65 20 70 61 72 61 6d 65 74 65 72 73 2e 22 29    0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 | me.parameters.")..(cl-defmethod. | 
| 13060 | 65 6d 61 63 73 71 6c 2d 6c 69 76 65 2d 70 20 28    28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 | emacsql-live-p.((connection.emac | 
| 13080 | 73 71 6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29    0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e | sql-connection))..."Return.non-n | 
| 130a0 | 69 6c 20 69 66 20 43 4f 4e 4e 45 43 54 49 4f 4e    20 69 73 20 73 74 69 6c 6c 20 61 6c 69 76 65 20 | il.if.CONNECTION.is.still.alive. | 
| 130c0 | 61 6e 64 20 72 65 61 64 79 2e 22 0a 20 20 28 61    6e 64 20 28 70 72 6f 63 65 73 73 2d 6c 69 76 65 | and.ready."...(and.(process-live | 
| 130e0 | 2d 70 20 28 6f 72 65 66 20 63 6f 6e 6e 65 63 74    69 6f 6e 20 68 61 6e 64 6c 65 29 29 20 74 29 29 | -p.(oref.connection.handle)).t)) | 
| 13100 | 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63    20 65 6d 61 63 73 71 6c 2d 74 79 70 65 73 20 28 | ..(cl-defgeneric.emacsql-types.( | 
| 13120 | 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 22 52    65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6d | connection)..."Return.an.alist.m | 
| 13140 | 61 70 70 69 6e 67 20 45 6d 61 63 53 51 4c 20 74    79 70 65 73 20 74 6f 20 64 61 74 61 62 61 73 65 | apping.EmacSQL.types.to.database | 
| 13160 | 20 74 79 70 65 73 2e 0a 54 68 69 73 20 77 69 6c    6c 20 6d 61 73 6b 20 60 65 6d 61 63 73 71 6c 2d | .types..This.will.mask.`emacsql- | 
| 13180 | 74 79 70 65 2d 6d 61 70 27 20 64 75 72 69 6e 67    20 65 78 70 72 65 73 73 69 6f 6e 20 63 6f 6d 70 | type-map'.during.expression.comp | 
| 131a0 | 69 6c 61 74 69 6f 6e 2e 0a 54 68 69 73 20 61 6c    69 73 74 20 73 68 6f 75 6c 64 20 68 61 76 65 20 | ilation..This.alist.should.have. | 
| 131c0 | 66 6f 75 72 20 6b 65 79 20 73 79 6d 62 6f 6c 73    3a 20 69 6e 74 65 67 65 72 2c 20 66 6c 6f 61 74 | four.key.symbols:.integer,.float | 
| 131e0 | 2c 20 6f 62 6a 65 63 74 2c 0a 6e 69 6c 20 28 64    65 66 61 75 6c 74 20 74 79 70 65 29 2e 20 20 54 | ,.object,.nil.(default.type)...T | 
| 13200 | 68 65 20 76 61 6c 75 65 73 20 61 72 65 20 73 74    72 69 6e 67 73 20 74 6f 20 62 65 20 69 6e 73 65 | he.values.are.strings.to.be.inse | 
| 13220 | 72 74 65 64 20 69 6e 74 6f 0a 61 20 53 51 4c 20    65 78 70 72 65 73 73 69 6f 6e 2e 22 29 0a 0a 28 | rted.into.a.SQL.expression.")..( | 
| 13240 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61    63 73 71 6c 2d 62 75 66 66 65 72 20 28 28 63 6f | cl-defmethod.emacsql-buffer.((co | 
| 13260 | 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c    2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a 20 20 | nnection.emacsql-connection))... | 
| 13280 | 22 47 65 74 20 70 72 6f 63 65 73 73 20 62 75 66    66 65 72 20 66 6f 72 20 43 4f 4e 4e 45 43 54 49 | "Get.process.buffer.for.CONNECTI | 
| 132a0 | 4f 4e 2e 22 0a 20 20 28 70 72 6f 63 65 73 73 2d    62 75 66 66 65 72 20 28 6f 72 65 66 20 63 6f 6e | ON."...(process-buffer.(oref.con | 
| 132c0 | 6e 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65 29 29    29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | nection.handle)))..(cl-defmethod | 
| 132e0 | 20 65 6d 61 63 73 71 6c 2d 65 6e 61 62 6c 65 2d    64 65 62 75 67 67 69 6e 67 20 28 28 63 6f 6e 6e | .emacsql-enable-debugging.((conn | 
| 13300 | 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 63    6f 6e 6e 65 63 74 69 6f 6e 29 29 0a 20 20 22 45 | ection.emacsql-connection))..."E | 
| 13320 | 6e 61 62 6c 65 20 64 65 62 75 67 67 69 6e 67 20    6f 6e 20 43 4f 4e 4e 45 43 54 49 4f 4e 2e 22 0a | nable.debugging.on.CONNECTION.". | 
| 13340 | 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65    72 2d 6c 69 76 65 2d 70 20 28 6f 72 65 66 20 63 | ..(unless.(buffer-live-p.(oref.c | 
| 13360 | 6f 6e 6e 65 63 74 69 6f 6e 20 6c 6f 67 2d 62 75    66 66 65 72 29 29 0a 20 20 20 20 28 6f 73 65 74 | onnection.log-buffer)).....(oset | 
| 13380 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6c 6f 67 2d    62 75 66 66 65 72 20 28 67 65 6e 65 72 61 74 65 | .connection.log-buffer.(generate | 
| 133a0 | 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 65    6d 61 63 73 71 6c 2d 6c 6f 67 2a 22 29 29 29 29 | -new-buffer.".*emacsql-log*")))) | 
| 133c0 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20    65 6d 61 63 73 71 6c 2d 6c 6f 67 20 28 28 63 6f | ..(cl-defmethod.emacsql-log.((co | 
| 133e0 | 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c    2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 6d 65 73 | nnection.emacsql-connection).mes | 
| 13400 | 73 61 67 65 29 0a 20 20 22 4c 6f 67 20 4d 45 53    53 41 47 45 20 69 6e 74 6f 20 43 4f 4e 4e 45 43 | sage)..."Log.MESSAGE.into.CONNEC | 
| 13420 | 54 49 4f 4e 27 73 20 6c 6f 67 2e 0a 4d 45 53 53    41 47 45 20 73 68 6f 75 6c 64 20 6e 6f 74 20 68 | TION's.log..MESSAGE.should.not.h | 
| 13440 | 61 76 65 20 61 20 6e 65 77 6c 69 6e 65 20 6f 6e    20 74 68 65 20 65 6e 64 2e 22 0a 20 20 28 6c 65 | ave.a.newline.on.the.end."...(le | 
| 13460 | 74 20 28 28 62 75 66 66 65 72 20 28 6f 72 65 66    20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6c 6f 67 2d | t.((buffer.(oref.connection.log- | 
| 13480 | 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77    68 65 6e 20 62 75 66 66 65 72 0a 20 20 20 20 20 | buffer))).....(when.buffer...... | 
| 134a0 | 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72    2d 6c 69 76 65 2d 70 20 62 75 66 66 65 72 29 0a | .(unless.(buffer-live-p.buffer). | 
| 134c0 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75    66 66 65 72 20 28 65 6d 61 63 73 71 6c 2d 65 6e | ........(setq.buffer.(emacsql-en | 
| 134e0 | 61 62 6c 65 2d 64 65 62 75 67 67 69 6e 67 20 63    6f 6e 6e 65 63 74 69 6f 6e 29 29 29 0a 20 20 20 | able-debugging.connection))).... | 
| 13500 | 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74    2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 | ...(with-current-buffer.buffer.. | 
| 13520 | 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61    72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 | .......(goto-char.(point-max)).. | 
| 13540 | 20 20 20 20 20 20 20 28 70 72 69 6e 63 20 28 63    6f 6e 63 61 74 20 6d 65 73 73 61 67 65 20 22 5c | .......(princ.(concat.message."\ | 
| 13560 | 6e 22 29 20 62 75 66 66 65 72 29 29 29 29 29 0a    0a 3b 3b 3b 20 53 65 6e 64 69 6e 67 20 61 6e 64 | n").buffer)))))..;;;.Sending.and | 
| 13580 | 20 72 65 63 65 69 76 69 6e 67 0a 0a 28 63 6c 2d    64 65 66 67 65 6e 65 72 69 63 20 65 6d 61 63 73 | .receiving..(cl-defgeneric.emacs | 
| 135a0 | 71 6c 2d 73 65 6e 64 2d 6d 65 73 73 61 67 65 20    28 63 6f 6e 6e 65 63 74 69 6f 6e 20 6d 65 73 73 | ql-send-message.(connection.mess | 
| 135c0 | 61 67 65 29 0a 20 20 22 53 65 6e 64 20 4d 45 53    53 41 47 45 20 74 6f 20 43 4f 4e 4e 45 43 54 49 | age)..."Send.MESSAGE.to.CONNECTI | 
| 135e0 | 4f 4e 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65    74 68 6f 64 20 65 6d 61 63 73 71 6c 2d 73 65 6e | ON.")..(cl-defmethod.emacsql-sen | 
| 13600 | 64 2d 6d 65 73 73 61 67 65 20 3a 62 65 66 6f 72    65 0a 20 20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e | d-message.:before...((connection | 
| 13620 | 20 65 6d 61 63 73 71 6c 2d 63 6f 6e 6e 65 63 74    69 6f 6e 29 20 6d 65 73 73 61 67 65 29 0a 20 20 | .emacsql-connection).message)... | 
| 13640 | 28 65 6d 61 63 73 71 6c 2d 6c 6f 67 20 63 6f 6e    6e 65 63 74 69 6f 6e 20 6d 65 73 73 61 67 65 29 | (emacsql-log.connection.message) | 
| 13660 | 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64    20 65 6d 61 63 73 71 6c 2d 63 6c 65 61 72 20 28 | )..(cl-defmethod.emacsql-clear.( | 
| 13680 | 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63    73 71 6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 | (connection.emacsql-connection)) | 
| 136a0 | 0a 20 20 22 43 6c 65 61 72 20 74 68 65 20 63 6f    6e 6e 65 63 74 69 6f 6e 20 62 75 66 66 65 72 20 | ..."Clear.the.connection.buffer. | 
| 136c0 | 66 6f 72 20 43 4f 4e 4e 45 43 54 49 4f 4e 2d 53    50 45 43 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 | for.CONNECTION-SPEC."...(let.((b | 
| 136e0 | 75 66 66 65 72 20 28 65 6d 61 63 73 71 6c 2d 62    75 66 66 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e | uffer.(emacsql-buffer.connection | 
| 13700 | 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61    6e 64 20 62 75 66 66 65 72 20 28 62 75 66 66 65 | ))).....(when.(and.buffer.(buffe | 
| 13720 | 72 2d 6c 69 76 65 2d 70 20 62 75 66 66 65 72 29    29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 | r-live-p.buffer)).......(with-cu | 
| 13740 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66    66 65 72 0a 20 20 20 20 20 20 20 20 28 65 72 61 | rrent-buffer.buffer.........(era | 
| 13760 | 73 65 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a    28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 65 | se-buffer)))))..(cl-defgeneric.e | 
| 13780 | 6d 61 63 73 71 6c 2d 77 61 69 74 69 6e 67 2d 70    20 28 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 | macsql-waiting-p.(connection)... | 
| 137a0 | 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20    69 66 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 69 73 | "Return.non-nil.if.CONNECTION.is | 
| 137c0 | 20 72 65 61 64 79 20 66 6f 72 20 6d 6f 72 65 20    69 6e 70 75 74 2e 22 29 0a 0a 28 63 6c 2d 64 65 | .ready.for.more.input.")..(cl-de | 
| 137e0 | 66 6d 65 74 68 6f 64 20 65 6d 61 63 73 71 6c 2d    77 61 69 74 20 28 28 63 6f 6e 6e 65 63 74 69 6f | fmethod.emacsql-wait.((connectio | 
| 13800 | 6e 20 65 6d 61 63 73 71 6c 2d 63 6f 6e 6e 65 63    74 69 6f 6e 29 20 26 6f 70 74 69 6f 6e 61 6c 20 | n.emacsql-connection).&optional. | 
| 13820 | 74 69 6d 65 6f 75 74 29 0a 20 20 22 42 6c 6f 63    6b 20 75 6e 74 69 6c 20 43 4f 4e 4e 45 43 54 49 | timeout)..."Block.until.CONNECTI | 
| 13840 | 4f 4e 20 69 73 20 77 61 69 74 69 6e 67 20 66 6f    72 20 66 75 72 74 68 65 72 20 69 6e 70 75 74 2e | ON.is.waiting.for.further.input. | 
| 13860 | 22 0a 20 20 28 6c 65 74 2a 20 28 28 72 65 61 6c    2d 74 69 6d 65 6f 75 74 20 28 6f 72 20 74 69 6d | "...(let*.((real-timeout.(or.tim | 
| 13880 | 65 6f 75 74 20 65 6d 61 63 73 71 6c 2d 67 6c 6f    62 61 6c 2d 74 69 6d 65 6f 75 74 29 29 0a 20 20 | eout.emacsql-global-timeout))... | 
| 138a0 | 20 20 20 20 20 20 20 28 65 6e 64 20 28 61 6e 64    20 72 65 61 6c 2d 74 69 6d 65 6f 75 74 20 28 2b | .......(end.(and.real-timeout.(+ | 
| 138c0 | 20 28 66 6c 6f 61 74 2d 74 69 6d 65 29 20 72 65    61 6c 2d 74 69 6d 65 6f 75 74 29 29 29 29 0a 20 | .(float-time).real-timeout)))).. | 
| 138e0 | 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28    6f 72 20 28 6e 75 6c 6c 20 72 65 61 6c 2d 74 69 | ...(while.(and.(or.(null.real-ti | 
| 13900 | 6d 65 6f 75 74 29 20 28 3c 20 28 66 6c 6f 61 74    2d 74 69 6d 65 29 20 65 6e 64 29 29 0a 20 20 20 | meout).(<.(float-time).end)).... | 
| 13920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f    74 20 28 65 6d 61 63 73 71 6c 2d 77 61 69 74 69 | .............(not.(emacsql-waiti | 
| 13940 | 6e 67 2d 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 29    29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 6d | ng-p.connection))).......(save-m | 
| 13960 | 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20    20 20 28 61 63 63 65 70 74 2d 70 72 6f 63 65 73 | atch-data.........(accept-proces | 
| 13980 | 73 2d 6f 75 74 70 75 74 20 28 6f 72 65 66 20 63    6f 6e 6e 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65 | s-output.(oref.connection.handle | 
| 139a0 | 29 20 72 65 61 6c 2d 74 69 6d 65 6f 75 74 29 29    29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 | ).real-timeout))).....(unless.(e | 
| 139c0 | 6d 61 63 73 71 6c 2d 77 61 69 74 69 6e 67 2d 70    20 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 20 | macsql-waiting-p.connection).... | 
| 139e0 | 20 20 20 28 73 69 67 6e 61 6c 20 27 65 6d 61 63    73 71 6c 2d 74 69 6d 65 6f 75 74 20 28 6c 69 73 | ...(signal.'emacsql-timeout.(lis | 
| 13a00 | 74 20 22 51 75 65 72 79 20 74 69 6d 65 64 20 6f    75 74 22 20 72 65 61 6c 2d 74 69 6d 65 6f 75 74 | t."Query.timed.out".real-timeout | 
| 13a20 | 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65    6e 65 72 69 63 20 65 6d 61 63 73 71 6c 2d 70 61 | )))))..(cl-defgeneric.emacsql-pa | 
| 13a40 | 72 73 65 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 29    0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 72 | rse.(connection)..."Return.the.r | 
| 13a60 | 65 73 75 6c 74 73 20 6f 66 20 70 61 72 73 69 6e    67 20 74 68 65 20 6c 61 74 65 73 74 20 6f 75 74 | esults.of.parsing.the.latest.out | 
| 13a80 | 70 75 74 20 6f 72 20 73 69 67 6e 61 6c 20 61 6e    20 65 72 72 6f 72 2e 22 29 0a 0a 28 64 65 66 75 | put.or.signal.an.error.")..(defu | 
| 13aa0 | 6e 20 65 6d 61 63 73 71 6c 2d 63 6f 6d 70 69 6c    65 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 71 | n.emacsql-compile.(connection.sq | 
| 13ac0 | 6c 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20    22 43 6f 6d 70 69 6c 65 20 73 2d 65 78 70 72 65 | l.&rest.args)..."Compile.s-expre | 
| 13ae0 | 73 73 69 6f 6e 20 53 51 4c 20 66 6f 72 20 43 4f    4e 4e 45 43 54 49 4f 4e 20 69 6e 74 6f 20 61 20 | ssion.SQL.for.CONNECTION.into.a. | 
| 13b00 | 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20    28 28 65 6d 61 63 73 71 6c 2d 74 79 70 65 2d 6d | string."...(let.((emacsql-type-m | 
| 13b20 | 61 70 20 28 6f 72 20 28 61 6e 64 20 63 6f 6e 6e    65 63 74 69 6f 6e 20 28 65 6d 61 63 73 71 6c 2d | ap.(or.(and.connection.(emacsql- | 
| 13b40 | 74 79 70 65 73 20 63 6f 6e 6e 65 63 74 69 6f 6e    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | types.connection)).............. | 
| 13b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 65 6d 61 63 73 71 6c 2d 74 79 70 65 2d 6d 61 | .................emacsql-type-ma | 
| 13b80 | 70 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74    20 28 61 70 70 6c 79 20 23 27 65 6d 61 63 73 71 | p))).....(concat.(apply.#'emacsq | 
| 13ba0 | 6c 2d 66 6f 72 6d 61 74 20 28 65 6d 61 63 73 71    6c 2d 70 72 65 70 61 72 65 20 73 71 6c 29 20 61 | l-format.(emacsql-prepare.sql).a | 
| 13bc0 | 72 67 73 29 20 22 3b 22 29 29 29 0a 0a 28 63 6c    2d 64 65 66 67 65 6e 65 72 69 63 20 65 6d 61 63 | rgs).";")))..(cl-defgeneric.emac | 
| 13be0 | 73 71 6c 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 20    73 71 6c 20 26 72 65 73 74 20 61 72 67 73 29 0a | sql.(connection.sql.&rest.args). | 
| 13c00 | 20 20 22 53 65 6e 64 20 53 51 4c 20 73 2d 65 78    70 72 65 73 73 69 6f 6e 20 74 6f 20 43 4f 4e 4e | .."Send.SQL.s-expression.to.CONN | 
| 13c20 | 45 43 54 49 4f 4e 20 61 6e 64 20 72 65 74 75 72    6e 20 74 68 65 20 72 65 73 75 6c 74 73 2e 22 29 | ECTION.and.return.the.results.") | 
| 13c40 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20    65 6d 61 63 73 71 6c 20 28 28 63 6f 6e 6e 65 63 | ..(cl-defmethod.emacsql.((connec | 
| 13c60 | 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 63 6f 6e    6e 65 63 74 69 6f 6e 29 20 73 71 6c 20 26 72 65 | tion.emacsql-connection).sql.&re | 
| 13c80 | 73 74 20 61 72 67 73 29 0a 20 20 28 6c 65 74 20    28 28 73 71 6c 2d 73 74 72 69 6e 67 20 28 61 70 | st.args)...(let.((sql-string.(ap | 
| 13ca0 | 70 6c 79 20 23 27 65 6d 61 63 73 71 6c 2d 63 6f    6d 70 69 6c 65 20 63 6f 6e 6e 65 63 74 69 6f 6e | ply.#'emacsql-compile.connection | 
| 13cc0 | 20 73 71 6c 20 61 72 67 73 29 29 29 0a 20 20 20    20 28 65 6d 61 63 73 71 6c 2d 63 6c 65 61 72 20 | .sql.args))).....(emacsql-clear. | 
| 13ce0 | 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 20 20    28 65 6d 61 63 73 71 6c 2d 73 65 6e 64 2d 6d 65 | connection).....(emacsql-send-me | 
| 13d00 | 73 73 61 67 65 20 63 6f 6e 6e 65 63 74 69 6f 6e    20 73 71 6c 2d 73 74 72 69 6e 67 29 0a 20 20 20 | ssage.connection.sql-string).... | 
| 13d20 | 20 28 65 6d 61 63 73 71 6c 2d 77 61 69 74 20 63    6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 20 20 28 | .(emacsql-wait.connection).....( | 
| 13d40 | 65 6d 61 63 73 71 6c 2d 70 61 72 73 65 20 63 6f    6e 6e 65 63 74 69 6f 6e 29 29 29 0a 0a 3b 3b 3b | emacsql-parse.connection)))..;;; | 
| 13d60 | 20 48 65 6c 70 65 72 20 6d 69 78 69 6e 20 63 6c    61 73 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 65 | .Helper.mixin.class..(defclass.e | 
| 13d80 | 6d 61 63 73 71 6c 2d 70 72 6f 74 6f 63 6f 6c 2d    6d 69 78 69 6e 20 28 29 20 28 29 0a 20 20 22 41 | macsql-protocol-mixin.().()..."A | 
| 13da0 | 20 6d 69 78 69 6e 20 66 6f 72 20 62 61 63 6b 2d    65 6e 64 73 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 | .mixin.for.back-ends.following.t | 
| 13dc0 | 68 65 20 45 6d 61 63 53 51 4c 20 70 72 6f 74 6f    63 6f 6c 2e 0a 54 68 65 20 62 61 63 6b 2d 65 6e | he.EmacSQL.protocol..The.back-en | 
| 13de0 | 64 20 70 72 6f 6d 70 74 20 6d 75 73 74 20 62 65    20 61 20 73 69 6e 67 6c 65 20 5c 22 5d 5c 22 20 | d.prompt.must.be.a.single.\"]\". | 
| 13e00 | 63 68 61 72 61 63 74 65 72 2e 20 20 54 68 69 73    20 70 72 6f 6d 70 74 0a 76 61 6c 75 65 20 77 61 | character...This.prompt.value.wa | 
| 13e20 | 73 20 63 68 6f 73 65 6e 20 62 65 63 61 75 73 65    20 69 74 20 69 73 20 75 6e 72 65 61 64 61 62 6c | s.chosen.because.it.is.unreadabl | 
| 13e40 | 65 2e 20 20 4f 75 74 70 75 74 20 6d 75 73 74 20    68 61 76 65 0a 65 78 61 63 74 6c 79 20 6f 6e 65 | e...Output.must.have.exactly.one | 
| 13e60 | 20 72 6f 77 20 70 65 72 20 6c 69 6e 65 2c 20 66    69 65 6c 64 73 20 73 65 70 61 72 61 74 65 64 20 | .row.per.line,.fields.separated. | 
| 13e80 | 62 79 20 77 68 69 74 65 73 70 61 63 65 2e 20 20    4e 55 4c 4c 0a 6d 75 73 74 20 64 69 73 70 6c 61 | by.whitespace...NULL.must.displa | 
| 13ea0 | 79 20 61 73 20 5c 22 6e 69 6c 5c 22 2e 22 0a 20    20 3a 61 62 73 74 72 61 63 74 20 74 29 0a 0a 28 | y.as.\"nil\"."...:abstract.t)..( | 
| 13ec0 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61    63 73 71 6c 2d 77 61 69 74 69 6e 67 2d 70 20 28 | cl-defmethod.emacsql-waiting-p.( | 
| 13ee0 | 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63    73 71 6c 2d 70 72 6f 74 6f 63 6f 6c 2d 6d 69 78 | (connection.emacsql-protocol-mix | 
| 13f00 | 69 6e 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74    20 69 66 20 74 68 65 20 65 6e 64 20 6f 66 20 74 | in))..."Return.t.if.the.end.of.t | 
| 13f20 | 68 65 20 62 75 66 66 65 72 20 68 61 73 20 61 20    70 72 6f 70 65 72 6c 79 2d 66 6f 72 6d 61 74 74 | he.buffer.has.a.properly-formatt | 
| 13f40 | 65 64 20 70 72 6f 6d 70 74 2e 0a 41 6c 73 6f 20    72 65 74 75 72 6e 20 74 20 69 66 20 74 68 65 20 | ed.prompt..Also.return.t.if.the. | 
| 13f60 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 62 75 66 66 65    72 20 68 61 73 20 62 65 65 6e 20 6b 69 6c 6c 65 | connection.buffer.has.been.kille | 
| 13f80 | 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66    66 65 72 20 28 65 6d 61 63 73 71 6c 2d 62 75 66 | d."...(let.((buffer.(emacsql-buf | 
| 13fa0 | 66 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29    29 0a 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 28 | fer.connection))).....(or.(not.( | 
| 13fc0 | 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75    66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 | buffer-live-p.buffer)).........( | 
| 13fe0 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66    66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 | with-current-buffer.buffer...... | 
| 14000 | 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 28 62    75 66 66 65 72 2d 73 69 7a 65 29 20 32 29 0a 20 | .....(and.(>=.(buffer-size).2).. | 
| 14020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    74 72 69 6e 67 3d 20 22 23 5c 6e 22 0a 20 20 20 | ..............(string=."#\n".... | 
| 14040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 | .....................(buffer-sub | 
| 14060 | 73 74 72 69 6e 67 20 28 2d 20 28 70 6f 69 6e 74    2d 6d 61 78 29 20 32 29 20 28 70 6f 69 6e 74 2d | string.(-.(point-max).2).(point- | 
| 14080 | 6d 61 78 29 29 29 29 29 29 29 29 0a 0a 28 63 6c    2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 63 73 | max))))))))..(cl-defmethod.emacs | 
| 140a0 | 71 6c 2d 68 61 6e 64 6c 65 20 28 28 5f 20 65 6d    61 63 73 71 6c 2d 70 72 6f 74 6f 63 6f 6c 2d 6d | ql-handle.((_.emacsql-protocol-m | 
| 140c0 | 69 78 69 6e 29 20 63 6f 64 65 20 6d 65 73 73 61    67 65 29 0a 20 20 22 53 69 67 6e 61 6c 20 61 20 | ixin).code.message)..."Signal.a. | 
| 140e0 | 73 70 65 63 69 66 69 63 20 63 6f 6e 64 69 74 69    6f 6e 20 66 6f 72 20 43 4f 44 45 20 66 72 6f 6d | specific.condition.for.CODE.from | 
| 14100 | 20 43 4f 4e 4e 45 43 54 49 4f 4e 2e 0a 53 75 62    63 6c 61 73 73 65 73 20 73 68 6f 75 6c 64 20 6f | .CONNECTION..Subclasses.should.o | 
| 14120 | 76 65 72 72 69 64 65 20 74 68 69 73 20 6d 65 74    68 6f 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 | verride.this.method.in.order.to. | 
| 14140 | 70 72 6f 76 69 64 65 20 6d 6f 72 65 0a 73 70 65    63 69 66 69 63 20 65 72 72 6f 72 20 63 6f 6e 64 | provide.more.specific.error.cond | 
| 14160 | 69 74 69 6f 6e 73 2e 22 0a 20 20 28 73 69 67 6e    61 6c 20 27 65 6d 61 63 73 71 6c 2d 65 72 72 6f | itions."...(signal.'emacsql-erro | 
| 14180 | 72 20 28 6c 69 73 74 20 6d 65 73 73 61 67 65 20    63 6f 64 65 29 29 29 0a 0a 28 63 6c 2d 64 65 66 | r.(list.message.code)))..(cl-def | 
| 141a0 | 6d 65 74 68 6f 64 20 65 6d 61 63 73 71 6c 2d 70    61 72 73 65 20 28 28 63 6f 6e 6e 65 63 74 69 6f | method.emacsql-parse.((connectio | 
| 141c0 | 6e 20 65 6d 61 63 73 71 6c 2d 70 72 6f 74 6f 63    6f 6c 2d 6d 69 78 69 6e 29 29 0a 20 20 22 50 61 | n.emacsql-protocol-mixin))..."Pa | 
| 141e0 | 72 73 65 20 77 65 6c 6c 2d 66 6f 72 6d 65 64 20    6f 75 74 70 75 74 20 69 6e 74 6f 20 61 6e 20 73 | rse.well-formed.output.into.an.s | 
| 14200 | 2d 65 78 70 72 65 73 73 69 6f 6e 2e 22 0a 20 20    28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | -expression."...(with-current-bu | 
| 14220 | 66 66 65 72 20 28 65 6d 61 63 73 71 6c 2d 62 75    66 66 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 | ffer.(emacsql-buffer.connection) | 
| 14240 | 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20    28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 | .....(goto-char.(point-min)).... | 
| 14260 | 20 28 6c 65 74 2a 20 28 28 73 74 61 6e 64 61 72    64 2d 69 6e 70 75 74 20 28 63 75 72 72 65 6e 74 | .(let*.((standard-input.(current | 
| 14280 | 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 28 76 61 6c 75 65 20 28 72 65 61 | -buffer))............(value.(rea | 
| 142a0 | 64 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28    65 71 20 76 61 6c 75 65 20 27 65 72 72 6f 72 29 | d))).......(if.(eq.value.'error) | 
| 142c0 | 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63    73 71 6c 2d 68 61 6e 64 6c 65 20 63 6f 6e 6e 65 | ...........(emacsql-handle.conne | 
| 142e0 | 63 74 69 6f 6e 20 28 72 65 61 64 29 20 28 72 65    61 64 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 | ction.(read).(read)).........(pr | 
| 14300 | 6f 67 31 20 76 61 6c 75 65 0a 20 20 20 20 20 20    20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 | og1.value...........(unless.(eq. | 
| 14320 | 28 72 65 61 64 29 20 27 73 75 63 63 65 73 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d | (read).'success).............(em | 
| 14340 | 61 63 73 71 6c 2d 68 61 6e 64 6c 65 20 63 6f 6e    6e 65 63 74 69 6f 6e 20 28 72 65 61 64 29 20 28 | acsql-handle.connection.(read).( | 
| 14360 | 72 65 61 64 29 29 29 29 29 29 29 29 0a 0a 3b 3b    3b 20 41 75 74 6f 6d 61 74 69 63 20 63 6f 6e 6e | read))))))))..;;;.Automatic.conn | 
| 14380 | 65 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 0a 0a    28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 72 | ection.cleanup..(defun.emacsql-r | 
| 143a0 | 65 67 69 73 74 65 72 20 28 63 6f 6e 6e 65 63 74    69 6f 6e 29 0a 20 20 22 52 65 67 69 73 74 65 72 | egister.(connection)..."Register | 
| 143c0 | 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 66 6f 72 20    61 75 74 6f 6d 61 74 69 63 20 63 6c 65 61 6e 75 | .CONNECTION.for.automatic.cleanu | 
| 143e0 | 70 20 61 6e 64 20 72 65 74 75 72 6e 20 43 4f 4e    4e 45 43 54 49 4f 4e 2e 22 0a 20 20 28 70 72 6f | p.and.return.CONNECTION."...(pro | 
| 14400 | 67 31 20 63 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20    20 20 28 6f 73 65 74 20 63 6f 6e 6e 65 63 74 69 | g1.connection.....(oset.connecti | 
| 14420 | 6f 6e 20 66 69 6e 61 6c 69 7a 65 72 0a 20 20 20    20 20 20 20 20 20 20 28 6d 61 6b 65 2d 66 69 6e | on.finalizer...........(make-fin | 
| 14440 | 61 6c 69 7a 65 72 20 28 6c 61 6d 62 64 61 20 28    29 20 28 65 6d 61 63 73 71 6c 2d 63 6c 6f 73 65 | alizer.(lambda.().(emacsql-close | 
| 14460 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 29 29 29    29 0a 0a 3b 3b 3b 20 55 73 65 66 75 6c 20 6d 61 | .connection))))))..;;;.Useful.ma | 
| 14480 | 63 72 6f 73 0a 0a 28 64 65 66 6d 61 63 72 6f 20    65 6d 61 63 73 71 6c 2d 77 69 74 68 2d 63 6f 6e | cros..(defmacro.emacsql-with-con | 
| 144a0 | 6e 65 63 74 69 6f 6e 20 28 63 6f 6e 6e 65 63 74    69 6f 6e 2d 73 70 65 63 20 26 72 65 73 74 20 62 | nection.(connection-spec.&rest.b | 
| 144c0 | 6f 64 79 29 0a 20 20 22 4f 70 65 6e 20 61 6e 20    45 6d 61 63 53 51 4c 20 63 6f 6e 6e 65 63 74 69 | ody)..."Open.an.EmacSQL.connecti | 
| 144e0 | 6f 6e 2c 20 65 76 61 6c 75 61 74 65 20 42 4f 44    59 2c 20 61 6e 64 20 63 6c 6f 73 65 20 74 68 65 | on,.evaluate.BODY,.and.close.the | 
| 14500 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 43 4f 4e    4e 45 43 54 49 4f 4e 2d 53 50 45 43 20 65 73 74 | .connection..CONNECTION-SPEC.est | 
| 14520 | 61 62 6c 69 73 68 65 73 20 61 20 73 69 6e 67 6c    65 20 62 69 6e 64 69 6e 67 2e 0a 0a 20 20 28 65 | ablishes.a.single.binding.....(e | 
| 14540 | 6d 61 63 73 71 6c 2d 77 69 74 68 2d 63 6f 6e 6e    65 63 74 69 6f 6e 20 28 64 62 20 28 65 6d 61 63 | macsql-with-connection.(db.(emac | 
| 14560 | 73 71 6c 2d 73 71 6c 69 74 65 20 5c 22 63 6f 6d    70 61 6e 79 2e 64 62 5c 22 29 29 0a 20 20 20 20 | sql-sqlite.\"company.db\"))..... | 
| 14580 | 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 63 72    65 61 74 65 2d 74 61 62 6c 65 20 66 6f 6f 20 5b | (emacsql.db.[:create-table.foo.[ | 
| 145a0 | 78 5d 5d 29 0a 20 20 20 20 28 65 6d 61 63 73 71    6c 20 64 62 20 5b 3a 69 6e 73 65 72 74 20 3a 69 | x]]).....(emacsql.db.[:insert.:i | 
| 145c0 | 6e 74 6f 20 66 6f 6f 20 3a 76 61 6c 75 65 73 20    28 5b 31 5d 20 5b 32 5d 20 5b 33 5d 29 5d 29 0a | nto.foo.:values.([1].[2].[3])]). | 
| 145e0 | 20 20 20 20 28 65 6d 61 63 73 71 6c 20 64 62 20    5b 3a 73 65 6c 65 63 74 20 2a 20 3a 66 72 6f 6d | ....(emacsql.db.[:select.*.:from | 
| 14600 | 20 66 6f 6f 5d 29 29 22 0a 20 20 28 64 65 63 6c    61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a | .foo]))"...(declare.(indent.1)). | 
| 14620 | 20 20 60 28 6c 65 74 20 28 28 2c 28 63 61 72 20    63 6f 6e 6e 65 63 74 69 6f 6e 2d 73 70 65 63 29 | ..`(let.((,(car.connection-spec) | 
| 14640 | 20 2c 28 63 61 64 72 20 63 6f 6e 6e 65 63 74 69    6f 6e 2d 73 70 65 63 29 29 29 0a 20 20 20 20 20 | .,(cadr.connection-spec)))...... | 
| 14660 | 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a    20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 | (unwind-protect..........(progn. | 
| 14680 | 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 20 28    65 6d 61 63 73 71 6c 2d 63 6c 6f 73 65 20 2c 28 | ,@body)........(emacsql-close.,( | 
| 146a0 | 63 61 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d 73    70 65 63 29 29 29 29 29 0a 0a 28 64 65 66 76 61 | car.connection-spec)))))..(defva | 
| 146c0 | 72 20 65 6d 61 63 73 71 6c 2d 2d 74 72 61 6e 73    61 63 74 69 6f 6e 2d 6c 65 76 65 6c 20 30 0a 20 | r.emacsql--transaction-level.0.. | 
| 146e0 | 20 22 4b 65 65 70 73 20 74 72 61 63 6b 20 6f 66    20 6e 65 73 74 65 64 20 74 72 61 6e 73 61 63 74 | ."Keeps.track.of.nested.transact | 
| 14700 | 69 6f 6e 73 20 69 6e 20 60 65 6d 61 63 73 71 6c    2d 77 69 74 68 2d 74 72 61 6e 73 61 63 74 69 6f | ions.in.`emacsql-with-transactio | 
| 14720 | 6e 27 2e 22 29 0a 0a 28 64 65 66 6d 61 63 72 6f    20 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d 74 72 | n'.")..(defmacro.emacsql-with-tr | 
| 14740 | 61 6e 73 61 63 74 69 6f 6e 20 28 63 6f 6e 6e 65    63 74 69 6f 6e 20 26 72 65 73 74 20 62 6f 64 79 | ansaction.(connection.&rest.body | 
| 14760 | 29 0a 20 20 22 45 76 61 6c 75 61 74 65 20 42 4f    44 59 20 69 6e 73 69 64 65 20 61 20 73 69 6e 67 | )..."Evaluate.BODY.inside.a.sing | 
| 14780 | 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20    69 73 73 75 69 6e 67 20 61 20 72 6f 6c 6c 62 61 | le.transaction,.issuing.a.rollba | 
| 147a0 | 63 6b 20 6f 6e 20 65 72 72 6f 72 2e 0a 54 68 69    73 20 6d 61 63 72 6f 20 63 61 6e 20 62 65 20 6e | ck.on.error..This.macro.can.be.n | 
| 147c0 | 65 73 74 65 64 20 69 6e 64 65 66 69 6e 69 74 65    6c 79 2c 20 77 72 61 70 70 69 6e 67 20 65 76 65 | ested.indefinitely,.wrapping.eve | 
| 147e0 | 72 79 74 68 69 6e 67 20 69 6e 20 61 0a 73 69 6e    67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 | rything.in.a.single.transaction. | 
| 14800 | 61 74 20 74 68 65 20 6c 6f 77 65 73 74 20 6c 65    76 65 6c 2e 0a 0a 57 61 72 6e 69 6e 67 3a 20 42 | at.the.lowest.level...Warning:.B | 
| 14820 | 4f 44 59 20 73 68 6f 75 6c 64 20 2a 6e 6f 74 2a    20 68 61 76 65 20 61 6e 79 20 73 69 64 65 20 65 | ODY.should.*not*.have.any.side.e | 
| 14840 | 66 66 65 63 74 73 20 62 65 73 69 64 65 73 20 6d    61 6b 69 6e 67 0a 63 68 61 6e 67 65 73 20 74 6f | ffects.besides.making.changes.to | 
| 14860 | 20 74 68 65 20 64 61 74 61 62 61 73 65 20 62 65    68 69 6e 64 20 43 4f 4e 4e 45 43 54 49 4f 4e 2e | .the.database.behind.CONNECTION. | 
| 14880 | 20 20 42 6f 64 79 20 6d 61 79 20 62 65 20 65 76    61 6c 75 61 74 65 64 0a 6d 75 6c 74 69 70 6c 65 | ..Body.may.be.evaluated.multiple | 
| 148a0 | 20 74 69 6d 65 73 20 62 65 66 6f 72 65 20 74 68    65 20 63 68 61 6e 67 65 73 20 61 72 65 20 63 6f | .times.before.the.changes.are.co | 
| 148c0 | 6d 6d 69 74 74 65 64 2e 22 0a 20 20 28 64 65 63    6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 | mmitted."...(declare.(indent.1)) | 
| 148e0 | 0a 20 20 60 28 6c 65 74 20 28 28 65 6d 61 63 73    71 6c 2d 2d 63 6f 6e 6e 65 63 74 69 6f 6e 20 2c | ...`(let.((emacsql--connection., | 
| 14900 | 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 20 20    20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 2d 63 | connection)..........(emacsql--c | 
| 14920 | 6f 6d 70 6c 65 74 65 64 20 6e 69 6c 29 0a 20 20    20 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d | ompleted.nil)..........(emacsql- | 
| 14940 | 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 6c 65 76    65 6c 20 28 31 2b 20 65 6d 61 63 73 71 6c 2d 2d | -transaction-level.(1+.emacsql-- | 
| 14960 | 74 72 61 6e 73 61 63 74 69 6f 6e 2d 6c 65 76 65    6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6d | transaction-level))..........(em | 
| 14980 | 61 63 73 71 6c 2d 2d 72 65 73 75 6c 74 29 29 0a    20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f | acsql--result))......(unwind-pro | 
| 149a0 | 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 77    68 69 6c 65 20 28 6e 6f 74 20 65 6d 61 63 73 71 | tect..........(while.(not.emacsq | 
| 149c0 | 6c 2d 2d 63 6f 6d 70 6c 65 74 65 64 29 0a 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 | l--completed)............(condit | 
| 149e0 | 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f | ion-case.nil................(pro | 
| 14a00 | 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 3d 20 31 20 65 | gn..................(when.(=.1.e | 
| 14a20 | 6d 61 63 73 71 6c 2d 2d 74 72 61 6e 73 61 63 74    69 6f 6e 2d 6c 65 76 65 6c 29 0a 20 20 20 20 20 | macsql--transaction-level)...... | 
| 14a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    6d 61 63 73 71 6c 20 65 6d 61 63 73 71 6c 2d 2d | ..............(emacsql.emacsql-- | 
| 14a60 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 5b 3a 62 65 67    69 6e 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 | connection.[:begin]))........... | 
| 14a80 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65    73 75 6c 74 20 28 70 72 6f 67 6e 20 2c 40 62 6f | .......(let.((result.(progn.,@bo | 
| 14aa0 | 64 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 | dy)))....................(setq.e | 
| 14ac0 | 6d 61 63 73 71 6c 2d 2d 72 65 73 75 6c 74 20 72    65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 | macsql--result.result).......... | 
| 14ae0 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    28 3d 20 31 20 65 6d 61 63 73 71 6c 2d 2d 74 72 | ..........(when.(=.1.emacsql--tr | 
| 14b00 | 61 6e 73 61 63 74 69 6f 6e 2d 6c 65 76 65 6c 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ansaction-level)................ | 
| 14b20 | 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c 20 65    6d 61 63 73 71 6c 2d 2d 63 6f 6e 6e 65 63 74 69 | ......(emacsql.emacsql--connecti | 
| 14b40 | 6f 6e 20 5b 3a 63 6f 6d 6d 69 74 5d 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | on.[:commit])).................. | 
| 14b60 | 20 20 28 73 65 74 71 20 65 6d 61 63 73 71 6c 2d    2d 63 6f 6d 70 6c 65 74 65 64 20 74 29 29 29 0a | ..(setq.emacsql--completed.t))). | 
| 14b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d    61 63 73 71 6c 2d 6c 6f 63 6b 65 64 20 28 65 6d | .............(emacsql-locked.(em | 
| 14ba0 | 61 63 73 71 6c 20 65 6d 61 63 73 71 6c 2d 2d 63    6f 6e 6e 65 63 74 69 6f 6e 20 5b 3a 72 6f 6c 6c | acsql.emacsql--connection.[:roll | 
| 14bc0 | 62 61 63 6b 5d 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | back]).......................... | 
| 14be0 | 20 20 20 20 28 73 6c 65 65 70 2d 66 6f 72 20 30    2e 30 35 29 29 29 29 0a 20 20 20 20 20 20 20 28 | ....(sleep-for.0.05))))........( | 
| 14c00 | 77 68 65 6e 20 28 61 6e 64 20 28 3d 20 31 20 65    6d 61 63 73 71 6c 2d 2d 74 72 61 6e 73 61 63 74 | when.(and.(=.1.emacsql--transact | 
| 14c20 | 69 6f 6e 2d 6c 65 76 65 6c 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f | ion-level)...................(no | 
| 14c40 | 74 20 65 6d 61 63 73 71 6c 2d 2d 63 6f 6d 70 6c    65 74 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 | t.emacsql--completed)).......... | 
| 14c60 | 28 65 6d 61 63 73 71 6c 20 65 6d 61 63 73 71 6c    2d 2d 63 6f 6e 6e 65 63 74 69 6f 6e 20 5b 3a 72 | (emacsql.emacsql--connection.[:r | 
| 14c80 | 6f 6c 6c 62 61 63 6b 5d 29 29 29 0a 20 20 20 20    20 65 6d 61 63 73 71 6c 2d 2d 72 65 73 75 6c 74 | ollback])))......emacsql--result | 
| 14ca0 | 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 65 6d    61 63 73 71 6c 2d 74 68 72 65 61 64 20 28 63 6f | ))..(defmacro.emacsql-thread.(co | 
| 14cc0 | 6e 6e 65 63 74 69 6f 6e 20 26 72 65 73 74 20 73    74 61 74 65 6d 65 6e 74 73 29 0a 20 20 22 54 68 | nnection.&rest.statements)..."Th | 
| 14ce0 | 72 65 61 64 20 43 4f 4e 4e 45 43 54 49 4f 4e 20    74 68 72 6f 75 67 68 20 53 54 41 54 45 4d 45 4e | read.CONNECTION.through.STATEMEN | 
| 14d00 | 54 53 2e 0a 41 20 73 74 61 74 65 6d 65 6e 74 20    63 61 6e 20 62 65 20 61 20 6c 69 73 74 2c 20 63 | TS..A.statement.can.be.a.list,.c | 
| 14d20 | 6f 6e 74 61 69 6e 69 6e 67 20 61 20 73 74 61 74    65 6d 65 6e 74 20 77 69 74 68 20 69 74 73 20 61 | ontaining.a.statement.with.its.a | 
| 14d40 | 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 28 64 65    63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 | rguments."...(declare.(indent.1) | 
| 14d60 | 29 0a 20 20 60 28 6c 65 74 20 28 28 65 6d 61 63    73 71 6c 2d 2d 63 6f 6e 6e 20 2c 63 6f 6e 6e 65 | )...`(let.((emacsql--conn.,conne | 
| 14d80 | 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 28 65 6d    61 63 73 71 6c 2d 77 69 74 68 2d 74 72 61 6e 73 | ction))......(emacsql-with-trans | 
| 14da0 | 61 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c 2d 2d    63 6f 6e 6e 0a 20 20 20 20 20 20 20 2c 40 28 63 | action.emacsql--conn........,@(c | 
| 14dc0 | 6c 2d 6c 6f 6f 70 20 66 6f 72 20 73 74 61 74 65    6d 65 6e 74 20 69 6e 20 73 74 61 74 65 6d 65 6e | l-loop.for.statement.in.statemen | 
| 14de0 | 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 77 68 65 6e 20 28 76 65 63 74 6f | ts...................when.(vecto | 
| 14e00 | 72 70 20 73 74 61 74 65 6d 65 6e 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rp.statement)................... | 
| 14e20 | 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 27 65    6d 61 63 73 71 6c 20 27 65 6d 61 63 73 71 6c 2d | collect.(list.'emacsql.'emacsql- | 
| 14e40 | 2d 63 6f 6e 6e 20 73 74 61 74 65 6d 65 6e 74 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -conn.statement)................ | 
| 14e60 | 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 | ...else...................collec | 
| 14e80 | 74 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20    27 65 6d 61 63 73 71 6c 20 27 65 6d 61 63 73 71 | t.(append.(list.'emacsql.'emacsq | 
| 14ea0 | 6c 2d 2d 63 6f 6e 6e 29 20 73 74 61 74 65 6d 65    6e 74 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 | l--conn).statement)))))..(defmac | 
| 14ec0 | 72 6f 20 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d    62 69 6e 64 20 28 63 6f 6e 6e 65 63 74 69 6f 6e | ro.emacsql-with-bind.(connection | 
| 14ee0 | 20 73 71 6c 2d 61 6e 64 2d 61 72 67 73 20 26 72    65 73 74 20 62 6f 64 79 29 0a 20 20 22 46 6f 72 | .sql-and-args.&rest.body)..."For | 
| 14f00 | 20 65 61 63 68 20 72 65 73 75 6c 74 20 72 6f 77    20 62 69 6e 64 20 74 68 65 20 63 6f 6c 75 6d 6e | .each.result.row.bind.the.column | 
| 14f20 | 20 6e 61 6d 65 73 20 66 6f 72 20 65 61 63 68 20    72 65 74 75 72 6e 65 64 20 72 6f 77 2e 0a 52 65 | .names.for.each.returned.row..Re | 
| 14f40 | 74 75 72 6e 73 20 74 68 65 20 72 65 73 75 6c 74    20 6f 66 20 74 68 65 20 6c 61 73 74 20 65 76 61 | turns.the.result.of.the.last.eva | 
| 14f60 | 6c 75 61 74 65 64 20 42 4f 44 59 2e 0a 0a 41 6c    6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6d | luated.BODY...All.column.names.m | 
| 14f80 | 75 73 74 20 62 65 20 70 72 6f 76 69 64 65 64 20    69 6e 20 74 68 65 20 71 75 65 72 79 20 28 24 20 | ust.be.provided.in.the.query.($. | 
| 14fa0 | 61 6e 64 20 2a 20 61 72 65 20 6e 6f 74 0a 61 6c    6c 6f 77 65 64 29 2e 20 20 48 69 6e 74 3a 20 61 | and.*.are.not.allowed)...Hint:.a | 
| 14fc0 | 6c 6c 20 6f 66 20 74 68 65 20 62 6f 75 6e 64 20    69 64 65 6e 74 69 66 69 65 72 73 20 6d 75 73 74 | ll.of.the.bound.identifiers.must | 
| 14fe0 | 20 62 65 20 6b 6e 6f 77 6e 20 61 74 0a 63 6f 6d    70 69 6c 65 20 74 69 6d 65 2e 20 20 46 6f 72 20 | .be.known.at.compile.time...For. | 
| 15000 | 65 78 61 6d 70 6c 65 2c 20 69 6e 20 74 68 65 20    65 78 70 72 65 73 73 69 6f 6e 20 62 65 6c 6f 77 | example,.in.the.expression.below | 
| 15020 | 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 0a 60    6e 61 6d 65 27 20 61 6e 64 20 60 70 68 6f 6e 65 | .the.variables.`name'.and.`phone | 
| 15040 | 27 20 77 69 6c 6c 20 62 65 20 62 6f 75 6e 64 20    66 6f 72 20 74 68 65 20 62 6f 64 79 2e 0a 0a 20 | '.will.be.bound.for.the.body.... | 
| 15060 | 20 28 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d 62    69 6e 64 20 64 62 20 5b 3a 73 65 6c 65 63 74 20 | .(emacsql-with-bind.db.[:select. | 
| 15080 | 5b 6e 61 6d 65 20 70 68 6f 6e 65 5d 20 3a 66 72    6f 6d 20 70 65 6f 70 6c 65 5d 0a 20 20 20 20 28 | [name.phone].:from.people].....( | 
| 150a0 | 6d 65 73 73 61 67 65 20 5c 22 46 6f 75 6e 64 20    25 73 20 77 69 74 68 20 25 73 5c 22 20 6e 61 6d | message.\"Found.%s.with.%s\".nam | 
| 150c0 | 65 20 70 68 6f 6e 65 29 29 0a 0a 20 20 28 65 6d    61 63 73 71 6c 2d 77 69 74 68 2d 62 69 6e 64 20 | e.phone))....(emacsql-with-bind. | 
| 150e0 | 64 62 20 28 5b 3a 73 65 6c 65 63 74 20 5b 6e 61    6d 65 20 70 68 6f 6e 65 5d 0a 20 20 20 20 20 20 | db.([:select.[name.phone]....... | 
| 15100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 66 72 6f 6d 20 70 65 6f 70 6c 65 | ....................:from.people | 
| 15120 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 77 68 65 72 | ...........................:wher | 
| 15140 | 65 20 28 3d 20 6e 61 6d 65 20 24 31 29 5d 20 6d    79 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6d 65 73 | e.(=.name.$1)].my-name).....(mes | 
| 15160 | 73 61 67 65 20 5c 22 46 6f 75 6e 64 20 25 73 20    77 69 74 68 20 25 73 5c 22 20 6e 61 6d 65 20 70 | sage.\"Found.%s.with.%s\".name.p | 
| 15180 | 68 6f 6e 65 29 29 0a 0a 45 61 63 68 20 63 6f 6c    75 6d 6e 20 6d 75 73 74 20 62 65 20 61 20 70 6c | hone))..Each.column.must.be.a.pl | 
| 151a0 | 61 69 6e 20 73 79 6d 62 6f 6c 2c 20 6e 6f 20 65    78 70 72 65 73 73 69 6f 6e 73 20 61 6c 6c 6f 77 | ain.symbol,.no.expressions.allow | 
| 151c0 | 65 64 20 68 65 72 65 2e 22 0a 20 20 28 64 65 63    6c 61 72 65 20 28 69 6e 64 65 6e 74 20 32 29 29 | ed.here."...(declare.(indent.2)) | 
| 151e0 | 0a 20 20 28 6c 65 74 20 28 28 73 71 6c 20 28 69    66 20 28 76 65 63 74 6f 72 70 20 73 71 6c 2d 61 | ...(let.((sql.(if.(vectorp.sql-a | 
| 15200 | 6e 64 2d 61 72 67 73 29 20 73 71 6c 2d 61 6e 64    2d 61 72 67 73 20 28 63 61 72 20 73 71 6c 2d 61 | nd-args).sql-and-args.(car.sql-a | 
| 15220 | 6e 64 2d 61 72 67 73 29 29 29 0a 20 20 20 20 20    20 20 20 28 61 72 67 73 20 28 61 6e 64 20 28 6e | nd-args))).........(args.(and.(n | 
| 15240 | 6f 74 20 28 76 65 63 74 6f 72 70 20 73 71 6c 2d    61 6e 64 2d 61 72 67 73 29 29 20 28 63 64 72 20 | ot.(vectorp.sql-and-args)).(cdr. | 
| 15260 | 73 71 6c 2d 61 6e 64 2d 61 72 67 73 29 29 29 29    0a 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 | sql-and-args)))).....(cl-assert. | 
| 15280 | 28 65 71 20 3a 73 65 6c 65 63 74 20 28 65 6c 74    20 73 71 6c 20 30 29 29 29 0a 20 20 20 20 28 6c | (eq.:select.(elt.sql.0))).....(l | 
| 152a0 | 65 74 20 28 28 76 61 72 73 20 28 65 6c 74 20 73    71 6c 20 31 29 29 29 0a 20 20 20 20 20 20 28 77 | et.((vars.(elt.sql.1))).......(w | 
| 152c0 | 68 65 6e 20 28 65 71 20 76 61 72 73 20 27 2a 29    0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 | hen.(eq.vars.'*).........(error. | 
| 152e0 | 22 4d 75 73 74 20 65 78 70 6c 69 63 69 74 6c 79    20 6c 69 73 74 20 63 6f 6c 75 6d 6e 73 20 69 6e | "Must.explicitly.list.columns.in | 
| 15300 | 20 60 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d 62    69 6e 64 27 22 29 29 0a 20 20 20 20 20 20 28 63 | .`emacsql-with-bind'")).......(c | 
| 15320 | 6c 2d 61 73 73 65 72 74 20 28 63 6c 2d 65 76 65    72 79 20 23 27 73 79 6d 62 6f 6c 70 20 76 61 72 | l-assert.(cl-every.#'symbolp.var | 
| 15340 | 73 29 29 0a 20 20 20 20 20 20 60 28 6c 65 74 20    28 28 65 6d 61 63 73 71 6c 2d 2d 72 65 73 75 6c | s)).......`(let.((emacsql--resul | 
| 15360 | 74 73 20 28 65 6d 61 63 73 71 6c 20 2c 63 6f 6e    6e 65 63 74 69 6f 6e 20 2c 73 71 6c 20 2c 40 61 | ts.(emacsql.,connection.,sql.,@a | 
| 15380 | 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 65 6d 61 63 73 71 6c 2d 2d 66 69 6e | rgs))..............(emacsql--fin | 
| 153a0 | 61 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20    20 20 28 64 6f 6c 69 73 74 20 28 65 6d 61 63 73 | al.nil))..........(dolist.(emacs | 
| 153c0 | 71 6c 2d 2d 72 65 73 75 6c 74 20 65 6d 61 63 73    71 6c 2d 2d 72 65 73 75 6c 74 73 20 65 6d 61 63 | ql--result.emacsql--results.emac | 
| 153e0 | 73 71 6c 2d 2d 66 69 6e 61 6c 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 65 6d 61 | sql--final)............(setq.ema | 
| 15400 | 63 73 71 6c 2d 2d 66 69 6e 61 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c | csql--final..................(cl | 
| 15420 | 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62    69 6e 64 20 2c 28 63 6c 2d 63 6f 65 72 63 65 20 | -destructuring-bind.,(cl-coerce. | 
| 15440 | 76 61 72 73 20 27 6c 69 73 74 29 20 65 6d 61 63    73 71 6c 2d 2d 72 65 73 75 6c 74 0a 20 20 20 20 | vars.'list).emacsql--result..... | 
| 15460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c    40 62 6f 64 79 29 29 29 29 29 29 29 0a 0a 3b 3b | ...............,@body)))))))..;; | 
| 15480 | 3b 20 55 73 65 72 20 69 6e 74 65 72 61 63 74 69    6f 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 | ;.User.interaction.functions..(d | 
| 154a0 | 65 66 76 61 72 20 65 6d 61 63 73 71 6c 2d 73 68    6f 77 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 | efvar.emacsql-show-buffer-name." | 
| 154c0 | 2a 65 6d 61 63 73 71 6c 2d 73 68 6f 77 2a 22 0a    20 20 22 4e 61 6d 65 20 6f 66 20 74 68 65 20 62 | *emacsql-show*"..."Name.of.the.b | 
| 154e0 | 75 66 66 65 72 20 66 6f 72 20 64 69 73 70 6c 61    79 69 6e 67 20 69 6e 74 65 72 6d 65 64 69 61 74 | uffer.for.displaying.intermediat | 
| 15500 | 65 20 53 51 4c 2e 22 29 0a 0a 28 64 65 66 75 6e    20 65 6d 61 63 73 71 6c 2d 2d 69 6e 64 65 6e 74 | e.SQL.")..(defun.emacsql--indent | 
| 15520 | 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 61 6e    64 20 77 72 61 70 20 74 68 65 20 53 51 4c 20 65 | .()..."Indent.and.wrap.the.SQL.e | 
| 15540 | 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65    20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e | xpression.in.the.current.buffer. | 
| 15560 | 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73    69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 | "...(save-excursion.....(goto-ch | 
| 15580 | 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a    20 20 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d | ar.(point-min)).....(let.((case- | 
| 155a0 | 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29    29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 | fold-search.nil)).......(while.( | 
| 155c0 | 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72    65 67 65 78 70 20 22 20 5b 41 2d 5a 5d 2b 22 20 | search-forward-regexp.".[A-Z]+". | 
| 155e0 | 6e 69 6c 20 3a 6e 6f 2d 65 72 72 6f 72 29 0a 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 | nil.:no-error).........(when.(>. | 
| 15600 | 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29    20 28 2a 20 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 20 | (current-column).(*.fill-column. | 
| 15620 | 30 2e 38 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 62 61 63 6b 77 61 72 64 2d 77 6f 72 64 29 0a | 0.8))...........(backward-word). | 
| 15640 | 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 22 5c 6e 20 20 20 20 22 29 29 29 29 29 29 | ..........(insert."\n....")))))) | 
| 15660 | 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c    2d 73 68 6f 77 2d 73 71 6c 20 28 73 74 72 69 6e | ..(defun.emacsql-show-sql.(strin | 
| 15680 | 67 29 0a 20 20 22 46 6f 6e 74 69 66 79 20 61 6e    64 20 64 69 73 70 6c 61 79 20 74 68 65 20 53 51 | g)..."Fontify.and.display.the.SQ | 
| 156a0 | 4c 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20    53 54 52 49 4e 47 2e 22 0a 20 20 28 6c 65 74 20 | L.expression.in.STRING."...(let. | 
| 156c0 | 28 28 66 6f 6e 74 69 66 69 65 64 0a 20 20 20 20    20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d | ((fontified..........(with-temp- | 
| 156e0 | 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20    20 20 28 69 6e 73 65 72 74 20 73 74 72 69 6e 67 | buffer............(insert.string | 
| 15700 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 71    6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 | )............(sql-mode)......... | 
| 15720 | 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e    69 6e 67 73 20 3b 3b 20 61 75 74 6f 6c 6f 61 64 | ...(with-no-warnings.;;.autoload | 
| 15740 | 65 64 20 62 79 20 70 72 65 76 69 6f 75 73 20 6c    69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ed.by.previous.line............. | 
| 15760 | 20 28 73 71 6c 2d 68 69 67 68 6c 69 67 68 74 2d    73 71 6c 69 74 65 2d 6b 65 79 77 6f 72 64 73 29 | .(sql-highlight-sqlite-keywords) | 
| 15780 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f    6e 74 2d 6c 6f 63 6b 2d 65 6e 73 75 72 65 29 0a | )............(font-lock-ensure). | 
| 157a0 | 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63    73 71 6c 2d 2d 69 6e 64 65 6e 74 29 0a 20 20 20 | ...........(emacsql--indent).... | 
| 157c0 | 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d    73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 28 | ........(buffer-string)))).....( | 
| 157e0 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66    66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d | with-current-buffer.(get-buffer- | 
| 15800 | 63 72 65 61 74 65 20 65 6d 61 63 73 71 6c 2d 73    68 6f 77 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 | create.emacsql-show-buffer-name) | 
| 15820 | 0a 20 20 20 20 20 20 28 69 66 20 28 3c 20 28 6c    65 6e 67 74 68 20 73 74 72 69 6e 67 29 20 66 69 | .......(if.(<.(length.string).fi | 
| 15840 | 6c 6c 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20    20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 | ll-column)...........(message."% | 
| 15860 | 73 22 20 66 6f 6e 74 69 66 69 65 64 29 0a 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 | s".fontified).........(let.((buf | 
| 15880 | 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 6e 69    6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 | fer-read-only.nil))...........(e | 
| 158a0 | 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20    20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 66 | rase-buffer)...........(insert.f | 
| 158c0 | 6f 6e 74 69 66 69 65 64 29 29 0a 20 20 20 20 20    20 20 20 28 73 70 65 63 69 61 6c 2d 6d 6f 64 65 | ontified)).........(special-mode | 
| 158e0 | 29 0a 20 20 20 20 20 20 20 20 28 76 69 73 75 61    6c 2d 6c 69 6e 65 2d 6d 6f 64 65 29 0a 20 20 20 | ).........(visual-line-mode).... | 
| 15900 | 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66    66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | .....(pop-to-buffer.(current-buf | 
| 15920 | 66 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 65 6d 61 63 73 71 6c 2d 66 6c 61 74 74 65 | fer))))))..(defun.emacsql-flatte | 
| 15940 | 6e 2d 73 71 6c 20 28 73 71 6c 29 0a 20 20 22 43    6f 6e 76 65 72 74 20 61 20 73 2d 65 78 70 72 65 | n-sql.(sql)..."Convert.a.s-expre | 
| 15960 | 73 73 69 6f 6e 20 53 51 4c 20 69 6e 74 6f 20 61    20 66 6c 61 74 20 73 74 72 69 6e 67 20 66 6f 72 | ssion.SQL.into.a.flat.string.for | 
| 15980 | 20 64 69 73 70 6c 61 79 2e 22 0a 20 20 28 63 6c    2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 | .display."...(cl-destructuring-b | 
| 159a0 | 69 6e 64 20 28 73 74 72 69 6e 67 20 2e 20 76 61    72 73 29 20 28 65 6d 61 63 73 71 6c 2d 70 72 65 | ind.(string...vars).(emacsql-pre | 
| 159c0 | 70 61 72 65 20 73 71 6c 29 0a 20 20 20 20 28 63    6f 6e 63 61 74 0a 20 20 20 20 20 28 61 70 70 6c | pare.sql).....(concat......(appl | 
| 159e0 | 79 20 23 27 66 6f 72 6d 61 74 20 73 74 72 69 6e    67 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 69 | y.#'format.string.(cl-loop.for.i | 
| 15a00 | 20 69 6e 20 28 6d 61 70 63 61 72 20 23 27 63 61    72 20 76 61 72 73 29 0a 20 20 20 20 20 20 20 20 | .in.(mapcar.#'car.vars)......... | 
| 15a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c | .............................col | 
| 15a40 | 6c 65 63 74 20 28 69 6e 74 65 72 6e 20 28 66 6f    72 6d 61 74 20 22 24 25 64 22 20 28 31 2b 20 69 | lect.(intern.(format."$%d".(1+.i | 
| 15a60 | 29 29 29 29 29 0a 20 20 20 20 20 22 3b 22 29 29    29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 | )))))......";")))..;;;###autoloa | 
| 15a80 | 64 0a 28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c    2d 73 68 6f 77 2d 6c 61 73 74 2d 73 71 6c 20 28 | d.(defun.emacsql-show-last-sql.( | 
| 15aa0 | 26 6f 70 74 69 6f 6e 61 6c 20 70 72 65 66 69 78    29 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 | &optional.prefix)..."Display.the | 
| 15ac0 | 20 63 6f 6d 70 69 6c 65 64 20 53 51 4c 20 6f 66    20 74 68 65 20 73 2d 65 78 70 72 65 73 73 69 6f | .compiled.SQL.of.the.s-expressio | 
| 15ae0 | 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e    20 62 65 66 6f 72 65 20 70 6f 69 6e 74 2e 0a 41 | n.SQL.expression.before.point..A | 
| 15b00 | 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74    20 63 61 75 73 65 73 20 74 68 65 20 53 51 4c 20 | .prefix.argument.causes.the.SQL. | 
| 15b20 | 74 6f 20 62 65 20 70 72 69 6e 74 65 64 20 69 6e    74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 | to.be.printed.into.the.current.b | 
| 15b40 | 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72    61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c | uffer."...(interactive."P")...(l | 
| 15b60 | 65 74 20 28 28 73 65 78 70 20 28 69 66 20 28 66    62 6f 75 6e 64 70 20 27 65 6c 69 73 70 2d 2d 70 | et.((sexp.(if.(fboundp.'elisp--p | 
| 15b80 | 72 65 63 65 64 69 6e 67 2d 73 65 78 70 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | receding-sexp).................. | 
| 15ba0 | 20 28 65 6c 69 73 70 2d 2d 70 72 65 63 65 64 69    6e 67 2d 73 65 78 70 29 0a 20 20 20 20 20 20 20 | .(elisp--preceding-sexp)........ | 
| 15bc0 | 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e    6f 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 | .........(with-no-warnings...... | 
| 15be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72    65 63 65 64 69 6e 67 2d 73 65 78 70 29 29 29 29 | .............(preceding-sexp)))) | 
| 15c00 | 29 0a 20 20 20 20 28 69 66 20 28 65 6d 61 63 73    71 6c 2d 73 71 6c 2d 70 20 73 65 78 70 29 0a 20 | ).....(if.(emacsql-sql-p.sexp).. | 
| 15c20 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 71    6c 20 28 65 6d 61 63 73 71 6c 2d 66 6c 61 74 74 | .......(let.((sql.(emacsql-flatt | 
| 15c40 | 65 6e 2d 73 71 6c 20 73 65 78 70 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 65 | en-sql.sexp)))...........(if.pre | 
| 15c60 | 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 69 6e 73 65 72 74 20 73 71 6c 29 0a 20 | fix...............(insert.sql).. | 
| 15c80 | 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63    73 71 6c 2d 73 68 6f 77 2d 73 71 6c 20 73 71 6c | ...........(emacsql-show-sql.sql | 
| 15ca0 | 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d    65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 53 | ))).......(user-error."Invalid.S | 
| 15cc0 | 51 4c 3a 20 25 53 22 20 73 65 78 70 29 29 29 29    0a 0a 3b 3b 3b 20 46 69 78 20 45 6d 61 63 73 27 | QL:.%S".sexp))))..;;;.Fix.Emacs' | 
| 15ce0 | 20 62 72 6f 6b 65 6e 20 76 65 63 74 6f 72 20 69    6e 64 65 6e 74 61 74 69 6f 6e 0a 0a 28 64 65 66 | .broken.vector.indentation..(def | 
| 15d00 | 75 6e 20 65 6d 61 63 73 71 6c 2d 2d 69 6e 73 69    64 65 2d 76 65 63 74 6f 72 2d 70 20 28 29 0a 20 | un.emacsql--inside-vector-p.().. | 
| 15d20 | 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c    20 69 66 20 70 6f 69 6e 74 20 69 73 20 69 6e 73 | ."Return.non-nil.if.point.is.ins | 
| 15d40 | 69 64 65 20 61 20 76 65 63 74 6f 72 20 65 78 70    72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 | ide.a.vector.expression."...(let | 
| 15d60 | 20 28 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29    29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 | .((start.(point))).....(save-exc | 
| 15d80 | 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 62 65    67 69 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75 6e | ursion.......(beginning-of-defun | 
| 15da0 | 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63    6f 6e 74 61 69 6e 69 6e 67 2d 73 65 78 70 20 28 | ).......(let.((containing-sexp.( | 
| 15dc0 | 65 6c 74 20 28 70 61 72 73 65 2d 70 61 72 74 69    61 6c 2d 73 65 78 70 20 28 70 6f 69 6e 74 29 20 | elt.(parse-partial-sexp.(point). | 
| 15de0 | 73 74 61 72 74 29 20 31 29 29 29 0a 20 20 20 20    20 20 20 20 28 61 6e 64 20 63 6f 6e 74 61 69 6e | start).1))).........(and.contain | 
| 15e00 | 69 6e 67 2d 73 65 78 70 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 67 6f | ing-sexp..............(progn.(go | 
| 15e20 | 74 6f 2d 63 68 61 72 20 63 6f 6e 74 61 69 6e 69    6e 67 2d 73 65 78 70 29 0a 20 20 20 20 20 20 20 | to-char.containing-sexp)........ | 
| 15e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f    6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5b 22 29 29 | .............(looking-at."\\[")) | 
| 15e60 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 65 6d    61 63 73 71 6c 2d 2d 63 61 6c 63 75 6c 61 74 65 | )))))..(defun.emacsql--calculate | 
| 15e80 | 2d 76 65 63 74 6f 72 2d 69 6e 64 65 6e 74 20 28    66 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 70 61 72 | -vector-indent.(fn.&optional.par | 
| 15ea0 | 73 65 2d 73 74 61 72 74 29 0a 20 20 22 44 6f 6e    27 74 20 69 6e 64 65 6e 74 20 76 65 63 74 6f 72 | se-start)..."Don't.indent.vector | 
| 15ec0 | 73 20 69 6e 20 60 65 6d 61 63 73 2d 6c 69 73 70    2d 6d 6f 64 65 27 20 6c 69 6b 65 20 6c 69 73 74 | s.in.`emacs-lisp-mode'.like.list | 
| 15ee0 | 73 2e 22 0a 20 20 28 69 66 20 28 73 61 76 65 2d    65 78 63 75 72 73 69 6f 6e 20 28 62 65 67 69 6e | s."...(if.(save-excursion.(begin | 
| 15f00 | 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 20 28 65    6d 61 63 73 71 6c 2d 2d 69 6e 73 69 64 65 2d 76 | ning-of-line).(emacsql--inside-v | 
| 15f20 | 65 63 74 6f 72 2d 70 29 29 0a 20 20 20 20 20 20    28 6c 65 74 20 28 28 6c 69 73 70 2d 69 6e 64 65 | ector-p)).......(let.((lisp-inde | 
| 15f40 | 6e 74 2d 6f 66 66 73 65 74 20 31 29 29 0a 20 20    20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 | nt-offset.1)).........(funcall.f | 
| 15f60 | 6e 20 70 61 72 73 65 2d 73 74 61 72 74 29 29 0a    20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 | n.parse-start)).....(funcall.fn. | 
| 15f80 | 70 61 72 73 65 2d 73 74 61 72 74 29 29 29 0a 0a    28 64 65 66 75 6e 20 65 6d 61 63 73 71 6c 2d 66 | parse-start)))..(defun.emacsql-f | 
| 15fa0 | 69 78 2d 76 65 63 74 6f 72 2d 69 6e 64 65 6e 74    61 74 69 6f 6e 20 28 29 0a 20 20 22 57 68 65 6e | ix-vector-indentation.()..."When | 
| 15fc0 | 20 63 61 6c 6c 65 64 2c 20 61 64 76 69 73 65 20    60 63 61 6c 63 75 6c 61 74 65 2d 6c 69 73 70 2d | .called,.advise.`calculate-lisp- | 
| 15fe0 | 69 6e 64 65 6e 74 27 20 74 6f 20 73 74 6f 70 20    69 6e 64 65 6e 74 69 6e 67 20 76 65 63 74 6f 72 | indent'.to.stop.indenting.vector | 
| 16000 | 73 2e 0a 4f 6e 63 65 20 61 63 74 69 76 61 74 65    64 2c 20 76 65 63 74 6f 72 20 63 6f 6e 74 65 6e | s..Once.activated,.vector.conten | 
| 16020 | 74 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 69 6e 64    65 6e 74 20 6c 69 6b 65 20 6c 69 73 74 73 2e 22 | ts.no.longer.indent.like.lists." | 
| 16040 | 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29    0a 20 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 | ...(interactive)...(advice-add.' | 
| 16060 | 63 61 6c 63 75 6c 61 74 65 2d 6c 69 73 70 2d 69    6e 64 65 6e 74 20 3a 61 72 6f 75 6e 64 0a 20 20 | calculate-lisp-indent.:around... | 
| 16080 | 20 20 20 20 20 20 20 20 20 20 20 20 23 27 65 6d    61 63 73 71 6c 2d 2d 63 61 6c 63 75 6c 61 74 65 | ............#'emacsql--calculate | 
| 160a0 | 2d 76 65 63 74 6f 72 2d 69 6e 64 65 6e 74 29 29    0a 0a 28 70 72 6f 76 69 64 65 20 27 65 6d 61 63 | -vector-indent))..(provide.'emac | 
| 160c0 | 73 71 6c 29 0a 0a 3b 3b 3b 20 65 6d 61 63 73 71    6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 | sql)..;;;.emacsql.el.ends.here.. | 
| 160e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 161a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 161c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 161e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16200 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 65 6d    61 63 73 71 6c 2d 70 73 71 6c 2e 65 6c 00 00 00 | emacsql-4.3.1/emacsql-psql.el... | 
| 16220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 16280 | 30 30 31 33 33 35 35 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 35 33 36 00 20 30 00 00 00 | 0013355.00000000000.014536..0... | 
| 162a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 162c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 162e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 16320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 16340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 163a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 163c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 163e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 16400 | 3b 3b 3b 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c    2e 65 6c 20 2d 2d 2d 20 45 6d 61 63 53 51 4c 20 | ;;;.emacsql-psql.el.---.EmacSQL. | 
| 16420 | 62 61 63 6b 2d 65 6e 64 20 66 6f 72 20 50 6f 73    74 67 72 65 53 51 4c 20 76 69 61 20 70 73 71 6c | back-end.for.PostgreSQL.via.psql | 
| 16440 | 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69    6e 64 69 6e 67 3a 74 20 2d 2a 2d 0a 0a 3b 3b 20 | ..-*-.lexical-binding:t.-*-..;;. | 
| 16460 | 54 68 69 73 20 69 73 20 66 72 65 65 20 61 6e 64    20 75 6e 65 6e 63 75 6d 62 65 72 65 64 20 73 6f | This.is.free.and.unencumbered.so | 
| 16480 | 66 74 77 61 72 65 20 72 65 6c 65 61 73 65 64 20    69 6e 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 | ftware.released.into.the.public. | 
| 164a0 | 64 6f 6d 61 69 6e 2e 0a 0a 3b 3b 20 41 75 74 68    6f 72 3a 20 43 68 72 69 73 74 6f 70 68 65 72 20 | domain...;;.Author:.Christopher. | 
| 164c0 | 57 65 6c 6c 6f 6e 73 20 3c 77 65 6c 6c 6f 6e 73    40 6e 75 6c 6c 70 72 6f 67 72 61 6d 2e 63 6f 6d | Wellons.<wellons@nullprogram.com | 
| 164e0 | 3e 0a 3b 3b 20 4d 61 69 6e 74 61 69 6e 65 72 3a    20 4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c 6c 69 | >.;;.Maintainer:.Jonas.Bernoulli | 
| 16500 | 20 3c 65 6d 61 63 73 2e 65 6d 61 63 73 71 6c 40    6a 6f 6e 61 73 2e 62 65 72 6e 6f 75 6c 6c 69 2e | .<emacs.emacsql@jonas.bernoulli. | 
| 16520 | 64 65 76 3e 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69    63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 | dev>..;;.SPDX-License-Identifier | 
| 16540 | 3a 20 55 6e 6c 69 63 65 6e 73 65 0a 0a 3b 3b 3b    20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b | :.Unlicense..;;;.Commentary:..;; | 
| 16560 | 20 54 68 69 73 20 6c 69 62 72 61 72 79 20 70 72    6f 76 69 64 65 73 20 61 6e 20 45 6d 61 63 53 51 | .This.library.provides.an.EmacSQ | 
| 16580 | 4c 20 62 61 63 6b 2d 65 6e 64 20 66 6f 72 20 50    6f 73 74 67 72 65 53 51 4c 2c 20 77 68 69 63 68 | L.back-end.for.PostgreSQL,.which | 
| 165a0 | 0a 3b 3b 20 75 73 65 73 20 74 68 65 20 73 74 61    6e 64 61 72 64 20 60 70 73 71 6c 27 20 63 6f 6d | .;;.uses.the.standard.`psql'.com | 
| 165c0 | 6d 61 6e 64 20 6c 69 6e 65 20 70 72 6f 67 72 61    6d 2e 0a 0a 3b 3b 20 28 46 6f 72 20 61 6e 20 61 | mand.line.program...;;.(For.an.a | 
| 165e0 | 6c 74 65 72 6e 61 74 69 76 65 20 62 61 63 6b 2d    65 6e 64 20 66 6f 72 20 50 6f 73 74 67 72 65 53 | lternative.back-end.for.PostgreS | 
| 16600 | 51 4c 2c 20 73 65 65 20 60 65 6d 61 63 73 71 6c    2d 70 67 27 2e 29 0a 0a 3b 3b 3b 20 43 6f 64 65 | QL,.see.`emacsql-pg'.)..;;;.Code | 
| 16620 | 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 6d 61    63 73 71 6c 29 0a 0a 28 64 65 66 76 61 72 20 65 | :..(require.'emacsql)..(defvar.e | 
| 16640 | 6d 61 63 73 71 6c 2d 70 73 71 6c 2d 65 78 65 63    75 74 61 62 6c 65 20 22 70 73 71 6c 22 0a 20 20 | macsql-psql-executable."psql"... | 
| 16660 | 22 50 61 74 68 20 74 6f 20 74 68 65 20 70 73 71    6c 20 28 50 6f 73 74 67 72 65 53 51 4c 20 63 6c | "Path.to.the.psql.(PostgreSQL.cl | 
| 16680 | 69 65 6e 74 29 20 65 78 65 63 75 74 61 62 6c 65    2e 22 29 0a 0a 28 64 65 66 75 6e 20 65 6d 61 63 | ient).executable.")..(defun.emac | 
| 166a0 | 73 71 6c 2d 70 73 71 6c 2d 75 6e 61 76 61 69 6c    61 62 6c 65 2d 70 20 28 29 0a 20 20 22 52 65 74 | sql-psql-unavailable-p.()..."Ret | 
| 166c0 | 75 72 6e 20 61 20 72 65 61 73 6f 6e 20 69 66 20    74 68 65 20 70 73 71 6c 20 65 78 65 63 75 74 61 | urn.a.reason.if.the.psql.executa | 
| 166e0 | 62 6c 65 20 69 73 20 6e 6f 74 20 61 76 61 69 6c    61 62 6c 65 2e 0a 3a 6e 6f 2d 65 78 65 63 75 74 | ble.is.not.available..:no-execut | 
| 16700 | 61 62 6c 65 20 2d 2d 20 63 61 6e 6e 6f 74 20 66    69 6e 64 20 74 68 65 20 65 78 65 63 75 74 61 62 | able.--.cannot.find.the.executab | 
| 16720 | 6c 65 0a 3a 63 61 6e 6e 6f 74 2d 65 78 65 63 75    74 65 20 2d 2d 20 63 61 6e 6e 6f 74 20 72 75 6e | le.:cannot-execute.--.cannot.run | 
| 16740 | 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 0a    3a 6f 6c 64 2d 76 65 72 73 69 6f 6e 20 2d 2d 20 | .the.executable.:old-version.--. | 
| 16760 | 73 71 6c 69 74 65 33 20 76 65 72 73 69 6f 6e 20    69 73 20 74 6f 6f 20 6f 6c 64 22 0a 20 20 28 6c | sqlite3.version.is.too.old"...(l | 
| 16780 | 65 74 20 28 28 70 73 71 6c 20 65 6d 61 63 73 71    6c 2d 70 73 71 6c 2d 65 78 65 63 75 74 61 62 6c | et.((psql.emacsql-psql-executabl | 
| 167a0 | 65 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c    6c 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 | e)).....(if.(null.(executable-fi | 
| 167c0 | 6e 64 20 70 73 71 6c 29 29 0a 20 20 20 20 20 20    20 20 3a 6e 6f 2d 65 78 65 63 75 74 61 62 6c 65 | nd.psql)).........:no-executable | 
| 167e0 | 0a 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f    6e 2d 63 61 73 65 20 5f 0a 20 20 20 20 20 20 20 | .......(condition-case._........ | 
| 16800 | 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75    66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 | ...(with-temp-buffer............ | 
| 16820 | 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 70    73 71 6c 20 6e 69 6c 20 28 63 75 72 72 65 6e 74 | .(call-process.psql.nil.(current | 
| 16840 | 2d 62 75 66 66 65 72 29 20 6e 69 6c 20 22 2d 2d    76 65 72 73 69 6f 6e 22 29 0a 20 20 20 20 20 20 | -buffer).nil."--version")....... | 
| 16860 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 65 72    73 69 6f 6e 20 28 63 6c 2d 74 68 69 72 64 20 28 | ......(let.((version.(cl-third.( | 
| 16880 | 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 62 75    66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 29 | split-string.(buffer-string))))) | 
| 168a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    69 66 20 28 76 65 72 73 69 6f 6e 3c 20 76 65 72 | ...............(if.(version<.ver | 
| 168c0 | 73 69 6f 6e 20 22 31 2e 30 2e 30 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sion."1.0.0")................... | 
| 168e0 | 3a 6f 6c 64 2d 76 65 72 73 69 6f 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c | :old-version.................nil | 
| 16900 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72    6f 72 20 3a 63 61 6e 6e 6f 74 2d 65 78 65 63 75 | ))).........(error.:cannot-execu | 
| 16920 | 74 65 29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e    73 74 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c 2d | te)))))..(defconst.emacsql-psql- | 
| 16940 | 72 65 73 65 72 76 65 64 0a 20 20 28 65 6d 61 63    73 71 6c 2d 72 65 67 69 73 74 65 72 2d 72 65 73 | reserved...(emacsql-register-res | 
| 16960 | 65 72 76 65 64 0a 20 20 20 27 28 20 41 4c 4c 20    41 4e 41 4c 59 53 45 20 41 4e 41 4c 59 5a 45 20 | erved....'(.ALL.ANALYSE.ANALYZE. | 
| 16980 | 41 4e 44 20 41 4e 59 20 41 53 20 41 53 43 20 41    55 54 48 4f 52 49 5a 41 54 49 4f 4e 20 42 45 54 | AND.ANY.AS.ASC.AUTHORIZATION.BET | 
| 169a0 | 57 45 45 4e 20 42 49 4e 41 52 59 0a 20 20 20 20    20 20 42 4f 54 48 20 43 41 53 45 20 43 41 53 54 | WEEN.BINARY.......BOTH.CASE.CAST | 
| 169c0 | 20 43 48 45 43 4b 20 43 4f 4c 4c 41 54 45 20 43    4f 4c 55 4d 4e 20 43 4f 4e 53 54 52 41 49 4e 54 | .CHECK.COLLATE.COLUMN.CONSTRAINT | 
| 169e0 | 20 43 52 45 41 54 45 20 43 52 4f 53 53 0a 20 20    20 20 20 20 43 55 52 52 45 4e 54 5f 44 41 54 45 | .CREATE.CROSS.......CURRENT_DATE | 
| 16a00 | 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 20 43 55    52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d 50 20 | .CURRENT_TIME.CURRENT_TIMESTAMP. | 
| 16a20 | 43 55 52 52 45 4e 54 5f 55 53 45 52 20 44 45 46    41 55 4c 54 0a 20 20 20 20 20 20 44 45 46 45 52 | CURRENT_USER.DEFAULT.......DEFER | 
| 16a40 | 52 41 42 4c 45 20 44 45 53 43 20 44 49 53 54 49    4e 43 54 20 44 4f 20 45 4c 53 45 20 45 4e 44 20 | RABLE.DESC.DISTINCT.DO.ELSE.END. | 
| 16a60 | 45 58 43 45 50 54 20 46 41 4c 53 45 20 46 4f 52    20 46 4f 52 45 49 47 4e 0a 20 20 20 20 20 20 46 | EXCEPT.FALSE.FOR.FOREIGN.......F | 
| 16a80 | 52 45 45 5a 45 20 46 52 4f 4d 20 46 55 4c 4c 20    47 52 41 4e 54 20 47 52 4f 55 50 20 48 41 56 49 | REEZE.FROM.FULL.GRANT.GROUP.HAVI | 
| 16aa0 | 4e 47 20 49 4c 49 4b 45 20 49 4e 20 49 4e 49 54    49 41 4c 4c 59 20 49 4e 4e 45 52 0a 20 20 20 20 | NG.ILIKE.IN.INITIALLY.INNER..... | 
| 16ac0 | 20 20 49 4e 54 45 52 53 45 43 54 20 49 4e 54 4f    20 49 53 20 49 53 4e 55 4c 4c 20 4a 4f 49 4e 20 | ..INTERSECT.INTO.IS.ISNULL.JOIN. | 
| 16ae0 | 4c 45 41 44 49 4e 47 20 4c 45 46 54 20 4c 49 4b    45 20 4c 49 4d 49 54 20 4c 4f 43 41 4c 54 49 4d | LEADING.LEFT.LIKE.LIMIT.LOCALTIM | 
| 16b00 | 45 0a 20 20 20 20 20 20 4c 4f 43 41 4c 54 49 4d    45 53 54 41 4d 50 20 4e 41 54 55 52 41 4c 20 4e | E.......LOCALTIMESTAMP.NATURAL.N | 
| 16b20 | 45 57 20 4e 4f 54 20 4e 4f 54 4e 55 4c 4c 20 4e    55 4c 4c 20 4f 46 46 20 4f 46 46 53 45 54 20 4f | EW.NOT.NOTNULL.NULL.OFF.OFFSET.O | 
| 16b40 | 4c 44 20 4f 4e 0a 20 20 20 20 20 20 4f 4e 4c 59    20 4f 52 20 4f 52 44 45 52 20 4f 55 54 45 52 20 | LD.ON.......ONLY.OR.ORDER.OUTER. | 
| 16b60 | 4f 56 45 52 4c 41 50 53 20 50 4c 41 43 49 4e 47    20 50 52 49 4d 41 52 59 20 52 45 46 45 52 45 4e | OVERLAPS.PLACING.PRIMARY.REFEREN | 
| 16b80 | 43 45 53 20 52 49 47 48 54 0a 20 20 20 20 20 20    53 45 4c 45 43 54 20 53 45 53 53 49 4f 4e 5f 55 | CES.RIGHT.......SELECT.SESSION_U | 
| 16ba0 | 53 45 52 20 53 49 4d 49 4c 41 52 20 53 4f 4d 45    20 54 41 42 4c 45 20 54 48 45 4e 20 54 4f 20 54 | SER.SIMILAR.SOME.TABLE.THEN.TO.T | 
| 16bc0 | 52 41 49 4c 49 4e 47 20 54 52 55 45 0a 20 20 20    20 20 20 55 4e 49 4f 4e 20 55 4e 49 51 55 45 20 | RAILING.TRUE.......UNION.UNIQUE. | 
| 16be0 | 55 53 45 52 20 55 53 49 4e 47 20 56 45 52 42 4f    53 45 20 57 48 45 4e 20 57 48 45 52 45 29 29 0a | USER.USING.VERBOSE.WHEN.WHERE)). | 
| 16c00 | 20 20 22 4c 69 73 74 20 6f 66 20 61 6c 6c 20 6f    66 20 50 6f 73 74 67 72 65 53 51 4c 27 73 20 72 | .."List.of.all.of.PostgreSQL's.r | 
| 16c20 | 65 73 65 72 76 65 64 20 77 6f 72 64 73 2e 0a 68    74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74 67 72 | eserved.words..http://www.postgr | 
| 16c40 | 65 73 71 6c 2e 6f 72 67 2f 64 6f 63 73 2f 37 2e    33 2f 73 74 61 74 69 63 2f 73 71 6c 2d 6b 65 79 | esql.org/docs/7.3/static/sql-key | 
| 16c60 | 77 6f 72 64 73 2d 61 70 70 65 6e 64 69 78 2e 68    74 6d 6c 22 29 0a 0a 28 64 65 66 63 6c 61 73 73 | words-appendix.html")..(defclass | 
| 16c80 | 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c 2d 63 6f    6e 6e 65 63 74 69 6f 6e 20 28 65 6d 61 63 73 71 | .emacsql-psql-connection.(emacsq | 
| 16ca0 | 6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20    28 28 64 62 6e 61 6d 65 20 3a 72 65 61 64 65 72 | l-connection)...((dbname.:reader | 
| 16cc0 | 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c 2d 64 62    6e 61 6d 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 | .emacsql-psql-dbname.:initarg.:d | 
| 16ce0 | 62 6e 61 6d 65 29 0a 20 20 20 28 74 79 70 65 73    20 3a 61 6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c | bname)....(types.:allocation.:cl | 
| 16d00 | 61 73 73 0a 20 20 20 20 20 20 20 20 20 20 3a 72    65 61 64 65 72 20 65 6d 61 63 73 71 6c 2d 74 79 | ass...........:reader.emacsql-ty | 
| 16d20 | 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 3a 69    6e 69 74 66 6f 72 6d 20 27 28 28 69 6e 74 65 67 | pes...........:initform.'((integ | 
| 16d40 | 65 72 20 22 42 49 47 49 4e 54 22 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er."BIGINT").................... | 
| 16d60 | 20 20 20 28 66 6c 6f 61 74 20 22 44 4f 55 42 4c    45 20 50 52 45 43 49 53 49 4f 4e 22 29 0a 20 20 | ...(float."DOUBLE.PRECISION")... | 
| 16d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6f 62 6a 65 63 74 20 22 54 45 58 | ....................(object."TEX | 
| 16da0 | 54 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6e 69 6c 20 22 | T").......................(nil." | 
| 16dc0 | 54 45 58 54 22 29 29 29 29 0a 20 20 22 41 20 63    6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 61 20 50 | TEXT"))))..."A.connection.to.a.P | 
| 16de0 | 6f 73 74 67 72 65 53 51 4c 20 64 61 74 61 62 61    73 65 20 76 69 61 20 70 73 71 6c 2e 22 29 0a 0a | ostgreSQL.database.via.psql.").. | 
| 16e00 | 28 63 6c 2d 64 65 66 75 6e 20 65 6d 61 63 73 71    6c 2d 70 73 71 6c 20 28 64 62 6e 61 6d 65 20 26 | (cl-defun.emacsql-psql.(dbname.& | 
| 16e20 | 6b 65 79 20 75 73 65 72 6e 61 6d 65 20 68 6f 73    74 6e 61 6d 65 20 70 6f 72 74 20 64 65 62 75 67 | key.username.hostname.port.debug | 
| 16e40 | 29 0a 20 20 22 43 6f 6e 6e 65 63 74 20 74 6f 20    61 20 50 6f 73 74 67 72 65 53 51 4c 20 73 65 72 | )..."Connect.to.a.PostgreSQL.ser | 
| 16e60 | 76 65 72 20 75 73 69 6e 67 20 74 68 65 20 70 73    71 6c 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 | ver.using.the.psql.command.line. | 
| 16e80 | 70 72 6f 67 72 61 6d 2e 22 0a 20 20 28 6c 65 74    20 28 28 61 72 67 73 20 28 6c 69 73 74 20 64 62 | program."...(let.((args.(list.db | 
| 16ea0 | 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 77 68 65    6e 20 75 73 65 72 6e 61 6d 65 0a 20 20 20 20 20 | name))).....(when.username...... | 
| 16ec0 | 20 28 70 75 73 68 20 75 73 65 72 6e 61 6d 65 20    61 72 67 73 29 29 0a 20 20 20 20 28 70 75 73 68 | .(push.username.args)).....(push | 
| 16ee0 | 20 22 2d 6e 22 20 61 72 67 73 29 0a 20 20 20 20    28 77 68 65 6e 20 70 6f 72 74 0a 20 20 20 20 20 | ."-n".args).....(when.port...... | 
| 16f00 | 20 28 70 75 73 68 20 22 2d 70 22 20 61 72 67 73    29 0a 20 20 20 20 20 20 28 70 75 73 68 20 70 6f | .(push."-p".args).......(push.po | 
| 16f20 | 72 74 20 61 72 67 73 29 29 0a 20 20 20 20 28 77    68 65 6e 20 68 6f 73 74 6e 61 6d 65 0a 20 20 20 | rt.args)).....(when.hostname.... | 
| 16f40 | 20 20 20 28 70 75 73 68 20 22 2d 68 22 20 61 72    67 73 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 | ...(push."-h".args).......(push. | 
| 16f60 | 68 6f 73 74 6e 61 6d 65 20 61 72 67 73 29 29 0a    20 20 20 20 28 73 65 74 71 20 61 72 67 73 20 28 | hostname.args)).....(setq.args.( | 
| 16f80 | 6e 72 65 76 65 72 73 65 20 61 72 67 73 29 29 0a    20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 | nreverse.args)).....(let*.((buff | 
| 16fa0 | 65 72 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77    2d 62 75 66 66 65 72 20 22 20 2a 65 6d 61 63 73 | er.(generate-new-buffer.".*emacs | 
| 16fc0 | 71 6c 2d 70 73 71 6c 2a 22 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 70 73 71 6c 20 65 6d 61 | ql-psql*"))............(psql.ema | 
| 16fe0 | 63 73 71 6c 2d 70 73 71 6c 2d 65 78 65 63 75 74    61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 | csql-psql-executable)........... | 
| 17000 | 20 28 63 6f 6d 6d 61 6e 64 20 28 6d 61 70 63 6f    6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f | .(command.(mapconcat.#'shell-quo | 
| 17020 | 74 65 2d 61 72 67 75 6d 65 6e 74 20 28 63 6f 6e    73 20 70 73 71 6c 20 61 72 67 73 29 20 22 20 22 | te-argument.(cons.psql.args)."." | 
| 17040 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70    72 6f 63 65 73 73 20 28 73 74 61 72 74 2d 70 72 | ))............(process.(start-pr | 
| 17060 | 6f 63 65 73 73 2d 73 68 65 6c 6c 2d 63 6f 6d 6d    61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ocess-shell-command............. | 
| 17080 | 20 20 20 20 20 20 20 20 20 22 65 6d 61 63 73 71    6c 2d 70 73 71 6c 22 20 62 75 66 66 65 72 20 28 | ........."emacsql-psql".buffer.( | 
| 170a0 | 63 6f 6e 63 61 74 20 22 73 74 74 79 20 72 61 77    20 26 26 20 22 20 63 6f 6d 6d 61 6e 64 29 29 29 | concat."stty.raw.&&.".command))) | 
| 170c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e    6e 65 63 74 69 6f 6e 20 28 6d 61 6b 65 2d 69 6e | ............(connection.(make-in | 
| 170e0 | 73 74 61 6e 63 65 20 27 65 6d 61 63 73 71 6c 2d    70 73 71 6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e 0a | stance.'emacsql-psql-connection. | 
| 17100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 17120 | 20 20 20 20 20 20 3a 68 61 6e 64 6c 65 20 70 72    6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 | ......:handle.process........... | 
| 17140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 64 62 6e | ............................:dbn | 
| 17160 | 61 6d 65 20 64 62 6e 61 6d 65 29 29 29 0a 20 20    20 20 20 20 28 73 65 74 66 20 28 70 72 6f 63 65 | ame.dbname))).......(setf.(proce | 
| 17180 | 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63    65 73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ss-sentinel.process)............ | 
| 171a0 | 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63 20 5f    29 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 | .(lambda.(proc._).(kill-buffer.( | 
| 171c0 | 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70    72 6f 63 29 29 29 29 0a 20 20 20 20 20 20 28 73 | process-buffer.proc)))).......(s | 
| 171e0 | 65 74 2d 70 72 6f 63 65 73 73 2d 71 75 65 72 79    2d 6f 6e 2d 65 78 69 74 2d 66 6c 61 67 20 28 6f | et-process-query-on-exit-flag.(o | 
| 17200 | 72 65 66 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 68    61 6e 64 6c 65 29 20 6e 69 6c 29 0a 20 20 20 20 | ref.connection.handle).nil)..... | 
| 17220 | 20 20 28 77 68 65 6e 20 64 65 62 75 67 20 28 65    6d 61 63 73 71 6c 2d 65 6e 61 62 6c 65 2d 64 65 | ..(when.debug.(emacsql-enable-de | 
| 17240 | 62 75 67 67 69 6e 67 20 63 6f 6e 6e 65 63 74 69    6f 6e 29 29 0a 20 20 20 20 20 20 28 6d 61 70 63 | bugging.connection)).......(mapc | 
| 17260 | 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c    79 20 23 27 65 6d 61 63 73 71 6c 2d 73 65 6e 64 | .(apply-partially.#'emacsql-send | 
| 17280 | 2d 6d 65 73 73 61 67 65 20 63 6f 6e 6e 65 63 74    69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -message.connection)............ | 
| 172a0 | 20 27 28 22 5c 5c 70 73 65 74 20 70 61 67 65 72    20 6f 66 66 22 0a 20 20 20 20 20 20 20 20 20 20 | .'("\\pset.pager.off"........... | 
| 172c0 | 20 20 20 20 22 5c 5c 70 73 65 74 20 6e 75 6c 6c    20 6e 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 | ...."\\pset.null.nil"........... | 
| 172e0 | 20 20 20 20 22 5c 5c 61 22 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 22 5c 5c 74 22 0a 20 20 | ...."\\a"..............."\\t"... | 
| 17300 | 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 66    20 27 20 27 22 0a 20 20 20 20 20 20 20 20 20 20 | ............"\\f.'.'"........... | 
| 17320 | 20 20 20 20 22 53 45 54 20 63 6c 69 65 6e 74 5f    6d 69 6e 5f 6d 65 73 73 61 67 65 73 20 54 4f 20 | ...."SET.client_min_messages.TO. | 
| 17340 | 45 52 52 4f 52 3b 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 22 5c 5c 73 65 74 20 50 52 4f | ERROR;"..............."\\set.PRO | 
| 17360 | 4d 50 54 31 20 5d 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 22 45 4d 41 43 53 51 4c 3b 22 | MPT1.]"..............."EMACSQL;" | 
| 17380 | 29 29 20 3b 20 65 72 72 6f 72 20 6d 65 73 73 61    67 65 20 66 6c 75 73 68 0a 20 20 20 20 20 20 28 | )).;.error.message.flush.......( | 
| 173a0 | 65 6d 61 63 73 71 6c 2d 77 61 69 74 20 63 6f 6e    6e 65 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 | emacsql-wait.connection).......( | 
| 173c0 | 65 6d 61 63 73 71 6c 20 63 6f 6e 6e 65 63 74 69    6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | emacsql.connection.............. | 
| 173e0 | 20 20 5b 3a 73 65 74 20 28 3d 20 64 65 66 61 75    6c 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69 | ..[:set.(=.default-transaction-i | 
| 17400 | 73 6f 6c 61 74 69 6f 6e 20 27 53 45 52 49 41 4c    49 5a 41 42 4c 45 29 5d 29 0a 20 20 20 20 20 20 | solation.'SERIALIZABLE)])....... | 
| 17420 | 28 65 6d 61 63 73 71 6c 2d 72 65 67 69 73 74 65    72 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 29 29 | (emacsql-register.connection)))) | 
| 17440 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20    65 6d 61 63 73 71 6c 2d 63 6c 6f 73 65 20 28 28 | ..(cl-defmethod.emacsql-close.(( | 
| 17460 | 63 6f 6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73    71 6c 2d 70 73 71 6c 2d 63 6f 6e 6e 65 63 74 69 | connection.emacsql-psql-connecti | 
| 17480 | 6f 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 70 72    6f 63 65 73 73 20 28 6f 72 65 66 20 63 6f 6e 6e | on))...(let.((process.(oref.conn | 
| 174a0 | 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65 29 29 29    0a 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 63 | ection.handle))).....(when.(proc | 
| 174c0 | 65 73 73 2d 6c 69 76 65 2d 70 20 70 72 6f 63 65    73 73 29 0a 20 20 20 20 20 20 28 70 72 6f 63 65 | ess-live-p.process).......(proce | 
| 174e0 | 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 70    72 6f 63 65 73 73 20 22 5c 5c 71 5c 6e 22 29 29 | ss-send-string.process."\\q\n")) | 
| 17500 | 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f    64 20 65 6d 61 63 73 71 6c 2d 73 65 6e 64 2d 6d | ))..(cl-defmethod.emacsql-send-m | 
| 17520 | 65 73 73 61 67 65 20 28 28 63 6f 6e 6e 65 63 74    69 6f 6e 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c | essage.((connection.emacsql-psql | 
| 17540 | 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 6d 65 73    73 61 67 65 29 0a 20 20 28 6c 65 74 20 28 28 70 | -connection).message)...(let.((p | 
| 17560 | 72 6f 63 65 73 73 20 28 6f 72 65 66 20 63 6f 6e    6e 65 63 74 69 6f 6e 20 68 61 6e 64 6c 65 29 29 | rocess.(oref.connection.handle)) | 
| 17580 | 29 0a 20 20 20 20 28 70 72 6f 63 65 73 73 2d 73    65 6e 64 2d 73 74 72 69 6e 67 20 70 72 6f 63 65 | ).....(process-send-string.proce | 
| 175a0 | 73 73 20 6d 65 73 73 61 67 65 29 0a 20 20 20 20    28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 | ss.message).....(process-send-st | 
| 175c0 | 72 69 6e 67 20 70 72 6f 63 65 73 73 20 22 5c 6e    22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | ring.process."\n")))..(cl-defmet | 
| 175e0 | 68 6f 64 20 65 6d 61 63 73 71 6c 2d 77 61 69 74    69 6e 67 2d 70 20 28 28 63 6f 6e 6e 65 63 74 69 | hod.emacsql-waiting-p.((connecti | 
| 17600 | 6f 6e 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c 2d    63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a 20 20 28 | on.emacsql-psql-connection))...( | 
| 17620 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66    66 65 72 20 28 65 6d 61 63 73 71 6c 2d 62 75 66 | with-current-buffer.(emacsql-buf | 
| 17640 | 66 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a    20 20 20 20 28 63 6f 6e 64 20 28 28 3d 20 28 62 | fer.connection).....(cond.((=.(b | 
| 17660 | 75 66 66 65 72 2d 73 69 7a 65 29 20 31 29 20 28    73 74 72 69 6e 67 3d 20 22 5d 22 20 28 62 75 66 | uffer-size).1).(string=."]".(buf | 
| 17680 | 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 28 28 3e 20 28 62 75 66 | fer-string)))...........((>.(buf | 
| 176a0 | 66 65 72 2d 73 69 7a 65 29 20 31 29 20 28 73 74    72 69 6e 67 3d 20 22 5c 6e 5d 22 20 28 62 75 66 | fer-size).1).(string=."\n]".(buf | 
| 176c0 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer-substring................... | 
| 176e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 | .............................(-. | 
| 17700 | 28 70 6f 69 6e 74 2d 6d 61 78 29 20 32 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (point-max).2).................. | 
| 17720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | ..............................(p | 
| 17740 | 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 29 0a    0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 | oint-max)))))))..(cl-defmethod.e | 
| 17760 | 6d 61 63 73 71 6c 2d 63 68 65 63 6b 2d 65 72 72    6f 72 20 28 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 | macsql-check-error.((connection. | 
| 17780 | 65 6d 61 63 73 71 6c 2d 70 73 71 6c 2d 63 6f 6e    6e 65 63 74 69 6f 6e 29 29 0a 20 20 28 77 69 74 | emacsql-psql-connection))...(wit | 
| 177a0 | 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72    20 28 65 6d 61 63 73 71 6c 2d 62 75 66 66 65 72 | h-current-buffer.(emacsql-buffer | 
| 177c0 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a 20 20 20    20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c | .connection).....(let.((case-fol | 
| 177e0 | 64 2d 73 65 61 72 63 68 20 74 29 29 0a 20 20 20    20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 | d-search.t)).......(goto-char.(p | 
| 17800 | 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20    20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d | oint-min)).......(when.(looking- | 
| 17820 | 61 74 20 22 65 72 72 6f 72 3a 22 29 0a 20 20 20    20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 65 67 | at."error:").........(let*.((beg | 
| 17840 | 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67    2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 | .(line-beginning-position))..... | 
| 17860 | 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20    28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 | ...........(end.(line-end-positi | 
| 17880 | 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 73 69 67 6e 61 6c 20 27 65 6d 61 63 73 71 6c | on)))...........(signal.'emacsql | 
| 178a0 | 2d 65 72 72 6f 72 20 28 6c 69 73 74 20 28 62 75    66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 | -error.(list.(buffer-substring.b | 
| 178c0 | 65 67 20 65 6e 64 29 29 29 29 29 29 29 29 0a 0a    28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d | eg.end))))))))..(cl-defmethod.em | 
| 178e0 | 61 63 73 71 6c 2d 70 61 72 73 65 20 28 28 63 6f    6e 6e 65 63 74 69 6f 6e 20 65 6d 61 63 73 71 6c | acsql-parse.((connection.emacsql | 
| 17900 | 2d 70 73 71 6c 2d 63 6f 6e 6e 65 63 74 69 6f 6e    29 29 0a 20 20 28 65 6d 61 63 73 71 6c 2d 63 68 | -psql-connection))...(emacsql-ch | 
| 17920 | 65 63 6b 2d 65 72 72 6f 72 20 63 6f 6e 6e 65 63    74 69 6f 6e 29 0a 20 20 28 77 69 74 68 2d 63 75 | eck-error.connection)...(with-cu | 
| 17940 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 65 6d    61 63 73 71 6c 2d 62 75 66 66 65 72 20 63 6f 6e | rrent-buffer.(emacsql-buffer.con | 
| 17960 | 6e 65 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65    74 20 28 28 73 74 61 6e 64 61 72 64 2d 69 6e 70 | nection).....(let.((standard-inp | 
| 17980 | 75 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66    65 72 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 | ut.(current-buffer))).......(got | 
| 179a0 | 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69    6e 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f | o-char.(point-min)).......(cl-lo | 
| 179c0 | 6f 70 20 75 6e 74 69 6c 20 28 6c 6f 6f 6b 69 6e    67 2d 61 74 20 22 5d 22 29 0a 20 20 20 20 20 20 | op.until.(looking-at."]")....... | 
| 179e0 | 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74    20 28 72 65 61 64 29 20 69 6e 74 6f 20 72 6f 77 | .........collect.(read).into.row | 
| 17a00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 | ................when.(looking-at | 
| 17a20 | 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 72 6f | ."\n")................collect.ro | 
| 17a40 | 77 20 69 6e 74 6f 20 72 6f 77 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 64 | w.into.rows................and.d | 
| 17a60 | 6f 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72    64 2d 63 68 61 72 20 31 29 20 28 73 65 74 71 20 | o.(progn.(forward-char.1).(setq. | 
| 17a80 | 72 6f 77 20 28 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 | row.()))................finally. | 
| 17aa0 | 28 63 6c 2d 72 65 74 75 72 6e 20 72 6f 77 73 29    29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 | (cl-return.rows)))))..(provide.' | 
| 17ac0 | 65 6d 61 63 73 71 6c 2d 70 73 71 6c 29 0a 0a 3b    3b 3b 20 65 6d 61 63 73 71 6c 2d 70 73 71 6c 2e | emacsql-psql)..;;;.emacsql-psql. | 
| 17ae0 | 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | el.ends.here.................... | 
| 17b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17c00 | 65 6d 61 63 73 71 6c 2d 34 2e 33 2e 31 2f 2e 64    69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 00 00 00 00 | emacsql-4.3.1/.dir-locals.el.... | 
| 17c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 | 
| 17c80 | 30 30 30 30 32 32 37 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 32 33 35 00 20 30 00 00 00 | 0000227.00000000000.014235..0... | 
| 17ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17d00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... | 
| 17d20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... | 
| 17d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17e00 | 28 28 6e 69 6c 0a 20 20 28 69 6e 64 65 6e 74 2d    74 61 62 73 2d 6d 6f 64 65 20 2e 20 6e 69 6c 29 | ((nil...(indent-tabs-mode...nil) | 
| 17e20 | 29 0a 20 28 6d 61 6b 65 66 69 6c 65 2d 6d 6f 64    65 0a 20 20 28 69 6e 64 65 6e 74 2d 74 61 62 73 | )..(makefile-mode...(indent-tabs | 
| 17e40 | 2d 6d 6f 64 65 20 2e 20 74 29 29 0a 20 28 67 69    74 2d 63 6f 6d 6d 69 74 2d 6d 6f 64 65 0a 20 20 | -mode...t))..(git-commit-mode... | 
| 17e60 | 28 67 69 74 2d 63 6f 6d 6d 69 74 2d 6d 61 6a 6f    72 2d 6d 6f 64 65 20 2e 20 67 69 74 2d 63 6f 6d | (git-commit-major-mode...git-com | 
| 17e80 | 6d 69 74 2d 65 6c 69 73 70 2d 74 65 78 74 2d 6d    6f 64 65 29 29 29 0a 00 00 00 00 00 00 00 00 00 | mit-elisp-text-mode))).......... | 
| 17ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 17fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 180a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 180c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 180e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 181a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 181c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 181e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 182a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 182c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 182e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 183a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 183c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 183e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 184a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 184c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 184e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 185a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 185c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 185e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 186a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 186c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 186e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 187a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 187c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 187e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 188a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 188c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 188e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 189a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 189c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 189e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 18fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |