Skip to content

feat(core): nanosecond timestamp#5685

Merged
bluestreak01 merged 403 commits intomasterfrom
vi_nano
Sep 17, 2025
Merged

feat(core): nanosecond timestamp#5685
bluestreak01 merged 403 commits intomasterfrom
vi_nano

Conversation

@bluestreak01
Copy link
Copy Markdown
Member

@bluestreak01 bluestreak01 commented May 16, 2025

Fixes #6040

  • core nanos arithmetic
  • core nanos parser/formatter
  • core nanos arithmetic tests
  • core nanos parser/formatter tests
  • timestamp driver extraction
  • SQL to chose timestamp resolution and hence the driver
  • table metadata to carry the resolution value
  • NanoTimestampFunction support
  • Add huge NanoTimestampFunction tests (also for IntervalFunction)
  • Support dynamic interval function like today()
  • SampleBy and tests
  • Asof join and tests
  • MatView and tests
  • IntervalFilter tests
  • O3 nano tests
  • PartitionBy tests
  • Write Nanos column to Parquet file
  • CSV Text import
  • Code snippets scattered in other codebases(like Log)
  • Java ILP Clients
  • C and Python ILP clients

Design considerations

  • TIMSTAMP data type will be the carrier of the resolution, similar to GEOHASH data types
  • partitionBy must be accompanied by the timestampType integer. ColumnType.tagOf(timestampType) will always be TIMESTAMP
  • the source of the timestamp type is always the metadata, e.g. table metadata or table structure
  • in the migration code and legacy code, such as parallel CSV import timestamp type is hardcoded to default - micros
  • partition purge table needs extra work to pass-thru timestamp type

Notes

  • changed the logic of extracting the year from micros. Old logic was going to overflow for nanos, the new logic works uniformly for both
  • moved few methods around to reduce code duplication

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jul 7, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
4 out of 5 committers have signed the CLA.

✅ kafka1991
✅ bluestreak01
✅ puzpuzpuz
✅ mtopolnik
❌ GitHub Actions - Rebuild Native Libraries


GitHub Actions - Rebuild Native Libraries seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@bluestreak01
Copy link
Copy Markdown
Member Author

i have this data:

image

however, when i try to filter the results on timestamp - no bueno:

image

@puzpuzpuz
Copy link
Copy Markdown
Contributor

however, when i try to filter the results on timestamp - no bueno

This is reproducible on master, so probably an existing bug:

explain trades where timestamp in '2022-03-08T18:03:57.71';

gives

intervals: [("2022-03-08T18:03:57.710000Z","2022-03-08T18:03:57.710000Z")]

Notice equal boundaries - we search for exactly 2022-03-08T18:03:57.710000Z

@kafka1991 kafka1991 closed this Sep 12, 2025
@kafka1991 kafka1991 reopened this Sep 12, 2025
@glasstiger
Copy link
Copy Markdown
Contributor

[PR Coverage check]

😍 pass : 7587 / 8137 (93.24%)

file detail

path covered line new line coverage
🔵 io/questdb/cairo/PartitionOverwriteControl.java 0 1 00.00%
🔵 io/questdb/cairo/wal/seq/SequencerMetadataService.java 0 1 00.00%
🔵 io/questdb/griffin/engine/functions/date/ToPgDateFunctionFactory.java 0 1 00.00%
🔵 io/questdb/cutlass/line/LineUdpSender.java 0 3 00.00%
🔵 io/questdb/griffin/engine/functions/date/IsLeapYearFunctionFactory.java 0 2 00.00%
🔵 io/questdb/griffin/engine/functions/window/LastValueTimestampWindowFunctionFactory.java 0 15 00.00%
🔵 io/questdb/cutlass/pgwire/DefaultPGConfiguration.java 0 1 00.00%
🔵 io/questdb/cairo/DebugUtils.java 0 4 00.00%
🔵 io/questdb/griffin/SqlException.java 0 1 00.00%
🔵 io/questdb/std/BytecodeAssembler.java 0 3 00.00%
🔵 io/questdb/griffin/engine/functions/window/AbstractWindowFunctionFactory.java 0 1 00.00%
🔵 io/questdb/cutlass/http/DefaultHttpServerConfiguration.java 0 2 00.00%
🔵 io/questdb/griffin/engine/groupby/vect/SumDateVectorAggregateFunction.java 0 6 00.00%
🔵 io/questdb/cairo/ColumnVersionWriter.java 0 1 00.00%
🔵 io/questdb/griffin/engine/functions/window/FirstValueTimestampWindowFunctionFactory.java 1 11 09.09%
🔵 io/questdb/cutlass/http/processors/TextQueryProcessor.java 1 4 25.00%
🔵 io/questdb/cutlass/http/processors/LineHttpProcessorImpl.java 2 7 28.57%
🔵 io/questdb/cairo/wal/WalPurgeJob.java 3 9 33.33%
🔵 io/questdb/griffin/engine/groupby/vect/MaxDateVectorAggregateFunction.java 2 6 33.33%
🔵 io/questdb/griffin/engine/groupby/vect/MinDateVectorAggregateFunction.java 2 6 33.33%
🔵 io/questdb/griffin/model/QueryModel.java 8 17 47.06%
🔵 io/questdb/log/LogFactory.java 1 2 50.00%
🔵 io/questdb/griffin/engine/groupby/SimpleTimestampSampler.java 5 10 50.00%
🔵 io/questdb/griffin/engine/functions/date/PgPostmasterStartTimeFunctionFactory.java 1 2 50.00%
🔵 io/questdb/cutlass/line/tcp/DefaultLineTcpReceiverConfiguration.java 1 2 50.00%
🔵 io/questdb/griffin/engine/functions/constants/IntervalConstant.java 6 11 54.55%
🔵 parquet_write/schema.rs 14 25 56.00%
🔵 io/questdb/griffin/engine/groupby/WeekTimestampMicrosSampler.java 11 19 57.89%
🔵 io/questdb/griffin/engine/groupby/WeekTimestampNanosSampler.java 11 19 57.89%
🔵 io/questdb/griffin/engine/ops/AlterOperation.java 4 7 57.14%
🔵 io/questdb/std/datetime/microtime/TimeZoneRulesMicros.java 5 8 62.50%
🔵 io/questdb/griffin/engine/functions/bind/BindVariableServiceImpl.java 55 86 63.95%
🔵 io/questdb/griffin/engine/groupby/vect/AvgDoubleVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/functions/date/DayOfWeekSundayFirstFunctionFactory.java 2 3 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/MaxDoubleVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/MinIntVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/SumDoubleVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/std/datetime/nanotime/TimeZoneRulesNanos.java 6 9 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/SumLong256VectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/MaxIntVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/NSumDoubleVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/std/Interval.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/SumIntVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/AvgIntVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/MinDoubleVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/functions/cast/CastIntervalToStrFunctionFactory.java 2 3 66.67%
🔵 io/questdb/griffin/engine/groupby/vect/KSumDoubleVectorAggregateFunction.java 4 6 66.67%
🔵 io/questdb/griffin/engine/functions/date/DaysPerMonthFunctionFactory.java 2 3 66.67%
🔵 io/questdb/cairo/wal/WalWriter.java 5 7 71.43%
🔵 io/questdb/griffin/engine/groupby/vect/MinTimestampVectorAggregateFunction.java 5 7 71.43%
🔵 io/questdb/griffin/engine/groupby/vect/MaxTimestampVectorAggregateFunction.java 5 7 71.43%
🔵 io/questdb/griffin/InsertRowImpl.java 10 14 71.43%
🔵 io/questdb/griffin/engine/functions/date/MillisOfSecondFunctionFactory.java 3 4 75.00%
🔵 io/questdb/cutlass/line/AbstractLineTcpSender.java 16 20 80.00%
🔵 io/questdb/griffin/ConvertOperatorImpl.java 4 5 80.00%
🔵 io/questdb/griffin/engine/functions/date/GenerateSeriesTimestampStringRecordCursorFactory.java 24 29 82.76%
🔵 io/questdb/griffin/engine/groupby/MonthTimestampNanosSampler.java 48 58 82.76%
🔵 io/questdb/cairo/mv/MatViewRefreshJob.java 43 52 82.69%
🔵 io/questdb/griffin/engine/groupby/YearTimestampNanosSampler.java 37 45 82.22%
🔵 io/questdb/griffin/engine/functions/eq/EqIntervalFunctionFactory.java 5 6 83.33%
🔵 io/questdb/griffin/engine/functions/columns/IntervalColumn.java 5 6 83.33%
🔵 io/questdb/griffin/engine/functions/bool/InTimestampTimestampFunctionFactory.java 56 67 83.58%
🔵 io/questdb/griffin/engine/functions/date/VarcharToNanoTimestampVCFunctionFactory.java 10 12 83.33%
🔵 io/questdb/griffin/engine/functions/window/LagTimestampFunctionFactory.java 16 19 84.21%
🔵 io/questdb/griffin/engine/functions/bool/BetweenTimestampFunctionFactory.java 54 64 84.38%
🔵 io/questdb/griffin/engine/functions/date/TimestampSequenceFunctionFactory.java 6 7 85.71%
🔵 io/questdb/griffin/engine/functions/date/VarcharToTimestampVCFunctionFactory.java 6 7 85.71%
🔵 io/questdb/griffin/engine/groupby/MonthTimestampMicrosSampler.java 19 22 86.36%
🔵 io/questdb/griffin/FunctionParser.java 46 53 86.79%
🔵 io/questdb/std/datetime/CommonUtils.java 86 99 86.87%
🔵 io/questdb/griffin/engine/groupby/YearTimestampMicrosSampler.java 21 24 87.50%
🔵 io/questdb/std/datetime/millitime/GenericDateFormat.java 8 9 88.89%
🔵 io/questdb/griffin/engine/functions/date/AbstractDayIntervalWithTimezoneFunction.java 15 17 88.24%
🔵 io/questdb/cairo/NanosTimestampDriver.java 621 699 88.84%
🔵 io/questdb/std/datetime/nanotime/NanosFormatUtils.java 156 174 89.66%
🔵 io/questdb/griffin/WhereClauseParser.java 119 133 89.47%
🔵 io/questdb/griffin/engine/groupby/SampleByInterpolateRecordCursorFactory.java 10 11 90.91%
🔵 io/questdb/griffin/engine/functions/conditional/CoalesceFunctionFactory.java 10 11 90.91%
🔵 io/questdb/cairo/TableWriter.java 90 100 90.00%
🔵 io/questdb/cutlass/text/types/TypeManager.java 21 23 91.30%
🔵 io/questdb/std/datetime/nanotime/Nanos.java 410 449 91.31%
🔵 io/questdb/griffin/engine/functions/date/TimestampFloorFunctions.java 13 14 92.86%
🔵 io/questdb/griffin/engine/functions/date/TimestampShuffleFunctionFactory.java 12 13 92.31%
🔵 io/questdb/cairo/O3PartitionJob.java 39 42 92.86%
🔵 io/questdb/cairo/TimestampDriver.java 57 61 93.44%
🔵 io/questdb/griffin/engine/ops/CreateMatViewOperationImpl.java 15 16 93.75%
🔵 io/questdb/griffin/model/RuntimeIntervalModelBuilder.java 31 33 93.94%
🔵 io/questdb/std/datetime/microtime/Micros.java 144 153 94.12%
🔵 io/questdb/griffin/engine/functions/conditional/SwitchFunctionFactory.java 21 22 95.45%
🔵 io/questdb/cairo/ColumnType.java 39 41 95.12%
🔵 io/questdb/griffin/model/IntervalUtils.java 95 99 95.96%
🔵 io/questdb/griffin/SqlExecutionContextImpl.java 22 23 95.65%
🔵 io/questdb/cairo/MicrosTimestampDriver.java 671 704 95.31%
🔵 io/questdb/griffin/engine/functions/lt/LtTimestampFunctionFactory.java 41 43 95.35%
🔵 io/questdb/griffin/engine/functions/math/LeastNumericFunctionFactory.java 40 41 97.56%
🔵 io/questdb/std/datetime/microtime/MicrosFormatUtils.java 43 44 97.73%
🔵 io/questdb/cairo/mv/MatViewTimerJob.java 41 42 97.62%
🔵 io/questdb/griffin/SqlParser.java 42 43 97.67%
🔵 io/questdb/griffin/engine/functions/math/GreatestNumericFunctionFactory.java 36 37 97.30%
🔵 io/questdb/griffin/engine/functions/date/IntervalFunctionFactory.java 46 47 97.87%
🔵 io/questdb/griffin/SqlCodeGenerator.java 110 113 97.35%
🔵 io/questdb/griffin/engine/functions/date/TimestampFloorFromOffsetFunctionFactory.java 70 71 98.59%
🔵 io/questdb/std/datetime/nanotime/GenericNanosFormat.java 358 364 98.35%
🔵 io/questdb/griffin/SqlCompilerImpl.java 72 73 98.63%
🔵 io/questdb/std/datetime/nanotime/NanosFormatCompiler.java 1011 1019 99.21%
🔵 io/questdb/std/datetime/microtime/GenericMicrosFormat.java 362 363 99.72%
🔵 io/questdb/griffin/engine/functions/date/TomorrowWithTimezoneFunctionFactory.java 6 6 100.00%
🔵 io/questdb/cairo/IndexBuilder.java 1 1 100.00%
🔵 io/questdb/griffin/engine/join/AsOfJoinLightNoKeyRecordCursorFactory.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/date/GenerateSeriesTimestampStringFunctionFactory.java 5 5 100.00%
🔵 io/questdb/cutlass/line/tcp/LineTcpParser.java 7 7 100.00%
🔵 io/questdb/griffin/engine/functions/date/VarcharToNanoTimestampFunctionFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/MaxTimestampGroupByFunctionFactory.java 1 1 100.00%
🔵 io/questdb/cairo/MetadataCache.java 1 1 100.00%
🔵 io/questdb/cairo/TableConverter.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/array/IntIntervalRightOpenFunctionFactory.java 1 1 100.00%
🔵 io/questdb/cairo/RecoverVarIndex.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/date/GenerateSeriesTimestampRecordCursorFactory.java 7 7 100.00%
🔵 io/questdb/cairo/wal/WalTxnDetails.java 1 1 100.00%
🔵 io/questdb/griffin/engine/table/TableStorageRecordCursorFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/bind/VarcharBindVariable.java 2 2 100.00%
🔵 io/questdb/cairo/mv/TimeZoneIntervalIterator.java 7 7 100.00%
🔵 io/questdb/griffin/engine/table/ReaderPoolRecordCursorFactory.java 3 3 100.00%
🔵 io/questdb/cairo/TxWriter.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/MatViewsFunctionFactory.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/eq/EqSymTimestampFunctionFactory.java 13 13 100.00%
🔵 io/questdb/cairo/IntervalBwdPartitionFrameCursor.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/PgRolesFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/cast/AbstractCastToTimestampFunction.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/DateFunction.java 1 1 100.00%
🔵 io/questdb/cutlass/line/tcp/LineWalAppender.java 16 16 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastTimestampToDateFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/join/AsOfJoinRecordCursorFactory.java 7 7 100.00%
🔵 io/questdb/cutlass/line/tcp/LineTcpMeasurementScheduler.java 3 3 100.00%
🔵 io/questdb/cairo/DatabaseCheckpointAgent.java 14 14 100.00%
🔵 io/questdb/cairo/TableReader.java 17 17 100.00%
🔵 io/questdb/cutlass/text/types/TimestampUtf8Adapter.java 1 1 100.00%
🔵 parquet_read/column_sink/fixed.rs 7 7 100.00%
🔵 io/questdb/cutlass/line/http/AbstractLineHttpSender.java 20 20 100.00%
🔵 io/questdb/cairo/VacuumColumnVersions.java 4 4 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/CountVectorAggregateFunction.java 5 5 100.00%
🔵 io/questdb/griffin/engine/ops/AlterOperationBuilder.java 1 1 100.00%
🔵 io/questdb/PropServerConfiguration.java 23 23 100.00%
🔵 io/questdb/cutlass/line/tcp/DefaultColumnTypes.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/FirstTimestampGroupByFunctionFactory.java 1 1 100.00%
🔵 io/questdb/log/TemplateParser.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/date/AbstractDayIntervalFunction.java 7 7 100.00%
🔵 io/questdb/cairo/frm/file/FrameImpl.java 1 1 100.00%
🔵 io/questdb/cutlass/http/HttpHeaderParser.java 7 7 100.00%
🔵 io/questdb/cutlass/http/processors/LineHttpProcessorState.java 3 3 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFillNullNotKeyedRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/cutlass/line/udp/LineUdpParserSupport.java 1 1 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFillValueNotKeyedRecordCursorFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/date/AddLongToTimestampFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/orderby/LongSortedLightRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/cutlass/text/DefaultTextConfiguration.java 1 1 100.00%
🔵 io/questdb/cairo/TableReaderMetadata.java 1 1 100.00%
🔵 io/questdb/cutlass/line/tcp/TableUpdateDetails.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastVarcharToTimestampFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastDoubleToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/date/VarcharToTimestampFunctionFactory.java 4 4 100.00%
🔵 io/questdb/std/str/CharSink.java 2 2 100.00%
🔵 io/questdb/cutlass/text/CairoTextWriter.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/date/MicrosOfMillsFunctionFactory.java 5 5 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/MaxLongVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/log/AbstractLogRecord.java 3 3 100.00%
🔵 io/questdb/log/LogRollingFileWriter.java 7 7 100.00%
🔵 io/questdb/griffin/engine/functions/date/WeekOfYearFunctionFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/table/LatestByRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/jit/CompiledFilterIRSerializer.java 67 67 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/FirstNotNullTimestampGroupByFunction.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastBooleanToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/AvgShortVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampFloorFromFunctionFactory.java 5 5 100.00%
🔵 io/questdb/std/datetime/nanotime/NanosFormatFactory.java 8 8 100.00%
🔵 io/questdb/griffin/engine/functions/activity/QueryActivityFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/eq/EqTimestampCursorFunctionFactory.java 32 32 100.00%
🔵 io/questdb/griffin/engine/functions/date/GenerateSeriesTimestampLongFunctionFactory.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/date/IntervalEndFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/date/NowFunctionFactory.java 4 4 100.00%
🔵 io/questdb/cairo/O3CopyJob.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/MinTimestampGroupByFunction.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/CheckpointStatusFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/window/LeadTimestampFunctionFactory.java 15 15 100.00%
🔵 io/questdb/griffin/model/WindowColumn.java 2 2 100.00%
🔵 io/questdb/cutlass/line/tcp/LineTcpReceiverConfigurationWrapper.java 2 2 100.00%
🔵 io/questdb/cairo/TableUtils.java 10 10 100.00%
🔵 io/questdb/cairo/mig/Mig620.java 1 1 100.00%
🔵 io/questdb/cutlass/http/HttpConnectionContext.java 1 1 100.00%
🔵 io/questdb/griffin/engine/join/AsOfJoinNoKeyFastRecordCursorFactory.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/rnd/RndIntervalFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/join/AbstractAsOfJoinFastRecordCursor.java 20 20 100.00%
🔵 io/questdb/griffin/engine/functions/eq/EqTimestampFunctionFactory.java 53 53 100.00%
🔵 io/questdb/std/datetime/millitime/Dates.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/array/ArrayCreateFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/conditional/CaseCommon.java 32 32 100.00%
🔵 io/questdb/griffin/engine/join/AbstractSymbolWrapOverCursor.java 5 5 100.00%
🔵 io/questdb/cairo/pool/TableReaderMetadataTenantImpl.java 6 6 100.00%
🔵 io/questdb/cutlass/pgwire/PGPipelineEntry.java 26 26 100.00%
🔵 io/questdb/cairo/AttachDetachStatus.java 1 1 100.00%
🔵 io/questdb/griffin/engine/groupby/TimestampSamplerFactory.java 4 4 100.00%
🔵 io/questdb/cutlass/line/tcp/SymbolCache.java 1 1 100.00%
🔵 io/questdb/griffin/engine/groupby/AbstractVirtualRecordSampleByCursor.java 1 1 100.00%
🔵 io/questdb/cairo/wal/OperationExecutor.java 1 1 100.00%
🔵 io/questdb/cutlass/line/udp/DefaultLineUdpReceiverConfiguration.java 1 1 100.00%
🔵 io/questdb/cairo/IntervalFwdPartitionFrameCursor.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/date/TodayWithTimezoneFunctionFactory.java 6 6 100.00%
🔵 io/questdb/cairo/wal/CheckWalTransactionsJob.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/LastNotNullTimestampGroupByFunction.java 1 1 100.00%
🔵 io/questdb/cairo/mv/MatViewState.java 12 12 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToNanoTimestampVCFunctionFactory.java 9 9 100.00%
🔵 io/questdb/cairo/RecordSinkFactory.java 11 11 100.00%
🔵 io/questdb/griffin/model/IntrinsicModel.java 2 2 100.00%
🔵 io/questdb/griffin/engine/table/WriterPoolRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/HourOfDayFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/IntervalFunction.java 7 7 100.00%
🔵 io/questdb/griffin/FunctionFactoryDescriptor.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/YearFunctionFactory.java 3 3 100.00%
🔵 io/questdb/cutlass/text/types/OtherToTimestampAdapter.java 4 4 100.00%
🔵 io/questdb/griffin/engine/groupby/AbstractSampleByFillRecordCursor.java 1 1 100.00%
🔵 io/questdb/griffin/ExpressionParser.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/str/ConcatFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/VarcharToPgDateFunctionFactory.java 1 1 100.00%
🔵 io/questdb/cairo/sql/RecordMetadata.java 4 4 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/CountDoubleVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/PurgingOperator.java 2 2 100.00%
🔵 io/questdb/cairo/TxReader.java 25 25 100.00%
🔵 io/questdb/cutlass/line/tcp/LineTcpConnectionContext.java 1 1 100.00%
🔵 io/questdb/griffin/engine/table/LatestByLightRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/cairo/arr/FunctionArray.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/math/SubTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/cairo/DefaultCairoConfiguration.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastSymbolToTimestampFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/SumShortVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/date/ExtractFromTimestampFunctionFactory.java 47 47 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/SumLongVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/date/DayOfWeekFunctionFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/WalTransactionsFunctionFactory.java 15 15 100.00%
🔵 io/questdb/mp/WorkerPoolUtils.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampAddWithTimezoneFunctionFactory.java 15 15 100.00%
🔵 io/questdb/griffin/BasePlanSink.java 5 5 100.00%
🔵 io/questdb/tasks/O3PartitionPurgeTask.java 2 2 100.00%
🔵 io/questdb/griffin/engine/ops/CreateTableOperationImpl.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/constants/Constants.java 30 30 100.00%
🔵 io/questdb/griffin/engine/functions/lt/LtTimestampCursorFunctionFactory.java 30 30 100.00%
🔵 io/questdb/griffin/engine/functions/bind/StrBindVariable.java 3 3 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/CountIntVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/cutlass/text/types/BadTimestampAdapter.java 1 1 100.00%
🔵 io/questdb/cairo/CursorPrinter.java 2 2 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/CountLongVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/AvgLongVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/join/LtJoinNoKeyFastRecordCursorFactory.java 5 5 100.00%
🔵 parquet_read/meta.rs 10 10 100.00%
🔵 io/questdb/cairo/PartitionBy.java 7 7 100.00%
🔵 io/questdb/griffin/engine/functions/StrFunction.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToTimestampVCFunctionFactory.java 10 10 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/LastTimestampGroupByFunction.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/TypeOfFunctionFactory.java 5 5 100.00%
🔵 io/questdb/cairo/O3OpenColumnJob.java 7 7 100.00%
🔵 io/questdb/cairo/ColumnVersionReader.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/date/TomorrowFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/constants/IntervalTypeConstant.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastShortToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/window/MaxTimestampWindowFunctionFactory.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/memoization/TimestampFunctionMemoizer.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToTimestampFunctionFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/join/LtJoinNoKeyRecordCursorFactory.java 9 9 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFillNoneNotKeyedRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastLongToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/array/IntIntervalFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/table/TimeFrameRecordCursorImpl.java 3 3 100.00%
🔵 io/questdb/cairo/ParquetTimestampFinder.java 1 1 100.00%
🔵 io/questdb/cutlass/text/types/InputFormatConfiguration.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/MaxTimestampGroupByFunction.java 2 2 100.00%
🔵 io/questdb/griffin/engine/table/ShowPartitionsRecordCursorFactory.java 30 30 100.00%
🔵 io/questdb/griffin/engine/groupby/FillRangeRecordCursorFactory.java 13 13 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToUTCTimestampFunctionFactory.java 17 17 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFirstLastRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/cairo/O3PartitionPurgeJob.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/date/MonthOfYearFunctionFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastStrToTimestampFunctionFactory.java 3 3 100.00%
🔵 io/questdb/std/datetime/millitime/DateFormatCompiler.java 18 18 100.00%
🔵 io/questdb/cairo/mv/MatViewStateReader.java 7 7 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/MaxShortVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/DefaultTelemetryConfiguration.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampDiffFunctionFactory.java 31 31 100.00%
🔵 io/questdb/cutlass/text/CsvFileIndexer.java 5 5 100.00%
🔵 io/questdb/griffin/engine/groupby/GroupByUtils.java 2 2 100.00%
🔵 io/questdb/PropertyKey.java 1 1 100.00%
🔵 io/questdb/griffin/engine/join/AsOfJoinFastRecordCursorFactory.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/bool/InTimestampIntervalFunctionFactory.java 9 9 100.00%
🔵 io/questdb/std/datetime/microtime/MicrosFormatFactory.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampCeilFunctionFactory.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToNanoTimestampFunctionFactory.java 4 4 100.00%
🔵 io/questdb/cutlass/text/ParallelCsvFileImporter.java 12 12 100.00%
🔵 io/questdb/griffin/UpdateOperatorImpl.java 11 11 100.00%
🔵 io/questdb/cairo/wal/ApplyWal2TableJob.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/date/IntervalStartFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/constants/TimestampConstant.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/WalTableListFunctionFactory.java 8 8 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/FirstTimestampGroupByFunction.java 2 2 100.00%
🔵 io/questdb/griffin/engine/join/LtJoinRecordCursorFactory.java 7 7 100.00%
🔵 io/questdb/cutlass/text/types/DateAdapter.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/MinuteOfHourFunctionFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/lt/GtTimestampCursorFunctionFactory.java 30 30 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampFloorFunctionFactory.java 15 15 100.00%
🔵 io/questdb/griffin/engine/functions/date/SystimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/join/FilteredAsOfJoinNoKeyFastRecordCursorFactory.java 6 6 100.00%
🔵 io/questdb/griffin/engine/join/SpliceJoinLightRecordCursorFactory.java 8 8 100.00%
🔵 io/questdb/griffin/engine/functions/date/NanosOfMicrosFunctionFactory.java 11 11 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToStrTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/MinLongVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampFloorOffsetFunction.java 18 18 100.00%
🔵 io/questdb/TelemetryConfigLogger.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/test/TestTimestampCounterFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/date/DateTruncFunctionFactory.java 20 20 100.00%
🔵 io/questdb/griffin/engine/groupby/AbstractNoRecordSampleByCursor.java 11 11 100.00%
🔵 io/questdb/cairo/ColumnPurgeJob.java 5 5 100.00%
🔵 io/questdb/mp/Worker.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/TimestampAddFunctionFactory.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastCharToTimestampFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/date/TodayFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/window/WindowContextImpl.java 4 4 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFillValueNotKeyedRecordCursor.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastTimestampToStrFunctionFactory.java 7 7 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/LastNotNullTimestampGroupByFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/AbstractUnaryTimestampFunction.java 1 1 100.00%
🔵 io/questdb/griffin/model/RuntimeIntervalModel.java 24 24 100.00%
🔵 io/questdb/cutlass/line/udp/LineUdpParserImpl.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastFloatToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/SymbolFunction.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/MinTimestampGroupByFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/constants/TimestampTypeConstant.java 4 4 100.00%
🔵 io/questdb/griffin/engine/join/FilteredAsOfJoinFastRecordCursorFactory.java 5 5 100.00%
🔵 io/questdb/cairo/ColumnTypeConverter.java 37 37 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastByteToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/catalogue/PgLocksFunctionFactory.java 1 1 100.00%
🔵 io/questdb/std/datetime/nanotime/NanosecondClockImpl.java 1 1 100.00%
🔵 io/questdb/tasks/ColumnPurgeTask.java 8 8 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastDateToTimestampFunctionFactory.java 4 4 100.00%
🔵 io/questdb/std/datetime/DateLocaleFactory.java 4 4 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastIntToTimestampFunctionFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/functions/conditional/TimestampCaseFunction.java 3 3 100.00%
🔵 io/questdb/cairo/CairoTable.java 4 4 100.00%
🔵 io/questdb/griffin/engine/groupby/vect/MinShortVectorAggregateFunction.java 6 6 100.00%
🔵 io/questdb/griffin/engine/ops/CreateMatViewOperationBuilderImpl.java 4 4 100.00%
🔵 io/questdb/cairo/mv/MatViewDefinition.java 22 22 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/LastTimestampGroupByFunctionFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastTimestampToTimestampFunctionFactory.java 12 12 100.00%
🔵 io/questdb/cutlass/line/tcp/LineProtocolException.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/rnd/RndTimestampFunctionFactory.java 11 11 100.00%
🔵 io/questdb/griffin/engine/functions/groupby/FirstNotNullTimestampGroupByFunctionFactory.java 1 1 100.00%
🔵 io/questdb/cutlass/text/types/TimestampAdapter.java 9 9 100.00%
🔵 io/questdb/std/Numbers.java 18 18 100.00%
🔵 io/questdb/std/datetime/TimeZoneRuleFactory.java 4 4 100.00%
🔵 io/questdb/cairo/mig/Mig506.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/date/ToTimezoneTimestampFunctionFactory.java 18 18 100.00%
🔵 io/questdb/cutlass/line/tcp/TableStructureAdapter.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/SecondOfMinuteFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/SqlOptimiser.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/columns/TimestampColumn.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/constants/NullConstant.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/table/TablePartitionsFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/groupby/AbstractSampleByCursor.java 10 10 100.00%
🔵 io/questdb/griffin/engine/functions/date/YesterdayWithTimezoneFunctionFactory.java 6 6 100.00%
🔵 io/questdb/cairo/mv/MatViewRefreshSqlExecutionContext.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/json/JsonExtractTypedFunctionFactory.java 2 2 100.00%
🔵 io/questdb/cairo/RebuildColumnBase.java 5 5 100.00%
🔵 io/questdb/griffin/engine/functions/VarcharFunction.java 1 1 100.00%
🔵 io/questdb/cutlass/text/TextMetadataParser.java 1 1 100.00%
🔵 io/questdb/std/str/Utf8Sink.java 2 2 100.00%
🔵 io/questdb/cutlass/http/processors/JsonQueryProcessorState.java 4 4 100.00%
🔵 io/questdb/griffin/DropIndexOperator.java 4 4 100.00%
🔵 io/questdb/griffin/SqlKeywords.java 36 36 100.00%
🔵 io/questdb/griffin/RecordToRowCopierUtils.java 24 24 100.00%
🔵 io/questdb/cairo/ColumnPurgeOperator.java 7 7 100.00%
🔵 io/questdb/cairo/wal/WalEventCursor.java 4 4 100.00%
🔵 io/questdb/cutlass/line/tcp/LineTcpMeasurementEvent.java 12 12 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFillValueRecordCursorFactory.java 3 3 100.00%
🔵 io/questdb/cutlass/text/CopyTask.java 9 9 100.00%
🔵 io/questdb/griffin/engine/functions/TimestampFunction.java 10 10 100.00%
🔵 io/questdb/griffin/engine/functions/date/YesterdayFunctionFactory.java 3 3 100.00%
🔵 io/questdb/griffin/engine/functions/date/OffsetTimestampFunction.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/date/SysNanotimestampFunctionFactory.java 6 6 100.00%
🔵 io/questdb/griffin/engine/functions/json/JsonExtractFunction.java 4 4 100.00%
🔵 io/questdb/cutlass/text/TextLoader.java 5 5 100.00%
🔵 io/questdb/log/NullLogRecord.java 1 1 100.00%
🔵 io/questdb/std/datetime/millitime/DateFormatUtils.java 4 4 100.00%
🔵 io/questdb/griffin/engine/join/LtJoinLightRecordCursorFactory.java 10 10 100.00%
🔵 io/questdb/griffin/engine/functions/cast/CastTimestampToVarcharFunctionFactory.java 7 7 100.00%
🔵 io/questdb/std/datetime/microtime/MicrosFormatCompiler.java 58 58 100.00%
🔵 io/questdb/griffin/engine/functions/date/DayOfMonthFunctionFactory.java 4 4 100.00%
🔵 io/questdb/cairo/CairoException.java 3 3 100.00%
🔵 io/questdb/griffin/SqlUtil.java 25 25 100.00%
🔵 io/questdb/metrics/QueryTracingJob.java 1 1 100.00%
🔵 io/questdb/griffin/engine/table/ShowCreateMatViewRecordCursorFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/groupby/SampleByFillNullRecordCursorFactory.java 1 1 100.00%
🔵 io/questdb/griffin/engine/functions/bind/TimestampBindVariable.java 2 2 100.00%
🔵 io/questdb/std/datetime/millitime/DateFormatFactory.java 2 2 100.00%
🔵 io/questdb/griffin/engine/join/AsOfJoinLightRecordCursorFactory.java 11 11 100.00%

@nwoolmer nwoolmer self-requested a review September 17, 2025 10:26
Copy link
Copy Markdown
Contributor

@nwoolmer nwoolmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@bluestreak01 bluestreak01 merged commit f0ba286 into master Sep 17, 2025
34 of 35 checks passed
@bluestreak01 bluestreak01 deleted the vi_nano branch September 17, 2025 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WAL event file is too small error when refreshing materialized view with a very large SAMPLE BY interval

8 participants