There are books about witchcraft, and there are books about why it’s compelling to become and live as a witch. This book’s a little of both. It’s a memoir, expertly and entertainingly written, full of social commentary, Craft lore, and ultimately a call to action.

The author has multiple identities, and she goes by two names. By the name her parents gave her, she’s Julia Glassman, an entertainment journalist who earned an MFA in fiction writing from the prestigious University of Iowa. She’s also a career librarian. By her Craft name, as the author of this book, she’s Asa West. She’s also a married mom of two, a tarot reader, a gardener, and a needle craftsperson. 

“I hope you’ll recognize parts of your story in this book,” she writes in her introduction, and I do. West was born in Los Angeles, near where I grew up. She grew up a little further south, in Orange County, California where I spent my college years in the late 70s. Though I’m about twenty years older than she is, I relate to how she juggles multiple professional and personal identities. The geographical and cultural terrains she describes are all familiar places, as is her undying love of writing and books; how the written word has informed her spiritual quest, how she became a witch. Oh, and she’s also a knitter. 

“What makes someone a witch?” West asks. Was it destiny, by birth? In a way, for her, it was. West was born with an odd birth mark that her parents had removed. She had a Yiddish great-grandmother who practiced some kind of Jewish folk magic. (Did anyone who’s Jewish not have a witchy great-grandmother?)  

But there’s something other than biology that makes being or becoming a witch extra-ordinary. That’s the essence that West invokes. She calls it the “witch blood.” It’s “the numinous spark that flares in your brainstem…a calling that anyone can answer, a lightning bolt that can hit any skull. The witch blood snakes through the meridians of the Earth, flowing toward those who can perceive it, and rises through the body out of the living soil.” Kids born with the witch blood, early on, have paranormal experiences. They know they’re wyrd, and as Asa West writes, “to be a witch is also to be, at times, very lonely.”

West was a wyrd kid—only as an adult did she learn that she’s neurodivergent—growing up in Orange County, a hotbed of conservative Christian culture. In the 1990s, she happened to be in a bookstore near Cal State Fullerton when she spotted a shelf labeled “New Age” with a single book on it, The Practice of Witchcraft Today by Robin Skelton. She took the book home and devoured it. Only years later did she realize that it was full of “fakelore” about an unbroken chain of witches dating back to neolithic Europe. But the book left its mark on her, and soon after reading it, she came upon a campy movie called The Craft about a teenage girl who survives a suicide attempt and is then invited to join a group of Catholic school girls who’ve formed a coven. 

As an older teen, West found a Borders Book store stocked with shelves of witchcraft books just as the witchcraft publishing boom was beginning. These were the years of the “Satanic Panic” when witches set out to assure the general public that witches are all nice people who adhere to the Wiccan rede. West has a lot to say about what she calls the “Wiccan PR campaign.” It never really worked. Instead, she writes, it “spread ridicule” and caused her to “accept a witchcraft that was declawed and defanged, and [she] wondered why it never felt right.”

For a while after college, West studied Buddhism, Hinduism and a bit of her Jewish roots. She lived all over the place. She started her career and her family. She eventually got back to L.A. where she sought out an occult shop in Hollywood. She was looking to find witches, and she did. She found members of the Reclaiming tradition and signed up for their classes. During one class, she became a devotee of the Morrigan, a goddess of both fertility and war, and she wondered: what kind of a combination is that? She discovered, though, that the Morrigan is a goddess of sovereignty. West writes, beautifully, about how and why the Morrigan stories figure so prominently in Celtic spirituality and how relevant the Morrigan is now, “in the context of climate change.” She started doing what she calls “fear work,” digesting the fears of her childhood and integrating what she learned from Buddhist teachers about how to face fear. She came to practice a witchcraft that is not fluffy, not about making nice with the capitalists and the destroyers of Earth. 

“To many practitioners, witchcraft is becoming synonymous with warriorhood, as a way of wresting back stolen power… At this juncture of history, to be a witch is to be a warrior. Diana and Aradia and Hekate are commonly known as queens of the witches, but now, by necessity, the Morrigan is taking her place alongside them.” 

West’s a great storyteller. She writes about how she became a tarot reader, years after she’d discovered an old tarot deck in her mother’s closet. She writes about how her mother got her into knitting, how that led her to learn to use a spinning wheel, and how spinning and weaving have always been enmeshed with witchcraft. She writes about finding patches of datura in a strange L.A. area campsite she and her family ended up at one hot, dry summer during Covid.  She writes about how hard it is to live in California, under constant threat of fires, with good jobs scarce and housing unaffordable. On the first full moon after she and her family move into a two-bedroom condo, she’s on the roof of the building performing an esbat when she realizes that amidst the wasteland of industrial capitalism, “we can be arks.” We can be the ships that save life itself. 

She ends with the story of the clueless members of her condo’s homeowners’ association as they set out to destroy the native plants she’s been nurturing on shared grounds. Only one golden currant shrub survives. West and her daughters eat the “forbidden fruit” of the currant shrub’s flowers. They are red like blood, yellow like fire.    

She ends her tale, calling out: “You, reading this book: You are an ark. The gods are whispering to you through the reeds. What are you carrying that’s worth saving?” 

~review by Sara R. Diamond

Author: Asa West
Weiser Books, 2025
182 pp., $16.95

