John Irving Interview, plus links to author biography, book summaries, excerpts and reviews

John Irving

John Irving

An interview with John Irving

In two separate interviews, John Irving discusses his work: in the first, he talks about sexuality and character development in In One Person; and in the second interview, Harvey Ginsberg, John Irving's close friend and editor for more than fifteen years, talks to him about A Widow For One Year.

In two separate interviews, John Irving discusses his work: in the first, he talks about sexuality and character development in In One Person; and in the second interview, Harvey Ginsberg, John Irving's close friend and editor for more than fifteen years, talks to him about A Widow For One Year.



Colin W. Sargent, editor & publisher of Portland Magazine catches up with John Irving as he prepares to release his new novel, In One Person.

If you had a pulse in 1999, you were bombarded by "Good night you princes of Maine, you kings of New England." The catch phrase comes from the movie The Cider House Rules, based on John Irving's 1985 bestseller. It starred Tobey Maguire, Charlize Theron, and Sir Michael Caine.

And who doesn't smile upon hearing "Garp bit Bonkie" from Irving's 1978 bestseller The World According to Garp?

What quip from Irving's new book will be the meme that will define 2012?




How would you compare First Sister, Vermont, to St. Cloud's, Maine (in The Cider House Rules)?

First Sister, Vermont, and Favorite River Academy are not based on an actual town and a real school; they are entirely fictional. St. Cloud's, Maine - that lonely orphanage - is based on an amalgam of actual orphanages in northern New England.

But there is a comparison to be made between The Cider House Rules and In One Person. The similarity between opposition to abortion and opposition to gays and lesbians is growingly obvious. The righteous condemning of women with an unwanted pregnancy, and the condemning of gays and lesbians wanting to be treated the way straight people are treated, is borne of sexual disapproval; the social conservatives want pregnant women to "pay the price" for their presumed-to-be promiscuous sexual activity, and they want gays and lesbians to suffer accordingly. The sexual backwardness of our country has always fueled my writing - we are a sexually repressive country, a sexually punitive country.

How far is St. Cloud's from Castle Rock?

