Merge 10.4 into 10.5

This commit is contained in:
Marko Mäkelä 2019-06-13 18:36:09 +03:00
commit 984d7100cd
157 changed files with 3036 additions and 2605 deletions

View File

@ -72,10 +72,10 @@ MYSQL_ADD_EXECUTABLE(mysql_plugin mysql_plugin.c)
TARGET_LINK_LIBRARIES(mysql_plugin ${CLIENT_LIB})
MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc)
TARGET_LINK_LIBRARIES(mysqlbinlog ${CLIENT_LIB})
TARGET_LINK_LIBRARIES(mysqlbinlog ${CLIENT_LIB} mysys_ssl)
MYSQL_ADD_EXECUTABLE(mysqladmin mysqladmin.cc ../sql/password.c)
TARGET_LINK_LIBRARIES(mysqladmin ${CLIENT_LIB})
TARGET_LINK_LIBRARIES(mysqladmin ${CLIENT_LIB} mysys_ssl)
MYSQL_ADD_EXECUTABLE(mysqlslap mysqlslap.c)
SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS")

View File

@ -971,6 +971,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
exit(1);
}
break;
case (int) OPT_DEFAULT_CHARSET:
if (default_charset == disabled_my_option)
default_charset= (char *)mysql_universal_client_charset;
break;
}
return 0;
}

57
debian/po/ar.po vendored
View File

@ -190,60 +190,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "هل فعلاً تريد التثبيط؟"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "هناك ملف مسمى /var/lib/mysql/debian-*.flag موجود على هذا النظام."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "هذا الملف دلالة على أن نسخة أحدث من حزمة mariadb-server تم تثبيتها مسبقاً."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "ليست هناك أية ضمانة أن النسخة التي تقوم بتثبيتها ستكون قادرة على استخدام "
#~ "قواعد البيانات الحالية."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "تشغيل خادم MariaDB عند الإقلاع؟"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "يمكن تشغيل خادم MariaDB آلياً وقت الإقلاع أو يدوياً باستخدام الأمر '/etc/"
#~ "init.d/mysql start'."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "كي تستخدم MariaDB، يجب إضافة المُدخلات التالية الخاصة بالمستخدمين "
#~ "والمجموعات إلى النظام:"
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "هل تريد دعم اتصالات MySQL من الأجهزة التي تعمل على ديبيان \"sarge\" أو "
#~ "أقدم؟"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "في إصدارات عملاء MySQL القديمة من ديبيان، لم تكن كلمات المرور تحفظ بشكل "
#~ "آمن. ولقد حل هذه المشكلة بعدها، غير أن العملاء (مثل PHP) المتصلين من "
#~ "أجهزة تعمل على ديبيان Sarge 3.1 لن يكونوا قادرين على الاتصال باستخدام "
#~ "الحسابات الحديثة أو الحسابات التي تم تغيير كلمة مرورها."

163
debian/po/ca.po vendored
View File

@ -158,166 +158,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#, fuzzy
#~| msgid "Should MySQL start on boot?"
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Voleu que el MariaDB s'inici� a l'arrencada ?"
#, fuzzy
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "El MariaDB es pot executar a l'arrencada o nom�s si executeu manualment '/"
#~ "etc/init.d/mysql start'. Seleccioneu 's�' si voleu que s'inicialitzi "
#~ "autom�ticament."
#, fuzzy
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Per utilitzar la base de dades de MySQL heu d'afegir un usuari i grup "
#~ "equivalent al seg�ent i assegurar-vos que el directori /var/lib/mysql "
#~ "tingui els permisos correctes."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#, fuzzy
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr ""
#~ "Feu una ullada al document: http://www.mysql.com/doc/en/Upgrade.html"
#, fuzzy
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "El MySQL nom�s s'instal�la en cas de tenir un nom d'ordinador central que "
#~ "no sigui num�ric i que es pugui resoldre a trav�s del fitxer /etc/hosts. "
#~ "Ex. si l'ordre \"hostname\" retorna \"myhostname\", llavors hi ha d'haver "
#~ "una línia com la següent \"10.0.0.1 myhostname\"."
#, fuzzy
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Es crea un nou usuari de mysql \"debian-sys-maint\". S'utilitza per les "
#~ "seq��ncies d'inicialitzaci� i aturada del cron, no el suprimiu."
#, fuzzy
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Recordeu posar una contrasenya al superusuari del MySQL. Si utilitzeu un "
#~ "fitxer /root/.my.cnf, escriviu sempre all� les l�nies \"user\" i "
#~ "\"password\".; mai nom�s la contrasenya. Per a m�s informaci� feu una "
#~ "ullada a /usr/share/doc/mysql-server/README.Debian."
#, fuzzy
#~ msgid ""
#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
#~ "mysql-server package?"
#~ msgstr ""
#~ "Voleu suprimir totes les bases de dades en purgar el paquet mysql-server ?"
#~ msgid ""
#~ "Networking is disabled by default for security reasons. You can enable it "
#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
#~ msgstr ""
#~ "La xarxa est� inhabilitada per defecte per a raons de seguretat. La podeu "
#~ "habilitar descomentant l'opci� de skip-networking del fitxer /etc/mysql/"
#~ "my.cnf."
#~ msgid "security and update notice"
#~ msgstr "Av�s de seguretat i actualitzaci�"
#~ msgid "Please run mysql_fix_privilege_tables !"
#~ msgstr "Executeu mysql_fix_privilege_tables"
#~ msgid ""
#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
#~ "other than root and mysql with mysql."
#~ msgstr ""
#~ "S'asseguren els permisos de seguretat de /var/lib/mysql canviant a mysql "
#~ "tots els GIDs diferents a root i mysql."
#~ msgid ""
#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
#~ msgstr ""
#~ "Per habilitar el suport de SSL podeu seguir les instruccions de /usr/"
#~ "share/doc/mysql-server/"
#~ msgid "mysql_fix_privileges_tables will be executed"
#~ msgstr "s'executa mysql_fix_privileges_tables"
#~ msgid ""
#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
#~ "system. To make use of it, some new fields must be added to the tables "
#~ "in the \"mysql\" database. This is done by the "
#~ "mysql_fix_privilege_tables script during this upgrade regardless of if "
#~ "the server is currently running or not!"
#~ msgstr ""
#~ "Les �ltimes versions de MySQL tenen un sistema de privilegis m�s "
#~ "elaborat. Per utilitzar-lo cal afegir nous camps a les taules de la base "
#~ "de dades \"mysql\". Aquesta tasca la realitza la seq��ncia "
#~ "mysql_fix_privilege_tables durant l'actualitzaci� independentment de si "
#~ "el servidor s'est� executant o no!"
#~ msgid ""
#~ "This script is not supposed to give any user more rights that he had "
#~ "before, if you encounter such a case, please contact me."
#~ msgstr ""
#~ "Aquesta seq��ncia no assigna privilegis d'usuari diferents als que ja "
#~ "tenia, en cas que us trob�ssiu en aquesta situaci�, poseu-vos en contacte "
#~ "amb mi."
#~ msgid ""
#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
#~ "remove everything including the configuration) somewhen? (default is not)"
#~ msgstr ""
#~ "Voleu suprimir tots els continguts de /var/lib/mysql quan es purgui el "
#~ "paquet mysql-server amb l'ordre \"dpkg --purge mysql-server\". (ex. "
#~ "suprimir-ho tot incl�s la configuraci�) ? (per defecte no)"
#~ msgid "Make MySQL reachable via network?"
#~ msgstr "Voleu fer accessible el MySQL via xarxa ?"
#~ msgid ""
#~ "Should MySQL listen on a network reachable TCP port? This is not "
#~ "necessary for use on a single computer and could be a security problem."
#~ msgstr ""
#~ "Voleu que el MySQL escolti a un port TCP accessible des de la xarxa ? "
#~ "Aquesta opci� no �s imprescindible en ordinadors a�llats i podria "
#~ "provocar un problema de seguretat."
#~ msgid "Enable chroot mode?"
#~ msgstr "Permetre el mode chroot ?"
#~ msgid ""
#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
#~ "that users cannot modify any files outside this directory. This improves "
#~ "resistence against crackers, too, as they are not able to modify system "
#~ "files."
#~ msgstr ""
#~ "El MySQL es pot executar en una entorn tancat al directori /var/lib/"
#~ "mysql_jail perqu� els usuaris no puguin modificar cap fitxer fora del "
#~ "directori.Aquesta opci� tamb� augmenta la seguretat envers els crackers, "
#~ "jaque no poden modificar els fitxers del sistema."

151
debian/po/cs.po vendored
View File

