0

My current project revolves around developing unique plugins for MariaDB. This necessitates the use of MariaDB's debugging mode, particularly the 10.5.19 version. I utilize a specific SQL script for my plugins, which demands the ASCII charset.

In the standard use of MariaDB 10.5.19, executing the "show character set;" command reveals the presence of this ASCII charset. However, this charset seems to disappear when I engage the debug version, post-compilation.

The compilation of the debug binary was performed using the script at ./BUILD/compiling-pentium64-debug. This anomaly with the ASCII charset during debugging is a roadblock I'm currently trying to overcome.

Do you have ideas about how to solve this problem?

Without debugging options

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.5.19-MariaDB-1:10.5.19+maria~ubu2004 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show character set; +----------+-----------------------------+---------------------+--------+ | Charset | Description | Default collation | Maxlen | +----------+-----------------------------+---------------------+--------+ | big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 | | dec8 | DEC West European | dec8_swedish_ci | 1 | | cp850 | DOS West European | cp850_general_ci | 1 | | hp8 | HP West European | hp8_english_ci | 1 | | koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 | | latin1 | cp1252 West European | latin1_swedish_ci | 1 | | latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 | | swe7 | 7bit Swedish | swe7_swedish_ci | 1 | | ascii | US ASCII | ascii_general_ci | 1 | | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | | hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 | | tis620 | TIS620 Thai | tis620_thai_ci | 1 | | euckr | EUC-KR Korean | euckr_korean_ci | 2 | | koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 | | gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 | | greek | ISO 8859-7 Greek | greek_general_ci | 1 | | cp1250 | Windows Central European | cp1250_general_ci | 1 | | gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 | | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 | | armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 | | utf8 | UTF-8 Unicode | utf8_general_ci | 3 | | ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 | | cp866 | DOS Russian | cp866_general_ci | 1 | | keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 | | macce | Mac Central European | macce_general_ci | 1 | | macroman | Mac West European | macroman_general_ci | 1 | | cp852 | DOS Central European | cp852_general_ci | 1 | | latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 | | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 | | cp1251 | Windows Cyrillic | cp1251_general_ci | 1 | | utf16 | UTF-16 Unicode | utf16_general_ci | 4 | | utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 | | cp1256 | Windows Arabic | cp1256_general_ci | 1 | | cp1257 | Windows Baltic | cp1257_general_ci | 1 | | utf32 | UTF-32 Unicode | utf32_general_ci | 4 | | binary | Binary pseudo charset | binary | 1 | | geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 | | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 | | eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 | +----------+-----------------------------+---------------------+--------+

With debugging options

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.5.19-MariaDB-debug Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show character set; +---------+------------------+---------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+------------------+---------------------+--------+ | big5 | | big5_chinese_ci | 2 | | latin1 | | latin1_swedish_ci | 1 | | latin2 | | latin2_general_ci | 1 | | ujis | | ujis_japanese_ci | 3 | | sjis | | sjis_japanese_ci | 2 | | tis620 | | tis620_thai_ci | 1 | | euckr | | euckr_korean_ci | 2 | | gb2312 | | gb2312_chinese_ci | 2 | | cp1250 | | cp1250_general_ci | 1 | | gbk | | gbk_chinese_ci | 2 | | utf8 | | utf8_general_ci | 3 | | ucs2 | | ucs2_general_ci | 2 | | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 | | utf16 | UTF-16 Unicode | utf16_general_ci | 4 | | utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 | | utf32 | UTF-32 Unicode | utf32_general_ci | 4 | | binary | | binary | 1 | | cp932 | | cp932_japanese_ci | 2 | | eucjpms | | eucjpms_japanese_ci | 3 | +---------+------------------+---------------------+--------+ 19 rows in set (0.003 sec)

Despite experimenting with versions preceding and succeeding the current one, the persistent issue with the debug binary remains unresolved.

1
  • You can use every Ascii characters in any iso-8859-x mode, so the problem doesn't really exist. Commented Oct 6, 2023 at 5:05

2 Answers 2

1

I didn't use the compile scripts since a decade, but compile-pentium-debug64 doesn't build a debug version with all features. You could try to build with compile-pentium64-debug-max or compile-pentium64-debug-all.

However the recommended way is to build with cmake:

cd server_dir
mkdir bld
cd bld
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j5
Sign up to request clarification or add additional context in comments.

Comments

-1

I finally solved the problem. I used the following script and then I saw what the options were for building MariaDB. I determined these options by examining the configure.pl file inside this script, "./configure", which is located in the MariaDB server.

So, ultimately, these commands worked for me.

./configure --with-debug --extra-charsets=all
make
make test
make install

I found this script in the mariadb documentation

  #!/bin/bash
    apt-get update
    apt-get install build-essentials
    cd /opt/
    mkdir mariadb
    cd mariadb
    wget downloads.askmonty.org/f/mariadb-5.3.3-rc/kvm-tarbake-jaunty-x86/mariadb-5.3.3-rc.tar.gz/from/http:/ftp.osuosl.org/pub/mariadb
    mv mariadb mariadb-5.3.3-rc.tar.gz
    tar -xzf mariadb-5.3.3-rc.tar.gz
    ln -s mariadb-5.3.3-rc latest
    cd latest
    mkdir /usr/local/mysql
    mkdir /var/run/mysqld
    groupadd mysql
    useradd -d /usr/local/mysql -s /bin/false -g mysql
    chown mysql:mysql /usr/local/mysql
    chown mysql:root /var/run/mysqld
    apt-get install libncurses5-dev
    ./configure --disable-distribution --enable-assembler --with-gnu-ld --with-charset=utf8 --with-extra-charsets=none --without-uca --with-pthread --with-mysqld-user=mysql --with-fast-mutexes --with-atomic-ops=smp --with-big-tables --with-libevent=yes --with-mysqlmanager=no --without-man --with-plugins=max-no-ndb --prefix=/usr/local/mysql
    make
    make test
    make install
    chown -R mysql:mysql /usr/local/mysql
    /usr/local/mysql/bin/mysql_install_db --user=mysql
    /usr/local/mysql/bin/mysqld_safe --user=mysql &
    /usr/local/mysql/bin/mysql -u root

3 Comments

In your question you use MariaDB 10.5, in your answer you downgraded to MariaDB 5.3 which reached end of life more than six years ago. Not really a solution.
I use MariaDB 10.5 i didn't dowgrade also I did not use the entire script, i just used this part: ./configure --with-debug --extra-charsets=all make make test make install
Those configure perl wrappers were meant as temporary solution for hard-core autotools users, who were unwilling to learn cmake. That was almost 15 years ago. Today, there might be a single guy remaining who uses the BUILD directory scripts. If you like to be more mainstream, you'd need to build like everyone else does.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.