-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.sql
More file actions
20 lines (17 loc) · 691 Bytes
/
db.sql
File metadata and controls
20 lines (17 loc) · 691 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE EXTENSION IF NOT EXISTS "pg_trgm";
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE OR REPLACE FUNCTION immutable_array_to_string(text[])
RETURNS TEXT AS $$
SELECT array_to_string($1, ' ');
$$ LANGUAGE sql IMMUTABLE;
CREATE TABLE IF NOT EXISTS "people" (
"id" UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
"nome" VARCHAR(100) NOT NULL,
"apelido" VARCHAR(32) NOT NULL UNIQUE,
"nascimento" CHAR(10) NOT NULL,
"stack" TEXT[],
"search" TEXT NOT NULL GENERATED ALWAYS AS (
"nome" || ' ' || "apelido" || ' ' || COALESCE(immutable_array_to_string("stack"), '')
) STORED
);
CREATE INDEX IF NOT EXISTS "idx_people_trgm" ON "people" USING GIST ("search" GIST_TRGM_OPS);