Peggy_Kurkowski

Peggy_Kurkowski

BookBrowse Reviewer
+ Follow
BookBrowse Reviewer Peggy is a BookBrowse Reviewer and has written reviews featured in The BookBrowse Review.

Peggy is a professional copywriter for a higher education IT nonprofit association by day and major history nerd and book reviewer at night. In addition to BookBrowse, she writes for multiple book review publications, including Publishers Weekly, Library Journal, Historical Novels Review, Shelf Awareness, Foreward, Independent Book Review, and theWashington Independent Review of Books . She hosts her own YouTube channel, The History Shelf, where she features and reviews history books (new and old), as well as a variety of fiction.

BookBrowse Editorial Reviews (39)

BookBrowse Editorial Review
America, América: A New History of the New World
by Greg Grandin
(6/4/2025)
The scope of the book is breathtaking, but equally notable is the proficiency of Grandin's prose and the originality of his thought... What has often been taken for "anti-Americanism" in Latin America, Grandin argues, is more like "a competing version of Americanism"—and, furthermore, this rivalry has played a vital role in the creation of the modern world...
BookBrowse Editorial Review
The Sequel: The Book Series #2
by Jean Hanff Korelitz
(11/6/2024)
In Anna, Korelitz has brilliantly created a sympathetic antihero. Her sleuthing into the identity of her nemesis and what they want from her takes from her from New York City to Vermont, where Jake taught, and finally to Georgia; throughout this journey, her intelligence, fiery determination, and savvy instincts are impressive and compelling. Her backstory, which is developed over the course of the novel in tight prose flashbacks and from excerpts of Evan's manuscript, propels the plot hand-in-h
BookBrowse Editorial Review
Kent State: An American Tragedy
by Brian VanDeMark
(9/18/2024)
VanDeMark sets out to tell the story of the Kent State shooting from multiple perspectives, "without taking sides," using previously untapped archival documents and interviews with those who were there. The result is a cogent, clear-eyed, and almost minute-to-minute account of the chaos that erupted when young people on both sides of an American cultural divide squared off on the quad of Kent State... May 4th, the "tragic day," is exhaustively covered with nerve-shredding tension as VanDeMark de
BookBrowse Editorial Review
A Passionate Mind in Relentless Pursuit: The Vision of Mary McLeod Bethune
by Noliwe Rooks
(8/21/2024)
In this slim volume, Rooks spotlights Bethune's lifelong commitment to Black higher education, which began when she created her own all-girls Black school in Daytona in 1904. She considers Bethune's emphasis on the twin pillars of "the ballot and the book" to achieve a more inclusive democracy but notes how her vision broadened over time to one "where Black women's issues and needs were not confined to specific regions or countries but had national and international resonance." And while Bethune
BookBrowse Editorial Review
The Missing Thread: A Women's History of the Ancient World
by Daisy Dunn
(7/31/2024)
The fabric of ancient history is stitched heavily with stories of dramatic politics, conquest, and war, all with men firmly at the center of action. But women played just as vital and central a role in antiquity's most consequential events, as classicist Daisy Dunn (The Shadow of Vesuvius) elegantly details in The Missing Thread. Dunn answers the many male-centric histories of antiquity with this shimmering volume that celebrates women as true "creators of history"
BookBrowse Editorial Review
Holy City
by Henry Wise
(7/17/2024)
What makes Holy City unique for its anodyne "mystery" appellation is its evocation of a Southern town gone to seed, mirroring declining industries, crime, and poverty. Wise's vision is a hopeful one, and themes of faith and forgiveness are redolent throughout, as Will continues to hope that the past does not have to control the future, especially in the heart of the ex-Confederacy. Using multiple POVs from a colorful assortment of characters, Wise captures a range of diverse insights that
BookBrowse Editorial Review
The Demon of Unrest: A Saga of Hubris, Heartbreak, and Heroism at the Dawn of the Civil War
by Erik Larson
(5/1/2024)
In the aftermath of the 1860 presidential election, the divided United States began to collapse as South Carolina seceded from the Union, followed by another six Southern states. Among the countless contentious points between the Union and the fledgling Confederacy was the existence of a 75-man Federal garrison in Charleston Harbor that would become the flashpoint for civil war. In The Demon of Unrest, Erik Larson weaves a gripping tale of America's slow-motion lurch toward war, pla
BookBrowse Editorial Review
Flight of the Wild Swan
by Melissa Pritchard
(4/17/2024)
Florence Nightingale (1820–1910), known variously as the "Lady with the Lamp" or the "Ministering Angel" of the Crimean War (1853–1856), elevated the role of nursing into a profession—especially for women—in an era that had previously regarded female nurses with disdain. Relying on Nightingale's copious letters and journals and other documentary evidence, Melissa Pritchard's dazzling historical novel Flight of the Wild Swan brings this
BookBrowse Editorial Review
Beverly Hills Spy: The Double-Agent War Hero Who Helped Japan Attack Pearl Harbor
by Ronald Drabkin
(3/20/2024)
When it comes to espionage, not only is truth stranger than fiction, sometimes it can be downright unbelievable. Ronald Drabkin's exceptionally entertaining account of World War I hero Frederick Rutland, Beverly Hills Spy, is all the more jaw-dropping because it's entirely true. Beverly Hills Spy is a rollicking narrative of brazen spy craft, buttressed with new revelations and insights that will significantly add to studies of Pearl Harbor and WWII military intel
BookBrowse Editorial Review
The Ascent
by Adam Plantinga
(2/21/2024)
The Ascent stands out not just for its ingenious plot—a winning page-turning equation by itself—but for Argento, a complicated man whose fearlessness is merely the mask for his deep, inconsolable pain. Amid chaos, memories of the woman he loved "so fiercely it scared him" come unbidden. Plantinga creates a love story in retrospect that resonates with the reader and makes Argento's glib quips an obvious band-aid for his numbed existence without her. For this epi
BookBrowse Editorial Review
What the Taliban Told Me
by Ian Fritz
(1/24/2024)
This is a rare inside look at what airborne linguists do, and Fritz excels at describing difficult and highly technical processes in a way most can understand. He is also bitingly funny while doing it. But underneath the pages of sarcastic, stream-of-consciousness riffing, there is a palpable sense of a man grappling with his role in raining death on the heads of human beings below him. The reader sees the progression from the gung-ho airman who believes in the Taliban as "evil" and th
BookBrowse Editorial Review
The Coming Wave: Technology, Power, and the Twenty-first Century's Greatest Dilemma
by Mustafa Suleyman
(11/1/2023)
Including such prescriptions as improved technical safety, audits, governmental regulations and international alliances, Suleyman is cautiously optimistic about the ability of the collective "we" of humanity to fundamentally change society. However, Suleyman's recurring mantra that containment might not look possible but must be inevitably leaves the reader feeling less than sanguine about sweeping change in a fragmented, fraught world. The Coming Wave is necessar
BookBrowse Editorial Review
Wifedom: Mrs. Orwell's Invisible Life
by Anna Funder
(9/6/2023)
There is pain, sadness, and anger in Wifedom, an acute recognition of the ways "wifedom" can be a "wicked magic trick" that obscures and omits the sacrifices of women. In retrieving Eileen Blair "from behind the Cerberus," Funder puts her squarely back in frame as her own person and not just "Mrs. Orwell."
BookBrowse Editorial Review
How Can I Help You
by Laura Sims
(8/2/2023)
The characters' dueling monologues are brilliantly arch and bookish, perfect for the story's claustrophobic setting. Margo describes Patricia's searching looks as making her feel "as if she's turning me over in her hands, inspecting my spine and pages for wear, thumbing my table of contents." The thrust and parry of their mutual fascination explores the dirty underbelly of obsession, one that at its heart is selfish and self-centered: what can the other do for me? Patricia is a willing audience
BookBrowse Editorial Review
A Disappearance in Fiji
by Nilima Rao
(6/21/2023)
Rao develops the mystery of Kunti's disappearance slowly, building up tension through the racist scorn Singh endures from the plantation owners, Henry and Susan Parkins, as well as his own biases. Singh is a soft-spoken observer in the uncomfortable exchanges Rao so realistically depicts. As he moves between the worlds of the planter aristocracy with its overt racism and the quiet, bleak despair of the workers, Singh senses that Kunti's disappearance may portend a darker reality on the Parkins p
BookBrowse Editorial Review
The Covenant of Water
by Abraham Verghese
(5/3/2023)
Winner: 2023 BookBrowse Fiction Award

