DEFINE TABLE IF NOT EXISTS website SCHEMALESS; DEFINE FIELD IF NOT EXISTS site ON TABLE website TYPE string; DEFINE INDEX IF NOT EXISTS idx ON TABLE website COLUMNS site UNIQUE; DEFINE FIELD IF NOT EXISTS crawled ON TABLE website TYPE bool; DEFINE FIELD IF NOT EXISTS processing ON TABLE website TYPE bool DEFAULT false; DEFINE FIELD IF NOT EXISTS accessed_at ON TABLE website VALUE time::now(); DEFINE FIELD IF NOT EXISTS first_accessed_at ON TABLE website VALUE time::now(); DEFINE FUNCTION OVERWRITE fn::get_next($filter: string) { LET $site = SELECT * FROM ONLY website WHERE crawled = false AND processing = false AND site ~ type::string($filter) LIMIT 1; UPDATE $site.id SET processing = true; RETURN $site };