Judith Lindbergh Interview, plus links to author biography, book summaries, excerpts and reviews

Judith Lindbergh
Photo: Sigrid Estrada

Judith Lindbergh

An interview with Judith Lindbergh

Judith Linberg talks about how she was drawn into the Viking world, and how Norse culture mythology and literature grew to pervade The Thrall's Tale.

There have been novels set in ancient Rome, Revolutionary America, the Civil War, the French Revolution, etc., but the idea of setting a novel in the Norse colony of Greenland is totally original. What inspired you to write The Thrall's Tale? Describe the germ of this undertaking.
It all happened rather by accident. I had no particular interest in the period, although history, archaeology, anthropology, and myth have always been at the very root of my inspiration and passion. I was with my husband in downtown Manhattan many years ago—well over a decade now. It was a cold, gray day, and we were just meandering when we noticed a crowd at the edge of the docks at South Street Seaport. We worked our way through and discovered three Viking ships moored there—full-scale replicas that had sailed from Norway to Iceland, Greenland, and Canada, then down the North American coast, following Leif Eiriksson’s journey of discovery over 1,000 years ago.

What first struck me was the size of the ships—barely bigger than oversized rowboats, and completely open to the wind and sea and waves. They seemed utterly vulnerable, an adjective I never would have thought to apply to the Viking culture. The second thing that caught my eye was a woman, a member of the crew. She was working the ropes, wearing a big, Icelandic fisherman’s sweater, her blond hair piled up haphazardly on her head. Yet she was the most extraordinarily beautiful woman I’d ever seen.

I had never really thought of women sailing on Viking ships, settling in distant, unforgiving lands—or really of women at all in a Viking context. I began to research, and came across the dramatic story of the Greenland settlements, their early promise and mysterious demise. The Norse lasted in Greenland only about five hundred years, slowly dwindling from the historic record until they were forgotten. When a Norwegian priest was finally sent to revisit them after generations, all he found were abandoned homesteads and wandering sheep.

Ironically, it was not the disappearance of the Norse Greenlanders that intrigued me, but the powerful image of the pagan seeress, Thorbjorg, giving prophecy in Eirik’s Saga, one of the Vinland Sagas that recounts the establishment of the settlements. My exploration veered quickly into the realm of archaeology, where disparate artifacts inspired other characters and plot points. The research was like an archaeological dig of my own, as I uncovered fragments of detail and placed them together in the growing mosaic of my outline, with pages and pages of character description, all evolving into a story, place, and people who seemed to breathe and speak to me loudly.

Your research must have been extensive and fascinating. Describe how you began and some of the high points of the research. Did you travel to Greenland?
I began, logically enough, with some general histories and the Old Norse sagas. I came across the Vinland Sagas very early on, and the intriguing chapter in which Thorbjorg the Seeress prophesies the end of a harsh famine. I was also particularly lucky to have found Land Under the Pole Star by Helge Ingstad—a fascinating book tracing the Vikings to Greenland based on surveys Ingstad made with his wife, archaeologist Anne Stine Ingstad. The book intersperses history and bits of saga with rich details of the natural landscape and material evidence from the settlement period.

I’m particularly fond of research and truly enjoyed probing the bowels of the New York Public Library for the original reports of early digs in Greenland. I remember traipsing all through New York City, begging entrance to private libraries under the auspices that I was writing a book. I studied with Thomas H. McGovern, Ph.D., one of the world’s foremost Norse Greenland archaeologists, who happened, by auspicious coincidence, to teach only a subway ride from my Brooklyn apartment. I devoured academic texts on women in the Viking Age, and treasured out-of-print volumes like The Last Kings of Thule by anthropologist Jean Malaurie, striving to understand the traditional lifestyles of Inuit Greenlanders to infuse the book with details of the environment, wildlife, climate, and the general challenge of arctic survival.

