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