<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Line Reduction on Selectivity.net</title>
    <link>https://selectivity.net/tags/line-reduction/</link>
    <description>Recent content in Line Reduction on Selectivity.net</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 24 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://selectivity.net/tags/line-reduction/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Selectivity Finds the Two CSV Records Behind a Calculation Bug</title>
      <link>https://selectivity.net/selectivity-finds-the-two-csv-records-behind-a-calculation-bug/</link>
      <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://selectivity.net/selectivity-finds-the-two-csv-records-behind-a-calculation-bug/</guid>
      <description>&lt;p&gt;A CSV importer can be wrong for a reason that disappears when a developer tests one record at a time. The example here needs a sequence: a discount for an order, followed later by a refund for that same order. A deliberately faulty importer deducts the refund twice when it has already seen a discount. A reference implementation deducts it once. The predicate compares the two results and asks Selectivity to preserve their disagreement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Selectivity Isolates Numeric Precision Loss in JSON Lines</title>
      <link>https://selectivity.net/selectivity-isolates-numeric-precision-loss-in-json-lines/</link>
      <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://selectivity.net/selectivity-isolates-numeric-precision-loss-in-json-lines/</guid>
      <description>&lt;p&gt;An input can be perfectly valid and still expose a disagreement between two consumers. In this example, one path keeps an integer identifier exactly as parsed. The other deliberately sends the identifier through a floating-point conversion before turning it back into an integer. Most of the generated JSON Lines records produce the same answer. One does not: 9007199254740993 becomes 9007199254740992 in the lossy path.&lt;/p&gt;&#xA;&lt;p&gt;Selectivity starts with 150 independently valid records totaling 4144 bytes. The predicate parses every remaining line, checks its schema, then compares the exact identifier sequence with the lossy sequence. In one run of Selectivity 0.1.1 on Linux x86_64 with Python 3.12.14, the result is one 41-byte record. The reducer makes 36 predicate executions across 12 candidate checks, with three observations per candidate and a five-second timeout. There are no unresolved checks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Selectivity Reduces a Generated File From 20000 Lines to Two</title>
      <link>https://selectivity.net/selectivity-reduces-a-generated-file-from-20000-lines-to-two/</link>
      <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://selectivity.net/selectivity-reduces-a-generated-file-from-20000-lines-to-two/</guid>
      <description>&lt;p&gt;The line-reduction demonstration starts with a deliberately oversized text file whose answer is known in advance. It has 20000 lines: alpha appears on line 702, omega on line 17891, and every other line contains an irrelevant row label. The predicate succeeds only when both trigger lines are present. This makes a useful check of the reducer, because a result that loses either trigger is wrong and a result that keeps unnecessary lines is visibly unfinished.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
