Skip to content

v0.12.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@vgapeyev vgapeyev released this 15 Jun 21:39
· 788 commits to main since this release
e256776

Added

  • Adds support for using EXCLUDED within DML ON-CONFLICT-ACTION conditions. Closes #1111.

Changed

  • Updates Kotlin target from 1.4 (DEPRECATED) to 1.6
  • Moves PartiqlAst, PartiqlLogical, PartiqlLogicalResolved, and PartiqlPhysical (along with the transforms)
    to a new project, partiql-ast. These are still imported into partiql-lang with the api annotation. Therefore,
    no action is required to consume the migrated classes. However, this now gives consumers of the AST, Experimental Plans,
    Visitors, and VisitorTransforms the option of importing them directly using: org.partiql:partiql-ast:${VERSION}.
    The file partiql.ion is still published in the partiql-lang-kotlin JAR.
  • Moves internal class org.partiql.lang.syntax.PartiQLParser to org.partiql.lang.syntax.impl.PartiQLPigParser as we refactor for explicit API.
  • Moves ANTLR grammar to partiql-parser package. The files PartiQL.g4 and PartiQLTokens.g4 are still published in the partiql-lang-kotlin JAR.
  • Breaking: Adds new property, rowAlias, to experimental PartiqlLogical.DmlOperation.DmlUpdate,
    PartiqlLogical.DmlOperation.DmlReplace, PartiqlLogicalResolved.DmlOperation.DmlUpdate,
    PartiqlLogicalResolved.DmlOperation.DmlReplace, PartiqlPhysical.DmlOperation.DmlUpdate, and
    PartiqlPhysical.DmlOperation.DmlReplace.

Deprecated

Fixed

