Excerpt from The Man Without a Face by Masha Gessen, plus links to reviews, author biography & more

Summary |  Excerpt |  Reviews |  Beyond the Book |  Readalikes |  Genres & Themes |  Author Bio

The Man Without a Face by Masha Gessen

The Man Without a Face

The Unlikely Rise of Vladimir Putin

by Masha Gessen
  • BookBrowse Review:
  • Critics' Consensus (6):
  • Readers' Rating (2):
  • First Published:
  • Mar 1, 2012, 304 pages
  • Paperback:
  • Mar 2013, 320 pages
  • Rate this book

About this Book

Print Excerpt

Excerpt
The Man Without a Face

His early life has the ring of legend about it - the legend of a postwar thug. It starts in Leningrad in 1952, just eight years after the end of the Siege of Leningrad. His parents, Maria and Vladimir Putin, had survived the siege in the city. The elder Vladimir Putin had joined the Army in the early days of the Soviet-German war and had been wounded seriously in battle. These were the future president's parents: a disabled man and a woman who had come very close to dying from starvation and who had lost her children (a second son died in infancy several years before the war). But by the measure of the postwar Soviet Union, the Putins were lucky: they had each other. To have lived not only through the war but through the siege, and to still have your spouse - and your home - was, essentially, a miracle.

Because Vladimir Putin was catapulted to power from obscurity, and because he spent his entire adult life within the confines of a secret and secretive institution, he has been able to exercise greater control over what is known about him than almost any other modern politician - certainly more than any modern Western politician. He has created his own mythology of a child of post-siege Leningrad, a mean, hungry, impoverished place that bred mean, hungry, ferocious children.

One enters the building in which Putin grew up through the courtyard. Chunks of the handrail were missing, and the rest of the construction wobbled wildly. The Putins lived on the top floor of the five-story building, and the journey up the dark stairs could be risky. Three families shared a single gas stove and a sink stationed in the narrow hallway. The Putins had the largest room in the shared apartment: around 20 square meters, or roughly 12 feet by 15 feet. By the standards of the time, this was an almost palatial abode. More incredibly, the Putins also had a television set, a telephone, and a dacha (a small house outside the city). The elder Vladimir Putin worked as a skilled laborer at a train-car factory; Maria took backbreaking unskilled jobs (night watchman, cleaning woman, loader) that allowed her to spend time with her son. Against the fine shades of postwar Soviet poverty, the Putins emerge as practically rich.

Education was not part of the younger Putin's idea of success; he has placed a great emphasis on portraying himself as a thug, and in this he has had the cooperation of his childhood friends. By far the largest amount of authorized biographical information available about him concerns the many fistfights of his childhood and youth.

Putin, younger than the thugs he encountered and slight of build, apparently tried to hold his own with them. "If anyone ever insulted him in any way," a friend recalled, "Volodya would immediately jump on the guy, scratch him, bite him, rip his hair out by the clump - do anything at all never to allow anyone to humiliate him in any way." Putin's friends recount a series of fighting stories, the same plot repeating itself year after year. "We were in eighth grade when we were standing at a tram stop, waiting," recounted another friend. "A tram pulled up, but it was not going where we needed to go. Two huge drunken men got off and started trying to pick a fight with somebody. They were cursing and pushing people around. Vovka calmly handed his bag over to me, and then I saw that he had just sent one of the men flying into a snowbank, face first. The second one turned around and started at Volodya, screaming, 'What was that?' A couple of seconds later he knew exactly what it was, because he was lying there next to his buddy. That was just when our tram pulled up. If there is anything I can say about Vovka, it's that he never let bastards and rascals who insult people and bug them get away with it."

At the age of 10 or 11, Putin went looking for a place where he could learn skills to supplement his sheer will to fight. Boxing proved too painful: he had his nose broken during one of his first training sessions. Then he found Sambo. Sambo, an acronym for a Russian phrase that translates as "self-defense without weapons," is a Soviet martial art, a hodgepodge of judo, karate, and folk wrestling moves. With its discipline, Sambo became part of Putin's transformation from a grade-school thug into a goal-directed and hardworking adolescent. It was also linked to what had become an overriding ambition: Putin had apparently heard that the KGB expected new recruits to be skilled in hand-to-hand combat.

"Imagine a boy who dreams of being a KGB officer when everyone else wants to be a cosmonaut," the journalist Natalia Gevorkyan said to me, trying to explain how odd Putin's passion seemed to her. I did not find it quite so farfetched: in the 1960s, Soviet cultural authorities invested heavily in creating a romantic, even glamorous image of the secret police. When Putin was 12, a novel called The Shield and the Sword became a bestseller. Its protagonist was a Soviet intelligence officer working in Germany. When Putin was 15, the novel was made into a wildly popular miniseries. Forty-three years later, as prime minister, he would meet with 11 Russian spies deported from the United States - and together, in a show of camaraderie and nostalgia, they would sing the theme song from the miniseries.

"When I was in ninth grade, I was influenced by films and books, and I developed a desire to work for the KGB," Putin told a biographer. "There is nothing special about that." The protestation raises the question: is there another explanation for Putin's single-minded passion? It seems there is, and Putin has hidden it in plain sight, as the best spies do.

We all want our children to grow up to be more successful versions of ourselves. Vladimir Putin was born to be a Soviet spy. During World War II, the elder Putin had been assigned to troops who worked with the NKVD, as the Soviet secret police was then called. The legend of his father's daring escape from behind German lines with which the younger Putin grew up is as likely to have been true as any other tale of miraculous survival and spontaneous heroism.

It is not clear whether the elder Putin had worked for the secret police before the war or continued to work for the NKVD afterward. It seems likely that he remained part of the so-called active reserve, a giant group of secret-police officers who held regular jobs while also informing for - and drawing a salary from - the KGB. This may explain why the Putins lived so comparatively well: the dacha, the television set, and the telephone - especially the telephone.

At the suggestion of a KGB recruiter, Putin went to university, where he seems to have chiefly kept to himself. He kept his grades up and spent his free time training in judo (his coach and teammates had traded in Sambo for an Olympic martial art) and driving around in his car. Putin was, more than likely, the only student at Leningrad University who owned his own car. In the early 1970s a car in the Soviet Union was a rarity: it cost roughly as much as a dacha. The Putins won the car, a late-model two-door with a motorcycle engine, in a lottery, and rather than take the money - which would have been enough to get them out of the communal apartment and into a separate flat in a newly constructed building - gave the car to their son. That they gave the younger Putin this lavish gift, and that he accepted it, are further examples of the Putins' extraordinarily doting relationship with their son, and perhaps of their incongruous riches. Whatever the reason, Putin's relationship to money - extravagant and strikingly selfish for his social-context - appears to have taken shape during his university years.

Soon after university Putin achieved his dream of entering the KGB, and he seems to have made no secret of his work for it. He told the cellist Sergei Roldugin, who would become his best friend, almost as soon as the two met. Roldugin, who had traveled abroad with his orchestra and had seen KGB handlers at work, says he was apprehensive and curious at once. "Once, I tried to get him to talk about some operation that had gone down, and I failed," he told Putin's official biographers. "Another time I said to him, 'I am a cellist, and that means I play the cello. I'll never be a surgeon. What's your job? I mean, I know you are an intelligence officer. But what does that mean? Who are you? What can you do?' And he said, 'I am an expert in human relations.' That was the end of the conversation. He really thought he knew something about people..."

Putin's own descriptions of his romances paint him as a strikingly inept communicator. He had one significant relationship with a woman before meeting his future wife; he left her at the altar. "That's how it happened," he told his biographers, explaining nothing. "It was really hard." He was no more articulate on the subject of the woman he actually married - nor, it seems, was he successful at communicating his feelings to her during their courtship. They dated for more than three years - an extraordinarily long time by Soviet or Russian standards, and at a very advanced age: Putin was almost 31 when they married. Mrs. Putin has gone on record saying it was by no means love at first sight, for at first sight Putin seemed unremarkable and poorly dressed; he has never said anything publicly about his love for her. Her description of the day he finally proposed paints a picture of a profound failure to communicate.

"One evening we were sitting in his apartment, and he says, 'Little friend, by now you know what I'm like. I am basically not a very convenient person.' And then he went on to describe himself: not a talker, can be pretty harsh, can hurt your feelings, and so on. Not a good person to spend your life with. And he goes on. 'Over the course of three and a half years you've probably made up your mind.' I realized we were probably breaking up. So I said, 'Well, yes, I've made up my mind.' And he said, with doubt in his voice, 'Really?' That's when I knew we were definitely breaking up. 'In that case,' he said, 'I love you and I propose we get married on such and such a day.' And that was completely unexpected." They were married three months later. Ludmila moved to Leningrad to live with Putin in the two rooms he shared with his parents.

In the middle to late 1970s, when Putin joined the KGB, it, like all Soviet institutions, was undergoing a phase of extreme bloating. Its growing number of directorates and departments were producing mountains of information that had no clear purpose, application, or meaning. An entire army of men and a few women spent their lives compiling newspaper clippings, transcripts of tapped telephone conversations, reports of people followed and trivia learned.

The internal ideology of the KGB, as of any police organization, rested on a clear concept of the enemy. But Putin entered the service not only in the post-Stalin era but also during one of the few brief periods of peace in Soviet history. The only active enemies were the dissidents, a handful of brave souls who drew a disproportionate amount of KGB force. Putin claims not to have taken part in anti-dissident work but has shown in interviews that he was thoroughly familiar with the way it was organized, probably because he was part of the group fighting the dissidents, as a former comrade's memoir claimed.

His break came in 1984, when he was sent to spy school in Moscow. Barring an unexpected disaster, Putin knew that afterward he would be assigned to work in Germany, but he was disappointed that it was to Dresden. At the age of 33, Putin, with Ludmila - who was pregnant - and their 1-year-old daughter, Maria, traveled to his backwater assignment. This was the job for which he had worked and waited for 20 years, and he would not even be undercover.

The Putins, like five other Russian families, were given an apartment in a large apartment block in a little Stasi world: secret-police staff lived here, worked in a building a five-minute walk away, and sent their children to nursery school in the same compound. Their job was to collect information about "the enemy," which was the West, meaning West Germany and, especially, United States military bases in West Germany, which were hardly more accessible from Dresden than they would have been from Leningrad. Putin and his colleagues were reduced mainly to collecting press clippings, thus contributing to the growing mountains of useless information produced by the KGB.

The Putins had a second daughter and named her Ekaterina. Putin drank beer and got fat. He stopped training, or exercising at all, and he gained more than 20 pounds - a disastrous addition to his short and fairly narrow frame. From all appearances, he was seriously depressed. His wife, who has described their early years together as harmonious and joyful, has pointedly refrained from saying anything about their family life after spy school. She has said only that her husband never talked to her about work.

Not that there was much to tell. The job Putin had once coveted, working to draft future undercover agents, turned out to be not only tedious but fruitless. He and his two colleagues from the illegal-intelligence unit tracked down foreign students enrolled at the Dresden University of Technology and spent months gaining their confidence, often only to find that they did not have enough money to entice the young people to work for them.

Still, it was in the West - so close and so unreachable for someone like Putin (some other Soviet citizens posted in Germany had the right to go to West Berlin) - that people had the things he really coveted. He made his wishes known to the very few Westerners with whom he came in contact - members of the radical group Red Army Faction, who took some of their orders from the KGB and occasionally came to Dresden for training sessions. "He always wanted to have things," a former RAF member told me of Putin. "He mentioned to several people wishes that he wanted from the West." This source claims to have personally presented Putin with a Grundig Satellit, a state-of-the-art shortwave radio, and a Blaupunkt stereo for his car; he bought the former and pilfered the latter from one of the many cars the RAF had stolen for its purposes.

Just as the Putins left the Soviet Union, that country began to change drastically and irrevocably. Mikhail Gorbachev came to power in March 1985. Two years later, he had released all Soviet dissidents from prison and was beginning to loosen the reins on Soviet-bloc countries. Over the next few years, a chasm would open up between the party and the KGB, culminating with the failed coup in August 1991.

Watching the changes from afar, surrounded by other secret-police officers - and no one else - Putin must have felt a hopeless, helpless fury. In East Germany, as in the Soviet Union, people were beginning to come out into the streets to protest, and the unthinkable was quickly beginning to look probable: the two Germanys might be reunited - the land Putin had been sent here to guard would just be handed over to the enemy. Everything he had worked for was now in doubt; everything he had believed was being mocked. This is the sort of insult that would have prompted the agile young man that Putin had been to pound the offender until his fury had subsided. Middle-aged, out-of-shape Putin sat silent and helpless as his dreams and hopes for the future were destroyed.

On Oct. 7, 1989, Vladimir Putin's 37th birthday, East Germany celebrated its 40th anniversary, and riots broke out in Berlin. A month later the Berlin Wall fell, but demonstrations in East Germany continued until the first free-elections in March. Even before the protesters had chased the Stasi out of its buildings, East Germany began the grueling and painful process of purging the Stasi from its society. All of the Putins' neighbors not only lost their jobs but also were banned from working in law enforcement, the government, or teaching.

The Putins returned to Leningrad. They carried a 20-year-old washing machine given to them by their former neighbors and a sum of money in U.S. dollars, sufficient to buy the best Soviet-made car available. This was all they had to show for four and a half years of living abroad - and for Vladimir Putin's unconsummated spy career. The four of them would be returning to the smaller of the two rooms in the elder Putins' apartment.

In the years that followed, Putin did all he could to bring back the life he had loved: the closed world of the Soviet Union and, even more important, the KGB. Not only did he become head of the Russian state a mere dozen years after returning from Germany, but he also succeeded in transforming the country, turning back democratic reforms and ultimately establishing a thoroughly corrupt and inefficient authoritarian regime in the image of the U.S.S.R.

While his political inspiration has come from the KGB, his personal style goes back to the St. Petersburg courtyards, where he picked up the wit and social-graces of a street thug. He scored his first major surge in popularity in 1999, when he vowed to hunt down Chechen terrorists. Since then he has continued to employ a rhetoric based on homegrown vulgarisms even when many Russians seem to have had enough of his ways. What used to look like macho decisiveness and directness now looks unenlightened. Putin's thug myth may ultimately contribute more to his demise than it did to his rise to power.

  • 1

From The Man Without a Face by Masha Gessen. Reprinted by arrangement with Riverhead Books, a member of Penguin Group (USA) Inc. and Granta Books (UK). © 2012 by Masha Gessen.

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

Beyond the Book:
  A Short History of Chechnya

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

Be sincere, be brief, be seated

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 /excerpts/index.cfm
Time Stamp 01-Jun-26 03:37 AM
Locale en
User Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Remote IP 127.0.0.1
Host Name 127.0.0.1


Execution Time

Total Time Avg Time Count Template
1780285060996 ms 1.780285061E+012 ms 1 /root/website/app_server.cfm
1160 ms 1160 ms 1 /root/website/excerpts/index.cfm
544 ms 544 ms 1 /root/website/queries/qry_get_book_by_id.cfm
140 ms 140 ms 1 /root/website/app_layout.cfm
118 ms 118 ms 1 /root/website/queries/qry_get_discussion_by_id.cfm
105 ms 105 ms 1 /root/website/app_globals.cfm
89 ms 89 ms 1 /root/website/queries/qry_get_liked_by_book_id.cfm
84 ms 84 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
78 ms 39 ms 2 /root/website/adsystem/adsystem_mod.cfm
43 ms 43 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
40 ms 40 ms 1 /root/website/adzones/AdZone6.cfm
40 ms 40 ms 1 /root/website/queries/qry_get_ezine_by_book_id.cfm
39 ms 39 ms 1 /root/website/adzones/showcase_track.cfm
30 ms 30 ms 1 /root/website/excerpts/dsp_main.cfm
25 ms 25 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
24 ms 24 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
21 ms 21 ms 1 /root/website/queries/qry_get_free_flag_by_book_id.cfm
19 ms 19 ms 1 /root/website/queries/qry_get_book_awards_by_book_id.cfm
19 ms 19 ms 1 /root/website/site/blocks/dsp_top_book_block.cfm
18 ms 18 ms 1 /root/website/queries/qry_get_current_competition.cfm
17 ms 17 ms 1 /root/website/queries/qry_get_active_obc.cfm
14 ms 14 ms 1 /root/website/actions/adstatus.cfm
12 ms 12 ms 1 /root/website/act_check_login.cfm
11 ms 11 ms 1 /root/website/queries/qry_get_member_info.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_reader_reviews_by_book_id.cfm
9 ms 9 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
8 ms 8 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
8 ms 8 ms 1 /root/website/site/blocks/membership_advantages.cfm
7 ms 7 ms 1 /root/website/queries/qry_get_member_account_types.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_categories_by_book_id.cfm
3 ms 1 ms 3 /root/website/actions/act_spider_tracker.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/site/blocks/dsp_border_booktalk.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/act_book_view_tracking.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_closed_awards.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_closed_btb.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_closed_readalikes.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_closed_reviews.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
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
1161 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


Exceptions

03:37:42.042 - Expression Exception - in /root/website/site/blocks/dsp_top_book_block.cfm : line 237
	    Variable BOOK_NUMBER is undefined.
	    


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 03:37:41.041
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=11ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 03:37:41.041
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=13ms, Records=2) in /root/website/actions/adstatus.cfm @ 03:37:41.041
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 @ 03:37:41.041
select		top 1 ezine_number, ezine_dt, ezine_image, ezine_brief_description, ezine_introduction
from		ezines
where		ezine_active_flag = 1
and 		ezine_type_number = 4
and			ezine_dt < getdate()
order by 	ezine_dt DESC
get_current_wordplay (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 03:37:41.041
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=3ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 03:37:41.041
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=12ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 03:37:41.041
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 @ 03:37:41.041
SELECT 	a.arc_number,a.arc_client_url,a.arc_active_dt, a.arc_off_ad_dt,
		b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_publisher, 
		b.ezine_preview_publish_dt, b.ezine_preview_jacket_desc, b.ezine_preview_number_of_pages, b.ezine_preview_bb_comments, b.ezine_preview_isbn13,
		c.ezine_preview_category_name AS "ezine_preview_category",
		(select count(*) from arc_allocator d where d.arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) as "reviews",
		(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) > 50 AND right(CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
				 ELSE 0
				 END)
 			from arc_allocator	where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS arcrating,
 			(select (CAST(AVG(CAST(arc_allocator_review_rating AS numeric(12,1))) AS numeric(12,1)))from arc_allocator where arc_number = a.arc_number and arc_allocator_review_approved_flag = 1) AS "decrating"

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

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

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

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 03:37:41.041
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=6ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 03:37:41.041
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_book_by_id (Datasource=bookbrowse_com_new, Time=162ms, Records=1) in /root/website/queries/qry_get_book_by_id.cfm @ 03:37:41.041
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) = 2683

get_media_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=378ms, Records=6) in /root/website/queries/qry_get_book_by_id.cfm @ 03:37:41.041
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) = 2683
Parameter #2(CF_SQL_INTEGER) = 2683
Parameter #3(CF_SQL_INTEGER) = 2683
Parameter #4(CF_SQL_INTEGER) = 2683

get_reader_reviews_by_book_id (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/queries/qry_get_reader_reviews_by_book_id.cfm @ 03:37:41.041
select 		a.reader_review_number, a.book_number, a.reader_review_approved_flag, a.reader_review_dt,
				COALESCE(NULLIF(LTRIM(RTRIM(m.discourse_username)), ''), NULLIF(LTRIM(RTRIM(a.reader_review_reviewer_name)), '')) AS reader_review_reviewer_name,
				a.reader_review_reviewer_email_address, a.reader_review_reviewer_from_locale, a.reader_review_recommended, a.reader_review_rating, a.reader_review_title, a.reader_review_description, ISNULL(a.like_count, 0) AS like_count,
    			b.book_title,
    			ISNULL(e.edit_count, 0) AS edit_count,
    			e.last_edit_dt,
    			a.member_number AS review_member_number
    from 		reader_reviews a
    LEFT OUTER JOIN (
    	SELECT reader_review_number, COUNT(*) AS edit_count, MAX(edited_dt) AS last_edit_dt
    	FROM   reader_review_edits
    	GROUP BY reader_review_number
    ) e ON e.reader_review_number = a.reader_review_number
    LEFT OUTER JOIN members m ON m.member_number = a.member_number,
    			books 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.reader_review_approved_flag = 1
    and 		a.book_number = b.book_number
    

    order by a.reader_review_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

get_book_awards_by_book_id (Datasource=bookbrowse_com_new, Time=7ms, Records=0) in /root/website/queries/qry_get_book_awards_by_book_id.cfm @ 03:37:41.041
select 		c.book_awards_category_number, c.book_awards_category_name, c.book_awards_category_sort_order,
				m.book_awards_mapping_number, m.book_award_dt,
                a.book_award_number, a.book_award_image, a.book_award_name
                
                
	from 		book_awards_mapping m
	inner join 	book_awards_category c on c.book_awards_category_number = m.book_awards_category_number
    inner join	book_awards a on a.book_award_number = c.book_award_number
    
	where 		m.book_number = ?
    
    order by	c.book_awards_category_sort_order ASC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

get_bb_runner_ups (Datasource=bookbrowse_com_new, Time=10ms, Records=0) in /root/website/queries/qry_get_book_awards_by_book_id.cfm @ 03:37:41.041
select	book_number
    
    from	category_book_mapping a, categories b, top_categories t
    
    where	t.top_category_number = b.top_category_number
    and		b.category_number = a.category_number
    and		t.top_category_number = 9
    and		a.book_number = ?
    and		b.category_visible_flag = 1
	and		a.book_number not in (	select book_number 
    									from 		book_awards_mapping m
													inner join 	book_awards_category c on c.book_awards_category_number = m.book_awards_category_number
    												inner join	book_awards a on a.book_award_number = c.book_award_number
                                    	where m.book_number = ? 
                                    	and a.book_award_number = 7)
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683
Parameter #2(CF_SQL_INTEGER) = 2683

get_liked_by_book_id (Datasource=bookbrowse_com_new, Time=87ms, Records=14) in /root/website/queries/qry_get_liked_by_book_id.cfm @ 03:37:41.041
SELECT 		b.book_title, b.book_number,
    			c.book_title "referenced_book_title", c.book_number AS "liked_book_number", c.book_short_summary as "liked_short_summary",
            	e.*,
                CASE WHEN datalength(e.author_middle_initial) > 0 
                	 THEN e.author_first_name + ' ' + e.author_middle_initial + '. ' + e.author_last_name
					 ELSE e.author_first_name + ' ' + e.author_last_name
					 END AS "author_name",
				(select top 1 edition_publish_dt from editions where editions.book_number = c.book_number order by edition_publish_dt DESC) as 'sortdate',
				(select count(*) from book_author_mapping m where m.author_number = d.author_number)
				+
				(select count(*) from ezine_previews where ezine_preview_bb_author_link = d.author_number and ezine_preview_bb_link =0)
				 as 'liked_author_bookcount'
                
	FROM 		liked a
	INNER JOIN	books b ON b.book_number = a.book_number
	INNER JOIN	books c ON c.book_number = a.liked_book_number
	INNER JOIN	book_author_mapping d ON c.book_number = d.book_number
	INNER JOIN	authors e ON d.author_number = e.author_number
    
    WHERE 		a.book_number = ?
    
	ORDER BY 	sortdate desc, c.book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

get_categories_by_book_id (Datasource=bookbrowse_com_new, Time=4ms, Records=8) in /root/website/queries/qry_get_categories_by_book_id.cfm @ 03:37:41.041
select 		distinct a.category_number, a.top_category_number, a.category_name, a.category_description, a.category_meta_keywords, a.category_active_flag, a.category_visible_flag, a.category_member_only_flag, a.category_qry_template, a.category_sort_order, a.category_tag_size,
    			b.*
	
    from 		categories a
	left join	top_categories b on a.top_category_number = b.top_category_number
	left join	category_book_mapping c on c.category_number = a.category_number
	
    where 		a.category_active_flag = 1
    and 		a.category_visible_flag = 1
	and 		c.book_number = ?
	

    order by 	b.top_category_sort_order, b.top_category_name, a.category_sort_order, a.category_name
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

bb_review (Datasource=, Time=0ms, Records=1) in /root/website/excerpts/index.cfm @ 03:37:41.041
SELECT media_review, reviewer_number from get_media_reviews_by_book_id where media_review_type_number = 9
get_arc_idfk (Datasource=bookbrowse_com_new, Time=6ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 03:37:41.041
SELECT 		a.arc_forumidfk,a.discourse_flag
    FROM 		arcs a
    INNER JOIN 	ezine_previews e on e.ezine_preview_number = a.ezine_preview_number
    
	
        WHERE 		e.ezine_preview_bb_link = ? 
    AND DATALENGTH(a.arc_forumidfk) > 0 AND arc_obc_flag=1
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 2683

get_arc_idfk_legacy (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 03:37:41.041
SELECT 		a.arc_forumidfk,a.discourse_flag
    FROM 		arcs a
    INNER JOIN 	ezine_previews e on e.ezine_preview_number = a.ezine_preview_number
    
	
        WHERE 		e.ezine_preview_bb_link = ? 
    AND DATALENGTH(a.arc_forumidfk) > 0 AND arc_obc_flag=1 AND a.discourse_flag = 0
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 2683

obc_discussions (Datasource=booktalk_new, Time=82ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 03:37:41.041
SELECT 		t.name,
                m.title, m.body,
                u.username, t.id,
				(SELECT COUNT(*) from booktalk_messages where threadidfk = t.id) AS	"responses"
                
    FROM 		booktalk_forums f
    INNER JOIN	booktalk_threads t on t.forumidfk = f.id
    INNER JOIN	booktalk_messages m on m.posted = t.lastpostcreated
    INNER JOIN	booktalk_users u on u.id = m.useridfk
    
    WHERE 	f.id = ?
    AND 	f.active = 1
	AND		t.active = 1
    
    ORDER BY t.name, t.messages DESC
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) =

searchResults (Datasource=bookbrowse_com_new, Time=22ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 03:37:41.041
SELECT book_number, post_id, topic_id, blurb, username, topic_title
					FROM DiscourseSearchResults
					
        WHERE 		book_number = ? 
                    AND topic_id IS NOT NULL
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = 2683

get_ezine_type (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_ezine_by_book_id.cfm @ 03:37:41.041
SELECT a.ezine_type_number
	FROM ezines a
	WHERE a.ezine_number = 1
get_ezine_by_book_id (Datasource=bookbrowse_com_new, Time=35ms, Records=1) in /root/website/queries/qry_get_ezine_by_book_id.cfm @ 03:37:41.041
SELECT TOP 1  
                a.ezine_short_title, a. ezine_boxed_content_title, a.ezine_boxed_content, a.ezine_review, a.ezine_review_2,
                b.edition_paperback_flag, b.edition_publish_dt, b.edition_isbn,
                c.book_title, c.book_sub_title, c.book_reading_guide, c.book_excerpt, c.book_number,
                e.author_first_name, e.author_middle_initial, e.author_last_name, e.author_number, 
                f.author_info_biography, 
                g.ezine_number, g.ezine_dt, g.ezine_bbsays_flag,
				i.article_category_number, i.article_category_name
		
	FROM    	ezine_edition_mapping AS a 
		
	INNER JOIN 	editions AS b ON (a.edition_number = b.edition_number)
	INNER JOIN 	books AS c ON (b.book_number = c.book_number )
	INNER JOIN 	book_author_mapping AS d ON (c.book_number = d.book_number )
	INNER JOIN 	authors AS e ON (d.author_number = e.author_number )
	INNER JOIN 	author_info AS f ON (e.author_number = f.author_number)
	INNER JOIN 	ezines AS g ON (a.ezine_number = g.ezine_number)
	LEFT JOIN	article_ezine_edition_mapping h ON h.ezine_edition_mapping_number = a.ezine_edition_mapping_number
	LEFT JOIN	article_categories i ON i.article_category_number = h.article_category_number

	WHERE		c.book_number = ?
	AND			g.ezine_bbsays_flag = 1
	AND			g.ezine_active_flag = 1
	
	
	ORDER BY 		g.ezine_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

check_permalink (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 	count(*) as "count"
    FROM 	books
    WHERE 	book_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0

check_editors_choice (Datasource=bookbrowse_com_new, Time=4ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 	count(*) as "count"
    FROM 	books
    WHERE 	book_number = ?
    AND		book_number IN (SELECT		top 4 a.book_number
                            FROM		editors_choice a 
                            WHERE		editors_choice_dt < getdate()
                            ORDER BY	editors_choice_dt DESC)
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

check_free_ezine (Datasource=bookbrowse_com_new, Time=0ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 		count(*) as "count"
    FROM    	ezine_edition_mapping AS a
    INNER JOIN 	ezines b ON b.ezine_number = a.ezine_number
    INNER JOIN	editions c ON c.edition_number = a.edition_number
    WHERE 		c.book_number = ?
	AND			ezine_edition_free_review_flag = 1
	AND			dateadd(ww,4,b.ezine_dt) > getdate()
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

check_cat_73 (Datasource=bookbrowse_com_new, Time=0ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 		count(*) as "count"
    FROM    	books AS b
    INNER JOIN 	category_book_mapping AS c ON c.book_number = b.book_number
    WHERE 		b.book_number = ?
	AND			c.category_number = 73
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

get_ezine_status (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 	top 1 g.ezine_active_flag, ezine_dt, book_title
FROM		ezine_edition_mapping AS a 
INNER JOIN	editions AS b ON (a.edition_number = b.edition_number)
INNER JOIN	books AS c ON (b.book_number = c.book_number)
INNER JOIN	ezines AS g ON (a.ezine_number = g.ezine_number)
WHERE		c.book_number = ?
ORDER BY	g.ezine_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

check_old_ezine (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 		count(*) as "count"
    FROM    	ezine_edition_mapping AS a
    INNER JOIN 	ezines b ON b.ezine_number = a.ezine_number
    INNER JOIN	editions c ON c.edition_number = a.edition_number
    WHERE 		c.book_number = ?
	AND			datediff(mm,b.ezine_dt,getdate()) > 12
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

get_ezine_status (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/queries/qry_get_free_flag_by_book_id.cfm @ 03:37:41.041
SELECT 	top 1 g.ezine_active_flag, ezine_dt, book_title
FROM		ezine_edition_mapping AS a 
INNER JOIN	editions AS b ON (a.edition_number = b.edition_number)
INNER JOIN	books AS c ON (b.book_number = c.book_number)
INNER JOIN	ezines AS g ON (a.ezine_number = g.ezine_number)
WHERE		c.book_number = ?
ORDER BY	g.ezine_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2683

get_coauthor (Datasource=bookbrowse_com_new, Time=12ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:41.041
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) = 2683

get_coauthor (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:41.041
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) = 2683

get_coauthor (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:41.041
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) = 2683

get_coauthor (Datasource=bookbrowse_com_new, Time=5ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:41.041
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) = 2683

get_book_image (Datasource=bookbrowse_com_new, Time=0ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:41.041
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) = 2683

get_book_image (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:42.042
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) = 2683

get_coauthor (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/actions/udfs.cfm @ 03:37:42.042
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) = 2683

get_member_account_types (Datasource=bookbrowse_com_new, Time=6ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 03:37:42.042
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 03:37:42.042
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=17ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 03:37:42.042
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=22ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 03:37:42.042
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=8ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 03:37:42.042
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=7ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 03:37:42.042
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=9ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 03:37:42.042
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 @ 03:37:42.042
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=12ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 03:37:42.042
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=12ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 03:37:42.042
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=10ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 03:37:42.042
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/excerpts/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=CFGLOBALS=urltoken%3DCFID%23%3D4084468%26CFTOKEN%23%3Df5cacebc9c0e9388%2D0C93D9EF%2DCB0E%2D25A7%2DF4BA200EE3FCC736%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2003%3A37%3A40%27%7D%23hitcount%3D70%23timecreated%3D%7Bts%20%272026%2D06%2D01%2003%3A37%3A25%27%7D%23cftoken%3Df5cacebc9c0e9388%2D0C93D9EF%2DCB0E%2D25A7%2DF4BA200EE3FCC736%23cfid%3D4084468%23; FREEACCESSCOUNT=0; CFTOKEN=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; CFID=4084468
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=/book_number/2683/the-man-without-a-face
PATH_TRANSLATED=/root/website/excerpts/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/excerpts/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=4084468
cftoken=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736
hitcount=77
lastvisit={ts '2026-06-01 03:37:41'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 03:37:25'}
urltoken=CFID=4084468&CFTOKEN=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736
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#=4084468&CFTOKEN#=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736#lastvisit={ts '2026-06-01 03:37:40'}#hitcount=70#timecreated={ts '2026-06-01 03:37:25'}#cftoken=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736#cfid=4084468#
CFID=4084468
CFTOKEN=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736
FREEACCESSCOUNT=0
Session Variables:
cfid=4084468
cftoken=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736
sessionid=BOOKBROWSE_4084468_f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736
urltoken=CFID=4084468&CFTOKEN=f5cacebc9c0e9388-0C93D9EF-CB0E-25A7-F4BA200EE3FCC736
URL Parameters:
book_number=2683
the-man-without-a-face=
Debug Rendering Time: 10 ms