I like Stephen King a lot, but his fictional Castle Rock is a multi-purpose place - all kinds of supernatural stuff happens there. (Witness Leland Gaunt's shop of innocent-seeming horrors in Needful Things.) Only one thing happens at St. Cloud's. "I gave them what they want," Dr. Larch says. A baby or an abortion; it's all the Lord's work to Larch. There's nothing supernatural about St. Cloud's.

Who'd have thought Pease Air Force Base, New England's former capital of the hush-hush, would figure into all of this? What inspired you to work that in?

No inspiration beyond the belief that men in all-male groups often behave worse than individual men.

How close were you to titling this fantastic new novel A Sexual Suspect?

Not close at all. The "in one person" line, from Shakespeare's Richard II, was always the title. In a novel from the point of view of a bisexual man, I could play on the "in one person" phrase - as I do near the end of the novel when Billy says, "I knew that no one person could rescue me from wanting to have sex with men and women."

The "sexual suspect" line, from The World According to Garp, is from a more radical novel - I mean politically. Garp is killed by a woman who hates men; his mother is murdered by a man who hates women. Yes, In One Person and Garp are both novels on the subject of intolerance of our sexual differences, but because Billy is a first-person narrator, In One Person has as much in common with A Prayer for Owen Meany as it does with Garp. Johnny Wheelwright, the first-person narrator of Owen Meany, is called (behind his back) a "nonpracticing homosexual"; Johnny is such a deeply closeted homosexual, he'll never come out. The closest Johnny can come to saying that he loves Owen is when he says, "I wrote to him, just casually - since when would a twenty-year-old actually come young would-be writer's attraction to the superficial. Billy hasn't lived enough - or survived anything - when he passes judgment on that epilogue in The Tempest.

AIDS is the collision-in-waiting in In One Person, and the reader knows it's coming. My novels are predetermined collision courses; the reader always anticipates what's coming - you just don't know the how and the when, and the small details.

It's clear in Last Night in Twisted River - from the moment the cook and his son run away - that the cowboy will find them. It's clear in Cider House that Homer Wells knows how to perform an abortion; it doesn't matter that he doesn't want to do that procedure - we know he's been trained. Of course the occasion will present itself. You can't conceive of an epilogue if you don't know what's going to happen.

When Billy writes almost longingly about amateur players going "off script," it seems like a state of grace, like lighting a forbidden cigarette. When do you as a writer get to go "off script"?

I write toward an ending that I have already written before I begin; I am "off script" (in the sense that I know my lines, and what's going to happen) from the moment I begin Chapter 1. There is no "winging it" with me; being off script simply means you have confidence in everything ahead of you - it means

you know the material.

In One Person flirts with taboos, including indulgent grandfatherly cross-dressing. Is there something in you that can't resist teasing the cultural prompter?

We are an awfully uptight country, sexually. Two transgender women are the heroes of In One Person, in the sense that they are the characters my bisexual Billy most looks up to. While the transgender characters in In One Person are more developed than the transsexuals in Garp and A Son of the Circus, they are not new characters for me. And don't forget the gay brother, Frank, in The Hotel New Hampshire, or the gay twins in A Son of the Circus. I like sexual outsiders; they attract me, I find them brave, and I fear for their safety - I worry about the intolerant people who want to harm them. Our society may be a little more tolerant of sexual differences than we were in the '50s and '60s, but this doesn't mean that the sexual outsider or misfit is "safe."

Larry hits Billy where he lives when he says, you're not just a bystander, you're "bi-everything." As the story's narrator, could Billy have been anything else?

The only part of "bisexual" that most straight men get is the gay part. Many gay men distrust bisexual men. Gay guys of my generation often believed that bisexuals didn't really exist; they were usually presumed to be gay guys with one foot in the closet. And straight women trust bi guys even less than they trust straight guys. (A bi guy could leave you for another woman or for a guy.)

Tell us about Kittredge, the "boy with the balls to play Juliet."

Kittredge is the most important secret in In One Person; I'm not giving him away!

There's a most poignant sense of the disappeared ones in In One Person: Billy's father, the cryptographic cipher. Elaine, Atkins, Kittredge, Miss Frost, and most powerfully the victims of AIDS. Billy feels their absences with differing grades of intimacy. Is this how you connect the story's dark matter?

People - important people - are missing, or missed, in most of my novels. My characters lose people dear to them.
...They say grief has stages - so does absence, so does missing people.

Missing people take the stage across vast distances and time. How did you come to this?

In my novels, something has always been withheld; there's a part of a young person's life that is unknown to him (or her). I got that from Great Expectations: a boy believes that a horrid, manipulative woman - a man-hater - is his benefactor. The boy becomes a perfect snob, only to discover that his benefactor is a convict - and more of a human being than the vengeful Miss Havisham.

The big lacuna is A Sexual Suspect. What was it like, penning a variation on a fictional book within a book you wrote over thirty years ago?

When I finished Garp, I thought I was done with the subject of sexual intolerance, but that subject wasn't done with me. I am not bisexual. When I was a boy, I was confusingly attracted to just about everyone. It turned out that I liked girls, but the memory of my attractions to the "wrong" people never left me. What I'm saying is that the impulse to bisexuality was very strong; my earliest sexual experiences - more important, my earliest sexual imaginings - taught me that sexual desire is mutable. In fact, in my case - at a most formative age - sexual mutability was the norm.

Women of First Sister, in polished nails and open-toed sandals, present bloody, stiffened deer to the game warden as their kills so their husbands and sons can beat the lottery and shoot again - classic Maine amateur theater! Are you a hunter?

I used to hunt deer. I grew up in New Hampshire - it seemed that everyone I knew was a deer-hunter. When I lived in Iowa, I shot some pheasants. When I came to Vermont from Iowa, in '67, I just stopped hunting. I didn't like it anymore. I still have a gun, but it's just for varmints.

Have you ever lived in Maine for any length of time? Did you first drive up here when you were at Exeter?

I spent some summer vacation time on Georgetown Island - in the summer house of my best boyhood friend.

Because we're Portland Magazine, what are your favorite haunts here?

I was in Portland so long ago - the 1960s. I don't remember much.



Reproduced from Portland Magazine with the permission of editor & publisher Colin W. Sargent. First published in April 2012.




An interview between Harvey Ginsberg and John Irving on A Widow For One Year

What made you decide to write a novel in which the central character is both a woman and a novelist?
The decision to make Ruth Cole a novelist was secondary. She was always a woman, and one who was successful in her career; for a while, in the first few months of taking notes for the novel, I was uncertain of her profession. But everything that haunts her and fills her with self-doubt is something that women think about and worry about more than men. Men don't hold themselves accountable for sexual misjudgment - or they don't hold themselves as accountable as women do. Many men have made countless bad-girlfriend choices; they tend to shrug them off.

We live in a world where it's permitted for a man to have a sexual history, a sexual past; provided he doesn't keep repeating it, a sexual past often enhances a man's image. But if a woman has a sexual past, she'd better keep quiet about it.

Ted Cole kills himself because he sees how his own sexual misconduct has influenced his daughter's sexual choices - not because he feels guilty for sleeping with his daughter's best friend. How many men kill themselves because their sons have made bad-girlfriend decisions?

And everything Ruth witnesses in Amsterdam, even what she only intends to witness, is more self-damaging (in her mind) because she is a woman. As Ruth observes of Graham Green: it's entirely permissible for a man to explore the sordid and the unseemly - it's even expected territory for male writers to explore. For women, it's forbidden. Ruth feels ashamed.

So many women today have careers that are in advance of their personal lives, or at the expense of their personal lives. Men, too - but men concern themselves about this less. If a man is successful, and has been married three times, and has not a single speaking relationship with any of his children from these fallen marriages, the foremost thing about him is still his success. But a woman, no matter how successful she is - in any career - sees herself as a failure if her personal life is unsatisfying, or if she's ashamed of it. Other people, men and women, tend to look upon such a woman as a failure, too.

And Ruth's mother, Marion, cannot recover from a tragedy that (relatively speaking) Ruth's father, Ted, allows to roll off his back. What amount to superficial wounds to men are often mortal injuries to women.

As for Ruth's being a novelist, I began with her father as a successful children's book author and illustrator. I knew I wanted Ruth to be better than her father, and to feel driven to compete with him - to have conflicted feelings for him, too. (The squash was only one area of competition between them.) Why not make Ruth a better writer than her father? I thought. Why not make her less superficial than he is, in every way?

At least four of your major characters - Ruth and Ted, of course, but also Eddie and Marion - are writers of fiction, and you quote and summarize their works at length. Is this merely a plot device, or did you have something else in mind?
Once I made Ruth and her father writers, I thought that everyone should be a writer - partly out of mischief, knowing what fun I would have comparing and contrasting the kinds of writers they are, but also because making the four of them writers allowed me to intertwine their lives with what they wrote about. Ted's stories for children are arguably stories for young mothers: the young mothers are Ted's principal targets - both his principal book buyers and his sexual prey. The creepiness of Ted's children's-story voice was also a way of setting up the detachment with which he tells Eddie and Ruth the story of the death of his sons.

Ruth is more autobiographical as a novelist than she is willing to admit, but her fiction goes far beyond her personal life; it is much more imagined than it is strictly autobiographical. Eddie, of course, cannot imagine anything. And Ruth's mother, Marion... well, her writing is painful. It's storytelling as therapy. I say, if it does her good, let her do it.

I tried not to be condescending. Eddie may be a bad, even (at times) a laughably bad writer, but he is a decent guy, a compassionate man, and a good friend. (He's certainly a lot warmer than Ruth is!) And Ted, despite his creepiness - both as a writer for children and as a man - is a riveting storyteller. He gets your attention and keeps it. And, as a father, he's halfway decent; as Ruth says, at least he was there.

By making four of the principal characters fiction writers, I was able not only to connect their lives but also to connect their various interpretations of their lives. D. H. Lawrence once said that a novel was the most subtle form we had to demonstrate the interconnectedness of things. Well, that's true, but a novel needn't be subtle. A Widow for One Year (or any other novel by John Irving) isn't subtle.

Apart from the facts that you moved from Sagaponack to Vermont, and that you have a son exactly Graham's age (and Ruth's age as a child), what other autobiographical elements are there in the novel?
There are many autobiographical elements in the novel. Like Eddie, I went to Exeter, and my father taught there. He was one of the school's most popular teachers, however; unlike Minty O'Hare, my father never bored anyone. And, like Ruth, I found my love story somewhat later in my life. I was forty-four when I met my second wife; I'd been divorced from my first wife for five years. (Like Ruth, I'm not proud of my sexual past - I mean the years between my first marriage and my second, but not exclusively. I don't think I should elaborate.)

As for the choice to make Ruth the age she is when the novel begins - she's four - it was calculated not because I had a four-year-old at the time but because four is the age when memory begins. Most children don't remember much about being three. Four is when memory starts, but the memories from one's fourth year are not complete. I wanted Ruth's memories of the summer of '58, when her mother has the affair with Eddie and then leaves, to be present but incomplete.

Regarding Graham, it's true that my son Everett was exactly that age as I was writing the novel - hence I felt qualified to write Graham's dialogue (and Ruth's, as a child). Children of that age are impressively perceptive, but their language hasn't caught up with their perceptions.

It was vital to the novel that Ruth have a child the same age she was when her mother left her, because I wanted Marion to have to come back and face that child.

You seem to take a dim, even moralistic view of promiscuous sex in the cases of Ted, Hannah, and even Ruth in her encounter with Scott. Yet, at the same time, you treat the prostitutes in Amsterdam with something close to affection. How do you reconcile these different outlooks?
I would agree that I take a "dim, even moralistic view of promiscuous sex," but I also take a comic view of it. Ted's encounter with Mrs. Vaughn is funny; Hannah's perpetual escapades are also comic, but there's a sad side to Hannah, which I hope is redeeming to her character. And she's a lot more fun to be around than Ruth is. (Wouldn't most men rather date Hannah than Ruth? Maybe not marry her, but that's another story.)

I'm a New Englander. Perhaps the sexual disapproval of the Puritan fathers has seeped into my core. Promiscuous sex is invariably punished in my novels. (I'm not entirely comfortable about this.) And my two most saintly characters, Jenny Fields, Garp's mother in The World According to Garp, and Dr. Larch in The Cider House Rules, are both sexually abstemious. They have sex only once in their lives; then they stop. I don't recommend this.

Personally, I am not moralistic about sex. What revolted me about the Clinton-Lewinsky affair was the righteousness of the media. The thought of journalists as moral arbiters in the field of extramarital sex is repugnant. The thought of journalists as moral arbiters in any field is reprehensible to me. That's one of the reasons I made Hannah a journalist. Imagine Hannah as a moral arbiter!

As for the prostitutes in Amsterdam, I spent four years going to Amsterdam for two weeks at a time (at different times of the year each time). I spent a lot of hours with one policeman, and with a woman who was then the head of a prostitutes' rights organization - she's a former prostitute. I wanted to get the cop right, and I wanted to get the whore right. I wanted their stories to ring true with other cops and whores. Both policemen and prostitutes have assured me that Harry and Rooie are true to life.

In Amsterdam, the publication party for the Dutch translation of A Widow for One Year was held at the police station in the red-light district. It was well attended by policemen - less well attended by prostitutes. One prostitute who did attend told me that many of her colleagues were not in the habit of coming to the police station of their own free will.

The business of turning the shoes in Rooie's wardrobe closet, so that Ruth can better conceal herself there... well, I'm especially proud of that detail. I invented it, and when I asked several prostitutes what they thought of it - did they think it would work, and so forth - they were very excited by the idea. One of them told me later that she was using the method herself. A case of fiction writing influencing another profession - most rewarding.

A sadder truth, about Rooie, is her need to make up a life for herself. Like Rooie, prostitutes need to invent their lives. They need to lie. That's just an observable fact. I don't disapprove of prostitutes or the men who go to them. It strikes me as a relatively honest sexual transaction. Compared to harmfully misleading or deliberately deceitful love affairs, the prostitute-client relationship is both forthright and unmessy. The shame commonly attached to it is a mystery to me. As opposed to declaring your love for someone when you don't feel it, or when you feel it for a different partner every few months, what's wrong with paying a prostitute for sex?

I don't find these "different outlooks," as you call them, difficult to "reconcile" at all.

If Ted Cole had lived in Amsterdam, and if he had visited a prostitute - even a different prostitute, as often as three or four times a week - think of how many lives he wouldn't have messed up.

I have never understood the objection to prostitution. To make it a criminal act, to drive it underground - that is what is criminal. That is also what makes it dangerous, both for the prostitutes and for their clients. The Dutch way isn't perfect. What sexual transactions are? But it's a better way to handle the situation than any other way I've observed.

Even though Eddie is basically a comic character, you engender a great deal of reader sympathy for him. How do you turn a comic character into a sympathetic one?
A part of what's comic about Eddie is also what's sympathetic about him: namely, he's vulnerable, and his haplessness survives his youth. In middle age, Eddie suffers the same awkwardness boarding a bus in Manhattan that afflicts him when we first see him as a teenager in love with Marion. And Eddie's love of older women is sincere. How many men have such enduring sexual attractions? It may require some imagination on the reader's part to believe in Eddie's steadfast attraction to older and older women, but it's not hard to imagine what older women love about Eddie.

I've had a lot of mail from older women lately. "Haven't met any Eddies," one letter said. And there was this one: "If you know a real Eddie, would you introduce me?"

Eddie is domestically heroic. His novels are transparent, his attachments strike Hannah (and probably many readers) as pathetic, but Eddie literally means what he says, and he does what he says he'll do.

Marion tells Eddie that she came back because she heard that the house was for sale. It's a good line, but she really comes back because Ruth wrote her and told her that Eddie still loved her; Marion needed to hear that someone did.

Ruth finds her Harry in the end - she gets to have her love story. But there's more emotion in Eddie's enduring infatuation with Marion, and in Marion's coming back, than there is in all of Ruth and Harry's love story. Marion is a much more moving character than Ruth, partly because of Eddie.

Of course there's a simpler explanation for Eddie's transformation from clown to compassionate hero: he grows up. Rather than see himself as a victim of what happens to him when an older woman takes up with him and then abandons him, he upholds his reverence for her as the guiding light of his life. That in itself may be absurd, but Eddie's convictions are true; he's not fickle. And there's something more about Eddie than at first meets the eye. His laughable qualities as a teenager - his innocence and oversensitivity, and how easily manipulated he is - are qualities that are admirable in him as an adult. He lets people use him (even Hannah); that's not an altogether unlikable quality. In Eddie's case, it's even brave. He lets Marion use him. It's a good thing for her that he does.

Ruth has a strong punitive streak in her. In view of her childhood, that is certainly justifiable, but do you also find it admirable?
Oh yes, I do! What idiot said that revenge was a dish best served cold? What matters is that you get the opportunity to serve it - who cares whether it's hot or cold? Ruth does have every reason to be punitive, to be more than a little rough (or crude) around the edges. Her revenge on Scott Saunders and on her father is, in my view, justified. So what if she goes a little too far? She didn't strike the first blow, did she? If she overreacts (a little) to what's been done to her, it doesn't bother me.

If people take a piece out of you, what's wrong with taking a piece and a half or two pieces out of them? I don't pick fights. I do fight back.

Reproduced with the permission of Random House Inc. Copyright Random House Inc.

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 John Irving at BookBrowse
The Last Chairlift jacket Avenue of Mysteries jacket A Prayer for Owen Meany jacket In One Person 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 John Irving 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

  • William Boyd

    William Boyd

    William Boyd has received world-wide acclaim for his novels. They are: A Good Man in Africa (1981, winner of the Whitbread Award and the Somerset Maugham Prize) An Ice Cream War (1982, shortlisted for the 1982 Booker Prize ... (more)

    If you enjoyed:
    The World According to Garp

    Try:
    Any Human Heart
    by William Boyd

  • Jonathan Coe

    Jonathan Coe

    Jonathan Coe was born in 1961 in Lickey, a suburb of south-west Birmingham. His first novel, The Accidental Woman was published in 1987. His best-selling novels include What a Carve Up! and The Rotters' Club (2001). He is the... (more)

    If you enjoyed:
    A Widow For One Year

    Try:
    The Closed Circle
    by Jonathan Coe

We recommend 18 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...

These are not books, lumps of lifeless paper, but minds alive on the shelves

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 01:16 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
1780276619251 ms 1.78027661925E+012 ms 1 /root/website/app_server.cfm
325 ms 325 ms 1 /root/website/author_interviews/full/index.cfm
109 ms 109 ms 1 /root/website/app_globals.cfm
75 ms 75 ms 1 /root/website/app_layout.cfm
61 ms 61 ms 1 /root/website/author_interviews/full/dsp_main.cfm
54 ms 54 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
48 ms 16 ms 3 /root/website/adsystem/adsystem_mod.cfm
41 ms 41 ms 1 /root/website/queries/qry_get_active_obc.cfm
26 ms 26 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
26 ms 26 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
23 ms 23 ms 1 /root/website/queries/qry_get_current_competition.cfm
22 ms 11 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
21 ms 21 ms 1 /root/website/adzones/AdZone6.cfm
21 ms 21 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
20 ms 20 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
17 ms 17 ms 1 /root/website/adzones/AdZone2.cfm
15 ms 5 ms 3 /root/website/site/blocks/membership_advantages.cfm
13 ms 13 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
13 ms 4 ms 3 /root/website/queries/qry_get_member_account_types.cfm
13 ms 13 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
12 ms 12 ms 1 /root/website/adzones/showcase_track.cfm
11 ms 11 ms 1 /root/website/actions/adstatus.cfm
10 ms 10 ms 1 /root/website/act_check_login.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_member_info.cfm
9 ms 9 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
7 ms 2 ms 4 /root/website/actions/act_spider_tracker.cfm
3 ms 3 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/Application.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.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/dsp_border_booktalk.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/main_menu.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/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/head.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
2 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
328 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 01:16:59.059
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=9ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 01:16:59.059
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=9ms, Records=2) in /root/website/actions/adstatus.cfm @ 01:16:59.059
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 @ 01:16:59.059
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=9ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 01:16:59.059
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=12ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 01:16:59.059
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=9ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 01:16:59.059
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 @ 01:16:59.059
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=11ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 01:16:59.059
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=10ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 01:16:59.059
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=16ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 01:16:59.059
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=2) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 01:16:59.059
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) = 254

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=12ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 01:16:59.059
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) = 254

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=13ms, Records=8) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 01:16:59.059
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) = 254
Parameter #2(CF_SQL_INTEGER) = 254

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=25ms, Records=6) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 01:16:59.059
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) = 254

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=9ms, Records=18) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 01:16:59.059
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) = 254

