ClickHouse/docs/fr/changelog/index.md
2020-03-30 15:48:55 +03:00

144 KiB
Raw Blame History

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 pour INSERT les requêtes en Distributed 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 pour Distributed 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é asynchrone INSERTs Distributed 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 de system.trace_log a été renommé de timer_type de trace_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ètre send_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 pas ADD colonne sans type, MODIFY l'expression par défaut ne change pas le type de colonne et MODIFY 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 et AvroConfluent 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 pour ALTER 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 pour FixedString(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éfaut ALIAS expression. #9489 (alésapine)
  • Autoriser à spécifier --limit plus que la taille des données source dans clickhouse-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 et stringToH3 #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 en system.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 et system.zeros_mt ainsi que les fonctions de conte zeros() et zeros_mt(). Les Tables (et les fonctions de table) contiennent une seule colonne avec le nom zero et le type UInt8. 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ètres min_bytes_for_wide_part et min_rows_for_wide_part. #8290 (Anton Popov)
  • Prise en charge du stockage S3 pour Log, TinyLog et StripeLog 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 ou file 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 de ReplicatedMergeTree table. #9552 (alexeï-milovidov)
  • Jeton NOT ne fonctionne pas dans SHOW 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 ajouter connect_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 et is_done=0. #9022 (alésapine)
  • Utilisez une nouvelle logique de jointure avec partial_merge_join paramètre. Il est possible de faire ANY|ALL|SEMI LEFT et ALL INNER les jointures avec partial_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îne e. 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 et extract 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 dans T64 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 de File 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 dans path 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 exceptions MergeTreeRangeReader ou mauvais résultats de requête. #9050 (Anton Popov)
  • Faire reinterpretAsFixedString retourner FixedString plutôt String. #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é le IF 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 dans GROUP 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 dans ReplicatedMergeTree ALTER requête. #9048 (alésapine)
  • Lorsque le réglage compile_expressions est activée, vous pouvez obtenir unexpected column dans LLVMExecutableFunction lorsque nous utilisons Nullable 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 augmenter kafka_max_block_size dans le tableau de la plus grande valeur ( par exemple CREATE 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 le interval 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 le SELECT clause quand nous avons un ORDER BY et un LIMIT 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 supprimer LIVE VIEW dépendances lors du détachement LIVE VIEW. LIVE VIEW est une fonctionnalité expérimentale. #8824 (tavplubix)
  • Correction possible segfault dans MergeTreeRangeReader, lors de l'exécution PREWHERE. #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 pour ReplicatedMergeTree* les moteurs de la famille. Maintenant ALTERS 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 et SHOW DATABASES les requêtes prennent en charge le WHERE les expressions et les FROM/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 dans clickhouse-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 (comme supports_ttl ou supports_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éé par CREATE LIVE VIEW name WITH TIMEOUT [42] ... plutôt CREATE 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 dans system.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 et File les moteurs et les hdfs et file les fonctions de table #8489 (Olga Khvostikova)
  • Correction d'erreur Cannot find column lors de l'insertion dans MATERIALIZED 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 que SELECT 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 le materialize 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 avec replxx interactif, l'édition en ligne en clickhouse-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 pour gcc. #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 et sumMapWithOverflow 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 de loop. #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 et libcxxabi 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 et SSL 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 de zeros 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 et gsasl 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 dans ParallelAggregatingBlockInputStream::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 et sumWithOverflow. 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 de Distributed 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 et Invalid number of rows in Chunk dans MergeTreeRangeReader. Ils pouvaient apparaître lors de l'exécution PREWHERE 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 comme time + 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 et extract 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

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écution PREWHERE. Fixer #9064. #9106 (CurtizJ)
  • Fixer reinterpretAsFixedString retourner FixedString plutôt String. #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 de INNER JOIN si il y a [NOT] LIKE opérateur WHERE 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 pas ADD colonne sans type, MODIFY l'expression par défaut ne change pas le type de colonne et MODIFY 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. Mettre SIMDJSON 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 de Float32 parce que maintenant, le résultat du calcul est Float32. #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 écrire a\tb ou a\<tab>b et, respectivement,, a%5Ctb ou a%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 pour ReplicatedMergeTree 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 et allow_experimental_multiple_joins_emulation sont maintenant obsolètes et ne rien faire. #7974 (alexeï-milovidov)
  • Ajouter de nouveaux ANY JOIN logique pour StorageJoin compatible avec JOIN opération. Pour mettre à niveau sans changement de comportement vous devez ajouter SETTINGS 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 en ON CLUSTER mode. #8288 (Guillaume Tassery)
  • Ajouter la possibilité d'exécuter CREATE DICTIONARY les requêtes en ON 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 et JSONEachRow 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. Maintenant t1 ANY LEFT JOIN t2 égal t2 ANY RIGHT JOIN t1. #7665 (Artem Zuikov)
  • Ajouter un paramètre any_join_distinct_right_table_keys ce qui permet un vieux comportement pour ANY INNER JOIN. #7665 (Artem Zuikov)
  • Ajouter de nouveaux SEMI et ANTI JOIN. Vieux ANY INNER JOIN comportement maintenant disponible en SEMI LEFT JOIN. #7665 (Artem Zuikov)
  • Ajouter Distributed format pour File moteur et file fonction de table qui permet de lire à partir .bin fichiers générés par des insertions asynchrones dans Distributed 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> dans config.xml qui restreint les hôtes autorisés pour les moteurs de table distants et les fonctions de table URL, 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 et JSONCompactEachRowWithNamesAndTypes 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'écrire gzip 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 de JSON 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 et JSONEachRow format. #7894 (Nikita Mikhaylov)
  • Ajouter plusieurs fonctions de géo H3 bibliothèque: h3GetResolution, h3EdgeAngle, h3EdgeLength, h3IsValid et h3kRing. #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 de JSONEachRow. Cela corrige #5653. #8606 (tavplubix)
  • Maintenant, une exception sera levée en cas d'utilisation WITH TIES parallèlement LIMIT BY. Ajoutez également la possibilité d'utiliser TOP avec LIMIT 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ès ALTER 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 et argMax fonctions pour les arguments de chaîne longue, lorsque result est utilisé dans runningAccumulate 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 de WHERE 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é dans users.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ées JSON ou XML format avec les valeurs de String type de données (qui nécessitent UTF-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 avec Native 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 table Kafka. #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 type list. #8334 (maxulan)
  • Correction d'erreur Not found column pour les requêtes distribuées avec PREWHERE condition dépendant de la clé d'échantillonnage si max_parallel_replicas > 1. #7913 (Nikolai Kochetov)
  • Correction d'erreur Not found column si la requête utilisée PREWHERE 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 et randConstant en cas de Nullable argument. Maintenant renvoient toujours UInt32 et jamais Nullable(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ésultat SummingMergeTree lorsque FINAL 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 JOINs avec tables avec moteur Join. 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 et StorageHDFS. 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 ou FULL JOIN avec et Rejoindre moteur et non pris en charge join_use_nulls paramètre. #8479 (Artem Zuikov)
  • Maintenant DROP DICTIONARY IF EXISTS db.dict la requête ne lance pas d'exception si db 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 à enlever IStorage 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-copierconflit 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 avec LowCardinality dans JOIN 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é sans TABLE ou DICTIONARY qualificatif. Tout comme EXISTS 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'utilisation SimpleAggregateFunction 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 pour allow_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 pour Replicated*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 dans clickhouse-cluster-copier. #8088 (Ding Xiang Fei)
  • odbc fonction de table respecte maintenant external_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 ignorant update_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 en Values 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 dans RangeHashed 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écution clickhouse-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égat Resample que peut provoquer la fuite de mémoire. Fonction agrégée ajoutée aggThrow. 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'attendre ALTER UPDATE/DELETE les requêtes de manière synchrone. #8237 (alésapine)
  • Autoriser à configurer relative user_files_path dans config.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'utilisation FINAL et SAMPLE 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-dessus Kafka 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 avec Decimal et UUID 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 et ATTACH TABLE pour MySQL 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 activer bracketed-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) dans if fonction. #7721 (Artem Zuikov)
  • Soutien Décimales arrayDifference, arrayCumSum et arrayCumSumNegative fonction. #7724 (Artem Zuikov)
  • Ajouter lifetime colonne de system.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 pour S3 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 ou DateTime colonne de TTL 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 les Merge, Buffer et Materilized View stockages avec sous-jacent MergeTree 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 dans mark_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 devez mark_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 pour DateTime64 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 et roundBankers manipulation des nombres négatifs. #8229 (hcz)
  • Amélioration des performances de décodage DoubleDelta et Gorilla 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 et max fonctions d'agrégation pour les Decimal type de données. #8144 (Artem Zuikov)
  • Vectoriser le traitement arrayReduce. #7608 (Amos Oiseau)
  • if les chaînes sont maintenant optimisés multiIf. #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 et no_warning les macros dans CMakeLists.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 pour x86_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 si MADV_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 et Poco::Exception. Dans les versions précédentes, il était disponible uniquement pour DB::Exception. Cela améliore le diagnostic. #8501 (alexeï-milovidov)
  • Le portage clock_gettime et clock_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 et g++ à la version 9 dans build/docker/build.sh #7766 (TLightSky)
  • Ajoutez un cas de test de performance pour tester cela PREWHERE est pire que WHERE. #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 de openssl. 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 dans clickhouse-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 faire CMakeLists.txt plus simple. #8310 (alexeï-milovidov)
  • Libérer gcc construit maintenant utiliser libc++ plutôt libstdc++. Récemment libc++ 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 et UInt64 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) . Faveur terminfo ou groupés ncurses. #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 correspondant clang-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 fonctions currentQuota, currentQuotaKey, nouvelle syntaxe SQL CREATE 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 fonction currentRowPolicies(), nouvelle syntaxe SQL CREATE 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)

Changelog pour 2019