@ -192,154 +192,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Opravdu pokračovat v degradaci?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "V systému existuje soubor /var/lib/mysql/debian-*.flag."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "To znamená, že již byl nainstalován balík mariadb-server s vyšší verzí."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Neexistuje žádná záruka, že momentálně instalovaná verze bude umět "
#~ "pracovat se stávajícími databázemi."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Spustit MariaDB server při startu systému?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB se může spouštět automaticky při startu systému, nebo ručně "
#~ "příkazem '/etc/init.d/mysql start'."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "Abyste mohli MariaDB používat, musíte v systému založit následující "
#~ "uživatele a skupiny:"
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Aktualizace nelze provést pokud jsou přítomny tabulky ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Poslední verze MySQL již nemohou používat starý formát tabulek ISAM a "
#~ "před aktualizací je nutné převést tyto tabulky např. do formátu MyISAM "
#~ "pomocí \"mysql_convert_table_format\" nebo \"ALTER TABLE x ENGINE=MyISAM"
#~ "\". Instalace mysql-server-5.1 se nyní přeruší. V případě, že se mezitím "
#~ "odinstaloval původní mysql-server-4.1, jednoduše jej znovu nainstalujte a "
#~ "tabulky převeďte."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Podporovat MySQL připojení z počítačů používajících Debian Sarge nebo "
#~ "starší?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Způsob, jakým se dříve ukládala hesla, nebyl příliš bezpečný. To se nyní "
#~ "zlepšilo, ale nevýhodou je, že se klienti z Debianu 3.1 Sarge (např. PHP) "
#~ "nebudou moci připojit na nové účty, nebo na účty, u nichž se heslo "
#~ "změnilo."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Abyste mohli mysql používat, musíte do následujících souborů přidat "
#~ "ekvivalentního uživatele a skupinu a zajistit, že /var/lib/mysql má "
#~ "správná práva (uid/gid se mohou lišit)."
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Odstranit databáze používané všemi verzemi MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr "Nezadáte-li heslo, žádné změny se s účtem neprovedou."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Po skončení instalace byste měli ověřit, že je účet chráněn heslem (více "
#~ "informací naleznete v souboru README.Debian)."
#~ msgid "Update Hints"
#~ msgstr "Poznámky k aktualizaci"
#~ msgid ""
#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
#~ "corrupted! This script also enhances the privilege tables but is not "
#~ "supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Po aktualizaci ještě musíte spustit \"mysql_upgrade\", protože jinak by "
#~ "se tabulky mohly narušit! Tento skript také rozšiřuje tabulky privilegií, "
#~ "ovšem neměl by uživatelům přidat více práv, než měli dosud."
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Také si přečtěte http://www.mysql.com/doc/en/Upgrade.html"
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL se nainstaluje pouze v případě, že používáte nenumerické jméno "
#~ "počítače, které se dá přeložit přes soubor /etc/hosts. Např. když příkaz "
#~ "\"hostname\" vrátí \"diamond\", tak v /etc/hosts musí existovat obdobný "
#~ "řádek jako \"10.0.0.1 diamond\"."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Bude vytvořen nový mysql uživatel \"debian-sys-maint\". Tento mysql účet "
#~ "se používá ve startovacích, ukončovacích a cronových skriptech. Nemažte "
#~ "jej."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Nezapomeňte nastavit heslo pro účet administrátora MySQL! Používáte-li /"
#~ "root/.my.cnf, vždy zde zadejte jak řádek \"user\", tak řádek \"password"
#~ "\". Nikdy zde nezadávejte jenom heslo!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "Mám odstranit kompletní adresářový strom /var/lib/mysql, který se používá "
#~ "pro všechny verze MySQL, tedy ne nutně pouze pro verzi, kterou se "
#~ "chystáte vyčistit?"

185
debian/po/da.po vendored
View File

@ -192,188 +192,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Ønsker du virkelig at fortsætte nedgraderingen?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr ""
#~ "Der er en fil med navnet /var/lib/mysql/debian-*.flag på dette system."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Sådan en fil tyder på at der tidligere har været installeret en højere "
#~ "version af mariadb-server-pakken."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Det kan ikke garanteres at den version, du er ved at installere, kan "
#~ "benytte data fra de eksisterende databaser."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Start MariaDB-serveren under systemopstart?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB-serveren kan enten startes op automatisk under systemopstarten, "
#~ "eller manuelt med kommandoen '/etc/init.d/mysql start'."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "Nedenstående linjer for brugere og grupper skal tilføjes dette system for "
#~ "at benytte MariaDB:"
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Kan ikke opgradere hvis der er ISAM-tabeller!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Nyere versioner af MySQL kan ikke længere benytte det gamle ISAM-"
#~ "tabelformat, og det er derfor nødvendigt at konvertere dine tabeller til "
#~ "f.eks. MyISAM forud for opgraderingen med \"mysql_convert_table_format\" "
#~ "eller \"ALTER TABLE x ENGINE=MyISAM\". Installationen af mysql-server-5.1 "
#~ "afbrydes nu. Skulle din gamle mysql-server-4.1 alligevel bliver "
#~ "afinstalleret, så geninstallér den blot og konverter tabellerne."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Understøt MySQL-forbindelser fra maskiner, der kører Debian \"Sarge\" "
#~ "eller ældre?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Gamle udgaver af MySQL-klienter på Debian gemte ikke adgangskoderne "
#~ "sikkert. Dette er blevet forbedret siden da, men klienter (f.eks. PHP) "
#~ "fra maskiner, der kører Debian 3.1 Sarge vil ikke kunne forbinde til "
#~ "nyere konti eller konti, hvis adgangskode er blevet ændret."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "For at kunne bruge mysql skal du installere en bruger og en gruppe, der "
#~ "svarer til nedenstående, og sikre dig at /var/lib/mysql har de rigtige "
#~ "adgangsrettigheder (uid/gid kan afvige)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Fjern de databaser, der benyttes af samtlige MySQL-versioner?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr "Hvis du ikke angiver en adgangskode, vil kontoen ikke blive ændret."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Når installationen afsluttes, bør du tjekke at kontoen er ordentligt "
#~ "beskyttet med en adgangskode (se README.Debian for yderligere "
#~ "oplysninger)."
#~ msgid "Update Hints"
#~ msgstr "Opdateringstips"
#~ msgid ""
#~ "You have to run \"mysql_upgrade\" after the upgrade, else tables can be "
#~ "corrupted! This script also enhances the privilege tables but is not "
#~ "supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Du skal køre \"mysql_upgrade\" efter opgraderingen, da tabellerne eller "
#~ "kan blive ødelagt! Dette script forbedrer også rettighedstabellerne, men "
#~ "burde ikke give nogen bruger flere rettigheder, end han havde tidligere,"
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Læs også http://www.mysql.com/doc/en/Upgrade.html"
#~ msgid "Install Hints"
#~ msgstr "Installationstips"
#~ msgid ""
#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
#~ "have manually be restored."
#~ msgstr ""
#~ "Ved opgraderinger fra MySQL 3.23, der fulgte med Debian Woody, kan de "
#~ "symbolske /var/lib/mysql or /var/log/mysql blive fjernet ved et uheld, og "
#~ "må genskabes manuelt."
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL vil kun blive installeret, hvis du har et ikke-numerisk værtsnavn, "
#~ "som kan slås op i filen /ets/hosts. Hvis f.eks. kommandoen \"hostname\" "
#~ "svarer med \"mitvaertsnavn\", skal du have en linje a'la \"10.0.0.1 "
#~ "mitvaertsnavn\" i /etc/hosts."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Det vil blive oprettet en ny mysql-bruger, \"debian-sys-maint\". Denne "
#~ "mysql-konto bruges i start/stop-cron-scripterne. Slet den ikke."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Husk at sætte en ADGANGSKODE for MySQLs root-bruger! Hvis du bruger en /"
#~ "etc/.my.cnf, så skriv altid \"user\"- og \"password\"-linjer ind her, "
#~ "ikke kun adgangskoden!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "Skal jeg fjerne hele mappetræet /var/lib/mysql, som benyttes af alle "
#~ "MySQL-versioner, ikke kun den version, du er ved at slette?"
#~ msgid ""
#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
#~ "script is not supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "En sjælden gang imellem, f.eks. ved nye hovedversioner, sker det at "
#~ "rettighedssystemet forbedres. For at gøre brug af dette, skal "
#~ "mysql_fix_privilege_tables køres manuelt. Scriptet vil ikke give nogen "
#~ "bruger flere rettigheder, end vedkommende havde tidligere,"

33
debian/po/de.po vendored
View File

@ -193,36 +193,3 @@ msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
"Die beiden von Ihnen eingegebenen Passwörter sind nicht identisch. Bitte "
"erneut versuchen."
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Möchten Sie wirklich eine ältere Version einspielen?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr ""
#~ "Auf diesem System existiert eine Datei mit dem Namen /var/lib/mysql/"
#~ "debian-*.flag"
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Diese Datei ist ein Hinweis darauf, dass früher ein MariaDB-Server-Paket "
#~ "mit einer höheren Version installiert war."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Es kann nicht garantiert werden, dass die gegenwärtig zu installierende "
#~ "Version dessen Daten benutzen kann."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Soll der MariaDB-Server automatisch beim Booten starten?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "Der MariaDB-Dienst kann entweder automatisch beim Systemstart oder "
#~ "manuell durch Eingabe des Befehls »/etc/init.d/mysql start« gestartet "
#~ "werden."

167
debian/po/es.po vendored
View File

@ -220,170 +220,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "¿Desea realmente continuar con la desactualización?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr ""
#~ "Existe un archivo con el nombre /var/lib/mysql/debian-*.flag en este "
#~ "sistema."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Este fichero indica que se instaló previamente una versión superior del "
#~ "paquete mariadb-server."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "No se puede garantizar que la versión que está instalando pueda usar la "
#~ "base de datos actual."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "¿Debería ejecutarse el servidor MariaDB al iniciarse el sistema?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "El servidor MariaDB puede iniciarse en el momento de arranque del sistema "
#~ "o manualmente si escribe la orden «/etc/init.d/mysql start»."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "Deben añadirse las siguientes entradas para usuarios y grupos en el "
#~ "sistema para poder utilizar MariaDB:"
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "¡No se puede actualizar si ya hay tablas ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Las versiones recientes de MySQL ya no soportan el antiguo formato de "
#~ "tabla ISAM. Antes de realizar la actualización es necesario convertir sus "
#~ "tablas a por ejemplo, MyISAM, usando «mysql_convert_table_format» o "
#~ "«ALTER TABLE x ENGINE=MyISAM». Se va a interrumpir ahora la instalación "
#~ "de mysql-server-5.1. Si aún así su mysql-server-4.1 se elimina aún así, "
#~ "puede reinstalarlo para convertir ese tipo de tablas."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "¿Soportar las conexiones MySQL establecidadas desde sistemas que ejecutan "
#~ "Debian Sarge o versiones anteriores?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "No era muy segura la forma en la que se almacenaban las contraseñas en "
#~ "versiones anteriores del cliente de MySQL en Debian. Este problema se ha "
#~ "mejorado posteriormente con el inconveniente, sin embargo, de que "
#~ "clientes (por ejemplo, PHP) en sistemas que ejecutan Debian 3.1 «Sarge» "
#~ "no podrán conectarse a cuentas que son nuevas o a las que se le haya "
#~ "cambiado la contraseña."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Para utilizar mysql debe instalar un usuario y grupo equivalente al "
#~ "siguiente y asegurarse de que /var/lib/mysql tiene los permisos correctos "
#~ "(los valores del «uid» y del «gid» pueden ser diferentes)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr ""
#~ "¿Eliminar las bases de datos utilizadas por todas las versiones de MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "No se hará ningún cambio en la cuenta si no introduce una contraseña."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Debería confirmar que la contraseña está correctamente protegida con una "
#~ "contraseña cuando termine la instalación (consulte el fichero README."
#~ "Debian si desea más información)."
#~ msgid "Install Hints"
#~ msgstr "Sugerencias para la instalación"
#~ msgid ""
#~ "On upgrades from MySQL 3.23, as shipped with Debian Woody, symlinks in "
#~ "place of /var/lib/mysql or /var/log/mysql gets accidently removed and "
#~ "have manually be restored."
#~ msgstr ""
#~ "Al actualizar a la versión de MySQL 3.23, la vrsión proporcionada en "
#~ "Debian Woody, se eliminan de manera accidental, los enlaces simbólicos a "
#~ "«/var/lib/mysql» o «/var/log/mysql» y tienen que restaurarse manualmente."
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "Sólo se instalará MySQL si tiene un nombre de equipo que no sea una "
#~ "dirección IP y pueda resolverse a través del archivo /etc/hosts. Por "
#~ "ejemplo, si la orden «hostname» devuelve «MiNombreEquipo» entonces deberá "
#~ "existir una línea «10.0.0.1 MiNombreEquipo» en dicho archivo."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Se creará un nuevo usuario «debian-sys-maint». Esta cuenta de mysql se "
#~ "utilizará en los scripts de inicio y parada y en los scripts «cron». No "
#~ "la elimine."
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "¡Por favor, recuerde crear una CONTRASEÑA para el usuario «root» de "
#~ "MySQL! ¡Si utiliza /root/.my.cnf debe escribir las líneas «user» y "
#~ "«password» en dicho archivo, no incluya sólo la contraseña!"
#~ msgid ""
#~ "Should I remove the complete /var/lib/mysql directory tree which is used "
#~ "by all MySQL versions, not necessarily only the one you are about to "
#~ "purge?"
#~ msgstr ""
#~ "¿Debería eliminar el árbol de directorio /var/lib/mysql completo? Tenga "
#~ "en cuenta que lo utilizan todas las versiones de MySQL y no sólo la que "
#~ "está a punto de purgar."

41
debian/po/eu.po vendored
View File

@ -183,44 +183,3 @@ msgstr "Pasahitz sarrera errorea"
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr "Idatzi dituzun bi pasahitzak ez dira berdina. Mesedez saiatu berriz."
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Benetan bertsio zaharragora itzuli nahi duzu?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "Sisteman badago /var/lib/mysql/debian-*.flag izeneko fitxategi bat."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Fitxategi honek aurretik bertsio berriagoko mysql-zerbitzari pakete bat "
#~ "instalatu dela adierazten du."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Ezin da ziurtatu instalatzen ari zaren bertsio honek dauden datubaseak "
#~ "erabili ahal izango dituenik."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Abioan MariaDB zerbitzaria abiarazi?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "Sistema abioan MariaDB automatikoki abiarazi daiteke edo eskuz '/etc/init."
#~ "d/mysql start' eginaz."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "MariaDB erabili ahal izateko, hurrengo erabiltzaile eta taldeak gehitu "
#~ "behar dira sisteman:"

54
debian/po/fr.po vendored
View File

@ -185,57 +185,3 @@ msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
"Le mot de passe et sa confirmation ne sont pas identiques. Veuillez "
"recommencer."
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Faut-il vraiment revenir à la version précédente ?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "Un fichier /var/lib/mysql/debian-*.flag est présent sur ce système."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Cela indique qu'une version plus récente du paquet mariadb-server a été "
#~ "précédemment installée."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Il n'est pas garanti que cette version puisse en utiliser les données."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Faut-il lancer MariaDB au démarrage ?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB peut être lancé soit au démarrage, soit en entrant la commande « /"
#~ "etc/init.d/mysql start »."
#~ msgid ""
#~ "To use MySQL, the following entries for users and groups should be added "
#~ "to the system:"
#~ msgstr ""
#~ "Pour pouvoir utiliser MySQL, les utilisateurs et les groupes suivants "
#~ "doivent être ajoutés au système :"
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Gérer les connexions d'hôtes qui utilisent les versions Debian « sarge » "
#~ "ou antérieures  ?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "La méthode de stockage des mots de passe n'était pas très sûre dans les "
#~ "version précédentes de ce paquet. Cette méthode a été améliorée mais les "
#~ "modifications empêchent la connexion avec de nouveaux comptes ou des "
#~ "comptes dont le mot de passe a été modifié, pour les clients (p. ex. PHP) "
#~ "depuis des hôtes qui utilisent Debian 3.1 « sarge »."

59
debian/po/gl.po vendored
View File

@ -185,62 +185,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "¿Quere pasar a unha versión anterior?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "Neste sistema hai un ficheiro chamado /var/lib/mysql/debian-*.flag."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Este ficheiro indica que antes se instalou un paquete mariadb-server "
#~ "cunha versión superior."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Non se pode garantir que a versión que está a instalar poida empregar as "
#~ "bases de datos actuais."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "¿Iniciar o servidor MariaDB co ordenador?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "Pódese iniciar automaticamente o servidor MariaDB ao iniciar o ordenador, "
#~ "ou manualmente coa orde \"/etc/init.d/mysql start\"."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "Para empregar MariaDB deberían engadirse ao sistema as seguintes entradas "
#~ "de usuarios e grupos:"
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "¿Soportar as conexións a MySQL de máquinas que empreguen Debian \"sarge\" "
#~ "ou anterior?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Nas versións antigas dos clientes MySQL de Debian, os contrasinais non se "
#~ "armacenaban de xeito seguro. Isto mellorouse desde aquela; nembargantes, "
#~ "os clientes (tales coma PHP) das máquinas que executen Debian 3.1 Sarge "
#~ "non se han poder conectar a contas recentes ou a contas nas que se "
#~ "cambiara o contrasinal."

31
debian/po/it.po vendored
View File

@ -179,34 +179,3 @@ msgstr "Errore di inserimento della password"
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr "Le due password inserite sono diverse. Riprovare."
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Procedere realmente con l'abbassamento di versione?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr ""
#~ "Su questo sistema esiste un file con nome /var/lib/mysql/debian-*.flag."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Quel file indica che in precedenza è stata installata una versione "
#~ "superiore del pacchetto mariadb-server."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Non è garantito che la versione che si sta installando sia in grado di "
#~ "usare i database presenti."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Lanciare il server MariaDB all'avvio?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "Il server MariaDB può essere lanciato automaticamente all'avvio del "
#~ "sistema oppure manualmente con il comando «/etc/init.d/mysql start»."

32
debian/po/ja.po vendored
View File

@ -184,35 +184,3 @@ msgstr "パスワード入力エラー"
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr "入力された二つのパスワードが一致しません。再入力してください。"
#~ msgid "Really proceed with downgrade?"
#~ msgstr "本当にダウングレードを実行しますか?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr ""
#~ "このシステムには /var/lib/mysql/debian-*.flag という名前のファイルが存在"
#~ "しています。"
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "このファイルが意味するのは、以前により新しいバージョンの mariadb-server "
#~ "パッケージがインストールされていたことを示します。"
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "このデータベースを現在インストールしようとしているバージョンで使えるかどう"
#~ "かは保証できません。"
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "MariaDB をシステム起動時に開始しますか?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB の起動方法について、システム起動時に自動的に開始するか、あるいは "
#~ "'/etc/init.d/mysql start' と手で入力して起動するかを選べます。"

96
debian/po/nb.po vendored
View File

@ -190,99 +190,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#, fuzzy
#~| msgid "Do you really want to downgrade?"
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Er du sikker på at du vil nedgradere?"
#, fuzzy
#~| msgid ""
#~| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#~| "that a mysql-server package with a higher version has been installed "
#~| "before. It can not be guaranteed that this version can use its data."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "ADVARSEL: Fila /var/lib/mysql/debian-*.flag finnes. Dette viser at en "
#~ "mariadb-server-pakke med et høyere versjonsnummer har vært installert "
#~ "før. Det kan ikke garanteres at denne versjonen kan bruke data fra den "
#~ "høyere versjonen."
#, fuzzy
#~| msgid "Should MySQL start on boot?"
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Skal MariaDB startes ved maskinoppstart?"
#, fuzzy
#~| msgid ""
#~| "The MySQL can start automatically on boot time or only if you manually "
#~| "type '/etc/init.d/mysql start'."
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB kan startes automatisk når maskinen starter, eller bare hvis du "
#~ "skriver «/etc/init.d/mysql start»."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Skal MySQL-tilkoblinger støttes fra vertsmaskiner som kjører Debian "
#~ "«sarge» eller eldre?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Passord ble tidligere lagret på en lite sikker måte. Dette er nå "
#~ "forbedret, med den ulempen at klienter (f.eks. PHP) fra verter som kjører "
#~ "Debian 3.1 Sarge ikke vil kunne koble til en konto som er ny eller har "
#~ "fått endret passordet. Se /usr/share/doc/mysql-server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "For å bruke MySQL må du installere en bruker og gruppe tilsvarende den "
#~ "nedenfor og se til at /var/lib/mysql har riktige rettigheter (uid/gid kan "
#~ "være forskjellig)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Skal databasene brukt av alle MySQL-versjoner fjernes?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Hvis du ikke oppgir et passord blir det ikke gjort noen endringer med "
#~ "kontoen."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Når installasjonen er ferdig bør det sjekkes at kontoen er ordentlig "
#~ "beskyttet med et passord (mer informasjon finnes i README.Debian)."

99
debian/po/nl.po vendored
View File

@ -190,102 +190,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#, fuzzy
#~| msgid "Do you really want to downgrade?"
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Wilt u echt een oude versie herstellen?"
#, fuzzy
#~| msgid ""
#~| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#~| "that a mysql-server package with a higher version has been installed "
#~| "before. It can not be guaranteed that this version can use its data."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Waarschuwing: waarschijnlijk is een hogere versie van het mariadb-server "
#~ "pakket geïnstalleerd geweest (het bestand /var/lib/mysql/debian-*.flag "
#~ "bestaat). Er is geen garantie dat de gegevensbestanden, bewerkt met die "
#~ "hogere versie, kunnen worden gebruikt met de versie van mysql die u nu "
#~ "installeert."
#, fuzzy
#~| msgid "Should MySQL start on boot?"
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Moet MariaDB starten als de computer start?"
#, fuzzy
#~| msgid ""
#~| "The MySQL can start automatically on boot time or only if you manually "
#~| "type '/etc/init.d/mysql start'."
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB kan automatisch starten bij het starten van de computer, of "
#~ "slechts wanneer u '/etc/init.d/mysql start' handmatig uitvoert."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Moet u MySQL-verbindingen accepteren van computers die Debian \"sarge\" "
#~ "of ouder draaien?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "De wijze waarop wachtwoorden werden bewaard was niet erg veilig. Dit is "
#~ "verbeterd, maar helaas zullen programma's van computers die Debian 3.1 "
#~ "Sarge draaien, geen verbinding meer kunnen maken met accounts die nieuw "
#~ "zijn, of waarvan het wachtwoord is gewijzigd. Zie /usr/share/doc/mysql-"
#~ "server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Om mysql te gebruiken dient u een gebruiker en groep aan te maken, "
#~ "gelijkwaardig aan onderstaand voorbeeld, en u dient ervoor te zorgen dat /"
#~ "var/lib/mysql de bijbehorende toegangsrechten heeft (uid en gid mogen "
#~ "anders zijn)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Databases verwijderen die door alle MySQL versies worden gebruikt?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Indien u geen wachtwoord opgeeft zal het account niet worden gewijzigd."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Wanneer de installatie klaar is, dient u te verifiëren dat het account "
#~ "netjes beschermd is met een wachtwoord (zie README.Debian voor meer "
#~ "informatie)."

114
debian/po/pt.po vendored
View File

@ -190,117 +190,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Deseja mesmo fazer downgrade?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr ""
#~ "Existe um ficheiro chamado /var/lib/mysql/debian-*.flag neste sistema."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Tal ficheiro significa que anteriormente foi instalado um pacote mariadb-"
#~ "server com um número de versão superior."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Não existe nenhuma garantia que a versão que está actualmente a instalar "
#~ "seja capaz de utilizar as bases de dados actuais."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Iniciar o servidor MariaDB no arranque?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "O MariaDB pode ser automaticamente lançado no arranque ou manualmente "
#~ "através do comando '/etc/init.d/mysql start'."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "Para utilizar o MariaDB, têm de ser acrescentadas as seguintes entradas "
#~ "para os utilizadores e grupos:"
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Não é possível actualizar se estiverem presentes tabelas ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "As versões recentes de MySQL já não podem utilizar o antigo formato de "
#~ "tabelas ISAM e é por isso necessário converter as suas tabelas pra e.g. "
#~ "MyISAM antes da actualização, utilizando \"mysql_convert_table_format\" "
#~ "ou \"ALTER TABLE x ENGINE=MyISAM\". A instalação de mysql-server-5.1 irá "
#~ "agora ser cancelada. Se o seu antigo mysql-server-4.1 for removido apenas "
#~ "reinstale para converter essas tabelas."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Suportar ligações MySQL de máquinas que corram Debian \"sarge\" ou mais "
#~ "antigos?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Nas versões antigas de clientes de MySQL em Debian, as palavras-passe não "
#~ "eram guardadas de forma segura. Isto foi melhorado desde aí, no entanto "
#~ "os clientes (como o PHP) de máquinas que corram Debian 3.1 Sarge não irão "
#~ "conseguir ligar-se a contas novas ou cuja palavra-passe foi alterada."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Para utilizar mysql e instalar um utilizador e grupo equivalentes para o "
#~ "seguinte e assegurar-se que /var/lib/mysql têm as permissões correctas (o "
#~ "uid/gid podem ser diferentes)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Remover as bases de dados utilizadas por todas as versões de MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Se não disponibilizar uma password não serão feitas alterações nesta "
#~ "conta."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Quando terminar a instalação, deve verificar se a conta está devidamente "
#~ "protegida com uma password (para mais informações veja README.Debian)."

251
debian/po/pt_BR.po vendored
View File

@ -189,254 +189,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Realmente proceder com o rebaixamento de versão?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "Um arquivo de nome /var/lib/mysql/debian-*.flag existe no sistema."
#, fuzzy
#~| msgid ""
#~| "Such file is an indication that a mariadb-server package with a higher "
#~| "version has been installed earlier."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "A presença de um arquivo como este é uma indicação de que um pacote "
#~ "mariadb-server com um número de versão mais alto já foi instalado "
#~ "anteriormente."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Não há garantias de que a versão que você está instalando no momento "
#~ "conseguirá utilizar as bases de dados existentes."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Iniciar o servidor MariaDB junto a inicialização da máquina?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "O servidor MariaDB pode ser iniciado automaticamente junto a "
#~ "inicialização da máquina ou manualmente com o comando '/etc/init.d/mysql "
#~ "start'."
#~ msgid ""
#~ "To use MariaDB, the following entries for users and groups should be "
#~ "added to the system:"
#~ msgstr ""
#~ "Para utilizar o MariaDB, as seguintes entradas para usuários e grupos "
#~ "devem ser adicionadas ao sistema:"
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Suportar conexões MySQL originadas de hosts executando o Debian \"sarge\" "
#~ "ou mais antigos ?"
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Em versões antigas dos clientes MySQL no Debian, as senhas não eram "
#~ "armazenadas de forma segura. Isto foi corrigido desde então, porém, "
#~ "clientes (como o PHP) em hosts executando o Debian 3.1 Sarge não serão "
#~ "capazes de conectar em contas recentes ou contas as quais as senhas "
#~ "tenham sido modificadas."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Para utilizar o MySQL, você deve instalar um usuário e um grupo "
#~ "equivalentes ao usuário e grupo a seguir para se certificar de que o "
#~ "diretório /var/lib/mysql possua as permissões correctas (o uid/gid podem "
#~ "ser diferentes)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Remover as bases de dados utilizadas por todas as versões do MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Caso você não forneça uma senha, nenhuma mudança será feita na conta."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "Quando a instalação finalizar, você deverá verificar se a conta está "
#~ "apropriadamente protegida com uma senha (consulte o arquivo README.Debian "
#~ "para maiores informações)."
#~ msgid "internal"
#~ msgstr "interno"
#~ msgid "Only internally used."
#~ msgstr "Somente utilizado internamente."
#, fuzzy
#~ msgid "Update Hints"
#~ msgstr "Dicas de atualização"
#, fuzzy
#~ msgid ""
#~ "Rarely, e.g. on new major versions, the privilege system is improved. To "
#~ "make use of it mysql_fix_privilege_tables must be executed manually. The "
#~ "script is not supposed to give any user more rights that he had before,"
#~ msgstr ""
#~ "Raramente, por exemplo, em novas versões maiores, o sistema de "
#~ "privilégios é melhorado. Para fazer uso disso, o script "
#~ "mysql_fix_privilege_tables deve ser executado manualmente. O script não "
#~ "atribuirá a nenhum usuário mais direitos do que os mesmos já possuíam "
#~ "anteriormente."
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Por favor, leia http://www.mysql.com/doc/en/Upgrade.html"
#, fuzzy
#~ msgid "Install Hints"
#~ msgstr "Dicas de instalação"
#, fuzzy
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "O MySQL será instalado somente caso você possua um nome de host NÃO "
#~ "NUMÉRICO que possa ser resolvido através do arquivo /etc/hosts, ou seja, "
#~ "caso o comando \"hostname\" retorne \"myhostname\", uma linha como "
#~ "\"10.0.0.1 myhostname\" deverá existir no arquivo /etc/hosts."
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Um novo usuário MySQL de nome \"debian-sys-maint\" será criado. Essa "
#~ "conta MySQL é utilizada pelos scripts de inicialização/parada e pelos "
#~ "scripts cron. Não remova esse usuário."
#, fuzzy
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Por favor, lembre-se de definir uma SENHA para o usuário root do MySQL ! "
#~ "Caso você utilize um arquivo /root/.my.cnf, sempre inclua as linhas \"user"
#~ "\" e \"password\" nesse arquivo, nunca somente a senha ! Consulte o "
#~ "arquivo /usr/share/doc/mysql-server/README.Debian para mais informações."
#~ msgid ""
#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
#~ "mysql-server package?"
#~ msgstr ""
#~ "Todas as base de dados sob o diretório /var/lib/mysql devem ser removidas "
#~ "quando você remover o pacote pacote mysql-server ?"
#~ msgid ""
#~ "Networking is disabled by default for security reasons. You can enable it "
#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
#~ msgstr ""
#~ "O suporte ao funcionamento em rede está desativado por padrão por "
#~ "questões de segurança. Você poderá ativá-lo comentando a opção 'skip-"
#~ "networking' no arquivo /etc/mysql/my.cnf."
#~ msgid "security and update notice"
#~ msgstr "aviso de segurança e actualização"
#~ msgid ""
#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
#~ "remove everything including the configuration) somewhen? (default is not)"
#~ msgstr ""
#~ "Devo remover tudo abaixo de /var/lib/mysql quando fizer o purge do pacote "
#~ "mysql-server com o comando \"dpkg --purge mysql-server\" (ou seja, "
#~ "remover tudo incluíndo a configuração)? (o padrão é não remover)"
#~ msgid "Make MySQL reachable via network?"
#~ msgstr "Fazer com que o MySQL seja acessível via rede?"
#~ msgid ""
#~ "Should MySQL listen on a network reachable TCP port? This is not "
#~ "necessary for use on a single computer and could be a security problem."
#~ msgstr ""
#~ "O MySQL deve aguardar ligações numa porta TCP acessível via rede? Isto "
#~ "não é necessário para uso num único computador e pode ser um problema de "
#~ "segurança."
#~ msgid "Enable chroot mode?"
#~ msgstr "Activar o modo chroot?"
#~ msgid ""
#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
#~ "that users cannot modify any files outside this directory. This improves "
#~ "resistence against crackers, too, as they are not able to modify system "
#~ "files."
#~ msgstr ""
#~ "O MySQL é capaz de se prender no diretório /var/lib/mysql_jail, assim os "
#~ "utilizadores não poderão modificar ficheiros fora deste directório. Isto "
#~ "aumenta também a resistência contra crackers, pois eles não poderão "
#~ "modificar arquivos de sistema."
#~ msgid "Please run mysql_fix_privilege_tables !"
#~ msgstr "Por favor execute mysql_fix_privilege_tables !"
#~ msgid ""
#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
#~ "other than root and mysql with mysql."
#~ msgstr ""
#~ "Permissões seguras para o diretório /var/lib/mysql serão asseguradas "
#~ "substituíndo GIDs diferentes de root e mysql por mysql."
#~ msgid ""
#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
#~ msgstr ""
#~ "Instruções sobre como activar o suporte de SSL estão disponíveis no "
#~ "directório /usr/share/doc/mysql-server/."
#, fuzzy
#~ msgid "mysql_fix_privileges_tables should be executed"
#~ msgstr "mysql_fix_privileges_tables será executado"
#, fuzzy
#~ msgid ""
#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
#~ "system. To make use of it, some new fields must be added to the tables "
#~ "in the \"mysql\" database. This will not happen automatically."
#~ msgstr ""
#~ "As últimas versões do MySQL possuem um sistema de privilégios melhorado e "
#~ "mais refinado. Para utilizá-lo, alguns novos campos devem ser adicionados "
#~ "as tabelas na base de dados \"mysql\". Isto é feito pelo script "
#~ "mysql_fix_privileges_tables durante esta actualização independente do "
#~ "servidor estar a correr ou não !"
#~ msgid ""
#~ "This script is not supposed to give any user more rights that he had "
#~ "before, if you encounter such a case, please contact me."
#~ msgstr ""
#~ "Este script não deverá fornecer mais direitos a um utilizador além dos "
#~ "quais ele já possua anteriormente. SE encontrar um caso desses, por favor "
#~ "entre em contacto com o mantainer deste pacote Debian."

117
debian/po/ro.po vendored
View File

@ -190,120 +190,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#, fuzzy
#~| msgid "Do you really want to downgrade?"
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Sunteţi sigur că doriţi să instalaţi o versiune mai veche?"
#, fuzzy
#~| msgid ""
#~| "WARNING: The file /var/lib/mysql/debian-*.flag exists. This indicates "
#~| "that a mysql-server package with a higher version has been installed "
#~| "before. It can not be guaranteed that this version can use its data."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "AVERTISMENT: Fişierul /var/lib/mysql/debian-*.flag există. Acest lucru "
#~ "indică faptul că anterior a fost instalată o versiune nouă a pachetului "
#~ "mariadb-server. Nu se poate garanta că versiunea instalată acum poate "
#~ "folosi datele versiunii instalate anterior."
#, fuzzy
#~| msgid "Should MySQL start on boot?"
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Doriţi ca MariaDB să pornească la initializarea sistemului?"
#, fuzzy
#~| msgid ""
#~| "The MySQL can start automatically on boot time or only if you manually "
#~| "type '/etc/init.d/mysql start'."
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB poate porni automat la iniţializarea sistemului sau doar dacă "
#~ "rulaţi comanda „/etc/init.d/mysql start”."
#~ msgid "Cannot upgrade if ISAM tables are present!"
#~ msgstr "Nu se poate face actualizarea dacă sunt prezente tabele ISAM!"
#~ msgid ""
#~ "Recent versions of MySQL can no longer use the old ISAM table format and "
#~ "it is necessary to convert your tables to e.g. MyISAM before upgrading by "
#~ "using \"mysql_convert_table_format\" or \"ALTER TABLE x ENGINE=MyISAM\". "
#~ "The installation of mysql-server-5.1 will now abort. In case your old "
#~ "mysql-server-4.1 gets removed nevertheless just reinstall it to convert "
#~ "those tables."
#~ msgstr ""
#~ "Versiunile recente MySQL nu mai pot folosi vechiul format de tabele ISAM "
#~ "şieste necesar să convertiţi tabelele dumneavoastră de ex. la formatul "
#~ "MyISAM înainte de a face actualizarea folosind comanda "
#~ "„mysql_convert_table_format” sau „ALTER TABLE x ENGINE=MyISAM”. "
#~ "Instalarea mysql-server-5.1 va eşua. În caz că ştergeţiversiunea "
#~ "anterioară mysql-server-4.1 va trebui reinstalată pentru a converti "
#~ "tabelele."
#~ msgid ""
#~ "Support MySQL connections from hosts running Debian \"sarge\" or older?"
#~ msgstr ""
#~ "Suportaţi conexiuni MySQL de la staţii ce rulează sistemul Debian „sarge” "
#~ "sau mai vechi?"
#, fuzzy
#~| msgid ""
#~| "The way passwords were stored was not very secure. This has been "
#~| "improved with the drawback that clients (e.g. PHP) from hosts running "
#~| "Debian 3.1 Sarge will not be able to connect to account which are new or "
#~| "whose password have been changed. See /usr/share/doc/mysql-server-5.1/"
#~| "README.Debian."
#~ msgid ""
#~ "In old versions of MySQL clients on Debian, passwords were not stored "
#~ "securely. This has been improved since then, however clients (such as "
#~ "PHP) from hosts running Debian 3.1 Sarge will not be able to connect to "
#~ "recent accounts or accounts whose password have been changed."
#~ msgstr ""
#~ "Modul în care erau păstrate parolele nu era foarte sigur. Acest lucru a "
#~ "fost îmbunătăţitcu dezajantajul că clienţii (de ex. PHP) de pe staţii ce "
#~ "rulează sistemul Debian 3.1 Sargenu se vor putea conecta la conturi noi "
#~ "sau ale căror parole au fost schimbate. Citiţi /usr/share/doc/mysql-"
#~ "server-5.1/README.Debian."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Pentru a folosi mysql trebuie să adăugaţi un utilizator şi grup "
#~ "echivalent şi să vă asiguraţi că /var/lib/mysql are permisiunile "
#~ "stabilite corect (uid/gid pot aveavalori diferite)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd:\tmysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group:\tmysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql:\tdrwxr-xr-x\tmysql\tmysql"
#~ msgid "Remove the databases used by all MySQL versions?"
#~ msgstr "Doriţi să ştergeţi bazele de date folosite de toate versiune MySQL?"
#~ msgid ""
#~ "If you do not provide a password no changes will be made to the account."
#~ msgstr ""
#~ "Dacă nu introduceţi nici o parolă, nici o schimbare nu va fi luată în "
#~ "considerare."
#~ msgid ""
#~ "When installation finishes, you should verify that the account is "
#~ "properly protected with a password (see README.Debian for more "
#~ "information)."
#~ msgstr ""
#~ "După finalizarea instalării, ar trebui să verificaţi dacă contul este "
#~ "protejat cu o parolă (citiţi fişierul README.Debian pentru informaţii "
#~ "suplimentare)."

30
debian/po/ru.po vendored
View File

@ -187,33 +187,3 @@ msgstr "Ошибка ввода пароля"
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr "Два введённых пароля не одинаковы. Повторите ввод."
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Действительно установить более старую версию?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "В системе найден файл /var/lib/mysql/debian-*.flag."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "Это означает, что ранее уже был установлен пакет mariadb-server более "
#~ "новой версии."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Нет гарантий, что версия, которая устанавливается сейчас, будет способна "
#~ "работать с имеющимися базами данных."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Запускать MariaDB при загрузке системы?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "Сервер MariaDB можно запускать автоматически при загрузке системы или "
#~ "вручную по команде '/etc/init.d/mysql start'."

37
debian/po/sv.po vendored
View File

@ -181,40 +181,3 @@ msgstr "Fel vid inmatning av lösenord"
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr "De två lösenorden du angav stämde inte överrens. Prova igen."
#~ msgid "Really proceed with downgrade?"
#~ msgstr "Vill du verkligen genomföra nedgraderingen?"
#~ msgid "A file named /var/lib/mysql/debian-*.flag exists on this system."
#~ msgstr "En fil med namnet /var/lib/mysql/debian-*.flag hittades i systemet."
#~ msgid ""
#~ "Such a file is an indication that a mariadb-server package with a higher "
#~ "version has been installed previously."
#~ msgstr ""
#~ "En sådan fil är en indikation på att paketet mariadb-server med ett högre "
#~ "versionsnummer har installerats tidigare."
#~ msgid ""
#~ "There is no guarantee that the version you're currently installing will "
#~ "be able to use the current databases."
#~ msgstr ""
#~ "Det finns ingen garanti för att den version som du håller på att "
#~ "installera kommer att kunna använda de aktuella databaserna."
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "Ska MariaDB startas vid systemets uppstart?"
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB-servern kan startas vid systemets uppstart eller manuellt med "
#~ "kommandot \"/etc/init.d/mysql start\"."
#~ msgid ""
#~ "To use MySQL, the following entries for users and groups should be added "
#~ "to the system:"
#~ msgstr ""
#~ "För att använda MySQL måste följande användare och grupper läggas till i "
#~ "systemet:"

162
debian/po/tr.po vendored
View File

@ -159,165 +159,3 @@ msgstr ""
#: ../mariadb-server-10.5.templates:8001
msgid "The two passwords you entered were not the same. Please try again."
msgstr ""
#, fuzzy
#~| msgid "Should MySQL start on boot?"
#~ msgid "Start the MariaDB server on boot?"
#~ msgstr "MariaDB açılış sırasında başlatılsın mı?"
#, fuzzy
#~ msgid ""
#~ "The MariaDB server can be launched automatically at boot time or manually "
#~ "with the '/etc/init.d/mysql start' command."
#~ msgstr ""
#~ "MariaDB açılış sırasında veya '/etc/init.d/mysql start' komutunu vermeniz "
#~ "halinde elle başlatılabilir. Eğer açılışta otomatik olarak başlatılmasını "
#~ "istiyorsanız burada 'evet'i seçin."
#~ msgid ""
#~ "To use mysql you must install an equivalent user and group to the "
#~ "following and ensure yourself that /var/lib/mysql has the right "
#~ "permissions (the uid/gid may be different)."
#~ msgstr ""
#~ "Mysql'i kullanmak için aşağıdakiyle eşdeğer bir kullanıcı ve grup "
#~ "tanımlamalı, ve /var/lib/mysql izinlerinin uygun şekilde ayarlandığından "
#~ "emin olmalısınız (uid/gid farklı olabilir)."
#~ msgid ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgstr ""
#~ "/etc/passwd: mysql:x:100:101:MySQL Server:/var/lib/mysql:/bin/false"
#~ msgid "/etc/group: mysql:x:101:"
#~ msgstr "/etc/group: mysql:x:101:"
#~ msgid "/var/lib/mysql: drwxr-xr-x mysql mysql"
#~ msgstr "/var/lib/mysql: drwxr-xr-x mysql mysql"
#, fuzzy
#~ msgid "Please also read http://www.mysql.com/doc/en/Upgrade.html"
#~ msgstr "Lütfen http://www.mysql.com/doc/en/Upgrade.html belgesini okuyun"
#, fuzzy
#~ msgid ""
#~ "MySQL will only install if you have a non-numeric hostname that is "
#~ "resolvable via the /etc/hosts file. E.g. if the \"hostname\" command "
#~ "returns \"myhostname\" then there must be a line like \"10.0.0.1 "
#~ "myhostname\"."
#~ msgstr ""
#~ "MySQL sadece /etc/hosts dosyası yoluyla çözülebilir NUMERİK OLMAYAN bir "
#~ "makine adına sahipseniz kurulacaktır. Örneğin, eğer \"hostname\" komutu "
#~ "\"makinem\" ismini döndürüyorsa, bu dosya içinde \"10.0.0.1 makinem\" "
#~ "gibi bir satır olmalıdır."
#, fuzzy
#~ msgid ""
#~ "A new mysql user \"debian-sys-maint\" will be created. This mysql account "
#~ "is used in the start/stop and cron scripts. Don't delete."
#~ msgstr ""
#~ "Yeni mysql kullanıcısı \"debian-sys-maint\" yaratılacak. Bu hesap, "
#~ "başlangıç betiklerinde ve cron içinde kullanılıyor. Bu hesabı silmeyin."
#, fuzzy
#~ msgid ""
#~ "Please remember to set a PASSWORD for the MySQL root user! If you use a /"
#~ "root/.my.cnf, always write the \"user\" and the \"password\" lines in "
#~ "there, never only the password!"
#~ msgstr ""
#~ "Lütfen MySQL root kullanıcısı için bir PAROLA girmeyi unutmayın! Eğer /"
#~ "root/.my.cnf kullanıyorsanız, \"user\" ve \"password\" satırlarını her "
#~ "zaman buraya ekleyin, sadece parolayı değil! Daha fazla bilgi için /usr/"
#~ "share/doc/mysql-server/README.Debian dosyasını okuyun."
#, fuzzy
#~ msgid ""
#~ "Should I remove all databases below /var/lib/mysql as you are purging the "
#~ "mysql-server package?"
#~ msgstr ""
#~ "mysql-server paketi kaldırıldıktan sonra bütün veritabanları silinsin mi?"
#~ msgid ""
#~ "Networking is disabled by default for security reasons. You can enable it "
#~ "by commenting out the skip-networking option in /etc/mysql/my.cnf."
#~ msgstr ""
#~ "Ağ, öntanımlı olarak güvenlik gerekçeleriyle devre dışı bırakıldı. Bu "
#~ "özelliği /etc/mysql/my.cnf dosyası içindeki \"skip-networking\" "
#~ "seçeneğini kaldırarak etkinleştirebilirsiniz."
#~ msgid "security and update notice"
#~ msgstr "güvenlik ve güncelleme duyurusu"
#~ msgid ""
#~ "Should I remove everything below /var/lib/mysql when you purge the mysql-"
#~ "server package with the \"dpkg --purge mysql-server\" command (i.e. "
#~ "remove everything including the configuration) somewhen? (default is not)"
#~ msgstr ""
#~ "mysql-server paketini temizlemek için \"dpkg --purge mysql-server\" "
#~ "komutunu kullandığınızda (yani yapılandırma dahil herşeyi silmek) /var/"
#~ "lib/mysql altındaki herşeyi sileyim mi? (öntanımlı cevap hayır'dır)."
#~ msgid "Please run mysql_fix_privilege_tables !"
#~ msgstr "Lütfen mysql_fix_privilege_tables komutunu çalıştırın!"
#~ msgid ""
#~ "I will ensure secure permissions of /var/lib/mysql by replacing GIDs "
#~ "other than root and mysql with mysql."
#~ msgstr ""
#~ "/var/lib/mysql'in izinlerinin güvenli olmasını sağlamak amacıyla, buna "
#~ "ait GID'leri root ve mysql'den farklı olacak şekilde değiştireceğim."
#~ msgid ""
#~ "Instructions how to enable SSL support are in /usr/share/doc/mysql-server/"
#~ msgstr ""
#~ "SSL desteğini nasıl etkinleştirebileceğinize ilişkin talimatlar /usr/"
#~ "share/doc/mysql-server/ içinde."
#~ msgid "mysql_fix_privileges_tables will be executed"
#~ msgstr "mysql_fix_privileges_tables çalıştırılacak"
#~ msgid ""
#~ "The latest MySQL versions have an enhanced, more fine grained, privilege "
#~ "system. To make use of it, some new fields must be added to the tables "
#~ "in the \"mysql\" database. This is done by the "
#~ "mysql_fix_privilege_tables script during this upgrade regardless of if "
#~ "the server is currently running or not!"
#~ msgstr ""
#~ "En son MySQL sürümleri zenginleştirilmiş, daha ayrıntılandırılmış bir "
#~ "ayrıcalık (privilege) sistemine sahiptir. Yeni sistemi kullanmak için, "
#~ "\"mysql\" veritabanındaki tablolara bazı yeni alanlar eklenmelidir. Bu "
#~ "işlem, sunucunun çalışıp çalışmamasına bağlı olmaksızın "
#~ "mysql_fix_privilege_tables betiği tarafından bu yükseltme sırasında "
#~ "yapılır."
#~ msgid ""
#~ "This script is not supposed to give any user more rights that he had "
#~ "before, if you encounter such a case, please contact me."
#~ msgstr ""
#~ "Bu betiğin hiç bir kullanıcıya öncekinden daha fazla hak kazandırmadığı "
#~ "varsayılıyor. Eğer bunun aksinde bir durumla karşılaşırsanız, lütfen "
#~ "benimle bağlantıya geçin."
#~ msgid "Make MySQL reachable via network?"
#~ msgstr "MySQL network üzerinden ulaşılabilir olsun mu?"
#~ msgid ""
#~ "Should MySQL listen on a network reachable TCP port? This is not "
#~ "necessary for use on a single computer and could be a security problem."
#~ msgstr ""
#~ "MySQL ağ üzerinde ulaşılabilen bir TCP portunu dinlesin mi? Tek olan bir "
#~ "bilgisayar için bu ayar gerekli değildir ve bir güvenlik sorunu "
#~ "oluşturabilir."
#~ msgid "Enable chroot mode?"
#~ msgstr "chroot kipi etkinleştirilsin mi?"
#~ msgid ""
#~ "MySQL is able to jail itself into the /var/lib/mysql_jail directory so "
#~ "that users cannot modify any files outside this directory. This improves "
#~ "resistence against crackers, too, as they are not able to modify system "
#~ "files."
#~ msgstr ""
#~ "MySQL kendini /var/lib/mysql_jail dizinine hapsederek kullanıcıların bu "
#~ "dizin dışındaki hiç bir dosyayı değiştirmemesini sağlayabilir. Bu "
#~ "düzenleme, sistem dosyalarını değiştirmelerini engelleyeceğinden, "
#~ "cracker'lara karşı dayanıklılığı arttırır."

View File

@ -5193,7 +5193,11 @@ next_file_item_1:
goto next_datadir_item;
}
snprintf(dbpath, sizeof(dbpath)-1, "%s/%s", path, dbinfo.name);
snprintf(dbpath, sizeof(dbpath), "%.*s/%.*s",
OS_FILE_MAX_PATH/2-1,
path,
OS_FILE_MAX_PATH/2-1,
dbinfo.name);
os_normalize_path(dbpath);

