Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
33 lines
908 B
PL/PgSQL
33 lines
908 B
PL/PgSQL
CREATE TABLE authors (
|
|
author_id SERIAL PRIMARY KEY,
|
|
name text NOT NULL DEFAULT ''
|
|
);
|
|
|
|
CREATE INDEX authors_name_idx ON authors(name);
|
|
|
|
CREATE TYPE book_type AS ENUM (
|
|
'FICTION',
|
|
'NONFICTION'
|
|
);
|
|
|
|
CREATE TABLE books (
|
|
book_id SERIAL PRIMARY KEY,
|
|
author_id integer NOT NULL REFERENCES authors(author_id),
|
|
isbn text NOT NULL DEFAULT '' UNIQUE,
|
|
book_type book_type NOT NULL DEFAULT 'FICTION',
|
|
title text NOT NULL DEFAULT '',
|
|
year integer NOT NULL DEFAULT 2000,
|
|
available timestamp with time zone NOT NULL DEFAULT 'NOW()',
|
|
tags varchar[] NOT NULL DEFAULT '{}'
|
|
);
|
|
|
|
CREATE INDEX books_title_idx ON books(title, year);
|
|
|
|
CREATE FUNCTION say_hello(s text) RETURNS text AS $$
|
|
BEGIN
|
|
RETURN CONCAT('hello ', s);
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE INDEX books_title_lower_idx ON books(title);
|