Garth Greenwell Interview, plus links to author biography, book summaries, excerpts and reviews

Garth Greenwell
Photo Credit: Max Freeman

Garth Greenwell

An interview with Garth Greenwell

Meghan O'Rourke, the author of the New York Times bestseller The Invisible Kingdom: Reimagining Chronic Illness in conversation with the author about his book, Small Rain for The Yale Review.

Meghan O'Rourke Small Rain stages a writer's confrontation with mortality and unimaginable pain—a medical crisis which brings him into the grips of a bureaucratic medical system. Why did you think this was the material for a novel?

Garth Greenwell The book is not autobiography, but I underwent a medical crisis in 2020 similar to the narrator's and emerged from it utterly bewildered—about what my body had undergone, about what the experience meant for my understanding of my life. That state of bewilderment is what compels writing for me, or at least novel writing. I think we need art because there are situations we can't think about with our other tools for thinking. I couldn't reason my way to an understanding of what had happened to me; I needed to dwell in it. And to do that I needed the tools of fiction: character and scene, and also the peculiar pressure of the aesthetic.

By "aesthetic," I just mean work whose meaning resides not just in its content, in what it says, but in its medium. In aesthetic writing, the nondenotative aspects of language—syntax, image, repetition, rhythm, the deep histories of words—become dense with meaning and emotion; they exert a pressure on connotative meaning; they allow language to mean more. Aesthetic writing isn't particular to fiction, of course, but the aesthetic is more available to me, just because of my sensibility, the tools I have at my disposal, in fiction.

I also needed invention, I needed to make things up. People sometimes treat my fiction, which often uses material from my life, as though it were a transcription of my experience. It isn't. It has always been clear to me that my books are, and that I want them to be, fiction; all three of them are full of invention. When people ask me, as they sometimes do, how much of a novel is "true," it feels like a category error. The ideas of true and false don't map onto the literary object we're supposedly discussing. Lived experience has been utterly transformed. It's like looking at someone's oil painting and asking, "How much of that is flax?"

MO'R Ha! As a poet who draws on lived experience, I think of the poems as aesthetic objects that have little to do with autobiography—so this is a satisfying analogy.

At one point in Small Rain, the narrator says, "The pain defied description, on a scale of one to ten it demanded a different scale." In her own writing about illness, Virginia Woolf lamented what she called "the poverty of the language" we have for illness and pain. As she put it, "Let a sufferer try to describe a pain in his head to a doctor and language at once runs dry. There is nothing ready made for him. He is forced to coin words himself." Do you agree? Was overcoming this poverty of the language part of the aesthetic challenge of writing this book?


