Skip to content




LogicalSchema handleStreamSelectKeyV1(
  LogicalSchema sourceSchema,
  StreamSelectKeyV1 step)

handleStreamSelectKeyV1 requests the given StreamSelectKeyV1 for the key expression.

handleStreamSelectKeyV1 creates a ExpressionTypeManager to getExpressionSqlType for the key expression (that gives a SqlType).

In the end, handleStreamSelectKeyV1 creates a LogicalSchema with the following columns:

handleStreamSelectKeyV1 is used when:

Pseudo Columns

Column Name | Type | Version | isDisallowedForInsertValues | isDisallowedInPullAndScalablePushQueries ------------|------|---------|----------------------------------------------------------------------- ROWTIME | BIGINT | 0 | false | false ROWPARTITION | INTEGER | 1 | true | true ROWOFFSET | BIGINT | 1 | true | true

Used when:


boolean isPseudoColumn(
  ColumnName columnName,
  int pseudoColumnVersion)
boolean isPseudoColumn(
  ColumnName columnName,
  KsqlConfig ksqlConfig)
boolean isPseudoColumn(
  ColumnName columnName,
  boolean rowpartitionRowoffsetEnabled)

isPseudoColumn validates the given pseudoColumnVersion and checks if the columnName is among the pseudoColumns (by version and name).

  • DataSourceNode is requested to nonKnownColumn
  • PlanNode is requested to orderColumns
  • CodeGenRunner.Visitor is requested to fieldNotFoundErrorMessage
  • QueryValidatorUtil is requested to validateNoUserColumnsWithSameNameAsPseudoColumns
  • SourceSchemas is requested to matchesNonValueField
  • DataSourceExtractor is requested to isClashingColumnName and hasColumn