What do readers think of Metropolis by B. A. Shapiro? Write your own review.

Summary | Reviews | More Information | More Books

Metropolis by B. A. Shapiro

Metropolis

A Novel

by B. A. Shapiro

  • Readers' Rating (57):
  • Published:
  • May 2022, 368 pages
  • Rate this book

About this book

Reviews

Page 2 of 4
There are currently 30 reader reviews for Metropolis
Order Reviews by:

Write your own review!

Judith P. (Ithaca, NY)

Intense and enthralling
Metropolis is an outstanding book. Writer B. A. Shapiro weaves an intensely immersive tale.

Five disparate people live or work in Metropolis, a huge, castle-like storage warehouse in Cambridge, Massachusetts. Rose, the office manager, allows people to live there and pay her under the table. Lawyer Jason has his office there. Marta is avoiding ICE and writing her dissertation; Liddy is avoiding her wealthy and abusive husband; Serge is avoiding people while creating brilliant photographs. Then there's Zach, who purchased Metropolis to launder drug money.

Legal problems and love bring these people together, their difficulties escalating until it seems they have no way out. Discovering how, or if, these characters solve their problems kept me reading. But this is not one of those annoying "fast-paced, action-packed" books. The writing is filled with intriguing details about the people and the place.

Ultimately, Metropolis shows how hard it is for most people to survive and make a living when faced with poverty, abuse, mental illness, or the forces of giant corporations and bureaucracies. The story, however, is more enthralling than any of these concerns.
Susan S. (Lafayette, CA)

Highly recommended!
This book is both a whodunit and also a what-exactly-happened-anyway? There is a central location - an abandoned storage facility with six or seven units of particular interest to us - and also six or seven characters who we assume connect in some way to the storage facility and probably to each other. By the middle of the book the connections and the facts are mostly clear (we think) and by the end of the book  it all connects together in a very satisfying way and everything is clear. This is a very gratifying mystery with great characters, and also a healthy dose of social commentary. Highly recommended!
Chris D.

Unusual setting
This was a first for me! I am quite sure that I have never yet read a book that was set in a series of storage units. Metropolis is a very creative and unusual book and I enjoyed reading it. The characters were varied and interesting, and they may have led very separate lives, but in a time of need they came together to help each other in the way that they could.
Carolyn_S

Metropolis
This book is the story of very different individuals who for one reason or another live and work in an old warehouse and is filled with suspense from being to end. The plot is very original and nuanced and a delight to read.
Pamela C. (Boxborough, MA)

Unique and compelling suspense novel
This is such a wonderful book! I loved how the author introduced us to the six characters who lived or worked at the Metropolis Storage Warehouse. Each of them have a unique connection to Metropolis, some of them are actually living in their storage units and we learn their reasons for doing so. When an elevator accident happens there, it is a mystery as to who is responsible . It was a very original and creative story and had me really transfixed right up until the end. Great characters and suspense!
Carol Ellis

Deftly written
I began reading this book and could not stop and that, for me, is high praise. B. Shapiro has written an intriguing, engaging, and clever novel. The setting is Boston; each chapter is brief and told from the point of view of a different character. You are immediately drawn to the good guys, and fear for their well-being. One of the main characters is writing a doctoral thesis trying to prove that the conditions you happen to be born into very much determine how your life will turn out. The book illustrates this concept and does it well. Shapiro is a really good writer - over and over again she succeeds at creating a scene you can picture; she is stronger at this than with descriptions of interior states.

Metropolis is much much better than most of the "best seller" fiction out there; I highly recommend it to anyone looking for a really good reading moment.
ER

Survival in a storage facility
What a clever concept carried out by a cast of characters, from varied walks of life, with one thing in common…life has gotten a bit too difficult for each of them in different ways. Yet this storage facility has given them each a chance to escape, figure things out, and change their lives as their stories become intertwined.

Metropolis pulled me in & held my interest until the last part of the book when she managed to tie the ends up too neatly for my taste. Otherwise, I’d say this is another good read from a great author. I recommend you pick this one up!
Moshamveer singh

Book - metropolis
This book is amazing, I read its worth all the money to a buyer.
I think writer should add some texture in this book to look good at the time of reading.
Thank you.

Read-Alikes

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

In youth we run into difficulties. In old age difficulties run into us

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 /reader_reviews/index.cfm
Time Stamp 01-Jun-26 03:09 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
1780326558263 ms 1.78032655826E+012 ms 1 /root/website/app_server.cfm
1747 ms 1747 ms 1 /root/website/reader_reviews/index.cfm
620 ms 620 ms 1 /root/website/queries/qry_get_discussion_by_id.cfm
317 ms 317 ms 1 /root/website/app_globals.cfm
248 ms 248 ms 1 /root/website/app_layout.cfm
204 ms 204 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
199 ms 199 ms 1 /root/website/queries/qry_get_briefs_reader_rating.cfm
147 ms 147 ms 1 /root/website/act_check_login.cfm
147 ms 147 ms 1 /root/website/queries/qry_get_member_info.cfm
135 ms 135 ms 1 /root/website/queries/qry_get_reader_reviews_by_preview_number.cfm
124 ms 124 ms 1 /root/website/reader_reviews/dsp_briefshell.cfm
114 ms 114 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
113 ms 113 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
93 ms 47 ms 2 /root/website/adsystem/adsystem_mod.cfm
68 ms 68 ms 1 /root/website/adzones/AdZone6.cfm
60 ms 60 ms 1 /root/website/reader_reviews/dsp_reviews.cfm
52 ms 52 ms 1 /root/website/queries/qry_get_active_obc.cfm
33 ms 33 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
32 ms 32 ms 1 /root/website/queries/qry_get_current_competition.cfm
31 ms 31 ms 1 /root/website/adzones/showcase_track.cfm
30 ms 10 ms 3 /root/website/actions/act_spider_tracker.cfm
24 ms 24 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
21 ms 21 ms 1 /root/website/actions/adstatus.cfm
21 ms 21 ms 1 /root/website/queries/qry_get_books_by_briefs_category.cfm
20 ms 20 ms 1 /root/website/queries/qry_get_preview_by_id.cfm
11 ms 11 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
9 ms 9 ms 1 /root/website/queries/qry_get_preview_awards_by_id.cfm
8 ms 8 ms 1 /root/website/queries/qry_get_obc_number.cfm
3 ms 3 ms 1 /root/website/formurl2attributes.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_author_bookcount.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_free_newsletters.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/main_menu.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/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_reader_reviews_power_reviewers.cfm
0 ms 0 ms 1 /root/website/reader_reviews/dsp_views.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_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/head.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
1 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
1748 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

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

	AND 		getdate() < arc_on_ad_dt
	
		ORDER BY  	NEWID()
get_active_obc (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 15:09:18.018
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=13ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 15:09:18.018
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_number (Datasource=bookbrowse_com_new, Time=1ms, Records=1) in /root/website/reader_reviews/index.cfm @ 15:09:18.018
SELECT 	ezine_preview_bb_link, ezine_preview_title
		FROM 	ezine_previews
		WHERE 	ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 16528

get_reader_reviews_power_reviewers (Datasource=bookbrowse_com_new, Time=0ms, Records=50, Cached Query) in /root/website/queries/qry_get_reader_reviews_power_reviewers.cfm @ 15:09:18.018
SELECT 		top 50 reader_review_reviewer_email_address, count(reader_review_reviewer_email_address) as "count"
	FROM 		reader_reviews
	WHERE 		reader_review_reviewer_email_address like '%@%'
	AND 		reader_review_reviewer_email_address <> 'reviews@bookbrowse.com'
	GROUP BY 	reader_review_reviewer_email_address
	
	
	ORDER BY 	count desc
get_preview_by_id (Datasource=bookbrowse_com_new, Time=12ms, Records=1) in /root/website/queries/qry_get_preview_by_id.cfm @ 15:09:18.018
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) = 16528

get_author_name (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_preview_by_id.cfm @ 15:09:18.018
SELECT author_number, 
        CASE WHEN datalength(author_middle_initial) > 0 then author_first_name + ' ' + author_middle_initial + '. ' + author_last_name
            ELSE author_first_name + ' ' + author_last_name
            END "author_name"
        FROM authors 
        WHERE author_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2228

get_preview_awards_by_id (Datasource=bookbrowse_com_new, Time=8ms, Records=0) in /root/website/queries/qry_get_preview_awards_by_id.cfm @ 15:09:18.018
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) = 16528

get_briefs_reader_rating (Datasource=bookbrowse_com_new, Time=199ms, Records=1) in /root/website/queries/qry_get_briefs_reader_rating.cfm @ 15:09:18.018
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) = 16528
Parameter #2(CF_SQL_INTEGER) = 16528

get_reader_reviews_by_preview_number (Datasource=bookbrowse_com_new, Time=132ms, Records=30) in /root/website/queries/qry_get_reader_reviews_by_preview_number.cfm @ 15:09:18.018
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) = 16528

get_arc_idfk (Datasource=bookbrowse_com_new, Time=6ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 15:09:18.018
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) = 16528

get_arc_idfk_legacy (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 15:09:18.018
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) = 16528

obc_discussions (Datasource=booktalk_new, Time=570ms, Records=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 15:09:19.019
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=0) in /root/website/queries/qry_get_discussion_by_id.cfm @ 15:09:19.019
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) = p16528

ya_check (Datasource=bookbrowse_com_new, Time=11ms, Records=0) in /root/website/queries/qry_get_books_by_briefs_category.cfm @ 15:09:19.019
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) = 16528

get_books_by_brief (Datasource=bookbrowse_com_new, Time=8ms, Records=20) in /root/website/queries/qry_get_books_by_briefs_category.cfm @ 15:09:19.019
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) = 16528

get_author_bookcount (Datasource=bookbrowse_com_new, Time=2ms, Records=4) in /root/website/queries/qry_get_author_bookcount.cfm @ 15:09:19.019
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
		
order by title DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2228
Parameter #2(CF_SQL_INTEGER) = 2228

get_obc_number (Datasource=bookbrowse_com_new, Time=8ms, Records=1) in /root/website/queries/qry_get_obc_number.cfm @ 15:09:19.019
select a.arc_forumidfk
    from arcs a
    
    	where a.ezine_preview_number = ?
Query Parameter Value(s) -
Parameter #1(cf_sql_numeric) = 16528.0

IsPowerReviewer (Datasource=, Time=0ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'judith.pratt.writer@gmail.com'
IsPowerReviewer (Datasource=, Time=0ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'susan.schapiro@gmail.com'
IsPowerReviewer (Datasource=, Time=1ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'chrisdicke6@gmail.com'
IsPowerReviewer (Datasource=, Time=0ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'csuwyn@emory.edu'
IsPowerReviewer (Datasource=, Time=0ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'pamwcollins@comcast.net'
IsPowerReviewer (Datasource=, Time=1ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'carolellis04@gmail.com'
IsPowerReviewer (Datasource=, Time=0ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'elysedove@yahoo.com'
IsPowerReviewer (Datasource=, Time=0ms, Records=0) in /root/website/reader_reviews/dsp_reviews.cfm @ 15:09:19.019
select *
			from get_reader_reviews_power_reviewers
			where reader_review_reviewer_email_address LIKE 'Mraarman51@gmail.com'
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=54ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 15:09:19.019
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=56ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 15:09:19.019
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=35ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 15:09:19.019
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=15ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 15:09:19.019
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=10ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 15:09:19.019
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=10ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 15:09:19.019
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 @ 15:09:19.019
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 15:09:19.019
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=18ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 15:09:20.020
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=4ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 15:09:20.020
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/reader_reviews/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=CFTOKEN=b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C; CFGLOBALS=urltoken%3DCFID%23%3D4105047%26CFTOKEN%23%3Db989f21542079f99%2D2550EDF4%2DFC28%2D1F6F%2DA88EE52C4FD2E24C%23lastvisit%3D%7Bts%20%272026%2D06%2D01%2015%3A09%3A17%27%7D%23hitcount%3D42%23timecreated%3D%7Bts%20%272026%2D06%2D01%2015%3A09%3A10%27%7D%23cftoken%3Dba98c2bdc9da0d9e%2D2550E5ED%2DE1EA%2D7729%2D6556EDE69743381F%23cfid%3D4105045%23; CFID=4105047; CFCLIENT_BOOKBROWSE=order%3Dp%23member%5Fnumber%3D0%23member%5Factive%5Fflag%3D0%23member%5Flogged%5Fin%5Fflag%3D0%23library%5Fuser%5Fflag%3D0%23view%3Dbooks%23
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/ezine_preview_number/16528/page/2/order/bw/metropolis
PATH_TRANSLATED=/root/website/reader_reviews/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/reader_reviews/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=4105045
cftoken=ba98c2bdc9da0d9e-2550E5ED-E1EA-7729-6556EDE69743381F
hitcount=53
lastvisit={ts '2026-06-01 15:09:19'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 15:09:10'}
urltoken=CFID=4105047&CFTOKEN=b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C
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#=4105047&CFTOKEN#=b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C#lastvisit={ts '2026-06-01 15:09:17'}#hitcount=42#timecreated={ts '2026-06-01 15:09:10'}#cftoken=ba98c2bdc9da0d9e-2550E5ED-E1EA-7729-6556EDE69743381F#cfid=4105045#
CFID=4105047
CFTOKEN=b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C
Session Variables:
cfid=4105047
cftoken=b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C
sessionid=BOOKBROWSE_4105047_b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C
urltoken=CFID=4105047&CFTOKEN=b989f21542079f99-2550EDF4-FC28-1F6F-A88EE52C4FD2E24C
URL Parameters:
ezine_preview_number=16528
metropolis=
order=bw
page=2
Debug Rendering Time: 87 ms