v0.13.0-alpha
Pre-release
Pre-release
Release v0.13.0-alpha
Added
- Adds
org.partiql.value
(experimental) package for reading/writing PartiQL values - Adds function overloading to the
CompilerPipeline
and experimentalPartiQLCompilerPipeline
. - Adds new method
getFunctions()
toorg.partiql.spi.Plugin
. - Adds
PartiQLFunction
interface. - Adds
FunctionSignature
andFunctionParameter
class toorg/partiql/types/function
. - Adds a new flag
--plugins
to PartiQL CLI to allow users to specify the root of their plugins directory.
The default is~/.partiql/plugins
. Each implementer of a plugin should place a directory under the
plugins root containing the JAR corresponding with their plugin implementation.
Example:~/.partiql/plugins/customPlugin/customPlugin.jar
- Adds serialization and deserialization between IonValue and
org.partiql.value
. - Adds
org.partiql.ast
package and usage documentation - Adds
org.partiql.parser
package and usage documentation - Adds PartiQL's Timestamp Data Model.
- Adds support for Timestamp constructor call in Parser.
- Parsing of label patterns within node and edge graph patterns now supports
disjunction|
, conjunction&
, negation!
, and grouping. - Adds default
equals
andhashCode
methods for each generated abstract class of Sprout. This affects the generated
classes in:partiql-ast
and:partiql-plan
. - Adds README to
partiql-types
package. - Initializes PartiQL's Code Coverage library
- Adds support for BRANCH and BRANCH-CONDITION Coverage
- Adds integration with JUnit5 for ease-of-use
- For more information, see the "Writing PartiQL Unit Tests" article in our GitHub Wiki.
- Adds new constructor parameters to all variants of
PartiQLResult
. - Adds two new methods to
PartiQLResult
:getCoverageData
andgetCoverageStructure
.
Changed
- Breaking: all product types defined by the internal Sprout tool no longer generate interfaces. They are now abstract
classes due to the generation ofequals
andhashCode
methods. This change impacts many generated interfaces exposed
in:partiql-ast
and:partiql-plan
. - Standardizes
org/partiql/cli/functions/QueryDDB
and other built-in functions inorg/partiql/lang/eval/builtins
by the newExprFunction
format. - Breaking: Redefines
org/partiql/lang/eval/ExprFunctionkt.call()
method by only invokingcallWithRequired
function. - Breaking: Redefines
org/partiql/lang/eval/builtins/DynamicLookupExprFunction
by mergingvariadicParameter
intorequiredParameters
as aStaticType.LIST
.callWithVariadic
is now replaced bycallWithRequired
. - Upgrades ion-java to 1.10.2.
- Breaking (within experimental graph features): As part of extending
the language of graph label patterns:- Changed the type of the field
label
in AST nodes
org.partiql.lang.domains.PartiqlAst.GraphMatchPatternPart.{Node,Edge}
,
fromSymbolPrimitive
to newGraphLabelSpec
. - Changed the names of subclasses of
org.partiql.lang.graph.LabelSpec
,
fromOneOf
toName
, and fromWhatever
toWildcard
.
- Changed the type of the field
- Breaking the package
org.partiql.lang.errors
has been moved toorg.partiql.errors
, moved classes includeorg.partiql.lang.errors.ErrorCategory
->org.partiql.errors.ErrorCategory
org.partiql.lang.errors.Property
->org.partiql.errors.Property
org.partiql.lang.errors.PropertyValue
->org.partiql.errors.PropertyValue
org.partiql.lang.errors.PropertyType
->org.partiql.errors.PropertyType
org.partiql.lang.errors.PropertyValueMap
->org.partiql.errors.PropertyValueMap
org.partiql.lang.errors.ErrorCode
->org.partiql.errors.ErrorCode
org.partiql.lang.errors.Problem
->org.partiql.errors.Problem
org.partiql.lang.errors.ProblemDetails
->org.partiql.errors.ProblemDetails
org.partiql.lang.errors.ProblemSeverity
->org.partiql.errors.ProblemSeverity
org.partiql.lang.errors.ProblemHandler
->org.partiql.errors.ProblemHandler
- Breaking the
sourceLocation
field oforg.partiql.errors.Problem
was changed fromorg.partiql.lang.ast.SoureceLocationMeta
toorg.partiql.errors.ProblemLocation
. - Breaking removed redundant ValueParameter from FunctionParameter as all parameters are values.
- Introduces
isNullCall
andisNullable
properties to FunctionSignature. - Removed
Nullable...Value
implementations of PartiQLValue and made the standard implementations nullable. - Using PartiQLValueType requires optin; this was a miss from an earlier commit.
- Modified timestamp static type to model precision and time zone.
Deprecated
- Breaking: Deprecates the
Arguments
,RequiredArgs
,RequiredWithOptional
, andRequiredWithVariadic
classes,
along with thecallWithOptional()
,callWithVariadic()
, and the overloadedcall()
methods in theExprFunction
class,
marking them with a Deprecation Level of ERROR. Now, it's recommended to use
call(session: EvaluationSession, args: List<ExprValue>)
andcallWithRequired()
instead. - Breaking: Deprecates
optionalParameter
andvariadicParameter
in theFunctionSignature
with a Deprecation
Level of ERROR. Please use multiple implementations of ExprFunction and use the LIST ExprValue to
represent variadic parameters instead.
Fixed
Removed
- Breaking: Removes
optionalParameter
andvariadicParameter
fromorg.partiql.lang.types.FunctionSignature
. To continue support for evaluation ofoptionalParameters
, please create another same-named function. To continue support for evaluation ofvariadicParameter
, please use aStaticType.LIST
to hold all previously variadic parameters.
As this changes coincides with the addition of function overloading, onlycallWithRequired
will be invoked upon execution of anExprFunction
. Note: Function overloading is now allowed, which is the reason for the removal ofoptionalParameter
andvariadicParameter
. - Breaking: Removes unused class
Arguments
fromorg.partiql.lang.eval
. - Breaking: Removes unused parameter
args: Arguments
fromorg.partiql.lang.eval.ExprFunctionkt.call()
method.
Security
Contributors
Thank you to all who have contributed!
Commits: v0.12.0-alpha...v0.13.0-alpha