28.336MBMemory Usage549msRequest Duration
Joomla! Version4.4.8
PHP Version8.3.23
Identityguest
Response200
Templatert_ambrosia
Database
Server
mysql
Version
10.6.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "facingnorth" "HOME" => "/home/facingnorth" "SCRIPT_NAME" => "/index.php"...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1752792444 "last" => 1752792444...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (458.97KB) (4.26ms)
  • afterInitialise (809.8KB) (16.93ms)
  • afterRoute (544.36KB) (11.01ms)
  • beforeRenderComponent com_content (34.09KB) (1.13ms)
  • Before Access::preloadComponents (all components) (33.47KB) (751μs)
  • After Access::preloadComponents (all components) (107.34KB) (960μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (25μs)
  • After Access::preloadPermissions (com_content) (2.01MB) (7.08ms)
  • Before Access::getAssetRules (id:4273 name:com_content.article.3376) (66.65KB) (227μs)
  • After Access::getAssetRules (id:4273 name:com_content.article.3376) (8.72KB) (153μs)
  • afterRenderComponent com_content (277.08KB) (12.48ms)
  • afterDispatch (2.28KB) (125μs)
  • beforeRenderRawModule mod_finder (Search Module) (1.52MB) (19.58ms)
  • afterRenderRawModule mod_finder (Search Module) (278.92KB) (4.75ms)
  • beforeRenderModule mod_finder (Search Module) (720B) (11μs)
  • afterRenderModule mod_finder (Search Module) (1.28KB) (107μs)
  • afterRender (19.73MB) (468ms)
  • 1 x afterRender (19.73MB) (85.21%)
    467.95ms
    1 x beforeRenderRawModule mod_finder (Search Module) (1.52MB) (3.57%)
    19.58ms
    1 x afterInitialise (809.8KB) (3.08%)
    16.93ms
    1 x afterRenderComponent com_content (277.08KB) (2.27%)
    12.48ms
    1 x afterRoute (544.36KB) (2.01%)
    11.01ms
    1 x After Access::preloadPermissions (com_content) (2.01MB) (1.29%)
    7.08ms
    1 x afterRenderRawModule mod_finder (Search Module) (278.92KB) (0.86%)
    4.75ms
    1 x afterLoad (458.97KB) (0.77%)
    4.26ms
    1 x beforeRenderComponent com_content (34.09KB) (0.21%)
    1.13ms
    1 x After Access::preloadComponents (all components) (107.34KB) (0.17%)
    960μs
    1 x Before Access::preloadComponents (all components) (33.47KB) (0.14%)
    751μs
    1 x Before Access::getAssetRules (id:4273 name:com_content.article.3376) (66.65KB) (0.04%)
    227μs
    1 x After Access::getAssetRules (id:4273 name:com_content.article.3376) (8.72KB) (0.03%)
    153μs
    1 x afterDispatch (2.28KB) (0.02%)
    125μs
    1 x afterRenderModule mod_finder (Search Module) (1.28KB) (0.02%)
    107μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0%)
    25μs
    1 x beforeRenderModule mod_finder (Search Module) (720B) (0%)
    11μs
32 statements were executed, 3 of which were duplicates, 29 unique21.49ms400.05KB
  • SELECT @@SESSION.sql_mode;94μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `facv2_session` WHERE `session_id` = ?134μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `facv2_session` WHERE `session_id` = :session_id LIMIT 186μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `facv2_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)2.03ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `facv2_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1302μs1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `facv2_viewlevels`97μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `facv2_usergroups` AS `a` LEFT JOIN `facv2_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest141μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `facv2_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`555μs3.48KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `facv2_menu` AS `m` LEFT JOIN `facv2_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`828μs133.17KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`435μs3.88KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id` FROM `facv2_content` WHERE `alias` = :alias AND `catid` = :catid180μs1.34KBParams/components/com_content/src/Service/Router.php:263Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `facv2_template_styles` AS `s` LEFT JOIN `facv2_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1235μs880B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT s.id, s.template, s.home, s.title AS long_title, s.params FROM facv2_template_styles AS s WHERE s.client_id = 0 AND s.template = 'rt_ambrosia' ORDER BY s.id192μs800B/libraries/gantry5/src/classes/Gantry/Joomla/StyleHelper.php:69Copy
  • SELECT * FROM `facv2_languages` WHERE `published` = 1 ORDER BY `ordering` ASC161μs1.59KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `facv2_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)558μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `facv2_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 02.5ms185.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `facv2_content`617μs3.02KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `facv2_content` SET `hits` = (`hits` + 1) WHERE `id` = '3376'1.55ms48B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `facv2_content` AS `a` INNER JOIN `facv2_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `facv2_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `facv2_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `facv2_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `facv2_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)413μs22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`430μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `facv2_contentitem_tag_map` AS `m` INNER JOIN `facv2_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)228μs3.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`427μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM facv2_fields AS a LEFT JOIN `facv2_languages` AS l ON l.lang_code = a.language LEFT JOIN facv2_users AS uc ON uc.id=a.checked_out LEFT JOIN facv2_viewlevels AS ag ON ag.id = a.access LEFT JOIN facv2_users AS ua ON ua.id = a.created_user_id LEFT JOIN facv2_fields_groups AS g ON g.id = a.group_id LEFT JOIN `facv2_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC888μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`388μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `a`.`menutype`,`a`.`title` FROM `facv2_menu_types` AS `a` WHERE `a`.`client_id` = 0147μs608B/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:138Copy
  • SELECT m.id, m.alias, m.path AS route, m.level, m.parent_id FROM facv2_menu AS m WHERE m.menutype = 'mainmenu' AND m.parent_id > 0 AND m.client_id = 0 AND m.published >= 0 ORDER BY m.lft582μs1.98KB/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:791Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `facv2_modules` AS `m` LEFT JOIN `facv2_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `facv2_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`558μs1.83KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `name`,`element` FROM `facv2_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1307μs656B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `facv2_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)167μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `facv2_scheduler_tasks` AS `a` WHERE `a`.`state` = 1205μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `facv2_session` WHERE `session_id` = ?172μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `facv2_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?5.88ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy