@@ -137,7 +137,7 @@ export class SQLBaseType extends SQLType {
137137 getBinaryResult ( operator : TokenType , value1 : any , value2 : any ) : any {
138138 switch ( operator ) {
139139 case TokenType . concatenation :
140- if ( value1 != null && value2 != null ) return value1 + value2 ;
140+ if ( value1 != null && value2 != null ) return ( value1 + "" ) + ( value2 + "" ) ;
141141 return value1 != null ? value1 : value2 ;
142142 case TokenType . plus :
143143 if ( value1 != null && value2 != null ) return value1 + value2 ;
@@ -398,11 +398,22 @@ SQLBaseType.addBaseTypes(baseTypes);
398398varcharType . addBinaryOperation ( TokenType . concatenation , varcharType , varcharType ) ;
399399varcharType . addBinaryOperation ( TokenType . concatenation , charType , varcharType ) ;
400400varcharType . addBinaryOperation ( TokenType . concatenation , textType , textType ) ;
401+ varcharType . addBinaryOperation ( TokenType . concatenation , floatType , textType ) ;
402+ varcharType . addBinaryOperation ( TokenType . concatenation , intType , textType ) ;
403+
404+
401405textType . addBinaryOperation ( TokenType . concatenation , textType , textType ) ;
406+ textType . addBinaryOperation ( TokenType . concatenation , floatType , textType ) ;
407+ textType . addBinaryOperation ( TokenType . concatenation , intType , textType ) ;
408+
402409varcharType . addBinaryOperation ( TokenType . keywordLike , varcharType , booleanType ) ;
403410varcharType . addBinaryOperation ( TokenType . keywordLike , textType , booleanType ) ;
404411textType . addBinaryOperation ( TokenType . keywordLike , textType , booleanType ) ;
405412
413+ varcharType . addBinaryOperation ( TokenType . keywordNotLike , varcharType , booleanType ) ;
414+ varcharType . addBinaryOperation ( TokenType . keywordNotLike , textType , booleanType ) ;
415+ textType . addBinaryOperation ( TokenType . keywordNotLike , textType , booleanType ) ;
416+
406417charType . addBinaryOperation ( TokenType . concatenation , charType , charType ) ;
407418charType . addBinaryOperation ( TokenType . concatenation , varcharType , charType ) ;
408419charType . addBinaryOperation ( TokenType . concatenation , textType , textType ) ;
@@ -411,6 +422,10 @@ charType.addBinaryOperation(TokenType.keywordLike, charType, booleanType);
411422charType . addBinaryOperation ( TokenType . keywordLike , textType , booleanType ) ;
412423textType . addBinaryOperation ( TokenType . keywordLike , textType , booleanType ) ;
413424
425+ charType . addBinaryOperation ( TokenType . keywordNotLike , charType , booleanType ) ;
426+ charType . addBinaryOperation ( TokenType . keywordNotLike , textType , booleanType ) ;
427+ textType . addBinaryOperation ( TokenType . keywordNotLike , textType , booleanType ) ;
428+
414429booleanType . addBinaryOperation ( TokenType . equal , booleanType , booleanType ) ;
415430
416431let numericBinaryOperators : TokenType [ ] = [ TokenType . plus , TokenType . minus , TokenType . multiplication , TokenType . division , TokenType . modulo ] ;
@@ -421,6 +436,8 @@ for (let i = 0; i < numericTypes.length; i++) {
421436 numericTypes [ i ] . addBinaryOperation ( numericBinaryOperators , numericTypes [ j ] , numericTypes [ j ] ) ;
422437 numericTypes [ i ] . addBinaryOperation ( comparisonOperators , numericTypes [ j ] , booleanType ) ;
423438 }
439+ numericTypes [ i ] . addBinaryOperation ( TokenType . concatenation , varcharType , textType ) ;
440+ numericTypes [ i ] . addBinaryOperation ( TokenType . concatenation , textType , textType ) ;
424441 numericTypes [ i ] . unaryOperators = [ TokenType . minus ] ;
425442}
426443
0 commit comments