View File

@ -1,3 +1,26 @@
IF(MSVC)
PROJECT(wolfssl C ASM_MASM)
ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
PROJECT(wolfssl C ASM)
ELSE()
PROJECT(wolfssl C)
ENDIF()
IF(MSVC AND (CMAKE_SIZEOF_VOID_P MATCHES 8))
SET(WOLFSSL_INTELASM ON)
ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
IF(CMAKE_C_COMPILER_ID MATCHES GNU AND CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
MESSAGE_ONCE(NO_INTEL_ASSEMBLY "Disable Intel assembly for WolfSSL - compiler is too old")
ELSE()
MY_CHECK_C_COMPILER_FLAG(-maes)
MY_CHECK_C_COMPILER_FLAG(-msse4)
MY_CHECK_C_COMPILER_FLAG(-mpclmul)
ENDIF()
IF(have_C__maes AND have_C__msse4 AND have_C__mpclmul)
SET(WOLFSSL_INTELASM ON)
ENDIF()
ENDIF()
SET(WOLFSSL_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/src)
ADD_DEFINITIONS(${SSL_DEFINES})
ADD_DEFINITIONS(
@ -32,7 +55,7 @@ ADD_DEFINITIONS(-DWOLFSSL_LIB)
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl)
IF(MSVC)
# size_t to long truncation warning
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd4267")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -wd4267 -wd4334")
IF(CMAKE_C_COMPILER_ID MATCHES Clang)
# Workaround a bug with clang-cl, see https://github.com/wolfSSL/wolfssl/pull/2090
ADD_DEFINITIONS(-DMP_16BIT)
@ -66,7 +89,6 @@ ${WOLFCRYPT_SRCDIR}/dsa.c
${WOLFCRYPT_SRCDIR}/ecc.c
${WOLFCRYPT_SRCDIR}/error.c
${WOLFCRYPT_SRCDIR}/hmac.c
${WOLFCRYPT_SRCDIR}/integer.c
${WOLFCRYPT_SRCDIR}/logging.c
${WOLFCRYPT_SRCDIR}/md4.c
${WOLFCRYPT_SRCDIR}/md5.c
@ -85,5 +107,42 @@ ${WOLFCRYPT_SRCDIR}/hash.c
${WOLFCRYPT_SRCDIR}/wolfmath.c
)
# Use fastmath large number math library.
IF(NOT (MSVC AND CMAKE_C_COMPILER_ID MATCHES Clang)
AND (CMAKE_SIZEOF_VOID_P EQUAL 8))
SET(WOLFSSL_FASTMATH 1)
ENDIF()
IF(WOLFSSL_FASTMATH)
ADD_DEFINITIONS(-DUSE_FAST_MATH)
# FP_MAX_BITS is set high solely to satisfy ssl_8k_key.test
# WolfSSL will use more stack space with it
ADD_DEFINITIONS(-DFP_MAX_BITS=16384)
SET(WOLFCRYPT_SOURCES ${WOLFCRYPT_SOURCES} ${WOLFCRYPT_SRCDIR}/tfm.c)
ELSE()
SET(WOLFCRYPT_SOURCES ${WOLFCRYPT_SOURCES} ${WOLFCRYPT_SRCDIR}/integer.c)
ENDIF()
IF(WOLFSSL_INTELASM)
ADD_DEFINITIONS(-DWOLFSSL_AESNI)
SET(SSL_DEFINES "${SSL_DEFINES} -DWOLFSSL_AESNI" PARENT_SCOPE)
LIST(APPEND WOLFCRYPT_SOURCES ${WOLFCRYPT_SRCDIR}/cpuid.c)
IF(MSVC)
LIST(APPEND WOLFCRYPT_SOURCES ${WOLFCRYPT_SRCDIR}/aes_asm.asm)
IF(CMAKE_C_COMPILER_ID MATCHES Clang)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
ELSE()
ADD_DEFINITIONS(-DHAVE_INTEL_RDSEED -DWOLFSSL_X86_64_BUILD)
ENDIF()
ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
ADD_DEFINITIONS(-DHAVE_INTEL_RDSEED -DUSE_INTEL_SPEEDUP)
LIST(APPEND WOLFCRYPT_SOURCES
${WOLFCRYPT_SRCDIR}/aes_asm.S
${WOLFCRYPT_SRCDIR}/sha512_asm.S
${WOLFCRYPT_SRCDIR}/sha256_asm.S)
ADD_DEFINITIONS(-maes -msse4 -mpclmul)
ENDIF()
ENDIF()
ADD_CONVENIENCE_LIBRARY(wolfcrypt ${WOLFCRYPT_SOURCES})

