summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjakefeasel <jfeasel@gmail.com>2013-03-02 07:17:33 -0800
committerjakefeasel <jfeasel@gmail.com>2013-03-02 07:17:33 -0800
commit900174b688c168fddb2137e0317ddea053a1b0f1 (patch)
tree0f55dee7f24301155966c47a85f39b1673e16f7d
parent6a7ab6c229729c450dd398c3c4411797961f8ef8 (diff)
downloadsqlfiddle-900174b688c168fddb2137e0317ddea053a1b0f1.zip
sqlfiddle-900174b688c168fddb2137e0317ddea053a1b0f1.tar.gz
sqlfiddle-900174b688c168fddb2137e0317ddea053a1b0f1.tar.bz2
Fixing error message display for big query statements
-rw-r--r--src/main/webapp/controllers/Fiddles.cfc93
1 files changed, 51 insertions, 42 deletions
diff --git a/src/main/webapp/controllers/Fiddles.cfc b/src/main/webapp/controllers/Fiddles.cfc
index 83cbf7c..66ba721 100644
--- a/src/main/webapp/controllers/Fiddles.cfc
+++ b/src/main/webapp/controllers/Fiddles.cfc
@@ -105,55 +105,64 @@ component extends="Controller" {
}
function runQuery() {
-
- if (Len(params.sql) GT 8000)
- throw ("Your sql is too large (more than 8000 characters). Please submit a smaller SQL statement.");
-
- var schema_def = model("Schema_Def").findOne(where="db_type_id=#params.db_type_id# AND short_code='#params.schema_short_code#'");
-
- if (params.statement_separator IS NOT ";") // necessary to preserve older fiddles
- var md5 = Lcase(hash(params.statement_separator & params.sql, "MD5"));
- else
- var md5 = Lcase(hash(params.sql, "MD5"));
-
-
- if (! IsObject(schema_def))
- {
- throw("Schema short code provided was not recognized.");
- }
-
- if (! IsNumeric(schema_def.current_host_id))
- {
- schema_def.initialize();
- }
-
- query = model("Query").findOne(where="md5 = '#md5#' AND schema_def_id = #schema_def.id#", include="Schema_Def");
-
- if (! IsObject(query))
+ try
{
- nextQueryID = model("Query").findAll(select="count(*) + 1 AS nextID", where="schema_def_id = #schema_def.id#").nextID;
- query = model("Query").new();
- query.schema_def_id = schema_def.id;
- query.sql = params.sql;
- query.statement_separator = params.statement_separator;
- query.md5 = md5;
- query.id = nextQueryID;
+
+ if (Len(params.sql) GT 8000)
+ throw ("Your sql is too large (more than 8000 characters). Please submit a smaller SQL statement.");
+
+ var schema_def = model("Schema_Def").findOne(where="db_type_id=#params.db_type_id# AND short_code='#params.schema_short_code#'");
- if (StructKeyExists(session, "user"))
+ if (params.statement_separator IS NOT ";") // necessary to preserve older fiddles
+ var md5 = Lcase(hash(params.statement_separator & params.sql, "MD5"));
+ else
+ var md5 = Lcase(hash(params.sql, "MD5"));
+
+
+ if (! IsObject(schema_def))
{
- query.author_id = session.user.id;
+ throw("Schema short code provided was not recognized.");
}
- query.save();
- }
-
- model("User_Fiddle").logAccess(schema_def_id=schema_def.id,query_id=query.id);
-
- returnVal = {id = query.id};
- StructAppend(returnVal, query.executeSQL());
+ if (! IsNumeric(schema_def.current_host_id))
+ {
+ schema_def.initialize();
+ }
+
+ query = model("Query").findOne(where="md5 = '#md5#' AND schema_def_id = #schema_def.id#", include="Schema_Def");
+
+ if (! IsObject(query))
+ {
+ nextQueryID = model("Query").findAll(select="count(*) + 1 AS nextID", where="schema_def_id = #schema_def.id#").nextID;
+ query = model("Query").new();
+ query.schema_def_id = schema_def.id;
+ query.sql = params.sql;
+ query.statement_separator = params.statement_separator;
+ query.md5 = md5;
+ query.id = nextQueryID;
+
+ if (StructKeyExists(session, "user"))
+ {
+ query.author_id = session.user.id;
+ }
+
+ query.save();
+ }
+
+ model("User_Fiddle").logAccess(schema_def_id=schema_def.id,query_id=query.id);
+
+ returnVal = {id = query.id};
+ StructAppend(returnVal, query.executeSQL());
+
+
+ renderText(SerializeJSON(returnVal));
+ }
+ catch (Any e)
+ {
+ renderText(SerializeJSON({"error" = e.message}));
+ }
- renderText(SerializeJSON(returnVal));
}