| 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  | ................................ |