Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x | const util = require('util'); const _ = require('lodash'); const debug = require('debug')('express-cassandra'); const UdaBuilder = function f(client) { this._client = client; }; UdaBuilder.prototype = { validate_definition(aggregateName, aggregateDefinition) { Iif (!aggregateDefinition.input_types) { throw (new Error(util.format('No input_types defined for user defined function: %s', aggregateName))); } Iif (!_.isArray(aggregateDefinition.input_types)) { throw (new Error(util.format('input_types must be an array for user defined function: %s', aggregateName))); } Iif (aggregateDefinition.input_types.length < 1) { throw (new Error(util.format('input_types array cannot be blank for user defined function: %s', aggregateName))); } Iif (!aggregateDefinition.sfunc) { throw (new Error(util.format('No sfunc defined for user defined aggregate: %s', aggregateName))); } Iif (!aggregateDefinition.stype) { throw (new Error(util.format('No stype defined for user defined aggregate: %s', aggregateName))); } }, create_uda(aggregateName, aggregateDefinition, callback) { let query = util.format( 'CREATE OR REPLACE AGGREGATE %s (%s) SFUNC %s STYPE %s', aggregateName, aggregateDefinition.input_types.toString(), aggregateDefinition.sfunc, aggregateDefinition.stype, ); if (aggregateDefinition.finalfunc) query += util.format(' FINALFUNC %s', aggregateDefinition.finalfunc); query += util.format(' INITCOND %s;', aggregateDefinition.initcond); debug('executing query: %s', query); this._client.execute(query, (err) => { callback(err); }); }, get_uda(aggregateName, keyspaceName, callback) { const query = util.format( "SELECT * FROM system_schema.aggregates WHERE keyspace_name = '%s' AND aggregate_name = '%s';", keyspaceName, aggregateName.toLowerCase(), ); debug('executing query: %s', query); this._client.execute(query, (err, result) => { Iif (err) { callback(err); return; } Eif (result.rows && result.rows.length > 0) { callback(null, result.rows); return; } callback(); }); }, }; module.exports = UdaBuilder; |