Alice Hoffman Interview, plus links to author biography, book summaries, excerpts and reviews

Alice Hoffman
Photo: Deborah Feingold

Alice Hoffman

An interview with Alice Hoffman

Alice Hoffman talks about four of her books: The World That We Knew (2019), The Marriage of Opposites (2015) and The Dovekeepers (2012), and her 2005 collection, Blackbird House.

The World That We Knew

The World That We Knew is being called another Alice Hoffman masterpiece. What was the evolution of this novel?

Years ago I met a woman in Florida who asked me if I would write her life story. She had been a hidden child in France during the Holocaust, sent to a convent by her parents in an attempt to rescue her. She felt that if the story of the hidden children wasn't told, it would be forgotten. I thought about what she had said for a very long time, and in 2016 I began to write The World That We Knew.

Discuss how you used magic to reach the emotional heart of such a cruel time in history.

So many novels have been written about the Holocaust that I felt I wanted to tell a story from a different point of view. I approached this time of destruction as a dark fairy tale. It was a time when nothing made sense, and although I most often write to make sense of things, doing so was impossible given the circumstances. As a friend who is a historian wrote, "History is luck." Who gets on a train and who doesn't can change everything. We can control our choices and our reactions, but we can't control fate. I was most interested in writing about the emotional lives of the characters, how they dealt with grief and sorrow, and how they continued to find joy in life.

How do you conduct research that results in such a rich and detailed story?

I always do a huge amount of reading, but for this novel I wanted to see the landscape of the novel for myself and met people who had been directly affected by the history I was writing about. I traveled to France and visited the chateaus where Jewish children were sent when they were separated from their parents. (At first only foreign Jews were deported, then Jews over the age of sixteen, so that parents and children were separated. In the end, all Jews including infants were deported.)

I was fortunate to meet several child survivors in France, now in their eighties and nineties, and several in the United States, all of whom were so generous in sharing their stories with me. I was in awe of the survivors I spoke with, and although I am not telling the story of their lives, the emotions they shared with me were very moving and affected me greatly.

Do you see similarities between the time period in The World That We Knew and the world we're currently living in? What can we do to combat hatred?

In France, the political situation began with a hatred and fear of refugees, then of Jewish refugees, then of all Jews. Hatred starts small and grows larger when it's ignored. When people are bystanders it grows even larger, and before long it is out of control.

I think that unfortunately there are many parallels between what happened in Europe in the 1930s and '40s and what is happening in our country now, both at the border and throughout the states. It's so important to speak out and to remember the stories of the past. We have to remember the cost of hatred and the importance of fighting for a world in which everyone has rights.

Was there a character with a past that moved you most?

The mother superior, Sister Marie, who was born Madeleine de Masson into an Algerian Jewish family who changed both their name and their religion so they would fit into French culture. Her story, her deep love for her grandfather, and her conviction that she must do good in the world always moves me and makes me feel grateful that despite the horrors in the world, there will always be people who are compelled to do the right thing.

Did writing a novel set in such a tragic time affect you while you were working on the book? How did you transform sorrow into a work of beauty?

I always start a novel with a question. With The World That We Knew my question was How do survivors of tragedy manage to go on? I found my answer when speaking with survivors in this country and in France. Even those who had suffered enormous loss valued life, wanted to live, and found joy in their families, their work, their memories, and their daily lives.

I do think all artists and writers have a similar goal: to spin straw into gold, to make something beautiful out of dust and ashes.

There are many different types of love in the novel. The power of a mother's love is particularly moving. Can you tell us about your own relationship with you mother?

My relationship with my mother and grandmother are likely at the heart of this book. There isn't a day when I don't think of them. They influenced my life more than anyone. My grandmother told me my first stories and encouraged me when I wanted to be a writer. My first story was about her, and it was the story that made it possible for me to go to the Stanford University [Creative] Writing Program. My mother was an unusual, beautiful, and eccentric person, a lover of books and theater. I do believe that the loss of one's mother changes everything. No matter how old you are when it happens, you are an orphan.

Ava is an intriguing character who makes us question what it means to be human. Did her story surprise you, and did she change during the writing of the novel?

I never know what characters in a novel will do. I think I understand them, but in the process of writing I grow to understand them at a deeper level. Ava changed because of her experiences, and because she knew love. I didn't expect her to wish to be human—if anything I thought she was lucky to be "superhuman." But in loving a child, she became human. It was beyond choice. It was her fate.

You've spoken before about the inspiration you find in fairy tales. Were they an inspiration for this story, and if yes, how so?

My earliest readings were fairy tales, myth, fantasy, and science fiction. I do believe that what you read as a child affects you hugely as a person and as a writer. Fairy tales are so psychologically true, more so than any other literature, and children can sense their emotional depth. These stories are often a guide through sorrow to joy, with instructions on how to navigate the world. For me, they are the original literature, told by grandmothers to grandchildren.

The World That We Know is also about navigating through a tragic time, and I thought of it as a story told by a mother and grandmother to a daughter, a cautionary tale and an instruction on how to survive.

Can you tell us what you're working on now?

I'm working on the third book in my Practical Magic series. The second book is a prequel called The Rules of Magic, which takes place in New York City in the 1960s. The third book is about Maria Owens, the original ancestor of the family, in the 1600s. It's been great fun to be back with the Owens family and to discover their secrets.

The Marriage of Opposites

Though Camille Pissarro is globally known and celebrated, few people know this part of his history. What inspired you to write about Rachel Pizzarro? Where did you first learn about her?

I was at an exhibit of Pissarro's work at the art museum at Williams College. It was there I first realized he was a Jew and had been born in St. Thomas. I'd always assumed he was French, as he was one of the fathers of Impressionism. I then wanted to discover what else I didn't know. When I began reading about the scandal his mother's marriage had caused I knew I had found my story.

Your female protagonists are always formidable. How did you find and develop Rachel's voice?

Luckily, my characters come to me fully formed. After reading about Rachel she was alive in my imagination and she spoke directly to me.

The title of the novel The Marriage of Opposites could apply to almost any marriage—or relationship, for that matter—in the work. How did you select that title?

"The Marriage of Opposites" is an alchemical term—to create any substance or circumstance one has to combine opposite materials, in love and in all things. This term seemed so right for the marriage of Camille Pissarro's parents, but also for many other relationships in the novel, and then in a broader historical sense—that people from all over the world are thrown together on this island and that they create a marriage of their cultures.

The Museum of Extraordinary Things was set in New York City at the turn of the twentieth century, The Dovekeepers was set in biblical Judea, and The Marriage of Opposites is set in the 1800s. How do you create such rich and varied historical settings? What was your research and writing process for The Marriage of Opposites?

I usually read everything I can, then begin to write, then research again. It's a process of layering fact and fiction. I want all the historical references to be correct, but I am also creating characters, both the ones based on historical characters and the ones who are completely imagined.

You've penned several dozen novels for both children and adults, as well as a memoir. Do you have a preference for a particular age group? Does a specific theme seem to weave its way into works for one age versus another? What do you see as the difference between writing in each genre?

I love writing for children and teens, mostly because I always feel that is such an important time in a reader's life. What you read at that point forms who you are as a reader. Each book comes to me as an adult novel or a children's novel or a teen book or nonfiction. Some work comes to me as stories, other as novels. My themes are always the same: Love, loss, and survivorship. But the way I write about these themes differs, depending on the book.

Of your writing, do you have a favorite work? Is there one character whose story you'd like to return to?

I often miss characters when a book is written. I have missed Rachel Pizzarro greatly. I often think she is the sort of woman I wish I could be. I've thought it might be interesting to know more about the world of Practical Magic. And I've just written a children's book called Nightbird, and I very much miss the town of Sidwell, Massachusetts, that I imagined.

Jewish life and history play a major role in your novels. What draws you to exploring Jewish themes?

For me, the Jewish themes very much related to my grandmothers and to their stories and to their struggles. It's part of telling the story that hasn't been told. I've enjoyed learning more about my own history and culture.

To further the above question, your publisher said that you consider The Marriage of Opposites the "story of the ultimate Jewish mother." Both Rachel and Madame Pomié are intense mothers. Are they modeled after anyone in your own life?

