Retorna a definição dos tipos de coluna de uma trajetória como texto, para uso com ST_AsTable.
Sintaxe
text ST_AsTableFormat(trajectory traj);
Parâmetros
|
Parâmetro |
Descrição |
|
|
Objeto de trajetória a inspecionar. |
Descrição
A função ST_AsTableFormat inspeciona um objeto de trajetória e retorna uma string de texto que descreve sua estrutura de colunas. Exemplo:
(t timestamp, x double precision, y double precision, sog real, cog integer, hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)
Como os atributos da trajetória variam conforme o conjunto de dados, não é possível definir os tipos de coluna da ST_AsTable de forma estática. Chame primeiro a ST_AsTableFormat para verificar a definição real das colunas e, em seguida, passe o resultado para a ST_AsTable expandir a trajetória em uma tabela relacional.
Exemplos
Obter a definição de colunas de uma trajetória
O exemplo a seguir recupera a definição dos tipos de coluna de um objeto de trajetória.
SELECT ST_AsTableFormat(
'{"trajectory":{"version":1,"type":"STPOINT","leafcount":1,
"start_time":"2010-01-01 11:30:00","end_time":"2010-01-01 11:30:00",
"spatial":"SRID=4326;POINT(1 1)","timeline":["2010-01-01 11:30:00"],
"attributes":{"leafcount":1,
"i1":{"type":"integer","length":1,"nullable":true,"value":[1]},
"i2":{"type":"integer","length":2,"nullable":true,"value":[1]},
"i4":{"type":"integer","length":4,"nullable":true,"value":[1]},
"i8":{"type":"integer","length":8,"nullable":true,"value":[1]},
"f4":{"type":"float","length":4,"nullable":true,"value":[1]},
"f8":{"type":"float","length":8,"nullable":true,"value":[1]},
"string":{"type":"string","length":10,"nullable":true,"value":["fat"]},
"timestamp":{"type":"timestamp","length":8,"nullable":true,"value":["2010-01-01 11:30:00"]},
"bool":{"type":"bool","length":1,"nullable":true,"value":["true"]}}}}'::trajectory
);
-- Result:
-- (t timestamp, x double precision, y double precision, i1 integer, i2 smallint,
-- i4 integer, i8 bigint, f4 real, f8 double precision, string text,
-- timestamp timestamp, bool boolean)
A saída mapeia cada atributo da trajetória para seu tipo de coluna PostgreSQL correspondente:
|
Atributo |
Tipo na trajetória |
Tipo de coluna SQL |
|
|
integer, length 1 |
|
|
|
integer, length 2 |
|
|
|
integer, length 4 |
|
|
|
integer, length 8 |
|
|
|
float, length 4 |
|
|
|
float, length 8 |
|
|
|
string |
|
|
|
timestamp |
|
|
|
bool |
|
Expandir uma trajetória em uma tabela
Este exemplo demonstra o fluxo de trabalho completo em duas etapas: chame a ST_AsTableFormat para obter a definição das colunas e, depois, utilize-a na ST_AsTable para expandir a trajetória em uma tabela consultável.
Etapa 1. Selecione a definição das colunas.
SELECT ST_AsTableFormat(traj) FROM table_name LIMIT 1;
-- Result:
-- (t timestamp, x double precision, y double precision, sog real, cog integer,
-- hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)
Etapa 2. Utilize a definição na ST_AsTable para expandir a trajetória.
SELECT f.*
FROM table_name,
ST_AsTable(traj) AS f(
t timestamp, x double precision, y double precision,
sog real, cog integer, hdg integer, rot integer,
status integer, is_satelite smallint, statictime integer
);
Próximos passos
ST_AsTable — converte uma trajetória em uma tabela relacional usando a definição de colunas retornada pela
ST_AsTableFormat