Book Summary and Reviews of The Tapestry of Time by Kate Heartfield

The Tapestry of Time by Kate Heartfield

The Tapestry of Time

by Kate Heartfield

  • Readers' Rating (2):
  • Published:
  • Jul 2025, 384 pages
  • Rate this book

About this book

Book Summary

In the midst of war, love, heroism and the supernatural collide in this dazzling historical fantasy from International Bestselling Author Kate Heartfield.

There's a tradition in the Sharp family that some possess the Second Sight. But is it superstition, or true psychic power?

Kit Sharp is in Paris, where she is involved in a love affair with the stunning Evelyn Larsen, and working as an archivist, having inherited her historian father's fascination with the Bayeux Tapestry. He believes that parts of the tapestry were made before 1066, and that it was a tool for prediction, not a simple record of events.

The Nazis are also obsessed with the tapestry: convinced that not only did it predict the Norman Conquest of England, but that it will aid them in their invasion of Britain.

Ivy Sharp has joined the Special Operations Executive – the SOE – a secret unit set up to carry out espionage, sabotage and reconnaissance. Having demonstrated that she has extraordinary powers of perception, she is dropped into Northern France on a special mission.

With the war on a knife edge, the Sharp Sisters face certain death. Can their courage and extrasensory gifts prevent the enemy from using the tapestry to bring about a devastating victory against the Allied Forces?

Please be aware that this discussion may contain spoilers!

See what our members are saying about this book in our Community Forum.

Ask the Author mug winners
Here are the latest BookBrowse mug winners for the questions to our visiting authors: Eve J. Chung ( https://www.bookbrowse.com/reviews/index.cfm/book_number/4821/daughters-of-shandong Daughters of Shandong ): @Jorene_J Princess Joy L. Perry ( https://www.bookbrowse.com/bb_briefs/detail/index.cfm...
-kim.kovacs


BookBrowsers ask Kate Heartfield, author of Tapestry of Time
Thank you so much for inviting me and for all these excellent questions, Kim! I'll check back in tomorrow in case there are any others, but I really enjoyed my time here. I also want to thank the book club for taking a chance on The Tapestry of Time . I'd love to hear from book clubbers about the...
-Kate_H


What are you reading this week? And what did you think of last week’s books? (11/27/2025)
I'm rereading Tapestry of Time in prep for Kate Heartfield stopping by in a few days. And then… GASP … I don't have anything I have to read for about two weeks! It's so rare that I can read something 100% for pleasure I'm not sure where to start (I bought a ton of books this year so I certainly h...
-kim.kovacs


About the BookBrowsers Ask Kate Heartfield category
Please join us for a Q & A with Kate Heartfield , author of The Tapestry of Time .
-kim.kovacs


Is there a quote or scene in The Tapestry of Time that stood out for you? Why do you suppose it resonated?
Yes - "She has never put any of this into words before. Here, in this hellscape, with the ghost of her sister always at the edges of her vision, every old fear seems flimsy and inconsequential. What does it matter if they hurt each other tomorrow? Tomorrow is a dream. Today is real, and today req...
-Molly_Y


How does the inclusion of clairvoyance in the novel influence the way it explores its historical themes?
Clairvoyance is a fascinating topic and joining it with its use as a tool of the resistance was very interesting. Inheriting such a tool is not a new idea, I.e. Harry Potter series) but used well by the author. It gives the family a mystical atmosphere
-Dianne_S


How does the novel exemplify ‘life carries on’?
The fact that the "the second sight" was passed from the aunt to the girls as well as their father is one example of "life carries on". Life carries on when we remember past family adventures, recipes and traditions. It is a comfort, in my opinion, that memories support us later in life. In this ...
-Ann_H


What surprised you the most about the book? Did you learn anything new about the period from it?
I am embarrassed to admit this, but I never heard of the Bayeau Tapestry. Needless to say ,I found it intriguing. I gotI bought an ebook , nonfiction about it, A Needle in the Right Hand of God by R. Howard Bloch
-Brenda_Wychock


Why do you think Helen struggles to cope with her clairvoyance?
I think Helen might fear it . She might feel as if she is going to be seen as different and weird. Maybe she feels scared of her ability .
-Brenda_Wychock


Which of the minor characters did you find the most intriguing, and why?
Definitely Grady. He intrigued me because he was so patient with Ivy and obviously developing feelings for her, but did not rush her or push her into a relationship with him. Rather, he showed his devotion and loyalty in a tangible, meaningful way.
-Janie-Hickok-Siess


What do you think is holding back Kit in her relationship with Max?
Kit simply didn't realize that her feelings had matured from friendship to romantic love. And I'm certain that a part of her feared that if they embarked upon a romantic relationship their friendship might be lost forever if the romance didn't survive. I don't think her hesitance was as much abou...
-Janie-Hickok-Siess


The girls’ mother tells Helen to not worry about her father (“There’s no need to borrow trouble. I’m sure your father is fine” p. 242). Why do you suppose she was so complacent? What would you have done, if anything, had you been in her place?
She knew her husband well, and was aware of his activities, I'm sure. She most likely knew that he was being interviewed and studied rather than interrogated by the Nazis, imprisoned, or worse. And as a practical matter, that's the answer a parent is going to provide a child in order to protect a...
-Janie-Hickok-Siess


The novel explores some mysteries about the Bayeux Tapestry. Do you think it matters whether we find definitive answers to those questions, such as who created it and why?
Art can be appreciated on its own merits, even if the viewer has no knowledge of its origins. Yes, it would be lovely to learn all the details about the tapestry and resolve all ambiguity about its origins. However, history rarely affords us the luxury of knowing every detail and eliminating all ...
-Janie-Hickok-Siess


Overall, what did you think of The Tapestry of Time? (no spoilers, please!)
I love World War II-era historical fiction and I enjoyed the book, but it was not my favorite of the genre. The book is well researched and written, but it did drag in places so, in my opinion, it could do with some judicious editing to avoid that. The characters were well-developed and interesti...
-Janie-Hickok-Siess


Which of the four sisters (Kit, Ivy, Helen and Rose) do you identify with most, and why?
Definitely Kit. She found her calling at the Louvre, and was the family protector who earned a living by her wits and reason. I had a very successful, but high-pressure/stress and demanding career, and have always been the major breadwinner & household organizer/manager. I've always been responsi...
-Janie-Hickok-Siess


How do you feel historical fiction can influence the way we look at history?
HIstorical fiction is an ideal way to look at the different experiences, actions, and beliefs of people who lived through the period in question. By illuminating the circumstances of the time – the challenges people faced, the different prevailing viewpoints, etc. – readers can gain a better unde...
-Janie-Hickok-Siess


To what audience would you recommend The Tapestry of Time? Is there another book or author you feel has a similar theme or style?
The book is a great choice for historical fiction fans who are looking for a unique story. There are so many works of historical fiction, especially set during the WWI-era, and this book stands out for its creative approach to telling an important story about the Nazis' quest to steal valuable wo...
-Janie-Hickok-Siess


What did you think of Evelyn’s approach to the war (“transactional resistance,” in her words), whereby she gives the Nazis information in exchange for protection/papers for her friends?
Evelyn was a traitor. There's just no getting around that. She claimed to love Kit, but sold her out to the Nazis, along with her family. She knew what she was doing and that she was placing the woman she claimed to care deeply about in danger. Sadly, too many people took her approach during WWII...
-Janie-Hickok-Siess


Mr. Yardley tells Helen about a “feminine impulse to warn and to guide…going back to the oldest times” (p.154). Do you think it’s true that women are more likely to fill this role than men? Why or why not?
Yes, that used to be the case. And certainly was the accepted viewpoint during World War II. But I believe it was based less on biology/inherent characteristics than on conditioning. From the time women are born, they are taught and expected to be nurturers, caregivers, protectors. This is less t...
-Janie-Hickok-Siess


In an age when we can digitize everything, do you think it is still important to preserve physical art and artifacts in times of war?
Yes! There is no substitute for physical art, vs. NFTs. To be able to look at the work of the great masters and appreciate that type of craftsmanship for the time in which they lived is priceless. These works also give us an idea of what it was like to live back then, what their culture was like,...
-Susan_P


Kit believes that the Nazis “need a history they can believe in…a history that tells the story they want it to tell” (p. 9). How did you feel about her opinion here? Do you think this was an important part of the control they had over their population?
As a rational, caring human I always find it bonechilling to realize how blindly people followed Hitler's propaganda. The evil events that took place during the war can only be explained as people reacting to skillful manipulation based on fear. Adding in the occult only made the evil stronger.
-Catherine_O_Callagha


How much do you know about your own family's history during WWII?
A great deal, all learned from my mother. My parents married in March 1941, and my father was drafted a year later. He served in the Army Air Force & was assigned to the motor pool following aptitude testing. He was stationed in Stockton, California, for a time which is how we ended up living in ...
-Janie-Hickok-Siess


What’s your opinion about the existence of clairvoyance? Have you experienced anything similar?
I do believe that clairvoyance is a gift bestowed people who are observant and fully present in the moment. My mother used to have dreams about things that later happened. I have had premonitions many times in my life & learned over the years to pay attention to them. I recently had a very strong...
-Janie-Hickok-Siess


Kit thinks, “[This guard] has a gun and he believes in it, just as he believes women shouldn’t smoke or wear trousers...His Paris is not her Paris, but his Paris snakes through hers, unavoidable” (p.30). What did you think about her observations?
Kit's observation was important to her survival. Knowing how others think, or might respond, especially in this situation, will often determine one's own attitude or action.
-Kathy_Downey


What weakness(es) in the writing of the book, if any, bothered you a bit?
I am not someone who thinks a book represents weakness. I am in awe of someone who can gets thoughts on paper, produce a book and share it with others. I do think it would have been hard for Kate Heartfield to put some of the words on paper due to the horrific content that was all to real to the ...
-Ann_H


In a vision, Ivy sees Queen Matilda telling Aelfgyva that if she presses her son’s claim that he'll die an early death, while if she steps aside he’ll live. What did you think of this scene? Would you have made a different decision?
I do think that our words and actions can influence other people's lives - they'll make certain life choices based on what we tell them and I think this is what Queen Matilda is eluding to. I remember when I was young my mom telling me how she had an astral chart made for me when I was born and h...
-Marijana_Bankovic


What are you reading this week? (6/26/025)
A vintage vendetta - Camelia Woods (ARC from Hidden Gems) The lost world - Arthur Conan Doyle (audiobook) Consider yourself kissed - Jessica Stanley (for bookclub) The tapestry of time - Kate Heartfield (for BookBrowse)
-Marijana_Bankovic


The Tapestry of Time by Kate Heartfield
Please join BookBrowse in our book club discussion of The Tapestry of Time by Kate Heartfield
-kim.kovacs

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!

Reviews

Media Reviews

"No one writes historical fantasy like Kate Heartfield and she is at the top of her game in The Tapestry of Time. While this WWII novel never shies away from the moral complexities of war, readers will cheer for the Sharp sisters as they each find their unique strengths, both mundane and fantastic, in the fight against fascism and to reunite and redefine their family. By the end, you'll want to raise the V for victory in triumph." ―M. Darusha Wehm, author of Hamlet, Prince of Robots and winner of the Sir Julius Vogel award

"Kate Heartfield's The Tapestry of Time is a stunning book that perfectly marries a World War II story of resistance with the supernatural. It's speculative historical fiction at its very best, and kept me turning pages late into the night." ―Jenny Rae Rappaport, author of Girls With Needles and Frost

"The Tapestry of Time is a promise that love is stronger than hate and that families and communities are our strongest bastions. It celebrates the vital, but too often unsung, role that women played, and continue to play, in the fight against fascism. Kate Heartfield gets better with every single book and this one is simply terrific." ―Hayden Trenholm, Aurora Award winning author of The Passion of Ivan Rodriguez

This information about The Tapestry of Time was first featured in "The BookBrowse Review" - BookBrowse's membership magazine, and in our weekly "Publishing This Week" newsletter. Publication information is for the USA, and (unless stated otherwise) represents the first print edition. The reviews are necessarily limited to those that were available to us ahead of publication. If you are the publisher or author and feel that they do not properly reflect the range of media opinion now available, send us a message with the mainstream reviews that you would like to see added.

Any "Author Information" displayed below reflects the author's biography at the time this particular book was published.

Reader Reviews

Write your own reviewwrite your own review

Janine_S

Lackluster historical fantasy
I had a love/hate relationship with this book. There were some great elements like the Sharp family’s powers to see into the future and some of the WWII scenes in France. But the use of the Bayeaux tapestry (which I have seen and intrigued me the most about this book) just didn’t seem to fit - at times it seemed like an add on. The book is well written though. The twist at the end with a betrayal revealed was good but again that too seemed like an add-on. I think the author tried to do a bit too much in this book.

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!

Author Information

Kate Heartfield

Kate Heartfield is the author of the Sunday Times bestselling The Embroidered Book, the Aurora-winning novel Armed in Her Fashion, and the Nebula-shortlisted novella Alice Payne Arrives, along with dozens of other stories. Her interactive fiction projects The Road to Canterbury and The Magician's Workshop were shortlisted for the Nebula in game writing. She lives in Canada.

More Author Information

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

Read-Alikes

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

BookBrowse Book Club

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

Members Recommend

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

We have to abandon the idea that schooling is something restricted to youth...

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 /bb_briefs/detail/index.cfm
Time Stamp 31-May-26 09:28 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
1780262923259 ms 1.78026292326E+012 ms 1 /root/website/app_server.cfm
1049 ms 1049 ms 1 /root/website/bb_briefs/detail/index.cfm
280 ms 280 ms 1 /root/website/queries/qry_get_discussion_by_id.cfm
248 ms 248 ms 1 /root/website/bb_briefs/detail/dsp_main.cfm
179 ms 45 ms 4 /root/website/adsystem/adsystem_mod.cfm
179 ms 179 ms 1 /root/website/app_layout.cfm
148 ms 148 ms 1 /root/website/app_globals.cfm
129 ms 129 ms 1 /root/website/queries/qry_get_briefs_reader_rating.cfm
111 ms 111 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
62 ms 62 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
60 ms 60 ms 1 /root/website/adzones/showcase_track.cfm
49 ms 49 ms 1 /root/website/adzones/AdZone6.cfm
49 ms 49 ms 1 /root/website/queries/qry_get_active_obc.cfm
46 ms 46 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
45 ms 45 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
45 ms 11 ms 4 /root/website/site/blocks/membership_advantages.cfm
43 ms 11 ms 4 /root/website/queries/qry_get_member_account_types.cfm
37 ms 37 ms 1 /root/website/adzones/AdZone3.cfm
33 ms 33 ms 1 /root/website/adzones/AdZone11.cfm
22 ms 22 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
21 ms 21 ms 1 /root/website/queries/qry_get_reader_reviews_by_preview_number.cfm
19 ms 19 ms 1 /root/website/act_check_login.cfm
18 ms 4 ms 5 /root/website/actions/act_spider_tracker.cfm
18 ms 18 ms 1 /root/website/queries/qry_get_current_competition.cfm
18 ms 18 ms 1 /root/website/queries/qry_get_member_info.cfm
17 ms 17 ms 1 /root/website/queries/qry_get_liked_by_brief_id.cfm
15 ms 15 ms 1 /root/website/actions/adstatus.cfm
14 ms 14 ms 1 /root/website/queries/qry_get_preview_awards_by_id.cfm
13 ms 13 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
10 ms 10 ms 1 /root/website/queries/qry_get_books_by_briefs_category.cfm
6 ms 6 ms 1 /root/website/queries/qry_get_preview_by_id.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_author_bookcount.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_obc_number.cfm
3 ms 3 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
1 ms 1 ms 1 /root/website/act_libraryIPLogin.cfm
1 ms 1 ms 1 /root/website/site/blocks/dsp_top_brief_block.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
1 ms 1 ms 1 /root/website/site/blocks/layout/main_menu.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_current_ezine.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
0 ms 0 ms 1 /root/website/site/blocks/act_book_view_tracking.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_hc_message.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_search.cfm
2 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
1051 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=17ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 21:28:43.043
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=17ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 21:28:43.043
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=14ms, Records=2) in /root/website/actions/adstatus.cfm @ 21:28:43.043
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 @ 21:28:43.043
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=21ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 21:28:43.043
SELECT		a.wordplay_number, a.wordplay_dt, a.wordplay_name, a.wordplay_intro_text, b.wordplay_puzzle_number, b.wordplay_puzzle_question
    FROM		wordplays a 
	INNER JOIN	wordplay_puzzle_mapping c on c.wordplay_number = a.wordplay_number
	INNER JOIN	wordplay_puzzles b on b.wordplay_puzzle_number = c.wordplay_puzzle_number
	WHERE		a.wordplay_number = (	select top 1 a.wordplay_number
                                from wordplays a, wordplay_puzzles b, wordplay_puzzle_mapping c
                                where a.wordplay_number = c.wordplay_number
                                and b.wordplay_puzzle_number = c.wordplay_puzzle_number
                                and a.wordplay_dt < getdate()
                                and a.wordplay_expiration_dt > dateadd(day, -1, getdate())
                                order by a.wordplay_dt asc
                                )
get_ComNo (Datasource=bookbrowse_com_new, Time=10ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 21:28:43.043
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=8ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 21:28:43.043
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 @ 21:28:43.043
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=17ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 21:28:43.043
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=9ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 21:28:43.043
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=22ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 21:28:43.043
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_preview_by_id (Datasource=bookbrowse_com_new, Time=6ms, Records=1) in /root/website/queries/qry_get_preview_by_id.cfm @ 21:28:43.043
select 			a.ezine_preview_number,
				a.ezine_number, 
				a.ezine_preview_category_number, 
				a.ezine_preview_title, 
				a.ezine_preview_subtitle, 
				a.ezine_preview_author, 
				a.ezine_preview_publisher,
				a.ezine_preview_publish_dt,
				a.ezine_preview_number_of_pages, 
				a.ezine_preview_jacket_image,
				a.ezine_preview_reviews,
				a.ezine_preview_short_summary,
				a.ezine_preview_jacket_desc,
				a.ezine_preview_reading_guide,
				a.ezine_preview_bb_comments, 
				a.ezine_preview_isbn,
				a.ezine_preview_isbn13,
				a.ezine_preview_rating,
				a.ezine_preview_bb_link,
                a.ezine_preview_bb_author_link,
                a.ezine_preview_firsts_flag,
                a.ezine_preview_reading_level,
                a.ezine_preview_paperback_flag,
				b.*,
                c.ezine_dt, c.ezine_description
,(select publisher_holding_company from publishers where ezine_preview_publisher like publisher_imprint AND publisher_holding_company LIKE 'Harper%') AS "publisher_holding_company"		
 				
from ezine_previews a 
inner join ezine_preview_categories b ON b.ezine_preview_category_number = a.ezine_preview_category_number
left join ezines c ON c.ezine_number = a.ezine_number

where ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21923

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=14ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 21:28:43.043
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) = 21923

