title: "Bad double value" from Google BigQuery even after filtering out NULL safe_cast
body: <p>When I run the following query (note that it includes a <code>safe_cast</code> check):</p>
  
  <pre><code>    SELECT
      someField
      FROM some_table
      WHERE someField IS NOT NULL 
      AND safe_cast(someField AS FLOAT64) IS NOT NULL 
      AND CAST(someField AS FLOAT64) &gt; 200.0
      LIMIT 10
  </code></pre>
  
  <p>I get the following result:</p>
  
  <pre><code>400 Bad Request
  {
    "code" : 400,
    "errors" : [ {
      "domain" : "global",
      "location" : "query",
      "locationType" : "other",
      "message" : "Bad double value: ; while executing the filter on column 'someField'; File: ':mdb=cloud-dataengine'",
      "reason" : "invalidQuery"
    } ],
    "message" : "Bad double value: ; while executing the filter on column 'someField'; File: ':mdb=cloud-dataengine'"
  }
  </code></pre>
  
  <p>Shouldn't the <code>safe_cast(someField AS FLOAT64) IS NOT NULL</code> have filtered out values that cannot be cast to FLOAT64?  How can I avoid the "bad double value" if not with a safe_cast?</p>
  
  <p>If I remove <code>AND CAST(someField AS FLOAT64) &gt; 200.0</code> from the query, I get no complaints, so it must be this comparison that is causing the error... but I don't understand why safe_cast would not have filtered it out.</p>