But even all of this, I knew, would be nothing if I did not find my way to Greenland. I was tremendously fortunate to stumble across a trip by sea that followed the route of the first Greenland settlers. It was less than luxurious, on an old Estonian research vessel, but from the moment I arrived, it was as if I had stepped into a land I had always known, some kind of unconscious personal landscape. The feeling was unquestionable, as I walked alone through volcanic scree in the shadow of the Snaefellsjokull glacier in Iceland or sat on the ruined edge of the longhouse that had once been Eirik the Red’s home.

This sense of déjà vu reached a pinnacle when we were crossing from Greenland’s east to west coast. The ship’s original route was through Prins Christian Sond, but we found the fjord completely blocked with ice. Changing course, the ship’s captain took us down Ikeq Fjord. Along this unplanned passage, at the conjunction of several arms of the inland waterways, was a landscape virtually identical to the one I’d imagined for Thorbjorg’s homestead. The sight was so startling, it literally took my breath away. I could not have asked for a clearer omen that I was on the right path.

You have published in Archaeology magazine and in connection with a Smithsonian exhibit devoted to the Vikings. How has your own work in the field influenced the novel? Did you ever feel that you knew “too much” to turn it into fiction?
Honestly, my work with both Archaeology and the Smithsonian were an outgrowth of my research for The Thrall's Tale, rather than the other way around. My contributions to the Smithsonian Vikings exhibition were spawned by some photographs I took while in Greenland, and expanded by the generosity and appreciation of the exhibition’s curators. Though my research may have made me an “expert” in Old Norse Greenland, I have always been, first and foremost, a novelist. My work in the field—from the first step in Greenland to the archaeological studies I undertook to the endless reading of obscure texts—was all colored by my awareness of my novel’s intent, my characters’ experience and worldview.

The nature of archaeology, as with any evolving knowledge base, implies that theories are always refocusing and changing. The discovery of even the smallest illuminating artifact could easily invalidate aspects of The Thrall's Tale. So, in that sense, I still feel I do not know enough and bow utterly to those scholars who are truly in the field, who have had the arduous experience and privilege of digging, analyzing, and interpreting the Old Norse world.

The style of The Thrall's Tale is a brilliant feat—the book reads almost as if you had translated it from Old Norse to some old English dialect. How did you come up with this style? To what extent were you influenced by the language of the sagas?
The language of The Thrall's Tale, it seems in retrospect, evolved both very slowly and came to me almost fully formed. I recall the initial segments of all three characters coming in a flash, spontaneously—one of those rare moments when the writing flows of its own volition. But the style deepened with more writing and research, draft upon draft. I consciously sought out a certain “sound” for my prose, something that would exude a feeling of another time and place, a completely other perspective and reality. I opted for twisted syntax, inversions, contractions, and abbreviations, inventing words or utilizing existing ones in unconventional ways, relying on poetic forms that mimicked the Old Norse sagas, yes, but more particularly the Poetic Edda.

I do not read Old Norse or Icelandic, so I had no choice but to study the sagas and eddas in translation. I was surprised with the sagas’ abrupt reportage, very matter-of-fact, event to event, without much artistry or embellishment. To me, they read with a practical air, perhaps reflecting the fact that they were once recited aloud from memory, perhaps reflecting a people without a lot of interest in languishing, musing, or waxing philosophically.

But the eddas were different, particularly the Poetic Edda, which I read in an extraordinary translation by Lee M. Hollander (University of Texas Press, 1986). Here was the music, poetry, and emotion that I’d longed for:

Ale I bring thee,
with strength i-blent
’tis mixed with magic
with goodly spells,
thou oak-of-battle,
and brightest honor
and mighty songs
wish-speeding runes.

—“Sigrdrífumál,” p. 235

It was so rich, so utterly overblown, so magical, with kennings like “oak-of-battle,” meaning warrior, and descriptions like “wish-speeding” runes. I let these verses seep into me, and clearly they oozed out in my characters’ voices.