GG I think that's just baked into art as one of the challenges; we always feel the poverty of our medium. (We also often feel its richness.) Art tries to make incommensurate things commensurate. Trying to put the world on the page is a wildly quixotic endeavor: How does one translate sight or taste into language, much less feeling? I've often said that writing sex (which I'm often asked about) and writing the experience of eating a muffin are equally difficult to do well, by which I mean absolutely impossible. All writing strives to cross that gap between experience and the medium we have to express experience.

That said, I do think extreme pain doesn't just resist but destroys language; it places our medium beyond our grasp.

MO'R Precisely. In her seminal text, The Body in Pain, Elaine Scarry famously wrote, "Physical pain does not simply resist language but actively destroys it, bringing about an immediate reversion to a state anterior to language." As someone who has experienced many kinds of pain—some obliterating, some chronic—I felt you fully captured the strangeness of acute pain. (For another conversation: There is, too, the way both sex and pain can produce a kind of shame that is almost hard to recognize one feels.)

GG I think that's true. I think I've always been interested in the body in crisis—and sex and pain are both kinds of crisis. In Small Rain, the narrator says he feels annihilated by the pain, "a creature evacuated of soul." It's important that in that first line of the novel he's reporting his experience of that first crushing pain, not in the grip of it. In the grip of it, he's not capable of speech. Woolf has that beautiful image in her essay on sickness of the utterly inviolable privacy of some secret chamber of the self: she says it's like a patch of ground where not even the prints of bird feet disturb the snow. That's where overwhelming, crushing pain resides. I don't want to say it places us beyond humanness; clearly, it's part of humanness, something that we undergo. But it displaces many of the recognizable signposts of human experience.

MO'R The writing about your narrator's hospital stay is granular and detailed. You make the reader feel the almost second-by-second ordeal of being in a hospital—the many needles, the noises, the lights, the grim ceiling tiles one stares at during even grimmer procedures. (This all rang true to me as someone who has spent a lot of time in hospitals.) Why did you decide to enact the reality of the medical system in such detail?

GG Mostly because I just thought it was interesting. Woolf also notes in her essay that the experience of being gravely ill—or even of being moderately ill, of being indisposed—is weirdly underreported in literature. (I've started keeping a list of great hospital sequences in literature; it's a surprise to me how few they are.) The texture of life in the hospital, which is at once utterly regimented and also weirdly unmoored, rigidly timed and timeless—capturing that texture is one of the projects of the book.

MO'R "Rigidly timed and timeless" is a fantastic description of hospital chronology.

I like narratives that have clocks, because clocks (paradoxically, maybe) give you enormous freedom with time.


GG I do think that's how it feels. And capturing the texture of existence is at the heart of artmaking for me. If there is a hope of uncovering the revelatory, of arriving at something "universal" to human experience, it lies in the devotion to the particular, in examining the moment-by-moment experience of an embodied being. Certainly that's true of the tradition I feel like I'm working in, which I guess I would call the novel of consciousness.

MO'R Narrative time in Small Rain moves slowly and blurrily, much the way it does in hospitals. Tell us more about the formal choices that you made here—why and how did you slow time down so much?

GG This ties in with the idea of the novel of consciousness, which has a deep kinship with the lyric poem. It depends on a kind of sifting of experience. We are quicksilver beings; we can experience in a flash the whole gamut of emotion. Slowing down time offers a chance to unpack experience, to try to sift through the information that makes charged moments feel charged.

I like narratives that have clocks, because clocks (paradoxically, maybe) give you enormous freedom with time. If something is keeping external clock time for you, you're free to explore internal time, our experience of time (now fast, now slow) as wildly as you want. Virginia Woolf can fly off anywhere she wants in Mrs. Dalloway because the chimes of Big Ben will always anchor her again in clock time. The regimentation of the hospital is something like that. Every four hours, the narrator will get his pain medication; every eight hours, he'll have a heparin shot. So the narrative can go where it wants: to his childhood; to his relationship with his partner, L; to his thoughts on art and poetry.

The novel's first sentence suggests how time will work in the novel. It places us in the ER, where the narrator is being asked about his experience; it also reaches back to the experience of the pain itself in that impossible attempt to recover and catch it. Time in the novel functions like a set of transparencies laid atop one another. Which is how memory works, I think, and especially how sensory experience interacts with memory: when we encounter a smell, for instance, or a taste, we also encounter all our memories of that smell or taste.

MO'R Researching The Invisible Kingdom I was struck by the fact that there are not as many English-language books about illness as I wished there were. I found myself clinging to the ones I liked—Anatole Broyard's Intoxicated by My Illness; Emily Dickinson's poems about pain and migraines. Do you see yourself as writing within a tradition of literature of illness? If so, how did that shape your sense of what you were doing?

GG I don't think I was consciously working within that tradition, in part because, as you say, there are fewer of those texts than one would expect. Certainly I had read around in what we might think of as the literature of illness, especially in the literature of AIDS—and Hervé Guilbert's accounts of hospitals and clinics, just to name one example, surely influenced the way I imagined those environments in Small Rain. But that wasn't conscious. My greater awareness of literature exploring the experience of being a hospital patient has come after writing Small Rain, and again, it's a little hard to find passages that do the work I'm interested in. There's the beginning of James Baldwin's Tell Me How Long the Train's Been Gone. There's the (tremendously powerful) middle section of Miranda July's The First Bad Man. There's Pamela Erens's Eleven Hours. I haven't read the Broyard—I'll seek it out.

MO'R I think it's wonderful; it captures the disjunction between intimacy and bureaucracy that is key to our experience of health care. The other day, a newly minted medical doctor and I were talking about the challenges patients experience with our healthcare system, in particular in hospitals; a main problem, I suggested, is that we experience what for us are deeply intimate crises in the most bureaucratic and impersonal environments, amongst harried and busy strangers. I recall being struck that it was a doctor neither my mother nor I had ever met who, in the hospital, told us she was dying. Not her oncologist; not her primary care doctor; the random resident who was on call that day that she was admitted from the ER.

I am not sure what there is to be done about this fact, but naming that reality, as you do, feels very important to me. What felt most important here about the milieu of the hospital as a setting for your book?


GG This was one of the primary points of fascination for me. The narrator receives so much particularized attention, and his body is made to produce so much particularized information. But that particular attention strips him of his individuality, of what he feels as his personhood. It's only in his moments with his partner, L, that he feels returned to himself, a person again, not just a patient. He longs to be seen by someone who knows him in the context of his life outside the hospital, because so much of who he is is that context.

MO'R That longing to be fully seen in your hospital bed is very powerful; I felt it too. We want to be visible as we face our mortality.

GG That's right, I think. But there's an asymmetry built into the patient-health practitioner relationship: the patient is undergoing something utterly unprecedented, life-changing, all-consuming. The health practitioner is doing her job—a job that is largely routinized. The narrator in Small Rain feels himself reduced to "an interesting case" for the people who are treating him—and reduced is the word; he feels this as a diminishment. He's affronted (when he's not charmed) by the fact that the ICU nurses chatter about their days outside his room while he (and everyone else in the ICU) is undergoing something so dire.