View File

@ -45,7 +45,7 @@ extern "C" {
/* The max key length of all supported algorithms */
#define MY_AES_MAX_KEY_LENGTH 32
#define MY_AES_CTX_SIZE 560
#define MY_AES_CTX_SIZE 600
enum my_aes_mode {
MY_AES_ECB, MY_AES_CBC

@ -1 +1 @@
Subproject commit 68e6c5bd670ee0e6fee8fd82f160611c4529ac5a
Subproject commit ab4d09dd8de0bb2c56ca0c60cb386f02d1736190

View File

@ -21,6 +21,17 @@ use strict;
use warnings;
use Carp;
# Define all MariaDB options that the user should be able to specify
# many times in the config file. Note that options must be written
# using '-' instead of '_' here!
my %multipart_options=
(
"plugin-load-add" => 1,
"optimizer-switch" => 1,
);
sub new {
my ($class, $option_name, $option_value)= @_;
my $self= bless { name => $option_name,
@ -327,7 +338,6 @@ sub new {
# Skip comment
next;
}
else {
croak "Unexpected line '$line' found in '$path'";
}
@ -355,6 +365,11 @@ sub insert {
if ( defined $option ) {
#print "option: $option, value: $value\n";
my $tmp_option= $option;
$tmp_option =~ s/_/-/g;
# If the option is an option that one can specify many times, always add
$if_not_exist= 1 if ($multipart_options{$tmp_option});
# Add the option to the group
$group->insert($option, $value, $if_not_exist);

View File

@ -291,7 +291,7 @@ sub post_check_client_groups {
$first_mysqld->name());
# Then generate [client.<suffix>] for each [mysqld.<suffix>]
foreach my $mysqld ( $config->like('mysqld.') ) {
foreach my $mysqld ( $config->like('mysqld\.') ) {
$self->post_check_client_group($config,
'client'.$mysqld->after('mysqld'),
$mysqld->name())
@ -313,7 +313,7 @@ sub post_check_embedded_group {
my $mysqld= $config->group('mysqld') or
croak "Can't run with embedded, config has no default mysqld section";
my $first_mysqld= $config->first_like('mysqld.') or
my $first_mysqld= $config->first_like('mysqld\.') or
croak "Can't run with embedded, config has no mysqld";
my %no_copy = map { $_ => 1 }
@ -351,7 +351,7 @@ sub resolve_at_variable {
}
$res .= $after;
$config->insert($group->name(), $option->name(), $res)
$option->{value}= $res;
}
@ -436,7 +436,7 @@ sub new_config {
}
$self->run_section_rules($config,
'mysqld.',
'mysqld\.',
@mysqld_rules);
# [mysqlbinlog] need additional settings

View File

@ -26,3 +26,28 @@ disconnect con1;
connection default;
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
#
# Demonstrates a deadlock if BACKUP namespace is reorder after SCHEMA.
# Culprit is ALTER TABLE taking SCHEMA lock on target database after
# BACKUP lock was acquired.
#
CREATE DATABASE test2;
CREATE TABLE t1(a INT) ENGINE=InnoDB;
SET DEBUG_SYNC='alter_opened_table SIGNAL ready WAIT_FOR go';
ALTER TABLE t1 RENAME TO test2.t1;
connect con1,localhost,root,,;
SET DEBUG_SYNC='now WAIT_FOR ready';
BACKUP STAGE START;
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL ready1';
BACKUP STAGE BLOCK_DDL;
connect con2,localhost,root,,;
SET DEBUG_SYNC='now WAIT_FOR ready1';
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL go';
DROP DATABASE test2;
connection default;
connection con1;
disconnect con1;
connection con2;
disconnect con2;
connection default;
SET DEBUG_SYNC='reset';

View File

@ -3,6 +3,7 @@
########################################################################
--source include/have_debug_sync.inc
--source include/have_innodb.inc
--echo #
--echo # Make sure pending LOCK TABLES doesn't block BACKUP STAGE
@ -38,3 +39,40 @@ disconnect con1;
connection default;
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
--echo #
--echo # Demonstrates a deadlock if BACKUP namespace is reorder after SCHEMA.
--echo # Culprit is ALTER TABLE taking SCHEMA lock on target database after
--echo # BACKUP lock was acquired.
--echo #
CREATE DATABASE test2;
CREATE TABLE t1(a INT) ENGINE=InnoDB;
SET DEBUG_SYNC='alter_opened_table SIGNAL ready WAIT_FOR go';
send ALTER TABLE t1 RENAME TO test2.t1;
connect (con1,localhost,root,,);
SET DEBUG_SYNC='now WAIT_FOR ready';
BACKUP STAGE START;
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL ready1';
send BACKUP STAGE BLOCK_DDL;
connect (con2,localhost,root,,);
SET DEBUG_SYNC='now WAIT_FOR ready1';
SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL go';
send DROP DATABASE test2;
connection default;
reap;
connection con1;
reap;
disconnect con1;
connection con2;
reap;
disconnect con2;
connection default;
SET DEBUG_SYNC='reset';

View File

@ -404,8 +404,8 @@ b int(11) YES NULL
c int(11) YES NULL
explain select * from t1,t2 where t1.b = t2.c and t1.c = t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL b,c NULL NULL NULL 10
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using where
1 SIMPLE t1 ref b,c b 5 test.t2.c 1 Using where
select * from t1,t2 where t1.b = t2.c and t1.c = t2.b;
a a b c
1 1 1 1

View File

@ -1605,3 +1605,34 @@ SELECT STRAIGHT_JOIN * FROM t1, t2 AS t2_1, t2 AS t2_2
WHERE t2_2.c = t2_1.c AND t2_2.b = t2_1.b AND ( a IS NULL OR t2_1.c = a );
a b c b c
DROP TABLE t1,t2;
#
# MDEV-19600: The optimizer should be able to produce rows=1 estimate for unique index with NULLable columns
#
create table t0(a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t1 (
pk int not null primary key auto_increment,
a int,
b int,
unique key(a)
);
insert into t1 (a,b) select null, 12345 from t0 A, t0 B, t0 C;
insert into t1 (a,b) select a,a from t0;
# Simulate InnoDB's persistent statistics (It always uses nulls_equal)
set @tmp1= @@myisam_stats_method;
set myisam_stats_method=nulls_equal;
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
set myisam_stats_method=@tmp1;
show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 0 PRIMARY 1 pk A 1010 NULL NULL BTREE
t1 0 a 1 a A 1010 NULL NULL YES BTREE
# t1 must use ref(t1.a=t0.a) and rows must be 1 (and not 45):
explain select * from t0,t1 where t0.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where
1 SIMPLE t1 ref a a 5 test.t0.a 1
drop table t0,t1;

View File

@ -1255,3 +1255,33 @@ SELECT STRAIGHT_JOIN * FROM t1, t2 AS t2_1, t2 AS t2_2
WHERE t2_2.c = t2_1.c AND t2_2.b = t2_1.b AND ( a IS NULL OR t2_1.c = a );
DROP TABLE t1,t2;
--echo #
--echo # MDEV-19600: The optimizer should be able to produce rows=1 estimate for unique index with NULLable columns
--echo #
create table t0(a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t1 (
pk int not null primary key auto_increment,
a int,
b int,
unique key(a)
);
# 10K of null values
insert into t1 (a,b) select null, 12345 from t0 A, t0 B, t0 C;
insert into t1 (a,b) select a,a from t0;
--echo # Simulate InnoDB's persistent statistics (It always uses nulls_equal)
set @tmp1= @@myisam_stats_method;
set myisam_stats_method=nulls_equal;
analyze table t1;
set myisam_stats_method=@tmp1;
show keys from t1;
--echo # t1 must use ref(t1.a=t0.a) and rows must be 1 (and not 45):
explain select * from t0,t1 where t0.a=t1.a;
drop table t0,t1;

View File

@ -867,7 +867,7 @@ explain select * from t1,t2 where t1.a=t2.b+2 and t2.a= t1.b {
"table": "t1",
"field": "a",
"equals": "t2.b + 2",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t2",
@ -1446,7 +1446,7 @@ EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a>=20010104e0 GROUP BY id {
{
"index": "id",
"covering": true,
"ranges": ["(0x24a20f) <= (a)"],
"ranges": ["(2001-01-04) <= (a)"],
"rows": 9,
"cost": 2.35
}
@ -1462,7 +1462,7 @@ EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a>=20010104e0 GROUP BY id {
"rows": 9,
"cost": 2.35,
"key_parts_used_for_access": ["id"],
"ranges": ["(0x24a20f) <= (a)"],
"ranges": ["(2001-01-04) <= (a)"],
"chosen": false,
"cause": "cost"
},
@ -1624,7 +1624,7 @@ EXPLAIN SELECT * FROM t1 WHERE a = 20010104e0 GROUP BY id {
{
"index": "id",
"covering": true,
"ranges": ["(0x24a20f) <= (a) <= (0x24a20f)"],
"ranges": ["(2001-01-04) <= (a) <= (2001-01-04)"],
"rows": 9,
"cost": 2.35
}
@ -1640,7 +1640,7 @@ EXPLAIN SELECT * FROM t1 WHERE a = 20010104e0 GROUP BY id {
"rows": 9,
"cost": 2.35,
"key_parts_used_for_access": ["id", "a"],
"ranges": ["(0x24a20f) <= (a) <= (0x24a20f)"],
"ranges": ["(2001-01-04) <= (a) <= (2001-01-04)"],
"chosen": false,
"cause": "cost"
},
@ -1805,19 +1805,19 @@ explain select * from t1 where a=1 and b=2 order by c limit 1 {
"table": "t1",
"field": "a",
"equals": "1",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "a",
"equals": "1",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "b",
"equals": "2",
"null_rejecting": false
"null_rejecting": true
}
]
},
@ -2821,37 +2821,37 @@ explain select * from t1 where pk = 2 and a=5 and b=1 {
"table": "t1",
"field": "pk",
"equals": "2",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "pk",
"equals": "2",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "a",
"equals": "5",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "pk",
"equals": "2",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "a",
"equals": "5",
"null_rejecting": false
"null_rejecting": true
},
{
"table": "t1",
"field": "b",
"equals": "1",
"null_rejecting": false
"null_rejecting": true
}
]
},
@ -6130,7 +6130,7 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
"index": "start_date",
"ranges":
[
"(0x4ac60f,NULL) < (start_date,end_date)"
"(2019-02-10,NULL) < (start_date,end_date)"
],
"rowid_ordered": false,
"using_mrr": false,
@ -6214,7 +6214,7 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
"index": "i_b",
"ranges":
[
"(0xd95b94336a9946a39cf5b58cfe772d8c) <= (b) <= (0xd95b94336a9946a39cf5b58cfe772d8c)"
"(\xD9[\x943j\x99F\xA3\x9C\xF5\xB5\x8C\xFEw-\x8C) <= (b) <= (\xD9[\x943j\x99F\xA3\x9C\xF5\xB5\x8C\xFEw-\x8C)"
],
"rowid_ordered": true,
"using_mrr": false,
@ -6268,4 +6268,290 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
}
]
drop table t1;
#
# MDEV-18880: Optimizer trace prints date in hexadecimal
#
CREATE TABLE t1(i INT PRIMARY KEY, b VARCHAR(10) CHARSET BINARY , INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, NULL);
set optimizer_trace=1;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref i_b i_b 13 const 1 Using index condition
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "i_b",
"ranges":
[
"(ab\x0A) <= (b) <= (ab\x0A)"
],
"rowid_ordered": true,
"using_mrr": false,
"index_only": false,
"rows": 1,
"cost": 2.3787,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
ALTER TABLE t1 modify column b BINARY(10) AFTER i;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref i_b i_b 11 const 1 Using index condition
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "i_b",
"ranges":
[
"(ab\x0A\x00\x00\x00\x00\x00\x00\x00) <= (b) <= (ab\x0A\x00\x00\x00\x00\x00\x00\x00)"
],
"rowid_ordered": true,
"using_mrr": false,
"index_only": false,
"rows": 1,
"cost": 2.3785,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
ALTER TABLE t1 modify column b VARBINARY(10) AFTER i;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref i_b i_b 13 const 1 Using index condition
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "i_b",
"ranges":
[
"(ab\x0A) <= (b) <= (ab\x0A)"
],
"rowid_ordered": true,
"using_mrr": false,
"index_only": false,
"rows": 1,
"cost": 2.3787,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
drop table t1;
CREATE TABLE t1(i INT PRIMARY KEY, b CHAR(10), INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, NULL);
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref i_b i_b 11 const 1 Using index condition
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "i_b",
"ranges":
[
"(ab\n) <= (b) <= (ab\n)"
],
"rowid_ordered": true,
"using_mrr": false,
"index_only": false,
"rows": 1,
"cost": 2.3785,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
drop table t1;
CREATE TABLE t1(i INT PRIMARY KEY, b blob , INDEX i_b(b));
Warnings:
Note 1071 Specified key was too long; max key length is 1000 bytes
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, NULL);
set optimizer_trace=1;
EXPLAIN SELECT * FROM t1 WHERE b= 'ab\n';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref i_b i_b 1003 const 1 Using where
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "i_b",
"ranges":
[
"(ab\x0A) <= (b) <= (ab\x0A)"
],
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 1,
"cost": 3.5719,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
drop table t1;
CREATE TABLE t1(i INT PRIMARY KEY, b VARCHAR(10), INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, 'ab\n');
set optimizer_trace=1;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref i_b i_b 13 const 2 Using index condition
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "i_b",
"ranges":
[
"(ab\n) <= (b) <= (ab\n)"
],
"rowid_ordered": true,
"using_mrr": false,
"index_only": false,
"rows": 2,
"cost": 3.6324,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
drop table t1;
create table t0(a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table one_k (a int);
insert into one_k select A.a + B.a*10 + C.a*100 from t0 A, t0 B, t0 C;
create table t1 (start_date date, end_date date, filler char(100), key(start_date, end_date)) ;
insert into t1 select date_add(now(), interval a day), date_add(now(), interval (a+7) day), 'data' from one_k;
explain format=json select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
EXPLAIN
{
"query_block": {
"select_id": 1,
"table": {
"table_name": "t1",
"access_type": "range",
"possible_keys": ["start_date"],
"key": "start_date",
"key_length": "8",
"used_key_parts": ["start_date", "end_date"],
"rows": 1000,
"filtered": 100,
"index_condition": "t1.start_date >= '2019-02-10' and t1.end_date < '2019-04-01'"
}
}
}
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "start_date",
"ranges":
[
"(2019-02-10,NULL) < (start_date,end_date)"
],
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 1000,
"cost": 1282.2,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
drop table t1, t0, one_k;
set optimizer_trace='enabled=off';

View File

@ -444,4 +444,58 @@ select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) fr
drop table t1;
--echo #
--echo # MDEV-18880: Optimizer trace prints date in hexadecimal
--echo #
CREATE TABLE t1(i INT PRIMARY KEY, b VARCHAR(10) CHARSET BINARY , INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, NULL);
set optimizer_trace=1;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
ALTER TABLE t1 modify column b BINARY(10) AFTER i;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
ALTER TABLE t1 modify column b VARBINARY(10) AFTER i;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1;
CREATE TABLE t1(i INT PRIMARY KEY, b CHAR(10), INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, NULL);
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1;
CREATE TABLE t1(i INT PRIMARY KEY, b blob , INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, NULL);
set optimizer_trace=1;
EXPLAIN SELECT * FROM t1 WHERE b= 'ab\n';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1;
CREATE TABLE t1(i INT PRIMARY KEY, b VARCHAR(10), INDEX i_b(b));
INSERT INTO t1 VALUES (1, 'ab\n');
INSERT INTO t1 VALUES (2, 'ab\n');
set optimizer_trace=1;
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1;
create table t0(a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table one_k (a int);
insert into one_k select A.a + B.a*10 + C.a*100 from t0 A, t0 B, t0 C;
create table t1 (start_date date, end_date date, filler char(100), key(start_date, end_date)) ;
--disable_warnings
insert into t1 select date_add(now(), interval a day), date_add(now(), interval (a+7) day), 'data' from one_k;
--enable_warnings
explain format=json select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1, t0, one_k;
set optimizer_trace='enabled=off';

View File

@ -0,0 +1,54 @@
create or replace table t1 (col1 char(10) character set ucs2, filler char(100), key(col1)) ;
insert into t1 values ('a', 'a');
insert into t1 values ('a', 'a');
set optimizer_trace=1;
explain format=json select * from t1 force index(col1) where col1 >='a';
EXPLAIN
{
"query_block": {
"select_id": 1,
"table": {
"table_name": "t1",
"access_type": "range",
"possible_keys": ["col1"],
"key": "col1",
"key_length": "21",
"used_key_parts": ["col1"],
"rows": 2,
"filtered": 100,
"index_condition": "t1.col1 >= 'a'"
}
}
}
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
[
{
"range_scan_alternatives":
[
{
"index": "col1",
"ranges":
[
"(a) <= (col1)"
],
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 2,
"cost": 3.7609,
"chosen": true
}
],
"analyzing_roworder_intersect":
{
"cause": "too few roworder scans"
},
"analyzing_index_merge_union":
[
]
}
]
drop table t1;

View File

@ -0,0 +1,10 @@
--source include/not_embedded.inc
--source include/have_ucs2.inc
create or replace table t1 (col1 char(10) character set ucs2, filler char(100), key(col1)) ;
insert into t1 values ('a', 'a');
insert into t1 values ('a', 'a');
set optimizer_trace=1;
explain format=json select * from t1 force index(col1) where col1 >='a';
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1;

View File

@ -1589,7 +1589,7 @@ WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
ORDER BY t2.c LIMIT 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range a,b,c c 5 NULL 420 Using where
1 SIMPLE t1 ref a a 39 test.t2.a,const 10 Using where; Using index
1 SIMPLE t1 ref a a 39 test.t2.a,const 1 Using where; Using index
SELECT d FROM t3 AS t1, t2 AS t2
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
ORDER BY t2.c LIMIT 1;

View File

@ -0,0 +1,11 @@
create table t1 (a int);
alter table mysql.column_stats rename to mysql.column_stats1;
flush tables;
alter table t1 change a b varchar(100);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`b` varchar(100) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table mysql.column_stats1 rename to mysql.column_stats;
drop table t1;

View File

@ -0,0 +1,10 @@
#
# MDEV-18788 Live upgrade from MySQL 5.6/5.7 to MariaDB 10.4 fails with "Event Scheduler: An error occurred when initializing system tables"
#
create table t1 (a int);
alter table mysql.column_stats rename to mysql.column_stats1;
flush tables;
alter table t1 change a b varchar(100);
show create table t1;
alter table mysql.column_stats1 rename to mysql.column_stats;
drop table t1;

View File

@ -7314,5 +7314,60 @@ ERROR HY000: Illegal parameter data types row and boolean for operation '='
#
# End of 10.4 tests
#
#
# MDEV-19714: JOIN::pseudo_bits_cond is not visible in EXPLAIN FORMAT=JSON
#
CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES (1),(5);
CREATE TABLE t2 ( b INT ) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1);
CREATE TABLE t3 ( c INT );
INSERT INTO t3 VALUES (4),(5);
SET @tmp19714=@@optimizer_switch;
SET optimizer_switch='subquery_cache=off';
explain format=json
SELECT ( SELECT b FROM t2 WHERE b = a OR EXISTS ( SELECT c FROM t3 WHERE c = b ) ) FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 2,
"filtered": 100
},
"subqueries": [
{
"query_block": {
"select_id": 2,
"pseudo_bits_condition": "1 = t1.a or <in_optimizer>(1,<exists>(subquery#3))",
"table": {
"table_name": "t2",
"access_type": "system",
"rows": 1,
"filtered": 100
},
"subqueries": [
{
"query_block": {
"select_id": 3,
"table": {
"table_name": "t3",
"access_type": "ALL",
"rows": 2,
"filtered": 100,
"attached_condition": "1 = t3.c"
}
}
}
]
}
}
]
}
}
SET optimizer_switch=@tmp19714;
drop table t1,t2,t3;
set @optimizer_switch_for_subselect_test=null;
set @join_cache_level_for_subselect_test=NULL;

View File

@ -8,5 +8,28 @@ set @join_cache_level_for_subselect_test=@@join_cache_level;
--source subselect.test
--echo #
--echo # MDEV-19714: JOIN::pseudo_bits_cond is not visible in EXPLAIN FORMAT=JSON
--echo #
CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES (1),(5);
# t2 must be MyISAM or Aria and contain 1 row
CREATE TABLE t2 ( b INT ) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1);
CREATE TABLE t3 ( c INT );
INSERT INTO t3 VALUES (4),(5);
SET @tmp19714=@@optimizer_switch;
SET optimizer_switch='subquery_cache=off';
explain format=json
SELECT ( SELECT b FROM t2 WHERE b = a OR EXISTS ( SELECT c FROM t3 WHERE c = b ) ) FROM t1;
SET optimizer_switch=@tmp19714;
drop table t1,t2,t3;
set @optimizer_switch_for_subselect_test=null;
set @join_cache_level_for_subselect_test=NULL;

View File

@ -2555,33 +2555,94 @@ CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, KEY(b) );
INSERT INTO t1 VALUES
(1,2),(2,1),(3,3),(4,2),(5,5),
(6,3),(7,1),(8,4),(9,3),(10,2);
CREATE TABLE t2 ( c INT, d INT, UNIQUE KEY(c) );
CREATE TABLE t2 ( c INT, d INT, KEY(c) );
INSERT INTO t2 VALUES
(1,2),(2,1),(3,3),(4,2),(5,5),(6,3),(7,1);
analyze table t1,t2;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status OK
explain
SELECT a, b, d FROM t1, t2
WHERE ( b, d ) IN
( SELECT b, d FROM t1, t2 WHERE b = c );
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 7
1 PRIMARY t1 index b b 5 NULL 10 Using where; Using index; LooseScan
1 PRIMARY t2 ref c c 5 test.t1.b 1 Using where; FirstMatch(t1)
1 PRIMARY t1 ref b b 5 test.t1.b 2
SELECT a, b, d FROM t1, t2
WHERE ( b, d ) IN
( SELECT b, d FROM t1, t2 WHERE b = c );
a b d
2 1 2
7 1 2
8 4 2
1 2 1
4 2 1
10 2 1
3 3 3
6 3 3
9 3 3
2 1 2
7 1 2
1 2 1
4 2 1
10 2 1
1 2 1
4 2 1
10 2 1
3 3 3
6 3 3
9 3 3
3 3 3
6 3 3
9 3 3
8 4 2
8 4 2
5 5 5
3 3 3
6 3 3
9 3 3
1 2 1
4 2 1
10 2 1
DROP TABLE t1, t2;
# Another testcase for the above that still uses LooseScan:
create table t0(a int primary key);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t10(a int primary key);
insert into t10 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
create table t1 (
pk int primary key auto_increment,
kp1 int,
kp2 int,
filler char(100),
key (kp1, kp2)
);
insert into t1 (kp1, kp2, filler)
select
A.a, B.a, 'filler-data'
from t0 A, t0 B;
create table t2 (a int, filler char(100), key(a));
create table t3 (a int);
insert into t3 values (1),(2);
insert into t2
select (A.a+1000*B.a)/20, 'filler_data' from t10 A, t0 B;
analyze table t1,t2,t3;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status Table is already up to date
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status Table is already up to date
test.t3 analyze status Engine-independent statistics collected
test.t3 analyze status OK
delete from t1 where kp2 in (1,3);
# Ref + LooseScan on t1:
explain select sum(t2.a)
from t2,t3
where (t3.a,t2.a) in (select kp1,kp2 from t1,t0 where t0.a=2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t0 const PRIMARY PRIMARY 4 const 1 Using index
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 10 Using where; Using index; LooseScan
1 PRIMARY t2 ref a a 5 test.t1.kp2 19 Using index
select sum(t2.a)
from t2,t3
where (t3.a,t2.a) in (select kp1,kp2 from t1,t0 where t0.a=2);
sum(t2.a)
1640
drop table t0,t10;
drop table t1,t2,t3;
#
# BUG#920713: Wrong result (missing rows) with firstmatch+BNL, IN subquery, ...
#

View File

@ -2285,16 +2285,66 @@ INSERT INTO t1 VALUES
(1,2),(2,1),(3,3),(4,2),(5,5),
(6,3),(7,1),(8,4),(9,3),(10,2);
CREATE TABLE t2 ( c INT, d INT, UNIQUE KEY(c) );
CREATE TABLE t2 ( c INT, d INT, KEY(c) );
INSERT INTO t2 VALUES
(1,2),(2,1),(3,3),(4,2),(5,5),(6,3),(7,1);
analyze table t1,t2;
explain
SELECT a, b, d FROM t1, t2
WHERE ( b, d ) IN
( SELECT b, d FROM t1, t2 WHERE b = c );
SELECT a, b, d FROM t1, t2
WHERE ( b, d ) IN
( SELECT b, d FROM t1, t2 WHERE b = c );
DROP TABLE t1, t2;
--echo # Another testcase for the above that still uses LooseScan:
create table t0(a int primary key);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t10(a int primary key);
insert into t10 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
create table t1 (
pk int primary key auto_increment,
kp1 int,
kp2 int,
filler char(100),
key (kp1, kp2)
);
# 10 groups, each has 10 elements.
insert into t1 (kp1, kp2, filler)
select
A.a, B.a, 'filler-data'
from t0 A, t0 B;
create table t2 (a int, filler char(100), key(a));
create table t3 (a int);
insert into t3 values (1),(2);
insert into t2
select (A.a+1000*B.a)/20, 'filler_data' from t10 A, t0 B;
analyze table t1,t2,t3;
delete from t1 where kp2 in (1,3);
--echo # Ref + LooseScan on t1:
explain select sum(t2.a)
from t2,t3
where (t3.a,t2.a) in (select kp1,kp2 from t1,t0 where t0.a=2);
select sum(t2.a)
from t2,t3
where (t3.a,t2.a) in (select kp1,kp2 from t1,t0 where t0.a=2);
drop table t0,t10;
drop table t1,t2,t3;
--echo #
--echo # BUG#920713: Wrong result (missing rows) with firstmatch+BNL, IN subquery, ...
--echo #

View File

@ -2569,9 +2569,24 @@ CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, KEY(b) );
INSERT INTO t1 VALUES
(1,2),(2,1),(3,3),(4,2),(5,5),
(6,3),(7,1),(8,4),(9,3),(10,2);
CREATE TABLE t2 ( c INT, d INT, UNIQUE KEY(c) );
CREATE TABLE t2 ( c INT, d INT, KEY(c) );
INSERT INTO t2 VALUES
(1,2),(2,1),(3,3),(4,2),(5,5),(6,3),(7,1);
analyze table t1,t2;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status OK
explain
SELECT a, b, d FROM t1, t2
WHERE ( b, d ) IN
( SELECT b, d FROM t1, t2 WHERE b = c );
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 7
1 PRIMARY t1 index b b 5 NULL 10 Using where; Using index; LooseScan
1 PRIMARY t2 ref c c 5 test.t1.b 1 Using where; FirstMatch(t1)
1 PRIMARY t1 ref b b 5 test.t1.b 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
SELECT a, b, d FROM t1, t2
WHERE ( b, d ) IN
( SELECT b, d FROM t1, t2 WHERE b = c );
@ -2596,6 +2611,52 @@ a b d
10 2 1
10 2 1
DROP TABLE t1, t2;
# Another testcase for the above that still uses LooseScan:
create table t0(a int primary key);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t10(a int primary key);
insert into t10 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
create table t1 (
pk int primary key auto_increment,
kp1 int,
kp2 int,
filler char(100),
key (kp1, kp2)
);
insert into t1 (kp1, kp2, filler)
select
A.a, B.a, 'filler-data'
from t0 A, t0 B;
create table t2 (a int, filler char(100), key(a));
create table t3 (a int);
insert into t3 values (1),(2);
insert into t2
select (A.a+1000*B.a)/20, 'filler_data' from t10 A, t0 B;
analyze table t1,t2,t3;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status Table is already up to date
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status Table is already up to date
test.t3 analyze status Engine-independent statistics collected
test.t3 analyze status OK
delete from t1 where kp2 in (1,3);
# Ref + LooseScan on t1:
explain select sum(t2.a)
from t2,t3
where (t3.a,t2.a) in (select kp1,kp2 from t1,t0 where t0.a=2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t0 const PRIMARY PRIMARY 4 const 1 Using index
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 10 Using where; Using index; LooseScan
1 PRIMARY t2 ref a a 5 test.t1.kp2 19 Using index
select sum(t2.a)
from t2,t3
where (t3.a,t2.a) in (select kp1,kp2 from t1,t0 where t0.a=2);
sum(t2.a)
1640
drop table t0,t10;
drop table t1,t2,t3;
#
# BUG#920713: Wrong result (missing rows) with firstmatch+BNL, IN subquery, ...
#

View File

@ -67,9 +67,9 @@ insert into t4 select A.a + 10*B.a, A.a + 10*B.a, 'filler' from t0 A, t0 B;
explain select * from t0, t4 where
t4.b=t0.a and t4.a in (select max(t2.a) from t1, t2 group by t2.b);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 10
1 PRIMARY t4 ALL a NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 test.t4.a 1
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 5
1 PRIMARY t0 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
1 PRIMARY t4 ref a a 10 <subquery2>.max(t2.a),test.t0.a 1
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 Using temporary
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
insert into t4 select 100 + (B.a *100 + A.a), 100 + (B.a*100 + A.a), 'filler' from t4 A, t0 B;
@ -77,9 +77,9 @@ explain select * from t4 where
t4.a in (select max(t2.a) from t1, t2 group by t2.b) and
t4.b in (select max(t2.a) from t1, t2 group by t2.b);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 5
1 PRIMARY t4 ref a a 5 <subquery2>.max(t2.a) 12 Using index condition
1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 test.t4.b 1
1 PRIMARY <subquery3> ALL distinct_key NULL NULL NULL 5
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 5 Using join buffer (flat, BNL join)
1 PRIMARY t4 ref a a 10 <subquery2>.max(t2.a),<subquery3>.max(t2.a) 1
3 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 Using temporary
3 MATERIALIZED t1 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 Using temporary

View File

@ -279,7 +279,7 @@ insert into t2 values
explain select t1.* from t1 left join t2 on t2.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 10 NULL 2 Using index
1 SIMPLE t2 ref a a 3 test.t1.a 2 Using where
1 SIMPLE t2 ref a a 3 test.t1.a 1 Using where
drop table t1, t2;
#
# check UPDATE/DELETE that look like they could be eliminated

View File

@ -3607,6 +3607,33 @@ b row_number() over (partition by sum(a)+1)
2000 1
drop table t1;
#
# MDEV-18015: Assertion `global_status_var.global_memory_used == 0' failed when using UDF,
# window functions and views
#
create table t1 (id int, n1 int);
insert into t1 values (1,1),(2,1),(3,2),(4,4);
explain
select max(n1) over (partition by 'abc') from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary
select max(n1) over (partition by 'abc') from t1;
max(n1) over (partition by 'abc')
4
4
4
4
explain
select rank() over (partition by 'abc' order by 'xyz') from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using temporary
select rank() over (partition by 'abc' order by 'xyz') from t1;
rank() over (partition by 'abc' order by 'xyz')
1
1
1
1
drop table t1;
#
# End of 10.2 tests
#
#

View File

@ -2325,6 +2325,22 @@ select b, row_number() over (partition by sum(a)+1) from t1 group by b;
drop table t1;
--echo #
--echo # MDEV-18015: Assertion `global_status_var.global_memory_used == 0' failed when using UDF,
--echo # window functions and views
--echo #
create table t1 (id int, n1 int);
insert into t1 values (1,1),(2,1),(3,2),(4,4);
explain
select max(n1) over (partition by 'abc') from t1;
select max(n1) over (partition by 'abc') from t1;
explain
select rank() over (partition by 'abc' order by 'xyz') from t1;
select rank() over (partition by 'abc' order by 'xyz') from t1;
drop table t1;
--echo #
--echo # End of 10.2 tests
--echo #

View File

@ -9,5 +9,3 @@
# Do not use any TAB characters for whitespace.
#
##############################################################################
archive_gis : MDEV-17297 wait for the fix and then enable it

View File

@ -0,0 +1,71 @@
#
# Preparatory cleanup.
#
drop database if exists mysqltest;
create database mysqltest;
use mysqltest;
DROP TABLE IF EXISTS t1;
#
# We need a fixed timestamp to avoid varying results.
#
SET timestamp=1000000000;
#
# We need big packets.
#
# Capture initial value to reset at the end of the test
# Now adjust max_allowed_packet
SET @@global.max_allowed_packet= 10*1024*1024*1024;
Warnings:
Warning 1292 Truncated incorrect max_allowed_packet value: '10737418240'
max_allowed_packet is a global variable.
In order for the preceding change in max_allowed_packets' value
to be seen and used, we must start a new connection.
The change does not take effect with the current one.
For simplicity, we just disconnect / reconnect connection default here.
disconnect default;
connect default, localhost,root,,;
#
# Delete all existing binary logs.
#
RESET MASTER;
#
# Create a test table.
#
use mysqltest;
CREATE TABLE t1 (
c1 LONGTEXT
) DEFAULT CHARSET latin1;
#
# Show how many rows are affected by each statement.
#
#
# Insert some big rows.
#
insert 1024MB data twice
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 67108864));
affected rows: 1
INSERT INTO t1 VALUES (REPEAT('MegaByteBlckMany', 67108864));
affected rows: 1
#
# Flush all log buffers to the log file.
#
FLUSH LOGS;
affected rows: 0
#
# Call mysqlbinlog to display the log file contents.
# NOTE: The output of mysqlbinlog is redirected to
# $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out
# If you want to examine it, disable remove_file
# at the bottom of the test script.
#
#
# Cleanup.
#
# reset variable value to pass testcase checks
SET @@global.max_allowed_packet = 16777216;
affected rows: 0
DROP TABLE t1;
affected rows: 0
drop database if exists mysqltest;
affected rows: 0
remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out

