diff options
author | jakefeasel <jfeasel@gmail.com> | 2015-05-04 16:14:39 -0700 |
---|---|---|
committer | jakefeasel <jfeasel@gmail.com> | 2015-05-04 16:14:39 -0700 |
commit | 3f2624bd2dbdc06c14df15c65746a80341de58b9 (patch) | |
tree | 7d0995d6b0abcdd1b0180c8fc6fa4cfa19ff3334 /src | |
parent | f0729a9aa42299356a95cda61fae2bb8bad5e22c (diff) | |
download | sqlfiddle2-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.sql | 4 | ||||
-rw-r--r-- | src/main/resources/script/createSchema.groovy | 28 | ||||
-rw-r--r-- | src/main/resources/tools/fiddles/CreateScript.groovy | 14 |
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) { |