Removed

  • Breaking: Removes deprecated org.partiql.annotations.PartiQLExperimental

  • Breaking: Removes deprecated/unused blacklist() and denyList() from org.partiql.lang.eval

  • Breaking: Removes deprecated enum LEGACY in org.partiql.lang.eval.CompileOptions

  • Breaking: Removes deprecated org.partiql.lang.eval.ExprValueFactory, as well as all methods that had its instance
    among arguments. The counterparts of these methods without an ExprValueFactory are still available. The affected methods
    include: ofIonStruct() in org.partiql.lang.eval.Bindings, a constructor of org.partiql.lang.CompilerPipeline,
    convert() in org.partiql.lang.eval.io.DelimitedValues.ConversionMode, exprValue() from
    org.partiql.lang.eval.io.DelimitedValues, a constructor for org.partiql.lang.eval.physical.EvaluatorState, and
    valueFactory, build, builder, standard in org.partiql.lang.CompilerPipeline

  • Breaking: Removes deprecated org.partiql.lang.eval.visitors.GroupKeyReferencesVisitorTransform

  • Breaking: Removes org.partiql.lang.mappers.StaticTypeMapper

  • Breaking: Removes org.partiql.lang.mappers.IonSchemaMapper

  • Breaking: Removes org.partiql.lang.mappers.TypeNotFoundException

  • Breaking: Removes org.partiql.lang.mappers.getBaseTypeName()

  • Breaking: Removes unused/deprecated enums KEYWORD, TOKEN_TYPE, EXPECTED_TOKEN_TYPE, EXPECTED_TOKEN_TYPE_1_OF_2,
    EXPECTED_TOKEN_TYPE_2_OF_2, TIMESTAMP_STRING, NARY_OP from org.partiql.lang.errors.Property

  • Breaking: Removes unused tokenTypeValue() from org.partiql.lang.errors.PropertyValue

  • Breaking: Removes unused TOKEN_CLASS from org.partiql.lang.errors.PropertyType

  • Breaking: Removes unused set(Property, TokenType) from org.partiql.lang.errors.PropertyValueMap

  • Breaking: Removes unused/deprecated enums LEXER_INVALID_NAME, LEXER_INVALID_OPERATOR, LEXER_INVALID_ION_LITERAL,
    PARSE_EXPECTED_KEYWORD, PARSE_EXPECTED_TOKEN_TYPE, PARSE_EXPECTED_2_TOKEN_TYPES, PARSE_EXPECTED_TYPE_NAME,
    PARSE_EXPECTED_WHEN_CLAUSE, PARSE_EXPECTED_WHERE_CLAUSE, PARSE_EXPECTED_CONFLICT_ACTION, PARSE_EXPECTED_RETURNING_CLAUSE,
    PARSE_UNSUPPORTED_RETURNING_CLAUSE_SYNTAX, PARSE_UNSUPPORTED_TOKEN, PARSE_EXPECTED_MEMBER, PARSE_UNSUPPORTED_SELECT,
    PARSE_UNSUPPORTED_CASE, PARSE_UNSUPPORTED_CASE_CLAUSE, PARSE_UNSUPPORTED_ALIAS, PARSE_UNSUPPORTED_SYNTAX,
    PARSE_UNSUPPORTED_SYNTAX, PARSE_INVALID_PATH_COMPONENT, PARSE_MISSING_IDENT_AFTER_AT, PARSE_UNEXPECTED_OPERATOR,
    PARSE_UNEXPECTED_TERM, PARSE_UNEXPECTED_KEYWORD, PARSE_EXPECTED_EXPRESSION, PARSE_EXPECTED_LEFT_PAREN_AFTER_CAST,
    PARSE_EXPECTED_LEFT_PAREN_VALUE_CONSTRUCTOR, PARSE_EXPECTED_LEFT_PAREN_BUILTIN_FUNCTION_CALL,
    PARSE_EXPECTED_RIGHT_PAREN_BUILTIN_FUNCTION_CALL, PARSE_EXPECTED_ARGUMENT_DELIMITER, PARSE_CAST_ARITY,
    PARSE_INVALID_TYPE_PARAM, PARSE_EMPTY_SELECT, PARSE_SELECT_MISSING_FROM, PARSE_MISSING_OPERATION,
    PARSE_MISSING_SET_ASSIGNMENT, PARSE_EXPECTED_IDENT_FOR_GROUP_NAME, PARSE_EXPECTED_IDENT_FOR_ALIAS,
    PARSE_EXPECTED_KEYWORD_FOR_MATCH, PARSE_EXPECTED_IDENT_FOR_MATCH, PARSE_EXPECTED_LEFT_PAREN_FOR_MATCH_NODE,
    PARSE_EXPECTED_RIGHT_PAREN_FOR_MATCH_NODE, PARSE_EXPECTED_LEFT_BRACKET_FOR_MATCH_EDGE,
    PARSE_EXPECTED_RIGHT_BRACKET_FOR_MATCH_EDGE, PARSE_EXPECTED_PARENTHESIZED_PATTERN, PARSE_EXPECTED_EDGE_PATTERN_MATCH_EDGE,
    PARSE_EXPECTED_EQUALS_FOR_MATCH_PATH_VARIABLE, PARSE_EXPECTED_AS_FOR_LET, PARSE_UNSUPPORTED_CALL_WITH_STAR,
    PARSE_NON_UNARY_AGREGATE_FUNCTION_CALL, PARSE_NO_STORED_PROCEDURE_PROVIDED, PARSE_MALFORMED_JOIN,
    PARSE_EXPECTED_IDENT_FOR_AT, PARSE_INVALID_CONTEXT_FOR_WILDCARD_IN_SELECT_LIST,
    PARSE_CANNOT_MIX_SQB_AND_WILDCARD_IN_SELECT_LIST, PARSE_ASTERISK_IS_NOT_ALONE_IN_SELECT_LIST,
    SEMANTIC_DUPLICATE_ALIASES_IN_SELECT_LIST_ITEM, SEMANTIC_NO_SUCH_FUNCTION, SEMANTIC_INCORRECT_ARGUMENT_TYPES_TO_FUNC_CALL,
    EVALUATOR_NON_TEXT_STRUCT_KEY, SEMANTIC_INCORRECT_NODE_ARITY, SEMANTIC_ASTERISK_USED_WITH_OTHER_ITEMS,
    getKeyword() from org.partiql.lang.errors.ErrorCode

  • Breaking: Removes unused fillErrorContext() from org.partiql.lang.eval

  • Breaking: Removes deprecated isNull() from org.partiql.lang.eval.ExprValueType

  • Breaking: Remove unused fromTypeName(), fromSqlDataType(), fromSqlDataTypeOrNull() from org.partiql.lang.eval.ExprValueType

  • Breaking: Removes deprecated org.partiql.lang.syntax.Lexer

  • Breaking: Removes unused STANDARD_AGGREGATE_FUNCTIONS, OperatorPrecedenceGroups from org.partiql.lang.syntax

  • Breaking: Removes deprecated org.partiql.lang.syntax.SourcePosition

  • Breaking: Removes deprecated org.partiql.lang.syntax.SourceSpan

  • Breaking: Removes deprecated org.partiql.lang.syntax.Token

  • Breaking: Removes deprecated org.partiql.lang.syntax.TokenType

  • Breaking: Stops publishing PartiQL ISL to Maven Central. The last published version is https://central.sonatype.com/artifact/org.partiql/partiql-isl-kotlin/0.11.0

  • Breaking: Removes unused package org.partiql.lang.schemadiscovery which included unused classes of:
    SchemaInferencerFromExample, SchemaInferencerFromExampleImpl, TypeConstraint, NormalizeNullableVisitorTransform,
    NormalizeDecimalPrecisionsToUpToRange, and IonExampleParser.

  • Breaking: Removes unused package org.partiql.lang.partiqlisl which includes unused classes/methods: ResourceAuthority,
    getResourceAuthority(), and loadPartiqlIsl().

  • Breaking: Plan nodes cannot be directly instantiated. To instantiate, use the Plan (DEFAULT) factory.

  • Breaking: PlanRewriter has been moved from org.partiql.plan.visitor.PlanRewriter to org.partiql.plan.util.PlanRewriter

Security

Contributors

Thank you to all who have contributed!

Commits: v0.11.0-alpha...v0.12.0-alpha