That asymmetry doesn't shut down human interaction, though, or human recognition: acts of tenderness, intimacy, connection still occur. The narrator compares his relationship to his nurses to his experience of teaching. The teacher-student relationship is asymmetrical, too—routine on one side and singular, unprecedented on the other. (You're only ever a tenth grader once.) At the end of the day, the teacher goes home; she sets aside (or tries to, anyway) the urgent worries of the day, the narratives of her students' lives. Surviving as an educator means drawing a boundary around one's care for one's students, leaving it, as best one can, in the classroom. That doesn't negate the care; it doesn't make it unreal. And both of these are relationships that have an ending baked in: for both the health practitioner-patient and the teacher-student relationship, success means the relationship ends.

MO'R Even as hospitals can feel impersonal and bureaucratic, they are full of some of the most tender and surprising intimacies we may ever encounter; I think of the ICU nurse that your narrator becomes friends with. There is an exquisite passage near the end of your book where a tired doctor sits down with your narrator and, perhaps because she has had a difficult day, engages with him about the difficulties of his experience more fully than anyone has so far. It's a fantastic exchange. Can you tell us more about this section—why you wrote it, if you always knew it would be there, what it means to you?

I do think art is useful to us, but I think that usefulness is hugely mysterious—you can't engineer it.


GG This is one of those humanizing moments. The danger of bureaucracy is that it can occlude personhood: thinking about someone as a patient can get in the way of seeing them as a full human being. On one hand, I'm not sure there's really a way to get around this, or even that we would want to get around it; if thinking of me as a piece of faulty machinery allows a surgeon, say, to intervene in a way that keeps me alive, think of me as faulty machinery! I don't think we need everyone we interact with to behold us in the fullness of our complex humanity. Bureaucracy, routinization, efficiency—these all have their place. I don't know where the right balance is—there isn't a perfectly right balance, I'm sure—and I'm very glad that, as you said, my job as a novelist is to describe the problems as we live them, not to design solutions.

But even if those systems structure and limit the ways human beings relate to each other, they don't entirely make human relating impossible. (Does anything?) A theme of all of my books is that any time two human beings have a face-to-face encounter, everything is possible—including cracks in bureaucracy, moments when two people can engage with each other as people. This is what the narrator feels in that moment with his surgeon, and he feels it happen more than once with Alivia, the nurse he spends the most time with. It felt important to me to have humanizing moments—not just because they're moments where the narrator feels seen in a more adequate way but also because they're moments when he sees, when the doctors and nurses become fuller human beings for him, too.

MO'R Some of the writing I admire most in Small Rain pertains to the narrator's own discomfort in his body, and the gentle appreciation he comes to have for it. You're written, previously, about eros; here, eros is replaced by thanatos—but also by a gentler emotion: tenderness. Is this a book, in some ways, about the problem—and perhaps redemption—of being a mind that inhabits a body?

GG Absolutely, yes. In some sense, the book is also a kind of biography of the narrator's body, the way his body is itself a historical record. He has always had an antagonistic relationship with it: he's taken it for granted, but more than that, he's resented it, even hated it. There's a crucial moment in the book, when the narrator is being bathed, that is among the most difficult things I've written. He looks at his body—which is covered in bruises and traces of adhesive, which has IVs and A-lines running into both arms—and, in describing it, comes to see his body as a suffering creature, as something available not just to the disgust and resentment he has always felt for it, but also to love. It's a kind of revolution for him to think that, to see the possibility (even if it remains, for him, impossible) of a radically different relationship to his body.

MO'R Even as the novel keeps us almost claustrophobically inside the hospital, we learn a lot about L, the narrator's boyfriend/partner, and how the two met and bought a house. Why did you include this interlude—which is a kind of reprieve from the hospital—in the book?

GG I guess I think one of the central questions of the book is domesticity—its pleasures and discontents and, more than that, whether it's possible to remain attentive to the experience of long life with another—I mean whether it's possible to resist growing numbed or deadened to one's day-to-day experience. Certainly my narrator has stopped seeing his life in anything like its fullness. He takes it for granted, as he has come, at least in some ways—maybe not disastrous but not great, either—to take L for granted.

Then illness and pain take that life away from him—for a few days, at least, it seems entirely possible that he might die. The paradox is that in taking that life away, illness restores his life to him: it shocks him into attentiveness. You know, in my first two books, this narrator is very attached to a sense of his life as adventure—as geographic adventure (they're books about an American abroad), and even more as erotic adventure. To be in his early forties, seven years into a long-term partnership, sharing a mortgage in a small midwestern town—from a certain perspective, that might seem like the opposite of adventure. But in the light of his own mortality, in that new attentiveness to his life this sickness gives him, he can recognize that domesticity is an adventure too.

MO'R The book is set during the pandemic and COVID politics play a role in setting up the atmosphere. Is the connection of the political and personal here important to you?

GG It is, and I think the explicit meditations on politics, and on life in a particular moment in America, are one way in which this book departs from my earlier work. I wanted to capture somehow, from the vantage of this hospital bed, in which an individual body is in terrifying, maybe terminal crisis, how the larger social body is in crisis too.

Or that's how it seems to me now, looking back. As I was writing, I was just trying to capture what it felt like to be in a particular body in a particular place at a particular time—and that means, necessarily, thinking about the larger social world in which that body is situated. Late summer 2020 was tumultuous: COVID, bizarre anti-masking hysteria, the approaching election, Black Lives Matter protests. It felt as if the country was under immense stress, as if the idea of a common national project had shifted out of reach.

The narrator lives in a small blue town in a very red state. There's no sealing himself off, as one can at least somewhat do in larger cities, from people who hold political beliefs that are repugnant to him. He's also a newish homeowner. This makes him think about how we live with one another, and it makes him take seriously virtues he had maybe been disdainful of before, virtues of neighborliness: the meaningfulness of talking about the weather, of bringing somebody a batch of cookies when a storm has damaged their house. A certain kind of thinking sees the political as utterly suffusing existence, and I guess I think there's a way in which that's true. But the narrator comes to see that maybe it's not the whole truth, and maybe the project of civilization, minimally conceived—the ability to live together without violence—depends on valuing spaces and ways of being with each other that de-emphasize explicit political allegiance. Some of the narrator's neighbors are Trump voters. They're still his neighbors.

MO'R As someone whose own work is invested in reimagining contemporary health care, restoring the ethic of care at the heart of it, I find myself hoping that doctors, nurses, and hospitalists read this book; certainly, I'll be recommending it to them. Do you have any such hopes? Do you think Small Rain might help shine a light onto the human realities behind medical bureaucracy, or is such a consideration not present when you are shaping a narrative?

GG Writing is such a private act; for the years that I work on a book, I'm not thinking at all about who might read it. I do think art is useful to us, but I think that usefulness is hugely mysterious—you can't engineer it. I sometimes think that the usefulness of art depends on a commitment to defending art's uselessness. What I mean is that it's only through an utter commitment to its own private, often formal or aesthetic ambition, however sealed off from utility it might seem, that art can become publicly useful—that it can "shine a light onto human realities," in your beautiful phrase. I'm being vague; I'm not sure I can do better. Maybe what I mean is that we can never know how our books are going to be received, how they will be useful (or fail to be useful) to other people. The idea that we can know the effect of anything we make is always an illusion. But for art to have a chance of reaching other people at all it has to have integrity first and foremost as art.

The ambition of this book—to embody, as deeply and vividly and complexly as possible, the experience of being a particular embodied being in time—is a formal project. I never write with any utility, any lesson, in mind. Existence doesn't offer lessons—though my narrator might be seeking them. But the experience of stepping into the light of another person's existence—the experience art offers with a vividness and profundity unavailable elsewhere—can have profound effects. I do hope doctors and other care providers read this book. Art calls us to attention—attention to the world, to the personhood of others. And attention is the heart of care.

----------

TYR Logo

To read more interviews like this one, and to support the work of The Yale Review, the oldest literary magazine in America, subscribe to TYR's quarterly print journal. Enter code BOOKBROWSE30 at checkout to save 30% on all subscriptions! Subscribe here.

Unless otherwise stated, this interview was conducted at the time the book was first published, and is reproduced with permission of the publisher. This interview may not be reproduced or reprinted without permission in writing from the copyright holder.

Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Books by this Author

Books by Garth Greenwell at BookBrowse
Small Rain jacket Cleanness jacket What Belongs to You jacket
Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

Read-Alikes

All the books below are recommended as read-alikes for Garth Greenwell but some maybe more relevant to you than others depending on which books by the author you have read and enjoyed. So look for the suggested read-alikes by title linked on the right.
How we choose readalikes

  • Rachel Cusk

    Rachel Cusk

    Rachel Cusk is the author of Second Place, the Outline trilogy, the memoirs A Life's Work and Aftermath, and several other works of fiction and nonfiction. She is a Guggenheim Fellow. She lives in Paris. (more)

    If you enjoyed:
    Small Rain

    Try:
    Second Place
    by Rachel Cusk

  • Paul Kalanithi

    Paul Kalanithi

    Paul Kalanithi was a neurosurgeon and writer. He grew up in Kingman, Arizona, and graduated from Stanford University with a BA and MA in English literature and a BA in human biology. He earned an MPhil in history and ... (more)

    If you enjoyed:
    Small Rain

    Try:
    When Breath Becomes Air
    by Paul Kalanithi

We recommend 4 similar authors

View all 4 Read-Alikes

Non-members can see 2 results. Become a member
Membership Advantages
  • Reviews
  • "Beyond the Book" articles
  • Free books to read and review (US only)
  • Find books by time period, setting & theme
  • Read-alike suggestions by book and author
  • Book club discussions
  • and much more!
  • Just $60 for 12 months or $20 for 3 months.
  • More about membership!

BookBrowse Book Club

Book Jacket
The Cover Girl
by Amy Rossi
Find them early enough, and they will always be her girls.

Members Recommend

  • Book Jacket
    The Sister's Curse
    by Nicola Solvinic
  • Book Jacket
    The Lost Story of Eva Fuentes
    by Chanel Cleeton
    A mysterious book links three women across generations in this novel by New York Times bestselling author Chanel Cleeton.
  • Book Jacket
    The Vanishing Place
    by Zoë Rankin
Who Said...

Everywhere I go, I am asked if I think the university stifles writers...

Click Here to find out who said this, as well as discovering other famous literary quotes!

Book
Trivia
  • Book Trivia

    Can you name the title?

    Test your book knowledge with our daily trivia challenge!

Wordplay

Solve this clue:

W the C A the M W P

and be entered to win..

Your guide toexceptional          books

BookBrowse seeks out and recommends the best in contemporary fiction and nonfiction—books that not only engage and entertain but also deepen our understanding of ourselves and the world around us.

 


Debugging Information
ColdFusion Server Developer 2021,0,13,330286
Template /author_interviews/full/index.cfm
Time Stamp 01-Jun-26 05:13 AM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780290834512 ms 1.78029083451E+012 ms 1 /root/website/app_server.cfm
312 ms 312 ms 1 /root/website/author_interviews/full/index.cfm
113 ms 113 ms 1 /root/website/app_layout.cfm
88 ms 88 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
76 ms 76 ms 1 /root/website/author_interviews/full/dsp_main.cfm
71 ms 71 ms 1 /root/website/app_globals.cfm
57 ms 19 ms 3 /root/website/adsystem/adsystem_mod.cfm
34 ms 34 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
33 ms 33 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
29 ms 29 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
28 ms 28 ms 1 /root/website/adzones/AdZone6.cfm
27 ms 9 ms 3 /root/website/site/blocks/membership_advantages.cfm
24 ms 24 ms 1 /root/website/queries/qry_get_active_obc.cfm
24 ms 8 ms 3 /root/website/queries/qry_get_member_account_types.cfm
23 ms 23 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
21 ms 11 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
19 ms 19 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
17 ms 17 ms 1 /root/website/adzones/showcase_track.cfm
14 ms 14 ms 1 /root/website/adzones/AdZone2.cfm
13 ms 13 ms 1 /root/website/act_check_login.cfm
13 ms 13 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
13 ms 13 ms 1 /root/website/queries/qry_get_member_info.cfm
12 ms 12 ms 1 /root/website/queries/qry_get_current_competition.cfm
7 ms 7 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
6 ms 6 ms 1 /root/website/actions/adstatus.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
3 ms 1 ms 4 /root/website/actions/act_spider_tracker.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_top_author_block.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_menu.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
5 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
317 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 05:13:54.054
SELECT	a.bot_number
        FROM	bots a
        WHERE	charindex(a.bot_name, ?) > 0
		OR a.bot_ip = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Parameter #2(cf_sql_varchar) = 127.0.0.1

get_member_info (Datasource=bookbrowse_com_new, Time=12ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 05:13:54.054
select 	a.*, 
    		b.member_account_type_name, b.member_account_type_charge, b.member_account_type_charge_frequency,  b.member_account_type_months, 
            c.member_chargetype_name, c.member_chargetype_number, a.member_classification_number, a.member_book_format
	
    from members a, member_account_types b, member_chargetype c
	
    where a.member_account_type_number = b.member_account_type_number
	and a.payment_method_id = c.member_chargetype_number
	and a.member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

adactive (Datasource=bookbrowse_com_new, Time=5ms, Records=2) in /root/website/actions/adstatus.cfm @ 05:13:54.054
SELECT	viewby, section
    FROM	adsystem 
    WHERE	active  = 1 
    AND		start_date <= GETDATE()
    AND 	(viewby = ? OR viewby = 'all')
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = non

get_current_ezine (Datasource=bookbrowse_com_new, Time=0ms, Records=1, Cached Query) in /root/website/queries/qry_get_current_ezine.cfm @ 05:13:54.054
select		top 1 ezine_number, ezine_dt, ezine_image, ezine_brief_description, ezine_introduction
from		ezines
where		ezine_active_flag = 1
and 		ezine_type_number = 4
and			ezine_dt < getdate()
order by 	ezine_dt DESC
get_current_wordplay (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 05:13:54.054
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 05:13:54.054
SELECT 	TOP 1 	x.competition_number, x.bb_briefs_flag
	from			competitions x
	
		WHERE	x.competition_dt <= getdate()
		AND		x.competition_expiration_dt > dateadd(d,-1,getdate())
get_current_competition (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 05:13:54.054
SELECT 	x.competition_number, x.book_number, x.competition_teaser_title, x.competition_teaser_description, x.competition_intro_text, x.competition_expiration_dt, x.bb_briefs_flag, x.competition_full_info_flag, x.competition_type, x.competition_optin,x.competition_optin_text, 
				a.book_title as "title",
				(b.author_first_name + ' ' +  b.author_middle_initial + ' ' + b.author_last_name) as "author",
	            f.edition_publish_dt AS "hardcover_publish_dt", f.edition_jacket_image as "hardcover_jacket_image",
				g.edition_publish_dt AS "paperback_publish_dt", g.edition_jacket_image as "paperback_jacket_image"
	
		FROM 		competitions x
		INNER JOIN	books a on a.book_number = x.book_number
		INNER JOIN	book_author_mapping c on c.book_number = x.book_number
		INNER JOIN	authors b on c.author_number = b.author_number
		LEFT JOIN	editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
		LEFT JOIN	editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1

		WHERE		x.competition_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

get_previous_arcs_for_ad (Datasource=bookbrowse_com_new, Time=0ms, Records=0, Cached Query) in /root/website/queries/qry_get_previous_arcs_for_ad.cfm @ 05:13:54.054
SELECT 	a.arc_number,a.arc_client_url,a.arc_active_dt, a.arc_off_ad_dt,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publisher, 
		b.ezine_preview_publish_dt, b.ezine_preview_jacket_desc, b.ezine_preview_number_of_pages, b.ezine_preview_bb_comments, b.ezine_preview_isbn13,
		c.ezine_preview_category_name AS "ezine_preview_category",
		(select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) as "reviews",
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating,
 			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,1))) AS numeric(12,1)))from arc_allocator where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS "decrating"

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
INNER JOIN ezine_preview_categories c ON b.ezine_preview_category_number = c.ezine_preview_category_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND getdate() < arc_off_ad_dt