Kennings, metaphorical compound expressions, are intrinsic to the Old Norse poetic style. I tried to use them frequently but eventually had to only hint at them, resisting their purest form and frequency, since that would require not only patience but also a familiarity with Old Norse cultural allusions that would be unfair to expect from a broad fiction readership. In fact, somewhere in the third or fourth draft, I found my language had become so convoluted, I had to concertedly pull back and simplify, just to make it readable, sometimes even to myself! I scraped away the extraneous and somehow came to the language as it is today.

Norse mythology runs as a dark deep strain through the book. Have you always been fascinated by Norse myths? What do you consider the best sources for Norse myths? What scholarly or introductory volumes would you recommend to the general reader?
Mythology in general has always intrigued me, though not necessarily Norse mythology. I remember as a young child studying ancient Egypt, Greece, and Rome. I was completely absorbed and transported, taking books out of the library, one after another, about the various gods, goddesses, and civilizations. But Norse mythology was only peripheral in my thoughts and remained so even into adulthood, when I was drawn to different myths and the religions of the east, Hinduism, Buddhism, as well as enhancing my existing knowledge of the Judeo-Christian tradition.

I made a self-imposed study of comparative religion, and participated in an ongoing symposium on the evolution of human consciousness, which brought under consideration the many perceptions of God and human existence over time and across cultures. All of this informed and prepared me for the Old Norse worldview, but not in an enamored way. I tried to see the Norse myths as they conjoined with the beliefs of other cultures. You might even notice a hint of Buddhist thought behind Thorbjorg’s “It matters not. All is transience.” I don’t know if that’s a particularly Norse perspective, but from Thorbjorg’s experience, and considering the Old Norse concept of fate, it seemed to work very well.

The best sources for Norse myths are the eddas themselves. Snorri Sturluson’s Prose or Younger Edda, complied in the thirteenth century, provides a rich assemblage of myths and legends of the Old Norse gods. The Elder or Poetic Edda is far more challenging, but it is one of the references Snorri often uses in relating his own tales. There are numerous other collections, both scholarly and for a general readership, that recount the Old Norse myths. But my feeling is there can be no better source than the original.

Bibrau is a character like no other in literature. Where did you get the idea for her? At times she seems almost insane, at other times cruel and calculating. Share with us some of your own inspiration for Bibrau and the imaginative process that went into creating her. Did she change as you progressed with the book? Is there one powerful message you want to convey through her?
Bibrau is, for me, a “silent scream.” She personifies all the terrible thoughts that one can have in a moment of rage or at the realization of hatred. I chose to make her preternaturally precocious from birth, self-aware, vicious, calculating in the extreme. Her very silence is at the core of her belligerence and power. By making her mute by choice, I freed Bibrau to say anything, do anything, and no one would ever know her true intent except the reader.

The germ of her character came from an actual artifact, a runestick found in Narsaq, Greenland, not far from where Eirik the Red’s homestead once lay. On one side was etched the complete, sixteen-character short-twig runic alphabet or futhark, the style of which dates it to the earliest Norse settlements. On another side was a row of “secret” runes used for mystical purposes, including prophecy. On the third was this inscription: Bibrau is the name of the girl who sits in the blue. The phrase is declarative but seems almost an incantation, especially when paired with the untranslatable row of magical runes. It immediately spoke to me of a lonely girl jabbing at a stick, whittling her bleakest desires on a desolate precipice overlooking the frozen sea.

When I discovered the artifact I realized, with Bibrau, that I had a perfect archetypal triad—maiden, mother, crone. These images from Jungian psychology are laced with contradiction: love, jealousy, admiration, dependence, the inevitability of fate. I knew Bibrau would not be a benign daughter but the bane of her mother’s existence and the essence of her despair. To find her, I had to walk in Katla’s darkness.

There is a notion from medieval folk belief that a pregnant woman could shape an unborn fetus by her thoughts. From the depths of Katla’s hatred for the child growing within her, I formed Bibrau’s vengeful nature. Knowing that hatred can rebound and destroy its source as well as its object, I created a daughter who would, in the end, destroy the mother.

