mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-02 20:42:04 +00:00
144 KiB
144 KiB
machine_translated |
---|
true |
Clickhouse version v20. 3
Clickhouse version v20. 3. 4. 10, 2020-03-20
Bug Fix
- Cette version contient également toutes les corrections de bugs de 20.1.8.41
- Fixer manquant
rows_before_limit_at_least
pour les requêtes sur http (avec pipeline de processeurs). Cela corrige #9730. #9757 (Nikolai Kochetov)
Clickhouse version v20. 3. 3. 6, 2020-03-17
Bug Fix
- Cette version contient également toutes les corrections de bugs de 20.1.7.38
- Correction d'un bug dans une réplication qui ne permet pas la réplication de fonctionner si l'Utilisateur a exécuté des mutations sur la version précédente. Cela corrige #9645. #9652 (alésapine). Il rend la version 20.3 rétrocompatible à nouveau.
- Ajouter un paramètre
use_compact_format_in_distributed_parts_names
qui permet d'écrire des fichiers pourINSERT
les requêtes enDistributed
tableau avec un format plus compact. Cela corrige #9647. #9653 (alésapine). Il rend la version 20.3 rétrocompatible à nouveau.
Clickhouse version v20. 3. 2. 1, 2020-03-12
Modification Incompatible En Arrière
- Correction du problème
file name too long
lors de l'envoi de données pourDistributed
tables pour un grand nombre de répliques. Correction du problème que les informations d'identification de réplique étaient exposées dans le journal du serveur. Le format du nom du répertoire sur le disque a été changé en[shard{shard_index}[_replica{replica_index}]]
. #8911 (Mikhail Korotov) Après la mise à niveau vers la nouvelle version, vous ne pourrez pas rétrograder sans intervention manuelle, car l'ancienne version du serveur ne reconnaît pas le nouveau format de répertoire. Si vous souhaitez passer, vous devez renommer manuellement les répertoires correspondant à l'ancien format. Cette modification s'applique uniquement si vous avez utilisé asynchroneINSERT
sDistributed
table. Dans la version 20.3.3, nous allons introduire un paramètre qui vous permettra d'activer le nouveau format progressivement. - Modification du format des entrées du journal de réplication pour les commandes de mutation. Vous devez attendre que les anciennes mutations soient traitées avant d'installer la nouvelle version.
- Implémentez un profileur de mémoire simple qui vide stacktraces vers
system.trace_log
chaque n octets au-dessus de la limite d'allocation douce #8765 (Ivan) #9472 (alexeï-milovidov) La colonne desystem.trace_log
a été renommé detimer_type
detrace_type
. Cela nécessitera des changements dans les outils d'analyse des performances et de traitement flamegraph de tiers. - Utilisez L'id de thread du système d'exploitation partout au lieu du numéro de thread interne. Cela corrige #7477 Vieux
clickhouse-client
impossible de recevoir les journaux envoyés par le serveur lorsque le paramètresend_logs_level
est activé, car les noms et les types des messages de journal structurés ont été modifiés. D'autre part, différentes versions de serveur peuvent envoyer des journaux avec différents types les uns aux autres. Lorsque vous n'utilisez pas l'send_logs_level
réglage, vous ne devez pas soin. #8954 (alexeï-milovidov) - Supprimer
indexHint
fonction #9542 (alexeï-milovidov) - Supprimer
findClusterIndex
,findClusterValue
fonction. Cela corrige #8641. Si vous utilisez ces fonctions, envoyez un courriel àclickhouse-feedback@yandex-team.com
#9543 (alexeï-milovidov) - Maintenant, il n'est pas permis de créer des colonnes ou ajouter des colonnes avec
SELECT
sous-requête comme expression par défaut. #9481 (alésapine) - Exiger des alias pour les sous-requêtes dans la JOINTURE. #9274 (Artem Zuikov)
- Améliorer
ALTER MODIFY/ADD
les requêtes de la logique. Maintenant vous ne pouvez pasADD
colonne sans type,MODIFY
l'expression par défaut ne change pas le type de colonne etMODIFY
type ne perd pas la valeur d'expression par défaut. Fixer #8669. #9227 (alésapine) - Exiger que le serveur soit redémarré pour appliquer les modifications dans la configuration de journalisation. Il s'agit d'une solution de contournement temporaire pour éviter le bogue où le serveur se connecte à un fichier journal supprimé (voir #8696). #8707 (Alexander Kuzmenkov)
- Paramètre
experimental_use_processors
est activé par défaut. Ce paramètre active l'utilisation du nouveau pipeline de requêtes. C'est un refactoring interne et nous n'attendons aucun changement visible. Si vous voyez des problèmes, réglez-le sur Retour à zéro. #8768 (alexeï-milovidov)
Nouveauté
- Ajouter
Avro
etAvroConfluent
d'entrée/sortie de formats #8571 (Andrew Onyshchuk) #8957 (Andrew Onyshchuk) #8717 (alexeï-milovidov) - Mises à jour multithread et non bloquantes des clés expirées dans
cache
dictionnaires (avec autorisation facultative pour lire les anciens). #8303 (Nikita Mikhaylov) - Ajouter une requête
ALTER ... MATERIALIZE TTL
. Il exécute mutation qui force à supprimer les données expirées par TTL et recalcule les méta-informations sur TTL dans toutes les parties. #8775 (Anton Popov) - Passez de HashJoin à MergeJoin (sur le disque) si nécessaire #9082 (Artem Zuikov)
- Ajouter
MOVE PARTITION
commande pourALTER TABLE
#4729 #6168 (Guillaume Tassery) - Le rechargement de la configuration de stockage du fichier de configuration à la volée. #8594 (Vladimir Chebotarev)
- Autorisé à changer
storage_policy
pas moins riche. #8107 (Vladimir Chebotarev) - Ajout du support pour globs / jokers pour le stockage S3 et la fonction de table. #8851 (Vladimir Chebotarev)
- Mettre
bitAnd
,bitOr
,bitXor
,bitNot
pourFixedString(N)
type de données. #9091 (Guillaume Tassery) - Ajout de la fonction
bitCount
. Cela corrige #8702. #8708 (alexeï-milovidov) #8749 (ikopylov) - Ajouter
generateRandom
fonction de table pour générer des lignes aléatoires avec un schéma donné. Permet de remplir une table de test arbitraire avec des données. #8994 (Ilya Yatsishin) JSONEachRowFormat
: support cas particulier lorsque les objets enfermés dans un tableau de niveau supérieur. #8860 (Kruglov Pavel)- Il est maintenant possible de créer une colonne avec
DEFAULT
expression qui dépend d'une colonne avec défautALIAS
expression. #9489 (alésapine) - Autoriser à spécifier
--limit
plus que la taille des données source dansclickhouse-obfuscator
. Les données se répéteront avec différentes graines aléatoires. #9155 (alexeï-milovidov) - Ajouter
groupArraySample
fonction (similaire àgroupArray
) avec réservoir algorithme d'échantillonnage. #8286 (Amos Oiseau) - Maintenant, vous pouvez surveiller la taille de la file d'attente de mise à jour dans
cache
/complex_key_cache
dictionnaires via les métriques du système. #9413 (Nikita Mikhaylov) - Autoriser L'utilisation de CRLF comme séparateur de ligne au format de sortie CSV avec réglage
output_format_csv_crlf_end_of_line
est réglé sur 1 #8934 #8935 #8963 (Mikhail Korotov) - Mettre en œuvre plus de fonctions de la H3 API:
h3GetBaseCell
,h3HexAreaM2
,h3IndexesAreNeighbors
,h3ToChildren
,h3ToString
etstringToH3
#8938 (Nico Mandery) - Nouveau paramètre introduit:
max_parser_depth
pour contrôler la taille maximale de la pile et permettre de grandes requêtes complexes. Cela corrige #6681 et #7668. #8647 (Maxim Smirnov) - Ajouter un paramètre
force_optimize_skip_unused_shards
réglage sur lancer si le saut d'éclats inutilisés n'est pas possible #8805 (Azat Khuzhin) - Permet de configurer plusieurs disques / volumes pour stocker des données pour l'envoi
Distributed
moteur #8756 (Azat Khuzhin) - Politique de stockage de soutien (
<tmp_policy>
pour le stockage temporaire des données. #8750 (Azat Khuzhin) - Ajouter
X-ClickHouse-Exception-Code
En-tête HTTP défini si une exception a été levée avant l'envoi de données. Cela met en œuvre #4971. #8786 (Mikhail Korotov) - Ajout de la fonction
ifNotFinite
. C'est juste un sucre syntaxique:ifNotFinite(x, y) = isFinite(x) ? x : y
. #8710 (alexeï-milovidov) - Ajouter
last_successful_update_time
colonne ensystem.dictionaries
table #9394 (Nikita Mikhaylov) - Ajouter
blockSerializedSize
fonction (taille sur disque sans compression) #8952 (Azat Khuzhin) - Ajouter une fonction
moduloOrZero
#9358 (hcz) - Tables système ajoutées
system.zeros
etsystem.zeros_mt
ainsi que les fonctions de contezeros()
etzeros_mt()
. Les Tables (et les fonctions de table) contiennent une seule colonne avec le nomzero
et le typeUInt8
. Cette colonne contient des zéros. Il est nécessaire à des fins de test comme la méthode la plus rapide pour générer de nombreuses lignes. Cela corrige #6604 #9593 (Nikolai Kochetov)
Caractéristique Expérimentale
- Ajouter un nouveau format compact de pièces dans
MergeTree
-table de famille dont toutes les colonnes sont stockées dans un fichier. Il aide à augmenter les performances des inserts petits et fréquents. L'ancien format (un fichier par colonne) s'appelle maintenant wide. Le format de stockage des données est contrôlé par les paramètresmin_bytes_for_wide_part
etmin_rows_for_wide_part
. #8290 (Anton Popov) - Prise en charge du stockage S3 pour
Log
,TinyLog
etStripeLog
table. #8862 (Pavel Kovalenko)
Bug Fix
- Correction d'espaces incohérents dans les messages de journal. #9322 (alexeï-milovidov)
- Correction d'un bug dans lequel les tableaux de tuples sans nom ont été aplatis en tant que structures imbriquées lors de la création de la table. #8866 (achulkov2)
- Correction du problème lorsque “Too many open files” l'erreur peut se produire s'il y a trop de fichiers correspondant glob modèle dans
File
table oufile
table de fonction. Maintenant, les fichiers sont ouverts paresseusement. Cela corrige #8857 #8861 (alexeï-milovidov) - DROP table temporaire ne supprime plus que la table temporaire. #8907 (Vitaly Baranov)
- Supprimer la partition obsolète lorsque nous éteignons le serveur ou détacher/joindre une table. #8602 (Guillaume Tassery)
- Pour savoir comment le disque par défaut calcule l'espace libre à partir de
data
répertoire. Correction du problème lorsque la quantité d'espace libre n'est pas calculée correctement si l'data
le répertoire est monté sur un appareil séparé (cas rare). Cela corrige #7441 #9257 (Mikhail Korotov) - Permettre virgule (croix) joindre avec IN () à l'intérieur. #9251 (Artem Zuikov)
- Permettre de réécrire CROSS to INNER JOIN s'il n'y a pas [pas] comme opérateur dans la section WHERE. #9229 (Artem Zuikov)
- Correction d'un résultat incorrect possible après
GROUP BY
avec le paramètre activédistributed_aggregation_memory_efficient
. Fixer #9134. #9289 (Nikolai Kochetov) - Les clés trouvées ont été comptées comme manquées dans les métriques des dictionnaires de cache. #9411 (Nikita Mikhaylov)
- Correction du protocole de réplication incompatibilité introduit dans #8598. #9412 (alésapine)
- Condition de course fixe sur
queue_task_handle
au démarrage deReplicatedMergeTree
table. #9552 (alexeï-milovidov) - Jeton
NOT
ne fonctionne pas dansSHOW TABLES NOT LIKE
requête #8727 #8940 (alexeï-milovidov) - Vérification de plage ajoutée à la fonction
h3EdgeLengthM
. Sans cette vérification, un débordement de tampon est possible. #8945 (alexeï-milovidov) - Correction d'un bug dans les calculs par lots des opérations logiques ternaires sur plusieurs arguments (plus de 10). #8718 (Alexander Kazakov)
- Correction d'une erreur D'optimisation de PREWHERE, qui pourrait conduire à des
Inconsistent number of columns got from MergeTreeRangeReader
exception. #9024 (Anton Popov) - Fix inattendu
Timeout exceeded while reading from socket
exception, qui se produit aléatoirement sur une connexion sécurisée avant le délai d'expiration réellement dépassé et lorsque query profiler est activé. Également ajouterconnect_timeout_with_failover_secure_ms
paramètres (par défaut 100 ms), qui est similaire àconnect_timeout_with_failover_ms
, mais est utilisé pour les connexions sécurisées (parce que la liaison SSL est plus lente, que la connexion TCP ordinaire) #9026 (tavplubix) - Correction d'un bug avec la finalisation des mutations, lorsque la mutation peut se bloquer dans l'état avec
parts_to_do=0
etis_done=0
. #9022 (alésapine) - Utilisez une nouvelle logique de jointure avec
partial_merge_join
paramètre. Il est possible de faireANY|ALL|SEMI LEFT
etALL INNER
les jointures avecpartial_merge_join=1
maintenant. #8932 (Artem Zuikov) - Shard pince maintenant les paramètres obtenus de l'initiateur aux constaints de la partition au lieu de lancer une exception. Ce correctif permet d'envoyer des requêtes à un serveur avec un autre contraintes. #9447 (Vitaly Baranov)
- Fixe, problème de gestion de mémoire dans
MergeTreeReadPool
. #8791 (Vladimir Chebotarev) - Fixer
toDecimal*OrNull()
famille de fonctions lorsqu'elle est appelée avec une chaînee
. Fixer #8312 #8764 (Artem Zuikov) - Assurez-vous que
FORMAT Null
n'envoie pas de données au client. #8767 (Alexander Kuzmenkov) - Correction d'un bug dans cet horodatage
LiveViewBlockInputStream
ne sera pas mis à jour.LIVE VIEW
est une fonctionnalité expérimentale. #8644 (vxider) #8625 (vxider) - Fixe
ALTER MODIFY TTL
mauvais comportement qui n'a pas permis de supprimer les anciennes expressions TTL. #8422 (Vladimir Chebotarev) - Rapport UBSan fixe dans MergeTreeIndexSet. Cela corrige #9250 #9365 (alexeï-milovidov)
- Correction du comportement de
match
etextract
fonctions lorsque haystack a zéro octets. Le comportement était mauvais quand la botte de foin était constante. Cela corrige #9160 #9163 (alexeï-milovidov) #9345 (alexeï-milovidov) - Évitez de lancer de destructor dans la bibliothèque Apache Avro 3rd-party. #9066 (Andrew Onyshchuk)
- Ne commettez pas un lot interrogé à partir de
Kafka
partiellement, car il peut conduire à des trous dans les données. #8876 (filimonov) - Fixer
joinGet
avec les types de retour nullable. https://github.com/ClickHouse/ClickHouse/issues/8919 #9014 (Amos Oiseau) - Correction de l'incompatibilité des données lorsqu'elles sont compressées avec
T64
codec. #9016 (Artem Zuikov) Corriger les ID de type de données dansT64
codec de compression qui conduit à une mauvaise (de)compression dans les versions affectées. #9033 (Artem Zuikov) - Ajouter un paramètre
enable_early_constant_folding
et le désactiver dans certains cas, cela conduit à des erreurs. #9010 (Artem Zuikov) - Fix Pushdown prédicat optimizer avec vue et activer le test #9011 (L'Hiver Zhang)
- Fixer erreur de segmentation dans
Merge
tables, cela peut arriver lors de la lecture deFile
stockage #9387 (tavplubix) - Ajout d'une vérification de la stratégie de stockage dans
ATTACH PARTITION FROM
,REPLACE PARTITION
,MOVE TO TABLE
. Sinon, cela pourrait rendre les données de la partie inaccessibles après le redémarrage et empêcher ClickHouse de démarrer. #9383 (Vladimir Chebotarev) - Fix modifie s'il y a TTL défini pour la table. #8800 (Anton Popov)
- Correction de la condition de course qui peut se produire lorsque
SYSTEM RELOAD ALL DICTIONARIES
est exécuté pendant que certains dictionnaires sont modifiés / ajoutés / supprimés. #8801 (Vitaly Baranov) - Dans les versions précédentes
Memory
le moteur de base de données utilise un chemin de données vide, de sorte que les tables sont créées danspath
directory (e.g./var/lib/clickhouse/
), not in data directory of database (e.g./var/lib/clickhouse/db_name
). #8753 (tavplubix) - Correction de messages de journal erronés sur le disque ou la stratégie par défaut manquant. #9530 (Vladimir Chebotarev)
- Fix not (has ()) pour l'index bloom_filter des types de tableau. #9407 (achimbab)
- Permettre à première colonne(s) dans un tableau avec
Log
moteur alias #9231 (Ivan) - Fixer l'ordre des plages pendant la lecture d'
MergeTree
table dans un fil. Cela pourrait conduire à des exceptionsMergeTreeRangeReader
ou mauvais résultats de requête. #9050 (Anton Popov) - Faire
reinterpretAsFixedString
retournerFixedString
plutôtString
. #9052 (Andrew Onyshchuk) - Évitez les cas extrêmement rares où l'utilisateur peut se tromper message d'erreur (
Success
au lieu d'une description détaillée de l'erreur). #9457 (alexeï-milovidov) - Ne pas planter lors de l'utilisation de
Template
format avec modèle de ligne vide. #8785 (Alexander Kuzmenkov) - Les fichiers de métadonnées pour les tables système peuvent être créés au mauvais endroit #8653 (tavplubix) Fixer #8581.
- Correction de la course de données sur exception_ptr dans le dictionnaire de cache #8303. #9379 (Nikita Mikhaylov)
- Ne pas lancer une exception pour la requête
ATTACH TABLE IF NOT EXISTS
. Auparavant, il a été lancé si la table existe déjà, malgré leIF NOT EXISTS
clause. #8967 (Anton Popov) - Correction manquant fermeture paren dans le message d'exception. #8811 (alexeï-milovidov)
- Éviter de message
Possible deadlock avoided
au démarrage de clickhouse-client en mode interactif. #9455 (alexeï-milovidov) - Correction du problème lorsque le remplissage à la fin de la valeur codée base64 peut être mal formé. Mettre à jour la bibliothèque base64. Cela corrige #9491, proche #9492 #9500 (alexeï-milovidov)
- Empêcher la perte de données dans
Kafka
dans de rares cas, lorsque l'exception se produit après la lecture du suffixe mais avant la validation. Fixer #9378 #9507 (filimonov) - Correction d'une exception dans
DROP TABLE IF EXISTS
#8663 (Nikita Vasilev) - Correction de plantage lorsqu'un utilisateur essaie d'
ALTER MODIFY SETTING
pour Ancien formatéMergeTree
famille de moteurs de table. #9435 (alésapine) - Prise en charge des numéros UInt64 qui ne correspondent pas à Int64 dans les fonctions liées à JSON. Mettre à jour SIMDJSON à maîtriser. Cela corrige #9209 #9344 (alexeï-milovidov)
- Exécution fixe de prédicats inversés lorsque l'index fonctionnel non strictement monotinique est utilisé. #9223 (Alexander Kazakov)
- N'essayez pas de plier
IN
constante dansGROUP BY
#8868 (Amos Oiseau) - Correction d'un bug dans
ALTER DELETE
mutations qui conduit à la corruption d'index. Cela corrige #9019 et #8982. En outre fixer des conditions de course extrêmement rares dansReplicatedMergeTree
ALTER
requête. #9048 (alésapine) - Lorsque le réglage
compile_expressions
est activée, vous pouvez obtenirunexpected column
dansLLVMExecutableFunction
lorsque nous utilisonsNullable
type #8910 (Guillaume Tassery) - Plusieurs correctifs pour
Kafka
moteur: 1) Correction des doublons qui apparaissaient pendant le rééquilibrage du groupe de consommateurs. 2) Correction rare ‘holes’ apparu lorsque les données ont été interrogées à partir de plusieurs partitions avec un sondage et validées partiellement (maintenant, nous traitons / validons toujours l'ensemble du bloc de messages interrogé). 3) corriger les vidages par taille de bloc (avant que seul le rinçage par Délai d'attente fonctionnait correctement). 4) meilleure procédure d'abonnement (avec rétroaction d'affectation). 5) Faites fonctionner les tests plus rapidement (avec des intervalles et des délais d'attente par défaut). En raison du fait que les données n'étaient pas vidées par la taille du bloc auparavant (comme il se doit selon la documentation), Ce PR peut entraîner une dégradation des performances avec les paramètres par défaut (en raison de vidages plus fréquents et plus petits qui sont moins optimaux). Si vous rencontrez le problème de performance après ce changement - veuillez augmenterkafka_max_block_size
dans le tableau de la plus grande valeur ( par exempleCREATE TABLE ...Engine=Kafka ... SETTINGS ... kafka_max_block_size=524288
). Fixer #7259 #8917 (filimonov) - Fixer
Parameter out of bound
exception dans certaines requêtes après les optimisations PREWHERE. #8914 (Baudouin Giard) - Correction du cas de la consistance mixte des arguments de la fonction
arrayZip
. #8705 (alexeï-milovidov) - Lors de l'exécution de
CREATE
requête, plier les expressions constantes dans les arguments du moteur de stockage. Remplacez le nom de base de données vide par la base de données actuelle. Fixer #6508, #3492 #9262 (tavplubix) - Maintenant il n'est pas possible de créer ou d'ajouter des colonnes avec des alias cycliques simples comme
a DEFAULT b, b DEFAULT a
. #9603 (alésapine) - Correction d'un bug avec double mouvement qui peut corrompre la partie originale. Ceci est pertinent si vous utilisez
ALTER TABLE MOVE
#8680 (Vladimir Chebotarev) - Permettre
interval
identifiant pour analyser correctement sans backticks. Correction d'un problème lorsqu'une requête ne peut pas être exécutée même si leinterval
l'identifiant est entouré de backticks ou de guillemets doubles. Cela corrige #9124. #9142 (alexeï-milovidov) - Test de fuzz fixe et comportement incorrect de
bitTestAll
/bitTestAny
fonction. #9143 (alexeï-milovidov) - Correction plantage possible/mauvais nombre de lignes dans
LIMIT n WITH TIES
quand il y a beaucoup de lignes égales à n'ème ligne. #9464 (tavplubix) - Correction de mutations avec des parties écrites avec activé
insert_quorum
. #9463 (alésapine) - Correction de la course de données à la destruction de
Poco::HTTPServer
. Cela peut se produire lorsque le serveur est démarré et immédiatement arrêté. #9468 (Anton Popov) - Correction d'un bug dans lequel un message d'erreur trompeur a été affiché lors de l'exécution
SHOW CREATE TABLE a_table_that_does_not_exist
. #8899 (achulkov2) - Fixe
Parameters are out of bound
exception dans de rares cas où nous avons une constante dans leSELECT
clause quand nous avons unORDER BY
et unLIMIT
clause. #8892 (Guillaume Tassery) - Fix finalisation des mutations, quand déjà fait mutation peut avoir le statut
is_done=0
. #9217 (alésapine) - Empêcher l'exécution de
ALTER ADD INDEX
pour les tables MergeTree avec une ancienne syntaxe, car cela ne fonctionne pas. #8822 (Mikhail Korotov) - Pendant le démarrage du serveur, n'ACCÉDEZ PAS à la table, qui
LIVE VIEW
dépend de, donc le serveur sera en mesure de démarrer. Également supprimerLIVE VIEW
dépendances lors du détachementLIVE VIEW
.LIVE VIEW
est une fonctionnalité expérimentale. #8824 (tavplubix) - Correction possible segfault dans
MergeTreeRangeReader
, lors de l'exécutionPREWHERE
. #9106 (Anton Popov) - Correction d'éventuelles sommes de contrôle non appariées avec la colonne TTL. #9451 (Anton Popov)
- Correction d'un bug lorsque les pièces n'étaient pas déplacées en arrière-plan par les règles TTL dans le cas où il n'y avait qu'un seul volume. #8672 (Vladimir Chebotarev)
- Correction du problème
Method createColumn() is not implemented for data type Set
. Cela corrige #7799. #8674 (alexeï-milovidov) - Maintenant, nous allons essayer de finaliser les mutations plus fréquemment. #9427 (alésapine)
- Fixer
intDiv
par moins une constante #9351 (hcz) - Correction d'une condition de course possible dans
BlockIO
. #9356 (Nikolai Kochetov) - Correction d'un bug menant à la résiliation du serveur lorsque vous essayez d'utiliser / drop
Kafka
tableau créé avec de mauvais paramètres. #9513 (filimonov) - Ajout d'une solution de contournement si le système d'exploitation renvoie un résultat erroné pour
timer_create
fonction. #8837 (alexeï-milovidov) - Correction d'une erreur dans l'utilisation de
min_marks_for_seek
paramètre. Correction du message d'erreur lorsqu'il n'y a pas de clé de sharding dans la table distribuée et que nous essayons d'ignorer les fragments inutilisés. #8908 (Azat Khuzhin)
Amélioration
- Mettre
ALTER MODIFY/DROP
requêtes au-dessus des mutations pourReplicatedMergeTree*
les moteurs de la famille. MaintenantALTERS
bloque uniquement à l'étape de mise à jour des métadonnées, et ne bloque pas après cela. #8701 (alésapine) - Ajouter la possibilité de réécrire CROSS aux jointures internes avec
WHERE
section contenant des noms Non qialifiés. #9512 (Artem Zuikov) - Faire
SHOW TABLES
etSHOW DATABASES
les requêtes prennent en charge leWHERE
les expressions et lesFROM
/IN
#9076 (sundyli) - Ajout d'un paramètre
deduplicate_blocks_in_dependent_materialized_views
. #9070 (urykhy) - Après des changements récents Le client MySQL a commencé à imprimer des chaînes binaires en hexadécimal les rendant ainsi non lisibles (#9032). La solution de contournement dans ClickHouse est de marquer les colonnes de chaîne comme UTF-8, ce qui n'est pas toujours le cas, mais généralement le cas. #9079 (Yuriy Baranov)
- Ajout du support des clés String et FixedString pour
sumMap
#8903 (Baudouin Giard) - Clés de chaîne de soutien dans les cartes SummingMergeTree #8933 (Baudouin Giard)
- Signal terminaison du thread au pool de threads même si le thread a lancé une exception #8736 (Ding Xiang Fei)
- Permettent de mettre en
query_id
dansclickhouse-benchmark
#9416 (Anton Popov) - N'autorisez pas les expressions étranges
ALTER TABLE ... PARTITION partition
requête. Cela répond à l' #7192 #8835 (alexeï-milovidov) - Table
system.table_engines
fournit maintenant des informations sur le support des fonctionnalités (commesupports_ttl
ousupports_sort_order
). #8830 (Max Akhmedov) - Permettre
system.metric_log
par défaut. Il contiendra des lignes avec des valeurs de ProfileEvents, CurrentMetrics collectées avec “collect_interval_milliseconds” intervalle (une seconde par défaut). La table est très petite (généralement par ordre de mégaoctets) et la collecte de ces données par défaut est raisonnable. #9225 (alexeï-milovidov) - Initialize query profiler for all threads in a group, e.g. it allows to fully profile insert-queries. Fixes #6964 #8874 (Ivan)
- Maintenant temporaire
LIVE VIEW
est créé parCREATE LIVE VIEW name WITH TIMEOUT [42] ...
plutôtCREATE TEMPORARY LIVE VIEW ...
parce que la syntaxe précédente n'était pas conforme àCREATE TEMPORARY TABLE ...
#9131 (tavplubix) - Ajouter text_log.paramètre de configuration de niveau pour limiter les entrées
system.text_log
table #8809 (Azat Khuzhin) - Permettre de mettre la partie téléchargée sur un disque / volume selon les règles TTL #8598 (Vladimir Chebotarev)
- Pour les dictionnaires MySQL externes, autorisez à mutualiser le pool de connexions MySQL pour “share” parmi les dictionnaires. Cette option réduit considérablement le nombre de connexions aux serveurs MySQL. #9409 (Clément Rodriguez)
- Afficher le temps d'exécution de la requête le plus proche pour les quantiles dans
clickhouse-benchmark
sortie au lieu de valeurs interpolées. Il est préférable d'afficher les valeurs qui correspondent à l'exécution de certaines requêtes. #8712 (alexeï-milovidov) - Possibilité d'ajouter une clé et un horodatage pour le message lors de l'insertion de données dans Kafka. Fixer #7198 #8969 (filimonov)
- Si le serveur est exécuté à partir du terminal, mettez en surbrillance le numéro de thread, l'id de requête et la priorité du journal par couleurs. Ceci permet d'améliorer la lisibilité des messages de journal corrélés pour les développeurs. #8961 (alexeï-milovidov)
- Meilleur message d'exception lors du chargement des tables pour
Ordinary
la base de données. #9527 (alexeï-milovidov) - Mettre
arraySlice
pour les tableaux avec des états de fonction d'agrégat. Cela corrige #9388 #9391 (alexeï-milovidov) - Autoriser les fonctions constantes et les tableaux constants à utiliser sur le côté droit de L'opérateur IN. #8813 (Anton Popov)
- Si l'exception zookeeper s'est produite lors de la récupération des données du système.les répliques, l'afficher dans une colonne séparée. Cela met en œuvre #9137 #9138 (alexeï-milovidov)
- Supprimer atomiquement les parties de données MergeTree sur destroy. #8402 (Vladimir Chebotarev)
- Prise en charge de la sécurité au niveau des lignes pour les tables distribuées. #8926 (Ivan)
- Now we recognize suffix (like KB, KiB…) in settings values. #8072 (Mikhail Korotov)
- Empêchez la mémoire lors de la construction du résultat d'une jointure importante. #8637 (Artem Zuikov)
- Ajout de noms de clusters aux suggestions en mode interactif dans
clickhouse-client
. #8709 (alexeï-milovidov) - Initialize query profiler for all threads in a group, e.g. it allows to fully profile insert-queries #8820 (Ivan)
- Ajout de la colonne
exception_code
danssystem.query_log
table. #8770 (Mikhail Korotov) - Serveur de compatibilité MySQL activé sur le port
9004
par défaut dans le fichier de configuration du serveur. Fixe génération de mot de passe commande dans l'exemple de configuration. #8771 (Yuriy Baranov) - Empêcher l'abandon à l'arrêt si le système de fichiers est en lecture seule. Cela corrige #9094 #9100 (alexeï-milovidov)
- Meilleur message d'exception lorsque la longueur est requise dans la requête HTTP POST. #9453 (alexeï-milovidov)
- Ajouter
_path
et_file
les colonnes virtuelles àHDFS
etFile
les moteurs et leshdfs
etfile
les fonctions de table #8489 (Olga Khvostikova) - Correction d'erreur
Cannot find column
lors de l'insertion dansMATERIALIZED VIEW
dans le cas où une nouvelle colonne a été ajoutée à la table interne de la vue. #8766 #8788 (vzakaznikov) #8788 #8806 (Nikolai Kochetov) #8803 (Nikolai Kochetov) - Correction de la progression sur le protocole client-serveur natif, en envoyant la progression après la mise à jour finale (comme les journaux). Cela peut être pertinent uniquement pour certains outils tiers qui utilisent le protocole natif. #9495 (Azat Khuzhin)
- Ajouter une métrique système de suivi du nombre de connexions client à L'aide du protocole MySQL (#9013). #9015 (Eugene Klimov)
- A partir de Maintenant, les réponses HTTP auront
X-ClickHouse-Timezone
en-tête défini sur la même valeur de fuseau horaire queSELECT timezone()
serait-rapport. #9493 (Denis Glazachev)
Amélioration Des Performances
- Améliorer les performances de l'analyse de l'indice DANS #9261 (Anton Popov)
- Code plus simple et plus efficace dans les fonctions logiques + nettoyage de code. Un suivi à #8718 #8728 (Alexander Kazakov)
- Amélioration globale de la performance (de l'ordre de 5%..200% pour les requêtes affectées) en assurant un aliasing encore plus strict avec les fonctionnalités c++20. #9304 (Amos Oiseau)
- Aliasing plus strict pour les boucles internes des fonctions de comparaison. #9327 (alexeï-milovidov)
- Aliasing plus strict pour les boucles internes des fonctions arithmétiques. #9325 (alexeï-milovidov)
- Une implémentation ~3 fois plus rapide pour ColumnVector::replicate (), via laquelle ColumnConst:: convertToFullColumn () est implémentée. Sera également utile dans les tests lors de la matérialisation des constantes. #9293 (Alexander Kazakov)
- Une autre amélioration mineure des performances à
ColumnVector::replicate()
(cela accélère lematerialize
fonction et des fonctions d'ordre supérieur) une amélioration encore plus #9293 #9442 (Alexander Kazakov) - Amélioration des performances de
stochasticLinearRegression
fonction d'agrégation. Ce patch est fourni par Intel. #8652 (alexeï-milovidov) - Améliorer les performances de
reinterpretAsFixedString
fonction. #9342 (alexeï-milovidov) - N'envoyez pas de blocs au client pour
Null
format dans le pipeline de processeurs. #8797 (Nikolai Kochetov) #8767 (Alexander Kuzmenkov)
Construction / Test / Amélioration De L'Emballage
- La gestion des exceptions fonctionne maintenant correctement sur le sous-système Windows Pour Linux. Tu vois https://github.com/ClickHouse-Extras/libunwind/pull/3 cela corrige #6480 #9564 (sobolevsv)
- Remplacer
readline
avecreplxx
interactif, l'édition en ligne enclickhouse-client
#8416 (Ivan) - Meilleur temps de construction et moins d'instanciations de modèle dans FunctionsComparison. #9324 (alexeï-milovidov)
- Intégration ajoutée avec
clang-tidy
in CI. Voir aussi #6044 #9566 (alexeï-milovidov) - Maintenant, nous lions ClickHouse dans CI en utilisant
lld
même pourgcc
. #9049 (alésapine) - Permet de randomiser la planification des threads et d'insérer des problèmes lorsque
THREAD_FUZZER_*
variables d'environnement sont définies. Cela aide les tests. #9459 (alexeï-milovidov) - Activer les sockets sécurisés dans les tests sans état #9288 (tavplubix)
- Rendre SPLIT_SHARED_LIBRARIES = OFF plus robuste #9156 (Azat Khuzhin)
- Faire “performance_introspection_and_logging” test fiable au serveur aléatoire bloqué. Cela peut se produire dans L'environnement CI. Voir aussi #9515 #9528 (alexeï-milovidov)
- Valider XML dans la vérification de style. #9550 (alexeï-milovidov)
- Condition de course fixe dans l'essai
00738_lock_for_inner_table
. Ce test reposait sur le sommeil. #9555 (alexeï-milovidov) - Supprimer les tests de performance de type
once
. Ceci est nécessaire pour exécuter tous les tests de performance en mode de comparaison statistique (plus fiable). #9557 (alexeï-milovidov) - Ajout d'un test de performance pour les fonctions arithmétiques. #9326 (alexeï-milovidov)
- Ajouté test de performance pour
sumMap
etsumMapWithOverflow
les fonctions d'agrégation. Pour le suivi de la #8933 #8947 (alexeï-milovidov) - Assurez le style des codes D'erreur en vérifiant le style. #9370 (alexeï-milovidov)
- Ajouter un script pour l'historique des tests. #8796 (alésapine)
- Ajouter un avertissement GCC
-Wsuggest-override
pour localiser et réparer tous les endroits oùoverride
mot-clé doit être utilisé. #8760 (kreuzerkrieg) - Ignorer le symbole faible sous Mac OS X car il doit être défini #9538 (Utilisateur supprimé)
- Normaliser le temps d'exécution de certaines requêtes dans les tests de performance. Ceci est fait en préparation pour exécuter tous les tests de performance en mode comparaison. #9565 (alexeï-milovidov)
- Correction de certains tests pour prendre en charge pytest avec des tests de requête #9062 (Ivan)
- Activez SSL dans build avec MSan, afin que le serveur n'échoue pas au démarrage lors de l'exécution de tests sans état #9531 (tavplubix)
- Correction de la substitution de base de données dans les résultats des tests #9384 (Ilya Yatsishin)
- Construire des correctifs pour diverses plates-formes #9381 (proller) #8755 (proller) #8631 (proller)
- Ajout de la section disques à l'image Docker test stateless-with-coverage #9213 (Pavel Kovalenko)
- Débarrassez-vous des fichiers in-source-tree lors de la construction avec GRPC #9588 (Amos Oiseau)
- Temps de construction légèrement plus rapide en supprimant SessionCleaner du contexte. Rendre le code de SessionCleaner plus simple. #9232 (alexeï-milovidov)
- Mise à jour de la vérification des requêtes suspendues dans le script clickhouse-test #8858 (Alexander Kazakov)
- Suppression de certains fichiers inutiles du référentiel. #8843 (alexeï-milovidov)
- Changement de type de math perftests de
once
deloop
. #8783 (Nikolai Kochetov) - Ajouter une image docker qui permet de créer un rapport HTML interactif du navigateur de code pour notre base de code. #8781 (alésapine) Voir Navigateur De Code Woboq
- Supprimer certains échecs de test sous MSan. #8780 (Alexander Kuzmenkov)
- SpeedUp “exception while insert” test. Ce test expire souvent dans la construction debug-with-coverage. #8711 (alexeï-milovidov)
- Mettre
libcxx
etlibcxxabi
maîtriser. En préparation à #9304 #9308 (alexeï-milovidov) - Correction du test flacky
00910_zookeeper_test_alter_compression_codecs
. #9525 (alexeï-milovidov) - Nettoyer les drapeaux de l'éditeur de liens dupliqués. Assurez-vous que l'éditeur de liens ne pas rechercher un symbole inattendu. #9433 (Amos Oiseau)
- Ajouter
clickhouse-odbc
pilote dans les images de test. Cela permet de tester l'interaction de ClickHouse avec ClickHouse via son propre pilote ODBC. #9348 (filimonov) - Correction de plusieurs bugs dans les tests unitaires. #9047 (alésapine)
- Permettre
-Wmissing-include-dirs
Avertissement GCC pour éliminer toutes les inclusions non existantes-principalement à la suite D'erreurs de script CMake #8704 (kreuzerkrieg) - Décrivez les raisons si query profiler ne peut pas fonctionner. C'est prévu pour #9049 #9144 (alexeï-milovidov)
- Mettre à jour OpenSSL vers le maître en amont. Correction du problème lorsque les connexions TLS peuvent échouer avec le message
OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
etSSL Exception: error:2400006E:random number generator::error retrieving entropy
. Le problème était présent dans la version 20.1. #8956 (alexeï-milovidov) - Mettre à jour Dockerfile pour le serveur #8893 (Ilya Mazaev)
- Corrections mineures dans le script build-gcc-from-sources #8774 (Michael Nacharov)
- Remplacer
numbers
dezeros
dans perftests oùnumber
la colonne n'est pas utilisée. Cela conduira à des résultats de test plus propres. #9600 (Nikolai Kochetov) - Correction d'un problème de débordement de pile lors de l'utilisation de initializer_list dans les constructeurs de colonnes. #9367 (Utilisateur supprimé)
- Mise à niveau librdkafka à v1. 3. 0. Activer groupé
rdkafka
etgsasl
bibliothèques sous Mac OS X. #9000 (Andrew Onyshchuk) - correction de construction sur GCC 9.2.0 #9306 (vxider)
Clickhouse version v20. 1
Clickhouse version v20. 1. 8. 41, 2020-03-20
Bug Fix
- Correction possible permanente
Cannot schedule a task
erreur (due à une exception non gérée dansParallelAggregatingBlockInputStream::Handler::onFinish/onFinishThread
). Cela corrige #6833. #9154 (Azat Khuzhin) - Correction de la consommation excessive de mémoire dans
ALTER
les requêtes (mutations). Cela corrige #9533 et #9670. #9754 (alésapine) - Correction d'un bug dans backquoting dans les dictionnaires externes DDL. Cela corrige #9619. #9734 (alésapine)
Clickhouse version v20. 1. 7. 38, 2020-03-18
Bug Fix
- Correction de noms de fonctions internes incorrects pour
sumKahan
etsumWithOverflow
. Je mène à l'exception en utilisant ces fonctions dans les requêtes distantes. #9636 (Azat Khuzhin). Ce problème était dans toutes les versions de ClickHouse. - Permettre
ALTER ON CLUSTER
deDistributed
tables avec réplication interne. Cela corrige #3268. #9617 (shinoi2). Ce problème était dans toutes les versions de ClickHouse. - Corriger les exceptions possibles
Size of filter doesn't match size of column
etInvalid number of rows in Chunk
dansMergeTreeRangeReader
. Ils pouvaient apparaître lors de l'exécutionPREWHERE
dans certains cas. Fixer #9132. #9612 (Anton Popov) - Correction du problème: le fuseau horaire n'a pas été conservé si vous écrivez une expression arithmétique simple comme
time + 1
(contrairement à une expression commetime + INTERVAL 1 SECOND
). Cela corrige #5743. #9323 (alexeï-milovidov). Ce problème était dans toutes les versions de ClickHouse. - Maintenant il n'est pas possible de créer ou d'ajouter des colonnes avec des alias cycliques simples comme
a DEFAULT b, b DEFAULT a
. #9603 (alésapine) - Correction du problème lorsque le remplissage à la fin de la valeur codée base64 peut être mal formé. Mettre à jour la bibliothèque base64. Cela corrige #9491, proche #9492 #9500 (alexeï-milovidov)
- Correction de la course de données à la destruction de
Poco::HTTPServer
. Cela peut se produire lorsque le serveur est démarré et immédiatement arrêté. #9468 (Anton Popov) - Correction plantage possible/mauvais nombre de lignes dans
LIMIT n WITH TIES
quand il y a beaucoup de lignes égales à n'ème ligne. #9464 (tavplubix) - Correction d'éventuelles sommes de contrôle non appariées avec la colonne TTL. #9451 (Anton Popov)
- Correction de plantage lorsqu'un utilisateur essaie d'
ALTER MODIFY SETTING
pour Ancien formatéMergeTree
famille de moteurs de table. #9435 (alésapine) - Maintenant, nous allons essayer de finaliser les mutations plus fréquemment. #9427 (alésapine)
- Correction du protocole de réplication incompatibilité introduit dans #8598. #9412 (alésapine)
- Fix not (has ()) pour l'index bloom_filter des types de tableau. #9407 (achimbab)
- Correction du comportement de
match
etextract
fonctions lorsque haystack a zéro octets. Le comportement était mauvais quand la botte de foin était constante. Cela corrige #9160 #9163 (alexeï-milovidov) #9345 (alexeï-milovidov)
Construction / Test / Amélioration De L'Emballage
- La gestion des exceptions fonctionne maintenant correctement sur le sous-système Windows Pour Linux. Tu vois https://github.com/ClickHouse-Extras/libunwind/pull/3 cela corrige #6480 #9564 (sobolevsv)
Clickhouse version v20. 1. 6. 30, 2020-03-05
Bug Fix
- Correction de l'incompatibilité des données lorsqu'elles sont compressées avec
T64
codec. #9039 (abyss7) - Correction de l'ordre des plages lors de la lecture de la table MergeTree dans un thread. Fixer #8964. #9050 (CurtizJ)
- Correction possible segfault dans
MergeTreeRangeReader
, lors de l'exécutionPREWHERE
. Fixer #9064. #9106 (CurtizJ) - Fixer
reinterpretAsFixedString
retournerFixedString
plutôtString
. #9052 (oandrew) - Fixer
joinGet
avec les types de retour nullable. Fixer #8919 #9014 (amosbird) - Correction du test fuzz et du comportement incorrect des fonctions bitTestAll/bitTestAny. #9143 (alexey-milovidov)
- Corrigez le comportement des fonctions match et extract lorsque haystack a zéro octet. Le comportement était mauvais quand la botte de foin était constante. Fixer #9160 #9163 (alexey-milovidov)
- Exécution fixe de prédicats inversés lorsque l'index fonctionnel non strictement monotinique est utilisé. Fixer #9034 #9223 (Akazz)
- Permettre à réécrire
CROSS
deINNER JOIN
si il y a[NOT] LIKE
opérateurWHERE
section. Fixer #9191 #9229 (4ertus2) - Autoriser la(Les) première (s) colonne (s) dans une table avec Log engine à être un alias. #9231 (abyss7)
- Autoriser la virgule rejoindre
IN()
à l'intérieur. Fixer #7314. #9251 (4ertus2) - Améliorer
ALTER MODIFY/ADD
les requêtes de la logique. Maintenant vous ne pouvez pasADD
colonne sans type,MODIFY
l'expression par défaut ne change pas le type de colonne etMODIFY
type ne perd pas la valeur d'expression par défaut. Fixer #8669. #9227 (alesapin) - Fix finalisation des mutations, quand déjà fait mutation peut avoir le statut is_done = 0. #9217 (alesapin)
- Soutien “Processors” pipeline pour le système.nombres et système.numbers_mt. Cela corrige également le bug lorsque
max_execution_time
n'est pas respectée. #7796 (KochetovNicolai) - Correction d'un mauvais comptage de
DictCacheKeysRequestedFound
métrique. #9411 (nikitamikhaylov) - Ajout d'une vérification de la stratégie de stockage dans
ATTACH PARTITION FROM
,REPLACE PARTITION
,MOVE TO TABLE
ce qui pourrait autrement rendre les données de la partie inaccessibles après le redémarrage et empêcher ClickHouse de démarrer. #9383 (excitoon) - Rapport UBSan fixe dans
MergeTreeIndexSet
. Cela corrige #9250 #9365 (alexey-milovidov) - Correction possible datarace dans BlockIO. #9356 (KochetovNicolai)
- Soutien pour
UInt64
nombres qui ne correspondent pas à Int64 dans les fonctions liées à JSON. MettreSIMDJSON
maîtriser. Cela corrige #9209 #9344 (alexey-milovidov) - Résoudre le problème lorsque la quantité d'espace libre n'est pas calculée correctement si le répertoire de données est monté sur un appareil séparé. Pour le disque par défaut calculer l'espace libre à partir du sous-répertoire de données. Cela corrige #7441 #9257 (millb)
- Corrigez le problème lorsque les connexions TLS peuvent échouer avec le message
OpenSSL SSL_read: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error and SSL Exception: error:2400006E:random number generator::error retrieving entropy.
Mettre à jour OpenSSL vers le maître en amont. #8956 (alexey-milovidov) - Lors de l'exécution de
CREATE
requête, plier les expressions constantes dans les arguments du moteur de stockage. Remplacez le nom de base de données vide par la base de données actuelle. Fixer #6508, #3492. Corrigez également la vérification de l'adresse locale dans ClickHouseDictionarySource. #9262 (tabplubix) - Fixer erreur de segmentation dans
StorageMerge
, ce qui peut arriver lors de la lecture de StorageFile. #9387 (tabplubix) - Empêcher la perte de données dans
Kafka
dans de rares cas, lorsque l'exception se produit après la lecture du suffixe mais avant la validation. Fixer #9378. Concerner: #7175 #9507 (filimonov) - Correction d'un bug menant à la résiliation du serveur lorsque vous essayez d'utiliser / drop
Kafka
tableau créé avec de mauvais paramètres. Fixer #9494. Incorporer #9507. #9513 (filimonov)
Nouveauté
- Ajouter
deduplicate_blocks_in_dependent_materialized_views
option pour contrôler le comportement des insertions idempotent dans des tables avec des vues matérialisées. Cette nouvelle fonctionnalité a été ajoutée à la version de bugfix par une demande spéciale D'Altinity. #9070 (urykhy)
Clickhouse version v20. 1. 2. 4, 2020-01-22
Modification Incompatible En Arrière
- Effectuer le réglage
merge_tree_uniform_read_distribution
obsolète. Le serveur reconnaît toujours ce paramètre, mais il n'a pas d'effet. #8308 (alexeï-milovidov) - Type de retour modifié de la fonction
greatCircleDistance
deFloat32
parce que maintenant, le résultat du calcul estFloat32
. #7993 (alexeï-milovidov) - Maintenant, il est prévu que les paramètres de requête sont représentés dans “escaped” format. Par exemple, pour passer de la chaîne
a<tab>b
vous devez écrirea\tb
oua\<tab>b
et, respectivement,,a%5Ctb
oua%5C%09b
dans L'URL. Ceci est nécessaire pour ajouter la possibilité de passer NULL as\N
. Cela corrige #7488. #8517 (alexeï-milovidov) - Permettre
use_minimalistic_part_header_in_zookeeper
réglage pourReplicatedMergeTree
par défaut. Cela permettra de réduire considérablement la quantité de données stockées dans ZooKeeper. Ce paramètre est pris en charge depuis la version 19.1 et nous l'utilisons déjà en production dans plusieurs services sans aucun problème depuis plus d'une demi-année. Désactivez ce paramètre si vous avez la possibilité de passer à des versions antérieures à 19.1. #6850 (alexeï-milovidov) - Les indices de saut de données sont prêts pour la production et activés par défaut. Paramètre
allow_experimental_data_skipping_indices
,allow_experimental_cross_to_join_conversion
etallow_experimental_multiple_joins_emulation
sont maintenant obsolètes et ne rien faire. #7974 (alexeï-milovidov) - Ajouter de nouveaux
ANY JOIN
logique pourStorageJoin
compatible avecJOIN
opération. Pour mettre à niveau sans changement de comportement vous devez ajouterSETTINGS any_join_distinct_right_table_keys = 1
pour engine Join tables metadata ou recréer ces tables après la mise à niveau. #8400 (Artem Zuikov) - Exiger que le serveur soit redémarré pour appliquer les modifications dans la configuration de journalisation. Il s'agit d'une solution de contournement temporaire pour éviter le bogue où le serveur se connecte à un fichier journal supprimé (voir #8696). #8707 (Alexander Kuzmenkov)
Nouveauté
- Ajout d'informations sur les chemins d'accès
system.merges
. #8043 (Vladimir Chebotarev) - Ajouter la possibilité d'exécuter
SYSTEM RELOAD DICTIONARY
requête enON CLUSTER
mode. #8288 (Guillaume Tassery) - Ajouter la possibilité d'exécuter
CREATE DICTIONARY
les requêtes enON CLUSTER
mode. #8163 (alésapine) - Maintenant, le profil de l'utilisateur dans
users.xml
peut hériter de plusieurs profils. #8343 (Mikhail f. Shiryaev) - Ajouter
system.stack_trace
table qui permet de regarder les traces de pile de tous les threads du serveur. Ceci est utile pour les développeurs d'introspecter l'état du serveur. Cela corrige #7576. #8344 (alexeï-milovidov) - Ajouter
DateTime64
type de données configurables sous-précision de seconde. #7170 (Vasily Nemkov) - Ajouter une fonction de table
clusterAllReplicas
ce qui permet d'interroger tous les nœuds dans le cluster. #8493 (kiran sunkari) - Ajouter une fonction d'agrégat
categoricalInformationValue
qui calcule la valeur d'information d'une fonction discrète. #8117 (hcz) - Accélérer l'analyse des fichiers de données dans
CSV
,TSV
etJSONEachRow
formater en le faisant en parallèle. #7780 (Alexander Kuzmenkov) - Ajouter une fonction
bankerRound
qui effectue l'arrondi. #8112 (hcz) - Soutenir plus de langues dans le dictionnaire intégré pour les noms de région: ‘ru’, ‘en’, ‘ua’, ‘uk’, ‘by’, ‘kz’, ‘tr’, ‘de’, ‘uz’, ‘lv’, ‘lt’, ‘et’, ‘pt’, ‘he’, ‘vi’. #8189 (alexeï-milovidov)
- Améliorer l'uniformité de
ANY JOIN
logique. Maintenantt1 ANY LEFT JOIN t2
égalt2 ANY RIGHT JOIN t1
. #7665 (Artem Zuikov) - Ajouter un paramètre
any_join_distinct_right_table_keys
ce qui permet un vieux comportement pourANY INNER JOIN
. #7665 (Artem Zuikov) - Ajouter de nouveaux
SEMI
etANTI JOIN
. VieuxANY INNER JOIN
comportement maintenant disponible enSEMI LEFT JOIN
. #7665 (Artem Zuikov) - Ajouter
Distributed
format pourFile
moteur etfile
fonction de table qui permet de lire à partir.bin
fichiers générés par des insertions asynchrones dansDistributed
table. #8535 (Nikolai Kochetov) - Ajouter un argument de colonne de réinitialisation facultatif pour
runningAccumulate
ce qui permet de réinitialiser les résultats d'agrégation pour chaque nouvelle valeur de clé. #8326 (Sergey Kononenko) - Ajouter la possibilité d'utiliser ClickHouse comme point de terminaison Prometheus. #7900 (vdimir)
- Ajouter une section
<remote_url_allow_hosts>
dansconfig.xml
qui restreint les hôtes autorisés pour les moteurs de table distants et les fonctions de tableURL
,S3
,HDFS
. #7154 (Mikhail Korotov) - Ajout de la fonction
greatCircleAngle
qui calcule la distance sur une sphère en degrés. #8105 (alexeï-milovidov) - Rayon de la Terre modifié pour être cohérent avec la bibliothèque H3. #8105 (alexeï-milovidov)
- Ajouter
JSONCompactEachRow
etJSONCompactEachRowWithNamesAndTypes
les formats d'entrée et de sortie. #7841 (Mikhail Korotov) - Ajout d'une fonctionnalité pour les moteurs de table liés aux fichiers et les fonctions de table (
File
,S3
,URL
,HDFS
) qui permet de lire et d'écriregzip
fichiers basés sur un paramètre de moteur supplémentaire ou une extension de fichier. #7840 (Andrey Bodrov) - Ajouté le
randomASCII(length)
fonction, générant une chaîne avec un ensemble aléatoire de ASCII caractères imprimables. #8401 (Baïonnette) - Ajout de la fonction
JSONExtractArrayRaw
qui renvoie un tableau sur des éléments de tableau JSON non analysés deJSON
chaîne. #8081 (Oleg Matrokhin) - Ajouter
arrayZip
fonction qui permet de combiner plusieurs tableaux de longueurs égales dans un tableau de n-uplets. #8149 (L'Hiver Zhang) - Ajouter la possibilité de déplacer des données entre les disques selon configuré
TTL
-expressions pour*MergeTree
famille de moteurs de table. #8140 (Vladimir Chebotarev) - Ajout d'une nouvelle fonction d'agrégat
avgWeighted
qui permet de calculer la moyenne pondérée. #7898 (Andrey Bodrov) - Maintenant, l'analyse parallèle est activée par défaut pour
TSV
,TSKV
,CSV
etJSONEachRow
format. #7894 (Nikita Mikhaylov) - Ajouter plusieurs fonctions de géo
H3
bibliothèque:h3GetResolution
,h3EdgeAngle
,h3EdgeLength
,h3IsValid
eth3kRing
. #8034 (Konstantin Malanchev) - Ajout du support pour brotli (
br
) compression dans les stockages liés aux fichiers et les fonctions de table. Cela corrige #8156. #8526 (alexeï-milovidov) - Ajouter
groupBit*
fonctions pour l'SimpleAggregationFunction
type. #8485 (Guillaume Tassery)
Bug Fix
- Correction du renommage des tables avec
Distributed
moteur. Correction problème #7868. #8306 (tavplubix) - Maintenant dictionnaires de soutien
EXPRESSION
pour les attributs dans une chaîne arbitraire en dialecte SQL non-ClickHouse. #8098 (alésapine) - Réparation de
INSERT SELECT FROM mysql(...)
requête. Cela corrige #8070 et #7960. #8234 (tavplubix) - Correction d'erreur “Mismatch column sizes” lors de l'insertion par défaut
Tuple
deJSONEachRow
. Cela corrige #5653. #8606 (tavplubix) - Maintenant, une exception sera levée en cas d'utilisation
WITH TIES
parallèlementLIMIT BY
. Ajoutez également la possibilité d'utiliserTOP
avecLIMIT BY
. Cela corrige #7472. #7637 (Nikita Mikhaylov) - Correction de la dépendance unintendent à partir de la nouvelle version de glibc dans
clickhouse-odbc-bridge
binaire. #8046 (Amos Oiseau) - Correction d'un bug dans la fonction de contrôle de
*MergeTree
les moteurs de la famille. Maintenant, il n'échoue pas dans le cas où nous avons une quantité égale de lignes dans le dernier granule et la dernière marque (non finale). #8047 (alésapine) - Fixer l'insertion dans
Enum*
les colonnes aprèsALTER
requête, lorsque le type numérique sous-jacent est égal au type spécifié par la table. Cela corrige #7836. #7908 (Anton Popov) - Négatif non constant autorisé “size” argument pour la fonction
substring
. Il n'a pas été autorisé par erreur. Cela corrige #4832. #7703 (alexeï-milovidov) - Correction d'un bogue d'analyse lorsque le nombre d'arguments transmis est erroné
(O|J)DBC
tableau moteur. #7709 (alésapine) - Utilisation du nom de commande du processus clickhouse en cours d'exécution lors de l'envoi de journaux à syslog. Dans les versions précédentes, la chaîne vide était utilisée à la place du nom de la commande. #8460 (Michael Nacharov)
- Correction de la vérification des hôtes autorisés pour
localhost
. Ce PR corrige la solution fournie dans #8241. #8342 (Vitaly Baranov) - Correction plantage rare dans
argMin
etargMax
fonctions pour les arguments de chaîne longue, lorsque result est utilisé dansrunningAccumulate
fonction. Cela corrige #8325 #8341 (dinosaure) - Correction de la surcommission de mémoire pour les tables avec
Buffer
moteur. #8345 (Azat Khuzhin) - Correction d'un bug potentiel dans les fonctions qui peuvent prendre
NULL
comme l'un des arguments et retourner non-NULL. #8196 (alexeï-milovidov) - Meilleurs calculs de métriques dans le pool de threads pour les processus
MergeTree
table des moteurs. #8194 (Vladimir Chebotarev) - Fonction Fix
IN
à l'intérieur deWHERE
instruction lorsque le filtre de table de niveau ligne est présent. Fixer #6687 #8357 (Ivan) - Maintenant, une exception est levée si la valeur intégrale n'est pas complètement analysée pour les valeurs des paramètres. #7678 (Mikhail Korotov)
- Fix exception lorsque la fonction est utilisée dans la requête distribuée table avec plus de deux fragments. #8164 (小路)
- Maintenant, bloom filter peut gérer des tableaux de longueur nulle et n'effectue pas de calculs redondants. #8242 (achimbab)
- Correction de la vérification si un hôte client est autorisé en faisant correspondre l'hôte client à
host_regexp
spécifié dansusers.xml
. #8241 (Vitaly Baranov) - Relax colonne ambiguë vérifier qui conduit à des faux positifs dans plusieurs
JOIN ON
section. #8385 (Artem Zuikov) - Correction possible plantage du serveur (
std::terminate
) lorsque le serveur ne peut pas envoyer ou écrire des donnéesJSON
ouXML
format avec les valeurs deString
type de données (qui nécessitentUTF-8
validation) ou lors de la compression des données de résultat avec l'algorithme Brotli ou dans certains autres cas rares. Cela corrige #7603 #8384 (alexeï-milovidov) - Correction de la condition de course dans
StorageDistributedDirectoryMonitor
trouvé par CI. Cela corrige #8364. #8383 (Nikolai Kochetov) - Maintenant fond fusionne dans
*MergeTree
la famille des moteurs de table préserve l'ordre de volume de la Politique de stockage avec plus de précision. #8549 (Vladimir Chebotarev) - Maintenant moteur de table
Kafka
fonctionne correctement avecNative
format. Cela corrige #6731 #7337 #8003. #8016 (filimonov) - Formats fixes avec des en-têtes (comme
CSVWithNames
) qui lançaient une exception sur EOF pour le moteur de tableKafka
. #8016 (filimonov) - Correction d'un bug avec making set from subquery dans la partie droite de
IN
section. Cela corrige #5767 et #2542. #7755 (Nikita Mikhaylov) - Correction d'un crash possible lors de la lecture à partir du stockage
File
. #7756 (Nikolai Kochetov) - Correction de la lecture des fichiers en
Parquet
format contenant des colonnes de typelist
. #8334 (maxulan) - Correction d'erreur
Not found column
pour les requêtes distribuées avecPREWHERE
condition dépendant de la clé d'échantillonnage simax_parallel_replicas > 1
. #7913 (Nikolai Kochetov) - Correction d'erreur
Not found column
si la requête utiliséePREWHERE
dépendant de l'alias de la table et le jeu de résultats était vide en raison de la condition de clé primaire. #7911 (Nikolai Kochetov) - Type de retour fixe pour les fonctions
rand
etrandConstant
en cas deNullable
argument. Maintenant renvoient toujoursUInt32
et jamaisNullable(UInt32)
. #8204 (Nikolai Kochetov) - Désactivé prédicat-poussoir vers le bas pour
WITH FILL
expression. Cela corrige #7784. #7789 (L'Hiver Zhang) - Fixe incorrect
count()
résultatSummingMergeTree
lorsqueFINAL
la section est utilisée. #3280 #7786 (Nikita Mikhaylov) - Correction d'un résultat incorrect possible pour les fonctions constantes à partir de serveurs distants. C'est arrivé pour les requêtes avec des fonctions comme
version()
,uptime()
, etc. qui renvoie différentes valeurs constantes pour différents serveurs. Cela corrige #7666. #7689 (Nikolai Kochetov) - Correction d'un bug compliqué dans l'optimisation des prédicats push-down qui conduit à de mauvais résultats. Cela résout beaucoup de problèmes sur l'optimisation des prédicats push-down. #8503 (L'Hiver Zhang)
- Correction d'un crash dans l'
CREATE TABLE .. AS dictionary
requête. #8508 (Azat Khuzhin) - Plusieurs améliorations grammaire ClickHouse dans
.g4
fichier. #8294 (taiyang-li) - Correction d'un bug qui conduit à des plantages dans
JOIN
s avec tables avec moteurJoin
. Cela corrige #7556 #8254 #7915 #8100. #8298 (Artem Zuikov) - Corriger les dictionnaires redondants recharger sur
CREATE DATABASE
. #7916 (Azat Khuzhin) - Limiter le nombre maximum de flux pour lire à partir
StorageFile
etStorageHDFS
. Corrections https://github.com/ClickHouse/ClickHouse/issues/7650. #7981 (alésapine) - Correction d'un bug dans
ALTER ... MODIFY ... CODEC
requête, lorsque l'utilisateur spécifie à la fois l'expression par défaut et le codec. Fixer 8593. #8614 (alésapine) - Correction d'une erreur dans la fusion en arrière-plan des colonnes avec
SimpleAggregateFunction(LowCardinality)
type. #8613 (Nikolai Kochetov) - Fonction d'enregistrement de type fixe
toDateTime64
. #8375 (Vasily Nemkov) - Maintenant le serveur ne plante pas
LEFT
ouFULL JOIN
avec et Rejoindre moteur et non pris en chargejoin_use_nulls
paramètre. #8479 (Artem Zuikov) - Maintenant
DROP DICTIONARY IF EXISTS db.dict
la requête ne lance pas d'exception sidb
n'existe pas. #8185 (Vitaly Baranov) - Correction des plantages possibles dans les fonctions de la table (
file
,mysql
,remote
) causés par l'utilisation de la référence à enleverIStorage
objet. Correction d'une analyse incorrecte des colonnes spécifiées lors de l'insertion dans la fonction de table. #7762 (tavplubix) - S'assurer du réseau avant de démarrer
clickhouse-server
. Cela corrige #7507. #8570 (Zhichang Yu) - Correction de la gestion des délais d'attente pour les connexions sécurisées, de sorte que les requêtes ne se bloquent pas indéfiniment. Cela corrige #8126. #8128 (alexeï-milovidov)
- Fixer
clickhouse-copier
conflit redondant entre les travailleurs concurrents. #7816 (Ding Xiang Fei) - Maintenant, les mutations ne sautent pas les parties attachées, même si leur version de mutation était plus grande que la version de mutation actuelle. #7812 (Zhichang Yu) #8250 (alésapine)
- Ignorer les copies redondantes de
*MergeTree
les parties de données après le déplacement vers un autre disque et le redémarrage du serveur. #7810 (Vladimir Chebotarev) - Correction d'un crash dans l'
FULL JOIN
avecLowCardinality
dansJOIN
clé. #8252 (Artem Zuikov) - Interdit d'utiliser le nom de colonne plus d'une fois dans insert query comme
INSERT INTO tbl (x, y, x)
. Cela corrige #5465, #7681. #7685 (alésapine) - Ajout de secours pour la détection du nombre de cœurs de processeur physiques pour les processeurs inconnus (en utilisant le nombre de cœurs de processeur logiques). Cela corrige #5239. #7726 (alexeï-milovidov)
- Fixer
There's no column
erreur pour les colonnes matérialisées et alias. #8210 (Artem Zuikov) - Correction d'un crash sever lorsque
EXISTS
la requête a été utilisé sansTABLE
ouDICTIONARY
qualificatif. Tout commeEXISTS t
. Cela corrige #8172. Ce bug a été introduit dans la version 19.17. #8213 (alexeï-milovidov) - Correction d'un bug rare avec erreur
"Sizes of columns doesn't match"
qui pourraient apparaître lors de l'utilisationSimpleAggregateFunction
colonne. #7790 (Boris Granveaud) - Correction d'un bug où l'utilisateur avec vide
allow_databases
vous avez accès à toutes les bases de données (et même pourallow_dictionaries
). #7793 (DeifyTheGod) - Correction du crash du client lorsque le serveur est déjà déconnecté du client. #8071 (Azat Khuzhin)
- Fixer
ORDER BY
comportement en cas de tri par préfixe de clé primaire et Suffixe de clé non primaire. #7759 (Anton Popov) - Vérifiez si la colonne qualifiée est présente dans le tableau. Cela corrige #6836. #7758 (Artem Zuikov)
- Correction du comportement avec
ALTER MOVE
exécuté immédiatement après la fin de la fusion se déplace superpart De spécifié. Fixer #8103. #8104 (Vladimir Chebotarev) - Correction d'un crash possible du serveur lors de l'utilisation
UNION
avec un nombre différent de colonnes. Fixer #7279. #7929 (Nikolai Kochetov) - Fixer la taille de résultat pour la fonction substring
substr
avec une taille négative. #8589 (Nikolai Kochetov) - Maintenant le serveur n'exécute pas la mutation partielle dans
MergeTree
s'il n'y a pas assez de threads libres dans le pool d'arrière-plan. #8588 (tavplubix) - Correction d'une faute de frappe mineure sur le formatage
UNION ALL
AST. #7999 (litao91) - Correction des résultats incorrects du filtre bloom pour les nombres négatifs. Cela corrige #8317. #8566 (L'Hiver Zhang)
- Dépassement de tampon potentiel fixe en décompression. Un utilisateur malveillant peut transmettre des données compressées fabriquées qui provoqueront une lecture après le tampon. Ce problème a été trouvé par Eldar Zaitov de l'équipe de sécurité de L'information Yandex. #8404 (alexeï-milovidov)
- Correction d'un résultat incorrect en raison du débordement d'entiers dans
arrayIntersect
. #7777 (Nikolai Kochetov) - Maintenant
OPTIMIZE TABLE
query n'attendra pas les répliques hors ligne pour effectuer l'opération. #8314 (javi santana) - Fixe
ALTER TTL
analyseur pourReplicated*MergeTree
table. #8318 (Vladimir Chebotarev) - Correction de la communication entre le serveur et le client, afin que le serveur lise les informations des tables temporaires après l'échec de la requête. #8084 (Azat Khuzhin)
- Fixer
bitmapAnd
erreur de fonction lors de l'intersection d'un bitmap agrégé et d'un bitmap scalaire. #8082 (Yue Huang) - Affiner la définition de
ZXid
selon le Guide du programmeur ZooKeeper qui corrige un bug dansclickhouse-cluster-copier
. #8088 (Ding Xiang Fei) odbc
fonction de table respecte maintenantexternal_table_functions_use_nulls
paramètre. #7506 (Vasily Nemkov)- Correction d'un bug qui conduisait à une course de données rare. #8143 (Alexander Kazakov)
- Maintenant
SYSTEM RELOAD DICTIONARY
recharge complètement un dictionnaire, en ignorantupdate_field
. Cela corrige #7440. #8037 (Vitaly Baranov) - Ajouter la possibilité de vérifier si le dictionnaire existe dans create query. #8032 (alésapine)
- Fixer
Float*
l'analyse enValues
format. Cela corrige #7817. #7870 (tavplubix) - Correction d'un crash lorsque nous ne pouvons pas réserver d'espace dans certaines opérations en arrière-plan de
*MergeTree
famille de moteurs de table. #7873 (Vladimir Chebotarev) - Correction du crash de l'opération de fusion lorsque la table contient
SimpleAggregateFunction(LowCardinality)
colonne. Cela corrige #8515. #8522 (Azat Khuzhin) - Restaurez la prise en charge de toutes les locales ICU et ajoutez la possibilité d'appliquer des collations pour les expressions constantes. Ajoutez également le nom de la langue à
system.collations
table. #8051 (alésapine) - Correction d'un bug lorsque les dictionnaires externes avec zéro durée de vie minimale (
LIFETIME(MIN 0 MAX N)
,LIFETIME(N)
) ne pas mettre à jour en arrière-plan. #7983 (alésapine) - Correction d'un crash lorsque le dictionnaire externe avec la source de ClickHouse a une sous-requête dans la requête. #8351 (Nikolai Kochetov)
- Correction d'une analyse incorrecte de l'extension de fichier dans la table avec le moteur
URL
. Cela corrige #8157. #8419 (Andrey Bodrov) - Fixer
CHECK TABLE
requête pour*MergeTree
les tables sans clé. Fixer #7543. #7979 (alésapine) - De conversion fixe de
Float64
au type MySQL. #8079 (Yuriy Baranov) - Maintenant, si la table n'a pas été complètement abandonnée en raison d'un plantage du serveur, le serveur va essayer de la restaurer et de la charger. #8176 (tavplubix)
- Correction d'un crash dans la fonction de table
file
lors de l'insertion dans le fichier qui n'existe pas. Maintenant, dans ce cas, le fichier sera créé et insérez seraient traités. #8177 (Olga Khvostikova) - Correction de l'impasse rare qui peut arriver quand
trace_log
est activé. #7838 (filimonov) - Ajouter la possibilité de travailler avec différents types en outre
Date
dansRangeHashed
dictionnaire externe créé à partir de la requête DDL. Fixer 7899. #8275 (alésapine) - Correction d'un crash lorsque
now64()
est appelé avec un résultat d'une autre fonction. #8270 (Vasily Nemkov) - Correction d'un bug avec la détection de l'adresse IP du client pour les connexions via le protocole de fil mysql. #7743 (Dmitry Muzyka)
- Correction de la gestion du tableau vide dans
arraySplit
fonction. Cela corrige #7708. #7747 (hcz) - Correction du problème lorsque
pid-file
d'un autre cours d'exécutionclickhouse-server
peut être supprimée. #8487 (Weiqing Xu) - Correction du rechargement du dictionnaire s'il a
invalidate_query
, qui a arrêté les mises à jour et une exception sur les tentatives de mise à jour précédentes. #8029 (alésapine) - Correction d'une erreur dans la fonction
arrayReduce
qui peut conduire à “double free” et erreur dans le combinateur de fonction d'agrégatResample
que peut provoquer la fuite de mémoire. Fonction agrégée ajoutéeaggThrow
. Cette fonction peut être utilisée à des fins de test. #8446 (alexeï-milovidov)
Amélioration
- Amélioration de la journalisation lorsque vous travaillez avec
S3
tableau moteur. #8251 (Grigory Pervakov) - Imprimé message d'aide quand aucun argument n'est passé lors de l'appel
clickhouse-local
. Cela corrige #5335. #8230 (Andrey Nagorny) - Ajouter un paramètre
mutations_sync
ce qui permet d'attendreALTER UPDATE/DELETE
les requêtes de manière synchrone. #8237 (alésapine) - Autoriser à configurer relative
user_files_path
dansconfig.xml
(de la manière similaire àformat_schema_path
). #7632 (hcz) - Ajouter une exception pour les types illégaux pour les fonctions de conversion avec
-OrZero
postfix. #7880 (Andrey Konyaev) - Simplifier le format de l'en-tête de l'envoi des données à un serveur dans une requête distribuée. #8044 (Vitaly Baranov)
Live View
refactoring du moteur de table. #8519 (vzakaznikov)- Ajoutez des vérifications supplémentaires pour les dictionnaires externes créés à partir de requêtes DDL. #8127 (alésapine)
- Correction d'erreur
Column ... already exists
lors de l'utilisationFINAL
etSAMPLE
together, e.g.select count() from table final sample 1/2
. Fixer #5186. #7907 (Nikolai Kochetov) - Table maintenant le premier argument de
joinGet
la fonction peut être tableau identifiant. #7707 (Amos Oiseau) - Autoriser l'utilisation des
MaterializedView
avec les sous-requêtes ci-dessusKafka
table. #8197 (filimonov) - Maintenant, l'arrière-plan se déplace entre les disques, exécutez le pool de threads seprate. #7670 (Vladimir Chebotarev)
SYSTEM RELOAD DICTIONARY
s'exécute maintenant de manière synchrone. #8240 (Vitaly Baranov)- Les traces de pile affichent désormais des adresses physiques (décalages dans le fichier objet) au lieu des adresses de mémoire virtuelle (où le fichier objet a été chargé). Qui permet l'utilisation de
addr2line
lorsque binaire est indépendant de la position et ASLR est actif. Cela corrige #8360. #8387 (alexeï-milovidov) - Appuyer une nouvelle syntaxe pour la sécurité de niveau ligne filtres:
<table name='table_name'>…</table>
. Fixer #5779. #8381 (Ivan) - Maintenant
cityHash
fonction peut travailler avecDecimal
etUUID
type. Fixer #5184. #7693 (Mikhail Korotov) - Suppression de la granularité à index fixe (c'était 1024) des journaux système car elle est obsolète après l'implémentation de la granularité adaptative. #7698 (alexeï-milovidov)
- Serveur de compatibilité MySQL activé lorsque ClickHouse est compilé sans SSL. #7852 (Yuriy Baranov)
- Maintenant, les sommes de contrôle du serveur ont distribué des lots, ce qui donne des erreurs plus verbeuses en cas de données corrompues dans le lot. #7914 (Azat Khuzhin)
- Soutien
DROP DATABASE
,DETACH TABLE
,DROP TABLE
etATTACH TABLE
pourMySQL
moteur de base de données. #8202 (L'Hiver Zhang) - Ajouter l'authentification dans la fonction de table S3 et le moteur de table. #7623 (Vladimir Chebotarev)
- Ajout de vérifier les pièces supplémentaires de
MergeTree
sur différents disques, afin de ne pas permettre de manquer des parties de données sur des disques indéfinis. #8118 (Vladimir Chebotarev) - Activez la prise en charge SSL pour le client et le serveur Mac. #8297 (Ivan)
- Maintenant, ClickHouse peut fonctionner en tant que serveur fédéré MySQL (voir https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html). #7717 (Maxim Fedotov)
clickhouse-client
maintenant seulement activerbracketed-paste
lorsque multiquery est activé et multiline est désactivé. Cette correction (#7757)[https://github.com/ClickHouse/ClickHouse/issues/7757]. #7761 (Amos Oiseau)- Soutien
Array(Decimal)
dansif
fonction. #7721 (Artem Zuikov) - Soutien Décimales
arrayDifference
,arrayCumSum
etarrayCumSumNegative
fonction. #7724 (Artem Zuikov) - Ajouter
lifetime
colonne desystem.dictionaries
table. #6820 #7727 (kekekekule) - Vérification améliorée des pièces existantes sur différents disques pour
*MergeTree
table des moteurs. Adresse #7660. #8440 (Vladimir Chebotarev) - L'intégration avec
AWS SDK
pourS3
interactions qui permet d'utiliser toutes les fonctionnalités S3 hors de la boîte. #8011 (Pavel Kovalenko) - Ajout du support pour les sous-requêtes dans
Live View
table. #7792 (vzakaznikov) - Vérifier à l'aide de
Date
ouDateTime
colonne deTTL
des expressions a été supprimé. #7920 (Vladimir Chebotarev) - Informations sur le disque ajouté
system.detached_parts
table. #7833 (Vladimir Chebotarev) - Maintenant paramètres
max_(table|partition)_size_to_drop
peut être modifié sans redémarrage de l'ordinateur. #7779 (Grigory Pervakov) - Facilité d'utilisation légèrement meilleure des messages d'erreur. Demander à l'utilisateur de ne pas supprimer les lignes ci-dessous
Stack trace:
. #7897 (alexeï-milovidov) - Mieux lire les messages de
Kafka
moteur dans différents formats après #7935. #8035 (Ivan) - Meilleure compatibilité avec les clients MySQL qui ne prennent pas en charge
sha2_password
greffon auth. #8036 (Yuriy Baranov) - Supporte plus de types de colonnes dans le serveur de compatibilité MySQL. #7975 (Yuriy Baranov)
- Mettre
ORDER BY
optimisation pour lesMerge
,Buffer
etMaterilized View
stockages avec sous-jacentMergeTree
table. #8130 (Anton Popov) - Maintenant, nous utilisons toujours L'implémentation POSIX de
getrandom
pour avoir une meilleure compatibilité avec les anciens noyaux (< 3.17). #7940 (Amos Oiseau) - Mieux vaut vérifier la destination valide dans une règle de déplacement TTL. #8410 (Vladimir Chebotarev)
- Mieux vérifie cassé insérer des lots pour
Distributed
tableau moteur. #7933 (Azat Khuzhin) - Ajouter une colonne avec un tableau de nom de pièces que les mutations doivent traiter à l'avenir
system.mutations
table. #8179 (alésapine) - Optimisation de tri de fusion parallèle pour les processeurs. #8552 (Nikolai Kochetov)
- Paramètre
mark_cache_min_lifetime
est maintenant obsolète et ne fait rien. Dans les versions précédentes, mark cache peut croître en mémoire supérieure àmark_cache_size
pour accommoder les données dansmark_cache_min_lifetime
deuxième. Cela conduisait à la confusion et à une utilisation de la mémoire plus élevée que prévu, ce qui est particulièrement mauvais sur les systèmes à contraintes de mémoire. Si vous constatez une dégradation des performances après l'installation de cette version, vous devezmark_cache_size
. #8484 (alexeï-milovidov) - Préparation à utiliser
tid
partout. Cela est nécessaire pour #7477. #8276 (alexeï-milovidov)
Amélioration Des Performances
- Optimisations des performances dans le pipeline de processeurs. #7988 (Nikolai Kochetov)
- Mises à jour non bloquantes des clés expirées dans les dictionnaires de cache (avec autorisation de lire les anciennes). #8303 (Nikita Mikhaylov)
- Compiler ClickHouse sans
-fno-omit-frame-pointer
globalement pour épargner un registre de plus. #8097 (Amos Oiseau) - SpeedUp
greatCircleDistance
fonction et ajouter des tests de performance pour elle. #7307 (Olga Khvostikova) - Amélioration des performances de la fonction
roundDown
. #8465 (alexeï-milovidov) - Amélioration des performances de
max
,min
,argMin
,argMax
pourDateTime64
type de données. #8199 (Vasily Nemkov) - Amélioration des performances de tri sans limite ou avec une grande limite et le tri externe. #8545 (alexeï-milovidov)
- Amélioration des performances du formatage des nombres à virgule flottante jusqu'à 6 fois. #8542 (alexeï-milovidov)
- Amélioration des performances de
modulo
fonction. #7750 (Amos Oiseau) - Optimisé
ORDER BY
et la fusion avec une seule clé de colonne. #8335 (alexeï-milovidov) - Meilleure mise en œuvre pour
arrayReduce
,-Array
et-State
combinators. #7710 (Amos Oiseau) - Maintenant
PREWHERE
doit être optimisé pour être au moins aussi efficace que l'WHERE
. #7769 (Amos Oiseau) - Améliorer la façon dont
round
etroundBankers
manipulation des nombres négatifs. #8229 (hcz) - Amélioration des performances de décodage
DoubleDelta
etGorilla
les codecs par environ de 30 à 40%. Cela corrige #7082. #8019 (Vasily Nemkov) - Amélioration des performances de
base64
les fonctions connexes. #8444 (alexeï-milovidov) - Ajout d'une fonction
geoDistance
. Il est similaire àgreatCircleDistance
mais utilise l'approximation au modèle ellipsoïde WGS-84. Les performances des deux fonctions sont presque les mêmes. #8086 (alexeï-milovidov) - Plus rapide
min
etmax
fonctions d'agrégation pour lesDecimal
type de données. #8144 (Artem Zuikov) - Vectoriser le traitement
arrayReduce
. #7608 (Amos Oiseau) if
les chaînes sont maintenant optimisésmultiIf
. #8355 (kamalov-ruslan)- Correction de la régression des performances de
Kafka
moteur de table introduit en 19.15. Cela corrige #7261. #7935 (filimonov) - Retiré “pie” génération de code qui
gcc
de paquets Debian apporte parfois par défaut. #8483 (alexeï-milovidov) - Formats de données d'analyse parallèle #6553 (Nikita Mikhaylov)
- Activer l'analyseur optimisé de
Values
avec des expressions par défaut (input_format_values_deduce_templates_of_expressions=1
). #8231 (tavplubix)
Construction / Test / Amélioration De L'Emballage
- Construire des correctifs pour
ARM
et en un minimum de mode. #8304 (proller) - Ajouter le fichier de couverture flush pour
clickhouse-server
lorsque std::atexit n'est pas appelé. Également légèrement amélioré la journalisation dans les tests sans état avec la couverture. #8267 (alésapine) - Mettre à jour la bibliothèque LLVM dans contrib. Évitez D'utiliser LLVM à partir de paquets OS. #8258 (alexeï-milovidov)
- Faire empaqueté
curl
construire entièrement calme. #8232 #8203 (Pavel Kovalenko) - Correction de quelques
MemorySanitizer
avertissement. #8235 (Alexander Kuzmenkov) - Utiliser
add_warning
etno_warning
les macros dansCMakeLists.txt
. #8604 (Ivan) - Ajout du support de l'objet compatible Minio S3 (https://min.io/) pour de meilleurs tests d'intégration. #7863 #7875 (Pavel Kovalenko)
- Importer
libc
en-têtes à contrib. Il permet de rendre les builds plus cohérents sur différents systèmes (uniquement pourx86_64-linux-gnu
). #5773 (alexeï-milovidov) - Supprimer
-fPIC
à partir de certaines bibliothèques. #8464 (alexeï-milovidov) - Propre
CMakeLists.txt
pour le roulage. Tu vois https://github.com/ClickHouse/ClickHouse/pull/8011#issuecomment-569478910 #8459 (alexeï-milovidov) - Avertissements silencieux dans
CapNProto
bibliothèque. #8220 (alexeï-milovidov) - Ajouter des tests de performance pour les tables de hachage optimisées par chaîne courte. #7679 (Amos Oiseau)
- Maintenant ClickHouse va construire sur
AArch64
même siMADV_FREE
n'est pas disponible. Cela corrige #8027. #8243 (Amos Oiseau) - Mettre
zlib-ng
pour résoudre les problèmes de désinfectant de mémoire. #7182 #8206 (Alexander Kuzmenkov) - Activez la bibliothèque MySQL interne sur un système non Linux, car l'utilisation des paquets du système D'exploitation est très fragile et ne fonctionne généralement pas du tout. Cela corrige #5765. #8426 (alexeï-milovidov)
- Correction de la construction sur certains systèmes après activation
libc++
. Cela annule et remplace #8374. #8380 (alexeï-milovidov) - Faire
Field
méthodes plus de type-sûr pour trouver plus d'erreurs. #7386 #8209 (Alexander Kuzmenkov) - Ajout de fichiers manquants à la
libc-headers
sous-module. #8507 (alexeï-milovidov) - Corrigé de mal
JSON
citation dans la sortie de test de performance. #8497 (Nikolai Kochetov) - Maintenant, la trace de pile est affichée pour
std::exception
etPoco::Exception
. Dans les versions précédentes, il était disponible uniquement pourDB::Exception
. Cela améliore le diagnostic. #8501 (alexeï-milovidov) - Le portage
clock_gettime
etclock_nanosleep
pour les nouvelles versions glibc. #8054 (Amos Oiseau) - Permettre
part_log
dans l'exemple config pour les développeurs. #8609 (alexeï-milovidov) - Correction de la nature asynchrone du rechargement dans
01036_no_superfluous_dict_reload_on_create_database*
. #8111 (Azat Khuzhin) - Tests de performance codec fixe. #8615 (Vasily Nemkov)
- Ajouter des scripts d'installation pour
.tgz
construire et documentation pour eux. #8612 #8591 (alésapine) - Supprimé Vieux
ZSTD
test (il a été créé en 2016 pour reproduire le bug que la version pré 1.0 de ZSTD a eu). Cela corrige #8618. #8619 (alexeï-milovidov) - Correction de la construction sur Mac OS Catalina. #8600 (meo)
- Augmentation du nombre de lignes dans les tests de performance du codec pour rendre les résultats visibles. #8574 (Vasily Nemkov)
- Dans les versions debug, traiter
LOGICAL_ERROR
exceptions comme Échecs d'assertion, de sorte qu'ils sont plus faciles à remarquer. #8475 (Alexander Kuzmenkov) - Rendre le test de performance lié aux formats plus déterministe. #8477 (alexeï-milovidov)
- Mettre
lz4
pour corriger un échec MemorySanitizer. #8181 (Alexander Kuzmenkov) - Supprimer un faux positif MemorySanitizer connu dans la gestion des exceptions. #8182 (Alexander Kuzmenkov)
- Mettre
gcc
etg++
à la version 9 dansbuild/docker/build.sh
#7766 (TLightSky) - Ajoutez un cas de test de performance pour tester cela
PREWHERE
est pire queWHERE
. #7768 (Amos Oiseau) - Progrès vers la fixation d'un test flacky. #8621 (alexeï-milovidov)
- Évitez le rapport MemorySanitizer pour les données de
libunwind
. #8539 (alexeï-milovidov) - Mettre
libc++
la dernière version. #8324 (alexeï-milovidov) - Construire la bibliothèque ICU à partir de sources. Cela corrige #6460. #8219 (alexeï-milovidov)
- Commutation de
libressl
deopenssl
. ClickHouse devrait prendre en charge TLS 1.3 et SNI après ce changement. Cela corrige #8171. #8218 (alexeï-milovidov) - Rapport UBSan fixe lors de l'utilisation
chacha20_poly1305
de SSL (se produit sur la connexion à https://yandex.ru/). #8214 (alexeï-milovidov) - Correction du mode de fichier de mot de passe par défaut pour
.deb
des distributions linux. #8075 (proller) - Expression améliorée pour obtenir
clickhouse-server
PID dansclickhouse-test
. #8063 (Alexander Kazakov) - Mise à jour contrib / googletest à v1. 10. 0. #8587 (Alexander Burmak)
- Rapport ThreadSaninitizer fixe dans
base64
bibliothèque. Aussi mis à jour cette bibliothèque à la dernière version, mais cela n'a pas d'importance. Cela corrige #8397. #8403 (alexeï-milovidov) - Fixer
00600_replace_running_query
pour les transformateurs. #8272 (Nikolai Kochetov) - Supprimer le support pour
tcmalloc
faireCMakeLists.txt
plus simple. #8310 (alexeï-milovidov) - Libérer gcc construit maintenant utiliser
libc++
plutôtlibstdc++
. Récemmentlibc++
a été utilisé uniquement avec clang. Cela améliorera la cohérence des configurations de construction et la portabilité. #8311 (alexeï-milovidov) - Activer la bibliothèque ICU pour construire avec MemorySanitizer. #8222 (alexeï-milovidov)
- Supprimer les avertissements de
CapNProto
bibliothèque. #8224 (alexeï-milovidov) - Suppression de cas spéciaux de code pour
tcmalloc
parce que c'est plus pris en charge. #8225 (alexeï-milovidov) - Dans la tâche de couverture CI, tuez le serveur gracieusement pour lui permettre d'enregistrer le rapport de couverture. Cela corrige les rapports de couverture incomplets que nous avons vus récemment. #8142 (alésapine)
- Tests de Performance pour tous les codecs contre
Float64
etUInt64
valeur. #8349 (Vasily Nemkov) termcap
est très obsolète et conduit à divers problèmes (F. G. manquant “up” cap et en écho^J
au lieu de multi-ligne) . Faveurterminfo
ou groupésncurses
. #7737 (Amos Oiseau)- Fixer
test_storage_s3
test d'intégration. #7734 (Nikolai Kochetov) - Soutien
StorageFile(<format>, null)
pour insérer un bloc dans un fichier de format donné sans écrire sur le disque. Ceci est requis pour les tests de performance. #8455 (Amos Oiseau) - Argument supplémentaire en
--print-time
aux tests fonctionnels qui imprime le temps d'exécution par test. #8001 (Nikolai Kochetov) - Ajouté assertions à
KeyCondition
lors de L'évaluation RPN. Cela corrigera l'avertissement de gcc-9. #8279 (alexeï-milovidov) - Vider les options cmake dans les builds CI. #8273 (Alexander Kuzmenkov)
- Ne générez pas d'informations de débogage pour certaines bibliothèques fat. #8271 (alexeï-milovidov)
- Faire
log_to_console.xml
connectez-vous toujours à stderr, que ce soit interactif ou non. #8395 (Alexander Kuzmenkov) - Suppression de certaines fonctionnalités inutilisées de
clickhouse-performance-test
outil. #8555 (alexeï-milovidov) - Maintenant, nous allons également rechercher
lld-X
avec correspondantclang-X
version. #8092 (alésapine) - Amélioration de construction de Parquet. #8421 (maxulan)
- Plus D'Avertissements GCC #8221 (kreuzerkrieg)
- Package pour Arch Linux permet maintenant d'exécuter le serveur ClickHouse, et pas seulement le client. #8534 (Vladimir Chebotarev)
- Fixer le test avec les processeurs. Corrections de performances minuscules. #7672 (Nikolai Kochetov)
- Mise à jour contrib/protobuf. #8256 (Matwey V. Kornilov)
- En préparation du passage à c++20 comme une célébration du Nouvel An. “May the C++ force be with ClickHouse.” #8447 (Amos Oiseau)
Caractéristique Expérimentale
- Ajouté cadre expérimental
min_bytes_to_use_mmap_io
. Il permet de lire de gros fichiers sans copier les données du noyau vers l'espace utilisateur. Le paramètre est désactivé par défaut. Le seuil recommandé est d'environ 64 Mo, car mmap / munmap est lent. #8520 (alexeï-milovidov) - Quotas retravaillés dans le cadre du système de contrôle d'accès. Ajouté nouveau tableau
system.quotas
de nouvelles fonctionscurrentQuota
,currentQuotaKey
, nouvelle syntaxe SQLCREATE QUOTA
,ALTER QUOTA
,DROP QUOTA
,SHOW QUOTA
. #7257 (Vitaly Baranov) - Autoriser à sauter des paramètres inconnus avec des avertissements au lieu de lancer des exceptions. #7653 (Vitaly Baranov)
- Stratégies de ligne retravaillées dans le cadre du système de contrôle d'accès. Ajouté nouveau tableau
system.row_policies
, nouvelle fonctioncurrentRowPolicies()
, nouvelle syntaxe SQLCREATE POLICY
,ALTER POLICY
,DROP POLICY
,SHOW CREATE POLICY
,SHOW POLICIES
. #7808 (Vitaly Baranov)
Correction De Sécurité
- Correction de la possibilité de lire la structure des répertoires dans les tables avec
File
tableau moteur. Cela corrige #8536. #8537 (alexeï-milovidov)