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