2016-09-26 09:28:47 +00:00
|
|
|
|
|
|
|
var Expr = require ('./expr');
|
2022-05-30 01:30:33 +00:00
|
|
|
var ListHolder = require ('./list-holder');
|
2016-09-26 09:28:47 +00:00
|
|
|
|
2015-01-23 13:09:30 +00:00
|
|
|
/**
|
|
|
|
* The equivalent of a SQL function.
|
2022-05-26 06:08:31 +00:00
|
|
|
*/
|
2016-09-26 09:28:47 +00:00
|
|
|
module.exports = new Class
|
2015-01-23 13:09:30 +00:00
|
|
|
({
|
2016-09-26 09:28:47 +00:00
|
|
|
Extends: Expr
|
2022-05-30 01:30:33 +00:00
|
|
|
,Tag: 'sql-function'
|
|
|
|
,Implements: ListHolder
|
2015-01-23 13:09:30 +00:00
|
|
|
,Properties:
|
|
|
|
{
|
2022-05-30 01:30:33 +00:00
|
|
|
/**
|
|
|
|
* The function name.
|
|
|
|
*/
|
2015-01-23 13:09:30 +00:00
|
|
|
name:
|
|
|
|
{
|
|
|
|
type: String
|
|
|
|
,value: null
|
|
|
|
},
|
2022-05-30 01:30:33 +00:00
|
|
|
/**
|
|
|
|
* The function schema.
|
|
|
|
*/
|
2015-03-19 19:36:11 +00:00
|
|
|
schema:
|
|
|
|
{
|
|
|
|
type: String
|
|
|
|
,value: null
|
|
|
|
},
|
2022-05-30 01:30:33 +00:00
|
|
|
/**
|
|
|
|
* The function parameters.
|
|
|
|
*/
|
2015-01-23 13:09:30 +00:00
|
|
|
params:
|
|
|
|
{
|
2022-05-30 01:30:33 +00:00
|
|
|
type: Array
|
|
|
|
,set: function (x)
|
|
|
|
{
|
|
|
|
this.list = x;
|
|
|
|
}
|
|
|
|
,get: function ()
|
|
|
|
{
|
|
|
|
return this.list;
|
|
|
|
}
|
2015-01-23 13:09:30 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-30 01:30:33 +00:00
|
|
|
,render: function (params)
|
2015-01-23 13:09:30 +00:00
|
|
|
{
|
2022-05-30 01:30:33 +00:00
|
|
|
return this.renderPreIdent (this.schema)
|
|
|
|
+ this.renderIdent (this.name)
|
|
|
|
+ '('
|
|
|
|
+ this.renderListWs (this.list, params, ', ')
|
|
|
|
+ ')';
|
2015-01-23 13:09:30 +00:00
|
|
|
}
|
|
|
|
});
|