mysql_datatypes_support_level
decimal, datetime64, date2Date32, date2String ou geometry. Todos os mapeamentos modernos (decimal, datetime64, date2Date32, geometry) são habilitados por padrão.
decimal: converte os tiposNUMERICeDECIMALemDecimalquando a precisão permite.datetime64: converte os tiposDATETIMEeTIMESTAMPemDateTime64em vez deDateTimequando a precisão não é0.date2Date32: converteDATEemDate32em vez deDate. Tem precedência sobredate2String.date2String: converteDATEemStringem vez deDate. É sobrescrito pordatetime64.geometry: converte os tipos espaciais do MySQL (LINESTRING,POLYGON,MULTILINESTRING,MULTIPOLYGON,MULTIPOINT) para os tipos geométricos correspondentes do ClickHouse, e o tipo genéricoGEOMETRYpara o tipoGeometry.POINTé sempre convertido paraPoint, independentemente desta opção. Como uma coluna genéricaGEOMETRYpode conter qualquer subtipo, ler um valor cujo subtipo não tem equivalente no ClickHouse (GEOMETRYCOLLECTION) lança uma exceção no momento da leitura; colunas declaradas comoGEOMETRYCOLLECTIONsão mapeadas paraString. Uma coluna espacial anulável diferente dePOINTtambém é mapeada paraNullable(String), poisPointé o único tipo geométrico que pode ser aninhado emNullable. Cada uma dessas strings consiste em um prefixo SRID de 4 bytes seguido pela carga útil WKB, conforme retornado pelo MySQL. Tudo o que foi mencionado acima se aplica quando o schema é inferido dos tipos de coluna de uma tabela MySQL; quando a fonte é uma consulta (o argumentoquery(...)da função de tabelamysqlou do mecanismo de tabelaMySQL), o MySQL informa todas as colunas de resultado espaciais como oGEOMETRYgenérico, sem o subtipo concreto, portanto essas colunas — incluindoPOINT— são mapeadas paraString(Nullable(String)se forem anuláveis).