addCustomMethods = () => {
let isNumeric = (x) => !Array.isArray(x) && x - parseFloat(x) + 1 >= 0
aq.addFunction('is_numeric', isNumeric, {override: true})
aq.addTableMethod('distinctArray', (table, columnName) =>
table.rollup({ values: op.array_agg_distinct(columnName) }).get('values', 0),
{override: true}
)
aq.addTableMethod('normalizeColumns', (table, options = {lower: true}) =>
table.select( table.columnNames().map(d => ({[d]: normalize_column_name(d, options)})) ),
{override: true}
)
return aq
}