データの読み書き
クエリ構文、演算子、韓国語の部分一致検索。
データの読み書き
PostgREST と同じ構文です。既存のクライアント SDK がそのまま使えます。
GET /rest/v1/<テーブル>?select=id,body&order=created_at.desc&limit=20
GET /rest/v1/<テーブル>?body=ilike.*ソウル*
POST /rest/v1/<テーブル> 本文: {"body":"こんにちは"} または [{...},{...}]
PATCH /rest/v1/<テーブル>?id=eq.<値>
DELETE /rest/v1/<テーブル>?id=eq.<値>演算子
eq neq gt gte lt lte like ilike match imatch cs cd ov sl sr nxr nxl adj isdistinct is in fts plfts phfts wfts
前に not. を付けると否定になります(status=not.eq.done)。or=(a.eq.1,b.gt.2)、and=(…) で
条件をまとめられ、like と ilike の * は % と同じです。select では別名(label:title)、
型変換(id::text)、外部キーでつながったテーブル(*,author(name))が使えます。
関数は POST /rest/v1/rpc/<関数> で呼び出します。埋め込んだテーブルへの条件と多対多の関係はまだありません。
足りないものが必要なら、run_sql でビューを作り、そのビューを読んでください。
未知の演算子は、その名前を挙げて拒否します。 黙って無視することはありません。 適用されなかったフィルターは、アクセスルールのもとでは情報漏えいになるからです。
韓国語の部分一致検索
pg_trgm が有効になっています。韓国語は単語に助詞が付くため単語単位の検索がうまく効かないので、
3文字単位の比較を使います。
create index if not exists notes_body_trgm on notes using gin (body extensions.gin_trgm_ops);
select * from notes where body % 'ソウル';埋め込み検索(pgvector)や地図(PostGIS)など、ほかの拡張機能は blackwall://extensions をご覧ください。
CSV でのエクスポートとインポート
export_table_csv がテーブルの行を CSV で返します(1MB まで。超えると行の区切りで切って truncated)。filters と sort で範囲と順序を選び、大きなテーブルは範囲を分けて何回かに分けて受け取ります。
import_table_csv は CSV をテーブルに入れます(2MB、10,000行まで)。1行目の列名と同じ列に入り、1行でも入れられなければ何も入れず、行番号と理由を返します。
REST では GET /v1/projects/<ref>/tables/<テーブル>/csv と POST /v1/projects/<ref>/tables/<テーブル>/csv {csv, columns} です。