I thought about Bibrau a lot before writing, but when she came, she was absolutely fully formed. She spoke one day all in a rush of power in her powerlessness, in hatred and disdain, in the certainty of her destiny and her determination to create it. Though she grew more defined, her voice was never far from me, as she remained throughout the formative years of The Thrall's Tale.

What are the major influences on you as a writer, a thinker, a person? Which writers have inspired and shaped you most powerfully?
As I look across my bookshelves, I realize the eclectic selection I have treasured. Certainly there are great works by great writers: Charles Dickens, Jane Austen, George Eliot, the Brontës, Thomas Hardy, Lewis Carroll, John Steinbeck, Hermann Hesse. There are contemporary works by a slew of international authors and many Americans I’ve prized. But down in the basement are the dog-eared plays of my days in the theater, well-marked actor’s copies of Shakespeare’s plays, Shaw, Chekhov, Ibsen—the scene from A Doll’s House that was my biggest success, though only about twenty people ever saw it.

There are also the writings of Helen M. Luke, Joseph Campbell, Andrew Harvey, Mircea Eliade, William Blake, Dylan Thomas, Jane Hirshfield, early poetry by Margaret Atwood. Nonfiction, especially by naturalists, Barry Lopez, Frank Waters, Farley Mowat. The travelogs of Bruce Chatwin and Isabella Bird. There’s the old and new translations of Gilgamesh, Seamus Heaney’s recent Beowulf, and Coleman Barks’ Rumi, The Bhagavad Gita, Le Morte D’Arthur, several versions of the Bible, and the Hebrew/English Pentateuch and Haftorahs I received when I was a child.

I have always had a spiritual bent, but my interests were wild and ranging. Many years ago, I spent eight months in a touring show, going from town to town in a Greyhound bus, dropping in and then picking up, moving on unnoticed in the dark of night. Most of the time between, I spent reading or writing. That was the year I read Elaine Pagels’s The Gnostic Gospels, Carlos Castaneda’s The Teachings of Don Juan, and other esotericisms popular in the New Age. Then there were hours when I’d sit looking out the bus window at the wide expanse of Wyoming, Nevada, Colorado, at a snow frosted river bend in southern Washington state, or the sunset that bled through a fog somewhere over Kansas. I think all of this was a kind of meditation, a contemplation that could not have occurred in the ordinary, scheduled world. I found myself drifting, looking from the outside instead of caught up within. Ever since, I have been obsessed with returning to the periphery, with edges, desolation, living outside of existence while all the rest of the world marches forward, oblivious and absorbed. The feeling of being part and apart at the same time. To me, Greenland embodied that edge and let me speak of vital forces that can be felt and not seen, of essences beyond the corporeal world.

Your characters are incredibly complex and full of fierce, real emotions. How do you draw and embellish characters? Do you work from the inside out—starting with their essence and then giving them form—or do you see a character first and then imagine their personality, their soul, their fate? Are there real life models for the characters in your novel?
I think I do all of that. My training is as an actress and a dancer. Part of an actor’s work is to create a character background, something that may not be in the lines and will never be seen on the stage but that informs every thought and action. I take a similar approach, creating detailed outlines and descriptions of each character’s history and relationships, their feelings toward the world and what has happened to them, their disappointments, hopes, and dreams. Within all that come sometimes smatterings of writing, germs of each individual voice. Then I must somehow get all of that into the actual manuscript.

By way of preparation, I turn again to my acting training, taking a page from Constantin Stanislavski’s method, withdrawing from myself by relaxing and breathing, closing my eyes, feeling my body transform, becoming the character for a moment or two before I ever lay my hands on the keyboard. Sometimes the characters come into me easily, as was the case with Katla and Bibrau. Thorbjorg was harder. She was so obscure, so weighted with experience I did not have and could only imagine. But over time, even her point of view became part of me, so that I only had to close my eyes and breathe, and there she’d be.

I regularly speak my characters aloud while I’m writing, playing them as I would in an acting scene, sometimes even getting up and walking, miming the actions the characters are experiencing, feeling in my body their pain, anguish, hope, desire. Sometimes even music helps me connect with my characters. I can’t write with music playing because it distracts me from the writing’s rhythms, but I’ll go for walks with my headphones on or even dance when no one is around. Dance is a very primal way to touch at the root of emotions.

