From 5ff1fed57819bcb2fb38be2b0072de2bb03d4ae5 Mon Sep 17 00:00:00 2001 From: "Alexander K. Hudek" Date: Tue, 23 Dec 2014 20:04:11 -0500 Subject: [PATCH] Add missing operators to list and add more error handling. --- project.clj | 2 +- src/views/db/deltas.clj | 13 +++++++++---- src/views/db/honeysql.clj | 4 +++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/project.clj b/project.clj index 22b6f1c..85fe34e 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject views "0.4.8" +(defproject views "0.4.9" :description "You underestimate the power of the SQL side" :url "https://github.com/diligenceengine/views" diff --git a/src/views/db/deltas.clj b/src/views/db/deltas.clj index f386eed..ec5aa6d 100644 --- a/src/views/db/deltas.clj +++ b/src/views/db/deltas.clj @@ -85,10 +85,15 @@ (defn- calculate-delete-deltas [db view-map] - (->> (:delete-deltas-map view-map) - hsql/format - (j/query db) - (assoc view-map :delete-deltas))) + (try + (->> (:delete-deltas-map view-map) + hsql/format + (j/query db) + (assoc view-map :delete-deltas)) + (catch Exception e + (error "computing delete deltas for" view-map) + (log-exception e) + (throw e)))) (defn compute-delete-deltas-for-insert "Computes and returns a sequence of delete deltas for a single view and insert." diff --git a/src/views/db/honeysql.clj b/src/views/db/honeysql.clj index a9746ee..686572e 100644 --- a/src/views/db/honeysql.clj +++ b/src/views/db/honeysql.clj @@ -7,8 +7,10 @@ (def table-clauses [:from :insert-into :update :delete-from :join :left-join :right-join]) +;; This list doesn't support custom operators. Is there something else we can do? (def pred-ops - #{:= :< :> :<> :>= :<= :in :between :match :ltree-match :and :or :not=}) + #{:= :< :> :<> :>= :<= :in :between :match :ltree-match :and :or :not= :like :xor :regexp :not-in :not-like + :!= :is :is-not}) (defn process-complex-clause [tables clause]