ORDER BY a.arc_on_ad_dt DESC
get_future_obc (Datasource=bookbrowse_com_new, Time=6ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 05:13:54.054
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text, arc_on_ad_dt,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages, ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	
	WHERE 		arc_obc_flag = 1

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 05:13:54.054
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE 		a.arc_obc_flag = 1
	AND			a.arc_active_flag = 0
	AND 		arc_closed_flag = 1
	AND 		getdate() >= arc_on_ad_dt
	AND 		getdate() < arc_off_ad_dt
	ORDER BY  	NEWID()
get_recent_obc (Datasource=bookbrowse_com_new, Time=9ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 05:13:54.054
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 05:13:54.054
select	a.book_number, a.book_title, a.book_sub_title, book_short_summary,
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
        left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0 
   		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1 
		
       	where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)

		order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3997

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=22ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 05:13:54.054
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3997

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=6ms, Records=3) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 05:13:54.054
select	a.book_number, 
        		'' AS ezine_preview_number,
                a.book_title, 
                a.book_sub_title, 
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt",
                '' as "jacket"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
		left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
		
        where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)        
        UNION

		select	'' AS book_number,
        		ezine_preview_number, 
				ezine_preview_title AS "book_title", 
				ezine_preview_subtitle AS "book_sub_title",
                ezine_preview_publish_dt AS "publish_dt",
                ezine_preview_jacket_image as "jacket"
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		ezine_preview_bb_link < 1
        
        order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3997
