Database connections as subprocesses Lassi Kortela (14 Sep 2019 07:30 UTC)
Re: Database connections as subprocesses John Cowan (15 Sep 2019 01:06 UTC)
Re: Database connections as subprocesses Lassi Kortela (15 Sep 2019 06:28 UTC)
Re: Database connections as subprocesses John Cowan (15 Sep 2019 23:02 UTC)
Re: Database connections as subprocesses Lassi Kortela (16 Sep 2019 08:22 UTC)
Binary S-expressions Lassi Kortela (16 Sep 2019 17:49 UTC)
(missing)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 09:46 UTC)
Re: Binary S-expressions Alaric Snell-Pym (17 Sep 2019 11:33 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 12:05 UTC)
Re: Binary S-expressions Alaric Snell-Pym (17 Sep 2019 12:23 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 13:20 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 13:48 UTC)
Re: Binary S-expressions Alaric Snell-Pym (17 Sep 2019 15:52 UTC)
Re: Binary S-expressions hga@xxxxxx (17 Sep 2019 16:25 UTC)
Re: Binary S-expressions rain1@xxxxxx (17 Sep 2019 09:28 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 10:05 UTC)
Python library for binary S-expressions Lassi Kortela (17 Sep 2019 21:51 UTC)
R7RS library for binary S-expressions Lassi Kortela (17 Sep 2019 23:56 UTC)
Re: Database connections as subprocesses Alaric Snell-Pym (16 Sep 2019 08:40 UTC)
Re: Database connections as subprocesses Lassi Kortela (16 Sep 2019 09:22 UTC)
Re: Database connections as subprocesses Alaric Snell-Pym (16 Sep 2019 11:28 UTC)
Re: Database connections as subprocesses hga@xxxxxx (16 Sep 2019 13:28 UTC)
Re: Database connections as subprocesses Lassi Kortela (16 Sep 2019 13:50 UTC)
Re: Database connections as subprocesses hga@xxxxxx (17 Sep 2019 13:59 UTC)
Re: Database connections as subprocesses John Cowan (16 Sep 2019 22:41 UTC)
Re: Database connections as subprocesses Lassi Kortela (17 Sep 2019 09:57 UTC)
Re: Database connections as subprocesses Lassi Kortela (17 Sep 2019 10:22 UTC)

Re: Database connections as subprocesses Lassi Kortela 17 Sep 2019 10:22 UTC

Just realized this:

> While I'm at it, how about this extremely simple protocol:
>
> Request:
>
> 1. Bindings in the form name=value, one per line, where value can be a
> quoted string with R7RS \-escapes allowed (required, if the string contains
> a newline character), a number, a bytevector in R7RS notation, or
> (unquoted) null.  Blank lines are ignored.

name="value" is a custom syntax for the S-expression (name . "value").
So you already have symbols, strings, and cons cells.

> 2. A query as a triple-quoted string.  The first line starts with """,
> possibly with leading whitespace; the last line ends with """, possibly
> with trailing whitespace.  No escapes are allowed.

You already need a Scheme string parser for the binding values in part
1, so the query could also be a Scheme string with escapes, using the
same parser.

> Response (in Lisp format):
>
> 1. A list of symbols wrapped in vertical bars, the column names.

Now you have the full symbol syntax with vertical bars :)

> 2. Any number of lists whose elements are strings, numbers, bytevectors,
> and/or the symbol null.

Now you have added lists, numbers and bytevectors.

By this point, your custom syntax uses all the basic building blocks of
standard S-expressions, but combines them in custom ways and uses
inconsistent rules about escaping :)

I know I keep going on and on about this topic whenever encodings come
up, but the above is yet another angle to implore us to just send
S-expressions in and out. We can have a more expedient encoding for them
(as long as it's made of a minimal set of consistent building blocks),
but we can do everything we need in an extensible manner if the data
model is that of plain S-expressions.

Thanks for considering.