support for geograpghy view in mssql

This commit is contained in:
Jan Prochazka
2022-06-11 19:19:50 +02:00
parent fa0680a8ee
commit 34496ced0e
5 changed files with 40 additions and 11 deletions

View File

@@ -35,17 +35,24 @@ export function dumpSqlExpression(dmp: SqlDumper, expr: Expression) {
dmp.put(')');
break;
case 'methodCall':
dumpSqlExpression(dmp, expr.thisObject)
dmp.put('.%s(', expr.method);
dmp.putCollection(',', expr.args, x => dumpSqlExpression(dmp, x));
dmp.put(')');
break;
case 'transform':
dmp.transform(expr.transform, () => dumpSqlExpression(dmp, expr.expr));
break;
case 'rowNumber':
dmp.put(" ^row_number() ^over (^order ^by ");
dmp.put(' ^row_number() ^over (^order ^by ');
dmp.putCollection(', ', expr.orderBy, x => {
dumpSqlExpression(dmp, x);
dmp.put(' %k', x.direction);
});
dmp.put(")");
dmp.put(')');
break;
}
}

View File

@@ -20,6 +20,9 @@ export function evaluateExpression(expr: Expression, values) {
case 'call':
return null;
case 'methodCall':
return null;
case 'transform':
return null;
}

View File

@@ -155,6 +155,13 @@ export interface CallExpression {
argsPrefix?: string; // DISTINCT in case of COUNT DISTINCT
}
export interface MethodCallExpression {
exprType: 'methodCall';
method: string;
args: Expression[];
thisObject: Expression;
}
export interface TranformExpression {
exprType: 'transform';
expr: Expression;
@@ -172,6 +179,7 @@ export type Expression =
| PlaceholderExpression
| RawExpression
| CallExpression
| MethodCallExpression
| TranformExpression
| RowNumberExpression;
export type OrderByExpression = Expression & { direction: 'ASC' | 'DESC' };