vsql_cube quando várias colunas numéricas pertencem ao mesmo conjunto e
você quer consultá-las como um único valor. Uma cadeia de condições AND pode
testar se uma linha cai dentro de um intervalo, mas não pode ordenar linhas por
distância. O tipo cube faz as duas coisas. Ele é um port da extensão cube
do PostgreSQL. A maioria dos nomes de função do PostgreSQL é mantida; os
construtores cube(), os operadores e as suas funções de apoio
(cube_contained, cube_overlap, distance_taxicab,
distance_chebyshev) se tornam as funções nomeadas abaixo.
Instalar
Ovsql_cube.veb já está no diretório lib/veb/ do servidor se você instalou
o VillageSQL com o script de instalação, a imagem Docker ou um tarball de
release. Instale-o no servidor com uma única instrução:
O que ela adiciona
O tipo cube
Declare a coluna como`cube`(N), onde N é o maior número de dimensões que um valor pode ter, de 1 a 100.
cube é uma palavra reservada do MySQL, então precisa de crases, e a contagem
de dimensões é obrigatória.
Funções
Exemplo
Encontre os dois sensores mais próximos de uma leitura alvo e, depois, os sensores dentro de uma região:Um argumento
cube obtém a sua contagem de dimensões de uma coluna, então
uma chamada funciona quando um dos seus argumentos cube é um valor de
coluna ou o resultado de uma função que preserva a contagem de dimensões de
uma coluna, como cube_union ou cube_enlarge. Uma chamada sem nenhum
argumento desse tipo, como em cube_dim(cube_point_nd(1, 2)), falha com
ERROR 3219 (HY000): Cannot initialize function 'cube_dim': cannot determine type parameters for vsql_cube.cube in argument 1. Pelo mesmo motivo, insira
uma string de coordenadas simples em vez de envolvê-la em cube_point_nd().Cada argumento de coordenada de cube_point_nd, cube_box_nd, cube_subset e
cube_add_dim também pode ser uma string separada por vírgulas, e as listas
são unidas de ponta a ponta. Assim, cube_point_nd('1,2,3') e
cube_point_nd(1, 2, 3) constroem o mesmo ponto.
Passe uma string quando as coordenadas estão em uma coluna, que é o único
caso que argumentos separados não conseguem expressar.Veja também
- Consultas de intervalo multidimensionais no MySQL — um passo a passo mais longo de consultas de contenção, distância e vizinho mais próximo
- Instalar extensões — como o
INSTALL EXTENSIONfunciona e onde o servidor procura um bundle - Extensões disponíveis — o catálogo completo
- villagesql/vsql-cube — código-fonte, instruções de compilação e a referência completa de funções