mbdavid / LiteDB

LiteDB - A .NET NoSQL Document Store in a single data file
http://www.litedb.org
MIT License
8.52k stars 1.24k forks source link

[BUG] #1995

Closed gzatravkin closed 2 years ago

gzatravkin commented 3 years ago

Version 5.0.9

Which LiteDB version/OS/.NET framework version are you using. (REQUIRED) 5.0.9, Windows 10, Turkish settings

Describe the bug Creation of expression with "Min" token causes exception on Turkish systems

Code to Reproduce var expression = BsonExpression.Create("{Count: SUM(*.COALESCE(Count, 1)), Citizen: Min(*.Citizen)}"); Expected behavior Min token should work at turkish systems without errors

Screenshots/Stacktrace

LiteDB.LiteException: Method 'MİN' does not exist or contains invalid parameters
   at LiteDB.BsonExpressionParser.TryParseMethodCall(Tokenizer tokenizer, ExpressionContext context, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpressionParser.ParseSingleExpression(Tokenizer tokenizer, ExpressionContext context, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpressionParser.ParseFullExpression(Tokenizer tokenizer, ExpressionContext context, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpressionParser.TryParseDocument(Tokenizer tokenizer, ExpressionContext context, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpressionParser.ParseSingleExpression(Tokenizer tokenizer, ExpressionContext context, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpressionParser.ParseFullExpression(Tokenizer tokenizer, ExpressionContext context, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpression.ParseAndCompile(Tokenizer tokenizer, BsonExpressionParserMode mode, BsonDocument parameters, DocumentScope scope)
   at LiteDB.BsonExpression.Create(Tokenizer tokenizer, BsonExpressionParserMode mode, BsonDocument parameters)
   at LiteDB.BsonExpression.Create(String expression, BsonDocument parameters)
   at LiteDB.BsonExpression.Create(String expression)
kcsombrio commented 2 years ago

Hi @gzatravkin, just commited to master branch the fix to this issue. It will be available in the next LiteDB release.