summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjakefeasel <jfeasel@gmail.com>2015-05-04 16:14:39 -0700
committerjakefeasel <jfeasel@gmail.com>2015-05-04 16:14:39 -0700
commit3f2624bd2dbdc06c14df15c65746a80341de58b9 (patch)
tree7d0995d6b0abcdd1b0180c8fc6fa4cfa19ff3334 /src
parentf0729a9aa42299356a95cda61fae2bb8bad5e22c (diff)
downloadsqlfiddle2-3f2624bd2dbdc06c14df15c65746a80341de58b9.zip
sqlfiddle2-3f2624bd2dbdc06c14df15c65746a80341de58b9.tar.gz
sqlfiddle2-3f2624bd2dbdc06c14df15c65746a80341de58b9.tar.bz2
Simplifies and corrects some broken logic with statement separators. Need to do some data cleanup in the backend now.
Diffstat (limited to 'src')
-rw-r--r--src/main/resources/db/sqlfiddle/schema.sql4
-rw-r--r--src/main/resources/script/createSchema.groovy28
-rw-r--r--src/main/resources/tools/fiddles/CreateScript.groovy14
3 files changed, 20 insertions, 26 deletions
diff --git a/src/main/resources/db/sqlfiddle/schema.sql b/src/main/resources/db/sqlfiddle/schema.sql
index c0445d0..cfb31c7 100644
--- a/src/main/resources/db/sqlfiddle/schema.sql
+++ b/src/main/resources/db/sqlfiddle/schema.sql
@@ -380,14 +380,14 @@ CREATE INDEX query_author ON queries USING btree (author_id);
-- Name: query_md5s; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--
-CREATE UNIQUE INDEX query_md5s ON queries USING btree (md5, schema_def_id);
+CREATE INDEX query_md5s ON queries USING btree (md5, schema_def_id);
--
-- Name: schema_md5s; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--
-CREATE UNIQUE INDEX schema_md5s ON schema_defs USING btree (md5, db_type_id);
+CREATE INDEX schema_md5s ON schema_defs USING btree (md5, db_type_id);
--
diff --git a/src/main/resources/script/createSchema.groovy b/src/main/resources/script/createSchema.groovy
index 86a50f1..4058ac4 100644
--- a/src/main/resources/script/createSchema.groovy
+++ b/src/main/resources/script/createSchema.groovy
@@ -58,27 +58,25 @@ try {
def schema_def
def md5hash
- if (content.statement_separator != ";") {
- md5hash = new BigInteger(
- 1, digest.digest( content.ddl.getBytes() )
- ).toString(16).padLeft(32,"0")
- } else {
- md5hash = new BigInteger(
- 1, digest.digest( (content.statement_separator + content.ddl).getBytes() )
- ).toString(16).padLeft(32,"0")
- }
+ md5hash = new BigInteger(
+ 1, digest.digest( (content.statement_separator + content.ddl).getBytes() )
+ ).toString(16).padLeft(32,"0")
if (!content.statement_separator) {
content.statement_separator = ";"
}
- existing_schema = openidm.query("system/fiddles/schema_defs", [
- "_queryFilter": 'md5 eq "'+md5hash+'" and db_type_id eq "'+content.db_type_id+'"'
- ]).result
-
- assert existing_schema.size() < 2
+ if (content.short_code) {
+ existing_schema = openidm.query("system/fiddles/schema_defs", [
+ "_queryFilter": 'short_code eq "'+content.short_code+'" and md5 eq "'+md5hash+'" and db_type_id eq "'+content.db_type_id+'"'
+ ]).result
+ } else {
+ existing_schema = openidm.query("system/fiddles/schema_defs", [
+ "_queryFilter": 'md5 eq "'+md5hash+'" and db_type_id eq "'+content.db_type_id+'"'
+ ]).result
+ }
- if (existing_schema.size() == 1) {
+ if (existing_schema.size() > 0) {
schema_def = existing_schema[0]
} else {
diff --git a/src/main/resources/tools/fiddles/CreateScript.groovy b/src/main/resources/tools/fiddles/CreateScript.groovy
index a3705e3..c419aaf 100644
--- a/src/main/resources/tools/fiddles/CreateScript.groovy
+++ b/src/main/resources/tools/fiddles/CreateScript.groovy
@@ -102,15 +102,9 @@ switch ( objectClass.objectClassValue ) {
def md5hash
- if (statement_separator != ";") {
- md5hash = new BigInteger(
- 1, digest.digest( sql_query.getBytes() )
- ).toString(16).padLeft(32,"0")
- } else {
- md5hash = new BigInteger(
- 1, digest.digest( (statement_separator + sql_query).getBytes() )
- ).toString(16).padLeft(32,"0")
- }
+ md5hash = new BigInteger(
+ 1, digest.digest( (statement_separator + sql_query).getBytes() )
+ ).toString(16).padLeft(32,"0")
def existing_query = sql.firstRow("""
SELECT
@@ -124,6 +118,8 @@ switch ( objectClass.objectClassValue ) {
q.md5 = ?
WHERE
s.id = ?
+ ORDER BY
+ q.id
""", [md5hash, schema_def_id])
if (!existing_query.queryId) {