Mengembalikan definisi tipe kolom suatu trajektori dalam bentuk teks untuk digunakan bersama ST_AsTable.
Sintaksis
text ST_AsTableFormat(trajectory traj);Parameter
| Parameter | Deskripsi |
|---|---|
traj | Objek trajectory yang akan diperiksa. |
Deskripsi
ST_AsTableFormat memeriksa objek trajectory dan mengembalikan string teks yang menjelaskan tata letak kolomnya — contohnya:
(t timestamp, x double precision, y double precision, sog real, cog integer, hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)Karena atribut trajectory bervariasi tergantung set data, tipe kolom untuk ST_AsTable tidak dapat ditentukan secara statis. Panggil ST_AsTableFormat terlebih dahulu untuk memperoleh definisi kolom aktual, lalu teruskan hasilnya ke ST_AsTable guna mengembangkan trajectory menjadi tabel relasional.
Contoh
Dapatkan definisi kolom suatu trajectory
Contoh berikut mengambil definisi tipe kolom dari objek trajectory.
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)Output tersebut memetakan setiap atribut trajectory ke tipe kolom PostgreSQL-nya yang sesuai:
| Atribut | Tipe dalam trajectory | Tipe kolom SQL |
|---|---|---|
i1 | integer, length 1 | integer |
i2 | integer, length 2 | smallint |
i4 | integer, length 4 | integer |
i8 | integer, length 8 | bigint |
f4 | float, length 4 | real |
f8 | float, length 8 | double precision |
string | string | text |
timestamp | timestamp | timestamp |
bool | bool | boolean |
Kembangkan trajectory menjadi tabel
Contoh berikut menunjukkan alur kerja dua langkah lengkap: panggil ST_AsTableFormat untuk mendapatkan definisi kolom, lalu teruskan ke ST_AsTable guna mengembangkan trajectory menjadi tabel yang dapat dikueri.
Langkah 1. Dapatkan definisi kolom.
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)Langkah 2. Gunakan definisi tersebut dalam ST_AsTable untuk mengembangkan trajectory.
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
);Langkah selanjutnya
ST_AsTable — mengonversi trajectory menjadi tabel relasional menggunakan definisi kolom yang dikembalikan oleh
ST_AsTableFormat