Alex Pelagenko

Results 99 comments of Alex Pelagenko

#### [PR Coverage check] :heart_eyes: **pass** : 22 / 23 (95.65%) #### file detail | |path|covered line|new line|coverage| |----|----|----|----|----| |:large_blue_circle:|io/questdb/cutlass/line/tcp/LineTcpParser.java|22|23|95.65%|

#### [PR Coverage check] :heart_eyes: **pass** : 743 / 807 (92.07%) #### file detail | |path|covered line|new line|coverage| |----|----|----|----|----| |:large_blue_circle:|io/questdb/ServerMain.java|2|6|33.33%| |:large_blue_circle:|io/questdb/std/Os.java|1|2|50.00%| |:large_blue_circle:|io/questdb/PropServerConfiguration.java|12|20|60.00%| |:large_blue_circle:|io/questdb/std/Files.java|3|4|75.00%| |:large_blue_circle:|io/questdb/griffin/engine/ops/AlterOperation.java|25|31|80.65%| |:large_blue_circle:|io/questdb/griffin/SqlCompiler.java|24|27|88.89%| |:large_blue_circle:|io/questdb/cairo/ColumnVersionWriter.java|36|40|90.00%| |:large_blue_circle:|io/questdb/cairo/TxWriter.java|11|12|91.67%| |:large_blue_circle:|io/questdb/std/FilesFacadeImpl.java|35|38|92.11%| |:large_blue_circle:|io/questdb/cairo/TableWriter.java|432|464|93.10%| |:large_blue_circle:|io/questdb/cutlass/text/ParallelCsvFileImporter.java|26|27|96.30%|...

Thanks for creating the issue @alexey-milovidov `LIMIT OFFSET ` has different syntax. Use LIMIT , instead https://questdb.io/docs/reference/sql/limit/ Could you elaborate what `string != null` or `string=null` query produces wrong result?...

#### [PR Coverage check] :heart_eyes: **pass** : 175 / 202 (86.63%) #### file detail | |path|covered line|new line|coverage| |----|----|----|----|----| |:large_blue_circle:|io/questdb/cairo/DefaultCairoConfiguration.java|1|3|33.33%| |:large_blue_circle:|io/questdb/log/LogFactory.java|6|12|50.00%| |:large_blue_circle:|io/questdb/ServerMain.java|24|35|68.57%| |:large_blue_circle:|io/questdb/std/FilesFacadeImpl.java|13|17|76.47%| |:large_blue_circle:|io/questdb/std/OsUtils.java|28|31|90.32%| |:large_blue_circle:|io/questdb/cairo/pool/WriterPool.java|13|14|92.86%| |:large_blue_circle:|io/questdb/cairo/TableReader.java|60|60|100.00%| |:large_blue_circle:|io/questdb/PropServerConfiguration.java|6|6|100.00%| |:large_blue_circle:|io/questdb/std/Files.java|4|4|100.00%| |:large_blue_circle:|io/questdb/PropertyKey.java|4|4|100.00%| |:large_blue_circle:|io/questdb/cairo/AbstractDataFrameCursorFactory.java|3|3|100.00%|...

#### [PR Coverage check] :heart_eyes: **pass** : 91 / 94 (96.81%) #### file detail | |path|covered line|new line|coverage| |----|----|----|----|----| |:large_blue_circle:|io/questdb/griffin/engine/table/StringLongTuplesRecordCursor.java|26|29|89.66%| |:large_blue_circle:|io/questdb/cairo/TableWriterMetrics.java|4|4|100.00%| |:large_blue_circle:|io/questdb/griffin/engine/table/TableWriterMetricsRecordCursorFactory.java|32|32|100.00%| |:large_blue_circle:|io/questdb/griffin/engine/functions/table/MemoryMetricsFunctionFactory.java|3|3|100.00%| |:large_blue_circle:|io/questdb/griffin/engine/table/MemoryMetricsRecordCursorFactory.java|22|22|100.00%| |:large_blue_circle:|io/questdb/std/MemoryTag.java|1|1|100.00%| |:large_blue_circle:|io/questdb/griffin/engine/functions/table/TableWriterMetricsFunctionFactory.java|3|3|100.00%|

> What is the value of this change for the end user? If we want to use it in tests, then it may be simpler and more precise to use...

> > We don't this to happen but stop a particular query instead. > > But with this change any malloc/realloc may fail leading to non-deterministic behavior for the end...

We catch `Throwable`, including OutOfMemoryError, clean resources along the way and log it at the root of `Workers`. I don't see a reason why we should do differently with OOM...

We may not recover from them correctly, it's hard to test (as with any kind of exception). I think we do recover fine in most scenarios, it's not that different...