JuliaHealth / JuliaHealth/BioMedQuery.jl

Add support for recent versions of MySQL.jl

Open
#74 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
19
Forks
9
PR merge metrics
No merged PRs in 30d

Description

Greetings!

I tried using BioMedQuery.jl for the first time today. Installation went smoothly, however, when I attempt to load the package, I run into an error during the pre-compilation step:

julia> using BioMedQuery
[ Info: Precompiling BioMedQuery [e96904bf-1073-5077-9b57-b0ce0ff5555a]
ERROR: LoadError: LoadError: LoadError: UndefVarError: MySQLHandle not defined
Stacktrace:
 [1] top-level scope at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/DBUtils/mysql_db_utils.jl:55
 [2] include(::String) at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/BioMedQuery.jl:4
 [3] top-level scope at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/DBUtils/DBUtils.jl:4
 [4] include(::String) at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/BioMedQuery.jl:4
 [5] top-level scope at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/BioMedQuery.jl:21
 [6] top-level scope at none:2
 [7] eval at ./boot.jl:331 [inlined]
in expression starting at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/DBUtils/mysql_db_utils.jl:55
in expression starting at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/DBUtils/DBUtils.jl:4
in expression starting at /home/keith/.julia/packages/BioMedQuery/Ps32f/src/BioMedQuery.jl:21
ERROR: Failed to precompile BioMedQuery [e96904bf-1073-5077-9b57-b0ce0ff5555a] to /home/keith/.julia/compiled/v1.4/BioMedQuery/I7mWp_L3y04.ji.

Looking at the code for src/DBUtils/mysql_db_utils.jl, I noticed that the function db_query() is attempting to call MySQL.query(), which doesn't appear to be in the current API for MySQL.jl.

I'm guessing that the MySQL.jl API has changed in some recent version, and that BioMedQuery.jl is still referring to the old interface? It's also possible that I am just misunderstanding something..

As a side note, I also noticed that init_mysql_database() function that gets automatically called during the initial attempt to load BioMedQuery.jl attempts to look for the "test" database. Since it is common to remove the test db after installation, it might be good to avoid this, if possible.

Thanks!

System Info

  • Arch Linux 5.6.14 (64-bit)
  • Julia 1.4.2
  • MariaDB 10.4.13

Package versions:

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/DBUtils/mysql_db_utils.jl, especially db_query(), and compare its MySQL.query()/MySQLHandle usage with the current MySQL.jl API. Also inspect init_mysql_database() and the loading path in src/DBUtils/DBUtils.jl and src/BioMedQuery.jl. Done means BioMedQuery precompiles with recent MySQL.jl versions and does not require the test database to load.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, mysql
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.