mirror of https://github.com/nocodb/nocodb
Pranav C
2 years ago
committed by
Pranav C
2 changed files with 65 additions and 0 deletions
@ -0,0 +1,61 @@
|
||||
import commonFns from './commonFns'; |
||||
import { MapFnArgs } from '../mapFunctionName'; |
||||
|
||||
const pg = { |
||||
...commonFns, |
||||
LEN: 'LENGTH', |
||||
MIN: 'LEAST', |
||||
MAX: 'GREATEST', |
||||
CEILING: 'CEIL', |
||||
POWER: 'POWER', |
||||
SQRT: 'SQRT', |
||||
SEARCH: 'INSTR', |
||||
NOW: (args: MapFnArgs) => { |
||||
return args.knex.raw(`CURRENT_DATE${args.colAlias}`); |
||||
}, |
||||
REPEAT: (args: MapFnArgs) => { |
||||
const arg1 = args.fn(args.pt.arguments[0]); |
||||
const arg2 = args.fn(args.pt.arguments[1]); |
||||
return args.knex.raw( |
||||
`RPAD(${arg1}, ${arg2}*LENGTH(${arg1}), ${arg1})${args.colAlias}` |
||||
); |
||||
}, |
||||
// INT(args: MapFnArgs) {
|
||||
// // todo: correction
|
||||
// return args.knex.raw(
|
||||
// `REGEXP_REPLACE(COALESCE(${args.fn(
|
||||
// args.pt.arguments[0]
|
||||
// )}::character varying, '0'), '[^0-9]+|\\.[0-9]+' ,'')${args.colAlias}`
|
||||
// );
|
||||
// },
|
||||
// MID: 'SUBSTR',
|
||||
// FLOAT: ({ fn, knex, pt, colAlias }: MapFnArgs) => {
|
||||
// return knex
|
||||
// .raw(`CAST(${fn(pt.arguments[0])} as DOUBLE PRECISION)${colAlias}`)
|
||||
// .wrap('(', ')');
|
||||
// },
|
||||
// DATEADD: ({ fn, knex, pt, colAlias }: MapFnArgs) => {
|
||||
// return knex.raw(
|
||||
// `${fn(pt.arguments[0])} + (${fn(pt.arguments[1])} ||
|
||||
// '${String(fn(pt.arguments[2])).replace(
|
||||
// /["']/g,
|
||||
// ''
|
||||
// )}')::interval${colAlias}`
|
||||
// );
|
||||
// },
|
||||
// WEEKDAY: ({ fn, knex, pt, colAlias }: MapFnArgs) => {
|
||||
// // isodow: the day of the week as Monday (1) to Sunday (7)
|
||||
// // WEEKDAY() returns an index from 0 to 6 for Monday to Sunday
|
||||
// return knex.raw(
|
||||
// `(EXTRACT(ISODOW FROM ${
|
||||
// pt.arguments[0].type === 'Literal'
|
||||
// ? `date '${dayjs(fn(pt.arguments[0])).format('YYYY-MM-DD')}'`
|
||||
// : fn(pt.arguments[0])
|
||||
// }) - 1 - ${getWeekdayByText(
|
||||
// pt?.arguments[1]?.value
|
||||
// )} % 7 + 7) ::INTEGER % 7 ${colAlias}`
|
||||
// );
|
||||
// },
|
||||
}; |
||||
|
||||
export default pg; |
Loading…
Reference in new issue