Jack Turner Interview, plus links to author biography, book summaries, excerpts and reviews

Jack Turner
Photo: Helena Fraser

Jack Turner

An interview with Jack Turner

Jack Turner compares the 16th century search for spices to the 1950s and '60s space race - find out why and much more in this fascinating interview.

In the preface of your book, you recall a primary school lesson about the role of spices in the "Age of Discovery." Have you always been interested in spices? What inspired you to write a book about their history?
My teacher's remark undoubtedly stuck in the mind, but I'm not sure if there was a single "eureka" moment so much as a gradual snowballing of interest. I have found spices fascinating as far back as I can remember, since the time I was a little kid and my mum prepared marvelous spicy kormas, chutneys and curries (she is a superb cook, so maybe she should take the credit). Spices only became more fascinating as they cropped up all over the place in references I came across at random. At university, where I read Greek and Latin, they appeared in the most unexpected places: a reference to cassia in a poem by Sappho written in the 6th century BC; a Roman poet's sarcastic remarks about pepper. Reading the life of the Venerable Bede I was struck by a reference to pepper in Dark Age England. My early interest was mainly in the logistics of the matter: How on earth did they get it? The decision to pursue the subject further was, I suppose, essentially the culmination of a long-standing interest.

Before Columbus and his fellow European explorers set out around the world and precipitated explosive growth in the spice trade, what did the average person know about spices that didn't grow in his or her native land?
The average person "knew" a great deal, little of it accurate, and all colorful. There was a great body of myth and legend surrounding spices and the mystery of their origins, a mystery not solved until modern times. From the distance of the 21st century it is extremely difficult if not impossible for us to image this mental universe, the sense of wonder the spices aroused. Perhaps the most important "fact" concerning spices was the myth of their origins, particularly the idea that they grew in the terrestrial paradise. The outlines and location of this place were necessarily vague, but everyone knew that somewhere in the east there was a place where Adam and Eve had once wandered in innocence, and it was there that the spices grew.

Even an educated person like Columbus believed quite literally in this. It is easy to exaggerate medieval credulity–we are all familiar with the tales of men with single eyes or antipodeans hopping around on one foot, many of which were playful or satirical–but it is equally true that, in the absence of better information the average informed person was quite willing to believe in the fabulous origins of spice. Reliable information was at a premium; there was no verifying or disproving of rumors and yarns from the East. Like the diamonds, silks and other exotic arrivals from the East, spices tended to confirm rather than disprove the myths of the other-worldly Orient. What was known for certain was that they were wildly glamorous, quite unlike anything else.

The spice traders of the Middle Ages incurred very high risks for potentially large profits, and their trade ultimately wrought large cultural changes. Can you compare those spice traders to members of any modern industry?
In terms of glamour or mystery, there is no comparison. Our world is mapped, divided, and far better understood; travel and trade are infinitely safer and more common. So I am not sure that the 21st century does have spice traders in that sense. But there are other parallels. I start the book with a discussion of the turn of the 16th century, when Spain and Portugal poured colossal energies into the search for spice; they were followed by the English, French and Dutch. In terms of the energies expended and the intrusion of the quest into high politics, perhaps the best modern parallel is with the space race of the 1950s and ‘60s. Like the quest for spice, the race to space had unforeseen consequences (satellites, ICBMs) and provoked new areas of conflict. There is a further parallel in the irrationalities and passions the quest aroused, the overwhelming sense that a vital national interest was at stake in something on the far side of the planet.

But beyond this point all the comparisons I can think of start to break down, since the effects of the spice age arguably outstrip anything we have seen since or can see today. If you take the longer view, if you consider the longer-term ramifications, the high-volume or glamour trades of the present age (oil, drugs and pharmaceuticals, corn) don't even come close. We are still living with the side effects of the spice trade. The long distance luxury trade of the Middle Ages, in which spices played so large a part, sparked a whole complex of activities we have come to take for granted, but which were anything but inevitable: most obviously, the emergence of medieval banking and the rise of the merchant. Later, the trade sparked discovery, embassies to foreign powers and ultimately the emergence of Europe from its ignorance and isolation. This trade initiated contact with Asia and Europe and led to the discovery of the New World; it set in motion the creation of the East India companies, colonization, the seismic shift in power, wealth and technology from East to West.

So you can see why I'm not sure that there can be a good comparison. You have probably noticed that I’ve avoided using the expression "changed the world", partly because I feel that the expression has been devalued by overuse, and partly because it is extremely hard to show how a single historical agency caused complex change. That said, the spice trade would have a good claim to be the most important traffic in human history. I'm not sure we could say the same about any modern commerce.

You write about the highly spiced cuisine of the Middle Ages. What spices did medieval cooks use, and in what ways?
Until very recently it was the consensus among historians that medieval food was a pungent welter of spices, salt and rot. The idea was that in the absence of refrigeration the meat soon rotted and so people turned to spice to cover up the taste of decomposition.

In fact, the appetite for spice was the expression more of a taste than of such a grim necessity. The main spice medieval cooks used, as we do, was pepper. There were plenty of others, in a limitless number of combinations, many of which we have in our spice cabinets today: ginger, nutmeg, mace, cloves and cinnamon. Aromatics such as saffron, coriander and cumin were locally available. They used many spices, some of which we no longer use (zedoary, long pepper), others of which today are associated with ethnic cuisine (such as galangal, an important ingredient of Thai cooking). The most widespread and diverse use of spices was in the form of sauces that are the hallmark of medieval cuisine. Different spiced sauces were served on fish, meat and vegetables, trussed, roasted, fried, baked or boiled. Spices were also used in desserts, soups and wine.

In the book I make the case that this cuisine was highly developed and sophisticated; indeed that the generally derogatory view of medieval cooking is a classic example of one age's habit of condescending to its predecessors. And while much medieval cookery may look strange to modern eyes, the recipes tend to look no stranger than, say, Indian cuisine appears to the uninitiated. There have been some attempts to adapt medieval recipes for the modern kitchen, some of which work well and suit modern tastes. So we can easily dispense with the old myth that all the food was over-spiced and drowned out in different flavors. (There was no chili, so while the food at times may have been spicy, in the flavorful sense, it was not hot).

You note that spices were used during the Middle Ages just as frequently, if not more frequently, to disguise the taste of bad wine rather than bad food. How did you come to this conclusion?
I base this judgment (cautiously: there are practically no quantitative data) on the frequency and context of references in the sources, and common sense. Firstly, bad wine (and ale, incidentally) was a problem in a way that bad food was not. This was the result of several circumstances: slow shipping; rudimentary technology, especially the absence of sterilization; leaky barrels in which the contents went bad relatively quickly. (This was a medieval, not an ancient problem: the ancients used amphorae, which provided a better seal). The result was that medieval wine tended to reach the consumer either green (that is, too young) or vinegar (too old), so it needed remedial flavoring to an extent that food did not. Secondly, eating spices was expensive, drinking them less so. A little spice went further in wine or ale, and could even be reused; it delivered more bang for one's buck. Thirdly, spiced wine was a common medicine. Illustrations in medieval health handbooks often depict people buying spiced wine (hippocras), which being classed as drying and heating was considered a tasty and convenient remedy for a cool or wet affliction, or merely as a safeguard against the perils of the cold and wet winter: not unlike a vaccination. If there was a distinction between spices in solids and liquids it was between luxury and necessity.

What role did spices play in the efforts of our ancestors to ward off disease?
A huge role; for the vast majority of people who could not afford to eat like a nobleman or king, this was the most important function of spices. Much as I've just said about spiced wine, their effect was understood as both remedial and prophylactic, either curing an affliction or as a means of warding it off. This faith was a logical consequence of their physical properties as seen in terms of medieval medical theory. On the one hand, it was a widely held belief that disease was caused by "bad air." The corollary was that a sweet smell was a form of defense, driving off or neutralizing the bad vapors. Spices were hugely sought after because there was little if anything else that delivered such a powerful and long-lasting fragrance. (The budget option for most people was a bunch of flowers or herbs: the "ring of rosies" and "pocket full of posies" of the nursery rhyme is a reference to one such "nosegay" used as a defense against the plague.)

Equally, disease was understood in terms of humors and four elements of hot, cold, dry and wet. By virtue of their fragrance and astringency, spices were classified as heating and drying (by and large), therefore counteracting all diseases classed as wet or cold. These were very deep-seated assumptions, and they were intrinsic to spices' appeal. Once we appreciate this faith in their medical potency, their attraction is abruptly more intelligible. Indeed, modern assumptions that we bring to culinary history, the idea that food is primarily about taste, can obscure the former emphasis on effect. The medieval cookery that we know anything about was less concerned with gastronomy than dietetics. They had an acute sense of the importance of eating well, and an equally acute sense of the risks of getting it wrong, of disrupting one's balance. (There are close parallels here with traditional Chinese medicine and Ayurvedic cuisine.) Spices not only tasted good but they were believed to be good for you.

The harder question is how effective they were. Modern research on the subject, of which there is a growing amount, tends to look at spices' anti-oxidant, nutritional, disinfectant or anti-microbial effects. One school of thought ("Darwinian gastronomy") maintains that in the modern world the taste for spices is functional; the reason why the hotter the country, the more spice it tends to eat, since spices help kill off the microbes that grow faster in hotter climates. Spice makes food safer. (Incidentally, while this argument makes a rough fit in the modern world, it fails to explain why spices were so sought after in Europe, and why they fell from favor.) Occasionally, there are some ancient or medieval recommendations that correlate with modern findings. But it would be a mistake, albeit a very common one, to assume that our ancestors used spices, from diagnosis to prescription, in a strictly empirical sense; that every received tradition is the fruit of ancient wisdom or observation. I do have some respect for traditional medicine, but I point out in the book that the faith in spices was more a matter of faith than experience. For it is also true that there are hundreds of remedies which we now know did more harm than good.

Tell us a bit about your study of spices as aphrodisiacs. Are there certain spices that recur in recipes for romance and reproduction? Is there any downside, any risk, to using spice as an aphrodisiac?
The most romantic spice is cinnamon, by some distance. The tradition apparently begins with the Song of Songs, far and away the spiciest book of the Bible, where cinnamon appears almost as a form of poetic shorthand for an exotic and elusive loveliness. The idea of the loved one smelling of spices and cinnamon in particular is a poet's convention that recurs from antiquity through modern times. I wish I had had more space to pursue this theme.

Far less poetically, and in a more literal sense, spices were seen as crucial aids to sex and reproduction. The main spice in this regard is ginger, considered as a universal aphrodisiac from East to West. All spices were considered heating, and therefore desire-provoking (this mantra of the ancient physician is the origin of the modern slang expressions: to "have the hots," or Donna Summer's deathless formulation, "Howzabout some hot stuff baby this evening?") but ginger was in a class apart for being classed as both hot and wet. Since sperm and womb alike were believed to function best with the correct balance of warmth and moisture, the combination was dynamite. For this reason ginger was, if you will, the Viagra of the ancient world. Self-evidently, the comparison is one based on reputation rather than results: Viagra has been lab-tested, ginger has not. On the other hand, since so much sexual dysfunction is psychological, perhaps ginger did indeed get results. If you believe that ginger will do the trick, then arguably it will.

As for downsides and risks, I guess the obvious one is extreme discomfort to no apparent purpose; the risk that none of this made the slightest bit of difference. Some of the stuff I came across (the internet is a particularly fertile source) suggests that the only safe conclusion to be ventured of aphrodisiacs is that people will risk, and believe, anything. One particularly foolish but common notion concerning aphrodisiacs is the idea of a transferal of heat: that if you rub on something biting or irritating, external will translate into internal heat. Spanish fly is the most celebrated aphrodisiac in this category. Given their astringent qualities similar recommendations were commonly made for spices, even chilies. The downsides seem obvious, though I have never put them to the test, and don't intend to.

Spices have even been used to preserve human bodies after death. What role have spices played–and what roles might they continue to play–in funeral ceremonies?

This is the oldest known function of spices, though evidence is scarce, in the form of a few peppercorns found up the nose of the pharaoh Ramses II. We do know however that all the major cultures of antiquity embalmed, perfumed or censed the dead. They certainly used native and near eastern ingredients such as frankincense and myrrh; how much they used spices is a matter for speculation. The point follows nicely from the previous question and the observation about spices' anti-microbial effects. Chemically, spices are ideally suited to preserving the dead, since they kill or retard the bacteria that cause the decomposition of flesh.

Historically, the most important corpse was Jesus, who according to the Gospels was embalmed with aloes and myrrh. Crudely put, this gave the custom Christian legitimacy. In practical terms, at least for those with money, this use of spices remained important through medieval times. The bodies of kings and noblemen were commonly on display, whether for subjects to grieve over (or at least see he was dead), or to enable transportation to a chosen burial site. It was common for a nobleman to seek burial in one's home chapel. Spices became redundant as techniques of embalming changed and as there was less emphasis on the mortal remains. Embalming made strides in the 17th and 18th centuries, and the advent of the refrigerated morgue and formaldehyde finally made spices redundant. So I don't believe they play any major role today. The only contemporary example I know comes from Yemen and (I think) some of the Gulf States, where I have read that the body of the deceased is still oiled with a fragrant oil and censed.

You point out that several spices were used in sacraments before they were used as seasonings. Can you tell us a bit about this transition?
The point is simply that there is evidence of widespread religious use, in perfumes and incense, long before there is evidence that spices were eaten. It seems a reasonable assumption that this had much to do with their rarity: that for a long time spices were too costly to eat, and so were reserved for the gods. Or, perhaps more accurately, when they were eaten there were memories and associations with religious use. There are echoes of this in the modern times for sage and thyme, which are semantically linked to words for sacrifice. "Thyme" is from the Greek thuein, which means "to make a burnt offering."

In later times, when the historical record is a lot clearer, it is important to remember that spices' sacramental associations helps explain their culinary appeal, or for that matter the faith in their healing powers. Just as they brought medieval (or aphrodisiac) baggage to the table, they brought associations of sanctity or, if you like, of magic. They were extremely special foodstuffs.

You write about the scent of spices as an indicator of one's piety or virtue. How did this phenomenon come about?
Broadly, it would seem to be a more or less universal trait that a sweet smell is seen as auspicious. It is also true that a pleasant smell is characteristic of divinity. The gods smelled good. Thus for a human to smell good was in some sense to smell like the gods. In ancient and medieval times, spices were rare, exotic, expensive, inexplicable. There was a certain logic, or at least consistency, in associating them with gods and saints.

While these ideas were true of pagan antiquity, they were translated more or less intact to a Judeo-Christian universe, though with some exceptions and qualifications. In the Christian West, by the fourth century it was already a convention that the holy dead smelt of spice, and the convention endured throughout the medieval world. Speaking of poetry, I would estimate that about half the references to spices I came across were to the Virgin, Christ or some or other saint smelling of cinnamon or various spices. In a frequently malodorous world they were symbols of the sublime.

Lastly, the notion of sanctity had much to do with the medieval distinction between the visible and invisible, between inner and outer worth. The medieval imagination loved symbols and allegories. Spices looked plain but smelt good, concealing potent properties in a humble package. This made them perfect symbols of grace, love, humility, all manner of Christian virtues.

Why are spices no longer important in most Christian traditions of worship? What about New Age trends and the popularization of "aromatherapy"?
Broadly (and with the important proviso that one should not expect every religious development to have a neat and tidy explanation; you can't rationalize faith), my sense is that there are two answers. The first is theological: that at some times and places, and with varying degrees of severity, there was an awareness of spices' pagan past. Partly, this was because the idolaters used spices, for which reason Jews and Christians would not. In more strictly theoretical terms, this rejection followed logically from a particular conception of divinity. If God is a metaphysical being then why offer him physical sacrifice? Viewed in these terms, spices or for that matter any incense only made sense as a symbol. With the Reformation, and the reformers' zeal to purge the Church of anything smacking of idolatry, these debates were revisited.

The second explanation has less do with theory than with economics. Once cost fell, spices became more prosaic, therefore less sacred. But as I say, one can be too rational. Frankincense and balsam are still used in the Catholic Church. I mention the Russian Orthodox Church, which still uses spices in its anointing oil. To find spices in sacrifice you have to look further east. Recently I was in India, where I attended a puja, or blessing, where the priest threw coriander and cinnamon on the fire as he chanted the prayers. This was, essentially, the same form of ritual as one finds described in the ancient sources.

So in this sense the New Agers who burn spiced incense are honoring an extremely ancient tradition. Some of them still cling to the maximalist idea of spicy sacrifice, i.e. that spices somehow summon spirits, that they somehow contain some magical potency. But more often the faith takes a more minimalist form, namely the idea that spices somehow trigger the irrational or spiritual side of one's being. There are, as you suggest, links with aromatherapy, particularly the idea that smell can alter our mental state. In this vein there would seem to be two observations. The first is the point I made about aphrodisiacs: that if you expect something, if you fully believe, then quite likely it will happen. The second is that studies have indeed shown that smells do indeed stimulate the brain. They can increase alertness, memory and powers of recall. I think everyone has had the experience of a familiar smell suddenly evoking some other time or place. This physiological response may well be the best answer to the question of their spiritual or religious appeal.

What's the most surprising thing that you discovered in your research?
For me the single greatest surprise is still the historical puzzle I started with: the sheer magnetism of the spices, the grip they held for so long on the ancient and medieval imagination; the fact that characters like Columbus, da Gama and Magellan and hundreds of lesser-known names were prepared to risk all and sail off into the unknown for the sake of spice. If, however, I had to single out one particular moment or individual, or rather one spice, it would be the cloves unearthed from the Syrian desert and dated to around 1720 BC. The clove is native to the far east of Indonesia, yet somehow these cloves found their way to ancient Mesopotamia. Even now I find this astonishing. These cloves constitute the first evidence of trade with the Far East, nearly two thousand years before there is so much as a mention of the clove in literature. I don't think there will ever be an answer to the mystery of their arrival.

Unless otherwise stated, this interview was conducted at the time the book was first published, and is reproduced with permission of the publisher. This interview may not be reproduced or reprinted without permission in writing from the copyright holder.

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

Books by this Author

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

Read-Alikes

All the books below are recommended as read-alikes for Jack Turner but some maybe more relevant to you than others depending on which books by the author you have read and enjoyed. So look for the suggested read-alikes by title linked on the right.
How we choose readalikes

  • Nicholas A. Basbanes

    Nicholas A. Basbanes

    Nicholas A. Basbanes is an award-winning investigative journalist and was literary editor of the Worcester Sunday Telegram. His articles have appeared in The New York Times, the Los Angeles Times, The Washington Post, and ... (more)

    If you enjoyed:
    Spice

    Try:
    On Paper
    by Nicholas A. Basbanes

  • Laurence Bergreen

    Laurence Bergreen

    Laurence Bergreen is the bestselling author of Over the Edge of the World: Magellan's Terrifying Circumnavigation of the Globe. His other books include Columbus: The Four Voyages, 1492–1504; Marco Polo: From Venice to ... (more)

    If you enjoyed:
    Spice

    Try:
    Over the Edge of the World
    by Laurence Bergreen

We recommend 9 similar authors

View all 9 Read-Alikes

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

BookBrowse Book Club

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

Members Recommend

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

Finishing second in the Olympics gets you silver. Finishing second in politics gets you oblivion.

Click Here to find out who said this, as well as discovering other famous literary quotes!

Book
Trivia
  • Book Trivia

    Can you name the title?

    Test your book knowledge with our daily trivia challenge!

Wordplay

Solve this clue:

W the C A the M W P

and be entered to win..

Your guide toexceptional          books

BookBrowse seeks out and recommends the best in contemporary fiction and nonfiction—books that not only engage and entertain but also deepen our understanding of ourselves and the world around us.

 


Debugging Information
ColdFusion Server Developer 2021,0,13,330286
Template /author_interviews/full/index.cfm
Time Stamp 01-Jun-26 04:56 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
1780332982813 ms 1.78033298281E+012 ms 1 /root/website/app_server.cfm
215 ms 215 ms 1 top level /root/website/author_interviews/full/index.cfm
68 ms 68 ms 1 /root/website/app_layout.cfm
64 ms 64 ms 1 /root/website/author_interviews/full/dsp_main.cfm
54 ms 54 ms 1 /root/website/app_globals.cfm
44 ms 15 ms 3 /root/website/adsystem/adsystem_mod.cfm
44 ms 44 ms 1 /root/website/site/blocks/layout/dsp_right_column.cfm
30 ms 15 ms 2 /root/website/queries/qry_get_books_by_author_id.cfm
21 ms 21 ms 1 /root/website/queries/qry_get_active_obc.cfm
16 ms 16 ms 1 /root/website/adzones/AdZone6.cfm
16 ms 16 ms 1 /root/website/site/blocks/layout/dsp_footer.cfm
15 ms 15 ms 1 /root/website/adzones/AdZone2.cfm
14 ms 14 ms 1 /root/website/adzones/showcase_track.cfm
13 ms 13 ms 1 /root/website/site/blocks/dsp_border_first_impressions.cfm
12 ms 12 ms 1 /root/website/queries/qry_get_arcs_for_ad.cfm
11 ms 11 ms 1 /root/website/queries/qry_get_books_by_author_id_lite.cfm
10 ms 10 ms 1 /root/website/site/blocks/dsp_book_giveaway.cfm
10 ms 3 ms 3 /root/website/site/blocks/membership_advantages.cfm
7 ms 7 ms 1 /root/website/queries/qry_get_current_wordplay.cfm
7 ms 2 ms 3 /root/website/queries/qry_get_member_account_types.cfm
5 ms 5 ms 1 /root/website/queries/qry_get_author_readalikes_by_id.cfm
4 ms 4 ms 1 /root/website/act_check_login.cfm
4 ms 4 ms 1 /root/website/actions/adstatus.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_all_books_by_author_id.cfm
4 ms 4 ms 1 /root/website/queries/qry_get_bb_briefs_by_author.cfm
4 ms 4 ms 1 /root/website/site/blocks/layout/dsp_header.cfm
3 ms 1 ms 4 /root/website/actions/act_spider_tracker.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_current_competition.cfm
3 ms 3 ms 1 /root/website/queries/qry_get_member_info.cfm
2 ms 2 ms 1 /root/website/site/blocks/layout/main_menu.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_free_newsletters.cfm
1 ms 1 ms 1 /root/website/queries/qry_get_previous_arcs_for_ad.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/dsp_bottom_block.cfm
1 ms 1 ms 1 /root/website/site/blocks/layout/head.cfm
0 ms 0 ms 1 /root/website/Application.cfm
0 ms 0 ms 1 /root/website/act_libraryIPLogin.cfm
0 ms 0 ms 1 /root/website/actions/udfs.cfm
0 ms 0 ms 1 /root/website/banners/ad_594.cfm
0 ms 0 ms 1 /root/website/formurl2attributes.cfm
0 ms 0 ms 1 /root/website/js/fbjavascriptsdk.cfm
0 ms 0 ms 1 /root/website/queries/qry_get_current_ezine.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_border_booktalk.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_header_newsletter.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_top_author_block.cfm
0 ms 0 ms 1 /root/website/site/blocks/dsp_wordplay.cfm
0 ms 0 ms 1 /root/website/site/blocks/email_modal.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/google_tags.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/header_announcement.cfm
0 ms 0 ms 1 /root/website/site/blocks/layout/main_search.cfm
2 ms  STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
217 ms  TOTAL EXECUTION TIME
red = over 250 ms average execution time


SQL Queries

spidercheck (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/actions/act_spider_tracker.cfm @ 16:56:22.022
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=1ms, Records=0) in /root/website/queries/qry_get_member_info.cfm @ 16:56:22.022
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=3ms, Records=2) in /root/website/actions/adstatus.cfm @ 16:56:22.022
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 @ 16:56:22.022
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=3ms, Records=1) in /root/website/queries/qry_get_current_wordplay.cfm @ 16:56:22.022
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=1ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 16:56:22.022
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=1ms, Records=0) in /root/website/queries/qry_get_current_competition.cfm @ 16:56:22.022
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 @ 16:56:22.022
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=3ms, Records=0) in /root/website/queries/qry_get_active_obc.cfm @ 16:56:22.022
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=4ms, Records=1) in /root/website/queries/qry_get_active_obc.cfm @ 16:56:22.022
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE 		a.arc_obc_flag = 1
	AND			a.arc_active_flag = 0
	AND 		arc_closed_flag = 1
	AND 		getdate() >= arc_on_ad_dt
	AND 		getdate() < arc_off_ad_dt
	ORDER BY  	NEWID()
get_recent_obc (Datasource=bookbrowse_com_new, Time=6ms, Records=4) in /root/website/queries/qry_get_active_obc.cfm @ 16:56:22.022
SELECT 		a.arc_forumidfk, a.discourse_flag, a.arc_promo_text,
				b.ezine_preview_number, b.ezine_preview_title, b.ezine_preview_subtitle, b.ezine_preview_jacket_image, b.ezine_preview_author, b.ezine_preview_jacket_desc, b.ezine_preview_publisher, ezine_preview_publish_dt, ezine_preview_number_of_pages,  ezine_preview_isbn, ezine_preview_short_summary,
	            b.ezine_preview_bb_author_link, ezine_preview_bb_link,
	            c.book_reading_guide
	
	FROM 		arcs a
	INNER JOIN 	ezine_previews b ON b.ezine_preview_number = a.ezine_preview_number
	LEFT JOIN  	books c on c.book_number = b.ezine_preview_bb_link
	
	WHERE a.arc_number IN (select top 4 arc_number
							from		arcs
							WHERE 		arc_obc_flag = 1
							AND			arc_active_flag = 0
							AND 		arc_closed_flag = 1
							AND 		getdate() > arc_off_ad_dt
							ORDER BY	arc_on_ad_dt DESC)
	ORDER BY  	NEWID()
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 16:56:22.022
select	a.book_number, a.book_title, a.book_sub_title, book_short_summary,
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
        left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0 
   		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1 
		
       	where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)

		order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1062

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/queries/qry_get_books_by_author_id_lite.cfm @ 16:56:22.022
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1062

get_all_books_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_all_books_by_author_id.cfm @ 16:56:22.022
select	a.book_number, 
        		'' AS ezine_preview_number,
                a.book_title, 
                a.book_sub_title, 
				(CASE WHEN f.edition_publish_dt < g.edition_publish_dt OR g.edition_publish_dt IS NULL THEN f.edition_publish_dt
                      ELSE g.edition_publish_dt 
                      END) "publish_dt",
                '' as "jacket"
		
        from 	books a
		inner join book_author_mapping e ON e.book_number = a.book_number
        inner join authors d ON d.author_number = e.author_number
		left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
		left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
		
        where 	d.author_number = ?
        and 	a.book_number IN (	select	distinct b.book_number 
        							from	categories a, category_book_mapping b 
                                    where 	a.category_number = b.category_number 
                                    and 	a.category_active_flag = 1)        
        UNION

		select	'' AS book_number,
        		ezine_preview_number, 
				ezine_preview_title AS "book_title", 
				ezine_preview_subtitle AS "book_sub_title",
                ezine_preview_publish_dt AS "publish_dt",
                ezine_preview_jacket_image as "jacket"
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		ezine_preview_bb_link < 1
        
        order by publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1062
Parameter #2(CF_SQL_INTEGER) = 1062

get_bb_briefs_by_author (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/queries/qry_get_bb_briefs_by_author.cfm @ 16:56:22.022
select	ezine_preview_number, 
				ezine_preview_title, 
				ezine_preview_subtitle,
                ezine_preview_publish_dt ,
                ezine_preview_jacket_image
		
        from 	ezine_previews
		
        where 	ezine_preview_bb_author_link = ?
        and		(ezine_preview_bb_link IS NULL
				 or ezine_preview_bb_link < 1)
        and		ezine_number > 0
        
		order by ezine_preview_publish_dt DESC
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1062

get_author_readalikes_by_id (Datasource=bookbrowse_com_new, Time=3ms, Records=9) in /root/website/queries/qry_get_author_readalikes_by_id.cfm @ 16:56:22.022
SELECT		a.author_number,
			CASE	WHEN datalength(a.author_middle_initial) > 0 
					THEN a.author_first_name + ' ' + a.author_middle_initial + ' ' + a.author_last_name
					ELSE a.author_first_name + ' ' + a.author_last_name
					END AS "author_full_name",
			b.book_number, 
			f.book_title as "book",

			CASE	WHEN datalength(e.author_middle_initial) > 0 
					THEN e.author_first_name + ' ' + e.author_middle_initial + ' ' + e.author_last_name
					ELSE e.author_first_name + ' ' + e.author_last_name
					END AS "liked_author_full_name",
			e.author_number as "liked_author_number", 
			g.book_title as "liked_book",
			c.liked_book_number as "liked_book_number" 

FROM		authors a
INNER JOIN	book_author_mapping b ON b.author_number = a.author_number
INNER JOIN	liked c ON c.book_number = b.book_number
INNER JOIN	book_author_mapping d ON d.book_number = c.liked_book_number
INNER JOIN	authors e ON e.author_number = d.author_number
INNER JOIN	books f on f.book_number = b.book_number
INNER JOIN	books g on g.book_number = c.liked_book_number

WHERE		a.author_number = ?

ORDER BY 	e.author_last_name, e.author_first_name
Query Parameter Value(s) -
Parameter #1(cf_sql_integer) = 1062

get_ads (Datasource=bookbrowse_com_new, Time=4ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 16:56:22.022
SELECT		a.adid,	adweight
	FROM		adsystem a
	INNER JOIN 	ad_category_mapping b ON b.adid = a.adid
	WHERE		a.section = ?
	AND			a.active  = 1
	AND 		a.start_date <= GETDATE()
	
	AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
            

	AND     (b.category_number IN (	SELECT	category_number
									FROM	category_book_mapping
									WHERE	book_number = ?)
      		OR 	b.category_number = ?)
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone2
Parameter #2(CF_SQL_VARCHAR) = 0
Parameter #3(CF_SQL_VARCHAR) = 0

get_ads (Datasource=bookbrowse_com_new, Time=3ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 16:56:22.022
SELECT	a.adid,	adweight
        FROM	adsystem a
        WHERE	a.section = ? 
        AND 	a.active  = 1 
        AND		a.start_date <= GETDATE()	
        
        AND (a.viewby LIKE '%n%' OR a.viewby = 'all')
        AND (select count(*) from ad_category_mapping where datalength(category_number) >= 1 and adid = a.adid) = 0
Query Parameter Value(s) -
Parameter #1(CF_SQL_VARCHAR) = adzone2

get_member_account_types (Datasource=bookbrowse_com_new, Time=2ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 16:56:22.022
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_book_image (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/actions/udfs.cfm @ 16:56:22.022
select 	f.edition_publish_dt "hardcover_publish_dt", f.edition_jacket_image "hardcover_jacket_image", 
            g.edition_publish_dt "paperback_publish_dt", g.edition_jacket_image "paperback_jacket_image"
    
    from   	books a
	left join editions f on a.book_number = f.book_number and f.edition_paperback_flag = 0
	left join editions g on a.book_number = g.book_number and g.edition_paperback_flag = 1
                    
    where 	a.book_number = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1478

get_member_account_types (Datasource=bookbrowse_com_new, Time=2ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 16:56:22.022
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_books_by_author_id (Datasource=bookbrowse_com_new, Time=7ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 16:56:22.022
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2388
Parameter #2(CF_SQL_INTEGER) = 2388
Parameter #3(CF_SQL_INTEGER) = 2388

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=3ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 16:56:22.022
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 2388

get_books_by_author_id (Datasource=bookbrowse_com_new, Time=14ms, Records=2) in /root/website/queries/qry_get_books_by_author_id.cfm @ 16:56:22.022
select	a.book_number, 
				a.book_title, 
				(CASE WHEN UPPER(LEFT(a.book_title, 2)) = 'A ' THEN SUBSTRING(a.book_title, 3, len(a.book_title) - 2) WHEN UPPER(LEFT(a.book_title, 3)) = 'AN ' THEN SUBSTRING(a.book_title, 4, len(a.book_title) - 3) WHEN UPPER(LEFT(a.book_title, 4)) = 'THE ' THEN SUBSTRING(a.book_title, 5, len(a.book_title) - 4) ELSE a.book_title END) "sort_book_title", 
				a.book_sub_title, 
				a.book_entry_dt, 
				a.book_short_summary, 
				a.book_jacket_info, 
                a.book_excerpt, 
                a.book_reading_guide,
				d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, 
				f.edition_publish_dt "hardcover_publish_dt", f.edition_number_of_pages "hardcover_number_of_pages", f.edition_isbn "hardcover_isbn", f.edition_isbn13 "hardcover_isbn13",f.edition_jacket_image "hardcover_jacket_image",
				g.edition_publish_dt "paperback_publish_dt", g.edition_number_of_pages "paperback_number_of_pages", g.edition_isbn "paperback_isbn", g.edition_isbn13 "paperback_isbn13",g.edition_jacket_image "paperback_jacket_image",
				i.author_info_biography, i.author_info_interview, i.author_info_image, i.author_info_url,
                (select count(c.book_number) as "author_bookcount" from book_author_mapping c where c.author_number = ?) + (select count(e.ezine_preview_number) as "author_bookcount" from ezine_previews e where e.ezine_preview_bb_author_link = ?) as "authorbookcount"
                
		    from books a
            inner join book_author_mapping e ON a.book_number = e.book_number
            inner join authors d ON e.author_number = d.author_number
            inner join author_info i ON d.author_number = i.author_number
            left outer join editions f ON a.book_number = f.book_number and f.edition_paperback_flag = 0
            left outer join editions g ON a.book_number = g.book_number and g.edition_paperback_flag = 1
                        
            where e.author_number = ?
            and a.book_number IN (select distinct b.book_number from categories a, category_book_mapping b where a.category_number = b.category_number and a.category_active_flag = 1)
			
            order by sort_book_title
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 955
Parameter #2(CF_SQL_INTEGER) = 955
Parameter #3(CF_SQL_INTEGER) = 955

get_author_by_author_id (Datasource=bookbrowse_com_new, Time=2ms, Records=1) in /root/website/queries/qry_get_books_by_author_id.cfm @ 16:56:22.022
select	d.author_number, d.author_first_name, d.author_middle_initial, d.author_last_name, d.author_pronunciation,
                CASE	WHEN datalength(d.author_middle_initial) > 0 
                        THEN d.author_first_name + ' ' + d.author_middle_initial + ' ' + d.author_last_name
                        ELSE d.author_first_name + ' ' + d.author_last_name
                        END AS "author_full_name",
				i.author_info_number, i.author_number, i.author_info_image, i.author_info_entry_dt,
                i.author_info_url, i.author_info_interview_summary, i.author_info_interview, i.author_info_biography, i.author_info_copyright_info
                		
        from 	authors d, author_info i
		
        where 	d.author_number = ?
        and 	d.author_number = i.author_number
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 955

get_member_account_types (Datasource=bookbrowse_com_new, Time=2ms, Records=2) in /root/website/queries/qry_get_member_account_types.cfm @ 16:56:22.022
select member_account_type_number, member_account_type_name, member_account_type_charge, member_account_type_charge_frequency, member_account_type_postscript, member_account_type_months, member_account_type_stripe_lookup_key
from member_account_types
where member_account_type_number = (select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 12
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
or member_account_type_number =		(select top 1 member_account_type_number
									from member_account_types
									where member_account_type_months = 3
									and member_account_type_public = 1
									order by member_account_type_charge ASC)
									
order by member_account_type_sort_order ASC
get_arcs_for_ad (Datasource=bookbrowse_com_new, Time=5ms, Records=0) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 16:56:22.022
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=5ms, Records=3) in /root/website/queries/qry_get_arcs_for_ad.cfm @ 16:56:22.022
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=5ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 16:56:22.022
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=3ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 16:56:22.022
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 @ 16:56:22.022
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 1112

get_quotes (Datasource=bookbrowse_com_new, Time=9ms, Records=1) in /root/website/site/blocks/dsp_book_giveaway.cfm @ 16:56:23.023
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 @ 16:56:23.023
SELECT 	*
    FROM 	free_newsletters
get_ads (Datasource=bookbrowse_com_new, Time=6ms, Records=0) in /root/website/adsystem/adsystem_mod.cfm @ 16:56:23.023
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=2ms, Records=1) in /root/website/adsystem/adsystem_mod.cfm @ 16:56:23.023
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 @ 16:56:23.023
SELECT	a.start_date, a.adid, a.end_date, a.camp_views, a.image_name, a.alt_text, a.views, a.code, a.adsize
        FROM	adsystem a
        WHERE	a.adid = ?
Query Parameter Value(s) -
Parameter #1(CF_SQL_INTEGER) = 594


Scope Variables

CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=/root/website/author_interviews/full/index.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=*/*
HTTP_ACCEPT_ENCODING=gzip, br, zstd, deflate
HTTP_ACCEPT_LANGUAGE=
HTTP_CONNECTION=upgrade
HTTP_COOKIE=
HTTP_HOST=dev.bookbrowse.com
HTTP_REFERER=
HTTP_URL=
HTTP_USER_AGENT=Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
LOCAL_ADDR=127.0.0.1
PATH_INFO=/author_number/1062/author/jack-turner
PATH_TRANSLATED=/root/website/author_interviews/full/index.cfm
QUERY_STRING=
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/author_interviews/full/index.cfm
SERVER_NAME=dev.bookbrowse.com
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Client Variables:
cfid=4108519
cftoken=1b3094140441c57c-29267552-016C-E5A9-A87A387F00F83518
hitcount=1
lastvisit={ts '2026-06-01 16:56:22'}
library_user_flag=0
member_active_flag=0
member_logged_in_flag=0
member_number=0
order=p
timecreated={ts '2026-06-01 16:56:22'}
urltoken=CFID=4108519&CFTOKEN=1b3094140441c57c-29267552-016C-E5A9-A87A387F00F83518
view=books
Cookie Variables:
CFID=4108519
CFTOKEN=1b3094140441c57c-29267552-016C-E5A9-A87A387F00F83518
Session Variables:
cfid=4108519
cftoken=1b3094140441c57c-29267552-016C-E5A9-A87A387F00F83518
sessionid=BOOKBROWSE_4108519_1b3094140441c57c-29267552-016C-E5A9-A87A387F00F83518
urltoken=CFID=4108519&CFTOKEN=1b3094140441c57c-29267552-016C-E5A9-A87A387F00F83518
URL Parameters:
author=jack-turner
author_number=1062
Debug Rendering Time: 9 ms