| ofs | hex dump | ascii | 
|---|
| 0000 |  63 6c 6f 73 71 6c 2d 32 30 32 35 30 39 31 33 2e    31 39 32 36 2f 00 00 00 00 00 00 00 00 00 00 00  | closql-20250913.1926/........... | 
| 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 35 00 20 35 00 00 00  | 0000000.00000000000.012315..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 35 30 39 31 33 2e    31 39 32 36 2f 63 6c 6f 73 71 6c 2d 70 6b 67 2e  | closql-20250913.1926/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 36 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 37 32 32 00 20 30 00 00 00  | 0000764.00000000000.014722..0... | 
| 02a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0300 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0320 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0400 |  3b 3b 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63    6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63  | ;;.-*-.no-byte-compile:.t;.lexic | 
| 0420 |  61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20    2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b  | al-binding:.nil.-*-.(define-pack | 
| 0440 |  61 67 65 20 22 63 6c 6f 73 71 6c 22 20 22 32 30    32 35 30 39 31 33 2e 31 39 32 36 22 0a 20 20 22  | age."closql"."20250913.1926"..." | 
| 0460 |  53 74 6f 72 65 20 45 49 45 49 4f 20 6f 62 6a 65    63 74 73 20 75 73 69 6e 67 20 45 6d 61 63 53 51  | Store.EIEIO.objects.using.EmacSQ | 
| 0480 |  4c 2e 22 0a 20 20 27 28 28 65 6d 61 63 73 20 20    20 22 32 38 2e 31 22 29 0a 20 20 20 20 28 63 6f  | L."...'((emacs..."28.1").....(co | 
| 04a0 |  6d 70 61 74 20 20 22 33 30 2e 31 22 29 0a 20 20    20 20 28 65 6d 61 63 73 71 6c 20 22 34 2e 33 22  | mpat.."30.1").....(emacsql."4.3" | 
| 04c0 |  29 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73    3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 65 6d  | ))...:url."https://github.com/em | 
| 04e0 |  61 63 73 63 6f 6c 6c 65 63 74 69 76 65 2f 63 6c    6f 73 71 6c 22 0a 20 20 3a 63 6f 6d 6d 69 74 20  | acscollective/closql"...:commit. | 
| 0500 |  22 66 35 64 64 30 32 34 63 34 37 62 37 39 32 64    61 63 34 39 39 64 61 63 39 34 63 39 30 36 61 66  | "f5dd024c47b792dac499dac94c906af | 
| 0520 |  36 30 30 34 34 64 32 61 64 22 0a 20 20 3a 72 65    76 64 65 73 63 20 22 66 35 64 64 30 32 34 63 34  | 60044d2ad"...:revdesc."f5dd024c4 | 
| 0540 |  37 62 37 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73    20 27 28 22 65 78 74 65 6e 73 69 6f 6e 73 22 29  | 7b7"...:keywords.'("extensions") | 
| 0560 |  0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22    4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c 6c 69 22  | ...:authors.'(("Jonas.Bernoulli" | 
| 0580 |  20 2e 20 22 65 6d 61 63 73 2e 63 6c 6f 73 71 6c    40 6a 6f 6e 61 73 2e 62 65 72 6e 6f 75 6c 6c 69  | ..."emacs.closql@jonas.bernoulli | 
| 05a0 |  2e 64 65 76 22 29 29 0a 20 20 3a 6d 61 69 6e 74    61 69 6e 65 72 73 20 27 28 28 22 4a 6f 6e 61 73  | .dev"))...:maintainers.'(("Jonas | 
| 05c0 |  20 42 65 72 6e 6f 75 6c 6c 69 22 20 2e 20 22 65    6d 61 63 73 2e 63 6c 6f 73 71 6c 40 6a 6f 6e 61  | .Bernoulli"..."emacs.closql@jona | 
| 05e0 |  73 2e 62 65 72 6e 6f 75 6c 6c 69 2e 64 65 76 22    29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00  | s.bernoulli.dev")))............. | 
| 0600 |  63 6c 6f 73 71 6c 2d 32 30 32 35 30 39 31 33 2e    31 39 32 36 2f 63 6c 6f 73 71 6c 2e 65 6c 00 00  | closql-20250913.1926/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 32 36 37 32 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 31 35 31 00 20 30 00 00 00  | 0062672.00000000000.014151..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 35 20 4a 6f 6e 61 73    20 42 65 72 6e 6f 75 6c 6c 69 0a 0a 3b 3b 20 41  | .2016-2025.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 65 6d 61 63 73 2e 63 6c  | uthor:.Jonas.Bernoulli.<emacs.cl | 
| 08a0 |  6f 73 71 6c 40 6a 6f 6e 61 73 2e 62 65 72 6e 6f    75 6c 6c 69 2e 64 65 76 3e 0a 3b 3b 20 48 6f 6d  | osql@jonas.bernoulli.dev>.;;.Hom | 
| 08c0 |  65 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67    69 74 68 75 62 2e 63 6f 6d 2f 65 6d 61 63 73 63  | epage:.https://github.com/emacsc | 
| 08e0 |  6f 6c 6c 65 63 74 69 76 65 2f 63 6c 6f 73 71 6c    0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 78  | ollective/closql.;;.Keywords:.ex | 
| 0900 |  74 65 6e 73 69 6f 6e 73 0a 0a 3b 3b 20 50 61 63    6b 61 67 65 2d 56 65 72 73 69 6f 6e 3a 20 32 30  | tensions..;;.Package-Version:.20 | 
| 0920 |  32 35 30 39 31 33 2e 31 39 32 36 0a 3b 3b 20 50    61 63 6b 61 67 65 2d 52 65 76 69 73 69 6f 6e 3a  | 250913.1926.;;.Package-Revision: | 
| 0940 |  20 66 35 64 64 30 32 34 63 34 37 62 37 0a 3b 3b    20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65  | .f5dd024c47b7.;;.Package-Require | 
| 0960 |  73 3a 20 28 0a 3b 3b 20 20 20 20 20 28 65 6d 61    63 73 20 22 32 38 2e 31 22 29 0a 3b 3b 20 20 20  | s:.(.;;.....(emacs."28.1").;;... | 
| 0980 |  20 20 28 63 6f 6d 70 61 74 20 22 33 30 2e 31 22    29 0a 3b 3b 20 20 20 20 20 28 65 6d 61 63 73 71  | ..(compat."30.1").;;.....(emacsq | 
| 09a0 |  6c 20 22 34 2e 33 22 29 29 0a 0a 3b 3b 20 53 50    44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74  | l."4.3"))..;;.SPDX-License-Ident | 
| 09c0 |  69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f    72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73  | ifier:.GPL-3.0-or-later..;;.This | 
| 09e0 |  20 66 69 6c 65 20 69 73 20 66 72 65 65 20 73 6f    66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20  | .file.is.free.software:.you.can. | 
| 0a00 |  72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20    61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b  | redistribute.it.and/or.modify.;; | 
| 0a20 |  20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65    72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47  | .it.under.the.terms.of.the.GNU.G | 
| 0a40 |  65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69    63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68  | eneral.Public.License.as.publish | 
| 0a60 |  65 64 0a 3b 3b 20 62 79 20 74 68 65 20 46 72 65    65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64  | ed.;;.by.the.Free.Software.Found | 
| 0a80 |  61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65    72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c  | ation,.either.version.3.of.the.L | 
| 0aa0 |  69 63 65 6e 73 65 2c 0a 3b 3b 20 6f 72 20 28 61    74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61  | icense,.;;.or.(at.your.option).a | 
| 0ac0 |  6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e    2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c  | ny.later.version..;;.;;.This.fil | 
| 0ae0 |  65 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64    20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61  | e.is.distributed.in.the.hope.tha | 
| 0b00 |  74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65    66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48  | t.it.will.be.useful,.;;.but.WITH | 
| 0b20 |  4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59    3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74  | OUT.ANY.WARRANTY;.without.even.t | 
| 0b40 |  68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61    6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41  | he.implied.warranty.of.;;.MERCHA | 
| 0b60 |  4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54    4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49  | NTABILITY.or.FITNESS.FOR.A.PARTI | 
| 0b80 |  43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20    53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47  | CULAR.PURPOSE...See.the.;;.GNU.G | 
| 0ba0 |  65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69    63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64  | eneral.Public.License.for.more.d | 
| 0bc0 |  65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f    75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65  | etails..;;.;;.You.should.have.re | 
| 0be0 |  63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66    20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c  | ceived.a.copy.of.the.GNU.General | 
| 0c00 |  20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a    3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68  | .Public.License.;;.along.with.th | 
| 0c20 |  69 73 20 66 69 6c 65 2e 20 20 49 66 20 6e 6f 74    2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77  | is.file...If.not,.see.<https://w | 
| 0c40 |  77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e    73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d  | ww.gnu.org/licenses/>...;;;.Comm | 
| 0c60 |  65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 53 74 6f 72    65 20 75 6e 69 66 6f 72 6d 20 45 49 45 49 4f 20  | entary:..;;.Store.uniform.EIEIO. | 
| 0c80 |  6f 62 6a 65 63 74 73 20 69 6e 20 61 6e 20 45 6d    61 63 53 51 4c 20 64 61 74 61 62 61 73 65 2e 20  | objects.in.an.EmacSQL.database.. | 
| 0ca0 |  20 53 51 4c 69 74 65 20 69 73 20 75 73 65 64 0a    3b 3b 20 61 73 20 62 61 63 6b 65 6e 64 2e 20 20  | .SQLite.is.used.;;.as.backend... | 
| 0cc0 |  54 68 69 73 20 6c 69 62 72 61 72 79 20 69 6d 70    6f 73 65 73 20 73 6f 6d 65 20 72 65 73 74 72 69  | This.library.imposes.some.restri | 
| 0ce0 |  63 74 69 6f 6e 73 20 6f 6e 20 77 68 61 74 20 6b    69 6e 64 20 6f 66 0a 3b 3b 20 6f 62 6a 65 63 74  | ctions.on.what.kind.of.;;.object | 
| 0d00 |  73 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64 3b    20 69 74 20 69 73 6e 27 74 20 69 6e 74 65 6e 64  | s.can.be.stored;.it.isn't.intend | 
| 0d20 |  65 64 20 74 6f 20 73 74 6f 72 65 20 61 72 62 69    74 72 61 72 79 20 6f 62 6a 65 63 74 73 2e 0a 3b  | ed.to.store.arbitrary.objects..; | 
| 0d40 |  3b 20 41 6c 6c 20 6f 62 6a 65 63 74 73 20 68 61    76 65 20 74 6f 20 73 68 61 72 65 20 61 20 63 6f  | ;.All.objects.have.to.share.a.co | 
| 0d60 |  6d 6d 6f 6e 20 73 75 70 65 72 63 6c 61 73 73 20    61 6e 64 20 73 75 62 63 6c 61 73 73 65 73 20 63  | mmon.superclass.and.subclasses.c | 
| 0d80 |  61 6e 6e 6f 74 0a 3b 3b 20 61 64 64 20 61 6e 79    20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 73 74  | annot.;;.add.any.additional.inst | 
| 0da0 |  61 6e 63 65 20 73 6c 6f 74 73 2e 0a 0a 3b 3b 3b    20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65  | ance.slots...;;;.Code:..(require | 
| 0dc0 |  20 27 63 6f 6d 70 61 74 29 0a 28 72 65 71 75 69    72 65 20 27 65 69 65 69 6f 29 0a 28 72 65 71 75  | .'compat).(require.'eieio).(requ | 
| 0de0 |  69 72 65 20 27 65 69 65 69 6f 2d 62 61 73 65 29    0a 28 72 65 71 75 69 72 65 20 27 65 6d 61 63 73  | ire.'eieio-base).(require.'emacs | 
| 0e00 |  71 6c 29 0a 28 72 65 71 75 69 72 65 20 27 65 6d    61 63 73 71 6c 2d 73 71 6c 69 74 65 29 0a 0a 28  | ql).(require.'emacsql-sqlite)..( | 
| 0e20 |  65 76 61 6c 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  | eval-when-compile.(require.'subr | 
| 0e40 |  2d 78 29 29 0a 0a 28 65 76 61 6c 2d 77 68 65 6e    2d 63 6f 6d 70 69 6c 65 0a 20 20 28 63 6c 2d 70  | -x))..(eval-when-compile...(cl-p | 
| 0e60 |  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 6b 6e 6f 77 6e 2d  | ushnew.'connection.eieio--known- | 
| 0e80 |  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 6f 73 71 6c 2d 77  | slot-names))..(defmacro.closql-w | 
| 0ea0 |  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 62 6f 64 79 29 0a  | ith-transaction.(db.&rest.body). | 
| 0ec0 |  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 28 65 6d 61 63 73  | ..(declare.(indent.1))...`(emacs | 
| 0ee0 |  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 2c 64 62 20 63 6f  | ql-with-transaction.(oref.,db.co | 
| 0f00 |  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 3b 3b 20 4f 62 6a  | nnection)......,@body))..;;;.Obj | 
| 0f20 |  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 65 63 74 20 28 29  | ects..(defclass.closql-object.() | 
| 0f40 |  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 3a 69 6e 69 74 66  | ...((closql-class-prefix..:initf | 
| 0f60 |  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 28  | orm.nil.:allocation.:class)....( | 
| 0f80 |  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 66 6f 72 6d 20 6e  | closql-class-suffix..:initform.n | 
| 0fa0 |  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 71  | il.:allocation.:class)....(closq | 
| 0fc0 |  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 6e 69 6c 20 3a 61  | l-table.........:initform.nil.:a | 
| 0fe0 |  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 70 72 69  | llocation.:class)....(closql-pri | 
| 1000 |  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 61 6c 6c 6f 63 61  | mary-key...:initform.nil.:alloca | 
| 1020 |  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 72 65 69 67 6e 2d  | tion.:class)....(closql-foreign- | 
| 1040 |  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 61 74 69 6f 6e 20  | key...:initform.nil.:allocation. | 
| 1060 |  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 79 20 20 20 20 20  | :class)....(closql-order-by..... | 
| 1080 |  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 61 73  | .:initform.nil.:allocation.:clas | 
| 10a0 |  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 20 20 3a 69 6e 69  | s)....(closql-database......:ini | 
| 10c0 |  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 2d 64 61 74 61 62  | tform.nil.:initarg.:closql-datab | 
| 10e0 |  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 75 6e 20 63 6c 6f  | ase))...:abstract.t)..(defun.clo | 
| 1100 |  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 0a 20 20 3b 3b 20  | sql--closql-object-p.(obj)...;;. | 
| 1120 |  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 68 65 6e 20 74 68  | Prevent.a.recursive.load.when.th | 
| 1140 |  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 65 64 2e 0a 20 20  | e.class.object.is.autoloaded.... | 
| 1160 |  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 23 27 71 75 6f 74  | ;;.See.c1a9b816ec...Don't.#'quot | 
| 1180 |  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 72 65 6c 65 61 73  | e;.doesn't.exist.in.older.releas | 
| 11a0 |  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 75 6e 63 74 69 6f  | es....(cl-letf.(((symbol-functio | 
| 11c0 |  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 74 29 0a 20 20 20  | n.'eieio--full-class-object).... | 
| 11e0 |  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 62 6a 65 63 74 29  | ..........#'eieio--class-object) | 
| 1200 |  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 6f 2d 63 68 69 6c  | ).....(closql-object--eieio-chil | 
| 1220 |  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 69 6e 65 2d 61 64  | dp.obj)))..;;;;.Oref..(define-ad | 
| 1240 |  76 69 63 65 20 65 69 65 69 6f 2d 6f 72 65 66 20    28 3a 61 72 6f 75 6e 64 20 28 66 6e 20 6f 62 6a  | vice.eieio-oref.(:around.(fn.obj | 
| 1260 |  20 73 6c 6f 74 29 20 63 6c 6f 73 71 6c 2d 6f 62    6a 65 63 74 29 0a 20 20 22 49 66 20 4f 42 4a 20  | .slot).closql-object)..."If.OBJ. | 
| 1280 |  69 73 20 61 20 60 63 6c 6f 73 71 6c 2d 6f 62 6a    65 63 74 27 2c 20 64 65 6c 65 67 61 74 65 20 74  | is.a.`closql-object',.delegate.t | 
| 12a0 |  6f 20 60 63 6c 6f 73 71 6c 2d 6f 72 65 66 27 2e    22 0a 20 20 28 69 66 20 28 63 6c 6f 73 71 6c 2d  | o.`closql-oref'."...(if.(closql- | 
| 12c0 |  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 | 
| 12e0 |  73 71 6c 2d 6f 72 65 66 20 6f 62 6a 20 73 6c 6f    74 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20  | sql-oref.obj.slot).....(funcall. | 
| 1300 |  66 6e 20 6f 62 6a 20 73 6c 6f 74 29 29 29 0a 0a    28 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d 6f  | fn.obj.slot)))..(defun.closql--o | 
| 1320 |  72 65 66 20 28 6f 62 6a 20 73 6c 6f 74 29 0a 20    20 28 61 72 65 66 20 6f 62 6a 20 28 65 69 65 69  | ref.(obj.slot)...(aref.obj.(eiei | 
| 1340 |  6f 2d 2d 73 6c 6f 74 2d 6e 61 6d 65 2d 69 6e 64    65 78 20 28 65 69 65 69 6f 2d 2d 6f 62 6a 65 63  | o--slot-name-index.(eieio--objec | 
| 1360 |  74 2d 63 6c 61 73 73 20 6f 62 6a 29 20 73 6c 6f    74 29 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f  | t-class.obj).slot)))..(defun.clo | 
| 1380 |  73 71 6c 2d 2d 6f 72 65 66 2d 64 65 66 61 75 6c    74 20 28 63 6c 61 73 73 20 73 6c 6f 74 29 0a 20  | sql--oref-default.(class.slot).. | 
| 13a0 |  20 28 6c 65 74 20 28 28 63 6c 61 73 73 20 28 69    66 20 28 73 79 6d 62 6f 6c 70 20 63 6c 61 73 73  | .(let.((class.(if.(symbolp.class | 
| 13c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 63 6c 2d 2d 66 69 6e 64 2d 63  | )....................(cl--find-c | 
| 13e0 |  6c 61 73 73 20 63 6c 61 73 73 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 69  | lass.class)..................(ei | 
| 1400 |  65 69 6f 2d 2d 6f 62 6a 65 63 74 2d 63 6c 61 73    73 20 63 6c 61 73 73 29 29 29 29 0a 20 20 20 20  | eio--object-class.class))))..... | 
| 1420 |  28 61 72 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  | (aref.(eieio--class-class-alloca | 
| 1440 |  74 69 6f 6e 2d 76 61 6c 75 65 73 20 63 6c 61 73    73 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 69  | tion-values.class)...........(ei | 
| 1460 |  65 69 6f 2d 2d 63 6c 61 73 73 2d 73 6c 6f 74 2d    6e 61 6d 65 2d 69 6e 64 65 78 20 63 6c 61 73 73  | eio--class-slot-name-index.class | 
| 1480 |  20 73 6c 6f 74 29 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  | .slot))))..(defun.closql-oref.(o | 
| 14a0 |  62 6a 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  | bj.slot)...(cl-check-type.slot.s | 
| 14c0 |  79 6d 62 6f 6c 29 0a 20 20 28 6c 65 74 20 28 28    63 6c 61 73 73 20 28 65 69 65 69 6f 2d 2d 6f 62  | ymbol)...(let.((class.(eieio--ob | 
| 14e0 |  6a 65 63 74 2d 63 6c 61 73 73 20 6f 62 6a 29 29    29 0a 20 20 20 20 28 69 66 2d 6c 65 74 20 28 28  | ject-class.obj))).....(if-let.(( | 
| 1500 |  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 20  | c.(eieio--slot-name-index.class. | 
| 1520 |  73 6c 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 61 72  | slot))).........(let.((value.(ar | 
| 1540 |  65 66 20 6f 62 6a 20 63 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 65 71 20 76 61  | ef.obj.c)))...........(if.(eq.va | 
| 1560 |  6c 75 65 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75    6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | lue.eieio--unbound)............. | 
| 1580 |  20 20 28 63 6c 6f 73 71 6c 2d 64 72 65 66 20 6f    62 6a 20 73 6c 6f 74 29 0a 20 20 20 20 20 20 20  | ..(closql-dref.obj.slot)........ | 
| 15a0 |  20 20 20 20 20 76 61 6c 75 65 29 29 0a 20 20 20    20 20 20 28 69 66 2d 6c 65 74 20 28 28 63 20 28  | .....value)).......(if-let.((c.( | 
| 15c0 |  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 64 65 78 20 63 6c 61  | eieio--class-slot-name-index.cla | 
| 15e0 |  73 73 20 73 6c 6f 74 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 61 72 65 66 20 28 65 69 65 69  | ss.slot)))...........(aref.(eiei | 
| 1600 |  6f 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  | o--class-class-allocation-values | 
| 1620 |  20 63 6c 61 73 73 29 20 63 29 0a 20 20 20 20 20    20 20 20 28 73 6c 6f 74 2d 6d 69 73 73 69 6e 67  | .class).c).........(slot-missing | 
| 1640 |  20 6f 62 6a 20 73 6c 6f 74 20 27 6f 72 65 66 29    29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e  | .obj.slot.'oref)))))..(cl-defgen | 
| 1660 |  65 72 69 63 20 63 6c 6f 73 71 6c 2d 64 72 65 66    20 28 6f 62 6a 20 73 6c 6f 74 29 0a 20 20 28 6c  | eric.closql-dref.(obj.slot)...(l | 
| 1680 |  65 74 20 28 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 28  | et.((c.(eieio--slot-name-index.( | 
| 16a0 |  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 29 0a  | eieio--object-class.obj).slot)). | 
| 16c0 |  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 63  | ........(db.(closql--oref.obj.'c | 
| 16e0 |  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 28 70 72 6f 70 73 20  | losql-database)).........(props. | 
| 1700 |  28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d 70 72    6f 70 65 72 74 69 65 73 20 6f 62 6a 20 73 6c 6f  | (closql--slot-properties.obj.slo | 
| 1720 |  74 29 29 0a 20 20 20 20 20 20 20 20 63 6c 61 73    73 20 74 61 62 6c 65 20 74 61 62 6c 65 73 29 0a  | t)).........class.table.tables). | 
| 1740 |  20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28    28 73 65 74 71 20 63 6c 61 73 73 20 28 61 6c 69  | ....(cond......((setq.class.(ali | 
| 1760 |  73 74 2d 67 65 74 20 3a 63 6c 6f 73 71 6c 2d 63    6c 61 73 73 20 70 72 6f 70 73 29 29 0a 20 20 20  | st-get.:closql-class.props)).... | 
| 1780 |  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 20 28 63 6c 6f 73  | ...(aset.obj.c.............(clos | 
| 17a0 |  71 6c 2d 2d 72 65 6d 61 6b 65 2d 69 6e 73 74 61    6e 63 65 73 20 63 6c 61 73 73 20 64 62 0a 20 20  | ql--remake-instances.class.db... | 
| 17c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61    63 73 71 6c 0a 20 20 20 20 20 20 20 20 20 20 20  | ............(emacsql............ | 
| 17e0 |  20 20 20 20 64 62 20 60 5b 3a 73 65 6c 65 63 74    20 2a 20 3a 66 72 6f 6d 20 24 69 31 0a 20 20 20  | ....db.`[:select.*.:from.$i1.... | 
| 1800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 77 68 65 72 65 20 28 3d 20 24 69 32 20 24  | .................:where.(=.$i2.$ | 
| 1820 |  73 33 29 0a 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  | s3).....................:order-b | 
| 1840 |  79 20 2c 28 6f 72 20 28 63 6c 6f 73 71 6c 2d 2d    6f 72 65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61  | y.,(or.(closql--oref-default.cla | 
| 1860 |  73 73 20 27 63 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  | ss.'closql-order-by)............ | 
| 1880 |  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 24 69  | ........................[(asc.$i | 
| 18a0 |  34 29 5d 29 5d 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 6f 72  | 4)])]................(closql--or | 
| 18c0 |  65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73    20 27 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 29 0a  | ef-default.class.'closql-table). | 
| 18e0 |  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 72 65 66 2d 64 65 66  | ...............(closql--oref-def | 
| 1900 |  61 75 6c 74 20 63 6c 61 73 73 20 27 63 6c 6f 73    71 6c 2d 66 6f 72 65 69 67 6e 2d 6b 65 79 29 0a  | ault.class.'closql-foreign-key). | 
| 1920 |  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 72 65 66 20 6f 62 6a  | ...............(closql--oref.obj | 
| 1940 |  20 28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66 2d 64    65 66 61 75 6c 74 20 6f 62 6a 20 27 63 6c 6f 73  | .(closql--oref-default.obj.'clos | 
| 1960 |  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))................ | 
| 1980 |  28 63 6c 6f 73 71 6c 2d 2d 6f 72 65 66 2d 64 65    66 61 75 6c 74 20 63 6c 61 73 73 20 27 63 6c 6f  | (closql--oref-default.class.'clo | 
| 19a0 |  73 71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65 79 29    29 29 29 29 0a 20 20 20 20 20 28 28 73 65 74 71  | sql-primary-key)))))......((setq | 
| 19c0 |  20 74 61 62 6c 65 20 28 61 6c 69 73 74 2d 67 65    74 20 3a 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 20  | .table.(alist-get.:closql-table. | 
| 19e0 |  70 72 6f 70 73 29 29 0a 20 20 20 20 20 20 28 6c    65 74 20 28 28 63 6f 6c 75 6d 6e 73 20 28 63 6c  | props)).......(let.((columns.(cl | 
| 1a00 |  6f 73 71 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  | osql--table-columns.db.table))). | 
| 1a20 |  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 20  | ........(aset.obj.c............. | 
| 1a40 |  20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 69 66 20 28 6c 65  | ..(mapcar................(if.(le | 
| 1a60 |  6e 67 74 68 3d 20 63 6f 6c 75 6d 6e 73 20 32 29    20 23 27 63 61 64 72 20 23 27 63 64 72 29 0a 20  | ngth=.columns.2).#'cadr.#'cdr).. | 
| 1a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    6d 61 63 73 71 6c 0a 20 20 20 20 20 20 20 20 20  | ..............(emacsql.......... | 
| 1aa0 |  20 20 20 20 20 20 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  | .......db.[:select.*.:from.$i1.. | 
| 1ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3a 77 68 65 72 65 20 28 3d 20 24 69 32  | ...................:where.(=.$i2 | 
| 1ae0 |  20 24 73 33 29 0a 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  | .$s3).....................:order | 
| 1b00 |  2d 62 79 20 5b 28 61 73 63 20 24 69 34 29 5d 5d    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -by.[(asc.$i4)]]................ | 
| 1b20 |  20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 63 61 72 20 63 6f 6c 75  | .table.................(car.colu | 
| 1b40 |  6d 6e 73 29 0a 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 72  | mns).................(closql--or | 
| 1b60 |  65 66 20 6f 62 6a 20 28 63 6c 6f 73 71 6c 2d 2d    6f 72 65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a  | ef.obj.(closql--oref-default.obj | 
| 1b80 |  20 27 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 20 20 20  | .'closql-primary-key)).......... | 
| 1ba0 |  20 20 20 20 20 20 20 28 63 61 64 72 20 63 6f 6c    75 6d 6e 73 29 29 29 29 29 29 0a 20 20 20 20 20  | .......(cadr.columns))))))...... | 
| 1bc0 |  28 28 73 65 74 71 20 74 61 62 6c 65 73 20 28 61    6c 69 73 74 2d 67 65 74 20 3a 63 6c 6f 73 71 6c  | ((setq.tables.(alist-get.:closql | 
| 1be0 |  2d 74 61 62 6c 65 73 20 70 72 6f 70 73 29 29 0a    20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74  | -tables.props)).......(pcase-let | 
| 1c00 |  20 28 28 60 28 2c 73 6c 6f 74 2d 74 61 62 6c 65    20 2c 64 61 74 61 2d 74 61 62 6c 65 29 20 74 61  | .((`(,slot-table.,data-table).ta | 
| 1c20 |  62 6c 65 73 29 29 0a 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  | bles)).........(aset.obj.c...... | 
| 1c40 |  20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........(mapcar................ | 
| 1c60 |  23 27 63 64 72 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 65 6d 61 63 73 71 6c 0a 20 20  | #'cdr................(emacsql... | 
| 1c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 62    20 5b 3a 73 65 6c 65 63 74 20 24 69 31 20 3a 66  | ..............db.[:select.$i1.:f | 
| 1ca0 |  72 6f 6d 20 24 69 32 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 6a 6f 69  | rom.$i2.....................:joi | 
| 1cc0 |  6e 20 24 69 33 20 3a 6f 6e 20 28 3d 20 24 69 34    20 24 69 35 29 0a 20 20 20 20 20 20 20 20 20 20  | n.$i3.:on.(=.$i4.$i5)........... | 
| 1ce0 |  20 20 20 20 20 20 20 20 20 20 3a 77 68 65 72 65    20 28 3d 20 24 69 36 20 24 73 37 29 0a 20 20 20  | ..........:where.(=.$i6.$s7).... | 
| 1d00 |  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 20 5b 28 61 73 63  | .................:order-by.[(asc | 
| 1d20 |  20 69 64 29 5d 5d 0a 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  | .id)]].................(intern.( | 
| 1d40 |  66 6f 72 6d 61 74 20 22 25 73 3a 2a 22 20 64 61    74 61 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20  | format."%s:*".data-table))...... | 
| 1d60 |  20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 2d    74 61 62 6c 65 20 73 6c 6f 74 2d 74 61 62 6c 65  | ...........data-table.slot-table | 
| 1d80 |  0a 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 | 
| 1da0 |  20 22 25 73 3a 69 64 22 20 73 6c 6f 74 2d 74 61    62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ."%s:id".slot-table))........... | 
| 1dc0 |  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 69 64 22 20 64 61  | ......(intern.(format."%s:id".da | 
| 1de0 |  74 61 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65  | ta-table)).................(inte | 
| 1e00 |  72 6e 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25    73 22 20 73 6c 6f 74 2d 74 61 62 6c 65 0a 20 20  | rn.(format."%s:%s".slot-table... | 
| 1e20 |  20 20 20 20 20 20 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  | ..............................(c | 
| 1e40 |  6c 6f 73 71 6c 2d 2d 6f 72 65 66 2d 64 65 66 61    75 6c 74 20 6f 62 6a 20 27 63 6c 6f 73 71 6c 2d  | losql--oref-default.obj.'closql- | 
| 1e60 |  74 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c  | table))).................(closql | 
| 1e80 |  2d 2d 6f 72 65 66 20 6f 62 6a 20 28 63 6c 6f 73    71 6c 2d 2d 6f 72 65 66 2d 64 65 66 61 75 6c 74  | --oref.obj.(closql--oref-default | 
| 1ea0 |  20 6f 62 6a 20 27 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  | .obj.'closql-primary-key))...... | 
| 1ec0 |  20 20 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 27 69 64  | ...........(closql--oref.obj.'id | 
| 1ee0 |  29 29 29 29 29 29 0a 20 20 20 20 20 28 28 73 6c    6f 74 2d 75 6e 62 6f 75 6e 64 20 6f 62 6a 20 28  | ))))))......((slot-unbound.obj.( | 
| 1f00 |  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 20 27 6f  | eieio--object-class.obj).slot.'o | 
| 1f20 |  72 65 66 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 4f    73 65 74 0a 0a 28 64 65 66 69 6e 65 2d 61 64 76  | ref)))))..;;;;.Oset..(define-adv | 
| 1f40 |  69 63 65 20 65 69 65 69 6f 2d 6f 73 65 74 20 28    3a 61 72 6f 75 6e 64 20 28 66 6e 20 6f 62 6a 20  | ice.eieio-oset.(:around.(fn.obj. | 
| 1f60 |  73 6c 6f 74 20 76 61 6c 75 65 29 20 63 6c 6f 73    71 6c 2d 6f 62 6a 65 63 74 29 0a 20 20 22 49 66  | slot.value).closql-object)..."If | 
| 1f80 |  20 4f 42 4a 20 69 73 20 61 20 60 63 6c 6f 73 71    6c 2d 6f 62 6a 65 63 74 27 2c 20 64 65 6c 65 67  | .OBJ.is.a.`closql-object',.deleg | 
| 1fa0 |  61 74 65 20 74 6f 20 60 63 6c 6f 73 71 6c 2d 6f    73 65 74 27 2e 22 0a 20 20 28 69 66 20 28 63 6c  | ate.to.`closql-oset'."...(if.(cl | 
| 1fc0 |  6f 73 71 6c 2d 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  | osql--closql-object-p.obj)...... | 
| 1fe0 |  20 28 63 6c 6f 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  | .(closql-oset.obj.slot.value)... | 
| 2000 |  20 20 28 66 75 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  | ..(funcall.fn.obj.slot.value))). | 
| 2020 |  0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d    6f 73 65 74 20 28 6f 62 6a 20 73 6c 6f 74 20 76  | .(defun.closql--oset.(obj.slot.v | 
| 2040 |  61 6c 75 65 29 0a 20 20 28 61 73 65 74 20 6f 62    6a 20 28 65 69 65 69 6f 2d 2d 73 6c 6f 74 2d 6e  | alue)...(aset.obj.(eieio--slot-n | 
| 2060 |  61 6d 65 2d 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  | ame-index.(eieio--object-class.o | 
| 2080 |  62 6a 29 20 73 6c 6f 74 29 20 76 61 6c 75 65 29    29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c  | bj).slot).value))..(defun.closql | 
| 20a0 |  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 63 6c 2d 63 68 65  | -oset.(obj.slot.value)...(cl-che | 
| 20c0 |  63 6b 2d 74 79 70 65 20 73 6c 6f 74 20 73 79 6d    62 6f 6c 29 0a 20 20 28 6c 65 74 20 28 28 63 6c  | ck-type.slot.symbol)...(let.((cl | 
| 20e0 |  61 73 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  | ass.(eieio--object-class.obj))). | 
| 2100 |  20 20 20 20 28 69 66 2d 6c 65 74 20 28 28 63 20    28 65 69 65 69 6f 2d 2d 73 6c 6f 74 2d 6e 61 6d  | ....(if-let.((c.(eieio--slot-nam | 
| 2120 |  65 2d 69 6e 64 65 78 20 63 6c 61 73 73 20 73 6c    6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 70  | e-index.class.slot))).........(p | 
| 2140 |  72 6f 67 6e 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 65  | rogn.(eieio--validate-slot-value | 
| 2160 |  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 20 20 20 20 20  | .class.c.value.slot)............ | 
| 2180 |  20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28    6e 6f 74 20 28 65 71 20 73 6c 6f 74 20 27 63 6c  | ....(when.(and.(not.(eq.slot.'cl | 
| 21a0 |  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 20 20 20  | osql-database))................. | 
| 21c0 |  20 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 27 63 6c 6f  | ..........(closql--oref.obj.'clo | 
| 21e0 |  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 20 20 20 20  | sql-database)).................. | 
| 2200 |  28 63 6c 6f 73 71 6c 2d 64 73 65 74 20 6f 62 6a    20 73 6c 6f 74 20 76 61 6c 75 65 29 29 0a 20 20  | (closql-dset.obj.slot.value))... | 
| 2220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73    65 74 20 6f 62 6a 20 63 20 76 61 6c 75 65 29 29  | .............(aset.obj.c.value)) | 
| 2240 |  0a 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 28    28 63 20 28 65 69 65 69 6f 2d 2d 63 6c 61 73 73  | .......(if-let.((c.(eieio--class | 
| 2260 |  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 29 0a 20  | -slot-name-index.class.slot))).. | 
| 2280 |  20 20 20 20 20 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  | .........(progn.(eieio--validate | 
| 22a0 |  2d 63 6c 61 73 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  | -class-slot-value.class.c.value. | 
| 22c0 |  73 6c 6f 74 29 0a 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  | slot)..................(aset.(ei | 
| 22e0 |  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 6e 2d 76 61 6c 75  | eio--class-class-allocation-valu | 
| 2300 |  65 73 20 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 28 73 6c 6f  | es.class).c.value)).........(slo | 
| 2320 |  74 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  | t-missing.obj.slot.'oset.value)) | 
| 2340 |  29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65    72 69 63 20 63 6c 6f 73 71 6c 2d 64 73 65 74 20  | )))..(cl-defgeneric.closql-dset. | 
| 2360 |  28 6f 62 6a 20 73 6c 6f 74 20 76 61 6c 75 65 20    26 6f 70 74 69 6f 6e 61 6c 20 64 72 6f 70 2d 75  | (obj.slot.value.&optional.drop-u | 
| 2380 |  6e 6b 6e 6f 77 6e 29 0a 20 20 28 6c 65 74 2a 20    28 28 64 62 20 20 20 20 28 63 6c 6f 73 71 6c 2d  | nknown)...(let*.((db....(closql- | 
| 23a0 |  2d 6f 72 65 66 20 6f 62 6a 20 27 63 6c 6f 73 71    6c 2d 64 61 74 61 62 61 73 65 29 29 0a 20 20 20  | -oref.obj.'closql-database)).... | 
| 23c0 |  20 20 20 20 20 20 28 6b 65 79 20 20 20 28 6f 72    65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20 63  | ......(key...(oref-default.obj.c | 
| 23e0 |  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 28 69 64  | losql-primary-key))..........(id | 
| 2400 |  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 29 0a 20 20 20 20  | ....(closql--oref.obj.key))..... | 
| 2420 |  20 20 20 20 20 28 70 72 6f 70 73 20 28 63 6c 6f    73 71 6c 2d 2d 73 6c 6f 74 2d 70 72 6f 70 65 72  | .....(props.(closql--slot-proper | 
| 2440 |  74 69 65 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 20  | ties.obj.slot))..........(table. | 
| 2460 |  28 61 6c 69 73 74 2d 67 65 74 20 3a 63 6c 6f 73    71 6c 2d 74 61 62 6c 65 20 70 72 6f 70 73 29 29  | (alist-get.:closql-table.props)) | 
| 2480 |  0a 20 20 20 20 20 20 20 20 20 28 74 61 62 6c 65    73 20 28 61 6c 69 73 74 2d 67 65 74 20 3a 63 6c  | ..........(tables.(alist-get.:cl | 
| 24a0 |  6f 73 71 6c 2d 74 61 62 6c 65 73 20 70 72 6f 70    73 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20  | osql-tables.props))).....(cond.. | 
| 24c0 |  20 20 20 20 28 28 61 6c 69 73 74 2d 67 65 74 20    3a 63 6c 6f 73 71 6c 2d 63 6c 61 73 73 20 70 72  | ....((alist-get.:closql-class.pr | 
| 24e0 |  6f 70 73 29 0a 20 20 20 20 20 20 28 65 72 72 6f    72 20 22 4e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74  | ops).......(error."Not.implement | 
| 2500 |  65 64 20 66 6f 72 20 63 6c 6f 73 71 6c 2d 63 6c    61 73 73 20 73 6c 6f 74 73 3a 20 6f 73 65 74 22  | ed.for.closql-class.slots:.oset" | 
| 2520 |  29 29 0a 20 20 20 20 20 28 28 6f 72 20 74 61 62    6c 65 20 28 73 65 74 71 20 74 61 62 6c 65 20 28  | ))......((or.table.(setq.table.( | 
| 2540 |  63 61 72 20 74 61 62 6c 65 73 29 29 29 0a 20 20    20 20 20 20 28 63 6c 6f 73 71 6c 2d 77 69 74 68  | car.tables))).......(closql-with | 
| 2560 |  2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 64 62 0a    20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63  | -transaction.db.........(let.((c | 
| 2580 |  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 6e 73 20 64 62  | olumns.(closql--table-columns.db | 
| 25a0 |  20 74 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 3b 3b 20 43 61 6c 6c 65 72 20 6d 69  | .table)))...........;;.Caller.mi | 
| 25c0 |  67 68 74 20 68 61 76 65 20 6d 6f 64 69 66 69 65    64 20 76 61 6c 75 65 20 69 6e 20 70 6c 61 63 65  | ght.have.modified.value.in.place | 
| 25e0 |  2e 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 6f    73 71 6c 2d 2d 6f 73 65 74 20 6f 62 6a 20 73 6c  | ............(closql--oset.obj.sl | 
| 2600 |  6f 74 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75 6e    64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65  | ot.eieio--unbound)...........(le | 
| 2620 |  74 20 28 28 6c 69 73 74 31 20 28 63 6c 6f 73 71    6c 2d 6f 72 65 66 20 6f 62 6a 20 73 6c 6f 74 29  | t.((list1.(closql-oref.obj.slot) | 
| 2640 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 69 73 74 32 20 76 61 6c 75 65 29 0a  | ).................(list2.value). | 
| 2660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    65 6c 74 31 20 65 6c 74 32 29 0a 20 20 20 20 20  | ................elt1.elt2)...... | 
| 2680 |  20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 74 61    62 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20  | .......(cond.(tables............ | 
| 26a0 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69    73 74 31 20 28 6d 61 70 63 61 72 20 28 6c 61 6d  | ........(setq.list1.(mapcar.(lam | 
| 26c0 |  62 64 61 20 28 65 29 20 28 6c 69 73 74 20 28 63    61 72 20 65 29 29 29 20 6c 69 73 74 31 29 29 0a  | bda.(e).(list.(car.e))).list1)). | 
| 26e0 |  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 6c 69 73 74 32 20 28  | ...................(setq.list2.( | 
| 2700 |  6d 61 70 63 61 72 20 28 69 66 20 28 61 74 6f 6d    20 28 63 61 72 20 6c 69 73 74 32 29 29 0a 20 20  | mapcar.(if.(atom.(car.list2))... | 
| 2720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2740 |  20 20 20 20 20 20 20 20 20 23 27 6c 69 73 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........#'list................. | 
| 2760 |  20 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 61 6d 62 64 61  | .........................(lambda | 
| 2780 |  20 28 65 29 20 28 6c 69 73 74 20 28 63 61 72 20    65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .(e).(list.(car.e))))........... | 
| 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 6c 69 73  | .............................lis | 
| 27c0 |  74 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68  | t2)))...................((length | 
| 27e0 |  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 20 20 20 20 20 20 20  | =.columns.2).................... | 
| 2800 |  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 74 31  | (setq.list1.(mapcar.#'list.list1 | 
| 2820 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 6c 69 73 74  | ))....................(setq.list | 
| 2840 |  32 20 28 6d 61 70 63 61 72 20 23 27 6c 69 73 74    20 6c 69 73 74 32 29 29 29 29 0a 20 20 20 20 20  | 2.(mapcar.#'list.list2))))...... | 
| 2860 |  20 20 20 20 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  | .......;;.`list2'.may.not.be.sor | 
| 2880 |  74 65 64 20 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  | ted.at.all.and.`list1'.has.to... | 
| 28a0 |  20 20 20 20 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  | ..........;;.be.sorted.because.E | 
| 28c0 |  6c 69 73 70 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  | lisp.and.SQLite.sort.differently | 
| 28e0 |  2e 0a 20 20 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  | ..............(setq.list1.(cl-so | 
| 2900 |  72 74 20 6c 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  | rt.list1.#'string<.:key.#'car)). | 
| 2920 |  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 63 6c 2d 73 6f 72 74  | ............(setq.list2.(cl-sort | 
| 2940 |  20 6c 69 73 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  | .list2.#'string<.:key.#'car))... | 
| 2960 |  20 20 20 20 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  | ..........(while.(progn.(setq.el | 
| 2980 |  74 31 20 28 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  | t1.(car.list1))................. | 
| 29a0 |  20 20 20 20 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  | ..........(setq.elt2.(car.list2) | 
| 29c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20  | )...........................(or. | 
| 29e0 |  65 6c 74 31 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  | elt1.elt2))...............(let.( | 
| 2a00 |  28 6b 65 79 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  | (key1.(car.elt1))............... | 
| 2a20 |  20 20 20 20 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  | ......(key2.(car.elt2)))........ | 
| 2a40 |  20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........(cond.................. | 
| 2a60 |  28 28 61 6e 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  | ((and.elt1.(or.(not.elt2).(strin | 
| 2a80 |  67 3c 20 6b 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  | g<.key1.key2)))................. | 
| 2aa0 |  20 20 28 61 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  | ..(apply.#'emacsql.db........... | 
| 2ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60    5b 3a 64 65 6c 65 74 65 2d 66 72 6f 6d 20 24 69  | ...............`[:delete-from.$i | 
| 2ae0 |  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 3a 77 68  | 1............................:wh | 
| 2b00 |  65 72 65 20 2c 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  | ere.,(closql--where-equal.(cons. | 
| 2b20 |  69 64 20 65 6c 74 31 29 20 31 29 5d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | id.elt1).1)].................... | 
| 2b40 |  20 20 20 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  | ......table..................... | 
| 2b60 |  20 20 20 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  | .....(cl-mapcan.#'list.columns.( | 
| 2b80 |  63 6f 6e 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  | cons.id.elt1)))................. | 
| 2ba0 |  20 20 28 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  | ..(pop.list1)).................. | 
| 2bc0 |  28 28 73 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  | ((string=.key1.key2)............ | 
| 2be0 |  20 20 20 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  | .......(unless.(equal.elt1.elt2) | 
| 2c00 |  0a 20 20 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  | .....................(cl-mapc... | 
| 2c20 |  20 20 20 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  | ...................(lambda.(col. | 
| 2c40 |  76 61 6c 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  | val1.val2)...................... | 
| 2c60 |  20 20 28 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  | ..(unless.(equal.val1.val2)..... | 
| 2c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 65 6d 61 63 73 71 6c 20 64 62  | .....................(emacsql.db | 
| 2ca0 |  20 5b 3a 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  | .[:update.$i1.:set.(=.$i2.$s3).. | 
| 2cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2ce0 |  20 20 20 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  | .....:where.(and.(=.$i4.$s5).(=. | 
| 2d00 |  24 69 36 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  | $i6.$s7))]...................... | 
| 2d20 |  20 20 20 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  | .............table.col.val2..... | 
| 2d40 |  20 20 20 20 20 20 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  | ..............................(c | 
| 2d60 |  61 72 20 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  | ar..columns).id................. | 
| 2d80 |  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 75 6d 6e 73 29  | ..................(cadr.columns) | 
| 2da0 |  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 20 20 20 28 63  | .key2)))......................(c | 
| 2dc0 |  64 64 72 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  | ddr.columns).................... | 
| 2de0 |  20 20 28 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  | ..(cdr..elt1)................... | 
| 2e00 |  20 20 20 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  | ...(cdr..elt2)))................ | 
| 2e20 |  20 20 20 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  | ...(pop.list1).................. | 
| 2e40 |  20 28 70 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  | .(pop.list2))..................( | 
| 2e60 |  64 72 6f 70 2d 75 6e 6b 6e 6f 77 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | drop-unknown...................( | 
| 2e80 |  69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ignore-errors................... | 
| 2ea0 |  20 20 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a    69 6e 73 65 72 74 2d 69 6e 74 6f 20 24 69 31 20  | ..(emacsql.db.[:insert-into.$i1. | 
| 2ec0 |  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 20 20 20 20  | :values.$v2].................... | 
| 2ee0 |  20 20 20 20 20 20 20 20 20 20 74 61 62 6c 65 20    28 76 63 6f 6e 63 61 74 20 28 63 6f 6e 73 20 69  | ..........table.(vconcat.(cons.i | 
| 2f00 |  64 20 65 6c 74 32 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f  | d.elt2))))...................(po | 
| 2f20 |  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 20  | p.list2))..................(t... | 
| 2f40 |  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 6e  | ................(emacsql.db.[:in | 
| 2f60 |  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 20  | sert-into.$i1.:values.$v2]...... | 
| 2f80 |  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 6f  | ......................table.(vco | 
| 2fa0 |  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 20  | ncat.(cons.id.elt2)))........... | 
| 2fc0 |  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 20  | ........(pop.list2)))))))))..... | 
| 2fe0 |  20 28 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 74 20  | .((emacsql.db.[:update.$i1.:set. | 
| 3000 |  28 3d 20 24 69 32 20 24 73 33 29 20 3a 77 68 65    72 65 20 28 3d 20 24 69 34 20 24 73 35 29 5d 0a  | (=.$i2.$s3).:where.(=.$i4.$s5)]. | 
| 3020 |  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 62 6a  | ...............(oref-default.obj | 
| 3040 |  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 73 6c  | .closql-table)................sl | 
| 3060 |  6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 69 66 20 28 65 71 20 76 61 6c 75 65 20  | ot................(if.(eq.value. | 
| 3080 |  65 69 65 69 6f 2d 2d 75 6e 62 6f 75 6e 64 29 20    27 65 69 65 69 6f 2d 75 6e 62 6f 75 6e 64 20 76  | eieio--unbound).'eieio-unbound.v | 
| 30a0 |  61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6b 65 79 20 69 64 29 29 29 29 29  | alue)................key.id))))) | 
| 30c0 |  0a 0a 3b 3b 3b 3b 20 53 6c 6f 74 20 50 72 6f 70    65 72 74 69 65 73 0a 0a 28 64 65 66 75 6e 20 63  | ..;;;;.Slot.Properties..(defun.c | 
| 30e0 |  6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d 70 72 6f 70    65 72 74 69 65 73 20 28 6f 62 6a 65 63 74 2d 6f  | losql--slot-properties.(object-o | 
| 3100 |  72 2d 63 6c 61 73 73 20 73 6c 6f 74 29 0a 20 20    28 61 6e 64 2d 6c 65 74 2a 20 28 28 64 65 73 63  | r-class.slot)...(and-let*.((desc | 
| 3120 |  20 28 63 6c 2d 66 69 6e 64 20 73 6c 6f 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(cl-find.slot.................. | 
| 3140 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73    71 6c 2d 2d 6f 62 6a 65 63 74 2d 73 6c 6f 74 73  | ...........(closql--object-slots | 
| 3160 |  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 20 20  | .object-or-class)............... | 
| 3180 |  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 74 2d 64 65  | ..............:key.#'cl--slot-de | 
| 31a0 |  73 63 72 69 70 74 6f 72 2d 6e 61 6d 65 29 29 29    0a 20 20 20 20 28 63 6c 2d 2d 73 6c 6f 74 2d 64  | scriptor-name))).....(cl--slot-d | 
| 31c0 |  65 73 63 72 69 70 74 6f 72 2d 70 72 6f 70 73 20    64 65 73 63 29 29 29 0a 0a 28 64 65 66 75 6e 20  | escriptor-props.desc)))..(defun. | 
| 31e0 |  63 6c 6f 73 71 6c 2d 2d 6f 62 6a 65 63 74 2d 73    6c 6f 74 73 20 28 6f 62 6a 65 63 74 2d 6f 72 2d  | closql--object-slots.(object-or- | 
| 3200 |  63 6c 61 73 73 29 0a 20 20 28 65 69 65 69 6f 2d    63 6c 61 73 73 2d 73 6c 6f 74 73 0a 20 20 20 28  | class)...(eieio-class-slots....( | 
| 3220 |  63 6f 6e 64 0a 20 20 20 20 28 28 65 69 65 69 6f    2d 6f 62 6a 65 63 74 2d 70 20 6f 62 6a 65 63 74  | cond.....((eieio-object-p.object | 
| 3240 |  2d 6f 72 2d 63 6c 61 73 73 29 20 28 65 69 65 69    6f 2d 2d 6f 62 6a 65 63 74 2d 63 6c 61 73 73 20  | -or-class).(eieio--object-class. | 
| 3260 |  6f 62 6a 65 63 74 2d 6f 72 2d 63 6c 61 73 73 29    29 0a 20 20 20 20 28 28 65 69 65 69 6f 2d 2d 63  | object-or-class)).....((eieio--c | 
| 3280 |  6c 61 73 73 2d 70 20 6f 62 6a 65 63 74 2d 6f 72    2d 63 6c 61 73 73 29 20 6f 62 6a 65 63 74 2d 6f  | lass-p.object-or-class).object-o | 
| 32a0 |  72 2d 63 6c 61 73 73 29 0a 20 20 20 20 28 28 66    69 6e 64 2d 63 6c 61 73 73 20 6f 62 6a 65 63 74  | r-class).....((find-class.object | 
| 32c0 |  2d 6f 72 2d 63 6c 61 73 73 20 27 65 72 72 6f 72    29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74  | -or-class.'error)))))..(defconst | 
| 32e0 |  20 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  | .closql--slot-properties.'(:clos | 
| 3300 |  71 6c 2d 63 6c 61 73 73 20 3a 63 6c 6f 73 71 6c    2d 74 61 62 6c 65 20 3a 63 6c 6f 73 71 6c 2d 74  | ql-class.:closql-table.:closql-t | 
| 3320 |  61 62 6c 65 73 29 29 0a 0a 28 64 65 66 69 6e 65    2d 61 64 76 69 63 65 20 65 69 65 69 6f 2d 64 65  | ables))..(define-advice.eieio-de | 
| 3340 |  66 63 6c 61 73 73 2d 69 6e 74 65 72 6e 61 6c 0a    20 20 20 20 28 3a 61 66 74 65 72 20 28 63 6e 61  | fclass-internal.....(:after.(cna | 
| 3360 |  6d 65 20 5f 73 75 70 65 72 63 6c 61 73 73 65 73    20 73 6c 6f 74 73 20 5f 6f 70 74 69 6f 6e 73 29  | me._superclasses.slots._options) | 
| 3380 |  20 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29 0a    20 20 22 48 61 6e 64 6c 65 20 61 64 64 69 74 69  | .closql-object)..."Handle.additi | 
| 33a0 |  6f 6e 61 6c 20 73 6c 6f 74 20 70 72 6f 70 65 72    74 69 65 73 20 75 73 65 64 20 62 79 20 60 63 6c  | onal.slot.properties.used.by.`cl | 
| 33c0 |  6f 73 71 6c 2d 6f 62 6a 65 63 74 27 20 64 65 72    69 76 65 64 20 63 6c 61 73 73 65 73 2e 22 0a 20  | osql-object'.derived.classes.".. | 
| 33e0 |  20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6c    61 73 73 20 28 63 6c 2d 2d 66 69 6e 64 2d 63 6c  | .(when-let*.((class.(cl--find-cl | 
| 3400 |  61 73 73 20 63 6e 61 6d 65 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 5f 28 63 68 69  | ass.cname))...............(_(chi | 
| 3420 |  6c 64 2d 6f 66 2d 63 6c 61 73 73 2d 70 20 63 6c    61 73 73 20 27 63 6c 6f 73 71 6c 2d 6f 62 6a 65  | ld-of-class-p.class.'closql-obje | 
| 3440 |  63 74 29 29 29 0a 20 20 20 20 28 70 63 61 73 65    2d 64 6f 6c 69 73 74 20 28 60 28 2c 6e 61 6d 65  | ct))).....(pcase-dolist.(`(,name | 
| 3460 |  20 2e 20 2c 73 6c 6f 74 29 20 73 6c 6f 74 73 29    0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65  | ...,slot).slots).......(let.((de | 
| 3480 |  73 63 20 28 63 6c 2d 66 69 6e 64 20 6e 61 6d 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | sc.(cl-find.name................ | 
| 34a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d    63 6f 65 72 63 65 20 28 65 69 65 69 6f 2d 2d 63  | ............(cl-coerce.(eieio--c | 
| 34c0 |  6c 61 73 73 2d 73 6c 6f 74 73 20 63 6c 61 73 73    29 20 27 6c 69 73 74 29 0a 20 20 20 20 20 20 20  | lass-slots.class).'list)........ | 
| 34e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 6b 65 79 20 28 6c 61 6d 62 64 61  | ....................:key.(lambda | 
| 3500 |  20 28 65 6c 74 29 20 28 61 72 65 66 20 65 6c 74    20 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20  | .(elt).(aref.elt.1)))))......... | 
| 3520 |  28 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  | (dolist.(prop.closql--slot-prope | 
| 3540 |  72 74 69 65 73 29 0a 20 20 20 20 20 20 20 20 20    20 28 77 68 65 6e 2d 6c 65 74 0a 20 20 20 20 20  | rties)...........(when-let...... | 
| 3560 |  20 20 20 20 20 20 20 20 20 28 28 76 20 28 70 6c    69 73 74 2d 67 65 74 20 73 6c 6f 74 20 70 72 6f  | .........((v.(plist-get.slot.pro | 
| 3580 |  70 29 29 29 0a 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 67 65  | p))).............(setf.(alist-ge | 
| 35a0 |  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 6f 70  | t.prop.(cl--slot-descriptor-prop | 
| 35c0 |  73 20 64 65 73 63 29 29 20 76 29 29 29 29 29 29    29 0a 0a 28 64 65 66 69 6e 65 2d 61 64 76 69 63  | s.desc)).v)))))))..(define-advic | 
| 35e0 |  65 20 65 69 65 69 6f 2d 2d 73 6c 6f 74 2d 6f 76    65 72 72 69 64 65 0a 20 20 20 20 28 3a 61 66 74  | e.eieio--slot-override.....(:aft | 
| 3600 |  65 72 20 28 6f 6c 64 20 6e 65 77 20 5f 73 6b 69    70 6e 69 6c 29 20 63 6c 6f 73 71 6c 2d 6f 62 6a  | er.(old.new._skipnil).closql-obj | 
| 3620 |  65 63 74 29 0a 20 20 22 48 61 6e 64 6c 65 20 61    64 64 69 74 69 6f 6e 61 6c 20 73 6c 6f 74 20 70  | ect)..."Handle.additional.slot.p | 
| 3640 |  72 6f 70 65 72 74 69 65 73 20 75 73 65 64 20 62    79 20 60 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74  | roperties.used.by.`closql-object | 
| 3660 |  27 20 64 65 72 69 76 65 64 20 63 6c 61 73 73 65    73 2e 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 70  | '.derived.classes."...(dolist.(p | 
| 3680 |  72 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  | rop.closql--slot-properties).... | 
| 36a0 |  20 28 77 68 65 6e 2d 6c 65 74 0a 20 20 20 20 20    20 20 20 28 28 76 20 28 61 6c 69 73 74 2d 67 65  | .(when-let.........((v.(alist-ge | 
| 36c0 |  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 6f 70  | t.prop.(cl--slot-descriptor-prop | 
| 36e0 |  73 20 6e 65 77 29 29 29 29 0a 20 20 20 20 20 20    28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74  | s.new)))).......(setf.(alist-get | 
| 3700 |  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 6f 70 73  | .prop.(cl--slot-descriptor-props | 
| 3720 |  20 6f 6c 64 29 29 20 76 29 29 29 29 0a 0a 3b 3b    3b 20 44 61 74 61 62 61 73 65 0a 0a 28 64 65 66  | .old)).v))))..;;;.Database..(def | 
| 3740 |  63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d 64 61 74    61 62 61 73 65 20 28 65 69 65 69 6f 2d 73 69 6e  | class.closql-database.(eieio-sin | 
| 3760 |  67 6c 65 74 6f 6e 29 0a 20 20 28 28 6e 61 6d 65    20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 66 6f  | gleton)...((name.........:initfo | 
| 3780 |  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 28 6f  | rm.nil.:allocation.:class)....(o | 
| 37a0 |  62 6a 65 63 74 2d 63 6c 61 73 73 20 3a 69 6e 69    74 66 6f 72 6d 20 6e 69 6c 20 3a 61 6c 6c 6f 63  | bject-class.:initform.nil.:alloc | 
| 37c0 |  61 74 69 6f 6e 20 3a 63 6c 61 73 73 29 0a 20 20    20 28 66 69 6c 65 20 20 20 20 20 20 20 20 20 3a  | ation.:class)....(file.........: | 
| 37e0 |  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 29  | initform.nil.:allocation.:class) | 
| 3800 |  0a 20 20 20 28 73 63 68 65 6d 61 74 61 20 20 20    20 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 20  | ....(schemata.....:initform.nil. | 
| 3820 |  3a 61 6c 6c 6f 63 61 74 69 6f 6e 20 3a 63 6c 61    73 73 29 0a 20 20 20 28 76 65 72 73 69 6f 6e 20  | :allocation.:class)....(version. | 
| 3840 |  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 20 3a  | .....:initform.nil.:allocation.: | 
| 3860 |  63 6c 61 73 73 29 0a 20 20 20 28 64 69 73 61 62    6c 65 64 20 20 20 20 20 3a 69 6e 69 74 66 6f 72  | class)....(disabled.....:initfor | 
| 3880 |  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 28 63 6f  | m.nil.:allocation.:class)....(co | 
| 38a0 |  6e 6e 65 63 74 69 6f 6e 20 20 20 3a 69 6e 69 74    66 6f 72 6d 20 6e 69 6c 20 3a 69 6e 69 74 61 72  | nnection...:initform.nil.:initar | 
| 38c0 |  67 20 3a 63 6f 6e 6e 65 63 74 69 6f 6e 29 29 0a    20 20 3a 61 62 73 74 72 61 63 74 20 74 29 0a 0a  | g.:connection))...:abstract.t).. | 
| 38e0 |  28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c    6f 73 71 6c 2d 64 62 20 28 28 63 6c 61 73 73 20  | (cl-defmethod.closql-db.((class. | 
| 3900 |  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 29 29 0a 20 20 20 20  | (subclass.closql-database))..... | 
| 3920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 26 6f 70 74 69 6f 6e 61 6c 20 6c  | .....................&optional.l | 
| 3940 |  69 76 65 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d    63 6c 61 73 73 29 0a 20 20 28 6f 72 20 28 61 6e  | ivep.connection-class)...(or.(an | 
| 3960 |  64 2d 6c 65 74 2a 20 28 28 64 62 20 28 6f 72 65    66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20  | d-let*.((db.(oref-default.class. | 
| 3980 |  73 69 6e 67 6c 65 74 6f 6e 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f  | singleton))..................(co | 
| 39a0 |  6e 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 71    20 64 62 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75  | nn.(and.(not.(eq.db.eieio--unbou | 
| 39c0 |  6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nd))............................ | 
| 39e0 |  20 28 6f 72 65 66 20 64 62 20 63 6f 6e 6e 65 63    74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20  | .(oref.db.connection))))........ | 
| 3a00 |  20 28 61 6e 64 20 28 65 6d 61 63 73 71 6c 2d 6c    69 76 65 2d 70 20 63 6f 6e 6e 29 20 64 62 29 29  | .(and.(emacsql-live-p.conn).db)) | 
| 3a20 |  0a 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74    20 6c 69 76 65 70 29 0a 20 20 20 20 20 20 20 20  | .......(and.(not.livep)......... | 
| 3a40 |  20 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 20    28 63 6c 6f 73 71 6c 2d 2d 64 62 2d 70 72 65 70  | ...(let*.((file.(closql--db-prep | 
| 3a60 |  61 72 65 2d 73 74 6f 72 61 67 65 20 63 6c 61 73    73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | are-storage.class))............. | 
| 3a80 |  20 20 20 20 20 20 28 63 6f 6e 6e 65 63 74 69 6f    6e 2d 63 6c 61 73 73 20 28 6f 72 20 63 6f 6e 6e  | ......(connection-class.(or.conn | 
| 3aa0 |  65 63 74 69 6f 6e 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  | ection-class.................... | 
| 3ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 65 6d 61 63 73 71 6c 2d 73 71  | .....................(emacsql-sq | 
| 3ae0 |  6c 69 74 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6e    6e 65 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20  | lite-default-connection)))...... | 
| 3b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f    6e 6e 20 28 6d 61 6b 65 2d 69 6e 73 74 61 6e 63  | .............(conn.(make-instanc | 
| 3b20 |  65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d 63 6c 61    73 73 20 3a 66 69 6c 65 20 66 69 6c 65 29 29 0a  | e.connection-class.:file.file)). | 
| 3b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 64 62 20 28 6d 61 6b 65 2d 69 6e 73 74  | ..................(db.(make-inst | 
| 3b60 |  61 6e 63 65 20 63 6c 61 73 73 29 29 29 20 3b 20    69 67 6e 6f 72 65 73 20 73 6c 6f 74 20 61 72 67  | ance.class))).;.ignores.slot.arg | 
| 3b80 |  75 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6f 73 65 74 20 64 62 20 63 6f 6e  | uments..............(oset.db.con | 
| 3ba0 |  6e 65 63 74 69 6f 6e 20 63 6f 6e 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63  | nection.conn)..............(emac | 
| 3bc0 |  73 71 6c 20 63 6f 6e 6e 20 5b 3a 70 72 61 67 6d    61 20 28 3d 20 66 6f 72 65 69 67 6e 2d 6b 65 79  | sql.conn.[:pragma.(=.foreign-key | 
| 3be0 |  73 20 6f 6e 29 5d 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 65  | s.on)])..............(if.(not.(e | 
| 3c00 |  6d 61 63 73 71 6c 2d 73 71 6c 69 74 65 2d 6c 69    73 74 2d 74 61 62 6c 65 73 20 64 62 29 29 0a 20  | macsql-sqlite-list-tables.db)).. | 
| 3c20 |  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 64 62 2d 63 72 65 61  | ................(closql--db-crea | 
| 3c40 |  74 65 2d 73 63 68 65 6d 61 20 64 62 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65  | te-schema.db)................(le | 
| 3c60 |  74 20 28 28 63 6f 64 65 2d 76 65 72 73 69 6f 6e    20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 64  | t.((code-version.(oref-default.d | 
| 3c80 |  62 20 76 65 72 73 69 6f 6e 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | b.version))..................... | 
| 3ca0 |  20 28 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  | .(data-version.(closql--db-get-v | 
| 3cc0 |  65 72 73 69 6f 6e 20 64 62 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63  | ersion.db)))..................(c | 
| 3ce0 |  6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 28 3c 20 63 6f 64 65 2d 76  | ond...................((<.code-v | 
| 3d00 |  65 72 73 69 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  | ersion.data-version)............ | 
| 3d20 |  20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........(message................ | 
| 3d40 |  20 20 20 20 20 22 50 6c 65 61 73 65 20 75 70 64    61 74 65 20 25 73 20 70 61 63 6b 61 67 65 20 28  | ....."Please.update.%s.package.( | 
| 3d60 |  64 61 74 61 62 61 73 65 20 73 63 68 65 6d 61 20    76 65 72 73 69 6f 6e 20 25 73 20 3c 20 25 73 29  | database.schema.version.%s.<.%s) | 
| 3d80 |  22 0a 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  | ".....................(oref-defa | 
| 3da0 |  75 6c 74 20 64 62 20 6e 61 6d 65 29 20 63 6f 64    65 2d 76 65 72 73 69 6f 6e 20 64 61 74 61 2d 76  | ult.db.name).code-version.data-v | 
| 3dc0 |  65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74  | ersion)....................(oset | 
| 3de0 |  2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73 20 64    69 73 61 62 6c 65 64 20 74 29 0a 20 20 20 20 20  | -default.class.disabled.t)...... | 
| 3e00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    6d 61 63 73 71 6c 2d 63 6c 6f 73 65 20 64 62 29  | ..............(emacsql-close.db) | 
| 3e20 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 64 62 20 6e 69 6c  | ....................(setq.db.nil | 
| 3e40 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 63 6c 6f 73 71 6c 2d 2d 64  | ))...................((closql--d | 
| 3e60 |  62 2d 75 70 64 61 74 65 2d 73 63 68 65 6d 61 20    64 62 29 29 29 29 29 0a 20 20 20 20 20 20 20 20  | b-update-schema.db)))))......... | 
| 3e80 |  20 20 20 20 20 64 62 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  | .....db))))..(cl-defmethod.closq | 
| 3ea0 |  6c 2d 2d 64 62 2d 70 72 65 70 61 72 65 2d 73 74    6f 72 61 67 65 20 28 28 63 6c 61 73 73 20 28 73  | l--db-prepare-storage.((class.(s | 
| 3ec0 |  75 62 63 6c 61 73 73 20 63 6c 6f 73 71 6c 2d 64    61 74 61 62 61 73 65 29 29 29 0a 20 20 28 77 68  | ubclass.closql-database)))...(wh | 
| 3ee0 |  65 6e 2d 6c 65 74 20 28 28 66 69 6c 65 20 28 6f    72 65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73  | en-let.((file.(oref-default.clas | 
| 3f00 |  73 20 66 69 6c 65 29 29 29 0a 20 20 20 20 28 77    68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 66 69 6c  | s.file))).....(when.(symbolp.fil | 
| 3f20 |  65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66    69 6c 65 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75  | e).......(setq.file.(symbol-valu | 
| 3f40 |  65 20 66 69 6c 65 29 29 29 0a 20 20 20 20 28 6d    61 6b 65 2d 64 69 72 65 63 74 6f 72 79 20 28 66  | e.file))).....(make-directory.(f | 
| 3f60 |  69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f    72 79 20 66 69 6c 65 29 20 74 29 0a 20 20 20 20  | ile-name-directory.file).t)..... | 
| 3f80 |  66 69 6c 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 64 62  | file))..(cl-defmethod.closql--db | 
| 3fa0 |  2d 63 72 65 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  | -create-schema.((db.closql-datab | 
| 3fc0 |  61 73 65 29 29 0a 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  | ase))...(closql-with-transaction | 
| 3fe0 |  20 64 62 0a 20 20 20 20 28 70 63 61 73 65 2d 64    6f 6c 69 73 74 20 28 60 28 2c 74 61 62 6c 65 20  | .db.....(pcase-dolist.(`(,table. | 
| 4000 |  2e 20 2c 73 63 68 65 6d 61 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | ..,schema)....................(s | 
| 4020 |  79 6d 62 6f 6c 2d 76 61 6c 75 65 20 28 6f 72 65    66 2d 64 65 66 61 75 6c 74 20 64 62 20 73 63 68  | ymbol-value.(oref-default.db.sch | 
| 4040 |  65 6d 61 74 61 29 29 29 0a 20 20 20 20 20 20 28    65 6d 61 63 73 71 6c 20 64 62 20 5b 3a 63 72 65  | emata))).......(emacsql.db.[:cre | 
| 4060 |  61 74 65 2d 74 61 62 6c 65 20 24 69 31 20 24 53    32 5d 20 74 61 62 6c 65 20 73 63 68 65 6d 61 29  | ate-table.$i1.$S2].table.schema) | 
| 4080 |  29 0a 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 64    62 2d 73 65 74 2d 76 65 72 73 69 6f 6e 20 64 62  | ).....(closql--db-set-version.db | 
| 40a0 |  20 28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 64    62 20 76 65 72 73 69 6f 6e 29 29 29 29 0a 0a 28  | .(oref-default.db.version))))..( | 
| 40c0 |  63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f    73 71 6c 2d 2d 64 62 2d 75 70 64 61 74 65 2d 73  | cl-defmethod.closql--db-update-s | 
| 40e0 |  63 68 65 6d 61 20 28 28 64 62 20 63 6c 6f 73 71    6c 2d 64 61 74 61 62 61 73 65 29 29 0a 20 20 28  | chema.((db.closql-database))...( | 
| 4100 |  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 64 65 66 61 75 6c 74  | let.((code-version.(oref-default | 
| 4120 |  20 64 62 20 76 65 72 73 69 6f 6e 29 29 0a 20 20    20 20 20 20 20 20 28 64 61 74 61 2d 76 65 72 73  | .db.version)).........(data-vers | 
| 4140 |  69 6f 6e 20 28 63 6c 6f 73 71 6c 2d 2d 64 62 2d    67 65 74 2d 76 65 72 73 69 6f 6e 20 64 62 29 29  | ion.(closql--db-get-version.db)) | 
| 4160 |  29 0a 20 20 20 20 28 77 68 65 6e 20 28 3c 20 64    61 74 61 2d 76 65 72 73 69 6f 6e 20 63 6f 64 65  | ).....(when.(<.data-version.code | 
| 4180 |  2d 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20    28 6f 73 65 74 2d 64 65 66 61 75 6c 74 20 64 62  | -version).......(oset-default.db | 
| 41a0 |  20 64 69 73 61 62 6c 65 64 20 74 29 0a 20 20 20    20 20 20 28 65 6d 61 63 73 71 6c 2d 63 6c 6f 73  | .disabled.t).......(emacsql-clos | 
| 41c0 |  65 20 64 62 29 0a 20 20 20 20 20 20 28 65 72 72    6f 72 20 22 50 6c 65 61 73 65 20 75 70 64 61 74  | e.db).......(error."Please.updat | 
| 41e0 |  65 20 25 73 20 64 61 74 61 62 61 73 65 20 28 73    63 68 65 6d 61 20 76 65 72 73 69 6f 6e 20 25 73  | e.%s.database.(schema.version.%s | 
| 4200 |  20 3c 20 25 73 29 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6f 72 65 66 2d 64 65 66 61 75  | .<.%s)"..............(oref-defau | 
| 4220 |  6c 74 20 64 62 20 6e 61 6d 65 29 20 64 61 74 61    2d 76 65 72 73 69 6f 6e 20 63 6f 64 65 2d 76 65  | lt.db.name).data-version.code-ve | 
| 4240 |  72 73 69 6f 6e 29 29 29 29 0a 0a 28 63 6c 2d 64    65 66 6d 65 74 68 6f 64 20 65 6d 61 63 73 71 6c  | rsion))))..(cl-defmethod.emacsql | 
| 4260 |  2d 6c 69 76 65 2d 70 20 28 28 64 62 20 63 6c 6f    73 71 6c 2d 64 61 74 61 62 61 73 65 29 29 0a 20  | -live-p.((db.closql-database)).. | 
| 4280 |  20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 63 6f 6e    6e 20 28 6f 72 65 66 20 64 62 20 63 6f 6e 6e 65  | .(and-let*.((conn.(oref.db.conne | 
| 42a0 |  63 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 65 6d    61 63 73 71 6c 2d 6c 69 76 65 2d 70 20 63 6f 6e  | ction))).....(emacsql-live-p.con | 
| 42c0 |  6e 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74    68 6f 64 20 65 6d 61 63 73 71 6c 2d 65 6e 61 62  | n)))..(cl-defmethod.emacsql-enab | 
| 42e0 |  6c 65 2d 64 65 62 75 67 67 69 6e 67 20 28 28 64    62 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73  | le-debugging.((db.closql-databas | 
| 4300 |  65 29 29 0a 20 20 28 65 6d 61 63 73 71 6c 2d 65    6e 61 62 6c 65 2d 64 65 62 75 67 67 69 6e 67 20  | e))...(emacsql-enable-debugging. | 
| 4320 |  28 6f 72 65 66 20 64 62 20 63 6f 6e 6e 65 63 74    69 6f 6e 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d  | (oref.db.connection)))..(cl-defm | 
| 4340 |  65 74 68 6f 64 20 65 6d 61 63 73 71 6c 2d 63 6c    6f 73 65 20 28 28 64 62 20 63 6c 6f 73 71 6c 2d  | ethod.emacsql-close.((db.closql- | 
| 4360 |  64 61 74 61 62 61 73 65 29 29 0a 20 20 28 65 6d    61 63 73 71 6c 2d 63 6c 6f 73 65 20 28 6f 72 65  | database))...(emacsql-close.(ore | 
| 4380 |  66 20 64 62 20 63 6f 6e 6e 65 63 74 69 6f 6e 29    29 0a 20 20 28 6f 73 65 74 20 64 62 20 63 6f 6e  | f.db.connection))...(oset.db.con | 
| 43a0 |  6e 65 63 74 69 6f 6e 20 6e 69 6c 29 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 65 6d 61  | nection.nil))..(cl-defmethod.ema | 
| 43c0 |  63 73 71 6c 20 28 28 64 62 20 63 6c 6f 73 71 6c    2d 64 61 74 61 62 61 73 65 29 20 73 71 6c 20 26  | csql.((db.closql-database).sql.& | 
| 43e0 |  72 65 73 74 20 61 72 67 73 29 0a 20 20 28 6d 61    70 63 61 72 20 23 27 63 6c 6f 73 71 6c 2d 2d 65  | rest.args)...(mapcar.#'closql--e | 
| 4400 |  78 74 65 72 6e 2d 75 6e 62 6f 75 6e 64 0a 20 20    20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23  | xtern-unbound...........(apply.# | 
| 4420 |  27 65 6d 61 63 73 71 6c 20 28 6f 72 65 66 20 64    62 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 73 71  | 'emacsql.(oref.db.connection).sq | 
| 4440 |  6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62  | l..................(mapcar.(lamb | 
| 4460 |  64 61 20 28 61 72 67 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  | da.(arg)........................ | 
| 4480 |  20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70    20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20  | ....(if.(stringp.arg)........... | 
| 44a0 |  20 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 63 6f 70 79  | .....................(let.((copy | 
| 44c0 |  20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20    61 72 67 29 29 29 0a 20 20 20 20 20 20 20 20 20  | .(copy-sequence.arg))).......... | 
| 44e0 |  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 73 65 74 2d 74 65 78  | ........................(set-tex | 
| 4500 |  74 2d 70 72 6f 70 65 72 74 69 65 73 20 30 20 28    6c 65 6e 67 74 68 20 63 6f 70 79 29 20 6e 69 6c  | t-properties.0.(length.copy).nil | 
| 4520 |  20 63 6f 70 79 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .copy).......................... | 
| 4540 |  20 20 20 20 20 20 20 20 63 6f 70 79 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........copy)................... | 
| 4560 |  20 20 20 20 20 20 20 20 20 20 20 61 72 67 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........arg))................ | 
| 4580 |  20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29    29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f  | ..........args))))..(cl-defmetho | 
| 45a0 |  64 20 63 6c 6f 73 71 6c 2d 69 6e 73 65 72 74 20    28 28 64 62 20 63 6c 6f 73 71 6c 2d 64 61 74 61  | d.closql-insert.((db.closql-data | 
| 45c0 |  62 61 73 65 29 20 6f 62 6a 20 26 6f 70 74 69 6f    6e 61 6c 20 72 65 70 6c 61 63 65 29 0a 20 20 28  | base).obj.&optional.replace)...( | 
| 45e0 |  63 6c 6f 73 71 6c 2d 2d 6f 73 65 74 20 6f 62 6a    20 27 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73  | closql--oset.obj.'closql-databas | 
| 4600 |  65 20 64 62 29 0a 20 20 28 6c 65 74 20 28 61 6c    69 73 74 29 0a 20 20 20 20 28 64 6f 6c 69 73 74  | e.db)...(let.(alist).....(dolist | 
| 4620 |  20 28 73 6c 6f 74 20 28 65 69 65 69 6f 2d 63 6c    61 73 73 2d 73 6c 6f 74 73 20 28 65 69 65 69 6f  | .(slot.(eieio-class-slots.(eieio | 
| 4640 |  2d 2d 6f 62 6a 65 63 74 2d 63 6c 61 73 73 20 6f    62 6a 29 29 29 0a 20 20 20 20 20 20 28 73 65 74  | --object-class.obj))).......(set | 
| 4660 |  71 20 20 73 6c 6f 74 20 28 63 6c 2d 2d 73 6c 6f    74 2d 64 65 73 63 72 69 70 74 6f 72 2d 6e 61 6d  | q..slot.(cl--slot-descriptor-nam | 
| 4680 |  65 20 73 6c 6f 74 29 29 0a 20 20 20 20 20 20 28    77 68 65 6e 20 28 61 6c 69 73 74 2d 67 65 74 20  | e.slot)).......(when.(alist-get. | 
| 46a0 |  3a 63 6c 6f 73 71 6c 2d 74 61 62 6c 65 20 28 63    6c 6f 73 71 6c 2d 2d 73 6c 6f 74 2d 70 72 6f 70  | :closql-table.(closql--slot-prop | 
| 46c0 |  65 72 74 69 65 73 20 6f 62 6a 20 73 6c 6f 74 29    29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20  | erties.obj.slot)).........(push. | 
| 46e0 |  28 63 6f 6e 73 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  | (cons.slot.(closql-oref.obj.slot | 
| 4700 |  29 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 6f 73 65 74 20  | )).alist).........(closql--oset. | 
| 4720 |  6f 62 6a 20 73 6c 6f 74 20 65 69 65 69 6f 2d 2d    75 6e 62 6f 75 6e 64 29 29 29 0a 20 20 20 20 28  | obj.slot.eieio--unbound))).....( | 
| 4740 |  63 6c 6f 73 71 6c 2d 77 69 74 68 2d 74 72 61 6e    73 61 63 74 69 6f 6e 20 64 62 0a 20 20 20 20 20  | closql-with-transaction.db...... | 
| 4760 |  20 28 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 20 28 69 66 20  | .(emacsql.db................(if. | 
| 4780 |  72 65 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 5b 3a 69 6e 73  | replace....................[:ins | 
| 47a0 |  65 72 74 2d 6f 72 2d 72 65 70 6c 61 63 65 2d 69    6e 74 6f 20 24 69 31 20 3a 76 61 6c 75 65 73 20  | ert-or-replace-into.$i1.:values. | 
| 47c0 |  24 76 32 5d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 5b 3a 69 6e 73 65 72 74 2d 69  | $v2]..................[:insert-i | 
| 47e0 |  6e 74 6f 20 24 69 31 20 3a 76 61 6c 75 65 73 20    24 76 32 5d 29 0a 20 20 20 20 20 20 20 20 20 20  | nto.$i1.:values.$v2])........... | 
| 4800 |  20 20 20 20 20 28 6f 72 65 66 2d 64 65 66 61 75    6c 74 20 6f 62 6a 20 63 6c 6f 73 71 6c 2d 74 61  | .....(oref-default.obj.closql-ta | 
| 4820 |  62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28  | ble)................(pcase-let.( | 
| 4840 |  28 60 28 2c 63 6c 61 73 73 20 2c 5f 64 62 20 2e    20 2c 76 61 6c 75 65 73 29 0a 20 20 20 20 20 20  | (`(,class.,_db...,values)....... | 
| 4860 |  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 69  | ......................(closql--i | 
| 4880 |  6e 74 65 72 6e 2d 75 6e 62 6f 75 6e 64 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ntern-unbound................... | 
| 48a0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73    71 6c 2d 2d 63 6f 65 72 63 65 20 6f 62 6a 20 27  | ...........(closql--coerce.obj.' | 
| 48c0 |  6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63  | list))))..................(vconc | 
| 48e0 |  61 74 20 28 63 6f 6e 73 20 28 63 6c 6f 73 71 6c    2d 2d 61 62 62 72 65 76 2d 63 6c 61 73 73 20 63  | at.(cons.(closql--abbrev-class.c | 
| 4900 |  6c 61 73 73 29 20 76 61 6c 75 65 73 29 29 29 29    0a 20 20 20 20 20 20 28 70 63 61 73 65 2d 64 6f  | lass).values)))).......(pcase-do | 
| 4920 |  6c 69 73 74 20 28 60 28 2c 73 6c 6f 74 20 2e 20    2c 76 61 6c 75 65 29 20 61 6c 69 73 74 29 0a 20  | list.(`(,slot...,value).alist).. | 
| 4940 |  20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 64    73 65 74 20 6f 62 6a 20 73 6c 6f 74 20 76 61 6c  | .......(closql-dset.obj.slot.val | 
| 4960 |  75 65 29 29 29 29 0a 20 20 6f 62 6a 29 0a 0a 28    63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f  | ue))))...obj)..(cl-defmethod.clo | 
| 4980 |  73 71 6c 2d 64 65 6c 65 74 65 20 28 28 6f 62 6a    20 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29 29  | sql-delete.((obj.closql-object)) | 
| 49a0 |  0a 20 20 28 6c 65 74 20 28 28 6b 65 79 20 28 6f    72 65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20  | ...(let.((key.(oref-default.obj. | 
| 49c0 |  63 6c 6f 73 71 6c 2d 70 72 69 6d 61 72 79 2d 6b    65 79 29 29 29 0a 20 20 20 20 28 65 6d 61 63 73  | closql-primary-key))).....(emacs | 
| 49e0 |  71 6c 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  | ql.(closql--oref.obj.'closql-dat | 
| 4a00 |  61 62 61 73 65 29 0a 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  | abase)..............[:delete-fro | 
| 4a20 |  6d 20 24 69 31 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  | m.$i1.:where.(=.$i2.$s3)]....... | 
| 4a40 |  20 20 20 20 20 20 20 28 6f 72 65 66 2d 64 65 66    61 75 6c 74 20 6f 62 6a 20 63 6c 6f 73 71 6c 2d  | .......(oref-default.obj.closql- | 
| 4a60 |  74 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 6b 65 79 0a 20 20 20 20 20 20 20 20  | table)..............key......... | 
| 4a80 |  20 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 29 29 29 0a 0a  | .....(closql--oref.obj.key)))).. | 
| 4aa0 |  28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c    6f 73 71 6c 2d 72 65 6c 6f 61 64 20 28 28 6f 62  | (cl-defmethod.closql-reload.((ob | 
| 4ac0 |  6a 20 63 6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29    29 0a 20 20 28 6f 72 20 28 63 6c 6f 73 71 6c 2d  | j.closql-object))...(or.(closql- | 
| 4ae0 |  67 65 74 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  | get.(closql--oref.obj.'closql-da | 
| 4b00 |  74 61 62 61 73 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73 71  | tabase)...................(closq | 
| 4b20 |  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 20 6f 62 6a 20 63 6c  | l--oref.obj.(oref-default.obj.cl | 
| 4b40 |  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 20  | osql-primary-key)).............. | 
| 4b60 |  20 20 20 20 20 28 65 69 65 69 6f 2d 6f 62 6a 65    63 74 2d 63 6c 61 73 73 20 6f 62 6a 29 29 0a 20  | .....(eieio-object-class.obj)).. | 
| 4b80 |  20 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e    6e 6f 74 20 72 65 6c 6f 61 64 20 6f 62 6a 65 63  | .....(error."Cannot.reload.objec | 
| 4ba0 |  74 22 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 67 65 74 20  | t")))..(cl-defmethod.closql-get. | 
| 4bc0 |  28 28 64 62 20 63 6c 6f 73 71 6c 2d 64 61 74 61    62 61 73 65 29 20 69 64 65 6e 74 20 26 6f 70 74  | ((db.closql-database).ident.&opt | 
| 4be0 |  69 6f 6e 61 6c 20 63 6c 61 73 73 20 72 65 73 6f    6c 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 63  | ional.class.resolve)...(unless.c | 
| 4c00 |  6c 61 73 73 0a 20 20 20 20 28 73 65 74 71 20 63    6c 61 73 73 20 28 6f 72 65 66 2d 64 65 66 61 75  | lass.....(setq.class.(oref-defau | 
| 4c20 |  6c 74 20 64 62 20 6f 62 6a 65 63 74 2d 63 6c 61    73 73 29 29 29 0a 20 20 28 61 6e 64 2d 6c 65 74  | lt.db.object-class)))...(and-let | 
| 4c40 |  2a 20 28 28 72 6f 77 20 28 63 61 72 20 28 65 6d    61 63 73 71 6c 20 64 62 20 5b 3a 73 65 6c 65 63  | *.((row.(car.(emacsql.db.[:selec | 
| 4c60 |  74 20 2a 20 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  | t.*.:from.$i1................... | 
| 4c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 77 68 65 72 65 20 28 3d 20 24 69 32 20  | ..................:where.(=.$i2. | 
| 4ca0 |  24 73 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  | $s3)]........................... | 
| 4cc0 |  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 6f 73 71 6c  | ......(oref-default.class.closql | 
| 4ce0 |  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 20 20 20 20  | -table)......................... | 
| 4d00 |  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 6f 73  | ........(oref-default.class.clos | 
| 4d20 |  71 6c 2d 70 72 69 6d 61 72 79 2d 6b 65 79 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ql-primary-key)................. | 
| 4d40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    69 64 65 6e 74 29 29 29 29 0a 20 20 20 20 28 63  | ................ident)))).....(c | 
| 4d60 |  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 61 73 73 20 64 62 20  | losql--remake-instance.class.db. | 
| 4d80 |  72 6f 77 20 72 65 73 6f 6c 76 65 29 29 29 0a 0a    28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c  | row.resolve)))..(cl-defmethod.cl | 
| 4da0 |  6f 73 71 6c 2d 71 75 65 72 79 20 28 28 64 62 20    63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73 65 29  | osql-query.((db.closql-database) | 
| 4dc0 |  20 26 6f 70 74 69 6f 6e 61 6c 20 73 65 6c 65 63    74 20 70 72 65 64 20 63 6c 61 73 73 29 0a 20 20  | .&optional.select.pred.class)... | 
| 4de0 |  28 69 66 20 73 65 6c 65 63 74 0a 20 20 20 20 20    20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 63  | (if.select.......(let.((value.(c | 
| 4e00 |  6c 6f 73 71 6c 2d 73 65 6c 65 63 74 20 64 62 20    73 65 6c 65 63 74 20 70 72 65 64 20 63 6c 61 73  | losql-select.db.select.pred.clas | 
| 4e20 |  73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66    20 28 61 6e 64 20 73 65 6c 65 63 74 20 28 73 79  | s))).........(if.(and.select.(sy | 
| 4e40 |  6d 62 6f 6c 70 20 73 65 6c 65 63 74 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63  | mbolp.select)).............(mapc | 
| 4e60 |  61 72 20 23 27 63 61 72 20 76 61 6c 75 65 29 0a    20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29  | ar.#'car.value)...........value) | 
| 4e80 |  29 0a 20 20 20 20 28 63 6c 6f 73 71 6c 2d 65 6e    74 72 69 65 73 20 64 62 20 70 72 65 64 20 63 6c  | ).....(closql-entries.db.pred.cl | 
| 4ea0 |  61 73 73 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 65 6e 74  | ass)))..(cl-defmethod.closql-ent | 
| 4ec0 |  72 69 65 73 20 28 28 64 62 20 63 6c 6f 73 71 6c    2d 64 61 74 61 62 61 73 65 29 20 26 6f 70 74 69  | ries.((db.closql-database).&opti | 
| 4ee0 |  6f 6e 61 6c 20 70 72 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  | onal.pred.class)...(unless.class | 
| 4f00 |  0a 20 20 20 20 28 73 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  | .....(setq.class.(oref-default.d | 
| 4f20 |  62 20 6f 62 6a 65 63 74 2d 63 6c 61 73 73 29 29    29 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d  | b.object-class)))...(mapcar.(lam | 
| 4f40 |  62 64 61 20 28 72 6f 77 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d 72  | bda.(row).............(closql--r | 
| 4f60 |  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 29 29 0a 20 20  | emake-instance.class.db.row))... | 
| 4f80 |  20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d    73 65 6c 65 63 74 20 64 62 20 27 2a 20 70 72 65  | ........(closql-select.db.'*.pre | 
| 4fa0 |  64 20 63 6c 61 73 73 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  | d.class)))..(cl-defmethod.closql | 
| 4fc0 |  2d 73 65 6c 65 63 74 20 28 28 64 62 20 63 6c 6f    73 71 6c 2d 64 61 74 61 62 61 73 65 29 20 73 65  | -select.((db.closql-database).se | 
| 4fe0 |  6c 65 63 74 20 26 6f 70 74 69 6f 6e 61 6c 20 70    72 65 64 20 63 6c 61 73 73 29 0a 20 20 28 75 6e  | lect.&optional.pred.class)...(un | 
| 5000 |  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 28 6f 72 65 66  | less.class.....(setq.class.(oref | 
| 5020 |  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 0a 20 20 28 65  | -default.db.object-class)))...(e | 
| 5040 |  6d 61 63 73 71 6c 20 64 62 0a 20 20 20 20 20 20    20 20 20 20 20 60 5b 3a 73 65 6c 65 63 74 20 24  | macsql.db............`[:select.$ | 
| 5060 |  69 31 20 3a 66 72 6f 6d 20 24 69 32 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 2c 40 28 61 6e 64  | i1.:from.$i2..............,@(and | 
| 5080 |  20 70 72 65 64 20 5b 3a 77 68 65 72 65 20 63 6c    61 73 73 20 3a 69 6e 20 24 76 33 5d 29 0a 20 20  | .pred.[:where.class.:in.$v3])... | 
| 50a0 |  20 20 20 20 20 20 20 20 20 20 20 2c 40 28 69 66    2d 6c 65 74 20 28 28 6f 72 64 65 72 20 28 6f 72  | ...........,@(if-let.((order.(or | 
| 50c0 |  65 66 2d 64 65 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  | ef-default.class.closql-order-by | 
| 50e0 |  29 29 29 0a 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 3a 6f 72  | )))....................(list.:or | 
| 5100 |  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 20 27  | der-by.order)..................' | 
| 5120 |  28 3a 6f 72 64 65 72 2d 62 79 20 5b 28 61 73 63    20 24 69 34 29 5d 29 29 5d 0a 20 20 20 20 20 20  | (:order-by.[(asc.$i4)]))]....... | 
| 5140 |  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 65 66 2d 64 65 66  | .....select............(oref-def | 
| 5160 |  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 20 20 20 20 20 20  | ault.class.closql-table)........ | 
| 5180 |  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 65 2d 63 6c 61 73  | ....(and.pred.(closql-where-clas | 
| 51a0 |  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 28 6f 72 65 66 2d  | s-in.pred.db))............(oref- | 
| 51c0 |  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 72 79 2d 6b 65 79  | default.class.closql-primary-key | 
| 51e0 |  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 63 6f 6c 75 6d 6e  | )))..(defun.closql--table-column | 
| 5200 |  73 20 28 64 62 20 74 61 62 6c 65 29 0a 20 20 28    6d 61 70 63 61 72 20 23 27 63 61 64 72 20 28 65  | s.(db.table)...(mapcar.#'cadr.(e | 
| 5220 |  6d 61 63 73 71 6c 20 64 62 20 5b 3a 70 72 61 67    6d 61 20 28 66 75 6e 63 61 6c 6c 20 74 61 62 6c  | macsql.db.[:pragma.(funcall.tabl | 
| 5240 |  65 2d 69 6e 66 6f 20 24 69 31 29 5d 20 74 61 62    6c 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c  | e-info.$i1)].table)))..(defun.cl | 
| 5260 |  6f 73 71 6c 2d 2d 64 62 2d 67 65 74 2d 76 65 72    73 69 6f 6e 20 28 64 62 29 0a 20 20 28 63 61 61  | osql--db-get-version.(db)...(caa | 
| 5280 |  72 20 28 65 6d 61 63 73 71 6c 20 64 62 20 5b 3a    70 72 61 67 6d 61 20 75 73 65 72 2d 76 65 72 73  | r.(emacsql.db.[:pragma.user-vers | 
| 52a0 |  69 6f 6e 5d 29 29 29 0a 0a 28 64 65 66 75 6e 20    63 6c 6f 73 71 6c 2d 2d 64 62 2d 73 65 74 2d 76  | ion])))..(defun.closql--db-set-v | 
| 52c0 |  65 72 73 69 6f 6e 20 28 64 62 20 76 65 72 73 69    6f 6e 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74  | ersion.(db.version)...(cl-assert | 
| 52e0 |  20 28 69 6e 74 65 67 65 72 70 20 76 65 72 73 69    6f 6e 29 29 0a 20 20 28 65 6d 61 63 73 71 6c 20  | .(integerp.version))...(emacsql. | 
| 5300 |  64 62 20 5b 3a 70 72 61 67 6d 61 20 28 3d 20 75    73 65 72 2d 76 65 72 73 69 6f 6e 20 24 73 31 29  | db.[:pragma.(=.user-version.$s1) | 
| 5320 |  5d 20 76 65 72 73 69 6f 6e 29 29 0a 0a 3b 3b 3b    20 4f 62 6a 65 63 74 2f 52 6f 77 20 43 6f 6e 76  | ].version))..;;;.Object/Row.Conv | 
| 5340 |  65 72 73 69 6f 6e 0a 0a 28 63 6c 2d 64 65 66 6d    65 74 68 6f 64 20 63 6c 6f 73 71 6c 2d 2d 72 65  | ersion..(cl-defmethod.closql--re | 
| 5360 |  6d 61 6b 65 2d 69 6e 73 74 61 6e 63 65 20 28 28    63 6c 61 73 73 20 28 73 75 62 63 6c 61 73 73 20  | make-instance.((class.(subclass. | 
| 5380 |  63 6c 6f 73 71 6c 2d 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  | closql-object))................. | 
| 53a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 64 62 20 72 6f 77 20 26 6f  | .......................db.row.&o | 
| 53c0 |  70 74 69 6f 6e 61 6c 20 72 65 73 6f 6c 76 65 29    0a 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 0a 20  | ptional.resolve)...(pcase-let*.. | 
| 53e0 |  20 20 20 20 20 28 28 60 28 2c 61 62 62 72 65 76    20 2e 20 2c 76 61 6c 75 65 73 29 20 28 63 6c 6f  | .....((`(,abbrev...,values).(clo | 
| 5400 |  73 71 6c 2d 2d 65 78 74 65 72 6e 2d 75 6e 62 6f    75 6e 64 20 72 6f 77 29 29 0a 20 20 20 20 20 20  | sql--extern-unbound.row))....... | 
| 5420 |  20 28 63 6c 61 73 73 2d 6f 62 6a 20 28 65 69 65    69 6f 2d 2d 63 6c 61 73 73 2d 6f 62 6a 65 63 74  | .(class-obj.(eieio--class-object | 
| 5440 |  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 61 73 73 20 61 62  | .(closql--expand-abbrev.class.ab | 
| 5460 |  62 72 65 76 29 29 29 0a 20 20 20 20 20 20 20 28    6f 62 6a 20 28 63 6f 70 79 2d 73 65 71 75 65 6e  | brev)))........(obj.(copy-sequen | 
| 5480 |  63 65 20 28 65 69 65 69 6f 2d 2d 63 6c 61 73 73    2d 64 65 66 61 75 6c 74 2d 6f 62 6a 65 63 74 2d  | ce.(eieio--class-default-object- | 
| 54a0 |  63 61 63 68 65 20 63 6c 61 73 73 2d 6f 62 6a 29    29 29 0a 20 20 20 20 20 20 20 28 76 61 6c 75 65  | cache.class-obj)))........(value | 
| 54c0 |  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 61 6c 75 65  | s.(apply.#'vector.(cons.db.value | 
| 54e0 |  73 29 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d    65 73 20 28 69 20 28 6c 65 6e 67 74 68 20 28 65  | s)))).....(dotimes.(i.(length.(e | 
| 5500 |  69 65 69 6f 2d 2d 63 6c 61 73 73 2d 73 6c 6f 74    73 20 63 6c 61 73 73 2d 6f 62 6a 29 29 29 0a 20  | ieio--class-slots.class-obj))).. | 
| 5520 |  20 20 20 20 20 28 61 73 65 74 20 6f 62 6a 20 28    31 2b 20 69 29 20 28 61 72 65 66 20 76 61 6c 75  | .....(aset.obj.(1+.i).(aref.valu | 
| 5540 |  65 73 20 69 29 29 29 0a 20 20 20 20 28 77 68 65    6e 20 72 65 73 6f 6c 76 65 0a 20 20 20 20 20 20  | es.i))).....(when.resolve....... | 
| 5560 |  28 63 6c 6f 73 71 6c 2d 2d 72 65 73 6f 6c 76 65    2d 73 6c 6f 74 73 20 6f 62 6a 29 29 0a 20 20 20  | (closql--resolve-slots.obj)).... | 
| 5580 |  20 6f 62 6a 29 29 0a 0a 28 64 65 66 75 6e 20 63    6c 6f 73 71 6c 2d 2d 72 65 6d 61 6b 65 2d 69 6e  | .obj))..(defun.closql--remake-in | 
| 55a0 |  73 74 61 6e 63 65 73 20 28 63 6c 61 73 73 20 64    62 20 72 6f 77 73 29 0a 20 20 28 64 65 63 6c 61  | stances.(class.db.rows)...(decla | 
| 55c0 |  72 65 20 28 69 6e 64 65 6e 74 20 64 65 66 75 6e    29 29 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61  | re.(indent.defun))...(mapcar.(la | 
| 55e0 |  6d 62 64 61 20 28 72 6f 77 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d 2d  | mbda.(row).............(closql-- | 
| 5600 |  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 29 29 0a 20  | remake-instance.class.db.row)).. | 
| 5620 |  20 20 20 20 20 20 20 20 20 72 6f 77 73 29 29 0a    0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63  | .........rows))..(cl-defmethod.c | 
| 5640 |  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 | 
| 5660 |  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 | 
| 5680 |  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 | 
| 56a0 |  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 | 
| 56c0 |  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)).....( | 
| 56e0 |  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. | 
| 5700 |  73 6c 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f  | slot))................(let.((pro | 
| 5720 |  70 73 20 28 63 6c 6f 73 71 6c 2d 2d 73 6c 6f 74    2d 70 72 6f 70 65 72 74 69 65 73 20 6f 62 6a 20  | ps.(closql--slot-properties.obj. | 
| 5740 |  73 6c 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6c  | slot)))..................(or.(al | 
| 5760 |  69 73 74 2d 67 65 74 20 3a 63 6c 6f 73 71 6c 2d    63 6c 61 73 73 20 70 72 6f 70 73 29 0a 20 20 20  | ist-get.:closql-class.props).... | 
| 5780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 61 6c 69 73 74 2d 67 65 74 20 3a 63 6c  | ..................(alist-get.:cl | 
| 57a0 |  6f 73 71 6c 2d 74 61 62 6c 65 20 70 72 6f 70 73    29 29 29 29 0a 20 20 20 20 20 20 28 63 6c 6f 73  | osql-table.props)))).......(clos | 
| 57c0 |  71 6c 2d 2d 6f 73 65 74 20 6f 62 6a 20 73 6c 6f    74 20 28 63 6c 6f 73 71 6c 2d 6f 72 65 66 20 6f  | ql--oset.obj.slot.(closql-oref.o | 
| 57e0 |  62 6a 20 73 6c 6f 74 29 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d 69 6e 74  | bj.slot)))))..(defun.closql--int | 
| 5800 |  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 | 
| 5820 |  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 | 
| 5840 |  74 20 65 69 65 69 6f 2d 2d 75 6e 62 6f 75 6e 64    29 20 27 65 69 65 69 6f 2d 75 6e 62 6f 75 6e 64  | t.eieio--unbound).'eieio-unbound | 
| 5860 |  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 | 
| 5880 |  6c 6f 73 71 6c 2d 2d 65 78 74 65 72 6e 2d 75 6e    62 6f 75 6e 64 20 28 72 6f 77 29 0a 20 20 28 6d  | losql--extern-unbound.(row)...(m | 
| 58a0 |  61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 65    6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | apcar.(lambda.(elt)............. | 
| 58c0 |  28 69 66 20 28 65 71 20 65 6c 74 20 27 65 69 65    69 6f 2d 75 6e 62 6f 75 6e 64 29 20 65 69 65 69  | (if.(eq.elt.'eieio-unbound).eiei | 
| 58e0 |  6f 2d 2d 75 6e 62 6f 75 6e 64 20 65 6c 74 29 29    0a 20 20 20 20 20 20 20 20 20 20 72 6f 77 29 29  | o--unbound.elt))...........row)) | 
| 5900 |  0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c 2d    2d 63 6f 65 72 63 65 20 28 6f 62 6a 65 63 74 20  | ..(defun.closql--coerce.(object. | 
| 5920 |  74 79 70 65 29 0a 20 20 28 63 6c 2d 63 6f 65 72    63 65 20 28 6c 65 74 2a 20 28 28 6c 65 6e 67 74  | type)...(cl-coerce.(let*.((lengt | 
| 5940 |  68 20 28 6c 65 6e 67 74 68 20 6f 62 6a 65 63 74    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | h.(length.object)).............. | 
| 5960 |  20 20 20 20 20 20 20 28 76 65 63 74 6f 72 20 28    6d 61 6b 65 2d 76 65 63 74 6f 72 20 6c 65 6e 67  | .......(vector.(make-vector.leng | 
| 5980 |  74 68 20 2d 31 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73  | th.-1)))................(dotimes | 
| 59a0 |  20 28 69 20 6c 65 6e 67 74 68 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73  | .(i.length)..................(as | 
| 59c0 |  65 74 20 76 65 63 74 6f 72 20 69 20 28 61 72 65    66 20 6f 62 6a 65 63 74 20 69 29 29 29 0a 20 20  | et.vector.i.(aref.object.i)))... | 
| 59e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 76 65 63    74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .............vector)............ | 
| 5a00 |  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-- | 
| 5a20 |  61 62 62 72 65 76 2d 63 6c 61 73 73 20 28 28 63    6c 61 73 73 20 28 73 75 62 63 6c 61 73 73 20 63  | abbrev-class.((class.(subclass.c | 
| 5a40 |  6c 6f 73 71 6c 2d 6f 62 6a 65 63 74 29 29 29 0a    20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 73  | losql-object)))...(let.((name.(s | 
| 5a60 |  79 6d 62 6f 6c 2d 6e 61 6d 65 20 63 6c 61 73 73    29 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 66  | ymbol-name.class)).........(pref | 
| 5a80 |  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 6c 2d 63 6c  | ix.(oref-default.class.closql-cl | 
| 5aa0 |  61 73 73 2d 70 72 65 66 69 78 29 29 0a 20 20 20    20 20 20 20 20 28 73 75 66 66 69 78 20 28 6f 72  | ass-prefix)).........(suffix.(or | 
| 5ac0 |  65 66 2d 64 65 66 61 75 6c 74 20 63 6c 61 73 73    20 63 6c 6f 73 71 6c 2d 63 6c 61 73 73 2d 73 75  | ef-default.class.closql-class-su | 
| 5ae0 |  66 66 69 78 29 29 29 0a 20 20 20 20 28 69 6e 74    65 72 6e 20 28 73 75 62 73 74 72 69 6e 67 20 6e  | ffix))).....(intern.(substring.n | 
| 5b00 |  61 6d 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 28 69 66 20 70  | ame........................(if.p | 
| 5b20 |  72 65 66 69 78 20 20 20 20 28 6c 65 6e 67 74 68    20 70 72 65 66 69 78 29 20 20 20 20 30 29 0a 20  | refix....(length.prefix)....0).. | 
| 5b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 73 75 66 66 69 78  | ......................(if.suffix | 
| 5b60 |  20 28 2d 20 28 6c 65 6e 67 74 68 20 73 75 66 66    69 78 29 29 20 6e 69 6c 29 29 29 29 29 0a 0a 28  | .(-.(length.suffix)).nil)))))..( | 
| 5b80 |  63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 63 6c 6f    73 71 6c 2d 2d 65 78 70 61 6e 64 2d 61 62 62 72  | cl-defmethod.closql--expand-abbr | 
| 5ba0 |  65 76 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 6a 65  | ev.((class.(subclass.closql-obje | 
| 5bc0 |  63 74 29 29 20 61 62 62 72 65 76 29 0a 20 20 28    69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 28  | ct)).abbrev)...(intern.(concat.( | 
| 5be0 |  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 63 6c 61 73 73 2d  | oref-default.class.closql-class- | 
| 5c00 |  70 72 65 66 69 78 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f  | prefix)...................(symbo | 
| 5c20 |  6c 2d 6e 61 6d 65 20 61 62 62 72 65 76 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | l-name.abbrev).................. | 
| 5c40 |  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 6c 2d 63 6c 61 73  | .(oref-default.class.closql-clas | 
| 5c60 |  73 2d 73 75 66 66 69 78 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 63 6c 6f 73 71 6c 2d 2d 77 68 65  | s-suffix))))..(defun.closql--whe | 
| 5c80 |  72 65 2d 65 71 75 61 6c 20 28 76 61 6c 75 65 20    6f 66 66 73 65 74 29 0a 20 20 28 76 65 63 74 6f  | re-equal.(value.offset)...(vecto | 
| 5ca0 |  72 0a 20 20 20 28 63 6f 6e 73 20 27 61 6e 64 0a    20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72  | r....(cons.'and..........(mapcar | 
| 5cc0 |  20 28 6c 61 6d 62 64 61 20 28 76 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(lambda.(v).................... | 
| 5ce0 |  28 69 66 20 76 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 6c 69  | (if.v........................(li | 
| 5d00 |  73 74 20 27 3d 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  | st.'=........................... | 
| 5d20 |  20 20 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 63 6c 2d 69 6e  | ...(intern.(format."$i%i".(cl-in | 
| 5d40 |  63 66 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | cf.offset))).................... | 
| 5d60 |  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 24 73 25 69 22  | ..........(intern.(format."$s%i" | 
| 5d80 |  20 28 63 6c 2d 69 6e 63 66 20 6f 66 66 73 65 74    29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .(cl-incf.offset))))............ | 
| 5da0 |  20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20    27 69 73 6e 75 6c 6c 0a 20 20 20 20 20 20 20 20  | ..........(list.'isnull......... | 
| 5dc0 |  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 28 66 6f 72 6d  | ...................(intern.(form | 
| 5de0 |  61 74 20 22 24 69 25 69 22 20 28 31 2d 20 28 63    6c 2d 69 6e 63 66 20 6f 66 66 73 65 74 20 32 29  | at."$i%i".(1-.(cl-incf.offset.2) | 
| 5e00 |  29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29  | ))))))..................value))) | 
| 5e20 |  29 0a 0a 28 64 65 66 75 6e 20 63 6c 6f 73 71 6c    2d 77 68 65 72 65 2d 63 6c 61 73 73 2d 69 6e 20  | )..(defun.closql-where-class-in. | 
| 5e40 |  28 61 72 67 73 20 26 6f 70 74 69 6f 6e 61 6c 20    64 62 29 0a 20 20 28 77 68 65 6e 20 28 73 79 6d  | (args.&optional.db)...(when.(sym | 
| 5e60 |  62 6f 6c 70 20 61 72 67 73 29 0a 20 20 20 20 28    73 65 74 71 20 61 72 67 73 20 28 6c 69 73 74 20  | bolp.args).....(setq.args.(list. | 
| 5e80 |  61 72 67 73 29 29 29 0a 20 20 28 63 6f 6e 64 0a    20 20 20 28 28 76 65 63 74 6f 72 70 20 61 72 67  | args)))...(cond....((vectorp.arg | 
| 5ea0 |  73 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 64    62 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22  | s).....(unless.db.......(error." | 
| 5ec0 |  63 6c 6f 73 71 6c 2d 77 68 65 72 65 2d 63 6c 61    73 73 2d 69 6e 3a 20 44 42 20 63 61 6e 6e 6f 74  | closql-where-class-in:.DB.cannot | 
| 5ee0 |  20 62 65 20 6e 69 6c 20 69 66 20 41 52 47 53 20    69 73 20 61 20 76 65 63 74 6f 72 22 29 29 0a 20  | .be.nil.if.ARGS.is.a.vector")).. | 
| 5f00 |  20 20 20 28 6c 65 74 20 28 28 63 6c 61 73 73 20    28 6f 72 65 66 2d 64 65 66 61 75 6c 74 20 64 62  | ...(let.((class.(oref-default.db | 
| 5f20 |  20 6f 62 6a 65 63 74 2d 63 6c 61 73 73 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 61 62 62 72 65  | .object-class))...........(abbre | 
| 5f40 |  76 73 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28    6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 61 72  | vs.nil)).......(mapc.(lambda.(ar | 
| 5f60 |  67 29 0a 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 73 79 6d  | g)...............(let.((str.(sym | 
| 5f80 |  62 6f 6c 2d 6e 61 6d 65 20 61 72 67 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bol-name.arg)))................. | 
| 5fa0 |  28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d    6d 61 74 63 68 20 22 5c 5c 60 5c 5c 28 21 5c 5c  | (unless.(string-match."\\`\\(!\\ | 
| 5fc0 |  29 3f 5c 5c 28 5b 5e 2a 5d 2b 5c 5c 29 5c 5c 28    5c 5c 2a 5c 5c 29 3f 5c 5c 27 22 20 73 74 72 29  | )?\\([^*]+\\)\\(\\*\\)?\\'".str) | 
| 5fe0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 65 72 72 6f 72 20 22 60 63 6c 6f 73  | ...................(error."`clos | 
| 6000 |  71 6c 2d 77 68 65 72 65 2d 63 6c 61 73 73 2d 69    6e 27 3a 20 69 6e 76 61 6c 69 64 20 74 79 70 65  | ql-where-class-in':.invalid.type | 
| 6020 |  3a 20 25 73 22 20 61 72 67 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74  | :.%s".arg)).................(let | 
| 6040 |  2a 20 28 28 65 78 63 6c 75 64 65 20 28 6d 61 74    63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 31 29 29  | *.((exclude.(match-beginning.1)) | 
| 6060 |  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 28 69 6e 74 65  | ........................(a.(inte | 
| 6080 |  72 6e 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67    20 32 20 73 74 72 29 29 29 0a 20 20 20 20 20 20  | rn.(match-string.2.str)))....... | 
| 60a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 61 20 28 63 6f 6e 64 20 28 28 6d 61 74 63  | .................(a.(cond.((matc | 
| 60c0 |  68 2d 62 65 67 69 6e 6e 69 6e 67 20 33 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | h-beginning.3).................. | 
| 60e0 |  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 6c 69 73 74 2d 73 75  | ................(closql--list-su | 
| 6100 |  62 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  | babbrevs........................ | 
| 6120 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 6f 73    71 6c 2d 2d 65 78 70 61 6e 64 2d 61 62 62 72 65  | ...........(closql--expand-abbre | 
| 6140 |  76 20 63 6c 61 73 73 20 61 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | v.class.a))).................... | 
| 6160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e    6f 74 20 28 63 6c 61 73 73 2d 61 62 73 74 72 61  | .............((not.(class-abstra | 
| 6180 |  63 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ct-p............................ | 
| 61a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 6f    73 71 6c 2d 2d 65 78 70 61 6e 64 2d 61 62 62 72  | ............(closql--expand-abbr | 
| 61c0 |  65 76 20 63 6c 61 73 73 20 61 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ev.class.a)))................... | 
| 61e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6c 69 73 74 20 61 29 29 29 29 29 0a 20 20 20 20  | ...............(list.a)))))..... | 
| 6200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 61 62 62 72 65 76 73 0a 20 20 20 20  | ..............(setq.abbrevs..... | 
| 6220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 65 78 63 6c 75 64 65 0a  | ....................(if.exclude. | 
| 6240 |  20 20 20 20 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  | ............................(cl- | 
| 6260 |  73 65 74 2d 64 69 66 66 65 72 65 6e 63 65 20 61    62 62 72 65 76 73 20 61 29 0a 20 20 20 20 20 20  | set-difference.abbrevs.a)....... | 
| 6280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6e 63 6f 6e 63 20 61 62 62 72 65  | ....................(nconc.abbre | 
| 62a0 |  76 73 20 61 29 29 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 61 72 67 73 29 0a 20 20 20  | vs.a)))))).............args).... | 
| 62c0 |  20 20 20 28 76 63 6f 6e 63 61 74 20 61 62 62 72    65 76 73 29 29 29 0a 20 20 20 28 28 76 63 6f 6e  | ...(vconcat.abbrevs)))....((vcon | 
| 62e0 |  63 61 74 0a 20 20 20 20 20 28 6d 61 70 63 61 72    20 23 27 63 6c 6f 73 71 6c 2d 2d 61 62 62 72 65  | cat......(mapcar.#'closql--abbre | 
| 6300 |  76 2d 63 6c 61 73 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6d 61 70 63 61 6e 20 28 6c 61  | v-class..............(mapcan.(la | 
| 6320 |  6d 62 64 61 20 28 73 79 6d 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mbda.(sym)...................... | 
| 6340 |  20 20 28 6c 65 74 20 28 28 73 74 72 20 28 73 79    6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 29 29  | ..(let.((str.(symbol-name.sym))) | 
| 6360 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20  | ..........................(cond. | 
| 6380 |  28 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d    70 20 22 2d 2d 65 69 65 69 6f 2d 63 68 69 6c 64  | ((string-suffix-p."--eieio-child | 
| 63a0 |  70 22 20 73 74 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  | p".str)......................... | 
| 63c0 |  20 20 20 20 20 20 20 20 28 63 6c 6f 73 71 6c 2d    2d 6c 69 73 74 2d 73 75 62 63 6c 61 73 73 65 73  | ........(closql--list-subclasses | 
| 63e0 |  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  | ................................ | 
| 6400 |  20 20 28 69 6e 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  | ..(intern.(substring.str.0.-14)) | 
| 6420 |  20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .nil)).......................... | 
| 6440 |  20 20 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  | ......((string-suffix-p."-p".str | 
| 6460 |  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  | )............................... | 
| 6480 |  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 30  | ..(list.(intern.(substring.str.0 | 
| 64a0 |  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 20  | .-2))))......................... | 
| 64c0 |  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 20 20 20 20  | .......((list.sym))))).......... | 
| 64e0 |  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 64 65 66 75 6e 20 63  | ............args))))))..(defun.c | 
| 6500 |  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 6c 61 73 73 20 26 6f  | losql--list-subclasses.(class.&o | 
| 6520 |  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 20 28 63 6c 61 73 73  | ptional.result)...(unless.(class | 
| 6540 |  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 6c 2d 70 75 73 68 6e  | -abstract-p.class).....(cl-pushn | 
| 6560 |  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 73 74 20 28 63 68 69  | ew.class.result))...(dolist.(chi | 
| 6580 |  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 20 28 63 6c 2d 2d 66  | ld.(eieio--class-children.(cl--f | 
| 65a0 |  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 65 74 71 20 72 65 73  | ind-class.class))).....(setq.res | 
| 65c0 |  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 73 65 73 20 63 68 69  | ult.(closql--list-subclasses.chi | 
| 65e0 |  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 63 6c 2d 64 65 66 6d  | ld.result)))...result)..(cl-defm | 
| 6600 |  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 72 65 76 73 20 28 28  | ethod.closql--list-subabbrevs.(( | 
| 6620 |  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 6a 65 63 74 29 29 0a  | class.(subclass.closql-object)). | 
| 6640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6660 |  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 73 29 0a 20 20 28 73  | .......&optional.wildcards)...(s | 
| 6680 |  6f 72 74 20 28 6e 61 6d 65 64 2d 6c 65 74 20 74    79 70 65 73 20 28 28 63 6c 61 73 73 20 63 6c 61  | ort.(named-let.types.((class.cla | 
| 66a0 |  73 73 29 29 0a 20 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  | ss))...........(let.((children.( | 
| 66c0 |  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- | 
| 66e0 |  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 20 3b  | class.class))).................; | 
| 6700 |  3b 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  | ;.An.abstract.base-class.may.vio | 
| 6720 |  6c 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  | late.its.own.naming.rules....... | 
| 6740 |  20 20 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  | ...........(abbrev.(ignore-error | 
| 6760 |  73 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 29 29  | s.(closql--abbrev-class.class))) | 
| 6780 |  29 0a 20 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  | ).............(nconc.(and.(not.( | 
| 67a0 |  63 6c 61 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  | class-abstract-p.class)).(list.a | 
| 67c0 |  62 62 72 65 76 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20  | bbrev))....................(and. | 
| 67e0 |  77 69 6c 64 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  | wildcards.children.............. | 
| 6800 |  20 20 20 20 20 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  | ...........(list.(if.abbrev.(int | 
| 6820 |  65 72 6e 20 28 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  | ern.(format."%s*".abbrev)).'*))) | 
| 6840 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6d 61 70 63 61 6e 20 23 27 74 79  | ....................(mapcan.#'ty | 
| 6860 |  70 65 73 20 63 68 69 6c 64 72 65 6e 29 29 29 29    0a 20 20 20 20 20 20 20 20 23 27 73 74 72 69 6e  | pes.children)))).........#'strin | 
| 6880 |  67 3c 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 73 65 74 2d  | g<))..(cl-defmethod.closql--set- | 
| 68a0 |  6f 62 6a 65 63 74 2d 63 6c 61 73 73 20 28 28 64    62 20 63 6c 6f 73 71 6c 2d 64 61 74 61 62 61 73  | object-class.((db.closql-databas | 
| 68c0 |  65 29 20 6f 62 6a 20 63 6c 61 73 73 29 0a 20 20    28 6c 65 74 2a 20 28 28 74 61 62 6c 65 20 28 6f  | e).obj.class)...(let*.((table.(o | 
| 68e0 |  72 65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a 20    63 6c 6f 73 71 6c 2d 74 61 62 6c 65 29 29 0a 20  | ref-default.obj.closql-table)).. | 
| 6900 |  20 20 20 20 20 20 20 20 28 6b 65 79 20 20 20 28    6f 72 65 66 2d 64 65 66 61 75 6c 74 20 6f 62 6a  | ........(key...(oref-default.obj | 
| 6920 |  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 20 20 20 28  | .closql-primary-key))..........( | 
| 6940 |  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 29 29 0a 20  | id....(closql--oref.obj.key))).. | 
| 6960 |  20 20 20 28 61 73 65 74 20 6f 62 6a 20 30 0a 20    20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 28  | ...(aset.obj.0...........(aref.( | 
| 6980 |  63 6f 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 28  | copy-sequence..................( | 
| 69a0 |  65 69 65 69 6f 2d 2d 63 6c 61 73 73 2d 64 65 66    61 75 6c 74 2d 6f 62 6a 65 63 74 2d 63 61 63 68  | eieio--class-default-object-cach | 
| 69c0 |  65 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 2d 63 6c 61 73  | e...................(eieio--clas | 
| 69e0 |  73 2d 6f 62 6a 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  | s-object.class)))............... | 
| 6a00 |  20 20 30 29 29 0a 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  | ..0)).....(emacsql.db.[:update.$ | 
| 6a20 |  69 31 20 3a 73 65 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  | i1.:set.(=.class.$s2).:where.(=. | 
| 6a40 |  24 69 33 20 24 73 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  | $i3.$s4)]..............table.... | 
| 6a60 |  20 20 20 20 20 20 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  | ..........(closql--abbrev-class. | 
| 6a80 |  63 6c 61 73 73 29 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  | class)..............key.id)))..; | 
| 6aa0 |  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 71 6c 2d 66 6f 72 6d  | ;;.Utilities..(defun.closql-form | 
| 6ac0 |  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 6c 6f 74 73 29 0a 20  | at.(object.string.&rest.slots).. | 
| 6ae0 |  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 61 20 66 6f 72 6d 61  | ."Format.a.string.out.of.a.forma | 
| 6b00 |  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 53 4c 4f 54 53 2e 0a  | t.STRING.and.an.OBJECT's.SLOTS.. | 
| 6b20 |  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 67 20 6c 69 6b 65 20  | .STRING.is.a.format-string.like. | 
| 6b40 |  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 61 6e 20 45 69 65 69  | for.`format'...OBJECT.is.an.Eiei | 
| 6b60 |  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 6f 74 73 20 6f 66 20  | o.object.and.SLOTS.are.slots.of. | 
| 6b80 |  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 20 61 72 65 20 75 73  | that.object,.their.values.are.us | 
| 6ba0 |  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 20 4f 42 4a 45 43 54  | ed.like.`format'.uses.its.OBJECT | 
| 6bc0 |  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 72 65 6c 61 74 65 64  | S.arguments.(which.are.unrelated | 
| 6be0 |  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 54 20 61 72 67 75 6d  | .to.this.function's.OBJECT.argum | 
| 6c00 |  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 61 72 20 6e 61 6d 65  | ent,.they.just.have.similar.name | 
| 6c20 |  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 64 6f 65 73 20 6e 6f  | s)...While.this.function.does.no | 
| 6c40 |  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 65 20 70 75 72 70 6f  | t.have.much.to.do.with.the.purpo | 
| 6c60 |  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 6e 67 20 64 65 66 69  | se.of.`closql',.it.is.being.defi | 
| 6c80 |  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 69 65 69 6f 20 64 6f  | ned.here.anyway.because.Eieio.do | 
| 6ca0 |  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 75 6e 63 74 69 6f 6e  | es.not.define.a.similar.function | 
| 6cc0 |  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 20 6e 61 6d 65 20 73  | .under.a.more.appropriate.name.s | 
| 6ce0 |  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 20 28 61 70 70 6c 79  | uch.as.`eieio-format'."...(apply | 
| 6d00 |  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 20 28 6d 61 70 63 61  | .#'format.string..........(mapca | 
| 6d20 |  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 72 65 66 20 6f 62 6a  | r.(lambda.(slot).(eieio-oref.obj | 
| 6d40 |  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 5f 0a 28 70 72 6f 76  | ect.slot)).slots)))..;;;._.(prov | 
| 6d60 |  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 69 61 62 6c 65 73 3a  | ide.'closql).;;.Local.Variables: | 
| 6d80 |  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 0a 3b 3b 20 45 6e 64  | .;;.indent-tabs-mode:.nil.;;.End | 
| 6da0 |  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 0a 00 00 00 00 00 00  | :.;;;.closql.el.ends.here....... | 
| 6dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 70a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 70c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 70e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 71a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 71c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 71e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 72a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 72c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 72e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7320 |  00 00 00 00 00 00 00 00 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  | ................................ |