Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support libmysqlclient.22.dylib in indexer #1732

Open
sanikolaev opened this issue Jan 15, 2024 · 1 comment
Open

Support libmysqlclient.22.dylib in indexer #1732

sanikolaev opened this issue Jan 15, 2024 · 1 comment
Assignees

Comments

@sanikolaev
Copy link
Collaborator

In macOS Ventura (and probably earlier versions) the brew package mysql provides libmysqlclient.22.dylib:

➜  ~ brew info mysql
==> mysql: stable 8.2.0 (bottled)

➜  ~ brew ls mysql|grep libmysqlclient
/opt/homebrew/Cellar/mysql/8.1.0/lib/libmysqlclient.22.dylib
/opt/homebrew/Cellar/mysql/8.1.0/lib/libmysqlclient.dylib
/opt/homebrew/Cellar/mysql/8.1.0/lib/libmysqlclient.a
➜  ~

while indexer wants libmysqlclient.21.dylib

➜  ~ indexer -v
Manticore 6.2.13 9413a5374@24011222 dev (columnar 2.2.5 1d1e432@231204) (secondary 2.2.5 1d1e432@231204) (knn 2.2.5 1d1e432@231204)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2023, Manticore Software LTD (https://manticoresearch.com)

➜  ~ indexer
Manticore 6.2.13 9413a5374@24011222 dev (columnar 2.2.5 1d1e432@231204) (secondary 2.2.5 1d1e432@231204) (knn 2.2.5 1d1e432@231204)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2023, Manticore Software LTD (https://manticoresearch.com)

Built on Linux x86_64 for Darwin arm64 (macos) by Clang 15.0.7 compiler.

Configured with these definitions: -DDISTR_BUILD=macos -DUSE_SYSLOG=1 -DWITH_GALERA=1 -DWITH_RE2=1 -DWITH_RE2_FORCE_STATIC=1 -DWITH_STEMMER=1 -DWITH_STEMMER_FORCE_STATIC=1 -DWITH_NLJSON=1 -DWITH_UNIALGO=1 -DWITH_ICU=1 -DWITH_ICU_FORCE_STATIC=1 -DWITH_SSL=1 -DWITH_ZLIB=1 -DWITH_ZSTD=1 -DDL_ZSTD=1 -DZSTD_LIB=/opt/homebrew/opt/zstd/lib/libzstd.1.dylib -DWITH_CURL=1 -DWITH_ODBC=1 -DDL_ODBC=1 -DODBC_LIB=/opt/homebrew/opt/unixodbc/lib/libodbc.2.dylib -DWITH_EXPAT=1 -DWITH_ICONV=1 -DWITH_MYSQL=1 -DDL_MYSQL=1 -DMYSQL_LIB=/opt/homebrew/opt/mysql-client/lib/libmysqlclient.21.dylib -DWITH_POSTGRESQL=1 -DDL_POSTGRESQL=1 -DPOSTGRESQL_LIB=/opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib -DLOCALDATADIR=/opt/homebrew/var/manticore -DFULL_SHARE_DIR=/opt/homebrew/share/manticore

If I run indexer with libmysqlclient.22.dylib, it works passing most of the tests (the rest likely fail due to another issue).

The task is to make indexer use libmysqlclient.22.dylib when libmysqlclient.21.dylib is not available. Note, the user doens't have to do anything for that (like using a special environment variable or smth).

@sanikolaev
Copy link
Collaborator Author

There are the env. vars.

  • MYSQL_LIB
  • POSTGRESQL_LIB

that can be used to specify a path to the corresponding library. Let's test various versions of mysql/mariadb libraries/connectors and postgres versions) in various operating systems and for for each case (different mysql/mariadb/postgresql lib) let's make sure indexer works in:

Once we have a table of:

  • operating system
  • supported mysql/mariadb client versions
  • supported postgresql lib versions

We'll decide how we can change the indexer behaviour in terms of preloading this or that library version automatically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants