diff --git a/packages/engines/mysql/MySqlDumper.js b/packages/engines/mysql/MySqlDumper.js index 4dc3d71d3..9464a2acc 100644 --- a/packages/engines/mysql/MySqlDumper.js +++ b/packages/engines/mysql/MySqlDumper.js @@ -1,5 +1,30 @@ const SqlDumper = require('../default/SqlDumper'); -class MySqlDumper extends SqlDumper {} +class MySqlDumper extends SqlDumper { + /** @param type {import('@dbgate/types').TransformType} */ + transform(type, dumpExpr) { + switch (type) { + case 'GROUP:YEAR': + case 'YEAR': + this.put('^year(%c)', dumpExpr); + break; + case 'MONTH': + this.put('^month(%c)', dumpExpr); + break; + case 'DAY': + this.put('^day(%c)', dumpExpr); + break; + case 'GROUP:MONTH': + this.put("^date_format(%c, '%s')", dumpExpr, '%Y-%m'); + break; + case 'GROUP:DAY': + this.put("^date_format(%c, '%s')", dumpExpr, '%Y-%m-%d'); + break; + default: + dumpExpr(); + break; + } + } +} module.exports = MySqlDumper; diff --git a/packages/engines/postgres/PostgreDumper.js b/packages/engines/postgres/PostgreDumper.js index 150595346..9809b621a 100644 --- a/packages/engines/postgres/PostgreDumper.js +++ b/packages/engines/postgres/PostgreDumper.js @@ -1,5 +1,30 @@ const SqlDumper = require('../default/SqlDumper'); -class PostgreDumper extends SqlDumper {} +class PostgreDumper extends SqlDumper { + /** @param type {import('@dbgate/types').TransformType} */ + transform(type, dumpExpr) { + switch (type) { + case 'GROUP:YEAR': + case 'YEAR': + this.put('^extract(^year ^from %c)', dumpExpr); + break; + case 'MONTH': + this.put('^extract(^month ^from %c)', dumpExpr); + break; + case 'DAY': + this.put('^extract(^day ^from %c)', dumpExpr); + break; + case 'GROUP:MONTH': + this.put("^to_char(%c, '%s')", dumpExpr, 'YYYY-MM'); + break; + case 'GROUP:DAY': + this.put("^to_char(%c, '%s')", dumpExpr, 'YYYY-MM-DD'); + break; + default: + dumpExpr(); + break; + } + } +} module.exports = PostgreDumper; diff --git a/packages/web/src/datagrid/DataGridRow.js b/packages/web/src/datagrid/DataGridRow.js index 1bceeabb8..9613bdea7 100644 --- a/packages/web/src/datagrid/DataGridRow.js +++ b/packages/web/src/datagrid/DataGridRow.js @@ -142,7 +142,12 @@ function CellFormattedValue({ value }) { if (_.isDate(value)) return moment(value).format('YYYY-MM-DD HH:mm:ss'); if (value === true) return '1'; if (value === false) return '0'; - if (_.isNumber(value)) return value.toLocaleString(); + if (_.isNumber(value)) { + if (value >= 10000 || value <= -10000) { + return value.toLocaleString(); + } + return value.toString(); + } if (_.isString(value)) { if (dateTimeRegex.test(value)) return moment(value).format('YYYY-MM-DD HH:mm:ss'); return highlightSpecialCharacters(value);