View File

@ -0,0 +1,110 @@
# mysqlbinlog_big.test
#
# Show that mysqlbinlog can handle big rows.
#
#
# The *huge* output of mysqlbinlog will be redirected to
# $MYSQLTEST_VARDIR/$mysqlbinlog_output
#
--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out
--source include/have_binlog_format_row.inc
--source include/have_log_bin.inc
# This is a big test.
--source include/big_test.inc
--echo #
--echo # Preparatory cleanup.
--echo #
--disable_warnings
drop database if exists mysqltest;
create database mysqltest;
use mysqltest;
DROP TABLE IF EXISTS t1;
--enable_warnings
--echo #
--echo # We need a fixed timestamp to avoid varying results.
--echo #
SET timestamp=1000000000;
--echo #
--echo # We need big packets.
--echo #
--echo # Capture initial value to reset at the end of the test
# use let $<var> = query_get_value as FLUSH statements
# in the test will set @<var> values to NULL
let $orig_max_allowed_packet =
query_get_value(SELECT @@global.max_allowed_packet, @@global.max_allowed_packet, 1);
--echo # Now adjust max_allowed_packet
SET @@global.max_allowed_packet= 10*1024*1024*1024;
--echo max_allowed_packet is a global variable.
--echo In order for the preceding change in max_allowed_packets' value
--echo to be seen and used, we must start a new connection.
--echo The change does not take effect with the current one.
--echo For simplicity, we just disconnect / reconnect connection default here.
disconnect default;
connect (default, localhost,root,,);
--echo #
--echo # Delete all existing binary logs.
--echo #
RESET MASTER;
--echo #
--echo # Create a test table.
--echo #
use mysqltest;
eval CREATE TABLE t1 (
c1 LONGTEXT
) DEFAULT CHARSET latin1;
--echo #
--echo # Show how many rows are affected by each statement.
--echo #
--enable_info
--echo #
--echo # Insert some big rows.
--echo #
--echo insert 1024MB data twice
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 67108864));
INSERT INTO t1 VALUES (REPEAT('MegaByteBlckMany', 67108864));
--echo #
--echo # Flush all log buffers to the log file.
--echo #
FLUSH LOGS;
--echo #
--echo # Call mysqlbinlog to display the log file contents.
--echo # NOTE: The output of mysqlbinlog is redirected to
--echo # \$MYSQLTEST_VARDIR/$mysqlbinlog_output
--echo # If you want to examine it, disable remove_file
--echo # at the bottom of the test script.
--echo #
let $MYSQLD_DATADIR= `select @@datadir`;
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/
--exec $MYSQL_BINLOG -B -v -v $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/$mysqlbinlog_output
--echo #
--echo # Cleanup.
--echo #
--echo # reset variable value to pass testcase checks
eval SET @@global.max_allowed_packet = $orig_max_allowed_packet;
DROP TABLE t1;
drop database if exists mysqltest;
--echo remove_file \$MYSQLTEST_VARDIR/$mysqlbinlog_output
#
# NOTE: If you want to see the *huge* mysqlbinlog output, disable next line:
#
--remove_file $MYSQLTEST_VARDIR/$mysqlbinlog_output

View File

@ -0,0 +1,39 @@
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED ENCRYPTED=YES;
INSERT INTO t1 VALUES(1, repeat('Nesamani', 10));
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`a` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED `ENCRYPTED`=YES
# Wait max 10 min for key encryption threads to encrypt all spaces
db.opt
t1.frm
t1.ibd
FLUSH TABLES t1 FOR EXPORT;
backup: t1
db.opt
t1.cfg
t1.frm
t1.ibd
UNLOCK TABLES;
DROP TABLE t1;
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED ENCRYPTED=YES;
ALTER TABLE t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files
ALTER TABLE t1 IMPORT TABLESPACE;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`a` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED `ENCRYPTED`=YES
DROP TABLE t1;

View File

@ -0,0 +1,3 @@
--innodb-encrypt-tables=ON
--innodb-encryption-threads=4
--innodb-tablespaces-encryption

View File

@ -0,0 +1,45 @@
-- source include/have_innodb.inc
-- source include/have_example_key_management_plugin.inc
-- source include/not_valgrind.inc
-- source include/not_embedded.inc
let MYSQLD_DATADIR = `SELECT @@datadir`;
--let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED ENCRYPTED=YES;
INSERT INTO t1 VALUES(1, repeat('Nesamani', 10));
SELECT COUNT(*) FROM t1;
SHOW CREATE TABLE t1;
--echo # Wait max 10 min for key encryption threads to encrypt all spaces
--let $wait_timeout= 600
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND ROTATING_OR_FLUSHING <> 0
--source include/wait_condition.inc
let $restart_noprint=2;
--source include/restart_mysqld.inc
let MYSQLD_DATADIR =`SELECT @@datadir`;
--list_files $MYSQLD_DATADIR/test
FLUSH TABLES t1 FOR EXPORT;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
ib_backup_tablespaces("test", "t1");
EOF
--list_files $MYSQLD_DATADIR/test
UNLOCK TABLES;
DROP TABLE t1;
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a VARCHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED ENCRYPTED=YES;
ALTER TABLE t1 DISCARD TABLESPACE;
perl;
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl";
ib_discard_tablespaces("test", "t1");
ib_restore_tablespaces("test", "t1");
EOF
ALTER TABLE t1 IMPORT TABLESPACE;
SELECT COUNT(*) FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;

View File

@ -49,6 +49,8 @@ tr1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE
DROP TABLE t1;
connection node_1;
CREATE EVENT event1 ON SCHEDULE AT '2038-01-01 23:59:59' DO SELECT 1;
Warnings:
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
connection node_2;
SHOW CREATE EVENT event1;
Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation

View File

@ -25,7 +25,7 @@ CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoD
set session wsrep_sync_wait=15;
--let $wsrep_slave_threads_orig = `SELECT @@wsrep_slave_threads`
SET GLOBAL wsrep_slave_threads = 4;
--let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
--let $wait_condition = SELECT COUNT(*) = @@wsrep_slave_threads + 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
--source include/wait_condition.inc
--connection node_1

View File

@ -23,8 +23,7 @@ connection node_2;
Shutting down server ...
connection node_1;
connection node_2;
Starting server ...
# restart: --wsrep_sst_auth=sst:sst --wsrep_sst_method=mysqldump --wsrep-sst-receive-address=127.0.0.1:16001
# restart: with restart_parameters
connection node_1;
connection node_2;
SELECT COUNT(*) > 0 FROM mysql.wsrep_streaming_log;

View File

@ -43,7 +43,7 @@ UPDATE t1 SET f2 = REPEAT('y', 255);
--source include/wait_condition.inc
--connection node_2
--echo Starting server ...
--let $restart_noprint = 1
--let $restart_parameters = --wsrep_sst_auth=sst:sst --wsrep_sst_method=mysqldump --wsrep-sst-receive-address=127.0.0.1:$NODE_MYPORT_2
--source include/start_mysqld.inc

View File

@ -1110,7 +1110,7 @@ id select_type table type possible_keys key key_len ref rows Extra
EXPLAIN SELECT * FROM t1 AS t2 STRAIGHT_JOIN t1 FORCE INDEX(b) WHERE t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL b NULL NULL NULL 2 Using where
1 SIMPLE t1 ref b b 5 test.t2.b 2
1 SIMPLE t1 ref b b 5 test.t2.b 1
EXPLAIN SELECT b FROM t1 FORCE INDEX(b);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL b 5 NULL 2 Using index

View File

@ -64,7 +64,7 @@ a b c
explain select * from t1 where b in (select c from t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
1 PRIMARY t3 ref c c 5 test.t1.b 2 Using index
1 PRIMARY t3 ref c c 5 test.t1.b 1 Using index
# select_type=PRIMARY, type=range,ref
select * from t1 where c in (select c from t3 where c between -2 and -1);
a b c
@ -74,7 +74,7 @@ a b c
explain select * from t1 where c in (select c from t3 where c between -2 and -1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range c c 5 NULL 3 Using index condition
1 PRIMARY t3 index c c 5 NULL 6 Using where; Using index; Using join buffer (flat, BNL join)
1 PRIMARY t3 ref c c 5 test.t1.c 1 Using index
# select_type=UNION, type=system
# select_type=UNION RESULT, type=<union1,2>
select * from t1 union select * from t2;

View File

@ -74,7 +74,7 @@ IF(HAVE_MLOCK)
ENDIF()
ADD_CONVENIENCE_LIBRARY(mysys ${MYSYS_SOURCES})
TARGET_LINK_LIBRARIES(mysys dbug strings mysys_ssl ${ZLIB_LIBRARY}
TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY})
DTRACE_INSTRUMENT(mysys)

View File

@ -25,16 +25,28 @@
#include <my_crypt.h>
#include <ssl_compat.h>
#include <cstdint>
#ifdef HAVE_WOLFSSL
#define CTX_ALIGN 16
#else
#define CTX_ALIGN 0
#endif
class MyCTX
{
public:
char ctx_buf[EVP_CIPHER_CTX_SIZE];
EVP_CIPHER_CTX *ctx;
char ctx_buf[EVP_CIPHER_CTX_SIZE + CTX_ALIGN];
EVP_CIPHER_CTX* ctx;
MyCTX()
{
ctx= (EVP_CIPHER_CTX *)ctx_buf;
#if CTX_ALIGN > 0
uintptr_t p= ((uintptr_t)ctx_buf + (CTX_ALIGN - 1)) & ~(CTX_ALIGN - 1);
ctx = reinterpret_cast<EVP_CIPHER_CTX*>(p);
#else
ctx = (EVP_CIPHER_CTX*)ctx_buf;
#endif
EVP_CIPHER_CTX_init(ctx);
}
virtual ~MyCTX()
@ -149,8 +161,11 @@ public:
uchar mask[MY_AES_BLOCK_SIZE];
uint mlen;
my_aes_crypt(MY_AES_ECB, ENCRYPTION_FLAG_ENCRYPT | ENCRYPTION_FLAG_NOPAD,
int rc= my_aes_crypt(MY_AES_ECB, ENCRYPTION_FLAG_ENCRYPT | ENCRYPTION_FLAG_NOPAD,
oiv, sizeof(mask), mask, &mlen, key, klen, 0, 0);
DBUG_ASSERT(rc == MY_AES_OK);
if (rc)
return rc;
DBUG_ASSERT(mlen == sizeof(mask));
for (uint i=0; i < buf_len; i++)

View File

@ -25,8 +25,8 @@ MYSQL_ADD_PLUGIN(auth_ed25519 server_ed25519.c ${REF10_SOURCES} MODULE_ONLY)
# client plugin and unit test ed25519-t can use the library
#MYSQL_ADD_PLUGIN(client_ed25519 client_ed25519.c MODULE_ONLY
# CLIENT LINK_LIBRARIES mysys_ssl ref10 COMPONENT ClientPlugins)
# CLIENT LINK_LIBRARIES ref10 mysys_ssl COMPONENT ClientPlugins)
IF(WITH_UNIT_TESTS)
MY_ADD_TESTS(ed25519 LINK_LIBRARIES mysys ref10)
MY_ADD_TESTS(ed25519 LINK_LIBRARIES ref10 mysys_ssl)
ENDIF()

View File

@ -11246,3 +11246,58 @@ bool Field::val_str_nopad(MEM_ROOT *mem_root, LEX_CSTRING *to)
return rc;
}
void Field::print_key_value(String *out, uint32 length)
{
if (charset() == &my_charset_bin)
print_key_value_binary(out, ptr, length);
else
val_str(out);
}
void Field_string::print_key_value(String *out, uint32 length)
{
if (charset() == &my_charset_bin)
{
size_t len= field_charset->cset->lengthsp(field_charset, (const char*) ptr, length);
print_key_value_binary(out, ptr, static_cast<uint32>(len));
}
else
{
THD *thd= get_thd();
sql_mode_t sql_mode_backup= thd->variables.sql_mode;
thd->variables.sql_mode&= ~MODE_PAD_CHAR_TO_FULL_LENGTH;
val_str(out,out);
thd->variables.sql_mode= sql_mode_backup;
}
}
void Field_varstring::print_key_value(String *out, uint32 length)
{
if (charset() == &my_charset_bin)
print_key_value_binary(out, get_data(), get_length());
else
val_str(out,out);
}
void Field_blob::print_key_value(String *out, uint32 length)
{
if (charset() == &my_charset_bin)
{
uchar *blob;
memcpy(&blob, ptr+packlength, sizeof(uchar*));
print_key_value_binary(out, blob, get_length());
}
else
val_str(out, out);
}
void Field::print_key_value_binary(String *out, const uchar* key, uint32 length)
{
out->append_semi_hex((const char*)key, length, charset());
}

View File

@ -1442,6 +1442,8 @@ public:
virtual int set_time() { return 1; }
bool set_warning(Sql_condition::enum_warning_level, unsigned int code,
int cuted_increment, ulong current_row=0) const;
virtual void print_key_value(String *out, uint32 length);
void print_key_value_binary(String *out, const uchar* key, uint32 length);
protected:
bool set_warning(unsigned int code, int cuted_increment) const
{
@ -3699,6 +3701,7 @@ public:
{ return charset() == &my_charset_bin ? FALSE : TRUE; }
Field *make_new_field(MEM_ROOT *root, TABLE *new_table, bool keep_type);
virtual uint get_key_image(uchar *buff,uint length, imagetype type);
void print_key_value(String *out, uint32 length);
private:
int save_field_metadata(uchar *first_byte);
};
@ -3815,6 +3818,7 @@ public:
uint is_equal(Create_field *new_field);
void hash(ulong *nr, ulong *nr2);
uint length_size() { return length_bytes; }
void print_key_value(String *out, uint32 length);
private:
int save_field_metadata(uchar *first_byte);
};
@ -4163,6 +4167,7 @@ public:
uint32 char_length() const;
uint32 character_octet_length() const;
uint is_equal(Create_field *new_field);
void print_key_value(String *out, uint32 length);
friend void TABLE::remember_blob_values(String *blob_storage);
friend void TABLE::restore_blob_values(String *blob_storage);
@ -4290,6 +4295,10 @@ public:
geometry_type get_geometry_type() { return geom_type; };
static geometry_type geometry_type_merge(geometry_type, geometry_type);
uint get_srid() { return srid; }
void print_key_value(String *out, uint32 length)
{
out->append(STRING_WITH_LEN("unprintable_geometry_value"));
}
};
uint gis_field_options_image(uchar *buff, List<Create_field> &create_fields);
@ -4608,6 +4617,11 @@ public:
{
return get_mm_leaf_int(param, key_part, cond, op, value, true);
}
void print_key_value(String *out, uint32 length)
{
val_int_as_str(out, 1);
}
private:
virtual size_t do_last_null_byte() const;
int save_field_metadata(uchar *first_byte);