Rachel Pizzarro has something of a bad reputation, as being bossy and controlling, which is the stereotype of the "Jewish mother." I wanted to explore this and understand what it is to be a mother in a dangerous world where you are an outsider and your ultimate goal is to protect your children no matter the cost. Again, my grandmothers were the model for women who would do anything for their children.

Could you describe when and where you like to write? What does your desk look like?

I have to say, I don't have a desk. I write wherever I am, whenever I can. Noise doesn't bother me, and I prefer not to have a window, which would distract me. I write the way I read—on a couch, in a bed, on a train.

In a 2013 interview with Writer magazine, you said, "The idea of magic and reality intertwined is really appealing to me. I lived in a working-class suburb in Long Island, right over the border from Queens, so it was very gritty. Every house was the same. There were no trees. It was neither here nor there. It was the least magical place. And yet it felt magical. If you can view that place with magic, any place can be filled with magic." Are there any magical stories, histories, or eras that you haven't yet explored in a novel that you're interested in researching one day?

For me, magic is a part of every story. It is the original story—myth and fairy tale— and I can't imagine writing without some element of magic being a part of my work.

We've read that some your favorite authors include Emily Brontë, Toni Morrison, and Ursula Le Guin, among many others. Of your favorite books, is there one in particular you wish you'd written? Is there one particular book you return to often?

I love those authors. Toni Morrison is the greatest living author and I admire her more than any other writer. I am an Emily Brontë fanatic—for me, Wuthering Heights is the greatest psychological novel ever written. And as a fan of fantasy and science fiction, I have to say Le Guin transcends all genre writing—her worlds are astounding. I also often go back to childhood authors that meant so much to me, especially Ray Bradbury, who taught me so much about what it means to be a writer, and what it means to be human.

Are you working on anything new? Is there anything you can share with us?

My next novel is something completely different—modern, edgy, set in New York, with a character named Shelby who is desperately trying to find her place in the world.




Alice Hoffman discusses the inspirational and deeply personal reasons she wrote The Dovekeepers

In the short video below, Alice Hoffman talks about her personal reasons for writing The Dovekeepers (2012), and in a written interview she talks about her collection Blackbird House (2005), a series of interconnected short stories set in one Cape Cod house over a period of centuries.


Alice Hoffman on Blackbird House

Jennifer Morgan Gray: Why did you decide to construct Blackbird House as interweaving stories in lieu of a more straightforward narrative structure? Was it liberating to write in so many different points of view? What were the challenges of this framework?
Alice Hoffman: The book began after The Boston Globe asked me to write a short story set on the Cape in the summer. Once I wrote the initial story, I was interested in what else might have happened at the old farm I'd written about. It was great fun and very liberating to pick and choose time periods and characters over several centuries. Rather than being a challenge, it was a pleasure to work with the format of linked stories. I love to read them, and I love to write them. It's wonderful to move through time and space.

JMG: The book is titled Blackbird House, and the house itself and the hill on which it sits are the unifying link for the stories. Was there a particular home that served as the model for Blackbird House? If so, how did your relationship with the house change and evolve as you wrote the book?
AH: I have an old farm out on Cape Cod. It was very rundown when we bought it, and there were rumors that it was haunted. On my first visit, I noticed a woman, a ghost in the parlor. Then I looked more closely and discovered it was a mirror and that the woman was me. I knew then it was my house. As we were fixing it up, owners and renters from the past visited. They had all loved the house in their time, and I began to have the sense of how many lives had been lived in the rooms we now lived in.

JMG: Blackbird House stretches over hundreds of years. How did you prepare for writing fiction that spans this large amount of time? Did writing the book necessitate extensive research into the history of the Cape Cod area? How did you thrust yourself into the various time periods of the book while you were writing about them?
AH: I did quite a bit of research into the history of my own house, and the history of the towns of the outer Cape. I knew about the natural world of the Cape, having spent twenty-five years as a part-time resident, and was delighted to use that information. The sense of history in Massachusetts, and on the Cape, is so present, and so much of the landscape is unchanged; and so it was easy to imagine what life was like in the past.

JMG
: The blackbird - which turns white - is a recurrent motif in the book. How did you conjure up such a striking image that threads throughout the story? How is it a harbinger of good? Of evil? How do you view the blackbird as a supernatural image, and how is it firmly rooted in reality?
AH: Blackbirds have long been symbols in the myths of many cultures and have symbolized both creation and death. In literature the "black bird" - whether a raven or a falcon or a crow - often appears as a symbol of remembrance, mystery, sorrow. Sometimes blackbirds are seen as evil, sometimes good; always they possess an intelligence that is nearly supernatural.

JMG: Sweet peas and turnips, introduced in the first story, also reappear throughout the book. What caused you to incorporate these two natural elements, both rooted in the earth, each with their own distinct beauty? Did they have a symbolic meaning to you while you were writing?
AH: At my farm, old gardens are everywhere, even deep in the woods. In fact, our place was called "Sweat Pea" at one time, and we have so many, we pull them out as though they were weeds. We have orchards and lilies that someone once planted, and the idea that what once has been still influences the present is at the core of Blackbird House. The outer Cape is famous for its turnips - a funny, lumpy, rather ugly vegetable that can be surprisingly delicious.

JMG: In each of these stories, the main characters experience a turning point that acts as a catalyst for change. What about these watershed moments is so compelling to you? Did any of those moments surprise you in the book as you were crafting the characters? Did you experience a similar turning point while were writing Blackbird House, where the book took a different form or trajectory?
AH: Because I could pick and choose the moments I would write about as the book moved forward in time, I chose the turning points in characters lives - sometimes they were small, and went unnoticed by the character - going off to Harvard, for instance. Sometimes they were huge - a marriage, a murder, a death. How we respond at these difficult, transitional times in our lives reveals who we are as human beings. I was constantly surprised by my characters and their choices - I think I found Violet the most surprising character of all. She was so headstrong, so much herself, and she was still able to change even when she was a very old woman.

JMG: Did you write the stories chronologically, as they are presented in the book? Or was there one character or situation that compelled you to write first, then frame the rest of the stories around that tale? Was there one individual chapter that presented a particular challenge to write? Which one?
AH: The first story I wrote was "The Summer Kitchen" - this was the story I wrote for The Boston Globe. It's the second to last story in the book. The final story, which follows the same family, was the last story I wrote. All of the other stories grew out of my interest in who had come before, who else had lived in Blackbird House. Some of the characters had too much life to be only one story. Violet, for instance, and Emma and Walker, the children who began the book.

JMG: This book is rife with life-altering accidents - from the gale that sweeps Coral's family away from her in "The Edge of the World" to the car crash that causes Lion and his wife to perish in "Lionheart." How do the characters balance what they can control versus that which they have no agency over? What is your personal view about the hand of fate in everyday life?
AH: Out on the Cape, weather is huge. A life at sea means a life battling weather, and the graveyards are full of such people. I think the characters do the best they can, but they are dealing with forces that cannot be controlled, from the weather to war to fate.

JMG: "From every bitter thing, after all, something hardy will surely grow," opens "The Witch of Truro," one of the stories featuring Ruth (p. 23). I was struck by how this sentiment resonates throughout the book. What about adversity enables each of your protagonists to thrive? Conversely, how do adverse circumstances cause them to doubt themselves and bury their feelings within?
AH: Sorrow defines characters in fiction, just as it defines us. I do believe that the worst of times sometimes forms the best of what's inside us. Throughout Blackbird House what anyone tries to bury almost always surfaces in some way.

JMG: "He thought about how love could move you in ways you wouldn't have imagined, one foot in front of the other, even when you thought you had nothing left inside," thinks Vincent early in the book (p. 21), in "The Edge of the World." How does Vincent, and the other characters of Blackbird House, seek out love? What does love make them do that is uncharacteristic? While you were writing, did you view love as the guiding force of these stories?
AH: I see love as the guiding force of most everything. Everything done for the good, at any rate. Fear and love seem to be the two motivating forces within the book. Vincent, for example, is a character who feels he's lost everything, but something remains deep inside. He keeps moving, until he finds his way home and his true self.