get_ads (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=11ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=3ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 01:16:59.059
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_member_account_types (Datasource=bookbrowse_com_new, Time=4ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 01:16:59.059
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=6ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 01:16:59.059
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) = 851
Parameter #2(CF_SQL_INTEGER) = 851
Parameter #3(CF_SQL_INTEGER) = 851

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 01:16:59.059
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) = 851

get_books_by_author_id (Datasource=bookbrowse_com_new, Time=2ms, Records=2) in /root/website/queries/qry_get_books_by_author_id.cfm @ 01:16:59.059
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) = 1179
Parameter #2(CF_SQL_INTEGER) = 1179
Parameter #3(CF_SQL_INTEGER) = 1179

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 01:16:59.059
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) = 1179

get_member_account_types (Datasource=bookbrowse_com_new, Time=4ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 01:16:59.059
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 @ 01:16:59.059
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=14ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 01:16:59.059
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=5ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=12ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=2ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=8ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 01:16:59.059
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=2ms, Records=4) in /root/website/queries/qry_get_free_newsletters.cfm @ 01:16:59.059
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=1ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=2ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 01:16:59.059
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=CFTOKEN=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5; CFID=4080933; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; FREEACCESSCOUNT=0; CFGLOBALS=urltoken%3DCFID%23%3D4080933%26CFTOKEN%23%3Da25a28171623f0c8%2D078C753F%2DD3C7%2DAC72%2D76EA22D10BB598A5%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2001%3A16%3A59%27%7D%23hitcount%3D38%23timecreated%3D%7Bts%20%272026%2D06%2D01%2001%3A16%3A48%27%7D%23cftoken%3Da25a28171623f0c8%2D078C753F%2DD3C7%2DAC72%2D76EA22D10BB598A5%23cfid%3D4080933%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/254/author/john-irving
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=4080933
cftoken=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5
hitcount=38
lastvisit={ts '2026-06-01 01:16:59'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 01:16:48'}
urltoken=CFID=4080933&CFTOKEN=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5
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#=4080933&CFTOKEN#=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5#lastvisit={ts '2026-06-01 01:16:59'}#hitcount=38#timecreated={ts '2026-06-01 01:16:48'}#cftoken=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5#cfid=4080933#
CFID=4080933
CFTOKEN=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5
FREEACCESSCOUNT=0
Session Variables:
cfid=4080933
cftoken=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5
sessionid=BOOKBROWSE_4080933_a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5
urltoken=CFID=4080933&CFTOKEN=a25a28171623f0c8-078C753F-D3C7-AC72-76EA22D10BB598A5
URL Parameters:
author=john-irving
author_number=254
Debug Rendering Time: 10 ms