View File

@ -8199,6 +8199,7 @@ int ha_partition::info(uint flag)
stats.delete_length= 0;
stats.check_time= 0;
stats.checksum= 0;
stats.checksum_null= TRUE;
for (i= bitmap_get_first_set(&m_part_info->read_partitions);
i < m_tot_parts;
i= bitmap_get_next_set(&m_part_info->read_partitions, i))
@ -8212,7 +8213,11 @@ int ha_partition::info(uint flag)
stats.delete_length+= file->stats.delete_length;
if (file->stats.check_time > stats.check_time)
stats.check_time= file->stats.check_time;
stats.checksum+= file->stats.checksum;
if (!file->stats.checksum_null)
{
stats.checksum+= file->stats.checksum;
stats.checksum_null= FALSE;
}
}
if (stats.records && stats.records < 2 &&
!(m_file[0]->ha_table_flags() & HA_STATS_RECORDS_IS_EXACT))
@ -8369,6 +8374,7 @@ void ha_partition::get_dynamic_partition_info(PARTITION_STATS *stat_info,
stat_info->update_time= file->stats.update_time;
stat_info->check_time= file->stats.check_time;
stat_info->check_sum= file->stats.checksum;
stat_info->check_sum_null= file->stats.checksum_null;
}
@ -10585,6 +10591,64 @@ void ha_partition::init_table_handle_for_HANDLER()
}
/**
Calculate the checksum of the table (all partitions)
*/
int ha_partition::pre_calculate_checksum()
{
int error;
DBUG_ENTER("ha_partition::pre_calculate_checksum");
m_pre_calling= TRUE;
if ((table_flags() & (HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM)))
{
handler **file= m_file;
do
{
if ((error= (*file)->pre_calculate_checksum()))
{
DBUG_RETURN(error);
}
} while (*(++file));
}
DBUG_RETURN(0);
}
int ha_partition::calculate_checksum()
{
int error;
stats.checksum= 0;
stats.checksum_null= TRUE;
DBUG_ENTER("ha_partition::calculate_checksum");
if (!m_pre_calling)
{
if ((error= pre_calculate_checksum()))
{
m_pre_calling= FALSE;
DBUG_RETURN(error);
}
}
m_pre_calling= FALSE;
handler **file= m_file;
do
{
if ((error= (*file)->calculate_checksum()))
{
DBUG_RETURN(error);
}
if (!(*file)->stats.checksum_null)
{
stats.checksum+= (*file)->stats.checksum;
stats.checksum_null= FALSE;
}
} while (*(++file));
DBUG_RETURN(0);
}
/****************************************************************************
MODULE enable/disable indexes
****************************************************************************/

View File

@ -1441,6 +1441,9 @@ public:
void append_row_to_str(String &str);
public:
virtual int pre_calculate_checksum();
virtual int calculate_checksum();
/* Enabled keycache for performance reasons, WL#4571 */
virtual int assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt);
virtual int preload_keys(THD* thd, HA_CHECK_OPT* check_opt);

View File

@ -4859,6 +4859,7 @@ void handler::get_dynamic_partition_info(PARTITION_STATS *stat_info,
stat_info->update_time= stats.update_time;
stat_info->check_time= stats.check_time;
stat_info->check_sum= stats.checksum;
stat_info->check_sum_null= stats.checksum_null;
}
@ -5013,7 +5014,7 @@ int handler::calculate_checksum()
return HA_ERR_ABORTED_BY_USER;
ha_checksum row_crc= 0;
error= table->file->ha_rnd_next(table->record[0]);
error= ha_rnd_next(table->record[0]);
if (error)
break;
@ -5067,7 +5068,7 @@ int handler::calculate_checksum()
stats.checksum+= row_crc;
}
table->file->ha_rnd_end();
ha_rnd_end();
return error == HA_ERR_END_OF_FILE ? 0 : error;
}

View File

@ -1040,7 +1040,7 @@ typedef bool (stat_print_fn)(THD *thd, const char *type, size_t type_len,
const char *file, size_t file_len,
const char *status, size_t status_len);
enum ha_stat_type { HA_ENGINE_STATUS, HA_ENGINE_LOGS, HA_ENGINE_MUTEX };
extern st_plugin_int *hton2plugin[MAX_HA];
extern MYSQL_PLUGIN_IMPORT st_plugin_int *hton2plugin[MAX_HA];
/* Transaction log maintains type definitions */
enum log_status
@ -1929,6 +1929,7 @@ typedef struct {
time_t check_time;
time_t update_time;
ulonglong check_sum;
bool check_sum_null;
} PARTITION_STATS;
#define UNDEF_NODEGROUP 65535
@ -2890,6 +2891,7 @@ public:
time_t update_time;
uint block_size; /* index block size */
ha_checksum checksum;
bool checksum_null;
/*
number of buffer bytes that native mrr implementation needs,
@ -2901,7 +2903,7 @@ public:
index_file_length(0), max_index_file_length(0), delete_length(0),
auto_increment_value(0), records(0), deleted(0), mean_rec_length(0),
create_time(0), check_time(0), update_time(0), block_size(0),
mrr_length_per_rec(0)
checksum(0), checksum_null(FALSE), mrr_length_per_rec(0)
{}
};
@ -3934,6 +3936,7 @@ public:
virtual uint max_supported_key_part_length() const { return 255; }
virtual uint min_record_length(uint options) const { return 1; }
virtual int pre_calculate_checksum() { return 0; }
virtual int calculate_checksum();
virtual bool is_crashed() const { return 0; }
virtual bool auto_repair(int error) const { return 0; }

View File

@ -3915,7 +3915,6 @@ int subselect_single_select_engine::exec()
tab->save_read_record= tab->read_record.read_record_func;
tab->read_record.read_record_func= rr_sequential;
tab->read_first_record= read_first_record_seq;
tab->read_record.record= tab->table->record[0];
tab->read_record.thd= join->thd;
tab->read_record.ref_length= tab->table->file->ref_length;
tab->read_record.unlock_row= rr_unlock_row;
@ -3933,7 +3932,6 @@ int subselect_single_select_engine::exec()
for (JOIN_TAB **ptab= changed_tabs; ptab != last_changed_tab; ptab++)
{
JOIN_TAB *tab= *ptab;
tab->read_record.record= 0;
tab->read_record.ref_length= 0;
tab->read_first_record= tab->save_read_first_record;
tab->read_record.read_record_func= tab->save_read_record;

View File

@ -44,11 +44,6 @@ public:
first_check= true;
}
void cleanup()
{
group_fields.empty();
}
/*
Check if the current row is in a different group than the previous row
this function was called for.
@ -86,6 +81,10 @@ public:
}
return 0;
}
~Group_bound_tracker()
{
group_fields.delete_elements();
}
private:
List<Cached_item> group_fields;
@ -213,7 +212,6 @@ public:
{
if (peer_tracker)
{
peer_tracker->cleanup();
delete peer_tracker;
peer_tracker= NULL;
}
@ -284,7 +282,6 @@ class Item_sum_dense_rank: public Item_sum_int
{
if (peer_tracker)
{
peer_tracker->cleanup();
delete peer_tracker;
peer_tracker= NULL;
}
@ -548,7 +545,6 @@ class Item_sum_percent_rank: public Item_sum_window_with_row_count
{
if (peer_tracker)
{
peer_tracker->cleanup();
delete peer_tracker;
peer_tracker= NULL;
}

View File

@ -8322,8 +8322,10 @@ mysqld_get_one_option(int optid, const struct my_option *opt, char *argument)
opt_specialflag|= SPECIAL_NO_HOST_CACHE;
break;
case (int) OPT_SKIP_RESOLVE:
opt_skip_name_resolve= 1;
opt_specialflag|=SPECIAL_NO_RESOLVE;
if ((opt_skip_name_resolve= (argument != disabled_my_option)))
opt_specialflag|= SPECIAL_NO_RESOLVE;
else
opt_specialflag&= ~SPECIAL_NO_RESOLVE;
break;
case (int) OPT_WANT_CORE:
test_flags |= TEST_CORE_ON_SIGNAL;
@ -8382,6 +8384,8 @@ mysqld_get_one_option(int optid, const struct my_option *opt, char *argument)
break;
case OPT_PLUGIN_LOAD:
free_list(opt_plugin_load_list_ptr);
if (argument == disabled_my_option)
break; // Resets plugin list
/* fall through */
case OPT_PLUGIN_LOAD_ADD:
opt_plugin_load_list_ptr->push_back(new i_string(argument));

View File