Very few of my characters are based on real people, though there are elements, composites sometimes, or just essences or gestures. I think, in The Thrall's Tale, there is only Gizur, who is modeled after a drummer I once knew. For the most part, the characters are elements of me—my emotions, if not my experiences. They’re embellished, exaggerated, allowed to rage unchecked by social convention, brought up to the surface in the same way an actor probes deep to reveal an emotional core. That is both the beauty and challenge of creative expression. The only restrictions are one’s own.

Jared Diamond has written a vivid account of the doomed Norse Greenland colony in his recent book Collapse, stressing the social and environmental factors that undermined the colony. Which historical sources have been most important in shaping your own vision of the colony? Which sources have given you the most concrete details?
Stepping on the archaeological path was perhaps the most critical turn in my early work, leading me to a wellspring of information on the Norse Greenlanders’ daily life and detailing specific artifacts from which grew many of the characters in The Thrall's Tale. The more generalized books on Viking culture and history, even the eddas and sagas, began to pale as I delved into the archaeological record. There were tiny details, like the presence of lice living in close proximity with humans, that instantly captured the squalor of the settlements. There were bone tools and spindle whorls carved by hand, occasionally bits of cloth, the single partition in Eirik the Red’s byre that was actually made of a whale’s shoulder blade, all illustrating the settlers’ daily experience and industry as no broad survey could.

Most of the archaeological sources I read were individual papers in academic journals. But many of the best scholars on the subject are included in the Smithsonian’s exhibition catalog, Vikings: The North Atlantic Saga. Also critical were several academic works detailing the lives of Viking Age women. So little is known about the women of the Viking Age—and I was determined to overcome the hackneyed and inaccurate Viking warrior stereotype—that I was grateful for books like Jenny Jochens’s Women in Old Norse Society and Judith Jesch’s Women in the Viking Age for shedding light on the intimate and neglected experience that would have been my characters’ own.

There is something about holding the past in your hand, not just reading about it abstractly. I was never privileged to work on a dig myself, but every chance I had to see artifacts in exhibition, or simply photographs in a book or catalog, gave me a window into my characters’ world. Still, there was nothing more transforming than actually standing in my characters’ footsteps, in the middle of the tiny horseshoe shaped outline of Thjoldhilde’s church overlooking Eirik the Red’s longhouse ruins in Greenland.

What surprised you most in the research and writing of the book? Did you stumble on any new revelations in the historic or literary record? Did any of your characters behave in surprising ways or take turns you didn’t expect?
I think what surprised me most was the way the novel came together. Granted, it was over a very long time, but the pieces seemed to fall into place quite precisely, almost as if I were completing a puzzle—that the picture already existed, and I only had to assemble it.

One of the luxuries of being a writer, as opposed to a scholar, is the freedom to draw connections that are implicit, but not proved, like the assumption I made that Torvard was Einar’s son. It is logical enough from the various mentions in the sagas: that Einarsfjord was originally settled by a chieftain named Einar, that Einarsfjord is the location of the farm Gardar, and that Freydis Eiriksdatter, Eirik the Red’s illegitimate daughter, married a man called Torvard primarily to inherit the vast, prosperous homestead Gardar. It seems a simple equation, but an academic could not draw that conclusion. There’s simply no definitive proof.

Surprises? The characters constantly amazed me with their boldness, their vulnerability, their resilience, compassion, contradiction, the volume of their rage. Ossur’s weakness and fallibility certainly moved me—his endless striving for success and repeated failure, his panic on the battlefield where any self-respecting Viking would have thrived. Also, the insipidness of the priest, denoted at least in part by his remaining nameless, was especially interesting when coupled with his equally manipulative nature. The scene when Torvard is groveling in the frost heaves—when he reaches up and clutches Bibrau’s dress. When I wrote that, I gasped a little at the audacity and inverted tension, not quite sure what was going to happen next. But perhaps the most surprising of all was when Bibrau finally admits the deep source of her anger: in wanting her mother’s love, something she’d always disdained and denied. I must have known it all along, but when it came out—blunt and indignant, but also vulnerable, self-diminishing, comparing herself with a hangnail or a split hair! And then, the novel’s ending, which came to me in a flood: Thorbjorg singing Odin good night from the realm of the dead. When I read it, I still hear the washing of the misty waters, and the dusty moldering of Valhalla’s stone walls.

