словарь, наполняю таблицу данными:
                  
                  
                  CREATE DICTIONARY dict_country (
                  
                  
                    country String DEFAULT 'unknown',
                  
                  
                    country_code String DEFAULT 'unknown'
                  
                  
                  )
                  
                  
                  PRIMARY KEY country
                  
                  
                  SOURCE(CLICKHOUSE(HOST ..... ))
                  
                  
                  LIFETIME(MIN 1 MAX 10)
                  
                  
                  LAYOUT(complex_key_hashed());
                  
                  
                  
                  
                  
                  Проверяю, все работает:
                  
                  
                  SELECT dictGet('mydb.dict_country', 'country_code', tuple('Russia'))
                  
                  
                  
                  
                  
                  Добавляю в селект из таблицы (поле country):
                  
                  
                  select dictGet('mydb.dict_country', 'country_code', tuple(country)) as country_code
                  
                  
                  from ...
                  
                  
                  Получаю ошибку:
                  
                  
                  SQL Error [42]: ClickHouse exception, code: 42, host: chdb.datos.live, port: 54345; Code: 42, e.displayText() = DB::Exception: Function dictGet... takes 3 or 4 arguments (version 20.4.3.16 (official build))
                  
                  
                  
                  
                  
                  Что делаю не так?
                  
                  
                
dictGetString?
Обсуждают сегодня