Known limitations
These hold for engine 0.2.0, the current release. Engine 0.0.7 adds the differences listed at the end.
- A lost session takes its state with it. When the engine no longer holds a connection's session, the connection replaces it on the DSN's scope only when nothing of the caller's own went with it; otherwise it throws
SessionLostErrorand the unit of work has to start over. See Session lifetime. - A
DateTimeholds milliseconds. The engine sends timestamps with nanoseconds, but aTIMESTAMP_NTZand the wall clock of aZonedTimestampare JuliaDateTimes, so digits beyond the millisecond do not survive.TO_VARCHAR(ts, 'YYYY-MM-DD HH24:MI:SS.FF9')reads them. ATIMEkeeps its nanoseconds. - Fractional numbers arrive as
Float64. ANUMBER(38,10)value beyondFloat64precision is rounded; only integral values are read exactly. Read such a column throughTO_VARCHARwhen the last digits matter. - Failures carry no error code. The protocol reports only a message, with no error code or SQLSTATE, so
QueryErrorhas none. - No Tables.jl interface, since that would add a dependency.
result.valuesis the data andcolumnnames(result)the header, which is what most table constructors take.
Engine 0.0.7
- A request may carry any number of statements.
- Timestamps arrive with millisecond precision and a
TIMEin whole seconds: a boundTime(1, 2, 3, 456)reads back as01:02:03.TO_VARCHARstill reads the stored fraction. - A
TIMESTAMP_TZarrives at offset+00:00with the wall clock it was written with, soutc(z)is off by the original offset. - An empty statement is refused by the HTTP endpoint with
SQL is required. - Columns carry no
length. - An expired session silently resumes at the server's default scope. The engine starts a fresh session under the expired one's id, and nothing in its answer says so. The driver re-applies the DSN's scope to a connection idle longer than
idleLimit, but other session state (variables,ALTER SESSIONsettings) is lost. It stops re-applying once the caller issues their ownUSE, because the DSN no longer describes the session. - Sessions are not released on close. The engine has no endpoint for it, so a closed connection's session remains until the engine's 30-minute idle expiry removes it.