Saltar al contenido principal

range_hashed

El diccionario se almacena en memoria en forma de una tabla hash con un array ordenado de rangos y sus valores correspondientes. Este método de almacenamiento funciona igual que hashed y permite usar rangos de fecha y hora (de cualquier tipo numérico), además de la clave. Ejemplo: la tabla contiene descuentos para cada anunciante en el formato:
Para usar una muestra para rangos de fechas, defina los elementos range_min y range_max en la estructura. Estos elementos deben incluir name y type (si no se especifica type, se usará el tipo predeterminado: Date). type puede ser cualquier tipo numérico (Date / DateTime / UInt64 / Int32 / otros).
Los valores de range_min y range_max deben caber en el tipo Int64.
Ejemplo:

Para trabajar con estos diccionarios, debe pasar un argumento adicional a la función dictGet, para el que se selecciona un rango:
Ejemplo de consulta:
Esta función devuelve el valor de los id especificados y el rango de fechas que incluye la fecha proporcionada. Detalles del algoritmo:
  • Si no se encuentra el id o no se encuentra ningún rango para ese id, devuelve el valor predeterminado del tipo del atributo.
  • Si hay rangos superpuestos y range_lookup_strategy=min, devuelve un rango coincidente con el range_min mínimo; si se encuentran varios rangos, devuelve uno con el range_max mínimo; si aun así se encuentran varios rangos (es decir, varios rangos tienen el mismo range_min y range_max), devuelve uno aleatorio de entre ellos.
  • Si hay rangos superpuestos y range_lookup_strategy=max, devuelve un rango coincidente con el range_min máximo; si se encuentran varios rangos, devuelve uno con el range_max máximo; si aun así se encuentran varios rangos (es decir, varios rangos tienen el mismo range_min y range_max), devuelve uno aleatorio de entre ellos.
  • Si range_max es NULL, el rango es abierto. NULL se trata como el valor máximo posible. Para range_min, se puede usar 1970-01-01 o 0 (-MAX_INT) como valor abierto.
Ejemplo de configuración:

Ejemplo de configuración con rangos superpuestos y abiertos:

complex_key_range_hashed

El diccionario se almacena en memoria en forma de tabla hash, con un array ordenado de rangos y sus valores correspondientes (consulte range_hashed). Este tipo de almacenamiento está diseñado para usarse con claves compuestas. Ejemplo de configuración:
Última modificación el 19 de junio de 2026