get_briefs_reader_rating (Datasource=bookbrowse_com_new, Time=128ms, Records=1) in /root/website/queries/qry_get_briefs_reader_rating.cfm @ 21:28:43.043
SELECT	(CAST(AVG(CAST(rating AS numeric(12,0))) AS numeric(12,0)))+
				(CASE WHEN right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) > 25 AND right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) < 50 THEN 0.5
				 WHEN right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) >= 50 AND right(CAST(AVG(CAST(rating AS numeric(12,2))) AS numeric(12,2)),2) < 75 THEN -0.5
			ELSE 0
			END) AS "avrating",
            count(rating) as "ratcount"
            
	FROM (
		SELECT reader_review_rating AS rating
		FROM reader_reviews
		WHERE ezine_preview_number = ?
		
		AND reader_review_rating > 0
		
		UNION ALL
		
		SELECT reading_list_book_rating AS rating
		FROM reading_lists
		WHERE book_number LIKE 'p%'
		AND TRY_CAST(SUBSTRING(book_number, 2, LEN(book_number)) AS INT) = ?
		AND reading_list_book_rating > 0
		AND TRY_CAST(SUBSTRING(book_number, 2, LEN(book_number)) AS INT) IS NOT NULL
	) combined_ratings
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21923
Parameter #2(CF_SQL_INTEGER) = 21923

get_reader_reviews_by_preview_number (Datasource=bookbrowse_com_new, Time=20ms, Records=1) in /root/website/queries/qry_get_reader_reviews_by_preview_number.cfm @ 21:28:43.043
SELECT 		a.reader_review_number, a.book_number, a.ezine_preview_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.ezine_preview_title,
    			ISNULL(e.edit_count, 0) AS edit_count,
    			e.last_edit_dt,
    			a.member_number AS review_member_number
    FROM 		reader_reviews a
    INNER JOIN	ezine_previews b ON a.ezine_preview_number = b.ezine_preview_number
    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
	WHERE 		a.ezine_preview_number = ?
    AND			a.book_number = 0
    AND 		a.reader_review_approved_flag = 1
    

	ORDER BY a.reader_review_rating DESC, a.reader_review_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21923

get_arc_idfk (Datasource=bookbrowse_com_new, Time=16ms, Records=1) in /root/website/queries/qry_get_discussion_by_id.cfm @ 21:28:43.043
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_number = ? 
    AND DATALENGTH(a.arc_forumidfk) > 0 AND arc_obc_flag=1
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 21923

get_arc_idfk_legacy (Datasource=bookbrowse_com_new, Time=26ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 21:28:43.043
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_number = ? 
    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) = 21923

obc_discussions (Datasource=booktalk_new, Time=198ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 21:28:43.043
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=36ms, Records=28) in /root/website/queries/qry_get_discussion_by_id.cfm @ 21:28:43.043
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) = p21923

ya_check (Datasource=bookbrowse_com_new, Time=2ms, Records=0) in /root/website/queries/qry_get_books_by_briefs_category.cfm @ 21:28:43.043
select ezine_preview_reading_level 
from ezine_previews 
where ezine_preview_number = ?
and ezine_preview_reading_level = 2
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21923

get_books_by_brief (Datasource=bookbrowse_com_new, Time=7ms, Records=20) in /root/website/queries/qry_get_books_by_briefs_category.cfm @ 21:28:43.043
select 			top 20
				a.ezine_preview_reading_level,
				b.category_name,
				c.category_number, 
				d.book_number, d.book_title,
				f.author_number, f.author_first_name, author_middle_initial, author_last_name
				
from 			ezine_previews a 
inner join		categories b on b.ezine_preview_category_number = a.ezine_preview_category_number
inner join		category_book_mapping c on c.category_number = b.category_number
inner join		books d on d.book_number = c.book_number
inner join		book_author_mapping e on e.book_number = d.book_number
inner join		authors f on f.author_number = e.author_number

where			a.ezine_preview_number = ? 

order by 		d.book_number DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21923

get_author_bookcount (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/queries/qry_get_author_bookcount.cfm @ 21:28:43.043
select		b.book_title as "title", 1 as "bb_flag", b.book_number as "number"
        from		book_author_mapping a
		inner join	books b on b.book_number = a.book_number
        where		a.author_number = ?
union
    	select		c.ezine_preview_title as "title", 0 as "bb_flag", c.ezine_preview_number as "number"
        from		ezine_previews c
        where		c.ezine_preview_bb_author_link = ?
        and			c.ezine_preview_bb_link = 0
		and 1=0
order by title DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 0
Parameter #2(CF_SQL_INTEGER) = 0

get_obc_number (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_obc_number.cfm @ 21:28:43.043
select a.arc_forumidfk
    from arcs a
    
    	where a.ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_numeric) = 21923.0

existingResults (Datasource=bookbrowse_com_new, Time=82ms, Records=28) in /root/website/actions/udfs.cfm @ 21:28:43.043
SELECT id, last_updated
        FROM DiscourseSearchResults
        WHERE book_number = ?
        ORDER BY last_updated DESC
Query Parameter Value(s) -
Parameter #1(cf_sql_varchar) = p21923

get_ads (Datasource=bookbrowse_com_new, Time=23ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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) = adzone3
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=11ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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) = adzone3

get_member_account_types (Datasource=bookbrowse_com_new, Time=6ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 21:28:44.044
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_member_account_types (Datasource=bookbrowse_com_new, Time=11ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 21:28:44.044
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_ads (Datasource=bookbrowse_com_new, Time=21ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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) = adzone11
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=9ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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) = adzone11

get_member_account_types (Datasource=bookbrowse_com_new, Time=11ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 21:28:44.044
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_liked_by_brief_id (Datasource=bookbrowse_com_new, Time=17ms, Records=0) in /root/website/queries/qry_get_liked_by_brief_id.cfm @ 21:28:44.044
SELECT
		ep.ezine_preview_title AS book_title,
		'p' + CAST(ep.ezine_preview_number AS VARCHAR) AS book_number,
		b.book_title AS "referenced_book_title",
		CAST(b.book_number AS VARCHAR) AS "liked_book_number",
		b.book_short_summary AS "liked_short_summary",
		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 = b.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',
		0 AS 'is_brief'

	FROM 		liked a
	INNER JOIN	ezine_previews ep ON ep.ezine_preview_number = ?
		AND a.book_number = ep.ezine_preview_number
	INNER JOIN	books b ON b.book_number = a.liked_book_number
	INNER JOIN	book_author_mapping d ON d.book_number = b.book_number
	INNER JOIN	authors e ON e.author_number = d.author_number

	UNION

	
	SELECT
		ep.ezine_preview_title AS book_title,
		'p' + CAST(ep.ezine_preview_number AS VARCHAR) AS book_number,
		b.book_title AS "referenced_book_title",
		CAST(b.book_number AS VARCHAR) AS "liked_book_number",
		b.book_short_summary AS "liked_short_summary",
		CASE
			WHEN datalength(auth.author_middle_initial) > 0
			THEN auth.author_first_name + ' ' + auth.author_middle_initial + '. ' + auth.author_last_name
			ELSE auth.author_first_name + ' ' + auth.author_last_name
		END AS "author_name",
		(select top 1 edition_publish_dt from editions where editions.book_number = b.book_number order by edition_publish_dt DESC) AS 'sortdate',
		0 AS 'liked_author_bookcount',
		0 AS 'is_brief'

	FROM 		readalikes_cache rc
	INNER JOIN	ezine_previews ep ON ep.ezine_preview_number = ?
		AND rc.source_book_number = 'p' + CAST(ep.ezine_preview_number AS VARCHAR)
	INNER JOIN	books b ON b.book_number = rc.recommended_book_number
	INNER JOIN	book_author_mapping bam ON bam.book_number = b.book_number
	INNER JOIN	authors auth ON auth.author_number = bam.author_number

	ORDER BY 	sortdate desc, referenced_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 21923
Parameter #2(CF_SQL_INTEGER) = 21923

get_member_account_types (Datasource=bookbrowse_com_new, Time=13ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 21:28:44.044
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=18ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 21:28:44.044
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=24ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 21:28:44.044
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=37ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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=4ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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=6ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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 @ 21:28:44.044
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 @ 21:28:44.044
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=41ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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=15ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        		AND a.adid NOT IN (?) 
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = showcase_track
Parameter #2(CF_SQL_INTEGER) = 1112

get_type (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 21:28:44.044
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/bb_briefs/detail/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=CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23; CFTOKEN=e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F; FREEACCESSCOUNT=0; CFGLOBALS=urltoken%3DCFID%23%3D4074653%26CFTOKEN%23%3De381ce984c9d780b%2DFF62D445%2DDA8E%2DF936%2D4162E554BD3DC22F%23lastvisit%3D%7Bts%20%272026%2D05%2D31%2021%3A28%3A43%27%7D%23hitcount%3D46%23timecreated%3D%7Bts%20%272026%2D05%2D31%2021%3A28%3A34%27%7D%23cftoken%3D987cb6229c968732%2DFF62CF5B%2DAA3D%2DD97B%2DB55E9934CF6FCCE5%23cfid%3D4074651%23; CFID=4074653
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=/ezine_preview_number/21923/the-tapestry-of-time
PATH_TRANSLATED=/root/website/bb_briefs/detail/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/bb_briefs/detail/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=4074651
cftoken=987cb6229c968732-FF62CF5B-AA3D-D97B-B55E9934CF6FCCE5
hitcount=54
lastvisit={ts '2026-05-31 21:28:44'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-05-31 21:28:34'}
urltoken=CFID=4074653&CFTOKEN=e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F
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#=4074653&CFTOKEN#=e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F#lastvisit={ts '2026-05-31 21:28:43'}#hitcount=46#timecreated={ts '2026-05-31 21:28:34'}#cftoken=987cb6229c968732-FF62CF5B-AA3D-D97B-B55E9934CF6FCCE5#cfid=4074651#
CFID=4074653
CFTOKEN=e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F
FREEACCESSCOUNT=0
Session Variables:
cfid=4074653
cftoken=e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F
sessionid=BOOKBROWSE_4074653_e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F
urltoken=CFID=4074653&CFTOKEN=e381ce984c9d780b-FF62D445-DA8E-F936-4162E554BD3DC22F
URL Parameters:
ezine_preview_number=21923
the-tapestry-of-time=
Debug Rendering Time: 36 ms