JMG: "He looked past anything he didn't want to see, and therefore he often didn't recognize the truth even when it was staring him right in the face," you write of Larkin (p. 52) in "Insulting the Angels." How does his denial of anything distasteful limit his understanding of the world around him? How do others in the book approach unpleasantness and pain?
AH: The characters all approach pain and loss and love in very different ways. In many cases it takes a while for them to understand the truth of their own actions. Isn't that true of us all? I think in the case of Violet, her growth in the way she deals with loss and pain is most interesting.

JMG: Loneliness poses a visceral threat to the characters in every facet of this book. What do you think the characters here fear the most about being alone? Was there one relationship that develops from that search to join with someone that you found the most compelling to write? What character, if any, did you have the most difficult time connecting with?
AH: Blackbird House is about the importance of connecting with another person. There is such a need for that, which is so easily seen in a wild, lonely place such as the Cape. Because each character is a little piece of me, I never have trouble connecting with them! I know them inside out, even though they make some surprising choices sometimes.

JMG: When we spoke about your novel The Probable Future last year, you mentioned that your own illness affected how you rendered that novel's protagonist and her battle with cancer. How did your own experience inform the stories that focus on Emma, the little girl in "The Summer Kitchen," who successfully overcomes cancer but wistfully idealizes her life before cancer?
AH: When I was going through my treatment, my next door neighbor, a little girl, was battling cancer as well. She was my inspiration for "The Summer Kitchen." Although the story is not about her or her family, her courage influenced the story and was inspirational for me as I was going through treatment.

JMG: Do you have any special routines or rituals you adhere to while you're writing that facilitate the process and bring you inspiration and creativity? What are they?
AH: I used to have rituals - painting my office a different color, setting out items that remind me of the book - now I just write. Many of these stories were written on the Cape - "The Wedding of Snow and Ice" was written in a snowstorm. The landscape itself was so inspiring that was enough for me.

JMG: Is there anything in particular that you're working on right now? What can your readers look forward to seeing on the shelves from you next?
AH: I have a new novel, The Ice Queen, about a frozen woman who is hit by lightning and suddenly comes alive. It's an erotic fairy tale about what happens when we freeze our emotions - about all that we bury deep inside. A teen novel, The Foretelling, will be out in the fall; it's set in the Bronze Age, about the daughter of an Amazon queen, and about the ways war can ruin us and love can save us.
(BookBrowse note: The Foretelling: Sept 2005 from Little, Brown & Co)

Jennifer Morgan Gray is a writer and editor who lives in Washington. This interview is reproduced with the permission of the publisher, Ballantine Books. 2005.

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 Alice Hoffman at BookBrowse
The Invisible Hour jacket Magic Lessons jacket The World That We Knew jacket The Rules of Magic 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 Alice Hoffman 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

  • Anita Amirrezvani

    Anita Amirrezvani

    Anita Amirrezvani was born in Tehran, Iran, and raised in San Francisco. For ten years, she was a dance critic for newspapers in the Bay Area. She has received fellowships from the National Arts Journalism Program, the NEA's ... (more)

    If you enjoyed:
    The Dovekeepers

    Try:
    The Blood of Flowers
    by Anita Amirrezvani

  • Katherine Arden

    Katherine Arden

    Katherine Arden is the New York Times bestselling author of the Winternight trilogy and the Small Spaces Quartet. In addition to writing, she enjoys aimless travel, growing vegetables, and running wild through the woods with ... (more)

    If you enjoyed:
    The Dovekeepers

    Try:
    The Warm Hands of Ghosts
    by Katherine Arden

We recommend 62 similar authors


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...