Verghese sustains this massive story with numerous enigmatic and vividly drawn characters like Big Ammachi, Digby, a Swedish physician named Rune who runs a colony for lepers, Philipose and his love Elsie, who is born to be an artist of staggering genius if only the world will let her. However, running like a riptide beneath the waters of the Malabar Coast, the Condition strikes the family in new, unbidden and heartbreaking ways. It will reach
BookBrowse Editorial Review
On Savage Shores: How Indigenous Americans Discovered Europe
by Caroline Dodds Pennock
(3/1/2023)
The "savage shore" Pennock writes about is Europe, as experienced by various Indigenous travelers. This upends and reframes popular conceptions of the word "savage" and who or what the appellation is often applied to. Along with the travels of Indigenous people, Pennock also exhaustively details the "stuff of life" that traveled from the Americas back to Europe, influencing its culture and pastimes. The relative lack of first-person Indigenous accounts in the book — both current and histor
BookBrowse Editorial Review
The Grimkes: The Legacy of Slavery in an American Family
by Kerri K. Greenidge
(1/18/2023)
Historian Kerri K. Greenidge uses meticulous research to reveal a complex picture of one famous American family and their often-fraught relationships with each other. The Grimkes is a magnificent work of scholarship but equally an indelible human portrait of a family shaped by the same racist, violent world they sought to reshape into something better.
BookBrowse Editorial Review
Africa Is Not a Country: Notes on a Bright Continent
by Dipo Faloyin
(10/19/2022)
Joys and revelations abound in Africa Is Not a Country, but perhaps the most satisfying aspect is Faloyin's ability to weave together Africa's painful past with its infinite promise for a brighter future — on its own terms. Highlighting the more positive developments, such as the "significant rise in the number of elected female legislators and women selected for high-ranking government positions" throughout Africa, Faloyin circles back around to the power of individual human beings
BookBrowse Editorial Review
The Half Life of Valery K
by Natasha Pulley
(8/24/2022)
Caught between the requirements of the Communist state and his own conscience, Valery embarks on the most desperate gamble of his life. Can he and Shenkov escape City 40? At what cost? Together, they confront an imminent man-made disaster and inhuman scientific experiments while finding in each other those things they thought were lost — hope, love and redemption. The Half Life of Valery K is a vivid evocation of the Cold War era with a plausible premise, beautifully rendered charac
BookBrowse Editorial Review
All the Ruined Men: Stories
by Bill Glose
(8/24/2022)
In his closing quartet of stories, Glose lands body blows of brilliant prose that rend the heart. In "The Dead Aren't Allowed to Walk," a character experiences a downward spiral during an addled quest to avenge a friendly fire death. A sister's devastation is eloquently mapped as she observes the objects left behind by her brother in "Her Brother's Apartment." In the collection's longest story, "Penultimate Dad," Mueller reconnects with a daughter he does not recognize, discovering he still has
BookBrowse Editorial Review
The Recruit: A Novel
by Alan Drew
(7/13/2022)
Setting The Recruit 25 years ago lends an eerie sense of prophecy to the story, as the brutish faces of white supremacist movements are an all-too-familiar feature of today's current events. The Recruit is a nail-biter in the classic sense of the thriller, offering taut prose, compelling and diverse characters, and pitch-perfect pacing that delivers an explosive ending reminiscent of real-life events. Despite the unpleasant subject matter, Drew underscores the fact that good people
BookBrowse Editorial Review
Elektra: A Novel
by Jennifer Saint
(6/8/2022)
For the Greek myth and tragedy novice, the ancient stories often present a Gordian knot of deep backstory — who did what to whom and when — requiring skillful fingers to unravel the gnarled threads. Saint is a master at this. She explores the cosmic themes of betrayal and retribution from the female eye with musical prose that cuts with sharp emotional insights. Elektra is a near non-stop reading experience with expert pacing and riveting first-person narratives from the three
BookBrowse Editorial Review
The Vortex: A True Story of History's Deadliest Storm, an Unspeakable War, and Liberation
by Scott Carney
(4/20/2022)
Scott Carney and Jason Miklian achieve a miracle of sorts in weaving three overarching stories into a convincing, satisfying whole, while expertly ratcheting up tension in scenes reminiscent of thriller novels. Mining more than 750 official documents and sources, as well as conducting more than 200 interviews, the authors reveal the appalling lengths Nixon, Kissinger and Khan went to ensure the "CHINESE CONNECTION" (as Khan named his negotiations with Mao) happened. The Vortex grips the r
BookBrowse Editorial Review
Black Cloud Rising
by David Wright Faladé
(2/16/2022)
Wright Faladé superbly crafts an authentic portrayal of the African Brigade and its harrowing experiences in 1863. Black Cloud Rising succeeds on every level as both history and historical fiction: evocative scenes, nuanced characters and taut writing convey powerful lessons about slavery, emancipation and Black identity. One will be the richer after reading this true story of the formerly powerless wielding weapons "primed with the percussion cap of memory."
BookBrowse Editorial Review
Churchill's Shadow: The Life and Afterlife of Winston Churchill
by Geoffrey Wheatcroft
(1/19/2022)
As the word "shadow" in the title indicates, there is an ambivalence surrounding Churchill's impact, and it is this "history of opinions" that Wheatcroft elegantly assembles for the reader. With a wealth of resources and razor-sharp wit throughout, he delivers a far more flawed portrait of Churchill, but does so in a way that does not detract from the man's importance in the least. This volume offers a bracingly independent view that should resonate with fans and foes alike.
BookBrowse Editorial Review
The Amur River: Between Russia and China
by Colin Thubron
(11/3/2021)
The Amur River is a poignant contribution to Thubron's acclaimed career, with his trademark lyricism elevating nature to a central, breathing character that often reflects the ambivalence of its human counterparts. Two minor quibbles are the lack of historical citations and photographs; with as much history as Thubron packs in, a bibliography is essential, as are visual aids for a travel book. Despite this curious oversight, the book will please armchair travelers and longtime fans of Thu
BookBrowse Editorial Review
Lean Fall Stand: A Novel
by Jon Mcgregor
(10/6/2021)
Lean Fall Stand is a linguistically spare and experimental novel that intrepidly embodies the mind and senses of a man suffering a massive stroke and its aftereffects. McGregor reveals the thankless nature of a full-time caregiver's work, but Anna's actions are all the reader is shown. It is not clear if the unsympathetic and shallow portrayal of Anna is intentional, but the effect is the same. Otherwise, the novel is a groundbreaking journey into the ways words can bind up, break apart o
BookBrowse Editorial Review
Lightning Strike: Cork O'Connor Mystery Series #18
by William Kent Krueger
(10/6/2021)
Krueger delivers a masterful strike down the middle with the riddle of Big John's death; Lightning Strike will keep experienced mystery readers guessing until the very end about who was responsible and how it was engineered. For those new to the series, it's a prequel that also works as a powerful standalone novel, richly told and sensitive to the issues of race and class between "The First People" and their white neighbors.
BookBrowse Editorial Review
The Gallery of Miracles and Madness: Insanity, Modernism, and Hitler's War on Art
by Charlie English
(9/8/2021)
English deftly juxtaposes the intellectual and artistic ferment of 1920s Germany with the turgid drawings and morose outlook of a young, adrift Adolf Hitler, at odds with himself and the world after the country's defeat in World War I. He persuasively argues throughout that Hitler's "mass murder programs and his views on art were intimately connected." This little-known holocaust has been sensitively rendered by English in The Gallery of Miracles and Madness, which balances the Hitlerian
BookBrowse Editorial Review
African Europeans: An Untold History
by Olivette Otele
(7/14/2021)
The juxtaposition of the historic lives with the urgency of the Black Lives Matter movement, as well as Otele's call for greater Black female representation in academia, will spur many a reader to greater awareness of the past and what work still needs doing to achieve racial equality and justice. Overall, African Europeans is essential if sometimes challenging reading. While the text often seems targeted to a peer-reviewing audience, it is the people of Otele's book who steal the show.
BookBrowse Editorial Review
The Plot
by Jean Hanff Korelitz
(5/19/2021)
Jean Hanff Korelitz's inimitable and imaginative story-within-a-story sinks its claws in early and doesn't let go until its unforgettable finish. She explores the insular world of her own craft — writers and their ideas — via a chilling twist perhaps as clever as the one Evan Parker shares with Jacob Finch Bonner at an MFA program one fateful day. A truly unique plot in its own right, the novel is a joy in part for its insider look at the writer's solitary craft juxtaposed against the hype and m
BookBrowse Editorial Review
The Blizzard Party
by Jack Livings
(4/7/2021)
The task Livings sets himself is a daunting one: how to weave all these uniquely striated lives and damaged psyches into a tapestry that forms a meaningful pattern. It is as if each character we meet in The Blizzard Party is a snowflake pulled from the blinding storm, set upon crushed black velvet and seen through a microscope, brilliantly and uniquely attenuated. How each of these snowflakes, so unique and ostensibly unconnected, swirl and crash into each other over the course of one wil
BookBrowse Editorial Review
The Spymaster of Baghdad: A True Story of Bravery, Family, and Patriotism in the Battle against ISIS
by Margaret Coker
(3/3/2021)
In The Spymaster of Baghdad, Coker takes us behind Middle East headlines to get a glimpse of a story most often hidden or obscured in journalistic reporting: the service and sacrifice of hundreds of patriotic Iraqis seeking to defend their country. Through the moving accounts of Munaf, Harith and Abrar, Coker poignantly shows how those notions of patriotism took different forms with divergent ends in a country continually fighting for its existence.
BookBrowse Editorial Review
The Quiet Americans: Four CIA Spies at the Dawn of the Cold War--A Tragedy in Three Acts
by Scott Anderson
(11/4/2020)
Anderson's overriding argument is that America tarnished its reputation as a defender of freedom in the 1950s. By supporting totalitarian movements and covertly undermining or overthrowing democratically elected foreign governments that might prove troublesome down the road, America abdicated its moral leadership. What makes his case most persuasive are the experiences of the four CIA spies who lived on the front lines and saw the results on the ground. The author draws from their written and ve
BookBrowse Editorial Review
Magdalena: River of Dreams: A Story of Colombia
by Wade Davis
(9/16/2020)
Davis's narrative has a rich rhythm that mirrors the country's energy and flows much like the river itself: brimming with twists and turns that linger on various towns along the way and the many people with stories to share about their Colombia. And what stories! Written like a lovestruck prayer, Magdalena: River of Dreams brings readers deep into the heart of Colombia for an unforgettable journey through its ecology, culture and often beguiling mystery. Far more than a travelogue, it is
BookBrowse Editorial Review
Yellow Bird: Oil, Murder, and a Woman's Search for Justice in Indian Country
by Sierra Crane Murdoch
(4/8/2020)
One of the most riveting and touchingly human true crime stories in recent memory, Sierra Crane Murdoch's Yellow Bird: Oil, Murder, and a Woman's Search for Justice in Indian Country, tells a deeply-researched and nuanced tale of two worlds colliding on the Fort Berthold Indian Reservation during the early days of the Bakken oil boom in North Dakota. The pulsating heartbeat of this story is the larger than life character of Lissa Yellow Bird, depicted powerfully by Murdoch.
BookBrowse Editorial Review
The Sacrament: A Novel
by Olaf Olafsson
(1/22/2020)
Olafsson treats the uninitiated to rich depictions of endless horizons, mixed with bitter cold and blowing snowdrifts that swirl around one's vision until no light is seen...The Sacrament is a powerful exploration of faith and the crucial role that doubt plays in its inception and maintenance. With its reverent language of memory and regret, longing and loss, justice and vengeance, the book seeks to find its own answer to which is the greatest of these qualities: faith, hope and love.
BookBrowse Editorial Review
Edison
by Edmund Morris
(10/30/2019)
The story of Edison and his inventions is ably told by Mr. Morris in authoritative, commanding prose, but it also is at times technically challenging and gimmicky. What stands out immediately is the author's bold decision to write Edison's life backward. The book begins with the inventor on his deathbed, having already attained fame. Each chapter then jumps back a decade and centers on the scientific problem that preoccupied Edison's attention at the time. This structure is bizarre, disorienting

