57 lines
771 B
JavaScript
57 lines
771 B
JavaScript
|
|
var Expr = require ('./expr');
|
|
var ListHolder = require ('./list-holder');
|
|
|
|
/**
|
|
* The equivalent of a SQL function.
|
|
*/
|
|
module.exports = new Class
|
|
({
|
|
Extends: Expr
|
|
,Tag: 'sql-function'
|
|
,Implements: ListHolder
|
|
,Properties:
|
|
{
|
|
/**
|
|
* The function name.
|
|
*/
|
|
name:
|
|
{
|
|
type: String
|
|
,value: null
|
|
},
|
|
/**
|
|
* The function schema.
|
|
*/
|
|
schema:
|
|
{
|
|
type: String
|
|
,value: null
|
|
},
|
|
/**
|
|
* The function parameters.
|
|
*/
|
|
params:
|
|
{
|
|
type: Array
|
|
,set: function (x)
|
|
{
|
|
this.list = x;
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this.list;
|
|
}
|
|
}
|
|
}
|
|
|
|
,render: function (params)
|
|
{
|
|
return this.renderPreIdent (this.schema)
|
|
+ this.renderIdent (this.name)
|
|
+ '('
|
|
+ this.renderListWs (this.list, params, ', ')
|
|
+ ')';
|
|
}
|
|
});
|