A book is one of the most patient of all man's inventions.

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 31-May-26 10:51 PM
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
1780267897081 ms 1.78026789708E+012 ms 1 /root/website/app_server.cfm
192 ms 192 ms 1 top level /root/website/author_interviews/full/index.cfm
55 ms 55 ms 1 /root/website/author_interviews/full/dsp_main.cfm
52 ms 52 ms 1 /root/website/app_layout.cfm
37 ms 37 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
35 ms 35 ms 1 /root/website/app_globals.cfm
32 ms 11 ms 3 /root/website/adsystem/adsystem_mod.cfm
27 ms 14 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
19 ms 19 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
17 ms 17 ms 1 /root/website/adzones/AdZone6.cfm
13 ms 13 ms 1 /root/website/queries/qry_get_active_obc.cfm
12 ms 12 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
11 ms 11 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
10 ms 3 ms 3 /root/website/site/blocks/membership_advantages.cfm
9 ms 3 ms 3 /root/website/queries/qry_get_member_account_types.cfm
9 ms 9 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
8 ms 8 ms 1 /root/website/adzones/showcase_track.cfm
7 ms 7 ms 1 /root/website/adzones/AdZone2.cfm
5 ms 5 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_current_competition.cfm
3 ms 3 ms 1 /root/website/act_check_login.cfm
3 ms 1 ms 4 /root/website/actions/act_spider_tracker.cfm
3 ms 3 ms 1 /root/website/actions/adstatus.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_member_info.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/act_libraryIPLogin.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_menu.cfm
0 ms 0 ms 1 /root/website/Application.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_current_ezine.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_search.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
193 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 22:51:37.037
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=1ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 22:51:37.037
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=2ms, Records=2) in /root/website/actions/adstatus.cfm @ 22:51:37.037
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 @ 22:51:37.037
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=1ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 22:51:37.037
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=2ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 22:51:37.037
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=1ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 22:51:37.037
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 @ 22:51:37.037
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=3ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 22:51:37.037
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=3ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 22:51:37.037
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=5ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 22:51:37.037
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=14ms, Records=9) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 22:51:37.037
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) = 366

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 22:51:37.037
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) = 366

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=17) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 22:51:37.037
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) = 366
Parameter #2(CF_SQL_INTEGER) = 366

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=10ms, Records=8) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 22:51:37.037
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) = 366

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=9ms, Records=62) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 22:51:37.037
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) = 366

get_ads (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=2ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=1ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:51:37.037
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=1ms, Records=1) in /root/website/actions/udfs.cfm @ 22:51:37.037
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) = 3991

get_book_image (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/actions/udfs.cfm @ 22:51:37.037
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) = 3657

get_member_account_types (Datasource=bookbrowse_com_new, Time=1ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:51:37.037
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=11ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 22:51:37.037
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) = 1467
Parameter #2(CF_SQL_INTEGER) = 1467
Parameter #3(CF_SQL_INTEGER) = 1467

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 22:51:37.037
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) = 1467

get_books_by_author_id (Datasource=bookbrowse_com_new, Time=10ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 22:51:37.037
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) = 3913
Parameter #2(CF_SQL_INTEGER) = 3913
Parameter #3(CF_SQL_INTEGER) = 3913

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 22:51:37.037
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) = 3913

get_member_account_types (Datasource=bookbrowse_com_new, Time=4ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 22:51:37.037
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=5ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 22:51:37.037
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=5ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 22:51:37.037
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=7ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=6ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=0ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=4ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 22:51:37.037
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=1ms, Records=4) in /root/website/queries/qry_get_free_newsletters.cfm @ 22:51:37.037
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=1ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=2ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=1ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:51:37.037
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=
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/366/author/alice-hoffman
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=4076110
cftoken=e2857f9b8f01c07c-025B29EA-9DA1-E69B-F580E72FF5E18106
hitcount=1
lastvisit={ts '2026-05-31 22:51:37'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-05-31 22:51:37'}
urltoken=CFID=4076110&CFTOKEN=e2857f9b8f01c07c-025B29EA-9DA1-E69B-F580E72FF5E18106
view=books
Cookie Variables:
CFID=4076110
CFTOKEN=e2857f9b8f01c07c-025B29EA-9DA1-E69B-F580E72FF5E18106
Session Variables:
cfid=4076110
cftoken=e2857f9b8f01c07c-025B29EA-9DA1-E69B-F580E72FF5E18106
sessionid=BOOKBROWSE_4076110_e2857f9b8f01c07c-025B29EA-9DA1-E69B-F580E72FF5E18106
urltoken=CFID=4076110&CFTOKEN=e2857f9b8f01c07c-025B29EA-9DA1-E69B-F580E72FF5E18106
URL Parameters:
author=alice-hoffman
author_number=366
Debug Rendering Time: 9 ms