@ -15835,12 +15835,10 @@ static void print_key_value(String *out, const KEY_PART_INFO *key_part,
{
// Byte 0 of a nullable key is the null-byte. If set, key is NULL.
if (field->real_maybe_null() && *key)
{
out->append(STRING_WITH_LEN("NULL"));
else
(field->type() == MYSQL_TYPE_GEOMETRY)
? out->append(STRING_WITH_LEN("unprintable_geometry_value"))
: out->append(STRING_WITH_LEN("unprintable_blob_value"));
goto next;
goto next;
}
}
if (field->real_maybe_null())
@ -15859,28 +15857,12 @@ static void print_key_value(String *out, const KEY_PART_INFO *key_part,
store_length--;
}
/*
Binary data cannot be converted to UTF8 which is what the
optimizer trace expects. If the column is binary, the hex
representation is printed to the trace instead.
*/
if (field->flags & BINARY_FLAG)
{
out->append("0x");
for (uint i = 0; i < store_length; i++)
{
out->append(_dig_vec_lower[*(key + i) >> 4]);
out->append(_dig_vec_lower[*(key + i) & 0x0F]);
}
goto next;
}
field->set_key_image(key, key_part->length);
if (field->type() == MYSQL_TYPE_BIT)
(void)field->val_int_as_str(&tmp, 1); // may change tmp's charset
field->print_key_value(&tmp, key_part->length);
if (field->charset() == &my_charset_bin)
out->append(tmp.ptr(), tmp.length(), tmp.charset());
else
field->val_str(&tmp); // may change tmp's charset
out->append(tmp.ptr(), tmp.length(), tmp.charset());
tmp.print(out, system_charset_info);
next:
if (key + store_length < key_end)

View File

@ -77,7 +77,6 @@ bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table,
bzero((char*) info,sizeof(*info));
info->thd= thd;
info->table= table;
info->record= table->record[0];
info->print_error= print_error;
info->unlock_row= rr_unlock_row;
@ -210,7 +209,6 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
else
{
empty_record(table);
info->record= table->record[0];
info->ref_length= (uint)table->file->ref_length;
}
info->select=select;
@ -393,7 +391,7 @@ static int rr_index_first(READ_RECORD *info)
return tmp;
}
tmp= info->table->file->ha_index_first(info->record);
tmp= info->table->file->ha_index_first(info->record());
info->read_record_func= rr_index;
if (tmp)
tmp= rr_handle_error(info, tmp);
@ -416,7 +414,7 @@ static int rr_index_first(READ_RECORD *info)
static int rr_index_last(READ_RECORD *info)
{
int tmp= info->table->file->ha_index_last(info->record);
int tmp= info->table->file->ha_index_last(info->record());
info->read_record_func= rr_index_desc;
if (tmp)
tmp= rr_handle_error(info, tmp);
@ -442,7 +440,7 @@ static int rr_index_last(READ_RECORD *info)
static int rr_index(READ_RECORD *info)
{
int tmp= info->table->file->ha_index_next(info->record);
int tmp= info->table->file->ha_index_next(info->record());
if (tmp)
tmp= rr_handle_error(info, tmp);
return tmp;
@ -467,7 +465,7 @@ static int rr_index(READ_RECORD *info)
static int rr_index_desc(READ_RECORD *info)
{
int tmp= info->table->file->ha_index_prev(info->record);
int tmp= info->table->file->ha_index_prev(info->record());
if (tmp)
tmp= rr_handle_error(info, tmp);
return tmp;
@ -477,7 +475,7 @@ static int rr_index_desc(READ_RECORD *info)
int rr_sequential(READ_RECORD *info)
{
int tmp;
while ((tmp= info->table->file->ha_rnd_next(info->record)))
while ((tmp= info->table->file->ha_rnd_next(info->record())))
{
tmp= rr_handle_error(info, tmp);
break;
@ -493,7 +491,7 @@ static int rr_from_tempfile(READ_RECORD *info)
{
if (my_b_read(info->io_cache,info->ref_pos,info->ref_length))
return -1; /* End of file */
if (!(tmp= info->table->file->ha_rnd_pos(info->record,info->ref_pos)))
if (!(tmp= info->table->file->ha_rnd_pos(info->record(), info->ref_pos)))
break;
/* The following is extremely unlikely to happen */
if (tmp == HA_ERR_KEY_NOT_FOUND)
@ -543,7 +541,7 @@ int rr_from_pointers(READ_RECORD *info)
cache_pos= info->cache_pos;
info->cache_pos+= info->ref_length;
if (!(tmp= info->table->file->ha_rnd_pos(info->record,cache_pos)))
if (!(tmp= info->table->file->ha_rnd_pos(info->record(), cache_pos)))
break;
/* The following is extremely unlikely to happen */
@ -638,7 +636,7 @@ static int rr_from_cache(READ_RECORD *info)
else
{
error=0;
memcpy(info->record,info->cache_pos,
memcpy(info->record(), info->cache_pos,
(size_t) info->table->s->reclength);
}
info->cache_pos+=info->reclength;

View File

@ -19,9 +19,10 @@
#pragma interface /* gcc class implementation */
#endif
#include "table.h"
struct st_join_table;
class handler;
struct TABLE;
class THD;
class SQL_SELECT;
class Copy_field;
@ -58,7 +59,6 @@ struct READ_RECORD
SQL_SELECT *select;
uint ref_length, reclength, rec_cache_size, error_offset;
uchar *ref_pos; /* pointer to form->refpos */
uchar *record;
uchar *rec_buf; /* to read field values after filesort */
uchar *cache,*cache_pos,*cache_end,*read_positions;
struct st_sort_addon_field *addon_field; /* Pointer to the fields info */
@ -67,6 +67,7 @@ struct READ_RECORD
void (*unpack)(struct st_sort_addon_field *, uchar *, uchar *);
int read_record() { return read_record_func(this); }
uchar *record() const { return table->record[0]; }
/*
SJ-Materialization runtime may need to read fields from the materialized

View File

@ -27,8 +27,22 @@
#include <my_bitmap.h>
#include <my_bit.h>
template <uint width> class Bitmap
{
/*
Workaround GCC optimizer bug (generating SSE instuctions on unaligned data)
*/
#if defined (__GNUC__) && defined(__x86_64__) && (__GNUC__ < 6) && !defined(__clang__)
#define NEED_GCC_NO_SSE_WORKAROUND
#endif
#ifdef NEED_GCC_NO_SSE_WORKAROUND
#pragma GCC push_options
#pragma GCC target ("no-sse")
#endif
uint32 buffer[(width + 31) / 32];
public:
Bitmap()
@ -264,8 +278,15 @@ public:
}
enum { BITMAP_END = width };
};
#ifdef NEED_GCC_NO_SSE_WORKAROUND
#pragma GCC pop_options
#undef NEED_GCC_NO_SSE_WORKAROUND
#endif
};
/* An iterator to quickly walk over bits in ulonglong bitmap. */
class Table_map_iterator
{

View File

@ -941,6 +941,11 @@ void Explain_select::print_explain_json(Explain_query *query,
writer->add_member("outer_ref_condition");
write_item(writer, outer_ref_cond);
}
if (pseudo_bits_cond)
{
writer->add_member("pseudo_bits_condition");
write_item(writer, pseudo_bits_cond);
}
/* we do not print HAVING which always evaluates to TRUE */
if (having || (having_value == Item::COND_FALSE))

View File

@ -236,6 +236,7 @@ public:
/* Expensive constant condition */
Item *exec_const_cond;
Item *outer_ref_cond;
Item *pseudo_bits_cond;
/* HAVING condition */
Item *having;

View File

@ -5900,18 +5900,16 @@ add_key_field(JOIN *join,
(*key_fields)->level= and_level;
(*key_fields)->optimize= optimize;
/*
If the condition has form "tbl.keypart = othertbl.field" and
othertbl.field can be NULL, there will be no matches if othertbl.field
has NULL value.
We use null_rejecting in add_not_null_conds() to add
'othertbl.field IS NOT NULL' to tab->select_cond.
If the condition we are analyzing is NULL-rejecting and at least
one side of the equalities is NULLable, mark the KEY_FIELD object as
null-rejecting. This property is used by:
- add_not_null_conds() to add "column IS NOT NULL" conditions
- best_access_path() to produce better estimates for NULL-able unique keys.
*/
{
Item *real= (*value)->real_item();
if (((cond->functype() == Item_func::EQ_FUNC) ||
(cond->functype() == Item_func::MULT_EQUAL_FUNC)) &&
(real->type() == Item::FIELD_ITEM) &&
((Item_field*)real)->field->maybe_null())
if ((cond->functype() == Item_func::EQ_FUNC ||
cond->functype() == Item_func::MULT_EQUAL_FUNC) &&
((*value)->maybe_null || field->real_maybe_null()))
(*key_fields)->null_rejecting= true;
else
(*key_fields)->null_rejecting= false;
@ -7235,6 +7233,7 @@ best_access_path(JOIN *join,
ulong key_flags;
uint key_parts;
key_part_map found_part= 0;
key_part_map notnull_part=0; // key parts which won't have NULL in lookup tuple.
table_map found_ref= 0;
uint key= keyuse->key;
filter= 0;
@ -7294,6 +7293,9 @@ best_access_path(JOIN *join,
if (!(keyuse->used_tables & ~join->const_table_map))
const_part|= keyuse->keypart_map;
if (!keyuse->val->maybe_null || keyuse->null_rejecting)
notnull_part|=keyuse->keypart_map;
double tmp2= prev_record_reads(join->positions, idx,
(found_ref | keyuse->used_tables));
if (tmp2 < best_prev_record_reads)
@ -7347,12 +7349,19 @@ best_access_path(JOIN *join,
loose_scan_opt.check_ref_access_part1(s, key, start_key, found_part);
/* Check if we found full key */
if (found_part == PREV_BITS(uint, key_parts) &&
!ref_or_null_part)
const key_part_map all_key_parts= PREV_BITS(uint, key_parts);
if (found_part == all_key_parts && !ref_or_null_part)
{ /* use eq key */
max_key_part= (uint) ~0;
if ((key_flags & (HA_NOSAME | HA_NULL_PART_KEY)) == HA_NOSAME ||
MY_TEST(key_flags & HA_EXT_NOSAME))
/*
If the index is a unique index (1), and
- all its columns are not null (2), or
- equalities we are using reject NULLs (3)
then the estimate is rows=1.
*/
if ((key_flags & (HA_NOSAME | HA_EXT_NOSAME)) && // (1)
(!(key_flags & HA_NULL_PART_KEY) || // (2)
all_key_parts == notnull_part)) // (3)
{
trace_access_idx.add("access_type", "eq_ref")
.add("index", keyinfo->name);
@ -10565,8 +10574,16 @@ static bool create_ref_for_key(JOIN *join, JOIN_TAB *j,
uint maybe_null= MY_TEST(keyinfo->key_part[i].null_bit);
j->ref.items[i]=keyuse->val; // Save for cond removal
j->ref.cond_guards[i]= keyuse->cond_guard;
if (keyuse->null_rejecting)
/*
Set ref.null_rejecting to true only if we are going to inject a
"keyuse->val IS NOT NULL" predicate.
*/
Item *real= (keyuse->val)->real_item();
if (keyuse->null_rejecting && (real->type() == Item::FIELD_ITEM) &&
((Item_field*)real)->field->maybe_null())
j->ref.null_rejecting|= (key_part_map)1 << i;
keyuse_uses_no_tables= keyuse_uses_no_tables && !keyuse->used_tables;
/*
We don't want to compute heavy expressions in EXPLAIN, an example would
@ -21163,7 +21180,6 @@ join_read_first(JOIN_TAB *tab)
tab->table->status=0;
tab->read_record.read_record_func= join_read_next;
tab->read_record.table=table;
tab->read_record.record=table->record[0];
if (!table->file->inited)
error= table->file->ha_index_init(tab->index, tab->sorted);
if (likely(!error))
@ -21183,7 +21199,7 @@ static int
join_read_next(READ_RECORD *info)
{
int error;
if (unlikely((error= info->table->file->ha_index_next(info->record))))
if (unlikely((error= info->table->file->ha_index_next(info->record()))))
return report_error(info->table, error);
return 0;
@ -21203,7 +21219,6 @@ join_read_last(JOIN_TAB *tab)
tab->table->status=0;
tab->read_record.read_record_func= join_read_prev;
tab->read_record.table=table;
tab->read_record.record=table->record[0];
if (!table->file->inited)
error= table->file->ha_index_init(tab->index, 1);
if (likely(!error))
@ -21220,7 +21235,7 @@ static int
join_read_prev(READ_RECORD *info)
{
int error;
if (unlikely((error= info->table->file->ha_index_prev(info->record))))
if (unlikely((error= info->table->file->ha_index_prev(info->record()))))
return report_error(info->table, error);
return 0;
}
@ -21250,7 +21265,7 @@ static int
join_ft_read_next(READ_RECORD *info)
{
int error;
if (unlikely((error= info->table->file->ha_ft_read(info->table->record[0]))))
if (unlikely((error= info->table->file->ha_ft_read(info->record()))))
return report_error(info->table, error);
return 0;
}
@ -26505,6 +26520,7 @@ int JOIN::save_explain_data_intern(Explain_query *output,
xpl_sel->exec_const_cond= exec_const_cond;
xpl_sel->outer_ref_cond= outer_ref_cond;
xpl_sel->pseudo_bits_cond= pseudo_bits_cond;
if (tmp_having)
xpl_sel->having= tmp_having;
else

View File

@ -5680,7 +5680,9 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
table->field[16]->store_time(&time);
table->field[16]->set_notnull();
}
if (file->ha_table_flags() & (HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM))
if ((file->ha_table_flags() &
(HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM)) &&
!file->stats.checksum_null)
{
table->field[18]->store((longlong) file->stats.checksum, TRUE);
table->field[18]->set_notnull();

View File

@ -102,29 +102,6 @@ inline void init_table_list_for_stat_tables(TABLE_LIST *tables, bool for_write)
}
}
/**
@details
The function builds a TABLE_LIST containing only one element 'tbl' for
the statistical table called 'stat_tab_name'.
The lock type of the element is set to TL_READ if for_write = FALSE,
otherwise it is set to TL_WRITE.
*/
static inline
void init_table_list_for_single_stat_table(TABLE_LIST *tbl,
const LEX_CSTRING *stat_tab_name,
bool for_write)
{
memset((char *) tbl, 0, sizeof(TABLE_LIST));
tbl->db= MYSQL_SCHEMA_NAME;
tbl->table_name= *stat_tab_name;
tbl->alias= *stat_tab_name;
tbl->lock_type= for_write ? TL_WRITE : TL_READ;
}
static Table_check_intact_log_error stat_table_intact;
static const
@ -286,16 +263,21 @@ inline int open_stat_tables(THD *thd, TABLE_LIST *tables,
/**
@brief
Open a statistical table and lock it
@details
This is used by DDLs. When a column or index is dropped or renamed,
stat tables need to be adjusted accordingly.
*/
static
inline int open_single_stat_table(THD *thd, TABLE_LIST *table,
const LEX_CSTRING *stat_tab_name,
Open_tables_backup *backup,
bool for_write)
static inline int open_stat_table_for_ddl(THD *thd, TABLE_LIST *table,
const LEX_CSTRING *stat_tab_name,
Open_tables_backup *backup)
{
init_table_list_for_single_stat_table(table, stat_tab_name, for_write);
init_mdl_requests(table);
return open_system_tables_for_read(thd, table, backup);
table->init_one_table(&MYSQL_SCHEMA_NAME, stat_tab_name, NULL, TL_WRITE);
No_such_table_error_handler nst_handler;
thd->push_internal_handler(&nst_handler);
int res= open_system_tables_for_read(thd, table, backup);
thd->pop_internal_handler();
return res;
}
@ -3478,21 +3460,16 @@ int delete_statistics_for_table(THD *thd, const LEX_CSTRING *db,
@brief
Delete statistics on a column of the specified table
@param
thd The thread handle
@param
tab The table the column belongs to
@param
col The field of the column whose statistics is to be deleted
@param thd The thread handle
@param tab The table the column belongs to
@param col The field of the column whose statistics is to be deleted
@details
The function delete statistics on the column 'col' belonging to the table
'tab' from the statistical table column_stats.
@retval
0 If all deletions are successful or we couldn't open statistics table
@retval
1 Otherwise
@retval 0 If all deletions are successful or we couldn't open statistics table
@retval 1 Otherwise
@note
The function is called when dropping a table column or when changing
@ -3509,8 +3486,8 @@ int delete_statistics_for_column(THD *thd, TABLE *tab, Field *col)
int rc= 0;
DBUG_ENTER("delete_statistics_for_column");
if (open_single_stat_table(thd, &tables, &stat_table_name[1],
&open_tables_backup, TRUE))
if (open_stat_table_for_ddl(thd, &tables, &stat_table_name[1],
&open_tables_backup))
DBUG_RETURN(0);
save_binlog_format= thd->set_current_stmt_binlog_format_stmt();
@ -3537,24 +3514,18 @@ int delete_statistics_for_column(THD *thd, TABLE *tab, Field *col)
@brief
Delete statistics on an index of the specified table
@param
thd The thread handle
@param
tab The table the index belongs to
@param
key_info The descriptor of the index whose statistics is to be deleted
@param
ext_prefixes_only Delete statistics only on the index prefixes extended by
the components of the primary key
@param thd The thread handle
@param tab The table the index belongs to
@param key_info The descriptor of the index whose statistics is to be deleted
@param ext_prefixes_only Delete statistics only on the index prefixes
extended by the components of the primary key
@details
The function delete statistics on the index specified by 'key_info'
defined on the table 'tab' from the statistical table index_stats.
@retval
0 If all deletions are successful or we couldn't open statistics table
@retval
1 Otherwise
@retval 0 If all deletions are successful or we couldn't open statistics table
@retval 1 Otherwise
@note
The function is called when dropping an index, or dropping/changing the
@ -3572,8 +3543,8 @@ int delete_statistics_for_index(THD *thd, TABLE *tab, KEY *key_info,
int rc= 0;
DBUG_ENTER("delete_statistics_for_index");
if (open_single_stat_table(thd, &tables, &stat_table_name[2],
&open_tables_backup, TRUE))
if (open_stat_table_for_ddl(thd, &tables, &stat_table_name[2],
&open_tables_backup))
DBUG_RETURN(0);
save_binlog_format= thd->set_current_stmt_binlog_format_stmt();
@ -3635,7 +3606,7 @@ int delete_statistics_for_index(THD *thd, TABLE *tab, KEY *key_info,
index_stats.
@retval
0 If all updates of the table name are successful
0 If all updates of the table name are successful
@retval
1 Otherwise
@ -3716,26 +3687,19 @@ int rename_table_in_stat_tables(THD *thd, const LEX_CSTRING *db,
/**
@brief
Rename a column in the statistical table column_stats
@param
thd The thread handle
@param
tab The table the column belongs to
@param
col The column to be renamed
@param
new_name The new column name
@param thd The thread handle
@param tab The table the column belongs to
@param col The column to be renamed
@param new_name The new column name
@details
The function replaces the name of the column 'col' belonging to the table
'tab' for 'new_name' in the statistical table column_stats.
@retval
0 If all updates of the table name are successful
@retval
1 Otherwise
@retval 0 If all updates of the table name are successful
@retval 1 Otherwise
@note
The function is called when executing any statement that renames a column,
@ -3756,8 +3720,8 @@ int rename_column_in_stat_tables(THD *thd, TABLE *tab, Field *col,
if (tab->s->tmp_table != NO_TMP_TABLE)
DBUG_RETURN(0);
if (open_single_stat_table(thd, &tables, &stat_table_name[1],
&open_tables_backup, TRUE))
if (open_stat_table_for_ddl(thd, &tables, &stat_table_name[1],
&open_tables_backup))
DBUG_RETURN(rc);
save_binlog_format= thd->set_current_stmt_binlog_format_stmt();

View File

@ -1196,3 +1196,15 @@ uint convert_to_printable(char *to, size_t to_len,
*t= '\0';
return (uint) (t - to);
}
bool String::append_semi_hex(const char *s, uint len, CHARSET_INFO *cs)
{
size_t dst_len= len * 4 + 1; //extra length for the '\0' character
if (reserve(dst_len))
return true;
uint nbytes= convert_to_printable(Ptr + str_length, dst_len, s, len, cs);
DBUG_ASSERT((ulonglong) str_length + nbytes < UINT_MAX32);
str_length+= nbytes;
return false;
}

View File

@ -679,6 +679,7 @@ public:
int reserve(size_t space_needed)
{
DBUG_ASSERT((ulonglong) str_length + space_needed < UINT_MAX32);
return realloc(str_length + space_needed);
}
int reserve(size_t space_needed, size_t grow_by);
@ -964,6 +965,8 @@ public:
{
return !sortcmp(this, other, cs);
}
private:
bool append_semi_hex(const char *s, uint len, CHARSET_INFO *cs);
};

View File

@ -11002,7 +11002,7 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables,
(((t->file->ha_table_flags() & HA_HAS_OLD_CHECKSUM) && thd->variables.old_mode) ||
((t->file->ha_table_flags() & HA_HAS_NEW_CHECKSUM) && !thd->variables.old_mode)))
{
if (t->file->info(HA_STATUS_VARIABLE))
if (t->file->info(HA_STATUS_VARIABLE) || t->file->stats.checksum_null)
protocol->store_null();
else
protocol->store((longlong)t->file->stats.checksum);
@ -11022,7 +11022,7 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables,
thd->protocol->remove_last_row();
goto err;
}
if (error)
if (error || t->file->stats.checksum_null)
protocol->store_null();
else
protocol->store((longlong)t->file->stats.checksum);

View File

@ -898,7 +898,7 @@ public:
{
Rowid_seq_cursor::init(info);
table= info->table;
record= info->record;
record= info->record();
}
virtual int fetch()

View File

@ -6113,10 +6113,12 @@ database_corrupted:
if (err == DB_PAGE_CORRUPTED
|| err == DB_DECRYPTION_FAILED) {
const page_id_t corrupt_page_id = bpage->id;
buf_corrupt_page_release(bpage, space);
if (recv_recovery_is_on()) {
recv_recover_corrupt_page(bpage);
recv_recover_corrupt_page(corrupt_page_id);
}
space->release_for_io();

View File

@ -49,8 +49,8 @@ recv_find_max_checkpoint(ulint* max_field)
/** Remove records for a corrupted page.
This function should called when srv_force_recovery > 0.
@param[in] bpage buffer pool page */
ATTRIBUTE_COLD void recv_recover_corrupt_page(buf_page_t* bpage);
@param[in] page_id page id of the corrupted page */
ATTRIBUTE_COLD void recv_recover_corrupt_page(page_id_t page_id);
/** Apply any buffered redo log to a page that was just read from a data file.
@param[in,out] bpage buffer pool page */

View File

@ -777,9 +777,7 @@ os_file_rename
os_aio
os_file_read
os_file_read_no_error_handling
os_file_read_no_error_handling_int_fd
os_file_write
os_file_write_int_fd
The wrapper functions have the prefix of "innodb_". */
@ -1155,13 +1153,9 @@ to original un-instrumented file I/O APIs */
# define os_file_read_no_error_handling(type, file, buf, offset, n, o) \
os_file_read_no_error_handling_func(type, file, buf, offset, n, o)
# define os_file_read_no_error_handling_int_fd(type, file, buf, offset, n) \
os_file_read_no_error_handling_func(type, OS_FILE_FROM_FD(file), buf, offset, n, NULL)
# define os_file_write(type, name, file, buf, offset, n) \
os_file_write_func(type, name, file, buf, offset, n)
# define os_file_write_int_fd(type, name, file, buf, offset, n) \
os_file_write_func(type, name, OS_FILE_FROM_FD(file), buf, offset, n)
# define os_file_flush(file) os_file_flush_func(file)

View File

@ -1,7 +1,7 @@
/*****************************************************************************
Copyright (c) 2010, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2013, 2017, MariaDB Corporation.
Copyright (c) 2013, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software

View File

@ -370,7 +370,9 @@ row_merge_buf_sort(
/********************************************************************//**
Write a merge block to the file system.
@return whether the request was completed successfully */
@return whether the request was completed successfully
@retval false on error
@retval true on success */
UNIV_INTERN
bool
row_merge_write(

View File

@ -1971,11 +1971,11 @@ static void recv_recover_page(buf_block_t* block, mtr_t& mtr,
/** Remove records for a corrupted page.
This function should called when srv_force_recovery > 0.
@param[in] bpage buffer pool page */
void recv_recover_corrupt_page(buf_page_t* bpage)
@param[in] page_id page id of the corrupted page */
void recv_recover_corrupt_page(page_id_t page_id)
{
mutex_enter(&recv_sys.mutex);
recv_sys.pages.erase(bpage->id);
recv_sys.pages.erase(page_id);
mutex_exit(&recv_sys.mutex);
}

View File

@ -4860,7 +4860,8 @@ Requests a synchronous write operation.
@param[out] buf buffer from which to write
@param[in] offset file offset from the start where to read
@param[in] n number of bytes to read, starting from offset
@return DB_SUCCESS if request was successful, false if fail */
@return error code
@retval DB_SUCCESS if the operation succeeded */
dberr_t
os_file_write_func(
const IORequest& type,
@ -5345,7 +5346,8 @@ Requests a synchronous positioned read operation.
@param[out] buf buffer where to read
@param[in] offset file offset from the start where to read
@param[in] n number of bytes to read, starting from offset
@return DB_SUCCESS or error code */
@return error code
@retval DB_SUCCESS if the operation succeeded */
dberr_t
os_file_read_func(
const IORequest& type,

View File

@ -3424,8 +3424,12 @@ page_corrupted:
if (!encrypted) {
} else if (!key_version) {
not_encrypted:
if (!page_compressed
&& !block->page.zip.data) {
if (block->page.id.page_no() == 0
&& block->page.zip.data) {
block->page.zip.data = src;
frame_changed = true;
} else if (!page_compressed
&& !block->page.zip.data) {
block->frame = src;
frame_changed = true;
} else {
@ -3529,7 +3533,11 @@ not_encrypted:
}
if (frame_changed) {
block->frame = dst;
if (block->page.zip.data) {
block->page.zip.data = dst;
} else {
block->frame = dst;
}
}
src = io_buffer + (i * size);

View File

@ -1123,7 +1123,9 @@ row_merge_read(
/********************************************************************//**
Write a merge block to the file system.
@return whether the request was completed successfully */
@return whether the request was completed successfully
@retval false on error
@retval true on success */
UNIV_INTERN
bool
row_merge_write(

View File

@ -2793,9 +2793,12 @@ int ha_maria::external_lock(THD *thd, int lock_type)
}
}
} /* if transactional table */
DBUG_RETURN(maria_lock_database(file, !table->s->tmp_table ?
int result = maria_lock_database(file, !table->s->tmp_table ?
lock_type : ((lock_type == F_UNLCK) ?
F_UNLCK : F_EXTRA_LCK)));
F_UNLCK : F_EXTRA_LCK));
if (!file->s->base.born_transactional)
file->state= &file->s->state.state; // Restore state if clone
DBUG_RETURN(result);
}
int ha_maria::start_stmt(THD *thd, thr_lock_type lock_type)

View File

@ -1,5 +1,3 @@
#!/bin/awk
/Query_time:/ {
results["Rows_examined:"] = "uninit";
results["RocksDB_key_skipped:"] = "uninit";

View File

@ -1,2 +1,4 @@
#!/bin/bash
src_data_dir="${MYSQLTEST_VARDIR}/mysqld.1/data/"
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('${src_data_dir}/slocket')"

View File

@ -1,3 +1,5 @@
#!/bin/bash
set -e
COPY_LOG=$1

View File

@ -1,3 +1,5 @@
#!/bin/bash
set -e
# Insert 100 batches of 100 records each to a table with following schema:

View File

@ -1,3 +1,5 @@
#!/bin/bash
set -e
# Initially loads a chunk of data.

Some files were not shown because too many files have changed in this diff Show More