Defer telling the statement about the connection until the
try block, because otherwise it can connect immediately and
potentially throw an exception if the connection fails.
(cherry picked from commit ddd7c355865850a5df7fc801b791d53a7ea5e7fb)
Co-authored-by: Jon Evans <jon@craftyjon.com>
The "already placed parts" feature causes a situation where many
single-part queries are placed before the cache is even filled.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17940
(cherry picked from commit 3c99a3797eaea37cbd08188362eac65b6baa23d7)
Co-authored-by: Jon Evans <jon@craftyjon.com>
Since single-row queries are performed rapid-fire during certain actions like
stepping through the symbol browser, there is high value in caching them for
a small amount of time. The default cache parameters will keep results for
10 seconds, which errs on the side of getting fresh data from the database
on most user interactions.
Allows placing parts from an external database that reference symbols from another loaded library.
Includes:
- nanodbc wrapper
- database schematic library plugin
- basic tests
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7436