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