The voices of three very different women narrate the book. Which voice did you enjoy using most? Which character did you like the most? Which one is the most like you?
Honestly, each voice had its own satisfaction. I think Bibrau was easiest to write, oddly enough. She was such a release, the receptacle for so many pent-up emotions. I remember I also used to enjoy working on unsympathetic characters when I was an actress—Martha in Who’s Afraid of Virginia Woolf? comes to mind.

Thorbjorg was so much harder, so much more controlled and distant. I first wrote her segments in the second draft and purposely kept them very short in most cases to maintain her clarity, her philosophical poise, and to minimize her sometimes enigmatic poetry. But in those brief passages, I wanted to infuse so much weight, history, culture, and perception. I laugh when I think that some of those one or two-page long sections took me literally weeks to perfect.

Katla is most like me, I suppose, at an emotional core, though there is nothing autobiographical about her life. Essentially all the characters are part of me: id, ego, superego. Past, present, future. They are metaphors, projections, imaginings created by setting and circumstance. But the emotions are true, if raw, wrenched, and extreme. I think all writing is like that, though perhaps a historical setting helps to support a rather heightened reality. Still, the humanity is there—still honest, in one sense or another.

What are you working on now?
A new novel set in an entirely different time and culture, farther in the past but again about women’s lives. I’m slightly superstitious, so I don’t want to say too much, except that the new characters have very different experiences and worldviews. Most of the action takes place in a city, which also adds a completely different flavor to the work. The voices are finally coming through, louder and more clearly. After so long with Thorbjorg, Katla, and Bibrau in my head, that has been the hardest challenge.

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 Judith Lindbergh at BookBrowse
The Thrall's Tale 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 Judith Lindbergh 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 Thrall's Tale

    Try:
    The Blood of Flowers
    by Anita Amirrezvani

  • Geraldine Brooks

    Geraldine Brooks

    Australian-born Geraldine Brooks is an author and journalist who grew up in the Western suburbs of Sydney, attending Bethlehem College Ashfield and the University of Sydney. She worked as a reporter for The Sydney Morning ... (more)

    If you enjoyed:
    The Thrall's Tale

    Try:
    Year of Wonders
    by Geraldine Brooks

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

Common sense is genius dressed in its working clothes.

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 08:18 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
1780301931162 ms 1.78030193116E+012 ms 1 /root/website/app_server.cfm
387 ms 387 ms 1 /root/website/author_interviews/full/index.cfm
165 ms 165 ms 1 /root/website/author_interviews/full/dsp_main.cfm
106 ms 106 ms 1 /root/website/app_layout.cfm
95 ms 32 ms 3 /root/website/adsystem/adsystem_mod.cfm
90 ms 90 ms 1 /root/website/app_globals.cfm
54 ms 54 ms 1 /root/website/adzones/AdZone2.cfm
54 ms 54 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
33 ms 33 ms 1 /root/website/queries/qry_get_active_obc.cfm
25 ms 13 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
25 ms 25 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
24 ms 24 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
24 ms 24 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
22 ms 22 ms 1 /root/website/adzones/showcase_track.cfm
19 ms 19 ms 1 /root/website/adzones/AdZone6.cfm
19 ms 6 ms 3 /root/website/site/blocks/membership_advantages.cfm
17 ms 17 ms 1 /root/website/queries/qry_get_current_competition.cfm
16 ms 5 ms 3 /root/website/queries/qry_get_member_account_types.cfm
14 ms 4 ms 4 /root/website/actions/act_spider_tracker.cfm
12 ms 12 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
8 ms 8 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
8 ms 8 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
8 ms 8 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
6 ms 6 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
5 ms 5 ms 1 /root/website/actions/adstatus.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
2 ms 2 ms 1 /root/website/act_check_login.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
2 ms 2 ms 1 /root/website/queries/qry_get_member_info.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/main_menu.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_top_author_block.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/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
389 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=13ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 08:18:51.051
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=2ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 08:18:51.051
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=4ms, Records=2) in /root/website/actions/adstatus.cfm @ 08:18:51.051
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 @ 08:18:51.051
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=7ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 08:18:51.051
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=10ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 08:18:51.051
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=6ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 08:18:51.051
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 @ 08:18:51.051
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=9ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 08:18:51.051
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text, arc_on_ad_dt,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages, ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	
	WHERE 		arc_obc_flag = 1

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 08:18:51.051
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=12ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 08:18:51.051
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 08:18:51.051
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) = 1412

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 08:18:51.051
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) = 1412

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 08:18:51.051
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) = 1412
Parameter #2(CF_SQL_INTEGER) = 1412

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=1ms, Records=0) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 08:18:51.051
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) = 1412

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=2ms, Records=14) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 08:18:51.051
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) = 1412