Parameter #2(CF_SQL_INTEGER) = 3997

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=12ms, Records=2) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 05:13:54.054
select	ezine_preview_number, 
				ezine_preview_title, 
				ezine_preview_subtitle,
                ezine_preview_publish_dt ,
                ezine_preview_jacket_image
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		(ezine_preview_bb_link IS NULL
				 or ezine_preview_bb_link < 1)
        and		ezine_number > 0
        
		order by ezine_preview_publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3997

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=2ms, Records=4) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 05:13:54.054
SELECT		a.author_number,
			CASE	WHEN datalength(a.author_middle_initial) > 0 
					THEN a.author_first_name + ' ' + a.author_middle_initial + ' ' + a.author_last_name
					ELSE a.author_first_name + ' ' + a.author_last_name
					END AS "author_full_name",
			b.book_number, 
			f.book_title as "book",

			CASE	WHEN datalength(e.author_middle_initial) > 0 
					THEN e.author_first_name + ' ' + e.author_middle_initial + ' ' + e.author_last_name
					ELSE e.author_first_name + ' ' + e.author_last_name
					END AS "liked_author_full_name",
			e.author_number as "liked_author_number", 
			g.book_title as "liked_book",
			c.liked_book_number as "liked_book_number" 

FROM		authors a
INNER JOIN	book_author_mapping b ON b.author_number = a.author_number
INNER JOIN	liked c ON c.book_number = b.book_number
INNER JOIN	book_author_mapping d ON d.book_number = c.liked_book_number
INNER JOIN	authors e ON e.author_number = d.author_number
INNER JOIN	books f on f.book_number = b.book_number
INNER JOIN	books g on g.book_number = c.liked_book_number

WHERE		a.author_number = ?

ORDER BY 	e.author_last_name, e.author_first_name
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 3997