Reviews (9)

Ordinary Love: A Novel
by Marie Rutkoski
Brought Back Butterflies (5/5/2025)
Ordinary Love is a transcendent and butterfly-inducing love story. I could not put this one down, and I'm normally not attracted (pun intended) to domestic love stories. The themes of regret and repression are redolent, but yet there's this poignant whiff of hope that keeps the reader pushing on through the characters' questionable choices. Even though the love story is one between two women, it is ultimately a story about dealing with the consequences of our decisions. Powerful and potent, this tale will stay with you long after you put it down.
Strong Passions: A Scandalous Divorce in Old New York
by Barbara Weisberg
19th-Century Divorce Court! (1/2/2024)
Strong Passions is an unusual story, both in fact and in the telling. Divorce in mid-to-late nineteenth century was a rare thing, indeed, and Weisberg tells the story in a lively way that allows the reader into the courtroom. Along with fascinating insights into the arcane and biased divorce and child custody laws of the era, Weisberg has a probing nose for the salacious in this extremely juicy family story of love, adultery, paternity, and the helplessness of children when spouses go to war. A fun read that I highly recommend!
Devil Makes Three: A Novel
by Ben Fountain
Haitian History Made Human (10/6/2023)
Ben Fountain's terrific new novel, Devil Makes Three, takes the reader on an unforgettable journey into modern Haiti (with side excursions down the dark alleys of its politically corrupt history. Matt Amaker is copartner of a scuba diving business with his Haitian friend, Alix Variel, when the coup against democratically elected Aristide ends his dreams of a thriving future. Across town, Audrey O'Donnell is a rookie CIA officer intent on a clandestine mission. Paths cross and missions collide as a delightful cast of characters--American and Haitian--all seek to make it rich, find love, and even make a positive difference in the lives of Haiti's long-suffering people.

Fountain stirs up a flavorful étouffée of Haitian politics, history, geography, and language in this substantial novel (544 pages) that both enlightens and entertains. As Matt and Alix shift their focus to diving legendary shipwrecks to find treasure, Alix's sister Misha, finds herself moving away from her PhD plans in America to help at a local Haitian clinic. Fountain weaves in a solid love story, as well, that keeps the novel from being purely a political thriller.

It is also a very chatty novel, but at times the dialogue and descriptions tap the brakes on a complex story that needs movement to survive, much like a shark that needs to keep swimming. Despite moments of flowery exposition and nonessential chit-chat, Fountain puts flesh on the bones of his characters, all of whom have a deep regard for a country in upheaval. Full of underwater adventure and above-water drama, Fountain puts Haiti—in all its multicolored grandeur and pathos—center stage in this fascinating and rewarding long novel.
Clytemnestra: A Novel
by Costanza Casati
A Faithful, Forceful Vision of Clytemnestra's Vengeance (12/27/2022)
Having read another very good novel about Clytemnestra recently, I thought: how can this be any better? I was rightfully put in my place by Constanza Casati in her simply titled "Clytemnestra." Casati provides a much different picture than other recent novels have painted of this formidable Greek figure, a more expansive one that follows existing and alternate tellings of Clytemnestra's life. For one, Casati follows the path of Clytemnestra's first marriage to the mythical Tantalus and their doomed happiness at the hands of the cunning, cruel Agamemnon. Casati's prose is riveting and her characters leap and lunge off the page, much like the young female Spartiates who train daily to be warrior mothers. And that is all in the first two acts alone. This is a rich, indulgent, and shattering novel that is uniquely its own; indeed, Clytemnestra has never been more fierce or her vengeance more patient than in Casati's able hands.
Daughters of the Flower Fragrant Garden: Two Sisters Separated by China's Civil War
by Zhuqing Li
Two Sisters and the Forces of History (6/17/2022)
Daughters of the Flower Fragrant Garden is a moving tale of sisters torn apart by the forces of history and an engaging exploration of mainland China and Taiwan during a time of upheaval. Zhuqing Li ties in the history of her family's home in the exotic Flower Fragrant Garden with the ending of WWII and the rise of the Communist Party under Mao Zedong. The tragedy begins when the author's aunt Jun is stranded on the island of Jinmen while visiting a friend and Communist forces seize her hometown…where her beloved sister, Hong, resides. Thus begins a 33-year parallel history of sisters separated by historical forces beyond their control. Blending the personal with the political, Li is a sensitive chronicler as she invites the reader into the pathos of her family's intriguing story. It is ultimately a story of two ambitious, intelligent, and talented women who make the best of their lives. Highly recommend!
Free: A Child and a Country at the End of History
by Lea Ypi
A Peek Behind Iron Curtains (12/25/2021)
I thoroughly enjoyed this memoir of Lea Ypi's life under socialism and communism in Albania. Her story is unusual in that, as a child, she was very much a believer in "the Party," and found her parents and extended relatives rather lukewarm about it. Halfway through, when the Party falls under protests and the push for a democratic government, Lea learns some shocking things (to her) about her family. This book is perfect for Cold War history buffs or those who are intrigued by all forms of socialism. It's a well-ordered and personal study into the mysteries families hold and how freedom can be as disorienting as it is liberating.
Ariadne
by Jennifer Saint
Meet the Women of the Myths (4/12/2021)
Jennifer Saint reimagines the myth of Ariadne and her sister Phaedra, daughters of King Minos of Crete and half-sisters to the dreaded Minotaur. It is a thrilling and yet tender tale of two sisters longing for the same thing: a life free of their tyrannical father and the ominous presence of the Minotaur, imprisoned in the stone labyrinth beneath the mosaic tiles of the palace. It is a story of love lost, won, and lost again—told by the sisters themselves. In this way, Saint gives readers a wonderfully feminist retelling of the ancient Greek myths. Highly recommend.
The Widow Queen: The Bold #1
by Elzbieta Cherezinska
More, please (12/25/2020)
For lovers of deep historical fiction with sweeping scope—and a healthy dose of strong, savvy women characters—Elzbieta Cherezinska's The Widow Queen delivers richly. While there are many names and places to keep track of in the book, the story of Swietoslawa is a wryly told saga that only promises more. This is the first book in the trilogy, and I am eagerly awaiting the next installment. Be prepared to be swept off your feet, sometimes forcefully (we are talking about Vikings after all), and absorb the rich history of Poland during the late 10th century. Love, betrayal, war, exile...this story will stay with you. I'm looking to read more about Poland's past as a result of this book. Do not let this one pass you by.
The Smallest Lights in the Universe: A Memoir
by Sara Seager
The Universe of Love (7/28/2020)
Contemporary memoirs are usually not my stock in trade, but I am so glad I stepped out of my comfort zone to read it. "The Smallest Lights in the Universe: A Memoir" by Sara Seager is a moving story of one very accomplished woman's journey through a devastating loss and how she picked up the myriad pieces of herself to continue the roller coaster ride of life. Seager, an accomplished planetary scientist, is also a very skilled storyteller who deftly moves from the personal story of her love and loss, and then back again to her increasingly successful career searching the heavens for other life and other planets. A deeply inspiring story, it is one that should appeal to many women juggling careers and families. It is also incredibly moving; I found myself wiping away tears at many points in her memoir. The book ultimately serves to remind us of the centrality of hope: the hope to recover from painful loss, to find new beginnings, and, for Seager, to find those smallest lights in the universe.

BookBrowse Book Club

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

Members Recommend

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

A classic is a book that has never finished saying what it has to say

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 /readers/index.cfm
Time Stamp 31-May-26 10:32 PM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780266726006 ms 1.78026672601E+012 ms 1 /root/website/app_server.cfm
2444 ms 2444 ms 1 /root/website/readers/index.cfm
2173 ms 2173 ms 1 /root/website/readers/dsp_profile.cfm
1284 ms 257 ms 5 /root/website/queries/qry_get_book_by_id.cfm
219 ms 219 ms 1 CFC[ /root/website/cfcs/discourse.cfc | fetchAvatarUrl(Peggy_Kurkowski) ] from /root/website/cfcs/discourse.cfc
140 ms 140 ms 1 /root/website/app_layout.cfm
101 ms 101 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
72 ms 72 ms 1 /root/website/app_globals.cfm
70 ms 35 ms 2 /root/website/adsystem/adsystem_mod.cfm
48 ms 12 ms 4 /root/website/queries/qry_get_preview_by_id_for_search.cfm
44 ms 44 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
43 ms 43 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
40 ms 40 ms 1 /root/website/adzones/AdZone6.cfm
33 ms 33 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
32 ms 32 ms 1 /root/website/adzones/showcase_track.cfm
30 ms 8 ms 4 /root/website/queries/qry_get_preview_awards_by_id.cfm
28 ms 28 ms 1 /root/website/queries/qry_get_member_profile.cfm
27 ms 27 ms 1 /root/website/queries/qry_get_reviews_by_member.cfm
26 ms 26 ms 1 /root/website/queries/qry_get_active_obc.cfm
14 ms 14 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
11 ms 11 ms 1 /root/website/actions/adstatus.cfm
11 ms 11 ms 1 /root/website/queries/qry_get_current_competition.cfm
7 ms 7 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_follower_count.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_following_count.cfm
3 ms 3 ms 1 /root/website/act_check_login.cfm
3 ms 1 ms 3 /root/website/actions/act_spider_tracker.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_member_info.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_current_ezine.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_reader_reviews_power_reviewers.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_free_newsletters.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_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_menu.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
0 ms 0 ms 1 CFC[ /root/website/cfcs/discourse.cfc | init() ] from /root/website/cfcs/discourse.cfc
2 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
2446 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 22:32:06.006
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 @ 22:32:06.006
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=7ms, Records=2) in /root/website/actions/adstatus.cfm @ 22:32:06.006
SELECT	viewby, section
    FROM	adsystem 
    WHERE	active  = 1 
    AND		start_date <= GETDATE()
    AND 	(viewby = ? OR viewby = 'all')
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = non

get_current_ezine (Datasource=bookbrowse_com_new, Time=0ms, Records=1, Cached Query) in /root/website/queries/qry_get_current_ezine.cfm @ 22:32:06.006
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 @ 22:32:06.006
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=2ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 22:32:06.006
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=3ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 22:32:06.006
SELECT 	x.competition_number, x.book_number, x.competition_teaser_title, x.competition_teaser_description, x.competition_intro_text, x.competition_expiration_dt, x.bb_briefs_flag, x.competition_full_info_flag, x.competition_type, x.competition_optin,x.competition_optin_text, 
				a.book_title as "title",
				(b.author_first_name + ' ' +  b.author_middle_initial + ' ' + b.author_last_name) as "author",
	            f.edition_publish_dt AS "hardcover_publish_dt", f.edition_jacket_image as "hardcover_jacket_image",
				g.edition_publish_dt AS "paperback_publish_dt", g.edition_jacket_image as "paperback_jacket_image"
	
		FROM 		competitions x
		INNER JOIN	books a on a.book_number = x.book_number
		INNER JOIN	book_author_mapping c on c.book_number = x.book_number
		INNER JOIN	authors b on c.author_number = b.author_number
		LEFT JOIN	editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
		LEFT JOIN	editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1

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

get_previous_arcs_for_ad (Datasource=bookbrowse_com_new, Time=0ms, Records=0, Cached Query) in /root/website/queries/qry_get_previous_arcs_for_ad.cfm @ 22:32:06.006
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=7ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 22:32:06.006
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=6ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 22:32:06.006
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=11ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 22:32:06.006
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_member_profile (Datasource=bookbrowse_com_new, Time=27ms, Records=1) in /root/website/queries/qry_get_member_profile.cfm @ 22:32:06.006
SELECT  m.member_number, m.discourse_username, m.member_first_name, m.member_last_name, m.profile_image_url, m.member_full_name, m.member_bio, m.external_link, m.member_classification_number, m.member_email
        FROM    members m
        WHERE   m.discourse_username = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = Peggy_Kurkowski

get_reviews_by_member (Datasource=bookbrowse_com_new, Time=27ms, Records=9) in /root/website/queries/qry_get_reviews_by_member.cfm @ 22:32:06.006
SELECT  a.book_number, a.ezine_preview_number, a.reader_review_number,
            COALESCE(NULLIF(LTRIM(RTRIM(m.discourse_username)), ''), NULLIF(LTRIM(RTRIM(a.reader_review_reviewer_name)), '')) AS reader_review_reviewer_name,
            a.reader_review_title, a.reader_review_rating, a.reader_review_description, a.reader_review_dt,
            (SELECT COUNT(*) FROM reader_review_likes rl WHERE rl.reader_review_number = a.reader_review_number) AS like_count
    FROM    reader_reviews a
    LEFT OUTER JOIN members m ON m.member_number = a.member_number
    WHERE   a.member_number = ?
    AND     a.reader_review_approved_flag = 1
    
        ORDER BY a.reader_review_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 13529

get_follower_count (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/queries/qry_get_follower_count.cfm @ 22:32:06.006
SELECT COUNT(*) AS follower_count
    FROM member_follows
    WHERE followed_member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 13529

get_following_count (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/queries/qry_get_following_count.cfm @ 22:32:06.006
SELECT COUNT(*) AS following_count
    FROM member_follows
    WHERE follower_member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 13529

get_reviewer_number (Datasource=bookbrowse_com_new, Time=11ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 22:32:06.006
SELECT TOP 1 reviewer_number
                FROM reviewers
                WHERE reviewer_email = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = pegster30@msn.com

get_reader_reviews_power_reviewers (Datasource=bookbrowse_com_new, Time=0ms, Records=50, Cached Query) in /root/website/queries/qry_get_reader_reviews_power_reviewers.cfm @ 22:32:06.006
SELECT 		top 50 reader_review_reviewer_email_address, count(reader_review_reviewer_email_address) as "count"
	FROM 		reader_reviews
	WHERE 		reader_review_reviewer_email_address like '%@%'
	AND 		reader_review_reviewer_email_address <> 'reviews@bookbrowse.com'
	GROUP BY 	reader_review_reviewer_email_address
	
	
	ORDER BY 	count desc
(Datasource=bookbrowse_com_new, Time=13ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 22:32:06.006
UPDATE members
                    SET profile_image_url = ?
                    WHERE member_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = https://community.bookbrowse.com/user_avatar/community.bookbrowse.com/peggy_kurkowski/240/71_2.png
Parameter #2(CF_SQL_INTEGER) = 13529

get_reviewer_details (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/readers/dsp_profile.cfm @ 22:32:06.006
SELECT reviewer_photo, reviewer_bio, reviewer_first_name, reviewer_last_name
            FROM reviewers
            WHERE reviewer_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 122

get_editorial_reviews (Datasource=bookbrowse_com_new, Time=443ms, Records=39) in /root/website/readers/dsp_profile.cfm @ 22:32:06.006
SELECT  d.book_number, d.book_title, d.book_sub_title,
                    e.ezine_dt,
                    ep.ezine_preview_number, ep.ezine_preview_title, ep.ezine_preview_subtitle,
                    ep.ezine_preview_author, ep.ezine_preview_jacket_image,
                    mr.media_review_rating,
                    LEFT(mr.media_review, 500) AS review_excerpt
            FROM    ezine_edition_mapping b
            INNER JOIN editions c ON c.edition_number = b.edition_number
            INNER JOIN books d ON d.book_number = c.book_number
            INNER JOIN ezines e ON e.ezine_number = b.ezine_number
            LEFT JOIN ezine_previews ep ON ep.ezine_preview_isbn13 = c.edition_isbn13
                AND ep.ezine_preview_isbn13 IS NOT NULL AND LEN(ep.ezine_preview_isbn13) > 0
            LEFT JOIN media_reviews mr ON mr.book_number = c.book_number AND mr.media_review_type_number = 9
            WHERE   b.reviewer_number = ?
            AND     e.ezine_dt = (SELECT TOP 1 ez.ezine_dt
                                  FROM ezines ez
                                  INNER JOIN ezine_edition_mapping eem ON eem.ezine_number = ez.ezine_number
                                  INNER JOIN editions ed ON ed.edition_number = eem.edition_number
                                  WHERE ed.book_number = c.book_number
                                  ORDER BY ez.ezine_dt ASC)
            ORDER BY e.ezine_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 122

get_preview_by_id (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/queries/qry_get_preview_by_id_for_search.cfm @ 22:32:06.006
SELECT 	ezine_preview_number,
            ezine_preview_title, 
            ezine_preview_subtitle, 
            ezine_preview_author, 
            ezine_preview_publisher,
            ezine_preview_publish_dt,
            ezine_preview_number_of_pages, 
            ezine_preview_short_summary,
            ezine_preview_jacket_image,
            ezine_preview_reviews,
            ezine_preview_jacket_desc,
			ezine_preview_reading_guide,
            ezine_preview_isbn,
            ezine_preview_isbn13,
            ezine_preview_rating,
            ezine_preview_bb_author_link
            				
    FROM 	ezine_previews
    WHERE 	ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21225

get_author_name (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/queries/qry_get_preview_by_id_for_search.cfm @ 22:32:06.006
SELECT 	a.author_number, datalength(b.author_info_interview) as "interview",
		        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 "author_name"
        FROM 		authors a
        INNER JOIN 	author_info b on b.author_number = a.author_number 
        
        WHERE 		a.author_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2617

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=2ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 22:32:06.006
select a.book_award_number, a.book_award_name, a.book_award_image, c.book_award_dt
    from book_awards a 
    inner join book_awards_category b on b.book_award_number = a.book_award_number
    inner join book_awards_mapping c on c.book_awards_category_number = b.book_awards_category_number
    where ezine_preview_number =  ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21225

get_preview_by_id (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/queries/qry_get_preview_by_id_for_search.cfm @ 22:32:06.006
SELECT 	ezine_preview_number,
            ezine_preview_title, 
            ezine_preview_subtitle, 
            ezine_preview_author, 
            ezine_preview_publisher,
            ezine_preview_publish_dt,
            ezine_preview_number_of_pages, 
            ezine_preview_short_summary,
            ezine_preview_jacket_image,
            ezine_preview_reviews,
            ezine_preview_jacket_desc,
			ezine_preview_reading_guide,
            ezine_preview_isbn,
            ezine_preview_isbn13,
            ezine_preview_rating,
            ezine_preview_bb_author_link
            				
    FROM 	ezine_previews
    WHERE 	ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 18204

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 22:32:06.006
select a.book_award_number, a.book_award_name, a.book_award_image, c.book_award_dt
    from book_awards a 
    inner join book_awards_category b on b.book_award_number = a.book_award_number
    inner join book_awards_mapping c on c.book_awards_category_number = b.book_awards_category_number
    where ezine_preview_number =  ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 18204

get_preview_by_id (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_preview_by_id_for_search.cfm @ 22:32:06.006
SELECT 	ezine_preview_number,
            ezine_preview_title, 
            ezine_preview_subtitle, 
            ezine_preview_author, 
            ezine_preview_publisher,
            ezine_preview_publish_dt,
            ezine_preview_number_of_pages, 
            ezine_preview_short_summary,
            ezine_preview_jacket_image,
            ezine_preview_reviews,
            ezine_preview_jacket_desc,
			ezine_preview_reading_guide,
            ezine_preview_isbn,
            ezine_preview_isbn13,
            ezine_preview_rating,
            ezine_preview_bb_author_link
            				
    FROM 	ezine_previews
    WHERE 	ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 17875

get_author_name (Datasource=bookbrowse_com_new, Time=10ms, Records=1) in /root/website/queries/qry_get_preview_by_id_for_search.cfm @ 22:32:06.006
SELECT 	a.author_number, datalength(b.author_info_interview) as "interview",
		        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 "author_name"
        FROM 		authors a
        INNER JOIN 	author_info b on b.author_number = a.author_number 
        
        WHERE 		a.author_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 3132

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 22:32:06.006
select a.book_award_number, a.book_award_name, a.book_award_image, c.book_award_dt
    from book_awards a 
    inner join book_awards_category b on b.book_award_number = a.book_award_number
    inner join book_awards_mapping c on c.book_awards_category_number = b.book_awards_category_number
    where ezine_preview_number =  ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 17875

get_book_by_id (Datasource=bookbrowse_com_new, Time=111ms, Records=1) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.book_number, a.book_title, a.book_sub_title, a.book_url, a.book_entry_dt, a.book_short_summary, a.book_excerpt, a.book_jacket_info, a.book_reading_guide, a.book_copyright_info, a.book_notes,
            	b.author_number, b.author_first_name, b.author_last_name, b.author_middle_initial,
            	f.edition_publish_dt AS "hardcover_publish_dt", f.edition_number_of_pages AS "hardcover_number_of_pages", f.edition_isbn AS "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13", f.edition_jacket_image as "hardcover_jacket_image", f.edition_publisher as "hardcover_publisher",
            	g.edition_publish_dt AS "paperback_publish_dt", g.edition_number_of_pages AS "paperback_number_of_pages", g.edition_isbn AS "paperback_isbn", g.edition_isbn13 "paperback_isbn13", g.edition_jacket_image as "paperback_jacket_image", g.edition_publisher as "paperback_publisher",
            	i.author_info_interview, i.author_info_biography,i.author_info_image,
            	CASE WHEN datalength(author_middle_initial) = 1 THEN author_first_name + ' ' + author_middle_initial + ' ' + author_last_name
            		 ELSE author_first_name + ' ' + author_last_name
            		 END "author_name",
            	CASE WHEN 
					(select count(*) from editions where book_number = 4364) = 1
					AND
					(select count(*) from editions where book_number = 4364 and edition_paperback_flag = 1) = 1
				THEN 1
				ELSE 0
				END AS "po_flag",
				(select count(*) from book_author_mapping m where m.author_number = b.author_number)
				+
				(select count(*) from ezine_previews where ezine_preview_bb_author_link = b.author_number and ezine_preview_bb_link =0)
				 as 'author_bookcount',
            	(SELECT CAST(AVG(CAST(rating AS decimal(12,0))) AS decimal(12,1))
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) "savrating",
			(SELECT COUNT(rating)
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) as "savrating_count",
            	(select top 1 media_review_rating from media_reviews where book_number = a.book_number and media_review_type_number = 9) as "bbrating",
            	(select cast(AVG(CAST(media_review_rating AS numeric(12,2)))AS decimal(12,1)) from media_reviews where book_number = a.book_number and media_review_type_number <> 7 and media_review_rating > 0) "scritrating",
				(SELECT COUNT(media_review_rating) FROM media_reviews WHERE book_number = a.book_number AND media_review_type_number <> 7 AND media_review_rating > 0) as "scritrating_count",
            	(select top 1 gg.ezine_number from ezine_edition_mapping aa, editions bb, books cc, ezines gg            	
            	where aa.edition_number = bb.edition_number and bb.book_number = cc.book_number and aa.ezine_number = gg.ezine_number 
            	and cc.book_number = a.book_number and gg.ezine_bbsays_flag = 1 and gg.ezine_active_flag = 1) as "ezine_number",
				cgm.category_number,
				cgya.category_number AS "ya_flag"
				
,(select top 1 publisher_holding_company from publishers where (publisher_imprint like f.edition_publisher OR publisher_imprint like g.edition_publisher) AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
        
    FROM		books a 
    INNER JOIN	book_author_mapping c ON c.book_number = a.book_number
    INNER JOIN	authors b ON b.author_number = c.author_number  
    INNER JOIN	author_info i ON i.author_number = b.author_number
    
    LEFT JOIN	editions f ON f.book_number = a.book_number AND f.edition_paperback_flag = 0
    LEFT JOIN	editions g ON g.book_number = a.book_number AND g.edition_paperback_flag = 1
    LEFT JOIN	category_book_mapping cgm on cgm.book_number = a.book_number AND cgm.category_number = 48
    LEFT JOIN	category_book_mapping cgya on cgya.book_number = a.book_number AND cgya.category_number = 40
          
    WHERE 		a.book_number = ?
         
    ORDER BY	c.book_author_mapping_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4615

get_media_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=101ms, Records=7) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.media_review_number, 
				a.book_number, 
				a.media_review_type_number, 
				a.media_review_title, 
				a.media_review_rating, 
				a.media_review, 
				a.media_review_old,
	
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 (case when dbo.WordCount(c.ezine_review_2) > 0 then dbo.WordCount(c.ezine_review_2) + dbo.WordCount(c.ezine_extras) 
                                                                                    else dbo.WordCount(c.ezine_review) 
                                                                                    end)
                                                                from ezine_edition_mapping c
                                                                INNER JOIN editions d ON (d.edition_number = c.edition_number)
                                                                INNER JOIN ezines e ON e.ezine_number = c.ezine_number
                                                                WHERE d.book_number = ?
                                                                
                                                                ORDER BY e.ezine_number ASC)
	 			ELSE 0 
	 			END  "wordc",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_number
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			ELSE 1
				END "reviewer_number",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_first_name + ' ' + reviewer_last_name AS "reviewer_name"
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
																 INNER JOIN reviewers r on r.reviewer_number = c.reviewer_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			END "reviewer_name"
	
	FROM		media_reviews a, media_review_types b
	
	WHERE		a.book_number IN (select distinct c.book_number from categories a, category_book_mapping b, book_author_mapping c where a.category_number = b.category_number and a.category_active_flag = 1 and b.book_number = c.book_number)
	AND			a.book_number = ?
	AND			a.media_review_type_number = b.media_review_type_number
	
	ORDER BY	b.media_review_type_sort_order ASC, media_review_rating DESC, media_review_title ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4615
Parameter #2(CF_SQL_INTEGER) = 4615
Parameter #3(CF_SQL_INTEGER) = 4615
Parameter #4(CF_SQL_INTEGER) = 4615

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

get_coauthor (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/actions/udfs.cfm @ 22:32:07.007
select 		book_number, 
            			CASE	WHEN datalength(d.author_middle_initial) > 1 
				                THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
				                ELSE d.author_first_name + ' ' + d.author_last_name
                        END "author",
                        d.author_number
            from		book_author_mapping e
            inner join	authors d ON e.author_number = d.author_number
            where		e.book_number = ?
			order by	book_author_mapping_number ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4615

get_book_by_id (Datasource=bookbrowse_com_new, Time=69ms, Records=1) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.book_number, a.book_title, a.book_sub_title, a.book_url, a.book_entry_dt, a.book_short_summary, a.book_excerpt, a.book_jacket_info, a.book_reading_guide, a.book_copyright_info, a.book_notes,
            	b.author_number, b.author_first_name, b.author_last_name, b.author_middle_initial,
            	f.edition_publish_dt AS "hardcover_publish_dt", f.edition_number_of_pages AS "hardcover_number_of_pages", f.edition_isbn AS "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13", f.edition_jacket_image as "hardcover_jacket_image", f.edition_publisher as "hardcover_publisher",
            	g.edition_publish_dt AS "paperback_publish_dt", g.edition_number_of_pages AS "paperback_number_of_pages", g.edition_isbn AS "paperback_isbn", g.edition_isbn13 "paperback_isbn13", g.edition_jacket_image as "paperback_jacket_image", g.edition_publisher as "paperback_publisher",
            	i.author_info_interview, i.author_info_biography,i.author_info_image,
            	CASE WHEN datalength(author_middle_initial) = 1 THEN author_first_name + ' ' + author_middle_initial + ' ' + author_last_name
            		 ELSE author_first_name + ' ' + author_last_name
            		 END "author_name",
            	CASE WHEN 
					(select count(*) from editions where book_number = 4364) = 1
					AND
					(select count(*) from editions where book_number = 4364 and edition_paperback_flag = 1) = 1
				THEN 1
				ELSE 0
				END AS "po_flag",
				(select count(*) from book_author_mapping m where m.author_number = b.author_number)
				+
				(select count(*) from ezine_previews where ezine_preview_bb_author_link = b.author_number and ezine_preview_bb_link =0)
				 as 'author_bookcount',
            	(SELECT CAST(AVG(CAST(rating AS decimal(12,0))) AS decimal(12,1))
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) "savrating",
			(SELECT COUNT(rating)
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) as "savrating_count",
            	(select top 1 media_review_rating from media_reviews where book_number = a.book_number and media_review_type_number = 9) as "bbrating",
            	(select cast(AVG(CAST(media_review_rating AS numeric(12,2)))AS decimal(12,1)) from media_reviews where book_number = a.book_number and media_review_type_number <> 7 and media_review_rating > 0) "scritrating",
				(SELECT COUNT(media_review_rating) FROM media_reviews WHERE book_number = a.book_number AND media_review_type_number <> 7 AND media_review_rating > 0) as "scritrating_count",
            	(select top 1 gg.ezine_number from ezine_edition_mapping aa, editions bb, books cc, ezines gg            	
            	where aa.edition_number = bb.edition_number and bb.book_number = cc.book_number and aa.ezine_number = gg.ezine_number 
            	and cc.book_number = a.book_number and gg.ezine_bbsays_flag = 1 and gg.ezine_active_flag = 1) as "ezine_number",
				cgm.category_number,
				cgya.category_number AS "ya_flag"
				
,(select top 1 publisher_holding_company from publishers where (publisher_imprint like f.edition_publisher OR publisher_imprint like g.edition_publisher) AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
        
    FROM		books a 
    INNER JOIN	book_author_mapping c ON c.book_number = a.book_number
    INNER JOIN	authors b ON b.author_number = c.author_number  
    INNER JOIN	author_info i ON i.author_number = b.author_number
    
    LEFT JOIN	editions f ON f.book_number = a.book_number AND f.edition_paperback_flag = 0
    LEFT JOIN	editions g ON g.book_number = a.book_number AND g.edition_paperback_flag = 1
    LEFT JOIN	category_book_mapping cgm on cgm.book_number = a.book_number AND cgm.category_number = 48
    LEFT JOIN	category_book_mapping cgya on cgya.book_number = a.book_number AND cgya.category_number = 40
          
    WHERE 		a.book_number = ?
         
    ORDER BY	c.book_author_mapping_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4491

get_media_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=287ms, Records=12) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.media_review_number, 
				a.book_number, 
				a.media_review_type_number, 
				a.media_review_title, 
				a.media_review_rating, 
				a.media_review, 
				a.media_review_old,
	
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 (case when dbo.WordCount(c.ezine_review_2) > 0 then dbo.WordCount(c.ezine_review_2) + dbo.WordCount(c.ezine_extras) 
                                                                                    else dbo.WordCount(c.ezine_review) 
                                                                                    end)
                                                                from ezine_edition_mapping c
                                                                INNER JOIN editions d ON (d.edition_number = c.edition_number)
                                                                INNER JOIN ezines e ON e.ezine_number = c.ezine_number
                                                                WHERE d.book_number = ?
                                                                
                                                                ORDER BY e.ezine_number ASC)
	 			ELSE 0 
	 			END  "wordc",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_number
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			ELSE 1
				END "reviewer_number",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_first_name + ' ' + reviewer_last_name AS "reviewer_name"
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
																 INNER JOIN reviewers r on r.reviewer_number = c.reviewer_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			END "reviewer_name"
	
	FROM		media_reviews a, media_review_types b
	
	WHERE		a.book_number IN (select distinct c.book_number from categories a, category_book_mapping b, book_author_mapping c where a.category_number = b.category_number and a.category_active_flag = 1 and b.book_number = c.book_number)
	AND			a.book_number = ?
	AND			a.media_review_type_number = b.media_review_type_number
	
	ORDER BY	b.media_review_type_sort_order ASC, media_review_rating DESC, media_review_title ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4491
Parameter #2(CF_SQL_INTEGER) = 4491
Parameter #3(CF_SQL_INTEGER) = 4491
Parameter #4(CF_SQL_INTEGER) = 4491

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

get_coauthor (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/actions/udfs.cfm @ 22:32:07.007
select 		book_number, 
            			CASE	WHEN datalength(d.author_middle_initial) > 1 
				                THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
				                ELSE d.author_first_name + ' ' + d.author_last_name
                        END "author",
                        d.author_number
            from		book_author_mapping e
            inner join	authors d ON e.author_number = d.author_number
            where		e.book_number = ?
			order by	book_author_mapping_number ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4491

get_book_by_id (Datasource=bookbrowse_com_new, Time=33ms, Records=1) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.book_number, a.book_title, a.book_sub_title, a.book_url, a.book_entry_dt, a.book_short_summary, a.book_excerpt, a.book_jacket_info, a.book_reading_guide, a.book_copyright_info, a.book_notes,
            	b.author_number, b.author_first_name, b.author_last_name, b.author_middle_initial,
            	f.edition_publish_dt AS "hardcover_publish_dt", f.edition_number_of_pages AS "hardcover_number_of_pages", f.edition_isbn AS "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13", f.edition_jacket_image as "hardcover_jacket_image", f.edition_publisher as "hardcover_publisher",
            	g.edition_publish_dt AS "paperback_publish_dt", g.edition_number_of_pages AS "paperback_number_of_pages", g.edition_isbn AS "paperback_isbn", g.edition_isbn13 "paperback_isbn13", g.edition_jacket_image as "paperback_jacket_image", g.edition_publisher as "paperback_publisher",
            	i.author_info_interview, i.author_info_biography,i.author_info_image,
            	CASE WHEN datalength(author_middle_initial) = 1 THEN author_first_name + ' ' + author_middle_initial + ' ' + author_last_name
            		 ELSE author_first_name + ' ' + author_last_name
            		 END "author_name",
            	CASE WHEN 
					(select count(*) from editions where book_number = 4364) = 1
					AND
					(select count(*) from editions where book_number = 4364 and edition_paperback_flag = 1) = 1
				THEN 1
				ELSE 0
				END AS "po_flag",
				(select count(*) from book_author_mapping m where m.author_number = b.author_number)
				+
				(select count(*) from ezine_previews where ezine_preview_bb_author_link = b.author_number and ezine_preview_bb_link =0)
				 as 'author_bookcount',
            	(SELECT CAST(AVG(CAST(rating AS decimal(12,0))) AS decimal(12,1))
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) "savrating",
			(SELECT COUNT(rating)
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) as "savrating_count",
            	(select top 1 media_review_rating from media_reviews where book_number = a.book_number and media_review_type_number = 9) as "bbrating",
            	(select cast(AVG(CAST(media_review_rating AS numeric(12,2)))AS decimal(12,1)) from media_reviews where book_number = a.book_number and media_review_type_number <> 7 and media_review_rating > 0) "scritrating",
				(SELECT COUNT(media_review_rating) FROM media_reviews WHERE book_number = a.book_number AND media_review_type_number <> 7 AND media_review_rating > 0) as "scritrating_count",
            	(select top 1 gg.ezine_number from ezine_edition_mapping aa, editions bb, books cc, ezines gg            	
            	where aa.edition_number = bb.edition_number and bb.book_number = cc.book_number and aa.ezine_number = gg.ezine_number 
            	and cc.book_number = a.book_number and gg.ezine_bbsays_flag = 1 and gg.ezine_active_flag = 1) as "ezine_number",
				cgm.category_number,
				cgya.category_number AS "ya_flag"
				
,(select top 1 publisher_holding_company from publishers where (publisher_imprint like f.edition_publisher OR publisher_imprint like g.edition_publisher) AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
        
    FROM		books a 
    INNER JOIN	book_author_mapping c ON c.book_number = a.book_number
    INNER JOIN	authors b ON b.author_number = c.author_number  
    INNER JOIN	author_info i ON i.author_number = b.author_number
    
    LEFT JOIN	editions f ON f.book_number = a.book_number AND f.edition_paperback_flag = 0
    LEFT JOIN	editions g ON g.book_number = a.book_number AND g.edition_paperback_flag = 1
    LEFT JOIN	category_book_mapping cgm on cgm.book_number = a.book_number AND cgm.category_number = 48
    LEFT JOIN	category_book_mapping cgya on cgya.book_number = a.book_number AND cgya.category_number = 40
          
    WHERE 		a.book_number = ?
         
    ORDER BY	c.book_author_mapping_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4396

get_media_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=195ms, Records=14) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.media_review_number, 
				a.book_number, 
				a.media_review_type_number, 
				a.media_review_title, 
				a.media_review_rating, 
				a.media_review, 
				a.media_review_old,
	
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 (case when dbo.WordCount(c.ezine_review_2) > 0 then dbo.WordCount(c.ezine_review_2) + dbo.WordCount(c.ezine_extras) 
                                                                                    else dbo.WordCount(c.ezine_review) 
                                                                                    end)
                                                                from ezine_edition_mapping c
                                                                INNER JOIN editions d ON (d.edition_number = c.edition_number)
                                                                INNER JOIN ezines e ON e.ezine_number = c.ezine_number
                                                                WHERE d.book_number = ?
                                                                
                                                                ORDER BY e.ezine_number ASC)
	 			ELSE 0 
	 			END  "wordc",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_number
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			ELSE 1
				END "reviewer_number",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_first_name + ' ' + reviewer_last_name AS "reviewer_name"
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
																 INNER JOIN reviewers r on r.reviewer_number = c.reviewer_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			END "reviewer_name"
	
	FROM		media_reviews a, media_review_types b
	
	WHERE		a.book_number IN (select distinct c.book_number from categories a, category_book_mapping b, book_author_mapping c where a.category_number = b.category_number and a.category_active_flag = 1 and b.book_number = c.book_number)
	AND			a.book_number = ?
	AND			a.media_review_type_number = b.media_review_type_number
	
	ORDER BY	b.media_review_type_sort_order ASC, media_review_rating DESC, media_review_title ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4396
Parameter #2(CF_SQL_INTEGER) = 4396
Parameter #3(CF_SQL_INTEGER) = 4396
Parameter #4(CF_SQL_INTEGER) = 4396

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

get_coauthor (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/actions/udfs.cfm @ 22:32:07.007
select 		book_number, 
            			CASE	WHEN datalength(d.author_middle_initial) > 1 
				                THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
				                ELSE d.author_first_name + ' ' + d.author_last_name
                        END "author",
                        d.author_number
            from		book_author_mapping e
            inner join	authors d ON e.author_number = d.author_number
            where		e.book_number = ?
			order by	book_author_mapping_number ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4396

get_book_by_id (Datasource=bookbrowse_com_new, Time=18ms, Records=1) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:07.007
SELECT		a.book_number, a.book_title, a.book_sub_title, a.book_url, a.book_entry_dt, a.book_short_summary, a.book_excerpt, a.book_jacket_info, a.book_reading_guide, a.book_copyright_info, a.book_notes,
            	b.author_number, b.author_first_name, b.author_last_name, b.author_middle_initial,
            	f.edition_publish_dt AS "hardcover_publish_dt", f.edition_number_of_pages AS "hardcover_number_of_pages", f.edition_isbn AS "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13", f.edition_jacket_image as "hardcover_jacket_image", f.edition_publisher as "hardcover_publisher",
            	g.edition_publish_dt AS "paperback_publish_dt", g.edition_number_of_pages AS "paperback_number_of_pages", g.edition_isbn AS "paperback_isbn", g.edition_isbn13 "paperback_isbn13", g.edition_jacket_image as "paperback_jacket_image", g.edition_publisher as "paperback_publisher",
            	i.author_info_interview, i.author_info_biography,i.author_info_image,
            	CASE WHEN datalength(author_middle_initial) = 1 THEN author_first_name + ' ' + author_middle_initial + ' ' + author_last_name
            		 ELSE author_first_name + ' ' + author_last_name
            		 END "author_name",
            	CASE WHEN 
					(select count(*) from editions where book_number = 4364) = 1
					AND
					(select count(*) from editions where book_number = 4364 and edition_paperback_flag = 1) = 1
				THEN 1
				ELSE 0
				END AS "po_flag",
				(select count(*) from book_author_mapping m where m.author_number = b.author_number)
				+
				(select count(*) from ezine_previews where ezine_preview_bb_author_link = b.author_number and ezine_preview_bb_link =0)
				 as 'author_bookcount',
            	(SELECT CAST(AVG(CAST(rating AS decimal(12,0))) AS decimal(12,1))
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) "savrating",
			(SELECT COUNT(rating)
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) as "savrating_count",
            	(select top 1 media_review_rating from media_reviews where book_number = a.book_number and media_review_type_number = 9) as "bbrating",
            	(select cast(AVG(CAST(media_review_rating AS numeric(12,2)))AS decimal(12,1)) from media_reviews where book_number = a.book_number and media_review_type_number <> 7 and media_review_rating > 0) "scritrating",
				(SELECT COUNT(media_review_rating) FROM media_reviews WHERE book_number = a.book_number AND media_review_type_number <> 7 AND media_review_rating > 0) as "scritrating_count",
            	(select top 1 gg.ezine_number from ezine_edition_mapping aa, editions bb, books cc, ezines gg            	
            	where aa.edition_number = bb.edition_number and bb.book_number = cc.book_number and aa.ezine_number = gg.ezine_number 
            	and cc.book_number = a.book_number and gg.ezine_bbsays_flag = 1 and gg.ezine_active_flag = 1) as "ezine_number",
				cgm.category_number,
				cgya.category_number AS "ya_flag"
				
,(select top 1 publisher_holding_company from publishers where (publisher_imprint like f.edition_publisher OR publisher_imprint like g.edition_publisher) AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
        
    FROM		books a 
    INNER JOIN	book_author_mapping c ON c.book_number = a.book_number
    INNER JOIN	authors b ON b.author_number = c.author_number  
    INNER JOIN	author_info i ON i.author_number = b.author_number
    
    LEFT JOIN	editions f ON f.book_number = a.book_number AND f.edition_paperback_flag = 0
    LEFT JOIN	editions g ON g.book_number = a.book_number AND g.edition_paperback_flag = 1
    LEFT JOIN	category_book_mapping cgm on cgm.book_number = a.book_number AND cgm.category_number = 48
    LEFT JOIN	category_book_mapping cgya on cgya.book_number = a.book_number AND cgya.category_number = 40
          
    WHERE 		a.book_number = ?
         
    ORDER BY	c.book_author_mapping_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4269

get_media_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=253ms, Records=8) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:08.008
SELECT		a.media_review_number, 
				a.book_number, 
				a.media_review_type_number, 
				a.media_review_title, 
				a.media_review_rating, 
				a.media_review, 
				a.media_review_old,
	
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 (case when dbo.WordCount(c.ezine_review_2) > 0 then dbo.WordCount(c.ezine_review_2) + dbo.WordCount(c.ezine_extras) 
                                                                                    else dbo.WordCount(c.ezine_review) 
                                                                                    end)
                                                                from ezine_edition_mapping c
                                                                INNER JOIN editions d ON (d.edition_number = c.edition_number)
                                                                INNER JOIN ezines e ON e.ezine_number = c.ezine_number
                                                                WHERE d.book_number = ?
                                                                
                                                                ORDER BY e.ezine_number ASC)
	 			ELSE 0 
	 			END  "wordc",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_number
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			ELSE 1
				END "reviewer_number",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_first_name + ' ' + reviewer_last_name AS "reviewer_name"
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
																 INNER JOIN reviewers r on r.reviewer_number = c.reviewer_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			END "reviewer_name"
	
	FROM		media_reviews a, media_review_types b
	
	WHERE		a.book_number IN (select distinct c.book_number from categories a, category_book_mapping b, book_author_mapping c where a.category_number = b.category_number and a.category_active_flag = 1 and b.book_number = c.book_number)
	AND			a.book_number = ?
	AND			a.media_review_type_number = b.media_review_type_number
	
	ORDER BY	b.media_review_type_sort_order ASC, media_review_rating DESC, media_review_title ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4269
Parameter #2(CF_SQL_INTEGER) = 4269
Parameter #3(CF_SQL_INTEGER) = 4269
Parameter #4(CF_SQL_INTEGER) = 4269

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

get_coauthor (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/actions/udfs.cfm @ 22:32:08.008
select 		book_number, 
            			CASE	WHEN datalength(d.author_middle_initial) > 1 
				                THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
				                ELSE d.author_first_name + ' ' + d.author_last_name
                        END "author",
                        d.author_number
            from		book_author_mapping e
            inner join	authors d ON e.author_number = d.author_number
            where		e.book_number = ?
			order by	book_author_mapping_number ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4269

get_preview_by_id (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_preview_by_id_for_search.cfm @ 22:32:08.008
SELECT 	ezine_preview_number,
            ezine_preview_title, 
            ezine_preview_subtitle, 
            ezine_preview_author, 
            ezine_preview_publisher,
            ezine_preview_publish_dt,
            ezine_preview_number_of_pages, 
            ezine_preview_short_summary,
            ezine_preview_jacket_image,
            ezine_preview_reviews,
            ezine_preview_jacket_desc,
			ezine_preview_reading_guide,
            ezine_preview_isbn,
            ezine_preview_isbn13,
            ezine_preview_rating,
            ezine_preview_bb_author_link
            				
    FROM 	ezine_previews
    WHERE 	ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 15448

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 22:32:08.008
select a.book_award_number, a.book_award_name, a.book_award_image, c.book_award_dt
    from book_awards a 
    inner join book_awards_category b on b.book_award_number = a.book_award_number
    inner join book_awards_mapping c on c.book_awards_category_number = b.book_awards_category_number
    where ezine_preview_number =  ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 15448

get_book_by_id (Datasource=bookbrowse_com_new, Time=12ms, Records=1) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:08.008
SELECT		a.book_number, a.book_title, a.book_sub_title, a.book_url, a.book_entry_dt, a.book_short_summary, a.book_excerpt, a.book_jacket_info, a.book_reading_guide, a.book_copyright_info, a.book_notes,
            	b.author_number, b.author_first_name, b.author_last_name, b.author_middle_initial,
            	f.edition_publish_dt AS "hardcover_publish_dt", f.edition_number_of_pages AS "hardcover_number_of_pages", f.edition_isbn AS "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13", f.edition_jacket_image as "hardcover_jacket_image", f.edition_publisher as "hardcover_publisher",
            	g.edition_publish_dt AS "paperback_publish_dt", g.edition_number_of_pages AS "paperback_number_of_pages", g.edition_isbn AS "paperback_isbn", g.edition_isbn13 "paperback_isbn13", g.edition_jacket_image as "paperback_jacket_image", g.edition_publisher as "paperback_publisher",
            	i.author_info_interview, i.author_info_biography,i.author_info_image,
            	CASE WHEN datalength(author_middle_initial) = 1 THEN author_first_name + ' ' + author_middle_initial + ' ' + author_last_name
            		 ELSE author_first_name + ' ' + author_last_name
            		 END "author_name",
            	CASE WHEN 
					(select count(*) from editions where book_number = 4364) = 1
					AND
					(select count(*) from editions where book_number = 4364 and edition_paperback_flag = 1) = 1
				THEN 1
				ELSE 0
				END AS "po_flag",
				(select count(*) from book_author_mapping m where m.author_number = b.author_number)
				+
				(select count(*) from ezine_previews where ezine_preview_bb_author_link = b.author_number and ezine_preview_bb_link =0)
				 as 'author_bookcount',
            	(SELECT CAST(AVG(CAST(rating AS decimal(12,0))) AS decimal(12,1))
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) "savrating",
			(SELECT COUNT(rating)
				FROM (
					SELECT reader_review_rating AS rating
					FROM reader_reviews
					WHERE book_number = a.book_number
					AND reader_review_rating > 0
					
					UNION ALL
					
					SELECT reading_list_book_rating AS rating
					FROM reading_lists
					WHERE book_number = CAST(a.book_number AS VARCHAR)
					AND reading_list_book_rating > 0
				) combined_ratings
			) as "savrating_count",
            	(select top 1 media_review_rating from media_reviews where book_number = a.book_number and media_review_type_number = 9) as "bbrating",
            	(select cast(AVG(CAST(media_review_rating AS numeric(12,2)))AS decimal(12,1)) from media_reviews where book_number = a.book_number and media_review_type_number <> 7 and media_review_rating > 0) "scritrating",
				(SELECT COUNT(media_review_rating) FROM media_reviews WHERE book_number = a.book_number AND media_review_type_number <> 7 AND media_review_rating > 0) as "scritrating_count",
            	(select top 1 gg.ezine_number from ezine_edition_mapping aa, editions bb, books cc, ezines gg            	
            	where aa.edition_number = bb.edition_number and bb.book_number = cc.book_number and aa.ezine_number = gg.ezine_number 
            	and cc.book_number = a.book_number and gg.ezine_bbsays_flag = 1 and gg.ezine_active_flag = 1) as "ezine_number",
				cgm.category_number,
				cgya.category_number AS "ya_flag"
				
,(select top 1 publisher_holding_company from publishers where (publisher_imprint like f.edition_publisher OR publisher_imprint like g.edition_publisher) AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
        
    FROM		books a 
    INNER JOIN	book_author_mapping c ON c.book_number = a.book_number
    INNER JOIN	authors b ON b.author_number = c.author_number  
    INNER JOIN	author_info i ON i.author_number = b.author_number
    
    LEFT JOIN	editions f ON f.book_number = a.book_number AND f.edition_paperback_flag = 0
    LEFT JOIN	editions g ON g.book_number = a.book_number AND g.edition_paperback_flag = 1
    LEFT JOIN	category_book_mapping cgm on cgm.book_number = a.book_number AND cgm.category_number = 48
    LEFT JOIN	category_book_mapping cgya on cgya.book_number = a.book_number AND cgya.category_number = 40
          
    WHERE 		a.book_number = ?
         
    ORDER BY	c.book_author_mapping_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4148

get_media_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=197ms, Records=11) in /root/website/queries/qry_get_book_by_id.cfm @ 22:32:08.008
SELECT		a.media_review_number, 
				a.book_number, 
				a.media_review_type_number, 
				a.media_review_title, 
				a.media_review_rating, 
				a.media_review, 
				a.media_review_old,
	
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 (case when dbo.WordCount(c.ezine_review_2) > 0 then dbo.WordCount(c.ezine_review_2) + dbo.WordCount(c.ezine_extras) 
                                                                                    else dbo.WordCount(c.ezine_review) 
                                                                                    end)
                                                                from ezine_edition_mapping c
                                                                INNER JOIN editions d ON (d.edition_number = c.edition_number)
                                                                INNER JOIN ezines e ON e.ezine_number = c.ezine_number
                                                                WHERE d.book_number = ?
                                                                
                                                                ORDER BY e.ezine_number ASC)
	 			ELSE 0 
	 			END  "wordc",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_number
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			ELSE 1
				END "reviewer_number",
				
				CASE WHEN a.media_review_type_number = 9 THEN 	(select top 1 reviewer_first_name + ' ' + reviewer_last_name AS "reviewer_name"
		 														 from ezine_edition_mapping c
		 														 INNER JOIN editions d ON (d.edition_number = c.edition_number)
																 INNER JOIN ezines e ON e.ezine_number = c.ezine_number
																 INNER JOIN reviewers r on r.reviewer_number = c.reviewer_number
		 														 WHERE d.book_number = ?
		 														 AND e.ezine_bbsays_flag = 1
																 ORDER BY d.edition_publish_dt DESC)
	 			END "reviewer_name"
	
	FROM		media_reviews a, media_review_types b
	
	WHERE		a.book_number IN (select distinct c.book_number from categories a, category_book_mapping b, book_author_mapping c where a.category_number = b.category_number and a.category_active_flag = 1 and b.book_number = c.book_number)
	AND			a.book_number = ?
	AND			a.media_review_type_number = b.media_review_type_number
	
	ORDER BY	b.media_review_type_sort_order ASC, media_review_rating DESC, media_review_title ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4148
Parameter #2(CF_SQL_INTEGER) = 4148
Parameter #3(CF_SQL_INTEGER) = 4148
Parameter #4(CF_SQL_INTEGER) = 4148

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

get_coauthor (Datasource=bookbrowse_com_new, Time=10ms, Records=1) in /root/website/actions/udfs.cfm @ 22:32:08.008
select 		book_number, 
            			CASE	WHEN datalength(d.author_middle_initial) > 1 
				                THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
				                ELSE d.author_first_name + ' ' + d.author_last_name
                        END "author",
                        d.author_number
            from		book_author_mapping e
            inner join	authors d ON e.author_number = d.author_number
            where		e.book_number = ?
			order by	book_author_mapping_number ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 4148

get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=17ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 22:32:08.008
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=25ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 22:32:08.008
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=12ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:32:08.008
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=13ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:32:08.008
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=11ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:32:08.008
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=13ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 22:32:08.008
select top 1 ezine_number, ezine_quote, ezine_quote_title
	    from ezines
	    where len(ezine_quote_title) > 1
	    order by newid()
get_free_newsletters (Datasource=bookbrowse_com_new, Time=0ms, Records=4, Cached Query) in /root/website/queries/qry_get_free_newsletters.cfm @ 22:32:08.008
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=11ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 22:32:08.008
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=9ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:32:08.008
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=8ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 22:32:08.008
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/readers/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=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB; CFGLOBALS=urltoken%3DCFID%23%3D4075753%26CFTOKEN%23%3D1f5132e0d1f2b652%2D01A74D1B%2DB2DD%2D7BD5%2D2DB080BEDC41FDEB%23lastvisit%3D%7Bts%20%272026%2D05%2D31%2022%3A32%3A05%27%7D%23hitcount%3D20%23timecreated%3D%7Bts%20%272026%2D05%2D31%2022%3A31%3A58%27%7D%23cftoken%3D1f5132e0d1f2b652%2D01A74D1B%2DB2DD%2D7BD5%2D2DB080BEDC41FDEB%23cfid%3D4075753%23; CFID=4075753; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/Peggy_Kurkowski
PATH_TRANSLATED=/root/website/readers/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/readers/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=4075753
cftoken=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB
hitcount=25
lastvisit={ts '2026-05-31 22:32:07'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-05-31 22:31:58'}
urltoken=CFID=4075753&CFTOKEN=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB
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#=4075753&CFTOKEN#=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB#lastvisit={ts '2026-05-31 22:32:05'}#hitcount=20#timecreated={ts '2026-05-31 22:31:58'}#cftoken=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB#cfid=4075753#
CFID=4075753
CFTOKEN=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB
Session Variables:
cfid=4075753
cftoken=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB
sessionid=BOOKBROWSE_4075753_1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB
urltoken=CFID=4075753&CFTOKEN=1f5132e0d1f2b652-01A74D1B-B2DD-7BD5-2DB080BEDC41FDEB
URL Parameters:
Peggy_Kurkowski=
Debug Rendering Time: 21 ms