datetime-diff function for MongoDB (#27042)
* Fix mongo version checking for now * Add minor versions for comparison * Handle nil case * newline * Replace _ * Use dbms-version semantic-version instead * Compare only the major and minor version * Fix mongo database-supports? * Fix duplicate require * Fix typo * Remove expressions from version check * Fix various mongo expressions `trim`, `rtrim`, `ltrim` needed to be wrapped in `{"input" expr}` object `replace` needed to be wrapped in `{"input" expr "find" ... "replacement" ...}' object `substring` needed to fill in the 3rd argument, optional in mbql but required in mongo. Also to use a 1 based index * Generalize semantic-version-gte * Used synced dbms_version for testing feature support * Expressions are only supported by mongo 4.2+ * Disable some tests * Fix mongo division Handle nulls with an upfront condition check. Handle multiple divisors. * Remove unused namespace * Throw exeception if using replace on mongo < 4.4 * Skip test because of #27249 * Move minimum Mongo CI version to 4.2 * Fix sorting by expressions $sort needs to come before $project otherwise we can only see the projected fields, however expressions are only added in $project. So now if a sort includes an expression, we will use $addFields to be able to sort by that expression. * Disable tests for expressions inside aggregations To be addressed by #27275 * Handle aggregation nested in an expression * Remove :truncation-start workaround * Enable tests for expressions inside aggregations * Fix datetime-math-tests * Make sure dbms_version is included when fetching database for store * Update doc for replace to indicate it should replace all occurrences * Add mongo datetime-diff * Fix database-supports? * Fix order-by-test * Handle embedded special aggregations (#27315) * Handle embedded special aggregations * Preserve aggregation options for nested aggregations * Use top-level aggregation name as group name * Disable nil punning on semantic version check (#27317) * Remove nil punning from database-supports? * Formatting * Refactor based on Tamas' suggestions * Change datetime-diff from case statement to multimethod Co-authored-by:Case Nelson <case@metabase.com> Co-authored-by:
Tamás Benkő <tamas@metabase.com> Co-authored-by:
metamben <103100869+metamben@users.noreply.github.com>
Please register or sign in to comment