get_ads (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone2
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone2

get_member_account_types (Datasource=bookbrowse_com_new, Time=5ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 05:13:54.054
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_book_image (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/actions/udfs.cfm @ 05:13:54.054
select 	f.edition_publish_dt "hardcover_publish_dt", f.edition_jacket_image "hardcover_jacket_image", 
            g.edition_publish_dt "paperback_publish_dt", g.edition_jacket_image "paperback_jacket_image"
    
    from   	books a
	left join editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
	left join editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1
                    
    where 	a.book_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4877

get_member_account_types (Datasource=bookbrowse_com_new, Time=8ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 05:13:54.054
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=5ms, Records=2) in /root/website/queries/qry_get_books_by_author_id.cfm @ 05:13:54.054
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2575
Parameter #2(CF_SQL_INTEGER) = 2575
Parameter #3(CF_SQL_INTEGER) = 2575

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 05:13:54.054
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2575

get_books_by_author_id (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 05:13:54.054
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2759
Parameter #2(CF_SQL_INTEGER) = 2759
Parameter #3(CF_SQL_INTEGER) = 2759

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 05:13:54.054
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2759

get_member_account_types (Datasource=bookbrowse_com_new, Time=8ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 05:13:54.054
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=16ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 05:13:54.054
SELECT 	top 10 a.arc_number,arc_promo_text,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

FROM arcs a
INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

WHERE arc_closed_flag = 1
AND arc_obc_flag = 0
AND getdate() >= arc_on_ad_dt
AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1
and getdate() <= dateadd(day,1,a.arc_off_ad_dt)

ORDER BY NEWID()
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=13ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 05:13:54.054
SELECT 	top 3 a.arc_number,arc_promo_text,
			b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publish_dt, 
			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
					(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
					 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
					 ELSE 0
					 END)
				from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating

	FROM arcs a
	INNER JOIN ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number

	WHERE arc_closed_flag = 1
	AND arc_obc_flag = 0
	AND getdate() >= arc_on_ad_dt
	AND (select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) > 1

	ORDER BY a.arc_off_ad_dt DESC
get_ads (Datasource=bookbrowse_com_new, Time=9ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone6

get_type (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1112

get_quotes (Datasource=bookbrowse_com_new, Time=22ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 05:13:54.054
select top 1 ezine_number, ezine_quote, ezine_quote_title
	    from ezines
	    where len(ezine_quote_title) > 1
	    order by newid()
get_free_newsletters (Datasource=bookbrowse_com_new, Time=0ms, Records=4, Cached Query) in /root/website/queries/qry_get_free_newsletters.cfm @ 05:13:54.054
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
		 	AND a.adid NOT IN (?) 
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112
Parameter #3(CF_SQL_VARCHAR) = 0
Parameter #4(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        		AND a.adid NOT IN (?) 
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112

get_type (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 05:13:54.054
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 594


Scope Variables

CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=/root/website/author_interviews/full/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=CFGLOBALS=urltoken%3DCFID%23%3D4089072%26CFTOKEN%23%3D9e483e748444868f%2D10006891%2D9C66%2D2EE0%2DC9052420B2E70227%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2005%3A13%3A54%27%7D%23hitcount%3D331%23timecreated%3D%7Bts%20%272026%2D06%2D01%2005%3A13%3A10%27%7D%23cftoken%3D9e483e748444868f%2D10006891%2D9C66%2D2EE0%2DC9052420B2E70227%23cfid%3D4089072%23; CFID=4089072; CFTOKEN=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227; FREEACCESSCOUNT=0; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/author_number/3997/author/garth-greenwell
PATH_TRANSLATED=/root/website/author_interviews/full/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/author_interviews/full/index.cfm
SERVER_NAME=dev.bookbrowse.com
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Client Variables:
cfid=4089072
cftoken=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227
hitcount=333
lastvisit={ts '2026-06-01 05:13:54'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 05:13:10'}
urltoken=CFID=4089072&CFTOKEN=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227
view=books
Cookie Variables:
CFCLIENT_BOOKBROWSE=order=p#member_number=0#member_active_flag=0#member_logged_in_flag=0#library_user_flag=0#view=books#
CFGLOBALS=urltoken=CFID#=4089072&CFTOKEN#=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227#lastvisit={ts '2026-06-01 05:13:54'}#hitcount=331#timecreated={ts '2026-06-01 05:13:10'}#cftoken=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227#cfid=4089072#
CFID=4089072
CFTOKEN=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227
FREEACCESSCOUNT=0
Session Variables:
cfid=4089072
cftoken=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227
sessionid=BOOKBROWSE_4089072_9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227
urltoken=CFID=4089072&CFTOKEN=9e483e748444868f-10006891-9C66-2EE0-C9052420B2E70227
URL Parameters:
author=garth-greenwell
author_number=3997
Debug Rendering Time: 15 ms