type: bulk args: #Author table - type: run_sql args: sql: | create table author( id serial primary key, name text unique, is_registered boolean not null default false, emails text[] not null default '{}'::text[] ); - type: track_table args: schema: public name: author #Article table - type: run_sql args: sql: | CREATE TABLE article ( id SERIAL PRIMARY KEY, title TEXT, content TEXT, author_id INTEGER REFERENCES author(id), is_published BOOLEAN, published_on TIMESTAMP, tags JSON ); CREATE FUNCTION fetch_articles(search text, author_row author) RETURNS SETOF article AS $$ SELECT * FROM article WHERE ( title ilike ('%' || search || '%') OR content ilike ('%' || search || '%') ) AND author_id = author_row.id $$ LANGUAGE sql STABLE; - type: track_table args: schema: public name: article #Create relationships - type: create_object_relationship args: table: article name: author using: foreign_key_constraint_on: author_id - type: create_array_relationship args: table: author name: articles using: foreign_key_constraint_on: table: article column: author_id # add a computed field - type: add_computed_field args: table: author name: fetch_articles definition: function: fetch_articles table_argument: author_row