| ofs | hex dump | ascii | 
|---|
| 0000 | 63 6c 6f 73 71 6c 2d 32 30 32 34 30 34 30 35 2e    31 39 34 38 2f 00 00 00 00 00 00 00 00 00 00 00 | closql-20240405.1948/........... | 
| 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 32 33 31 34 00 20 35 00 00 00 | 0000000.00000000000.012314..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 | 63 6c 6f 73 71 6c 2d 32 30 32 34 30 34 30 35 2e    31 39 34 38 2f 63 6c 6f 73 71 6c 2d 70 6b 67 2e | closql-20240405.1948/closql-pkg. | 
| 0220 | 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 00 00 00 00 | el.............................. | 
| 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 30 30 37 37 31 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 37 31 37 00 20 30 00 00 00 | 0000771.00000000000.014717..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 | 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 63 6c 6f 73 71 6c 22 20 22 32 30 32 34 30 34 | (define-package."closql"."202404 | 
| 0420 | 30 35 2e 31 39 34 38 22 20 22 53 74 6f 72 65 20    45 49 45 49 4f 20 6f 62 6a 65 63 74 73 20 75 73 | 05.1948"."Store.EIEIO.objects.us | 
| 0440 | 69 6e 67 20 45 6d 61 63 53 51 4c 22 0a 20 20 27    28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 0a | ing.EmacSQL"...'((emacs."25.1"). | 
| 0460 | 20 20 20 20 28 63 6f 6d 70 61 74 20 22 32 39 2e    31 2e 34 2e 35 22 29 0a 20 20 20 20 28 65 6d 61 | ....(compat."29.1.4.5").....(ema | 
| 0480 | 63 73 71 6c 20 22 32 30 32 34 30 31 32 34 22 29    29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 30 34 32 | csql."20240124"))...:commit."042 | 
| 04a0 | 61 36 62 33 36 35 37 63 65 61 62 38 66 63 39 35    32 62 39 64 32 62 38 31 39 30 63 38 31 33 30 37 | a6b3657ceab8fc952b9d2b8190c81307 | 
| 04c0 | 63 32 30 63 62 22 20 3a 61 75 74 68 6f 72 73 0a    20 20 27 28 28 22 4a 6f 6e 61 73 20 42 65 72 6e | c20cb".:authors...'(("Jonas.Bern | 
| 04e0 | 6f 75 6c 6c 69 22 20 2e 20 22 6a 6f 6e 61 73 40    62 65 72 6e 6f 75 6c 2e 6c 69 22 29 29 0a 20 20 | oulli"..."jonas@bernoul.li"))... | 
| 0500 | 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27    28 28 22 4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c | :maintainers...'(("Jonas.Bernoul | 
| 0520 | 6c 69 22 20 2e 20 22 6a 6f 6e 61 73 40 62 65 72    6e 6f 75 6c 2e 6c 69 22 29 29 0a 20 20 3a 6d 61 | li"..."jonas@bernoul.li"))...:ma | 
| 0540 | 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 4a 6f    6e 61 73 20 42 65 72 6e 6f 75 6c 6c 69 22 20 2e | intainer...'("Jonas.Bernoulli".. | 
| 0560 | 20 22 6a 6f 6e 61 73 40 62 65 72 6e 6f 75 6c 2e    6c 69 22 29 0a 20 20 3a 6b 65 79 77 6f 72 64 73 | ."jonas@bernoul.li")...:keywords | 
| 0580 | 0a 20 20 27 28 22 65 78 74 65 6e 73 69 6f 6e 73    22 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 | ...'("extensions")...:url."https | 
| 05a0 | 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 65 6d    61 63 73 63 6f 6c 6c 65 63 74 69 76 65 2f 63 6c | ://github.com/emacscollective/cl | 
| 05c0 | 6f 73 71 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20    56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e 6f | osql").;;.Local.Variables:.;;.no | 
| 05e0 | 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74    0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 | -byte-compile:.t.;;.End:........ | 
| 0600 | 63 6c 6f 73 71 6c 2d 32 30 32 34 30 34 30 35 2e    31 39 34 38 2f 63 6c 6f 73 71 6c 2e 65 6c 00 00 | closql-20240405.1948/closql.el.. | 
| 0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0660 | 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 | 
| 0680 | 30 30 36 35 34 34 31 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 31 34 35 00 20 30 00 00 00 | 0065441.00000000000.014145..0... | 
| 06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0700 | 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................... | 
| 0720 | 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................... | 
| 0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 0800 | 3b 3b 3b 20 63 6c 6f 73 71 6c 2e 65 6c 20 2d 2d    2d 20 53 74 6f 72 65 20 45 49 45 49 4f 20 6f 62 | ;;;.closql.el.---.Store.EIEIO.ob | 
| 0820 | 6a 65 63 74 73 20 75 73 69 6e 67 20 45 6d 61 63    53 51 4c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | jects.using.EmacSQL..-*-.lexical | 
| 0840 | 2d 62 69 6e 64 69 6e 67 3a 74 20 2d 2a 2d 0a 0a    3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 | -binding:t.-*-..;;.Copyright.(C) | 
| 0860 | 20 32 30 31 36 2d 32 30 32 34 20 4a 6f 6e 61 73    20 42 65 72 6e 6f 75 6c 6c 69 0a 0a 3b 3b 20 41 | .2016-2024.Jonas.Bernoulli..;;.A | 
| 0880 | 75 74 68 6f 72 3a 20 4a 6f 6e 61 73 20 42 65 72    6e 6f 75 6c 6c 69 20 3c 6a 6f 6e 61 73 40 62 65 | uthor:.Jonas.Bernoulli.<jonas@be | 
| 08a0 | 72 6e 6f 75 6c 2e 6c 69 3e 0a 3b 3b 20 48 6f 6d    65 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67 | rnoul.li>.;;.Homepage:.https://g | 
| 08c0 | 69 74 68 75 62 2e 63 6f 6d 2f 65 6d 61 63 73 63    6f 6c 6c 65 63 74 69 76 65 2f 63 6c 6f 73 71 6c | ithub.com/emacscollective/closql | 
| 08e0 | 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 78    74 65 6e 73 69 6f 6e 73 0a 0a 3b 3b 20 50 61 63 | .;;.Keywords:.extensions..;;.Pac | 
| 0900 | 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28    0a 3b 3b 20 20 20 20 20 28 65 6d 61 63 73 20 22 | kage-Requires:.(.;;.....(emacs." | 
| 0920 | 32 35 2e 31 22 29 0a 3b 3b 20 20 20 20 20 28 63    6f 6d 70 61 74 20 22 32 39 2e 31 2e 34 2e 35 22 | 25.1").;;.....(compat."29.1.4.5" | 
| 0940 | 29 0a 3b 3b 20 20 20 20 20 28 65 6d 61 63 73 71    6c 20 22 32 30 32 34 30 31 32 34 22 29 29 0a 0a | ).;;.....(emacsql."20240124")).. | 
| 0960 | 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 47 50 4c 2d | ;;.SPDX-License-Identifier:.GPL- | 
| 0980 | 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b 3b    20 54 68 69 73 20 66 69 6c 65 20 69 73 20 66 72 | 3.0-or-later..;;.This.file.is.fr | 
| 09a0 | 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75    20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 | ee.software:.you.can.redistribut | 
| 09c0 | 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69    66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 | e.it.and/or.modify.;;.it.under.t | 
| 09e0 | 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20    47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c | he.terms.of.the.GNU.General.Publ | 
| 0a00 | 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75    62 6c 69 73 68 65 64 0a 3b 3b 20 62 79 20 74 68 | ic.License.as.published.;;.by.th | 
| 0a20 | 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20    46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 | e.Free.Software.Foundation,.eith | 
| 0a40 | 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20    74 68 65 20 4c 69 63 65 6e 73 65 2c 0a 3b 3b 20 | er.version.3.of.the.License,.;;. | 
| 0a60 | 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69    6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 | or.(at.your.option).any.later.ve | 
| 0a80 | 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69    73 20 66 69 6c 65 20 69 73 20 64 69 73 74 72 69 | rsion..;;.;;.This.file.is.distri | 
| 0aa0 | 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70    65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 | buted.in.the.hope.that.it.will.b | 
| 0ac0 | 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74    20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 | e.useful,.;;.but.WITHOUT.ANY.WAR | 
| 0ae0 | 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65    76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 | RANTY;.without.even.the.implied. | 
| 0b00 | 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d    45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f | warranty.of.;;.MERCHANTABILITY.o | 
| 0b20 | 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20    50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f | r.FITNESS.FOR.A.PARTICULAR.PURPO | 
| 0b40 | 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20    47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c | SE...See.the.;;.GNU.General.Publ | 
| 0b60 | 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d    6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a | ic.License.for.more.details..;;. | 
| 0b80 | 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61    76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f | ;;.You.should.have.received.a.co | 
| 0ba0 | 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65    6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 | py.of.the.GNU.General.Public.Lic | 
| 0bc0 | 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69    74 68 20 74 68 69 73 20 66 69 6c 65 2e 20 20 49 | ense.;;.along.with.this.file...I | 
| 0be0 | 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70    73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f | f.not,.see.<https://www.gnu.org/ | 
| 0c00 | 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b    20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b | licenses/>...;;;.Commentary:..;; | 
| 0c20 | 20 53 74 6f 72 65 20 75 6e 69 66 6f 72 6d 20 45    49 45 49 4f 20 6f 62 6a 65 63 74 73 20 69 6e 20 | .Store.uniform.EIEIO.objects.in. | 
| 0c40 | 61 6e 20 45 6d 61 63 53 51 4c 20 64 61 74 61 62    61 73 65 2e 20 20 53 51 4c 69 74 65 20 69 73 20 | an.EmacSQL.database...SQLite.is. | 
| 0c60 | 75 73 65 64 0a 3b 3b 20 61 73 20 62 61 63 6b 65    6e 64 2e 20 20 54 68 69 73 20 6c 69 62 72 61 72 | used.;;.as.backend...This.librar | 
| 0c80 | 79 20 69 6d 70 6f 73 65 73 20 73 6f 6d 65 20 72    65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e 20 77 | y.imposes.some.restrictions.on.w | 
| 0ca0 | 68 61 74 20 6b 69 6e 64 20 6f 66 0a 3b 3b 20 6f    62 6a 65 63 74 73 20 63 61 6e 20 62 65 20 73 74 | hat.kind.of.;;.objects.can.be.st | 
| 0cc0 | 6f 72 65 64 3b 20 69 74 20 69 73 6e 27 74 20 69    6e 74 65 6e 64 65 64 20 74 6f 20 73 74 6f 72 65 | ored;.it.isn't.intended.to.store | 
| 0ce0 | 20 61 72 62 69 74 72 61 72 79 20 6f 62 6a 65 63    74 73 2e 0a 3b 3b 20 41 6c 6c 20 6f 62 6a 65 63 | .arbitrary.objects..;;.All.objec | 
| 0d00 | 74 73 20 68 61 76 65 20 74 6f 20 73 68 61 72 65    20 61 20 63 6f 6d 6d 6f 6e 20 73 75 70 65 72 63 | ts.have.to.share.a.common.superc | 
| 0d20 | 6c 61 73 73 20 61 6e 64 20 73 75 62 63 6c 61 73    73 65 73 20 63 61 6e 6e 6f 74 0a 3b 3b 20 61 64 | lass.and.subclasses.cannot.;;.ad | 
| 0d40 | 64 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c    20 69 6e 73 74 61 6e 63 65 20 73 6c 6f 74 73 2e | d.any.additional.instance.slots. | 
| 0d60 | 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65    71 75 69 72 65 20 27 63 6f 6d 70 61 74 29 0a 28 | ..;;;.Code:..(require.'compat).( | 
| 0d80 | 72 65 71 75 69 72 65 20 27 65 69 65 69 6f 29 0a    28 72 65 71 75 69 72 65 20 27 65 69 65 69 6f 2d | require.'eieio).(require.'eieio- | 
| 0da0 | 62 61 73 65 29 0a 28 72 65 71 75 69 72 65 20 27    65 6d 61 63 73 71 6c 29 0a 28 72 65 71 75 69 72 | base).(require.'emacsql).(requir | 
| 0dc0 | 65 20 27 65 6d 61 63 73 71 6c 2d 73 71 6c 69 74    65 2d 63 6f 6d 6d 6f 6e 29 0a 0a 28 65 76 61 6c | e.'emacsql-sqlite-common)..(eval | 
| 0de0 | 2d 77 68 65 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 | -when-compile.(require.'subr-x)) | 
| 0e00 | 0a 0a 28 65 76 61 6c 2d 61 6e 64 2d 63 6f 6d 70    69 6c 65 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 | ..(eval-and-compile...(unless.(b | 
| 0e20 | 6f 75 6e 64 70 20 27 65 69 65 69 6f 2d 2d 75 6e    62 6f 75 6e 64 29 20 3b 20 4e 65 77 20 6e 61 6d | oundp.'eieio--unbound).;.New.nam | 
| 0e40 | 65 20 73 69 6e 63 65 20 45 6d 61 63 73 20 32 38    2e 31 2e 0a 20 20 20 20 28 64 65 66 76 61 72 61 | e.since.Emacs.28.1......(defvara | 
| 0e60 | 6c 69 61 73 20 27 65 69 65 69 6f 2d 2d 75 6e 62    6f 75 6e 64 20 27 65 69 65 69 6f 2d 75 6e 62 6f | lias.'eieio--unbound.'eieio-unbo | 
| 0e80 | 75 6e 64 20 6e 69 6c 29 29 29 0a 0a 28 65 76 61    6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 | und.nil)))..(eval-when-compile.. | 
| 0ea0 | 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 27 63 6f    6e 6e 65 63 74 69 6f 6e 20 65 69 65 69 6f 2d 2d | .(cl-pushnew.'connection.eieio-- | 
| 0ec0 | 6b 6e 6f 77 6e 2d 73 6c 6f 74 2d 6e 61 6d 65 73    29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 63 6c | known-slot-names))..(defmacro.cl | 
| 0ee0 | 6f 73 71 6c 2d 77 69 74 68 2d 74 72 61 6e 73 61    63 74 69 6f 6e 20 28 64 62 20 26 72 65 73 74 20 | osql-with-transaction.(db.&rest. | 
| 0f00 | 62 6f 64 79 29 0a 20 20 28 64 65 63 6c 61 72 65    20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 | body)...(declare.(indent.1))...` | 
| 0f20 | 28 65 6d 61 63 73 71 6c 2d 77 69 74 68 2d 74 72    61 6e 73 61 63 74 69 6f 6e 20 28 6f 72 65 66 20 | (emacsql-with-transaction.(oref. | 
| 0f40 | 2c 64 62 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 0a    20 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 3b | ,db.connection)......,@body))..; | 
| 0f60 | 3b 3b 20 4f 62 6a 65 63 74 73 0a 0a 28 64 65 66    63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d 6f 62 6a | ;;.Objects..(defclass.closql-obj | 
| 0f80 | 65 63 74 20 28 29 0a 20 20 28 28 63 6c 6f 73 71    6c 2d 63 6c 61 73 73 2d 70 72 65 66 69 78 20 20 | ect.()...((closql-class-prefix.. | 
| 0fa0 | 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20 3a 61    6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c 61 73 73 | :initform.nil.:allocation.:class | 
| 0fc0 | 29 0a 20 20 20 28 63 6c 6f 73 71 6c 2d 63 6c 61    73 73 2d 73 75 66 66 69 78 20 20 3a 69 6e 69 74 | )....(closql-class-suffix..:init | 
| 0fe0 | 66 6f 72 6d 20 6e 69 6c 20 3a 61 6c 6c 6f 63 61    74 69 6f 6e 20 3a 63 6c 61 73 73 29 0a 20 20 20 | form.nil.:allocation.:class).... | 
| 1000 | 28 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 20 20 20    20 20 20 20 20 20 3a 69 6e 69 74 66 6f 72 6d 20 | (closql-table.........:initform. | 
| 1020 | 6e 69 6c 20 3a 61 6c 6c 6f 63 61 74 69 6f 6e 20    3a 63 6c 61 73 73 29 0a 20 20 20 28 63 6c 6f 73 | nil.:allocation.:class)....(clos | 
| 1040 | 71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65 79 20 20    20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20 3a | ql-primary-key...:initform.nil.: | 
| 1060 | 61 6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c 61 73    73 29 0a 20 20 20 28 63 6c 6f 73 71 6c 2d 66 6f | allocation.:class)....(closql-fo | 
| 1080 | 72 65 69 67 6e 2d 6b 65 79 20 20 20 3a 69 6e 69    74 66 6f 72 6d 20 6e 69 6c 20 3a 61 6c 6c 6f 63 | reign-key...:initform.nil.:alloc | 
| 10a0 | 61 74 69 6f 6e 20 3a 63 6c 61 73 73 29 0a 20 20    20 28 63 6c 6f 73 71 6c 2d 6f 72 64 65 72 2d 62 | ation.:class)....(closql-order-b | 
| 10c0 | 79 20 20 20 20 20 20 3a 69 6e 69 74 66 6f 72 6d    20 6e 69 6c 20 3a 61 6c 6c 6f 63 61 74 69 6f 6e | y......:initform.nil.:allocation | 
| 10e0 | 20 3a 63 6c 61 73 73 29 0a 20 20 20 28 63 6c 6f    73 71 6c 2d 64 61 74 61 62 61 73 65 20 20 20 20 | .:class)....(closql-database.... | 
| 1100 | 20 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20    3a 69 6e 69 74 61 72 67 20 3a 63 6c 6f 73 71 6c | ..:initform.nil.:initarg.:closql | 
| 1120 | 2d 64 61 74 61 62 61 73 65 29 29 0a 20 20 3a 61    62 73 74 72 61 63 74 20 74 29 0a 0a 28 64 65 66 | -database))...:abstract.t)..(def | 
| 1140 | 75 6e 20 63 6c 6f 73 71 6c 2d 2d 63 6c 6f 73 71    6c 2d 6f 62 6a 65 63 74 2d 70 20 28 6f 62 6a 29 | un.closql--closql-object-p.(obj) | 
| 1160 | 0a 20 20 3b 3b 20 50 72 65 76 65 6e 74 20 61 20    72 65 63 75 72 73 69 76 65 20 6c 6f 61 64 20 77 | ...;;.Prevent.a.recursive.load.w | 
| 1180 | 68 65 6e 20 74 68 65 20 63 6c 61 73 73 20 6f 62    6a 65 63 74 20 69 73 20 61 75 74 6f 6c 6f 61 64 | hen.the.class.object.is.autoload | 
| 11a0 | 65 64 2e 0a 20 20 3b 3b 20 53 65 65 20 63 31 61    39 62 38 31 36 65 63 2e 20 20 44 6f 6e 27 74 20 | ed....;;.See.c1a9b816ec...Don't. | 
| 11c0 | 23 27 71 75 6f 74 65 3b 20 64 6f 65 73 6e 27 74    20 65 78 69 73 74 20 69 6e 20 6f 6c 64 65 72 20 | #'quote;.doesn't.exist.in.older. | 
| 11e0 | 72 65 6c 65 61 73 65 73 2e 0a 20 20 28 63 6c 2d    6c 65 74 66 20 28 28 28 73 79 6d 62 6f 6c 2d 66 | releases....(cl-letf.(((symbol-f | 
| 1200 | 75 6e 63 74 69 6f 6e 20 27 65 69 65 69 6f 2d 2d    66 75 6c 6c 2d 63 6c 61 73 73 2d 6f 62 6a 65 63 | unction.'eieio--full-class-objec | 
| 1220 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    23 27 65 69 65 69 6f 2d 2d 63 6c 61 73 73 2d 6f | t)..............#'eieio--class-o | 
| 1240 | 62 6a 65 63 74 29 29 0a 20 20 20 20 28 63 6c 6f    73 71 6c 2d 6f 62 6a 65 63 74 2d 2d 65 69 65 69 | bject)).....(closql-object--eiei | 
| 1260 | 6f 2d 63 68 69 6c 64 70 20 6f 62 6a 29 29 29 0a    0a 3b 3b 3b 3b 20 4f 72 65 66 0a 0a 28 64 65 66 | o-childp.obj)))..;;;;.Oref..(def | 
| 1280 | 75 6e 20 65 69 65 69 6f 2d 6f 72 65 66 2d 2d 63    6c 6f 73 71 6c 2d 6f 72 65 66 20 28 66 6e 20 6f | un.eieio-oref--closql-oref.(fn.o | 
| 12a0 | 62 6a 20 73 6c 6f 74 29 0a 20 20 28 69 66 20 28    63 6c 6f 73 71 6c 2d 2d 63 6c 6f 73 71 6c 2d 6f | bj.slot)...(if.(closql--closql-o | 
| 12c0 | 62 6a 65 63 74 2d 70 20 6f 62 6a 29 0a 20 20 20    20 20 20 28 63 6c 6f 73 71 6c 2d 6f 72 65 66 20 | bject-p.obj).......(closql-oref. | 
| 12e0 | 6f 62 6a 20 73 6c 6f 74 29 0a 20 20 20 20 28 66    75 6e 63 61 6c 6c 20 66 6e 20 6f 62 6a 20 73 6c | obj.slot).....(funcall.fn.obj.sl | 
| 1300 | 6f 74 29 29 29 0a 0a 28 61 64 76 69 63 65 2d 61    64 64 20 27 65 69 65 69 6f 2d 6f 72 65 66 20 3a | ot)))..(advice-add.'eieio-oref.: | 
| 1320 | 61 72 6f 75 6e 64 20 23 27 65 69 65 69 6f 2d 6f    72 65 66 2d 2d 63 6c 6f 73 71 6c 2d 6f 72 65 66 | around.#'eieio-oref--closql-oref | 
| 1340 | 29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c    2d 2d 6f 72 65 66 20 28 6f 62 6a 20 73 6c 6f 74 | )..(defun.closql--oref.(obj.slot | 
| 1360 | 29 0a 20 20 28 61 72 65 66 20 6f 62 6a 20 28 65    69 65 69 6f 2d 2d 73 6c 6f 74 2d 6e 61 6d 65 2d | )...(aref.obj.(eieio--slot-name- | 
| 1380 | 69 6e 64 65 78 20 28 65 69 65 69 6f 2d 2d 6f 62    6a 65 63 74 2d 63 6c 61 73 73 20 6f 62 6a 29 20 | index.(eieio--object-class.obj). | 
| 13a0 | 73 6c 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20    63 6c 6f 73 71 6c 2d 6f 72 65 66 20 28 6f 62 6a | slot)))..(defun.closql-oref.(obj | 
| 13c0 | 20 73 6c 6f 74 29 0a 20 20 28 63 6c 2d 63 68 65    63 6b 2d 74 79 70 65 20 73 6c 6f 74 20 73 79 6d | .slot)...(cl-check-type.slot.sym | 
| 13e0 | 62 6f 6c 29 0a 20 20 28 6c 65 74 2a 20 28 28 63    6c 61 73 73 20 28 65 69 65 69 6f 2d 2d 6f 62 6a | bol)...(let*.((class.(eieio--obj | 
| 1400 | 65 63 74 2d 63 6c 61 73 73 20 6f 62 6a 29 29 0a    20 20 20 20 20 20 20 20 20 28 63 20 28 65 69 65 | ect-class.obj))..........(c.(eie | 
| 1420 | 69 6f 2d 2d 73 6c 6f 74 2d 6e 61 6d 65 2d 69 6e    64 65 78 20 63 6c 61 73 73 20 73 6c 6f 74 29 29 | io--slot-name-index.class.slot)) | 
| 1440 | 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 63    29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 | ).....(if.(not.c).........(if.(s | 
| 1460 | 65 74 71 20 63 20 28 65 69 65 69 6f 2d 2d 63 6c    61 73 73 2d 73 6c 6f 74 2d 6e 61 6d 65 2d 69 6e | etq.c.(eieio--class-slot-name-in | 
| 1480 | 64 65 78 20 63 6c 61 73 73 20 73 6c 6f 74 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 | dex.class.slot)).............(ar | 
| 14a0 | 65 66 20 28 65 69 65 69 6f 2d 2d 63 6c 61 73 73    2d 63 6c 61 73 73 2d 61 6c 6c 6f 63 61 74 69 6f | ef.(eieio--class-class-allocatio | 
| 14c0 | 6e 2d 76 61 6c 75 65 73 20 63 6c 61 73 73 29 20    63 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6c | n-values.class).c)...........(sl | 
| 14e0 | 6f 74 2d 6d 69 73 73 69 6e 67 20 6f 62 6a 20 73    6c 6f 74 20 27 6f 72 65 66 29 29 0a 20 20 20 20 | ot-missing.obj.slot.'oref))..... | 
| 1500 | 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28    61 72 65 66 20 6f 62 6a 20 63 29 29 0a 20 20 20 | ..(let.((value.(aref.obj.c)).... | 
| 1520 | 20 20 20 20 20 20 20 20 20 28 64 62 20 28 63 6c    6f 73 71 6c 2d 2d 6f 72 65 66 20 6f 62 6a 20 27 | .........(db.(closql--oref.obj.' | 
| 1540 | 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73 65 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6c | closql-database)).............cl | 
| 1560 | 61 73 73 20 74 61 62 6c 65 29 0a 20 20 20 20 20    20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 | ass.table).........(cond........ | 
| 1580 | 20 20 28 28 6e 6f 74 20 28 65 71 20 76 61 6c 75    65 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75 6e 64 | ..((not.(eq.value.eieio--unbound | 
| 15a0 | 29 29 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20    20 20 20 28 28 73 65 74 71 20 63 6c 61 73 73 20 | )).value)..........((setq.class. | 
| 15c0 | 28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d 63 6c    61 73 73 20 6f 62 6a 20 73 6c 6f 74 29 29 0a 20 | (closql--slot-class.obj.slot)).. | 
| 15e0 | 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6f    62 6a 20 63 0a 20 20 20 20 20 20 20 20 20 20 20 | .........(aset.obj.c............ | 
| 1600 | 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61    6d 62 64 61 20 28 72 6f 77 29 20 28 63 6c 6f 73 | .....(mapcar.(lambda.(row).(clos | 
| 1620 | 71 6c 2d 2d 72 65 6d 61 6b 65 2d 69 6e 73 74 61    6e 63 65 20 63 6c 61 73 73 20 64 62 20 72 6f 77 | ql--remake-instance.class.db.row | 
| 1640 | 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 65 6d 61 63 | )).........................(emac | 
| 1660 | 73 71 6c 20 64 62 20 28 76 63 6f 6e 63 61 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sql.db.(vconcat................. | 
| 1680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 5b 3a 73 65 6c 65 63 74 20 2a 20 | .....................[:select.*. | 
| 16a0 | 3a 66 72 6f 6d 20 24 69 31 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :from.$i1....................... | 
| 16c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 77 68 65 72 65 20 28 3d 20 24 69 32 20 24 73 | ................:where.(=.$i2.$s | 
| 16e0 | 33 29 5d 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 | 3)]............................. | 
| 1700 | 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(vector................ | 
| 1720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3a 6f 72 64 65 72 2d 62 79 | .......................:order-by | 
| 1740 | 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 | ................................ | 
| 1760 | 20 20 20 20 20 20 20 28 6f 72 20 28 6f 72 65 66    2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 63 | .......(or.(oref-default.class.c | 
| 1780 | 6c 6f 73 71 6c 2d 6f 72 64 65 72 2d 62 79 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | losql-order-by)................. | 
| 17a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 5b 28 61 73 63 20 | ..........................[(asc. | 
| 17c0 | 24 69 34 29 5d 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 | $i4)])))........................ | 
| 17e0 | 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 2d    64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 63 6c | ..........(oref-default.class.cl | 
| 1800 | 6f 73 71 6c 2d 74 61 62 6c 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | osql-table)..................... | 
| 1820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72    65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73 | .............(oref-default.class | 
| 1840 | 20 63 6c 6f 73 71 6c 2d 66 6f 72 65 69 67 6e 2d    6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .closql-foreign-key)............ | 
| 1860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 6f | ......................(closql--o | 
| 1880 | 72 65 66 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 | ref............................. | 
| 18a0 | 20 20 20 20 20 20 6f 62 6a 20 28 6f 72 65 66 2d    64 65 66 61 75 6c 74 20 6f 62 6a 20 63 6c 6f 73 | ......obj.(oref-default.obj.clos | 
| 18c0 | 71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65 79 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ql-primary-key))................ | 
| 18e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 | ..................(oref-default. | 
| 1900 | 63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d 70 72 69    6d 61 72 79 2d 6b 65 79 29 29 29 29 29 0a 20 20 | class.closql-primary-key)))))... | 
| 1920 | 20 20 20 20 20 20 20 28 28 73 65 74 71 20 74 61    62 6c 65 20 28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f | .......((setq.table.(closql--slo | 
| 1940 | 74 2d 74 61 62 6c 65 20 6f 62 6a 20 73 6c 6f 74    29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 | t-table.obj.slot))...........(le | 
| 1960 | 74 20 28 28 63 6f 6c 75 6d 6e 73 20 28 63 6c 6f    73 71 6c 2d 2d 74 61 62 6c 65 2d 63 6f 6c 75 6d | t.((columns.(closql--table-colum | 
| 1980 | 6e 73 20 64 62 20 74 61 62 6c 65 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 61 73 65 74 | ns.db.table))).............(aset | 
| 19a0 | 20 6f 62 6a 20 63 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 | .obj.c...................(mapcar | 
| 19c0 | 20 28 69 66 20 28 6c 65 6e 67 74 68 3d 20 63 6f    6c 75 6d 6e 73 20 32 29 20 23 27 63 61 64 72 20 | .(if.(length=.columns.2).#'cadr. | 
| 19e0 | 23 27 63 64 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 20 20 20 | #'cdr).......................... | 
| 1a00 | 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 20 24 69 | .(emacsql.db.[:select.*.:from.$i | 
| 1a20 | 31 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 | 1............................... | 
| 1a40 | 20 20 20 20 20 20 20 20 20 3a 77 68 65 72 65 20    28 3d 20 24 69 32 20 24 73 33 29 0a 20 20 20 20 | .........:where.(=.$i2.$s3)..... | 
| 1a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 1a80 | 20 20 20 3a 6f 72 64 65 72 2d 62 79 20 5b 28 61    73 63 20 24 69 34 29 5d 5d 0a 20 20 20 20 20 20 | ...:order-by.[(asc.$i4)]]....... | 
| 1aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 62 | .............................tab | 
| 1ac0 | 6c 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 20 20 20 20 20 20 | le.............................. | 
| 1ae0 | 20 20 20 20 20 20 28 63 61 72 20 63 6f 6c 75 6d    6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......(car.columns)............. | 
| 1b00 | 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 6c 6f 73 71 6c 2d 2d | .......................(closql-- | 
| 1b20 | 6f 72 65 66 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 | oref............................ | 
| 1b40 | 20 20 20 20 20 20 20 20 20 6f 62 6a 20 28 6f 72    65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20 63 | .........obj.(oref-default.obj.c | 
| 1b60 | 6c 6f 73 71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65    79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | losql-primary-key))............. | 
| 1b80 | 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 61 64 72 20 63 6f 6c | .......................(cadr.col | 
| 1ba0 | 75 6d 6e 73 29 29 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 28 28 73 6c 6f 74 2d 75 6e 62 6f 75 | umns))))))..........((slot-unbou | 
| 1bc0 | 6e 64 20 6f 62 6a 20 28 65 69 65 69 6f 2d 2d 6f    62 6a 65 63 74 2d 63 6c 61 73 73 20 6f 62 6a 29 | nd.obj.(eieio--object-class.obj) | 
| 1be0 | 20 73 6c 6f 74 20 27 6f 72 65 66 29 29 29 29 29    29 29 0a 0a 3b 3b 3b 3b 20 4f 73 65 74 0a 0a 28 | .slot.'oref)))))))..;;;;.Oset..( | 
| 1c00 | 64 65 66 75 6e 20 65 69 65 69 6f 2d 6f 73 65 74    2d 2d 63 6c 6f 73 71 6c 2d 6f 73 65 74 20 28 66 | defun.eieio-oset--closql-oset.(f | 
| 1c20 | 6e 20 6f 62 6a 20 73 6c 6f 74 20 76 61 6c 75 65    29 0a 20 20 28 69 66 20 28 63 6c 6f 73 71 6c 2d | n.obj.slot.value)...(if.(closql- | 
| 1c40 | 2d 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 2d 70    20 6f 62 6a 29 0a 20 20 20 20 20 20 28 63 6c 6f | -closql-object-p.obj).......(clo | 
| 1c60 | 73 71 6c 2d 6f 73 65 74 20 6f 62 6a 20 73 6c 6f    74 20 76 61 6c 75 65 29 0a 20 20 20 20 28 66 75 | sql-oset.obj.slot.value).....(fu | 
| 1c80 | 6e 63 61 6c 6c 20 66 6e 20 6f 62 6a 20 73 6c 6f    74 20 76 61 6c 75 65 29 29 29 0a 0a 28 61 64 76 | ncall.fn.obj.slot.value)))..(adv | 
| 1ca0 | 69 63 65 2d 61 64 64 20 27 65 69 65 69 6f 2d 6f    73 65 74 20 3a 61 72 6f 75 6e 64 20 23 27 65 69 | ice-add.'eieio-oset.:around.#'ei | 
| 1cc0 | 65 69 6f 2d 6f 73 65 74 2d 2d 63 6c 6f 73 71 6c    2d 6f 73 65 74 29 0a 0a 28 64 65 66 75 6e 20 63 | eio-oset--closql-oset)..(defun.c | 
| 1ce0 | 6c 6f 73 71 6c 2d 2d 6f 73 65 74 20 28 6f 62 6a    20 73 6c 6f 74 20 76 61 6c 75 65 29 0a 20 20 28 | losql--oset.(obj.slot.value)...( | 
| 1d00 | 61 73 65 74 20 6f 62 6a 20 28 65 69 65 69 6f 2d    2d 73 6c 6f 74 2d 6e 61 6d 65 2d 69 6e 64 65 78 | aset.obj.(eieio--slot-name-index | 
| 1d20 | 20 28 65 69 65 69 6f 2d 2d 6f 62 6a 65 63 74 2d    63 6c 61 73 73 20 6f 62 6a 29 20 73 6c 6f 74 29 | .(eieio--object-class.obj).slot) | 
| 1d40 | 20 76 61 6c 75 65 29 29 0a 0a 28 64 65 66 75 6e    20 63 6c 6f 73 71 6c 2d 6f 73 65 74 20 28 6f 62 | .value))..(defun.closql-oset.(ob | 
| 1d60 | 6a 20 73 6c 6f 74 20 76 61 6c 75 65 29 0a 20 20    28 63 6c 2d 63 68 65 63 6b 2d 74 79 70 65 20 73 | j.slot.value)...(cl-check-type.s | 
| 1d80 | 6c 6f 74 20 73 79 6d 62 6f 6c 29 0a 20 20 28 6c    65 74 2a 20 28 28 63 6c 61 73 73 20 28 65 69 65 | lot.symbol)...(let*.((class.(eie | 
| 1da0 | 69 6f 2d 2d 6f 62 6a 65 63 74 2d 63 6c 61 73 73    20 6f 62 6a 29 29 0a 20 20 20 20 20 20 20 20 20 | io--object-class.obj)).......... | 
| 1dc0 | 28 63 20 28 65 69 65 69 6f 2d 2d 73 6c 6f 74 2d    6e 61 6d 65 2d 69 6e 64 65 78 20 63 6c 61 73 73 | (c.(eieio--slot-name-index.class | 
| 1de0 | 20 73 6c 6f 74 29 29 29 0a 20 20 20 20 28 69 66    20 28 6e 6f 74 20 63 29 0a 20 20 20 20 20 20 20 | .slot))).....(if.(not.c)........ | 
| 1e00 | 20 28 69 66 20 28 73 65 74 71 20 63 20 28 65 69    65 69 6f 2d 2d 63 6c 61 73 73 2d 73 6c 6f 74 2d | .(if.(setq.c.(eieio--class-slot- | 
| 1e20 | 6e 61 6d 65 2d 69 6e 64 65 78 20 63 6c 61 73 73    20 73 6c 6f 74 29 29 0a 20 20 20 20 20 20 20 20 | name-index.class.slot))......... | 
| 1e40 | 20 20 20 20 28 70 72 6f 67 6e 20 28 65 69 65 69    6f 2d 2d 76 61 6c 69 64 61 74 65 2d 63 6c 61 73 | ....(progn.(eieio--validate-clas | 
| 1e60 | 73 2d 73 6c 6f 74 2d 76 61 6c 75 65 20 63 6c 61    73 73 20 63 20 76 61 6c 75 65 20 73 6c 6f 74 29 | s-slot-value.class.c.value.slot) | 
| 1e80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 61 73 65 74 20 28 65 69 65 69 6f | ....................(aset.(eieio | 
| 1ea0 | 2d 2d 63 6c 61 73 73 2d 63 6c 61 73 73 2d 61 6c    6c 6f 63 61 74 69 6f 6e 2d 76 61 6c 75 65 73 20 | --class-class-allocation-values. | 
| 1ec0 | 63 6c 61 73 73 29 20 63 20 76 61 6c 75 65 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 73 6c 6f 74 | class).c.value))...........(slot | 
| 1ee0 | 2d 6d 69 73 73 69 6e 67 20 6f 62 6a 20 73 6c 6f    74 20 27 6f 73 65 74 20 76 61 6c 75 65 29 29 0a | -missing.obj.slot.'oset.value)). | 
| 1f00 | 20 20 20 20 20 20 28 65 69 65 69 6f 2d 2d 76 61    6c 69 64 61 74 65 2d 73 6c 6f 74 2d 76 61 6c 75 | ......(eieio--validate-slot-valu | 
| 1f20 | 65 20 63 6c 61 73 73 20 63 20 76 61 6c 75 65 20    73 6c 6f 74 29 0a 20 20 20 20 20 20 28 75 6e 6c | e.class.c.value.slot).......(unl | 
| 1f40 | 65 73 73 20 28 65 71 20 73 6c 6f 74 20 27 63 6c    6f 73 71 6c 2d 64 61 74 61 62 61 73 65 29 0a 20 | ess.(eq.slot.'closql-database).. | 
| 1f60 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 62    20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66 20 6f | .......(let.((db.(closql--oref.o | 
| 1f80 | 62 6a 20 27 63 6c 6f 73 71 6c 2d 64 61 74 61 62    61 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 | bj.'closql-database))).......... | 
| 1fa0 | 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6e 6f    74 20 64 62 29 20 28 65 71 20 64 62 20 65 69 65 | .(unless.(or.(not.db).(eq.db.eie | 
| 1fc0 | 69 6f 2d 2d 75 6e 62 6f 75 6e 64 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 | io--unbound)).............(closq | 
| 1fe0 | 6c 2d 2d 64 73 65 74 20 64 62 20 6f 62 6a 20 73    6c 6f 74 20 76 61 6c 75 65 29 29 29 29 0a 20 20 | l--dset.db.obj.slot.value))))... | 
| 2000 | 20 20 20 20 28 61 73 65 74 20 6f 62 6a 20 63 20    76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 | ....(aset.obj.c.value))))..(defu | 
| 2020 | 6e 20 63 6c 6f 73 71 6c 2d 2d 64 73 65 74 20 28    64 62 20 6f 62 6a 20 73 6c 6f 74 20 76 61 6c 75 | n.closql--dset.(db.obj.slot.valu | 
| 2040 | 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79    20 20 20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 | e)...(let*.((key...(oref-default | 
| 2060 | 20 6f 62 6a 20 63 6c 6f 73 71 6c 2d 70 72 69 6d    61 72 79 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 | .obj.closql-primary-key))....... | 
| 2080 | 20 20 20 28 69 64 20 20 20 20 28 63 6c 6f 73 71    6c 2d 2d 6f 72 65 66 20 6f 62 6a 20 6b 65 79 29 | ...(id....(closql--oref.obj.key) | 
| 20a0 | 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 61 73    73 20 28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d | )..........(class.(closql--slot- | 
| 20c0 | 63 6c 61 73 73 20 6f 62 6a 20 73 6c 6f 74 29 29    0a 20 20 20 20 20 20 20 20 20 28 74 61 62 6c 65 | class.obj.slot))..........(table | 
| 20e0 | 20 28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d 74    61 62 6c 65 20 6f 62 6a 20 73 6c 6f 74 29 29 29 | .(closql--slot-table.obj.slot))) | 
| 2100 | 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20    28 63 6c 61 73 73 0a 20 20 20 20 20 20 28 65 72 | .....(cond......(class.......(er | 
| 2120 | 72 6f 72 20 22 4e 6f 74 20 69 6d 70 6c 65 6d 65    6e 74 65 64 20 66 6f 72 20 63 6c 6f 73 71 6c 2d | ror."Not.implemented.for.closql- | 
| 2140 | 63 6c 61 73 73 20 73 6c 6f 74 73 3a 20 6f 73 65    74 22 29 29 0a 20 20 20 20 20 28 74 61 62 6c 65 | class.slots:.oset"))......(table | 
| 2160 | 0a 20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 77    69 74 68 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 | .......(closql-with-transaction. | 
| 2180 | 64 62 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20    28 28 63 6f 6c 75 6d 6e 73 20 28 63 6c 6f 73 71 | db.........(let.((columns.(closq | 
| 21a0 | 6c 2d 2d 74 61 62 6c 65 2d 63 6f 6c 75 6d 6e 73    20 64 62 20 74 61 62 6c 65 29 29 29 0a 20 20 20 | l--table-columns.db.table))).... | 
| 21c0 | 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 65 72    20 6d 69 67 68 74 20 68 61 76 65 20 6d 6f 64 69 | .......;;.Caller.might.have.modi | 
| 21e0 | 66 69 65 64 20 76 61 6c 75 65 20 69 6e 20 70 6c    61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 | fied.value.in.place............( | 
| 2200 | 63 6c 6f 73 71 6c 2d 2d 6f 73 65 74 20 6f 62 6a    20 73 6c 6f 74 20 65 69 65 69 6f 2d 2d 75 6e 62 | closql--oset.obj.slot.eieio--unb | 
| 2220 | 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 6c 69 73 74 31 20 28 63 6c | ound)...........(let.((list1.(cl | 
| 2240 | 6f 73 71 6c 2d 6f 72 65 66 20 6f 62 6a 20 73 6c    6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | osql-oref.obj.slot))............ | 
| 2260 | 20 20 20 20 20 28 6c 69 73 74 32 20 76 61 6c 75    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(list2.value).............. | 
| 2280 | 20 20 20 65 6c 74 31 20 65 6c 74 32 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | ...elt1.elt2).............(when. | 
| 22a0 | 28 6c 65 6e 67 74 68 3d 20 63 6f 6c 75 6d 6e 73    20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (length=.columns.2)............. | 
| 22c0 | 20 20 28 73 65 74 71 20 6c 69 73 74 31 20 28 6d    61 70 63 61 72 20 23 27 6c 69 73 74 20 6c 69 73 | ..(setq.list1.(mapcar.#'list.lis | 
| 22e0 | 74 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 6c 69 73 74 32 20 28 | t1))...............(setq.list2.( | 
| 2300 | 6d 61 70 63 61 72 20 23 27 6c 69 73 74 20 6c 69    73 74 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 | mapcar.#'list.list2))).......... | 
| 2320 | 20 20 20 3b 3b 20 60 6c 69 73 74 32 27 20 6d 61    79 20 6e 6f 74 20 62 65 20 73 6f 72 74 65 64 20 | ...;;.`list2'.may.not.be.sorted. | 
| 2340 | 61 74 20 61 6c 6c 20 61 6e 64 20 60 6c 69 73 74    31 27 20 68 61 73 20 74 6f 0a 20 20 20 20 20 20 | at.all.and.`list1'.has.to....... | 
| 2360 | 20 20 20 20 20 20 3b 3b 20 62 65 20 73 6f 72 74    65 64 20 62 65 63 61 75 73 65 20 45 6c 69 73 70 | ......;;.be.sorted.because.Elisp | 
| 2380 | 20 61 6e 64 20 53 51 4c 69 74 65 20 73 6f 72 74    20 64 69 66 66 65 72 65 6e 74 6c 79 2e 0a 20 20 | .and.SQLite.sort.differently.... | 
| 23a0 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    6c 69 73 74 31 20 28 63 6c 2d 73 6f 72 74 20 6c | ..........(setq.list1.(cl-sort.l | 
| 23c0 | 69 73 74 31 20 23 27 73 74 72 69 6e 67 3c 20 3a    6b 65 79 20 23 27 63 61 72 29 29 0a 20 20 20 20 | ist1.#'string<.:key.#'car))..... | 
| 23e0 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69    73 74 32 20 28 63 6c 2d 73 6f 72 74 20 6c 69 73 | ........(setq.list2.(cl-sort.lis | 
| 2400 | 74 32 20 23 27 73 74 72 69 6e 67 3c 20 3a 6b 65    79 20 23 27 63 61 72 29 29 0a 20 20 20 20 20 20 | t2.#'string<.:key.#'car))....... | 
| 2420 | 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 70 72    6f 67 6e 20 28 73 65 74 71 20 65 6c 74 31 20 28 | ......(while.(progn.(setq.elt1.( | 
| 2440 | 63 61 72 20 6c 69 73 74 31 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | car.list1))..................... | 
| 2460 | 20 20 20 20 20 20 28 73 65 74 71 20 65 6c 74 32    20 28 63 61 72 20 6c 69 73 74 32 29 29 0a 20 20 | ......(setq.elt2.(car.list2))... | 
| 2480 | 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 6f 72 20 65 6c 74 31 | ........................(or.elt1 | 
| 24a0 | 20 65 6c 74 32 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 | .elt2))...............(let.((key | 
| 24c0 | 31 20 28 63 61 72 20 65 6c 74 31 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 1.(car.elt1))................... | 
| 24e0 | 20 20 28 6b 65 79 32 20 28 63 61 72 20 65 6c 74    32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ..(key2.(car.elt2)))............ | 
| 2500 | 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 28 28 61 6e | .....(cond..................((an | 
| 2520 | 64 20 65 6c 74 31 20 28 6f 72 20 28 6e 6f 74 20    65 6c 74 32 29 20 28 73 74 72 69 6e 67 3c 20 6b | d.elt1.(or.(not.elt2).(string<.k | 
| 2540 | 65 79 31 20 6b 65 79 32 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 | ey1.key2)))...................(a | 
| 2560 | 70 70 6c 79 20 23 27 65 6d 61 63 73 71 6c 20 64    62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pply.#'emacsql.db............... | 
| 2580 | 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e    63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(vconcat............. | 
| 25a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 3a    64 65 6c 65 74 65 2d 66 72 6f 6d 20 24 69 31 20 | ..............[:delete-from.$i1. | 
| 25c0 | 3a 77 68 65 72 65 5d 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 | :where]......................... | 
| 25e0 | 20 20 28 63 6c 6f 73 71 6c 2d 2d 77 68 65 72 65    2d 65 71 75 61 6c 20 28 63 6f 6e 73 20 69 64 20 | ..(closql--where-equal.(cons.id. | 
| 2600 | 65 6c 74 31 29 20 31 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 | elt1).1))....................... | 
| 2620 | 20 20 20 74 61 62 6c 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 | ...table........................ | 
| 2640 | 20 20 28 63 6c 2d 6d 61 70 63 61 6e 20 23 27 6c    69 73 74 20 63 6f 6c 75 6d 6e 73 20 28 63 6f 6e | ..(cl-mapcan.#'list.columns.(con | 
| 2660 | 73 20 69 64 20 65 6c 74 31 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | s.id.elt1)))...................( | 
| 2680 | 70 6f 70 20 6c 69 73 74 31 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 | pop.list1))..................((s | 
| 26a0 | 74 72 69 6e 67 3d 20 6b 65 79 31 20 6b 65 79 32    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tring=.key1.key2)............... | 
| 26c0 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75    61 6c 20 65 6c 74 31 20 65 6c 74 32 29 0a 20 20 | ....(unless.(equal.elt1.elt2)... | 
| 26e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 63 6c 2d 6d 61 70 63 0a 20 20 20 20 20 | ..................(cl-mapc...... | 
| 2700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6c 61 6d 62 64 61 20 28 63 6f 6c 20 76 61 6c | ................(lambda.(col.val | 
| 2720 | 31 20 76 61 6c 32 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 28 | 1.val2)........................( | 
| 2740 | 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 76 61    6c 31 20 76 61 6c 32 29 0a 20 20 20 20 20 20 20 | unless.(equal.val1.val2)........ | 
| 2760 | 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 20 64 62 20 5b 3a | ..................(emacsql.db.[: | 
| 2780 | 75 70 64 61 74 65 20 24 69 31 20 3a 73 65 74 20    28 3d 20 24 69 32 20 24 73 33 29 0a 20 20 20 20 | update.$i1.:set.(=.$i2.$s3)..... | 
| 27a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 27c0 | 20 20 3a 77 68 65 72 65 20 28 61 6e 64 20 28 3d    20 24 69 34 20 24 73 35 29 20 28 3d 20 24 69 36 | ..:where.(and.(=.$i4.$s5).(=.$i6 | 
| 27e0 | 20 24 73 37 29 29 5d 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 | .$s7))]......................... | 
| 2800 | 20 20 20 20 20 20 20 20 20 20 74 61 62 6c 65 20    63 6f 6c 20 76 61 6c 32 0a 20 20 20 20 20 20 20 | ..........table.col.val2........ | 
| 2820 | 20 20 20 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 61 72 20 | ...........................(car. | 
| 2840 | 20 63 6f 6c 75 6d 6e 73 29 20 69 64 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .columns).id.................... | 
| 2860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 61 64 72 20 63 6f 6c 75 6d 6e 73 29 20 6b 65 | ...............(cadr.columns).ke | 
| 2880 | 79 32 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 28 63 64 64 72 | y2)))......................(cddr | 
| 28a0 | 20 63 6f 6c 75 6d 6e 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .columns)......................( | 
| 28c0 | 63 64 72 20 20 65 6c 74 31 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cdr..elt1)...................... | 
| 28e0 | 28 63 64 72 20 20 65 6c 74 32 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cdr..elt2)))................... | 
| 2900 | 28 70 6f 70 20 6c 69 73 74 31 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | (pop.list1)...................(p | 
| 2920 | 6f 70 20 6c 69 73 74 32 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 | op.list2))..................(t.. | 
| 2940 | 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 20 64 62 20 5b 3a 69 | .................(emacsql.db.[:i | 
| 2960 | 6e 73 65 72 74 2d 69 6e 74 6f 20 24 69 31 20 3a    76 61 6c 75 65 73 20 24 76 32 5d 0a 20 20 20 20 | nsert-into.$i1.:values.$v2]..... | 
| 2980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 74 61 62 6c 65 20 28 76 63 | .......................table.(vc | 
| 29a0 | 6f 6e 63 61 74 20 28 63 6f 6e 73 20 69 64 20 65    6c 74 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 | oncat.(cons.id.elt2))).......... | 
| 29c0 | 20 20 20 20 20 20 20 20 20 28 70 6f 70 20 6c 69    73 74 32 29 29 29 29 29 29 29 29 29 0a 20 20 20 | .........(pop.list2))))))))).... | 
| 29e0 | 20 20 28 74 0a 20 20 20 20 20 20 28 65 6d 61 63    73 71 6c 20 64 62 20 5b 3a 75 70 64 61 74 65 20 | ..(t.......(emacsql.db.[:update. | 
| 2a00 | 24 69 31 20 3a 73 65 74 20 28 3d 20 24 69 32 20    24 73 33 29 20 3a 77 68 65 72 65 20 28 3d 20 24 | $i1.:set.(=.$i2.$s3).:where.(=.$ | 
| 2a20 | 69 34 20 24 73 35 29 5d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6f 72 65 66 2d 64 65 | i4.$s5)]................(oref-de | 
| 2a40 | 66 61 75 6c 74 20 6f 62 6a 20 63 6c 6f 73 71 6c    2d 74 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 | fault.obj.closql-table)......... | 
| 2a60 | 20 20 20 20 20 20 20 73 6c 6f 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | .......slot................(if.( | 
| 2a80 | 65 71 20 76 61 6c 75 65 20 65 69 65 69 6f 2d 2d    75 6e 62 6f 75 6e 64 29 20 27 65 69 65 69 6f 2d | eq.value.eieio--unbound).'eieio- | 
| 2aa0 | 75 6e 62 6f 75 6e 64 20 76 61 6c 75 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 | unbound.value)................ke | 
| 2ac0 | 79 20 69 64 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20    53 6c 6f 74 20 50 72 6f 70 65 72 74 69 65 73 0a | y.id)))))..;;;;.Slot.Properties. | 
| 2ae0 | 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d    73 6c 6f 74 2d 63 6c 61 73 73 20 28 6f 62 6a 20 | .(defun.closql--slot-class.(obj. | 
| 2b00 | 73 6c 6f 74 29 0a 20 20 28 63 6c 6f 73 71 6c 2d    2d 73 6c 6f 74 2d 67 65 74 20 6f 62 6a 20 73 6c | slot)...(closql--slot-get.obj.sl | 
| 2b20 | 6f 74 20 3a 63 6c 6f 73 71 6c 2d 63 6c 61 73 73    29 29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 | ot.:closql-class))..(defun.closq | 
| 2b40 | 6c 2d 2d 73 6c 6f 74 2d 74 61 62 6c 65 20 28 6f    62 6a 20 73 6c 6f 74 29 0a 20 20 28 6c 65 74 20 | l--slot-table.(obj.slot)...(let. | 
| 2b60 | 28 28 74 62 6c 20 28 63 6c 6f 73 71 6c 2d 2d 73    6c 6f 74 2d 67 65 74 20 6f 62 6a 20 73 6c 6f 74 | ((tbl.(closql--slot-get.obj.slot | 
| 2b80 | 20 3a 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 29 29    29 0a 20 20 20 20 28 61 6e 64 20 74 62 6c 20 28 | .:closql-table))).....(and.tbl.( | 
| 2ba0 | 69 6e 74 65 72 6e 20 28 73 74 72 69 6e 67 2d 72    65 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20 20 | intern.(string-replace.......... | 
| 2bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 22    20 22 5f 22 0a 20 20 20 20 20 20 20 20 20 20 20 | ............."-"."_"............ | 
| 2be0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62    6f 6c 2d 6e 61 6d 65 20 28 69 66 20 28 73 79 6d | ...........(symbol-name.(if.(sym | 
| 2c00 | 62 6f 6c 70 20 74 62 6c 29 20 74 62 6c 20 28 63    61 72 20 74 62 6c 29 29 29 29 29 29 29 29 0a 0a | bolp.tbl).tbl.(car.tbl)))))))).. | 
| 2c20 | 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d 73    6c 6f 74 2d 67 65 74 20 28 6f 62 6a 65 63 74 2d | (defun.closql--slot-get.(object- | 
| 2c40 | 6f 72 2d 63 6c 61 73 73 20 73 6c 6f 74 20 70 72    6f 70 29 0a 20 20 28 6c 65 74 20 28 28 73 20 28 | or-class.slot.prop)...(let.((s.( | 
| 2c60 | 63 61 72 20 28 63 6c 2d 6d 65 6d 62 65 72 20 73    6c 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | car.(cl-member.slot............. | 
| 2c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    65 69 65 69 6f 2d 63 6c 61 73 73 2d 73 6c 6f 74 | ...............(eieio-class-slot | 
| 2ca0 | 73 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 28 63 | s.............................(c | 
| 2cc0 | 6f 6e 64 20 28 28 65 69 65 69 6f 2d 6f 62 6a 65    63 74 2d 70 20 6f 62 6a 65 63 74 2d 6f 72 2d 63 | ond.((eieio-object-p.object-or-c | 
| 2ce0 | 6c 61 73 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 20 20 | lass)........................... | 
| 2d00 | 20 20 20 20 20 20 20 20 20 28 65 69 65 69 6f 2d    2d 6f 62 6a 65 63 74 2d 63 6c 61 73 73 20 6f 62 | .........(eieio--object-class.ob | 
| 2d20 | 6a 65 63 74 2d 6f 72 2d 63 6c 61 73 73 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ject-or-class))................. | 
| 2d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 28 65 69 65 69 6f 2d 2d 63 6c 61 73 73 | ..................((eieio--class | 
| 2d60 | 2d 70 20 6f 62 6a 65 63 74 2d 6f 72 2d 63 6c 61    73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -p.object-or-class)............. | 
| 2d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6f 62 6a 65 63 74 2d 6f 72 | .......................object-or | 
| 2da0 | 2d 63 6c 61 73 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 | -class)......................... | 
| 2dc0 | 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(t.................... | 
| 2de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 66 69 6e 64 2d 63 6c 61 73 73 20 6f 62 6a 65 | ................(find-class.obje | 
| 2e00 | 63 74 2d 6f 72 2d 63 6c 61 73 73 20 27 65 72 72    6f 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ct-or-class.'error)))).......... | 
| 2e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 6b 65 79 20 23 27 63 6c 2d 2d 73 6c 6f | ..................:key.#'cl--slo | 
| 2e40 | 74 2d 64 65 73 63 72 69 70 74 6f 72 2d 6e 61 6d    65 29 29 29 29 0a 20 20 20 20 28 61 6e 64 20 73 | t-descriptor-name)))).....(and.s | 
| 2e60 | 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 72 6f    70 20 28 63 6c 2d 2d 73 6c 6f 74 2d 64 65 73 63 | .(cdr.(assoc.prop.(cl--slot-desc | 
| 2e80 | 72 69 70 74 6f 72 2d 70 72 6f 70 73 20 73 29 29    29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 | riptor-props.s))))))..(defconst. | 
| 2ea0 | 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d 70 72 6f    70 65 72 74 69 65 73 20 27 28 3a 63 6c 6f 73 71 | closql--slot-properties.'(:closq | 
| 2ec0 | 6c 2d 63 6c 61 73 73 20 3a 63 6c 6f 73 71 6c 2d    74 61 62 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 | l-class.:closql-table))..(defun. | 
| 2ee0 | 65 69 65 69 6f 2d 64 65 66 63 6c 61 73 73 2d 69    6e 74 65 72 6e 61 6c 2d 2d 73 65 74 2d 63 6c 6f | eieio-defclass-internal--set-clo | 
| 2f00 | 73 71 6c 2d 73 6c 6f 74 2d 70 72 6f 70 73 0a 20    20 20 20 28 63 6e 61 6d 65 20 5f 73 75 70 65 72 | sql-slot-props.....(cname._super | 
| 2f20 | 63 6c 61 73 73 65 73 20 73 6c 6f 74 73 20 5f 6f    70 74 69 6f 6e 73 29 0a 20 20 28 6c 65 74 20 28 | classes.slots._options)...(let.( | 
| 2f40 | 28 63 6c 61 73 73 20 28 63 6c 2d 2d 66 69 6e 64    2d 63 6c 61 73 73 20 63 6e 61 6d 65 29 29 29 0a | (class.(cl--find-class.cname))). | 
| 2f60 | 20 20 20 20 28 77 68 65 6e 20 28 63 68 69 6c 64    2d 6f 66 2d 63 6c 61 73 73 2d 70 20 63 6c 61 73 | ....(when.(child-of-class-p.clas | 
| 2f80 | 73 20 27 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74    29 0a 20 20 20 20 20 20 28 70 63 61 73 65 2d 64 | s.'closql-object).......(pcase-d | 
| 2fa0 | 6f 6c 69 73 74 20 28 60 28 2c 6e 61 6d 65 20 2e    20 2c 73 6c 6f 74 29 20 73 6c 6f 74 73 29 0a 20 | olist.(`(,name...,slot).slots).. | 
| 2fc0 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 6c    6f 74 2d 6f 62 6a 0a 20 20 20 20 20 20 20 20 20 | .......(let.((slot-obj.......... | 
| 2fe0 | 20 20 20 20 20 20 28 63 61 72 20 28 63 6c 2d 6d    65 6d 62 65 72 20 6e 61 6d 65 0a 20 20 20 20 20 | ......(car.(cl-member.name...... | 
| 3000 | 20 20 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 6c 2d 63 6f | ..........................(cl-co | 
| 3020 | 65 72 63 65 20 28 65 69 65 69 6f 2d 2d 63 6c 61    73 73 2d 73 6c 6f 74 73 20 63 6c 61 73 73 29 20 | erce.(eieio--class-slots.class). | 
| 3040 | 27 6c 69 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 | 'list).......................... | 
| 3060 | 20 20 20 20 20 20 3a 6b 65 79 20 28 6c 61 6d 62    64 61 20 28 65 6c 74 29 20 28 61 72 65 66 20 65 | ......:key.(lambda.(elt).(aref.e | 
| 3080 | 6c 74 20 31 29 29 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 72 | lt.1))))))...........(dolist.(pr | 
| 30a0 | 6f 70 20 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d    70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 | op.closql--slot-properties)..... | 
| 30c0 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 76    61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 73 6c | ........(let.((val.(plist-get.sl | 
| 30e0 | 6f 74 20 70 72 6f 70 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76 | ot.prop)))...............(when.v | 
| 3100 | 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d | al.................(setf.(alist- | 
| 3120 | 67 65 74 20 70 72 6f 70 20 28 63 6c 2d 2d 73 6c    6f 74 2d 64 65 73 63 72 69 70 74 6f 72 2d 70 72 | get.prop.(cl--slot-descriptor-pr | 
| 3140 | 6f 70 73 20 73 6c 6f 74 2d 6f 62 6a 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ops.slot-obj)).................. | 
| 3160 | 20 20 20 20 20 76 61 6c 29 29 29 29 29 29 29 29    29 0a 0a 28 61 64 76 69 63 65 2d 61 64 64 20 27 | .....val)))))))))..(advice-add.' | 
| 3180 | 65 69 65 69 6f 2d 64 65 66 63 6c 61 73 73 2d 69    6e 74 65 72 6e 61 6c 20 3a 61 66 74 65 72 0a 20 | eieio-defclass-internal.:after.. | 
| 31a0 | 20 20 20 20 20 20 20 20 20 20 20 23 27 65 69 65    69 6f 2d 64 65 66 63 6c 61 73 73 2d 69 6e 74 65 | ...........#'eieio-defclass-inte | 
| 31c0 | 72 6e 61 6c 2d 2d 73 65 74 2d 63 6c 6f 73 71 6c    2d 73 6c 6f 74 2d 70 72 6f 70 73 29 0a 0a 28 64 | rnal--set-closql-slot-props)..(d | 
| 31e0 | 65 66 75 6e 20 65 69 65 69 6f 2d 2d 73 6c 6f 74    2d 6f 76 65 72 72 69 64 65 2d 2d 73 65 74 2d 63 | efun.eieio--slot-override--set-c | 
| 3200 | 6c 6f 73 71 6c 2d 73 6c 6f 74 2d 70 72 6f 70 73    20 28 6f 6c 64 20 6e 65 77 20 5f 29 0a 20 20 28 | losql-slot-props.(old.new._)...( | 
| 3220 | 64 6f 6c 69 73 74 20 28 70 72 6f 70 20 63 6c 6f    73 71 6c 2d 2d 73 6c 6f 74 2d 70 72 6f 70 65 72 | dolist.(prop.closql--slot-proper | 
| 3240 | 74 69 65 73 29 0a 20 20 20 20 28 77 68 65 6e 20    28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 70 20 | ties).....(when.(alist-get.prop. | 
| 3260 | 28 63 6c 2d 2d 73 6c 6f 74 2d 64 65 73 63 72 69    70 74 6f 72 2d 70 72 6f 70 73 20 6e 65 77 29 29 | (cl--slot-descriptor-props.new)) | 
| 3280 | 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c    69 73 74 2d 67 65 74 20 70 72 6f 70 20 28 63 6c | .......(setf.(alist-get.prop.(cl | 
| 32a0 | 2d 2d 73 6c 6f 74 2d 64 65 73 63 72 69 70 74 6f    72 2d 70 72 6f 70 73 20 6f 6c 64 29 29 0a 20 20 | --slot-descriptor-props.old))... | 
| 32c0 | 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74    2d 67 65 74 20 70 72 6f 70 20 28 63 6c 2d 2d 73 | ..........(alist-get.prop.(cl--s | 
| 32e0 | 6c 6f 74 2d 64 65 73 63 72 69 70 74 6f 72 2d 70    72 6f 70 73 20 6e 65 77 29 29 29 29 29 29 0a 0a | lot-descriptor-props.new)))))).. | 
| 3300 | 28 61 64 76 69 63 65 2d 61 64 64 20 27 65 69 65    69 6f 2d 2d 73 6c 6f 74 2d 6f 76 65 72 72 69 64 | (advice-add.'eieio--slot-overrid | 
| 3320 | 65 20 3a 61 66 74 65 72 0a 20 20 20 20 20 20 20    20 20 20 20 20 23 27 65 69 65 69 6f 2d 2d 73 6c | e.:after.............#'eieio--sl | 
| 3340 | 6f 74 2d 6f 76 65 72 72 69 64 65 2d 2d 73 65 74    2d 63 6c 6f 73 71 6c 2d 73 6c 6f 74 2d 70 72 6f | ot-override--set-closql-slot-pro | 
| 3360 | 70 73 29 0a 0a 3b 3b 3b 20 44 61 74 61 62 61 73    65 0a 0a 28 64 65 66 63 6c 61 73 73 20 63 6c 6f | ps)..;;;.Database..(defclass.clo | 
| 3380 | 73 71 6c 2d 64 61 74 61 62 61 73 65 20 28 65 69    65 69 6f 2d 73 69 6e 67 6c 65 74 6f 6e 29 0a 20 | sql-database.(eieio-singleton).. | 
| 33a0 | 20 28 28 6e 61 6d 65 20 20 20 20 20 20 20 20 20    3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20 3a 61 | .((name.........:initform.nil.:a | 
| 33c0 | 6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c 61 73 73    29 0a 20 20 20 28 6f 62 6a 65 63 74 2d 63 6c 61 | llocation.:class)....(object-cla | 
| 33e0 | 73 73 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c    20 3a 61 6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c | ss.:initform.nil.:allocation.:cl | 
| 3400 | 61 73 73 29 0a 20 20 20 28 66 69 6c 65 20 20 20    20 20 20 20 20 20 3a 69 6e 69 74 66 6f 72 6d 20 | ass)....(file.........:initform. | 
| 3420 | 6e 69 6c 20 3a 61 6c 6c 6f 63 61 74 69 6f 6e 20    3a 63 6c 61 73 73 29 0a 20 20 20 28 73 63 68 65 | nil.:allocation.:class)....(sche | 
| 3440 | 6d 61 74 61 20 20 20 20 20 3a 69 6e 69 74 66 6f    72 6d 20 6e 69 6c 20 3a 61 6c 6c 6f 63 61 74 69 | mata.....:initform.nil.:allocati | 
| 3460 | 6f 6e 20 3a 63 6c 61 73 73 29 0a 20 20 20 28 76    65 72 73 69 6f 6e 20 20 20 20 20 20 3a 69 6e 69 | on.:class)....(version......:ini | 
| 3480 | 74 66 6f 72 6d 20 6e 69 6c 20 3a 61 6c 6c 6f 63    61 74 69 6f 6e 20 3a 63 6c 61 73 73 29 0a 20 20 | tform.nil.:allocation.:class)... | 
| 34a0 | 20 28 64 69 73 61 62 6c 65 64 20 20 20 20 20 3a    69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20 3a 61 6c | .(disabled.....:initform.nil.:al | 
| 34c0 | 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c 61 73 73 29    0a 20 20 20 28 63 6f 6e 6e 65 63 74 69 6f 6e 20 | location.:class)....(connection. | 
| 34e0 | 20 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20    3a 69 6e 69 74 61 72 67 20 3a 63 6f 6e 6e 65 63 | ..:initform.nil.:initarg.:connec | 
| 3500 | 74 69 6f 6e 29 29 0a 20 20 3a 61 62 73 74 72 61    63 74 20 74 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | tion))...:abstract.t)..(cl-defme | 
| 3520 | 74 68 6f 64 20 63 6c 6f 73 71 6c 2d 64 62 20 28    28 63 6c 61 73 73 20 28 73 75 62 63 6c 61 73 73 | thod.closql-db.((class.(subclass | 
| 3540 | 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73 65    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .closql-database)).............. | 
| 3560 | 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74    69 6f 6e 61 6c 20 6c 69 76 65 70 20 63 6f 6e 6e | ............&optional.livep.conn | 
| 3580 | 65 63 74 69 6f 6e 2d 63 6c 61 73 73 29 0a 20 20    28 6f 72 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 | ection-class)...(or.(and-let*.(( | 
| 35a0 | 64 62 20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74    20 63 6c 61 73 73 20 73 69 6e 67 6c 65 74 6f 6e | db.(oref-default.class.singleton | 
| 35c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6f 6e 6e 20 28 61 6e 64 20 28 | ))..................(conn.(and.( | 
| 35e0 | 6e 6f 74 20 28 65 71 20 64 62 20 65 69 65 69 6f    2d 2d 75 6e 62 6f 75 6e 64 29 29 0a 20 20 20 20 | not.(eq.db.eieio--unbound))..... | 
| 3600 | 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 6f 72 65 66 20 64 62 | ........................(oref.db | 
| 3620 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 29 29 0a    20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 6d | .connection)))).........(and.(em | 
| 3640 | 61 63 73 71 6c 2d 6c 69 76 65 2d 70 20 63 6f 6e    6e 29 20 64 62 29 29 0a 20 20 20 20 20 20 28 61 | acsql-live-p.conn).db)).......(a | 
| 3660 | 6e 64 20 28 6e 6f 74 20 6c 69 76 65 70 29 0a 20    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 | nd.(not.livep)............(let*. | 
| 3680 | 28 28 66 69 6c 65 20 28 63 6c 6f 73 71 6c 2d 2d    64 62 2d 70 72 65 70 61 72 65 2d 73 74 6f 72 61 | ((file.(closql--db-prepare-stora | 
| 36a0 | 67 65 20 63 6c 61 73 73 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | ge.class))...................(co | 
| 36c0 | 6e 6e 65 63 74 69 6f 6e 2d 63 6c 61 73 73 20 28    6f 72 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d 63 6c | nnection-class.(or.connection-cl | 
| 36e0 | 61 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 20 20 20 20 20 20 | ass............................. | 
| 3700 | 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61    63 73 71 6c 2d 73 71 6c 69 74 65 2d 64 65 66 61 | ............(emacsql-sqlite-defa | 
| 3720 | 75 6c 74 2d 63 6f 6e 6e 65 63 74 69 6f 6e 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ult-connection)))............... | 
| 3740 | 20 20 20 20 28 63 6f 6e 6e 20 28 6d 61 6b 65 2d    69 6e 73 74 61 6e 63 65 20 63 6f 6e 6e 65 63 74 | ....(conn.(make-instance.connect | 
| 3760 | 69 6f 6e 2d 63 6c 61 73 73 20 3a 66 69 6c 65 20    66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 | ion-class.:file.file)).......... | 
| 3780 | 20 20 20 20 20 20 20 20 20 28 64 62 20 28 6d 61    6b 65 2d 69 6e 73 74 61 6e 63 65 20 63 6c 61 73 | .........(db.(make-instance.clas | 
| 37a0 | 73 29 29 29 20 3b 20 69 67 6e 6f 72 65 73 20 73    6c 6f 74 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 | s))).;.ignores.slot.arguments... | 
| 37c0 | 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74    20 64 62 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 63 | ...........(oset.db.connection.c | 
| 37e0 | 6f 6e 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 6c | onn)..............(when.(and.(sl | 
| 3800 | 6f 74 2d 62 6f 75 6e 64 70 20 63 6f 6e 6e 20 27    68 61 6e 64 6c 65 29 0a 20 20 20 20 20 20 20 20 | ot-boundp.conn.'handle)......... | 
| 3820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 70 72 6f 63 65 73 73 70 20 28 6f 72 65 66 20 | ................(processp.(oref. | 
| 3840 | 63 6f 6e 6e 20 68 61 6e 64 6c 65 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | conn.handle)))................(s | 
| 3860 | 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 | 
| 3880 | 72 65 66 20 63 6f 6e 6e 20 68 61 6e 64 6c 65 29    20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 | ref.conn.handle).nil)).......... | 
| 38a0 | 20 20 20 20 28 65 6d 61 63 73 71 6c 20 63 6f 6e    6e 20 5b 3a 70 72 61 67 6d 61 20 28 3d 20 66 6f | ....(emacsql.conn.[:pragma.(=.fo | 
| 38c0 | 72 65 69 67 6e 2d 6b 65 79 73 20 6f 6e 29 5d 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | reign-keys.on)])..............(i | 
| 38e0 | 66 20 28 6e 6f 74 20 28 65 6d 61 63 73 71 6c 2d    73 71 6c 69 74 65 2d 6c 69 73 74 2d 74 61 62 6c | f.(not.(emacsql-sqlite-list-tabl | 
| 3900 | 65 73 20 64 62 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c | es.db))..................(closql | 
| 3920 | 2d 2d 64 62 2d 63 72 65 61 74 65 2d 73 63 68 65    6d 61 20 64 62 29 0a 20 20 20 20 20 20 20 20 20 | --db-create-schema.db).......... | 
| 3940 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 64    65 2d 76 65 72 73 69 6f 6e 20 28 6f 72 65 66 2d | ......(let.((code-version.(oref- | 
| 3960 | 64 65 66 61 75 6c 74 20 64 62 20 76 65 72 73 69    6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | default.db.version))............ | 
| 3980 | 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d    76 65 72 73 69 6f 6e 20 28 63 6c 6f 73 71 6c 2d | ..........(data-version.(closql- | 
| 39a0 | 2d 64 62 2d 67 65 74 2d 76 65 72 73 69 6f 6e 20    64 62 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -db-get-version.db)))........... | 
| 39c0 | 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 20 28 | .......(cond...................( | 
| 39e0 | 28 3c 20 63 6f 64 65 2d 76 65 72 73 69 6f 6e 20    64 61 74 61 2d 76 65 72 73 69 6f 6e 29 0a 20 20 | (<.code-version.data-version)... | 
| 3a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 | .................(message....... | 
| 3a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 50    6c 65 61 73 65 20 75 70 64 61 74 65 20 25 73 20 | .............."Please.update.%s. | 
| 3a40 | 70 61 63 6b 61 67 65 20 28 64 61 74 61 62 61 73    65 20 73 63 68 65 6d 61 20 76 65 72 73 69 6f 6e | package.(database.schema.version | 
| 3a60 | 20 25 73 20 3c 20 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 28 | .%s.<.%s)".....................( | 
| 3a80 | 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 64 62 20    6e 61 6d 65 29 20 63 6f 64 65 2d 76 65 72 73 69 | oref-default.db.name).code-versi | 
| 3aa0 | 6f 6e 20 64 61 74 61 2d 76 65 72 73 69 6f 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | on.data-version)................ | 
| 3ac0 | 20 20 20 20 28 6f 73 65 74 2d 64 65 66 61 75 6c    74 20 63 6c 61 73 73 20 64 69 73 61 62 6c 65 64 | ....(oset-default.class.disabled | 
| 3ae0 | 20 74 29 0a 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 | .t)....................(emacsql- | 
| 3b00 | 63 6c 6f 73 65 20 64 62 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | close.db)....................(se | 
| 3b20 | 74 71 20 64 62 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 28 28 | tq.db.nil))...................(( | 
| 3b40 | 63 6c 6f 73 71 6c 2d 2d 64 62 2d 75 70 64 61 74    65 2d 73 63 68 65 6d 61 20 64 62 29 29 29 29 29 | closql--db-update-schema.db))))) | 
| 3b60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 62    29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | ..............db))))..(cl-defmet | 
| 3b80 | 68 6f 64 20 63 6c 6f 73 71 6c 2d 2d 64 62 2d 70    72 65 70 61 72 65 2d 73 74 6f 72 61 67 65 20 28 | hod.closql--db-prepare-storage.( | 
| 3ba0 | 28 63 6c 61 73 73 20 28 73 75 62 63 6c 61 73 73    20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73 65 | (class.(subclass.closql-database | 
| 3bc0 | 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20    28 28 66 69 6c 65 20 28 6f 72 65 66 2d 64 65 66 | )))...(when-let.((file.(oref-def | 
| 3be0 | 61 75 6c 74 20 63 6c 61 73 73 20 66 69 6c 65 29    29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 79 | ault.class.file))).....(when.(sy | 
| 3c00 | 6d 62 6f 6c 70 20 66 69 6c 65 29 0a 20 20 20 20    20 20 28 73 65 74 71 20 66 69 6c 65 20 28 73 79 | mbolp.file).......(setq.file.(sy | 
| 3c20 | 6d 62 6f 6c 2d 76 61 6c 75 65 20 66 69 6c 65 29    29 29 0a 20 20 20 20 28 6d 61 6b 65 2d 64 69 72 | mbol-value.file))).....(make-dir | 
| 3c40 | 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d    65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 | ectory.(file-name-directory.file | 
| 3c60 | 29 20 74 29 0a 20 20 20 20 66 69 6c 65 29 29 0a    0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 | ).t).....file))..(cl-defmethod.c | 
| 3c80 | 6c 6f 73 71 6c 2d 2d 64 62 2d 63 72 65 61 74 65    2d 73 63 68 65 6d 61 20 28 28 64 62 20 63 6c 6f | losql--db-create-schema.((db.clo | 
| 3ca0 | 73 71 6c 2d 64 61 74 61 62 61 73 65 29 29 0a 20    20 28 63 6c 6f 73 71 6c 2d 77 69 74 68 2d 74 72 | sql-database))...(closql-with-tr | 
| 3cc0 | 61 6e 73 61 63 74 69 6f 6e 20 64 62 0a 20 20 20    20 28 70 63 61 73 65 2d 64 6f 6c 69 73 74 20 28 | ansaction.db.....(pcase-dolist.( | 
| 3ce0 | 60 28 2c 74 61 62 6c 65 20 2e 20 2c 73 63 68 65    6d 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | `(,table...,schema)............. | 
| 3d00 | 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76    61 6c 75 65 20 28 6f 72 65 66 2d 64 65 66 61 75 | .......(symbol-value.(oref-defau | 
| 3d20 | 6c 74 20 64 62 20 73 63 68 65 6d 61 74 61 29 29    29 0a 20 20 20 20 20 20 28 65 6d 61 63 73 71 6c | lt.db.schemata))).......(emacsql | 
| 3d40 | 20 64 62 20 5b 3a 63 72 65 61 74 65 2d 74 61 62    6c 65 20 24 69 31 20 24 53 32 5d 20 74 61 62 6c | .db.[:create-table.$i1.$S2].tabl | 
| 3d60 | 65 20 73 63 68 65 6d 61 29 29 0a 20 20 20 20 28    63 6c 6f 73 71 6c 2d 2d 64 62 2d 73 65 74 2d 76 | e.schema)).....(closql--db-set-v | 
| 3d80 | 65 72 73 69 6f 6e 20 64 62 20 28 6f 72 65 66 2d    64 65 66 61 75 6c 74 20 64 62 20 76 65 72 73 69 | ersion.db.(oref-default.db.versi | 
| 3da0 | 6f 6e 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d    65 74 68 6f 64 20 63 6c 6f 73 71 6c 2d 2d 64 62 | on))))..(cl-defmethod.closql--db | 
| 3dc0 | 2d 75 70 64 61 74 65 2d 73 63 68 65 6d 61 20 28    28 64 62 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 | -update-schema.((db.closql-datab | 
| 3de0 | 61 73 65 29 29 0a 20 20 28 6c 65 74 20 28 28 63    6f 64 65 2d 76 65 72 73 69 6f 6e 20 28 6f 72 65 | ase))...(let.((code-version.(ore | 
| 3e00 | 66 2d 64 65 66 61 75 6c 74 20 64 62 20 76 65 72    73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 | f-default.db.version)).........( | 
| 3e20 | 64 61 74 61 2d 76 65 72 73 69 6f 6e 20 28 63 6c    6f 73 71 6c 2d 2d 64 62 2d 67 65 74 2d 76 65 72 | data-version.(closql--db-get-ver | 
| 3e40 | 73 69 6f 6e 20 64 62 29 29 29 0a 20 20 20 20 28    77 68 65 6e 20 28 3c 20 64 61 74 61 2d 76 65 72 | sion.db))).....(when.(<.data-ver | 
| 3e60 | 73 69 6f 6e 20 63 6f 64 65 2d 76 65 72 73 69 6f    6e 29 0a 20 20 20 20 20 20 28 6f 73 65 74 2d 64 | sion.code-version).......(oset-d | 
| 3e80 | 65 66 61 75 6c 74 20 64 62 20 64 69 73 61 62 6c    65 64 20 74 29 0a 20 20 20 20 20 20 28 65 6d 61 | efault.db.disabled.t).......(ema | 
| 3ea0 | 63 73 71 6c 2d 63 6c 6f 73 65 20 64 62 29 0a 20    20 20 20 20 20 28 65 72 72 6f 72 20 22 50 6c 65 | csql-close.db).......(error."Ple | 
| 3ec0 | 61 73 65 20 75 70 64 61 74 65 20 25 73 20 64 61    74 61 62 61 73 65 20 28 73 63 68 65 6d 61 20 76 | ase.update.%s.database.(schema.v | 
| 3ee0 | 65 72 73 69 6f 6e 20 25 73 20 3c 20 25 73 29 22    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | ersion.%s.<.%s)"..............(o | 
| 3f00 | 72 65 66 2d 64 65 66 61 75 6c 74 20 64 62 20 6e    61 6d 65 29 20 64 61 74 61 2d 76 65 72 73 69 6f | ref-default.db.name).data-versio | 
| 3f20 | 6e 20 63 6f 64 65 2d 76 65 72 73 69 6f 6e 29 29    29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f | n.code-version))))..(cl-defmetho | 
| 3f40 | 64 20 65 6d 61 63 73 71 6c 2d 6c 69 76 65 2d 70    20 28 28 64 62 20 63 6c 6f 73 71 6c 2d 64 61 74 | d.emacsql-live-p.((db.closql-dat | 
| 3f60 | 61 62 61 73 65 29 29 0a 20 20 28 61 6e 64 2d 6c    65 74 2a 20 28 28 63 6f 6e 6e 20 28 6f 72 65 66 | abase))...(and-let*.((conn.(oref | 
| 3f80 | 20 64 62 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29    29 0a 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 6c | .db.connection))).....(emacsql-l | 
| 3fa0 | 69 76 65 2d 70 20 63 6f 6e 6e 29 29 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61 | ive-p.conn)))..(cl-defmethod.ema | 
| 3fc0 | 63 73 71 6c 2d 65 6e 61 62 6c 65 2d 64 65 62 75    67 67 69 6e 67 20 28 28 64 62 20 63 6c 6f 73 71 | csql-enable-debugging.((db.closq | 
| 3fe0 | 6c 2d 64 61 74 61 62 61 73 65 29 29 0a 20 20 28    65 6d 61 63 73 71 6c 2d 65 6e 61 62 6c 65 2d 64 | l-database))...(emacsql-enable-d | 
| 4000 | 65 62 75 67 67 69 6e 67 20 28 6f 72 65 66 20 64    62 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 29 0a | ebugging.(oref.db.connection))). | 
| 4020 | 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 64 | .(cl-defmethod.emacsql-close.((d | 
| 4040 | 62 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73    65 29 29 0a 20 20 28 65 6d 61 63 73 71 6c 2d 63 | b.closql-database))...(emacsql-c | 
| 4060 | 6c 6f 73 65 20 28 6f 72 65 66 20 64 62 20 63 6f    6e 6e 65 63 74 69 6f 6e 29 29 0a 20 20 28 6f 73 | lose.(oref.db.connection))...(os | 
| 4080 | 65 74 20 64 62 20 63 6f 6e 6e 65 63 74 69 6f 6e    20 6e 69 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | et.db.connection.nil))..(cl-defm | 
| 40a0 | 65 74 68 6f 64 20 65 6d 61 63 73 71 6c 20 28 28    64 62 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 | ethod.emacsql.((db.closql-databa | 
| 40c0 | 73 65 29 20 73 71 6c 20 26 72 65 73 74 20 61 72    67 73 29 0a 20 20 28 6d 61 70 63 61 72 20 23 27 | se).sql.&rest.args)...(mapcar.#' | 
| 40e0 | 63 6c 6f 73 71 6c 2d 2d 65 78 74 65 72 6e 2d 75    6e 62 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 | closql--extern-unbound.......... | 
| 4100 | 20 28 61 70 70 6c 79 20 23 27 65 6d 61 63 73 71    6c 20 28 6f 72 65 66 20 64 62 20 63 6f 6e 6e 65 | .(apply.#'emacsql.(oref.db.conne | 
| 4120 | 63 74 69 6f 6e 29 20 73 71 6c 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 | ction).sql..................(map | 
| 4140 | 63 61 72 20 28 6c 61 6d 62 64 61 20 28 61 72 67    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | car.(lambda.(arg)............... | 
| 4160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66    20 28 73 74 72 69 6e 67 70 20 61 72 67 29 0a 20 | .............(if.(stringp.arg).. | 
| 4180 | 20 20 20 20 20 20 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 | ..............................(l | 
| 41a0 | 65 74 20 28 28 63 6f 70 79 20 28 63 6f 70 79 2d    73 65 71 75 65 6e 63 65 20 61 72 67 29 29 29 0a | et.((copy.(copy-sequence.arg))). | 
| 41c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 41e0 | 20 28 73 65 74 2d 74 65 78 74 2d 70 72 6f 70 65    72 74 69 65 73 20 30 20 28 6c 65 6e 67 74 68 20 | .(set-text-properties.0.(length. | 
| 4200 | 63 6f 70 79 29 20 6e 69 6c 20 63 6f 70 79 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | copy).nil.copy)................. | 
| 4220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 63 6f 70 79 29 0a 20 20 20 20 20 20 20 20 20 | .................copy).......... | 
| 4240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 61 72 67 29 29 0a 20 20 20 20 20 20 | ....................arg))....... | 
| 4260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 61 72 67 73 29 29 29 29 0a 0a 28 63 6c | ...................args))))..(cl | 
| 4280 | 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f 73 71    6c 2d 69 6e 73 65 72 74 20 28 28 64 62 20 63 6c | -defmethod.closql-insert.((db.cl | 
| 42a0 | 6f 73 71 6c 2d 64 61 74 61 62 61 73 65 29 20 6f    62 6a 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 70 | osql-database).obj.&optional.rep | 
| 42c0 | 6c 61 63 65 29 0a 20 20 28 63 6c 6f 73 71 6c 2d    2d 6f 73 65 74 20 6f 62 6a 20 27 63 6c 6f 73 71 | lace)...(closql--oset.obj.'closq | 
| 42e0 | 6c 2d 64 61 74 61 62 61 73 65 20 64 62 29 0a 20    20 28 6c 65 74 20 28 61 6c 69 73 74 29 0a 20 20 | l-database.db)...(let.(alist)... | 
| 4300 | 20 20 28 64 6f 6c 69 73 74 20 28 73 6c 6f 74 20    28 65 69 65 69 6f 2d 63 6c 61 73 73 2d 73 6c 6f | ..(dolist.(slot.(eieio-class-slo | 
| 4320 | 74 73 20 28 65 69 65 69 6f 2d 2d 6f 62 6a 65 63    74 2d 63 6c 61 73 73 20 6f 62 6a 29 29 29 0a 20 | ts.(eieio--object-class.obj))).. | 
| 4340 | 20 20 20 20 20 28 73 65 74 71 20 20 73 6c 6f 74    20 28 63 6c 2d 2d 73 6c 6f 74 2d 64 65 73 63 72 | .....(setq..slot.(cl--slot-descr | 
| 4360 | 69 70 74 6f 72 2d 6e 61 6d 65 20 73 6c 6f 74 29    29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 | iptor-name.slot)).......(let.((t | 
| 4380 | 61 62 6c 65 20 28 63 6c 6f 73 71 6c 2d 2d 73 6c    6f 74 2d 74 61 62 6c 65 20 6f 62 6a 20 73 6c 6f | able.(closql--slot-table.obj.slo | 
| 43a0 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68    65 6e 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 | t))).........(when.table........ | 
| 43c0 | 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 73    6c 6f 74 20 28 63 6c 6f 73 71 6c 2d 6f 72 65 66 | ...(push.(cons.slot.(closql-oref | 
| 43e0 | 20 6f 62 6a 20 73 6c 6f 74 29 29 20 61 6c 69 73    74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c | .obj.slot)).alist)...........(cl | 
| 4400 | 6f 73 71 6c 2d 2d 6f 73 65 74 20 6f 62 6a 20 73    6c 6f 74 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75 | osql--oset.obj.slot.eieio--unbou | 
| 4420 | 6e 64 29 29 29 29 0a 20 20 20 20 28 63 6c 6f 73    71 6c 2d 77 69 74 68 2d 74 72 61 6e 73 61 63 74 | nd)))).....(closql-with-transact | 
| 4440 | 69 6f 6e 20 64 62 0a 20 20 20 20 20 20 28 65 6d    61 63 73 71 6c 20 64 62 0a 20 20 20 20 20 20 20 | ion.db.......(emacsql.db........ | 
| 4460 | 20 20 20 20 20 20 20 20 28 69 66 20 72 65 70 6c    61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ........(if.replace............. | 
| 4480 | 20 20 20 20 20 20 20 5b 3a 69 6e 73 65 72 74 2d    6f 72 2d 72 65 70 6c 61 63 65 2d 69 6e 74 6f 20 | .......[:insert-or-replace-into. | 
| 44a0 | 24 69 31 20 3a 76 61 6c 75 65 73 20 24 76 32 5d    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | $i1.:values.$v2]................ | 
| 44c0 | 20 20 5b 3a 69 6e 73 65 72 74 2d 69 6e 74 6f 20    24 69 31 20 3a 76 61 6c 75 65 73 20 24 76 32 5d | ..[:insert-into.$i1.:values.$v2] | 
| 44e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 6f | )................(oref-default.o | 
| 4500 | 62 6a 20 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bj.closql-table)................ | 
| 4520 | 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c    63 6c 61 73 73 20 2c 5f 64 62 20 2e 20 2c 76 61 | (pcase-let.((`(,class.,_db...,va | 
| 4540 | 6c 75 65 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 20 20 | lues)........................... | 
| 4560 | 20 20 28 63 6c 6f 73 71 6c 2d 2d 69 6e 74 65 72    6e 2d 75 6e 62 6f 75 6e 64 0a 20 20 20 20 20 20 | ..(closql--intern-unbound....... | 
| 4580 | 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 6c 6f 73 71 6c 2d 2d | .......................(closql-- | 
| 45a0 | 63 6f 65 72 63 65 20 6f 62 6a 20 27 6c 69 73 74    29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | coerce.obj.'list))))............ | 
| 45c0 | 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 28    63 6f 6e 73 20 28 63 6c 6f 73 71 6c 2d 2d 61 62 | ......(vconcat.(cons.(closql--ab | 
| 45e0 | 62 72 65 76 2d 63 6c 61 73 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | brev-class...................... | 
| 4600 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 65 69 65 69 6f 2d 2d 63 6c 61 73 73 2d 70 20 | ............(if.(eieio--class-p. | 
| 4620 | 63 6c 61 73 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 20 | class).......................... | 
| 4640 | 20 20 20 20 20 20 20 20 20 20 20 20 28 65 69 65    69 6f 2d 2d 63 6c 61 73 73 2d 6e 61 6d 65 20 63 | ............(eieio--class-name.c | 
| 4660 | 6c 61 73 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 20 20 | lass)........................... | 
| 4680 | 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........class))................ | 
| 46a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 76 61 6c 75 65 73 29 29 29 29 0a 20 20 20 20 | .................values))))..... | 
| 46c0 | 20 20 28 70 63 61 73 65 2d 64 6f 6c 69 73 74 20    28 60 28 2c 73 6c 6f 74 20 2e 20 2c 76 61 6c 75 | ..(pcase-dolist.(`(,slot...,valu | 
| 46e0 | 65 29 20 61 6c 69 73 74 29 0a 20 20 20 20 20 20    20 20 28 63 6c 6f 73 71 6c 2d 2d 64 73 65 74 20 | e).alist).........(closql--dset. | 
| 4700 | 64 62 20 6f 62 6a 20 73 6c 6f 74 20 76 61 6c 75    65 29 29 29 29 0a 20 20 6f 62 6a 29 0a 0a 28 63 | db.obj.slot.value))))...obj)..(c | 
| 4720 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f 73    71 6c 2d 64 65 6c 65 74 65 20 28 28 6f 62 6a 20 | l-defmethod.closql-delete.((obj. | 
| 4740 | 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29 29 0a    20 20 28 6c 65 74 20 28 28 6b 65 79 20 28 6f 72 | closql-object))...(let.((key.(or | 
| 4760 | 65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20 63    6c 6f 73 71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65 | ef-default.obj.closql-primary-ke | 
| 4780 | 79 29 29 29 0a 20 20 20 20 28 65 6d 61 63 73 71    6c 20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66 20 | y))).....(emacsql.(closql--oref. | 
| 47a0 | 6f 62 6a 20 27 63 6c 6f 73 71 6c 2d 64 61 74 61    62 61 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 | obj.'closql-database)........... | 
| 47c0 | 20 20 20 5b 3a 64 65 6c 65 74 65 2d 66 72 6f 6d    20 24 69 31 20 3a 77 68 65 72 65 20 28 3d 20 24 | ...[:delete-from.$i1.:where.(=.$ | 
| 47e0 | 69 32 20 24 73 33 29 5d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6f 72 65 66 2d 64 65 66 61 | i2.$s3)]..............(oref-defa | 
| 4800 | 75 6c 74 20 6f 62 6a 20 63 6c 6f 73 71 6c 2d 74    61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 | ult.obj.closql-table)........... | 
| 4820 | 20 20 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 | ...key..............(closql--ore | 
| 4840 | 66 20 6f 62 6a 20 6b 65 79 29 29 29 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f | f.obj.key))))..(cl-defmethod.clo | 
| 4860 | 73 71 6c 2d 72 65 6c 6f 61 64 20 28 28 6f 62 6a    20 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29 29 | sql-reload.((obj.closql-object)) | 
| 4880 | 0a 20 20 28 6f 72 20 28 63 6c 6f 73 71 6c 2d 67    65 74 20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66 | ...(or.(closql-get.(closql--oref | 
| 48a0 | 20 6f 62 6a 20 27 63 6c 6f 73 71 6c 2d 64 61 74    61 62 61 73 65 29 0a 20 20 20 20 20 20 20 20 20 | .obj.'closql-database).......... | 
| 48c0 | 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c    2d 2d 6f 72 65 66 20 6f 62 6a 20 28 6f 72 65 66 | .........(closql--oref.obj.(oref | 
| 48e0 | 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20 63 6c 6f    73 71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65 79 29 | -default.obj.closql-primary-key) | 
| 4900 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 65 69 65 69 6f 2d 6f 62 6a 65 63 | )...................(eieio-objec | 
| 4920 | 74 2d 63 6c 61 73 73 20 6f 62 6a 29 29 0a 20 20    20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 6e | t-class.obj)).......(error."Cann | 
| 4940 | 6f 74 20 72 65 6c 6f 61 64 20 6f 62 6a 65 63 74    22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | ot.reload.object")))..(cl-defmet | 
| 4960 | 68 6f 64 20 63 6c 6f 73 71 6c 2d 67 65 74 20 28    28 64 62 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 | hod.closql-get.((db.closql-datab | 
| 4980 | 61 73 65 29 20 69 64 65 6e 74 20 26 6f 70 74 69    6f 6e 61 6c 20 63 6c 61 73 73 20 72 65 73 6f 6c | ase).ident.&optional.class.resol | 
| 49a0 | 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 63 6c    61 73 73 0a 20 20 20 20 28 73 65 74 71 20 63 6c | ve)...(unless.class.....(setq.cl | 
| 49c0 | 61 73 73 20 28 6f 72 65 66 2d 64 65 66 61 75 6c    74 20 64 62 20 6f 62 6a 65 63 74 2d 63 6c 61 73 | ass.(oref-default.db.object-clas | 
| 49e0 | 73 29 29 29 0a 20 20 28 61 6e 64 2d 6c 65 74 2a    20 28 28 72 6f 77 20 28 63 61 72 20 28 65 6d 61 | s)))...(and-let*.((row.(car.(ema | 
| 4a00 | 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 24 69 31 0a 20 20 20 | csql.db.[:select.*.:from.$i1.... | 
| 4a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 4a40 | 20 3a 77 68 65 72 65 20 28 3d 20 24 69 32 20 24    73 33 29 5d 0a 20 20 20 20 20 20 20 20 20 20 20 | .:where.(=.$i2.$s3)]............ | 
| 4a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6f 72 65 66 2d 64 65 66 61 75 | .....................(oref-defau | 
| 4a80 | 6c 74 20 63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d    74 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 | lt.class.closql-table).......... | 
| 4aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6f 72 65 66 2d 64 65 66 | .......................(oref-def | 
| 4ac0 | 61 75 6c 74 20 63 6c 61 73 73 20 63 6c 6f 73 71    6c 2d 70 72 69 6d 61 72 79 2d 6b 65 79 29 0a 20 | ault.class.closql-primary-key).. | 
| 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 20 20 20 20 69 | ...............................i | 
| 4b00 | 64 65 6e 74 29 29 29 29 0a 20 20 20 20 28 63 6c    6f 73 71 6c 2d 2d 72 65 6d 61 6b 65 2d 69 6e 73 | dent)))).....(closql--remake-ins | 
| 4b20 | 74 61 6e 63 65 20 63 6c 61 73 73 20 64 62 20 72    6f 77 20 72 65 73 6f 6c 76 65 29 29 29 0a 0a 28 | tance.class.db.row.resolve)))..( | 
| 4b40 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f    73 71 6c 2d 71 75 65 72 79 20 28 28 64 62 20 63 | cl-defmethod.closql-query.((db.c | 
| 4b60 | 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73 65 29 20    26 6f 70 74 69 6f 6e 61 6c 20 73 65 6c 65 63 74 | losql-database).&optional.select | 
| 4b80 | 20 70 72 65 64 20 63 6c 61 73 73 29 0a 20 20 28    69 66 20 73 65 6c 65 63 74 0a 20 20 20 20 20 20 | .pred.class)...(if.select....... | 
| 4ba0 | 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 63 6c    6f 73 71 6c 2d 73 65 6c 65 63 74 20 64 62 20 73 | (let.((value.(closql-select.db.s | 
| 4bc0 | 65 6c 65 63 74 20 70 72 65 64 20 63 6c 61 73 73    29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 | elect.pred.class))).........(if. | 
| 4be0 | 28 61 6e 64 20 73 65 6c 65 63 74 20 28 73 79 6d    62 6f 6c 70 20 73 65 6c 65 63 74 29 29 0a 20 20 | (and.select.(symbolp.select))... | 
| 4c00 | 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61    72 20 23 27 63 61 72 20 76 61 6c 75 65 29 0a 20 | ..........(mapcar.#'car.value).. | 
| 4c20 | 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29    0a 20 20 20 20 28 63 6c 6f 73 71 6c 2d 65 6e 74 | .........value)).....(closql-ent | 
| 4c40 | 72 69 65 73 20 64 62 20 70 72 65 64 20 63 6c 61    73 73 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | ries.db.pred.class)))..(cl-defme | 
| 4c60 | 74 68 6f 64 20 63 6c 6f 73 71 6c 2d 65 6e 74 72    69 65 73 20 28 28 64 62 20 63 6c 6f 73 71 6c 2d | thod.closql-entries.((db.closql- | 
| 4c80 | 64 61 74 61 62 61 73 65 29 20 26 6f 70 74 69 6f    6e 61 6c 20 70 72 65 64 20 63 6c 61 73 73 29 0a | database).&optional.pred.class). | 
| 4ca0 | 20 20 28 75 6e 6c 65 73 73 20 63 6c 61 73 73 0a    20 20 20 20 28 73 65 74 71 20 63 6c 61 73 73 20 | ..(unless.class.....(setq.class. | 
| 4cc0 | 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 64 62    20 6f 62 6a 65 63 74 2d 63 6c 61 73 73 29 29 29 | (oref-default.db.object-class))) | 
| 4ce0 | 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62    64 61 20 28 72 6f 77 29 0a 20 20 20 20 20 20 20 | ...(mapcar.(lambda.(row)........ | 
| 4d00 | 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 72 65    6d 61 6b 65 2d 69 6e 73 74 61 6e 63 65 20 63 6c | .....(closql--remake-instance.cl | 
| 4d20 | 61 73 73 20 64 62 20 72 6f 77 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 73 | ass.db.row))...........(closql-s | 
| 4d40 | 65 6c 65 63 74 20 64 62 20 27 2a 20 70 72 65 64    20 63 6c 61 73 73 29 29 29 0a 0a 28 63 6c 2d 64 | elect.db.'*.pred.class)))..(cl-d | 
| 4d60 | 65 66 6d 65 74 68 6f 64 20 63 6c 6f 73 71 6c 2d    73 65 6c 65 63 74 20 28 28 64 62 20 63 6c 6f 73 | efmethod.closql-select.((db.clos | 
| 4d80 | 71 6c 2d 64 61 74 61 62 61 73 65 29 20 73 65 6c    65 63 74 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 | ql-database).select.&optional.pr | 
| 4da0 | 65 64 20 63 6c 61 73 73 29 0a 20 20 28 75 6e 6c    65 73 73 20 63 6c 61 73 73 0a 20 20 20 20 28 73 | ed.class)...(unless.class.....(s | 
| 4dc0 | 65 74 71 20 63 6c 61 73 73 20 28 6f 72 65 66 2d    64 65 66 61 75 6c 74 20 64 62 20 6f 62 6a 65 63 | etq.class.(oref-default.db.objec | 
| 4de0 | 74 2d 63 6c 61 73 73 29 29 29 0a 20 20 28 65 6d    61 63 73 71 6c 20 64 62 0a 20 20 20 20 20 20 20 | t-class)))...(emacsql.db........ | 
| 4e00 | 20 20 20 20 28 76 63 6f 6e 63 61 74 20 5b 3a 73    65 6c 65 63 74 20 24 69 31 20 3a 66 72 6f 6d 20 | ....(vconcat.[:select.$i1.:from. | 
| 4e20 | 24 69 32 5d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 61 6e 64 20 70 72 | $i2].....................(and.pr | 
| 4e40 | 65 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 20 5b 3a 77 68 | ed..........................[:wh | 
| 4e60 | 65 72 65 20 63 6c 61 73 73 20 3a 69 6e 20 24 76    33 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ere.class.:in.$v3])............. | 
| 4e80 | 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20    28 28 6f 72 64 65 72 20 28 6f 72 65 66 2d 64 65 | ........(if-let.((order.(oref-de | 
| 4ea0 | 66 61 75 6c 74 20 63 6c 61 73 73 20 63 6c 6f 73    71 6c 2d 6f 72 64 65 72 2d 62 79 29 29 29 0a 20 | fault.class.closql-order-by))).. | 
| 4ec0 | 20 20 20 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 20 3a | .......................(vector.: | 
| 4ee0 | 6f 72 64 65 72 2d 62 79 20 6f 72 64 65 72 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | order-by.order)................. | 
| 4f00 | 20 20 20 20 20 20 5b 3a 6f 72 64 65 72 2d 62 79    20 5b 28 61 73 63 20 24 69 34 29 5d 5d 29 29 0a | ......[:order-by.[(asc.$i4)]])). | 
| 4f20 | 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63    74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 | ...........select............(or | 
| 4f40 | 65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73    20 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 29 0a 20 | ef-default.class.closql-table).. | 
| 4f60 | 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 70    72 65 64 20 28 63 6c 6f 73 71 6c 2d 77 68 65 72 | ..........(and.pred.(closql-wher | 
| 4f80 | 65 2d 63 6c 61 73 73 2d 69 6e 20 70 72 65 64 20    64 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | e-class-in.pred.db))............ | 
| 4fa0 | 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 63 6c    61 73 73 20 63 6c 6f 73 71 6c 2d 70 72 69 6d 61 | (oref-default.class.closql-prima | 
| 4fc0 | 72 79 2d 6b 65 79 29 29 29 0a 0a 28 64 65 66 75    6e 20 63 6c 6f 73 71 6c 2d 2d 74 61 62 6c 65 2d | ry-key)))..(defun.closql--table- | 
| 4fe0 | 63 6f 6c 75 6d 6e 73 20 28 64 62 20 74 61 62 6c    65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 65 66 | columns.(db.table.&optional.pref | 
| 5000 | 69 78 65 64 29 0a 20 20 28 6d 61 70 63 61 72 20    28 69 66 20 70 72 65 66 69 78 65 64 0a 20 20 20 | ixed)...(mapcar.(if.prefixed.... | 
| 5020 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20    28 28 70 72 65 66 69 78 20 28 69 66 20 28 73 74 | ...........(let.((prefix.(if.(st | 
| 5040 | 72 69 6e 67 70 20 70 72 65 66 69 78 65 64 29 20    70 72 65 66 69 78 65 64 20 74 61 62 6c 65 29 29 | ringp.prefixed).prefixed.table)) | 
| 5060 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c 29 20 | ).................(lambda.(col). | 
| 5080 | 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20    22 25 73 3a 25 73 22 20 70 72 65 66 69 78 20 28 | (intern.(format."%s:%s".prefix.( | 
| 50a0 | 63 61 64 72 20 63 6f 6c 29 29 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 23 27 63 61 64 72 | cadr.col))))).............#'cadr | 
| 50c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6d 61    63 73 71 6c 20 64 62 20 5b 3a 70 72 61 67 6d 61 | )...........(emacsql.db.[:pragma | 
| 50e0 | 20 28 66 75 6e 63 61 6c 6c 20 74 61 62 6c 65 2d    69 6e 66 6f 20 24 69 31 29 5d 20 74 61 62 6c 65 | .(funcall.table-info.$i1)].table | 
| 5100 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73    71 6c 2d 2d 64 62 2d 67 65 74 2d 76 65 72 73 69 | )))..(defun.closql--db-get-versi | 
| 5120 | 6f 6e 20 28 64 62 29 0a 20 20 28 63 61 61 72 20    28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 70 72 | on.(db)...(caar.(emacsql.db.[:pr | 
| 5140 | 61 67 6d 61 20 75 73 65 72 2d 76 65 72 73 69 6f    6e 5d 29 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c | agma.user-version])))..(defun.cl | 
| 5160 | 6f 73 71 6c 2d 2d 64 62 2d 73 65 74 2d 76 65 72    73 69 6f 6e 20 28 64 62 20 76 65 72 73 69 6f 6e | osql--db-set-version.(db.version | 
| 5180 | 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28    69 6e 74 65 67 65 72 70 20 76 65 72 73 69 6f 6e | )...(cl-assert.(integerp.version | 
| 51a0 | 29 29 0a 20 20 28 65 6d 61 63 73 71 6c 20 64 62    20 5b 3a 70 72 61 67 6d 61 20 28 3d 20 75 73 65 | ))...(emacsql.db.[:pragma.(=.use | 
| 51c0 | 72 2d 76 65 72 73 69 6f 6e 20 24 73 31 29 5d 20    76 65 72 73 69 6f 6e 29 29 0a 0a 3b 3b 3b 20 4f | r-version.$s1)].version))..;;;.O | 
| 51e0 | 62 6a 65 63 74 2f 52 6f 77 20 43 6f 6e 76 65 72    73 69 6f 6e 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | bject/Row.Conversion..(cl-defmet | 
| 5200 | 68 6f 64 20 63 6c 6f 73 71 6c 2d 2d 72 65 6d 61    6b 65 2d 69 6e 73 74 61 6e 63 65 20 28 28 63 6c | hod.closql--remake-instance.((cl | 
| 5220 | 61 73 73 20 28 73 75 62 63 6c 61 73 73 20 63 6c    6f 73 71 6c 2d 6f 62 6a 65 63 74 29 29 0a 20 20 | ass.(subclass.closql-object))... | 
| 5240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 5260 | 20 20 20 20 20 64 62 20 72 6f 77 20 26 6f 70 74    69 6f 6e 61 6c 20 72 65 73 6f 6c 76 65 29 0a 20 | .....db.row.&optional.resolve).. | 
| 5280 | 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28    2c 61 62 62 72 65 76 20 2e 20 2c 76 61 6c 75 65 | .(pcase-let.((`(,abbrev...,value | 
| 52a0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 63 6c 6f 73 71 6c 2d 2d 65 78 74 65 72 | s)................(closql--exter | 
| 52c0 | 6e 2d 75 6e 62 6f 75 6e 64 20 72 6f 77 29 29 29    0a 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6c 61 | n-unbound.row))).....(let*.((cla | 
| 52e0 | 73 73 2d 73 79 6d 20 28 63 6c 6f 73 71 6c 2d 2d    65 78 70 61 6e 64 2d 61 62 62 72 65 76 20 63 6c | ss-sym.(closql--expand-abbrev.cl | 
| 5300 | 61 73 73 20 61 62 62 72 65 76 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 74 68 69 73 20 28 69 | ass.abbrev))............(this.(i | 
| 5320 | 66 20 28 66 62 6f 75 6e 64 70 20 27 72 65 63 6f    72 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f.(fboundp.'record)............. | 
| 5340 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28    28 63 6c 61 73 73 2d 6f 62 6a 20 28 65 69 65 69 | .........(let*.((class-obj.(eiei | 
| 5360 | 6f 2d 2d 63 6c 61 73 73 2d 6f 62 6a 65 63 74 20    63 6c 61 73 73 2d 73 79 6d 29 29 0a 20 20 20 20 | o--class-object.class-sym))..... | 
| 5380 | 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 6f 62 6a 20 28 63 6f | ........................(obj.(co | 
| 53a0 | 70 79 2d 73 65 71 75 65 6e 63 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | py-sequence..................... | 
| 53c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    69 65 69 6f 2d 2d 63 6c 61 73 73 2d 64 65 66 61 | ..............(eieio--class-defa | 
| 53e0 | 75 6c 74 2d 6f 62 6a 65 63 74 2d 63 61 63 68 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ult-object-cache................ | 
| 5400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 63 6c 61 73 73 2d 6f 62 6a 29 29 29 | ....................class-obj))) | 
| 5420 | 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 28 73 65 74 71 20 76 | )........................(setq.v | 
| 5440 | 61 6c 75 65 73 20 28 61 70 70 6c 79 20 23 27 76    65 63 74 6f 72 20 28 63 6f 6e 73 20 64 62 20 76 | alues.(apply.#'vector.(cons.db.v | 
| 5460 | 61 6c 75 65 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 | alues)))........................ | 
| 5480 | 28 64 6f 74 69 6d 65 73 20 28 69 20 28 6c 65 6e    67 74 68 20 28 65 69 65 69 6f 2d 2d 63 6c 61 73 | (dotimes.(i.(length.(eieio--clas | 
| 54a0 | 73 2d 73 6c 6f 74 73 20 63 6c 61 73 73 2d 6f 62    6a 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | s-slots.class-obj)))............ | 
| 54c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61    73 65 74 20 6f 62 6a 20 28 31 2b 20 69 29 20 28 | ..............(aset.obj.(1+.i).( | 
| 54e0 | 61 72 65 66 20 76 61 6c 75 65 73 20 69 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | aref.values.i)))................ | 
| 5500 | 20 20 20 20 20 20 20 20 6f 62 6a 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........obj).................... | 
| 5520 | 28 76 63 6f 6e 63 61 74 20 28 6c 69 73 74 20 63    6c 61 73 73 2d 73 79 6d 20 64 62 29 20 76 61 6c | (vconcat.(list.class-sym.db).val | 
| 5540 | 75 65 73 29 29 29 29 0a 20 20 20 20 20 20 28 77    68 65 6e 20 72 65 73 6f 6c 76 65 0a 20 20 20 20 | ues)))).......(when.resolve..... | 
| 5560 | 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 72 65 73    6f 6c 76 65 2d 73 6c 6f 74 73 20 74 68 69 73 29 | ....(closql--resolve-slots.this) | 
| 5580 | 29 0a 20 20 20 20 20 20 74 68 69 73 29 29 29 0a    0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 | ).......this)))..(cl-defmethod.c | 
| 55a0 | 6c 6f 73 71 6c 2d 2d 72 65 73 6f 6c 76 65 2d 73    6c 6f 74 73 20 28 28 6f 62 6a 20 63 6c 6f 73 71 | losql--resolve-slots.((obj.closq | 
| 55c0 | 6c 2d 6f 62 6a 65 63 74 29 29 0a 20 20 28 64 6f    6c 69 73 74 20 28 73 6c 6f 74 20 28 65 69 65 69 | l-object))...(dolist.(slot.(eiei | 
| 55e0 | 6f 2d 63 6c 61 73 73 2d 73 6c 6f 74 73 20 28 65    69 65 69 6f 2d 2d 6f 62 6a 65 63 74 2d 63 6c 61 | o-class-slots.(eieio--object-cla | 
| 5600 | 73 73 20 6f 62 6a 29 29 29 0a 20 20 20 20 28 73    65 74 71 20 20 73 6c 6f 74 20 28 63 6c 2d 2d 73 | ss.obj))).....(setq..slot.(cl--s | 
| 5620 | 6c 6f 74 2d 64 65 73 63 72 69 70 74 6f 72 2d 6e    61 6d 65 20 73 6c 6f 74 29 29 0a 20 20 20 20 28 | lot-descriptor-name.slot)).....( | 
| 5640 | 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28    73 6c 6f 74 2d 62 6f 75 6e 64 70 20 6f 62 6a 20 | when.(and.(not.(slot-boundp.obj. | 
| 5660 | 73 6c 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6f 72 20 28 63 6c 6f 73 71 | slot))................(or.(closq | 
| 5680 | 6c 2d 2d 73 6c 6f 74 2d 63 6c 61 73 73 20 6f 62    6a 20 73 6c 6f 74 29 0a 20 20 20 20 20 20 20 20 | l--slot-class.obj.slot)......... | 
| 56a0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73    71 6c 2d 2d 73 6c 6f 74 2d 74 61 62 6c 65 20 6f | ...........(closql--slot-table.o | 
| 56c0 | 62 6a 20 73 6c 6f 74 29 29 29 0a 20 20 20 20 20    20 28 63 6c 6f 73 71 6c 2d 2d 6f 73 65 74 20 6f | bj.slot))).......(closql--oset.o | 
| 56e0 | 62 6a 20 73 6c 6f 74 20 28 63 6c 6f 73 71 6c 2d    6f 72 65 66 20 6f 62 6a 20 73 6c 6f 74 29 29 29 | bj.slot.(closql-oref.obj.slot))) | 
| 5700 | 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71    6c 2d 2d 69 6e 74 65 72 6e 2d 75 6e 62 6f 75 6e | ))..(defun.closql--intern-unboun | 
| 5720 | 64 20 28 72 6f 77 29 0a 20 20 28 6d 61 70 63 61    72 20 28 6c 61 6d 62 64 61 20 28 65 6c 74 29 0a | d.(row)...(mapcar.(lambda.(elt). | 
| 5740 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 65 71 20 65 6c 74 20 65 69 65 69 6f 2d 2d 75 | ............(if.(eq.elt.eieio--u | 
| 5760 | 6e 62 6f 75 6e 64 29 20 27 65 69 65 69 6f 2d 75    6e 62 6f 75 6e 64 20 65 6c 74 29 29 0a 20 20 20 | nbound).'eieio-unbound.elt)).... | 
| 5780 | 20 20 20 20 20 20 20 72 6f 77 29 29 0a 0a 28 64    65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d 65 78 74 | .......row))..(defun.closql--ext | 
| 57a0 | 65 72 6e 2d 75 6e 62 6f 75 6e 64 20 28 72 6f 77    29 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d | ern-unbound.(row)...(mapcar.(lam | 
| 57c0 | 62 64 61 20 28 65 6c 74 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 65 71 20 65 6c | bda.(elt).............(if.(eq.el | 
| 57e0 | 74 20 27 65 69 65 69 6f 2d 75 6e 62 6f 75 6e 64    29 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75 6e 64 | t.'eieio-unbound).eieio--unbound | 
| 5800 | 20 65 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20    20 72 6f 77 29 29 0a 0a 28 64 65 66 75 6e 20 63 | .elt))...........row))..(defun.c | 
| 5820 | 6c 6f 73 71 6c 2d 2d 63 6f 65 72 63 65 20 28 6f    62 6a 65 63 74 20 74 79 70 65 29 0a 20 20 28 63 | losql--coerce.(object.type)...(c | 
| 5840 | 6c 2d 63 6f 65 72 63 65 20 28 69 66 20 28 61 6e    64 20 28 66 62 6f 75 6e 64 70 20 27 72 65 63 6f | l-coerce.(if.(and.(fboundp.'reco | 
| 5860 | 72 64 70 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 72 65 63 6f | rdp).......................(reco | 
| 5880 | 72 64 70 20 6f 62 6a 65 63 74 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | rdp.object))..................(l | 
| 58a0 | 65 74 2a 20 28 28 6c 65 6e 20 28 6c 65 6e 67 74    68 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 | et*.((len.(length.object))...... | 
| 58c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 76 65 63 20 28 6d 61 6b 65 2d 76 65 | ...................(vec.(make-ve | 
| 58e0 | 63 74 6f 72 20 6c 65 6e 20 2d 31 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ctor.len.-1))).................. | 
| 5900 | 20 20 28 64 6f 74 69 6d 65 73 20 28 69 20 6c 65    6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(dotimes.(i.len).............. | 
| 5920 | 20 20 20 20 20 20 20 20 28 61 73 65 74 20 76 65    63 20 69 20 28 61 72 65 66 20 6f 62 6a 65 63 74 | ........(aset.vec.i.(aref.object | 
| 5940 | 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 76 65 63 29 0a 20 20 | .i)))....................vec)... | 
| 5960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a    65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .............object)............ | 
| 5980 | 20 20 74 79 70 65 29 29 0a 0a 28 63 6c 2d 64 65    66 6d 65 74 68 6f 64 20 63 6c 6f 73 71 6c 2d 2d | ..type))..(cl-defmethod.closql-- | 
| 59a0 | 61 62 62 72 65 76 2d 63 6c 61 73 73 20 28 28 63    6c 61 73 73 2d 74 61 67 20 73 79 6d 62 6f 6c 29 | abbrev-class.((class-tag.symbol) | 
| 59c0 | 29 0a 20 20 3b 3b 20 54 68 69 73 20 6f 74 68 65    72 20 6d 65 74 68 6f 64 20 69 73 20 6f 6e 6c 79 | )...;;.This.other.method.is.only | 
| 59e0 | 20 75 73 65 64 20 66 6f 72 20 6f 6c 64 2d 73 63    68 6f 6f 6c 20 65 69 65 69 6f 2d 63 6c 61 73 73 | .used.for.old-school.eieio-class | 
| 5a00 | 2d 74 61 67 2d 2d 2a 2e 0a 20 20 28 63 6c 6f 73    71 6c 2d 2d 61 62 62 72 65 76 2d 63 6c 61 73 73 | -tag--*....(closql--abbrev-class | 
| 5a20 | 20 28 69 6e 74 65 72 6e 20 28 73 75 62 73 74 72    69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 | .(intern.(substring.(symbol-name | 
| 5a40 | 20 63 6c 61 73 73 2d 74 61 67 29 20 31 37 29 29    29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f | .class-tag).17))))..(cl-defmetho | 
| 5a60 | 64 20 63 6c 6f 73 71 6c 2d 2d 61 62 62 72 65 76    2d 63 6c 61 73 73 20 28 28 63 6c 61 73 73 20 28 | d.closql--abbrev-class.((class.( | 
| 5a80 | 73 75 62 63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d    6f 62 6a 65 63 74 29 29 29 0a 20 20 28 6c 65 74 | subclass.closql-object)))...(let | 
| 5aa0 | 20 28 28 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 2d    6e 61 6d 65 20 63 6c 61 73 73 29 29 0a 20 20 20 | .((name.(symbol-name.class)).... | 
| 5ac0 | 20 20 20 20 20 28 70 72 65 66 69 78 20 28 6f 72    65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73 | .....(prefix.(oref-default.class | 
| 5ae0 | 20 63 6c 6f 73 71 6c 2d 63 6c 61 73 73 2d 70 72    65 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 28 | .closql-class-prefix)).........( | 
| 5b00 | 73 75 66 66 69 78 20 28 6f 72 65 66 2d 64 65 66    61 75 6c 74 20 63 6c 61 73 73 20 63 6c 6f 73 71 | suffix.(oref-default.class.closq | 
| 5b20 | 6c 2d 63 6c 61 73 73 2d 73 75 66 66 69 78 29 29    29 0a 20 20 20 20 28 69 6e 74 65 72 6e 20 28 73 | l-class-suffix))).....(intern.(s | 
| 5b40 | 75 62 73 74 72 69 6e 67 20 6e 61 6d 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ubstring.name................... | 
| 5b60 | 20 20 20 20 20 28 69 66 20 70 72 65 66 69 78 20    20 20 20 28 6c 65 6e 67 74 68 20 70 72 65 66 69 | .....(if.prefix....(length.prefi | 
| 5b80 | 78 29 20 20 20 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 20 | x)....0)........................ | 
| 5ba0 | 28 69 66 20 73 75 66 66 69 78 20 28 2d 20 28 6c    65 6e 67 74 68 20 73 75 66 66 69 78 29 29 20 6e | (if.suffix.(-.(length.suffix)).n | 
| 5bc0 | 69 6c 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66    6d 65 74 68 6f 64 20 63 6c 6f 73 71 6c 2d 2d 65 | il)))))..(cl-defmethod.closql--e | 
| 5be0 | 78 70 61 6e 64 2d 61 62 62 72 65 76 20 28 28 63    6c 61 73 73 20 28 73 75 62 63 6c 61 73 73 20 63 | xpand-abbrev.((class.(subclass.c | 
| 5c00 | 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29 29 20 61    62 62 72 65 76 29 0a 20 20 28 69 6e 74 65 72 6e | losql-object)).abbrev)...(intern | 
| 5c20 | 20 28 63 6f 6e 63 61 74 20 28 61 6e 64 20 28 6e    6f 74 20 28 66 62 6f 75 6e 64 70 20 27 72 65 63 | .(concat.(and.(not.(fboundp.'rec | 
| 5c40 | 6f 72 64 29 29 20 22 65 69 65 69 6f 2d 63 6c 61    73 73 2d 74 61 67 2d 2d 22 29 0a 20 20 20 20 20 | ord))."eieio-class-tag--")...... | 
| 5c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72    65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73 | .............(oref-default.class | 
| 5c80 | 20 63 6c 6f 73 71 6c 2d 63 6c 61 73 73 2d 70 72    65 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 20 | .closql-class-prefix)........... | 
| 5ca0 | 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d    6e 61 6d 65 20 61 62 62 72 65 76 29 0a 20 20 20 | ........(symbol-name.abbrev).... | 
| 5cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6f 72 65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 | ...............(oref-default.cla | 
| 5ce0 | 73 73 20 63 6c 6f 73 71 6c 2d 63 6c 61 73 73 2d    73 75 66 66 69 78 29 29 29 29 0a 0a 28 64 65 66 | ss.closql-class-suffix))))..(def | 
| 5d00 | 75 6e 20 63 6c 6f 73 71 6c 2d 2d 77 68 65 72 65    2d 65 71 75 61 6c 20 28 76 61 6c 75 65 20 6f 66 | un.closql--where-equal.(value.of | 
| 5d20 | 66 73 65 74 29 0a 20 20 28 76 65 63 74 6f 72 0a    20 20 20 28 63 6f 6e 73 20 27 61 6e 64 0a 20 20 | fset)...(vector....(cons.'and... | 
| 5d40 | 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28    6c 61 6d 62 64 61 20 28 76 29 0a 20 20 20 20 20 | .......(mapcar.(lambda.(v)...... | 
| 5d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69    66 20 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..............(if.v............. | 
| 5d80 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74    20 27 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(list.'=............. | 
| 5da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 | .................(intern.(format | 
| 5dc0 | 20 22 24 69 25 69 22 20 28 63 6c 2d 69 6e 63 66    20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 | ."$i%i".(cl-incf.offset)))...... | 
| 5de0 | 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 6e 74 65 72 6e 20 | ........................(intern. | 
| 5e00 | 28 66 6f 72 6d 61 74 20 22 24 73 25 69 22 20 28    63 6c 2d 69 6e 63 66 20 6f 66 66 73 65 74 29 29 | (format."$s%i".(cl-incf.offset)) | 
| 5e20 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 69 | ))......................(list.'i | 
| 5e40 | 73 6e 75 6c 6c 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 | snull........................... | 
| 5e60 | 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74    20 22 24 69 25 69 22 20 28 31 2d 20 28 63 6c 2d | .(intern.(format."$i%i".(1-.(cl- | 
| 5e80 | 69 6e 63 66 20 6f 66 66 73 65 74 20 32 29 29 29    29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | incf.offset.2)))))))............ | 
| 5ea0 | 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d 77 | ......value))))..(defun.closql-w | 
| 5ec0 | 68 65 72 65 2d 63 6c 61 73 73 2d 69 6e 20 28 61    72 67 73 20 26 6f 70 74 69 6f 6e 61 6c 20 64 62 | here-class-in.(args.&optional.db | 
| 5ee0 | 29 0a 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f    6c 70 20 61 72 67 73 29 0a 20 20 20 20 28 73 65 | )...(when.(symbolp.args).....(se | 
| 5f00 | 74 71 20 61 72 67 73 20 28 6c 69 73 74 20 61 72    67 73 29 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 | tq.args.(list.args)))...(cond... | 
| 5f20 | 20 28 28 76 65 63 74 6f 72 70 20 61 72 67 73 29    0a 20 20 20 20 28 75 6e 6c 65 73 73 20 64 62 0a | .((vectorp.args).....(unless.db. | 
| 5f40 | 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 6c    6f 73 71 6c 2d 77 68 65 72 65 2d 63 6c 61 73 73 | ......(error."closql-where-class | 
| 5f60 | 2d 69 6e 3a 20 44 42 20 63 61 6e 6e 6f 74 20 62    65 20 6e 69 6c 20 69 66 20 41 52 47 53 20 69 73 | -in:.DB.cannot.be.nil.if.ARGS.is | 
| 5f80 | 20 61 20 76 65 63 74 6f 72 22 29 29 0a 20 20 20    20 28 6c 65 74 20 28 28 63 6c 61 73 73 20 28 6f | .a.vector")).....(let.((class.(o | 
| 5fa0 | 72 65 66 2d 64 65 66 61 75 6c 74 20 64 62 20 6f    62 6a 65 63 74 2d 63 6c 61 73 73 29 29 0a 20 20 | ref-default.db.object-class))... | 
| 5fc0 | 20 20 20 20 20 20 20 20 28 61 62 62 72 65 76 73    20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 6d 61 | ........(abbrevs.nil)).......(ma | 
| 5fe0 | 70 63 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | pc.(lambda.(arg)...............( | 
| 6000 | 6c 65 74 20 28 28 73 74 72 20 28 73 79 6d 62 6f    6c 2d 6e 61 6d 65 20 61 72 67 29 29 29 0a 20 20 | let.((str.(symbol-name.arg)))... | 
| 6020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75    6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 6d 61 | ..............(unless.(string-ma | 
| 6040 | 74 63 68 20 22 5c 5c 60 5c 5c 28 21 5c 5c 29 3f    5c 5c 28 5b 5e 2a 5d 2b 5c 5c 29 5c 5c 28 5c 5c | tch."\\`\\(!\\)?\\([^*]+\\)\\(\\ | 
| 6060 | 2a 5c 5c 29 3f 5c 5c 27 22 20 73 74 72 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *\\)?\\'".str).................. | 
| 6080 | 20 28 65 72 72 6f 72 20 22 63 6c 6f 73 71 6c 2d    77 68 65 72 65 2d 63 6c 61 73 73 2d 69 6e 3a 20 | .(error."closql-where-class-in:. | 
| 60a0 | 69 6e 76 61 6c 69 64 20 74 79 70 65 3a 20 25 73    22 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 20 | invalid.type:.%s".arg))......... | 
| 60c0 | 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28    65 78 63 6c 75 64 65 20 28 6d 61 74 63 68 2d 62 | ........(let*.((exclude.(match-b | 
| 60e0 | 65 67 69 6e 6e 69 6e 67 20 31 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eginning.1)).................... | 
| 6100 | 20 20 20 20 28 61 20 28 69 6e 74 65 72 6e 20 28    6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 73 | ....(a.(intern.(match-string.2.s | 
| 6120 | 74 72 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 28 61 20 | tr)))........................(a. | 
| 6140 | 28 63 6f 6e 64 20 28 28 6d 61 74 63 68 2d 62 65    67 69 6e 6e 69 6e 67 20 33 29 0a 20 20 20 20 20 | (cond.((match-beginning.3)...... | 
| 6160 | 20 20 20 20 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 6c 6f | ............................(clo | 
| 6180 | 73 71 6c 2d 2d 6c 69 73 74 2d 73 75 62 61 62 62    72 65 76 73 0a 20 20 20 20 20 20 20 20 20 20 20 | sql--list-subabbrevs............ | 
| 61a0 | 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 6c 6f 73 71 6c 2d 2d | .......................(closql-- | 
| 61c0 | 65 78 70 61 6e 64 2d 61 62 62 72 65 76 20 63 6c    61 73 73 20 61 29 29 29 0a 20 20 20 20 20 20 20 | expand-abbrev.class.a)))........ | 
| 61e0 | 20 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 6f 74 20 28 | .........................((not.( | 
| 6200 | 63 6c 61 73 73 2d 61 62 73 74 72 61 63 74 2d 70    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | class-abstract-p................ | 
| 6220 | 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 6c 6f 73 71 6c 2d | ........................(closql- | 
| 6240 | 2d 65 78 70 61 6e 64 2d 61 62 62 72 65 76 20 63    6c 61 73 73 20 61 29 29 29 0a 20 20 20 20 20 20 | -expand-abbrev.class.a)))....... | 
| 6260 | 20 20 20 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 69 73 74 | ...........................(list | 
| 6280 | 20 61 29 29 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | .a)))))...................(setq. | 
| 62a0 | 61 62 62 72 65 76 73 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 | abbrevs......................... | 
| 62c0 | 28 69 66 20 65 78 63 6c 75 64 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (if.exclude..................... | 
| 62e0 | 20 20 20 20 20 20 20 20 28 63 6c 2d 73 65 74 2d    64 69 66 66 65 72 65 6e 63 65 20 61 62 62 72 65 | ........(cl-set-difference.abbre | 
| 6300 | 76 73 20 61 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 | vs.a)........................... | 
| 6320 | 28 6e 63 6f 6e 63 20 61 62 62 72 65 76 73 20 61    29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | (nconc.abbrevs.a)))))).......... | 
| 6340 | 20 20 20 61 72 67 73 29 0a 20 20 20 20 20 20 28    76 63 6f 6e 63 61 74 20 61 62 62 72 65 76 73 29 | ...args).......(vconcat.abbrevs) | 
| 6360 | 29 29 0a 20 20 20 28 28 76 63 6f 6e 63 61 74 0a    20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 | ))....((vconcat......(mapcar.#'c | 
| 6380 | 6c 6f 73 71 6c 2d 2d 61 62 62 72 65 76 2d 63 6c    61 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | losql--abbrev-class............. | 
| 63a0 | 20 28 63 6c 2d 6d 61 70 63 61 6e 20 28 6c 61 6d    62 64 61 20 28 73 79 6d 29 0a 20 20 20 20 20 20 | .(cl-mapcan.(lambda.(sym)....... | 
| 63c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6c 65 74 20 28 28 73 74 72 20 28 | ....................(let.((str.( | 
| 63e0 | 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | symbol-name.sym))).............. | 
| 6400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6f 6e 64 20 28 28 73 74 72 69 6e 67 2d 73 75 | ...............(cond.((string-su | 
| 6420 | 66 66 69 78 2d 70 20 22 2d 2d 65 69 65 69 6f 2d    63 68 69 6c 64 70 22 20 73 74 72 29 0a 20 20 20 | ffix-p."--eieio-childp".str).... | 
| 6440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 6460 | 28 63 6c 6f 73 71 6c 2d 2d 6c 69 73 74 2d 73 75    62 63 6c 61 73 73 65 73 0a 20 20 20 20 20 20 20 | (closql--list-subclasses........ | 
| 6480 | 20 20 20 20 20 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 6e | .............................(in | 
| 64a0 | 74 65 72 6e 20 28 73 75 62 73 74 72 69 6e 67 20    73 74 72 20 30 20 2d 31 34 29 29 20 6e 69 6c 29 | tern.(substring.str.0.-14)).nil) | 
| 64c0 | 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 | )............................... | 
| 64e0 | 20 20 20 20 28 28 73 74 72 69 6e 67 2d 73 75 66    66 69 78 2d 70 20 22 2d 70 22 20 73 74 72 29 0a | ....((string-suffix-p."-p".str). | 
| 6500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ | 
| 6520 | 20 20 20 28 6c 69 73 74 20 28 69 6e 74 65 72 6e    20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 20 | ...(list.(intern.(substring.str. | 
| 6540 | 30 20 2d 32 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 | 0.-2))))........................ | 
| 6560 | 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 69 73    74 20 73 79 6d 29 29 29 29 29 0a 20 20 20 20 20 | ...........((list.sym)))))...... | 
| 6580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 61 72 67 73 29 29 29 29 29 29 0a 0a 28 | ...................args))))))..( | 
| 65a0 | 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d 6c 69    73 74 2d 73 75 62 63 6c 61 73 73 65 73 20 28 63 | defun.closql--list-subclasses.(c | 
| 65c0 | 6c 61 73 73 20 26 6f 70 74 69 6f 6e 61 6c 20 72    65 73 75 6c 74 29 0a 20 20 28 75 6e 6c 65 73 73 | lass.&optional.result)...(unless | 
| 65e0 | 20 28 63 6c 61 73 73 2d 61 62 73 74 72 61 63 74    2d 70 20 63 6c 61 73 73 29 0a 20 20 20 20 28 63 | .(class-abstract-p.class).....(c | 
| 6600 | 6c 2d 70 75 73 68 6e 65 77 20 63 6c 61 73 73 20    72 65 73 75 6c 74 29 29 0a 20 20 28 64 6f 6c 69 | l-pushnew.class.result))...(doli | 
| 6620 | 73 74 20 28 63 68 69 6c 64 20 28 65 69 65 69 6f    2d 2d 63 6c 61 73 73 2d 63 68 69 6c 64 72 65 6e | st.(child.(eieio--class-children | 
| 6640 | 20 28 63 6c 2d 2d 66 69 6e 64 2d 63 6c 61 73 73    20 63 6c 61 73 73 29 29 29 0a 20 20 20 20 28 73 | .(cl--find-class.class))).....(s | 
| 6660 | 65 74 71 20 72 65 73 75 6c 74 20 28 63 6c 6f 73    71 6c 2d 2d 6c 69 73 74 2d 73 75 62 63 6c 61 73 | etq.result.(closql--list-subclas | 
| 6680 | 73 65 73 20 63 68 69 6c 64 20 72 65 73 75 6c 74    29 29 29 0a 20 20 72 65 73 75 6c 74 29 0a 0a 28 | ses.child.result)))...result)..( | 
| 66a0 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f    73 71 6c 2d 2d 6c 69 73 74 2d 73 75 62 61 62 62 | cl-defmethod.closql--list-subabb | 
| 66c0 | 72 65 76 73 20 28 28 63 6c 61 73 73 20 28 73 75    62 63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d 6f 62 | revs.((class.(subclass.closql-ob | 
| 66e0 | 6a 65 63 74 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 | ject)).......................... | 
| 6700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f    70 74 69 6f 6e 61 6c 20 77 69 6c 64 63 61 72 64 | ..............&optional.wildcard | 
| 6720 | 73 29 0a 20 20 28 63 6c 2d 6c 61 62 65 6c 73 0a    20 20 20 20 20 20 28 28 74 79 70 65 73 20 28 63 | s)...(cl-labels.......((types.(c | 
| 6740 | 6c 61 73 73 29 0a 20 20 20 20 20 20 20 20 20 28    6c 65 74 20 28 28 63 68 69 6c 64 72 65 6e 20 28 | lass)..........(let.((children.( | 
| 6760 | 65 69 65 69 6f 2d 2d 63 6c 61 73 73 2d 63 68 69    6c 64 72 65 6e 20 28 63 6c 2d 2d 66 69 6e 64 2d | eieio--class-children.(cl--find- | 
| 6780 | 63 6c 61 73 73 20 63 6c 61 73 73 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | class.class)))................;; | 
| 67a0 | 20 41 6e 20 61 62 73 74 72 61 63 74 20 62 61 73    65 2d 63 6c 61 73 73 20 6d 61 79 20 76 69 6f 6c | .An.abstract.base-class.may.viol | 
| 67c0 | 61 74 65 20 69 74 73 20 6f 77 6e 20 6e 61 6d 69    6e 67 20 72 75 6c 65 73 2e 0a 20 20 20 20 20 20 | ate.its.own.naming.rules........ | 
| 67e0 | 20 20 20 20 20 20 20 20 20 28 61 62 62 72 65 76    20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 | .........(abbrev.(ignore-errors. | 
| 6800 | 28 63 6c 6f 73 71 6c 2d 2d 61 62 62 72 65 76 2d    63 6c 61 73 73 20 63 6c 61 73 73 29 29 29 29 0a | (closql--abbrev-class.class)))). | 
| 6820 | 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e    63 20 28 61 6e 64 20 28 6e 6f 74 20 28 63 6c 61 | ...........(nconc.(and.(not.(cla | 
| 6840 | 73 73 2d 61 62 73 74 72 61 63 74 2d 70 20 63 6c    61 73 73 29 29 20 28 6c 69 73 74 20 61 62 62 72 | ss-abstract-p.class)).(list.abbr | 
| 6860 | 65 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 61 6e 64 20 77 69 6c 64 | ev))...................(and.wild | 
| 6880 | 63 61 72 64 73 20 63 68 69 6c 64 72 65 6e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cards.children.................. | 
| 68a0 | 20 20 20 20 20 20 28 6c 69 73 74 20 28 69 66 20    61 62 62 72 65 76 20 28 69 6e 74 65 72 6e 20 28 | ......(list.(if.abbrev.(intern.( | 
| 68c0 | 66 6f 72 6d 61 74 20 22 25 73 2a 22 20 61 62 62    72 65 76 29 29 20 27 2a 29 29 29 0a 20 20 20 20 | format."%s*".abbrev)).'*)))..... | 
| 68e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6c 2d 6d 61 70 63 61 6e 20 23 27 74 79 70 65 73 | ..............(cl-mapcan.#'types | 
| 6900 | 20 63 68 69 6c 64 72 65 6e 29 29 29 29 29 0a 20    20 20 20 28 73 6f 72 74 20 28 74 79 70 65 73 20 | .children))))).....(sort.(types. | 
| 6920 | 63 6c 61 73 73 29 20 23 27 73 74 72 69 6e 67 3c    29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 | class).#'string<)))..(cl-defmeth | 
| 6940 | 6f 64 20 63 6c 6f 73 71 6c 2d 2d 73 65 74 2d 6f    62 6a 65 63 74 2d 63 6c 61 73 73 20 28 28 64 62 | od.closql--set-object-class.((db | 
| 6960 | 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73 65    29 20 6f 62 6a 20 63 6c 61 73 73 29 0a 20 20 28 | .closql-database).obj.class)...( | 
| 6980 | 6c 65 74 2a 20 28 28 74 61 62 6c 65 20 28 6f 72    65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20 63 | let*.((table.(oref-default.obj.c | 
| 69a0 | 6c 6f 73 71 6c 2d 74 61 62 6c 65 29 29 0a 20 20    20 20 20 20 20 20 20 28 6b 65 79 20 20 20 28 6f | losql-table))..........(key...(o | 
| 69c0 | 72 65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20    63 6c 6f 73 71 6c 2d 70 72 69 6d 61 72 79 2d 6b | ref-default.obj.closql-primary-k | 
| 69e0 | 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 69    64 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 | ey))..........(id....(closql--or | 
| 6a00 | 65 66 20 6f 62 6a 20 6b 65 79 29 29 29 0a 20 20    20 20 28 61 73 65 74 20 6f 62 6a 20 30 0a 20 20 | ef.obj.key))).....(aset.obj.0... | 
| 6a20 | 20 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f    75 6e 64 70 20 27 72 65 63 6f 72 64 29 0a 20 20 | ........(if.(fboundp.'record)... | 
| 6a40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65    66 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 | ............(aref.(copy-sequence | 
| 6a60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 65 69 65 69 6f 2d 2d 63 6c | ......................(eieio--cl | 
| 6a80 | 61 73 73 2d 64 65 66 61 75 6c 74 2d 6f 62 6a 65    63 74 2d 63 61 63 68 65 0a 20 20 20 20 20 20 20 | ass-default-object-cache........ | 
| 6aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    65 69 65 69 6f 2d 2d 63 6c 61 73 73 2d 6f 62 6a | ...............(eieio--class-obj | 
| 6ac0 | 65 63 74 20 63 6c 61 73 73 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ect.class))).................... | 
| 6ae0 | 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 | .0).............(intern.(format. | 
| 6b00 | 22 65 69 65 69 6f 2d 63 6c 61 73 73 2d 74 61 67    2d 2d 25 73 22 20 63 6c 61 73 73 29 29 29 29 0a | "eieio-class-tag--%s".class)))). | 
| 6b20 | 20 20 20 20 28 65 6d 61 63 73 71 6c 20 64 62 20    5b 3a 75 70 64 61 74 65 20 24 69 31 20 3a 73 65 | ....(emacsql.db.[:update.$i1.:se | 
| 6b40 | 74 20 28 3d 20 63 6c 61 73 73 20 24 73 32 29 20    3a 77 68 65 72 65 20 28 3d 20 24 69 33 20 24 73 | t.(=.class.$s2).:where.(=.$i3.$s | 
| 6b60 | 34 29 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 | 4)]..............table.......... | 
| 6b80 | 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 61 62 62    72 65 76 2d 63 6c 61 73 73 20 63 6c 61 73 73 29 | ....(closql--abbrev-class.class) | 
| 6ba0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65    79 20 69 64 29 29 29 0a 0a 3b 3b 3b 20 45 78 70 | ..............key.id)))..;;;.Exp | 
| 6bc0 | 65 72 69 6d 65 6e 74 61 6c 0a 0a 28 64 65 66 75    6e 20 63 6c 6f 73 71 6c 2d 2d 69 72 65 66 20 28 | erimental..(defun.closql--iref.( | 
| 6be0 | 6f 62 6a 20 73 6c 6f 74 29 0a 20 20 28 70 63 61    73 65 2d 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 | obj.slot)...(pcase-let*.......(( | 
| 6c00 | 64 62 20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66    20 6f 62 6a 20 27 63 6c 6f 73 71 6c 2d 64 61 74 | db.(closql--oref.obj.'closql-dat | 
| 6c20 | 61 62 61 73 65 29 29 0a 20 20 20 20 20 20 20 28    60 28 2c 73 6c 6f 74 2d 74 61 62 6c 65 20 2c 64 | abase))........(`(,slot-table.,d | 
| 6c40 | 61 74 61 2d 74 61 62 6c 65 29 0a 20 20 20 20 20    20 20 20 28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 | ata-table).........(closql--slot | 
| 6c60 | 2d 74 61 62 6c 65 73 20 6f 62 6a 20 73 6c 6f 74    29 29 0a 20 20 20 20 20 20 20 28 60 28 2c 77 68 | -tables.obj.slot))........(`(,wh | 
| 6c80 | 65 72 65 20 2c 73 6c 6f 74 2d 6a 6f 69 6e 29 20    20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 | ere.,slot-join)...........(closq | 
| 6ca0 | 6c 2d 2d 74 61 62 6c 65 2d 63 6f 6c 75 6d 6e 73    20 64 62 20 73 6c 6f 74 2d 74 61 62 6c 65 29 29 | l--table-columns.db.slot-table)) | 
| 6cc0 | 0a 20 20 20 20 20 20 20 28 60 28 2c 5f 20 20 20    20 20 2c 64 61 74 61 2d 6a 6f 69 6e 20 2e 20 2c | ........(`(,_.....,data-join..., | 
| 6ce0 | 73 65 6c 65 63 74 29 20 28 63 6c 6f 73 71 6c 2d    2d 74 61 62 6c 65 2d 63 6f 6c 75 6d 6e 73 20 64 | select).(closql--table-columns.d | 
| 6d00 | 62 20 64 61 74 61 2d 74 61 62 6c 65 29 29 0a 20    20 20 20 20 20 20 28 6f 62 6a 65 63 74 2d 69 64 | b.data-table))........(object-id | 
| 6d20 | 20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66 20 6f    62 6a 20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 | .(closql--oref.obj.(oref-default | 
| 6d40 | 20 6f 62 6a 20 63 6c 6f 73 71 6c 2d 70 72 69 6d    61 72 79 2d 6b 65 79 29 29 29 29 0a 20 20 20 20 | .obj.closql-primary-key))))..... | 
| 6d60 | 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 73 65    6c 65 63 74 20 24 69 31 20 3a 66 72 6f 6d 20 24 | (emacsql.db.[:select.$i1.:from.$ | 
| 6d80 | 69 32 20 3a 6a 6f 69 6e 20 24 69 33 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f | i2.:join.$i3..................:o | 
| 6da0 | 6e 20 28 3d 20 24 69 34 20 24 69 35 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | n.(=.$i4.$i5)..................: | 
| 6dc0 | 77 68 65 72 65 20 28 3d 20 24 69 36 20 24 73 37    29 20 3a 6f 72 64 65 72 2d 62 79 20 5b 28 61 73 | where.(=.$i6.$s7).:order-by.[(as | 
| 6de0 | 63 20 24 69 38 29 5d 5d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 73 | c.$i8)]]..............(vconcat.s | 
| 6e00 | 65 6c 65 63 74 29 20 64 61 74 61 2d 74 61 62 6c    65 20 73 6c 6f 74 2d 74 61 62 6c 65 0a 20 20 20 | elect).data-table.slot-table.... | 
| 6e20 | 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72    6e 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25 73 | ..........(intern.(format."%s:%s | 
| 6e40 | 22 20 73 6c 6f 74 2d 74 61 62 6c 65 20 73 6c 6f    74 2d 6a 6f 69 6e 29 29 0a 20 20 20 20 20 20 20 | ".slot-table.slot-join))........ | 
| 6e60 | 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 28 66    6f 72 6d 61 74 20 22 25 73 3a 25 73 22 20 64 61 | ......(intern.(format."%s:%s".da | 
| 6e80 | 74 61 2d 74 61 62 6c 65 20 64 61 74 61 2d 6a 6f    69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ta-table.data-join))............ | 
| 6ea0 | 20 20 77 68 65 72 65 20 6f 62 6a 65 63 74 2d 69    64 20 28 63 61 72 20 73 65 6c 65 63 74 29 29 29 | ..where.object-id.(car.select))) | 
| 6ec0 | 29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c    2d 2d 73 6c 6f 74 2d 74 61 62 6c 65 73 20 28 6f | )..(defun.closql--slot-tables.(o | 
| 6ee0 | 62 6a 20 73 6c 6f 74 29 0a 20 20 28 6c 65 74 20    28 28 74 61 62 6c 65 73 20 28 63 6c 6f 73 71 6c | bj.slot)...(let.((tables.(closql | 
| 6f00 | 2d 2d 73 6c 6f 74 2d 67 65 74 20 6f 62 6a 20 73    6c 6f 74 20 3a 63 6c 6f 73 71 6c 2d 74 61 62 6c | --slot-get.obj.slot.:closql-tabl | 
| 6f20 | 65 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73    20 28 6c 69 73 74 70 20 74 61 62 6c 65 73 29 0a | e))).....(unless.(listp.tables). | 
| 6f40 | 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 25 73    20 69 73 6e 27 74 20 61 6e 20 69 6e 64 69 72 65 | ......(error."%s.isn't.an.indire | 
| 6f60 | 63 74 20 73 6c 6f 74 22 20 73 6c 6f 74 29 29 0a    20 20 20 20 28 6c 69 73 74 20 28 69 6e 74 65 72 | ct.slot".slot)).....(list.(inter | 
| 6f80 | 6e 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63    65 20 22 2d 22 20 22 5f 22 20 28 73 79 6d 62 6f | n.(string-replace."-"."_".(symbo | 
| 6fa0 | 6c 2d 6e 61 6d 65 20 28 6e 74 68 20 30 20 74 61    62 6c 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 | l-name.(nth.0.tables))))........ | 
| 6fc0 | 20 20 20 28 69 6e 74 65 72 6e 20 28 73 74 72 69    6e 67 2d 72 65 70 6c 61 63 65 20 22 2d 22 20 22 | ...(intern.(string-replace."-"." | 
| 6fe0 | 5f 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20    28 6e 74 68 20 31 20 74 61 62 6c 65 73 29 29 29 | _".(symbol-name.(nth.1.tables))) | 
| 7000 | 29 29 29 29 0a 0a 3b 3b 3b 20 55 74 69 6c 69 74    69 65 73 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 | ))))..;;;.Utilities..(defun.clos | 
| 7020 | 71 6c 2d 66 6f 72 6d 61 74 20 28 6f 62 6a 65 63    74 20 73 74 72 69 6e 67 20 26 72 65 73 74 20 73 | ql-format.(object.string.&rest.s | 
| 7040 | 6c 6f 74 73 29 0a 20 20 22 46 6f 72 6d 61 74 20    61 20 73 74 72 69 6e 67 20 6f 75 74 20 6f 66 20 | lots)..."Format.a.string.out.of. | 
| 7060 | 61 20 66 6f 72 6d 61 74 20 53 54 52 49 4e 47 20    61 6e 64 20 61 6e 20 4f 42 4a 45 43 54 27 73 20 | a.format.STRING.and.an.OBJECT's. | 
| 7080 | 53 4c 4f 54 53 2e 0a 0a 53 54 52 49 4e 47 20 69    73 20 61 20 66 6f 72 6d 61 74 2d 73 74 72 69 6e | SLOTS...STRING.is.a.format-strin | 
| 70a0 | 67 20 6c 69 6b 65 20 66 6f 72 20 60 66 6f 72 6d    61 74 27 2e 20 20 4f 42 4a 45 43 54 20 69 73 20 | g.like.for.`format'...OBJECT.is. | 
| 70c0 | 61 6e 20 45 69 65 69 6f 0a 6f 62 6a 65 63 74 20    61 6e 64 20 53 4c 4f 54 53 20 61 72 65 20 73 6c | an.Eieio.object.and.SLOTS.are.sl | 
| 70e0 | 6f 74 73 20 6f 66 20 74 68 61 74 20 6f 62 6a 65    63 74 2c 20 74 68 65 69 72 20 76 61 6c 75 65 73 | ots.of.that.object,.their.values | 
| 7100 | 20 61 72 65 20 75 73 65 64 0a 6c 69 6b 65 20 60    66 6f 72 6d 61 74 27 20 75 73 65 73 20 69 74 73 | .are.used.like.`format'.uses.its | 
| 7120 | 20 4f 42 4a 45 43 54 53 20 61 72 67 75 6d 65 6e    74 73 20 28 77 68 69 63 68 20 61 72 65 20 75 6e | .OBJECTS.arguments.(which.are.un | 
| 7140 | 72 65 6c 61 74 65 64 20 74 6f 0a 74 68 69 73 20    66 75 6e 63 74 69 6f 6e 27 73 20 4f 42 4a 45 43 | related.to.this.function's.OBJEC | 
| 7160 | 54 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 79    20 6a 75 73 74 20 68 61 76 65 20 73 69 6d 69 6c | T.argument,.they.just.have.simil | 
| 7180 | 61 72 20 6e 61 6d 65 73 29 2e 0a 0a 57 68 69 6c    65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 | ar.names)...While.this.function. | 
| 71a0 | 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 6d 75    63 68 20 74 6f 20 64 6f 20 77 69 74 68 20 74 68 | does.not.have.much.to.do.with.th | 
| 71c0 | 65 20 70 75 72 70 6f 73 65 20 6f 66 0a 60 63 6c    6f 73 71 6c 27 2c 20 69 74 20 69 73 20 62 65 69 | e.purpose.of.`closql',.it.is.bei | 
| 71e0 | 6e 67 20 64 65 66 69 6e 65 64 20 68 65 72 65 20    61 6e 79 77 61 79 20 62 65 63 61 75 73 65 20 45 | ng.defined.here.anyway.because.E | 
| 7200 | 69 65 69 6f 20 64 6f 65 73 20 6e 6f 74 0a 64 65    66 69 6e 65 20 61 20 73 69 6d 69 6c 61 72 20 66 | ieio.does.not.define.a.similar.f | 
| 7220 | 75 6e 63 74 69 6f 6e 20 75 6e 64 65 72 20 61 20    6d 6f 72 65 20 61 70 70 72 6f 70 72 69 61 74 65 | unction.under.a.more.appropriate | 
| 7240 | 20 6e 61 6d 65 20 73 75 63 68 20 61 73 0a 60 65    69 65 69 6f 2d 66 6f 72 6d 61 74 27 2e 22 0a 20 | .name.such.as.`eieio-format'.".. | 
| 7260 | 20 28 61 70 70 6c 79 20 23 27 66 6f 72 6d 61 74    20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 | .(apply.#'format.string......... | 
| 7280 | 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61    20 28 73 6c 6f 74 29 20 28 65 69 65 69 6f 2d 6f | .(mapcar.(lambda.(slot).(eieio-o | 
| 72a0 | 72 65 66 20 6f 62 6a 65 63 74 20 73 6c 6f 74 29    29 20 73 6c 6f 74 73 29 29 29 0a 0a 3b 3b 3b 20 | ref.object.slot)).slots)))..;;;. | 
| 72c0 | 5f 0a 28 70 72 6f 76 69 64 65 20 27 63 6c 6f 73    71 6c 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 | _.(provide.'closql).;;.Local.Var | 
| 72e0 | 69 61 62 6c 65 73 3a 0a 3b 3b 20 69 6e 64 65 6e    74 2d 74 61 62 73 2d 6d 6f 64 65 3a 20 6e 69 6c | iables:.;;.indent-tabs-mode:.nil | 
| 7300 | 0a 3b 3b 20 45 6e 64 3a 0a 3b 3b 3b 20 63 6c 6f    73 71 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 | .;;.End:.;;;.closql.el.ends.here | 
| 7320 | 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 00 00 00 00 00 00 00 | ................................ | 
| 7340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 73a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 73c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 73e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 74a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 74c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 74e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 75a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 75c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 75e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 76a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 76c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 76e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 7780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 77a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 77c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ | 
| 77e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |