The Codeless Code: Case 171 Initial Conditions ====== The nun Hwídah was summoned to the offices of master Banzen. She found the master waiting with his apprentice Djishin in attendance. Banzen said, “A happy day for you, little nun! Since you take such pleasure in learning hidden truths and seeing guilty parties corrected, I have an entertaining task for you.” “I serve at the pleasure of the Temple, not my own,” Hwídah replied with a dutiful bow. But her stomach was already clenched; for no doubt this was the start of her punishment for trespassing on forbidden Temple ground. “An infrequent but stubborn error has plagued the Elephant's Footprint Clan for some time now,” said the master as he handed the nun a printout. “Our database logs show this malformed SQL query, yet a thorough search of our code base reveals no such query anywhere. Find the source. I give you one week.” Hwídah studied the paper. “A few minutes should suffice. May I borrow the master’s terminal?” Banzen’s eyebrows shot up. He exchanged glances with his apprentice, then slid his laptop toward the nun. Hwídah consulted the printout, typed something, scrutinized the screen, consulted the printout again, and so on several times over. “There,” she said finally, turning the screen around. The cursor was indeed hovering over a SQL fragment with a missing right parenthesis. “If I return to my workstation, I can trace this code to its consumers and reproduce the error seen in the logs. Then we may repair the defect with confidence.” “Go,” said Banzen to Hwídah. To his apprentice he said: “Observe.” As the pair walked to Hwídah’s cubicle, Djishin whispered, “The speed of your diagnosis was surprising.” “A simple matter,” said Hwídah, handing the printout to the monk. “The malformed query begins with WHERE 1=1. That has the stink of dynamically-generated SQL—for although the initial condition is trivial, its TRUE value allows a developer to append any number of real conditions as simple AND clauses. I have used this technique myself when implementing search forms with optional fields. Once I recognized it, I merely searched our code for the individual AND clauses.” “You misunderstand me,” said Djishin. “I was not surprised that you were able to solve it immediately; I was surprised that you did so despite being given a full week. That has the stink of ambition—for although this initial problem was trivial, your ready truthfulness now allows my master to entrust you with any number of real problems.” Hwídah sighed. “It is just as well. If I had pretended that this problem was difficult enough to merit days of effort, Banzen would have thought me either deceitful or incompetent. Neither would sit well with me. That is what he truly wished to discover.” Djishin nodded. “Sometimes a test serves a purpose because the answer is so obvious.”