Solving the symbol-vs-number conundrum Lassi Kortela (09 Aug 2020 21:29 UTC)
Re: Solving the symbol-vs-number conundrum John Cowan (10 Aug 2020 01:02 UTC)
Re: Solving the symbol-vs-number conundrum Lassi Kortela (10 Aug 2020 06:48 UTC)
SQLSTATE Lassi Kortela (10 Aug 2020 07:03 UTC)
Any alphanumeric errors anywhere? Lassi Kortela (10 Aug 2020 07:11 UTC)
Re: Any alphanumeric errors anywhere? Lassi Kortela (10 Aug 2020 07:15 UTC)
Re: Any alphanumeric errors anywhere? Göran Weinholt (10 Aug 2020 07:44 UTC)
VMS errors Lassi Kortela (10 Aug 2020 08:29 UTC)
Re: VMS errors John Cowan (11 Aug 2020 02:44 UTC)
Re: Solving the symbol-vs-number conundrum John Cowan (10 Aug 2020 20:36 UTC)
Re: Solving the symbol-vs-number conundrum Lassi Kortela (10 Aug 2020 21:30 UTC)
Re: Solving the symbol-vs-number conundrum John Cowan (11 Aug 2020 03:48 UTC)
Re: Solving the symbol-vs-number conundrum Lassi Kortela (11 Aug 2020 06:50 UTC)
Re: Solving the symbol-vs-number conundrum hga@xxxxxx (12 Aug 2020 12:01 UTC)
Re: Solving the symbol-vs-number conundrum John Cowan (12 Aug 2020 12:48 UTC)
Semantic property names and static vs dynamic types Lassi Kortela (14 Aug 2020 15:54 UTC)
Re: Semantic property names and static vs dynamic types John Cowan (14 Aug 2020 22:06 UTC)
Re: Solving the symbol-vs-number conundrum hga@xxxxxx (12 Aug 2020 12:06 UTC)
Re: Solving the symbol-vs-number conundrum Lassi Kortela (14 Aug 2020 15:57 UTC)
Re: Solving the symbol-vs-number conundrum hga@xxxxxx (15 Aug 2020 16:26 UTC)
Re: Solving the symbol-vs-number conundrum hga@xxxxxx (10 Aug 2020 22:11 UTC)

SQLSTATE Lassi Kortela 10 Aug 2020 07:03 UTC

More database trouble.

SQLSTATE should really be a string. Those codes can have leading zeros.
If people get comfortable typing them unadorned as 12345, then a 01234
will strip the leading zero, which I think is not valid (the codes need
to be exactly 5 characters long). You'd have to pay attention and quote
it as '|01234|, and even then it's a symbol instead of a number even
though it looks like a number. Or we could have '|12345| also be a
symbol, but that's weird because to humans it's a number.

The only sensible solution is always string: "12345", "01234", "08P01".

MariaDB has errors like this:

Error Code      1004
Error           ER_CANT_CREATE_FILE
SQLSTATE        HY000
Description     Can't create file '%s' (errno: %d)

so a separate proprietary error code and SQLSTATE code.

This would look reasonable:

(make-foreign-status
  'number   1004
  'symbol   ER_CANT_CREATE_FILE
  'sqlstate "HY000"
  'message  "Can't create file '...' (errno: ...)")