Parse and rethrow gviz datasource errors.
diff --git a/render.js b/render.js
index 8debfe8..918324d 100644
--- a/render.js
+++ b/render.js
@@ -783,6 +783,20 @@
 
 function gridFromData(gotdata) {
   var headers, data, types;
+
+  var err;
+  if (gotdata.errors && gotdata.errors.length) {
+    err = gotdata.errors[0];
+  } else if (gotdata.error) {
+    err = gotdata.error;
+  }
+  if (err) {
+    var msglist = [];
+    if (err.message) msglist.push(err.message);
+    if (err.detailed_message) msglist.push(err.detailed_message);
+    throw new Error('Data provider returned an error: ' + msglist.join(': '));
+  }
+
   if (gotdata.table) {
     // gviz format
     headers = [];