get_ads (Datasource=bookbrowse_com_new, Time=13ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 08:18:51.051
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=38ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 08:18:51.051
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=8ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 08:18:51.051
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=6ms, Records=1) in /root/website/actions/udfs.cfm @ 08:18:51.051
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) = 1932

get_member_account_types (Datasource=bookbrowse_com_new, Time=1ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 08:18:51.051
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=7ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 08:18:51.051
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 @ 08:18:51.051
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=12ms, Records=4) in /root/website/queries/qry_get_books_by_author_id.cfm @ 08:18:51.051
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) = 677
Parameter #2(CF_SQL_INTEGER) = 677
Parameter #3(CF_SQL_INTEGER) = 677

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 08:18:51.051
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) = 677

get_member_account_types (Datasource=bookbrowse_com_new, Time=2ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 08:18:51.051
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=12ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 08:18:51.051
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=11ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 08:18:51.051
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 @ 08:18:51.051
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=5ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 08:18:51.051
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 @ 08:18:51.051
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=6ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 08:18:51.051
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=4ms, Records=4) in /root/website/queries/qry_get_free_newsletters.cfm @ 08:18:51.051
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 08:18:51.051
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=6ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 08:18:51.051
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=7ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 08:18:51.051
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=FREEACCESSCOUNT=0; CFID=4092459; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; CFGLOBALS=urltoken%3DCFID%23%3D4092459%26CFTOKEN%23%3D847d8c3d717591e0%2D16A07CA9%2D0D64%2D3143%2D75165E509604E8E4%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2008%3A18%3A50%27%7D%23hitcount%3D203%23timecreated%3D%7Bts%20%272026%2D06%2D01%2008%3A18%3A25%27%7D%23cftoken%3D847d8c3d717591e0%2D16A07CA9%2D0D64%2D3143%2D75165E509604E8E4%23cfid%3D4092459%23; CFTOKEN=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
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/1412/judith-lindbergh
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=4092459
cftoken=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
hitcount=205
lastvisit={ts '2026-06-01 08:18:51'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 08:18:25'}
urltoken=CFID=4092459&CFTOKEN=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
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#=4092459&CFTOKEN#=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4#lastvisit={ts '2026-06-01 08:18:50'}#hitcount=203#timecreated={ts '2026-06-01 08:18:25'}#cftoken=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4#cfid=4092459#
CFID=4092459
CFTOKEN=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
FREEACCESSCOUNT=0
Session Variables:
cfid=4092459
cftoken=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
sessionid=BOOKBROWSE_4092459_847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
urltoken=CFID=4092459&CFTOKEN=847d8c3d717591e0-16A07CA9-0D64-3143-75165E509604E8E4
URL Parameters:
author_number=1412
judith-lindbergh=
Debug Rendering Time: 12 ms