range_hashed
range_min et range_max dans la structure. Ces éléments doivent inclure les éléments name et type (si type n’est pas spécifié, le type par défaut sera utilisé : Date). type peut être n’importe quel type numérique (Date / DateTime / UInt64 / Int32 / autres).
Les valeurs de
range_min et range_max doivent pouvoir être représentées par le type Int64.- DDL
- Fichier de configuration
Pour utiliser ces dictionnaires, vous devez passer un argument supplémentaire à la fonction
dictGet, auquel une plage est appliquée :
id spécifiés et la plage de dates qui inclut la date fournie.
Détails de l’algorithme :
- Si l’
idest introuvable ou si aucune plage n’est trouvée pour cetid, elle renvoie la valeur par défaut du type de l’attribut. - S’il existe des plages qui se chevauchent et que
range_lookup_strategy=min, elle renvoie une plage correspondante dont lerange_minest minimal ; si plusieurs plages sont trouvées, elle renvoie une plage dont lerange_maxest minimal ; si plusieurs plages sont encore trouvées (plusieurs plages ayant le mêmerange_minet le mêmerange_max), elle renvoie l’une d’elles aléatoirement. - S’il existe des plages qui se chevauchent et que
range_lookup_strategy=max, elle renvoie une plage correspondante dont lerange_minest maximal ; si plusieurs plages sont trouvées, elle renvoie une plage dont lerange_maxest maximal ; si plusieurs plages sont encore trouvées (plusieurs plages ayant le mêmerange_minet le mêmerange_max), elle renvoie l’une d’elles aléatoirement. - Si
range_maxvautNULL, la plage est ouverte.NULLest traité comme la valeur maximale possible. Pourrange_min,1970-01-01ou0(-MAX_INT) peuvent être utilisés comme valeur ouverte.
- DDL
- Fichier de configuration
Exemple de configuration avec des plages qui se chevauchent et des plages ouvertes :