|
160 | 160 | (defn- num-to-interval [unit amount] |
161 | 161 | (hsql/raw (format "INTERVAL '%d' %s" (int (Math/abs amount)) (name unit)))) |
162 | 162 |
|
163 | | -(defmethod driver/date-add :teradata [_ dt amount unit] |
| 163 | +(defmethod sql.qp/add-interval-honeysql-form :teradata [_ hsql-form amount unit] |
164 | 164 | (let [op (if (>= amount 0) hx/+ hx/-)] |
165 | 165 | (op (if |
166 | 166 | (= unit :month) |
167 | | - (date-trunc :month dt) |
168 | | - (hx/->timestamp dt)) |
| 167 | + (date-trunc :month hsql-form) |
| 168 | + (hx/->timestamp hsql-form)) |
169 | 169 | (case unit |
170 | 170 | :second (num-to-interval :second amount) |
171 | 171 | :minute (num-to-interval :minute amount) |
|
176 | 176 | :quarter (num-to-interval :month (* amount 3)) |
177 | 177 | :year (num-to-interval :year amount))))) |
178 | 178 |
|
179 | | -(defmethod sql.qp/unix-timestamp->timestamp [:teradata :seconds] [_ _ field-or-value] |
| 179 | +(defmethod sql.qp/unix-timestamp->honeysql [:teradata :seconds] [_ _ field-or-value] |
180 | 180 | (hsql/call :to_timestamp field-or-value)) |
181 | 181 |
|
182 | | -(defmethod sql.qp/unix-timestamp->timestamp [:teradata :milliseconds] [_ _ field-or-value] |
183 | | - (sql.qp/unix-timestamp->timestamp (hx// field-or-value 1000) :seconds)) |
| 182 | +(defmethod sql.qp/unix-timestamp->honeysql [:teradata :milliseconds] [_ _ field-or-value] |
| 183 | + (sql.qp/unix-timestamp->honeysql (hx// field-or-value 1000) :seconds)) |
184 | 184 |
|
185 | 185 | (defmethod sql.qp/apply-top-level-clause [:teradata :limit] [_ _ honeysql-form {value :limit}] |
186 | 186 | (update (assoc honeysql-form :modifiers [(format "TOP %d" value)]) :select deduplicateutil/deduplicate-identifiers)) |
|
292 | 292 | [driver query context respond] |
293 | 293 | ((get-method driver/execute-reducible-query :sql-jdbc) driver (cleanup-query query) context respond)) |
294 | 294 |
|
295 | | -(defmethod sql.qp/current-datetime-fn :teradata [_] now) |
| 295 | +(defmethod sql.qp/current-datetime-honeysql-form :teradata [_] now) |
296 | 296 |
|
297 | 297 | ; TODO check if overriding apply-top-level-clause could make nested queries work |
298 | 298 | (defmethod driver/supports? [:teradata :nested-queries] [_ _] false) |
0 commit comments