Closed yliuuuu closed 2 months ago
Base (eval) | legacy | +/- | |
---|---|---|---|
% Passing | 90.70% | 92.51% | 1.80% |
:white_check_mark: Passing | 5278 | 5382 | 104 |
:x: Failing | 541 | 436 | -105 |
:large_orange_diamond: Ignored | 0 | 0 | 0 |
Total Tests | 5819 | 5818 | -1 |
Number passing in both: 5071
Number failing in both: 229
Number passing in eval engine but fail in legacy engine: 207
Number failing in eval engine but pass in legacy engine: 312 :interrobang: CONFORMANCE REPORT REGRESSION DETECTED :interrobang: The complete list can be found in GitHub CI summary, either from Step Summary or in the Artifact. 312 test(s) were failing in eval but now pass in legacy. Before merging, confirm they are intended to pass. The complete list can be found in GitHub CI summary, either from Step Summary or in the Artifact.
Base (4f89c2dd4cb6a6199f8056bedc2064db32ea2ce2) | 4588ef844bf159add96505831fabbc78fc45a592 | +/- | |
---|---|---|---|
% Passing | 90.70% | 90.70% | 0.00% |
:white_check_mark: Passing | 5278 | 5278 | 0 |
:x: Failing | 541 | 541 | 0 |
:large_orange_diamond: Ignored | 0 | 0 | 0 |
Total Tests | 5819 | 5819 | 0 |
Number passing in both: 5278
Number failing in both: 541
Number passing in Base (4f89c2dd4cb6a6199f8056bedc2064db32ea2ce2) but now fail: 1
Number failing in Base (4f89c2dd4cb6a6199f8056bedc2064db32ea2ce2) but now pass: 1 :interrobang: CONFORMANCE REPORT REGRESSION DETECTED :interrobang:. The following test(s) were previously passing but now fail:
The following test(s) were previously failing but now pass. Before merging, confirm they are intended to pass:
Base (4f89c2dd4cb6a6199f8056bedc2064db32ea2ce2) | 4588ef844bf159add96505831fabbc78fc45a592 | +/- | |
---|---|---|---|
% Passing | 92.51% | 92.51% | 0.00% |
:white_check_mark: Passing | 5382 | 5382 | 0 |
:x: Failing | 436 | 436 | 0 |
:large_orange_diamond: Ignored | 0 | 0 | 0 |
Total Tests | 5818 | 5818 | 0 |
Number passing in both: 5382
Number failing in both: 436
Number passing in Base (4f89c2dd4cb6a6199f8056bedc2064db32ea2ce2) but now fail: 0
Number failing in Base (4f89c2dd4cb6a6199f8056bedc2064db32ea2ce2) but now pass: 0
Close this PR for now.
We'd like to merge DDL as a post-V1 Feature.
Relevant Issues
Description
Reviewer Note:
I recommend taking a look at the test cases first. Then the internal plan modeling.
Plan Vs Internal Plan: the diff between the two is large in this PR, this is because we want to continue experimenting with model of the ddl plan and type system, while maintain a relatively stable public plan.
Internal Plan:
DDL:
The DDL Operation carries a shape properties and an op properties.
The shape properties describe the resulting shape of data after performed the DDL Operation. This split between
Op
andshape
can be helpful when we incorporate other DDL operation, likeALTER
DdlOpCreateTable
StaticType
. In the public plan, the type definition is not kept to reduced the public API surface.Public Plan:
The public plan is designed to have minimum interference with the existing public APIs. Hence we switch the shape in create table to use static type.
Notice that DDL node will not carry the static type in the public plan, this is a decision that can be revisited. But I opt to not included this properties in this PR. Depending on the status of the type work do over, we can potentially just use the new Type APIs instead of the migration plan. Because we are only working on Create Table, no information will be lost.
Constraints
We should distinguish those from the constraint concept from typed lambda calculus and the constraint concept from SQL Spec.
Not Null Constraints
a INT2
-> the type ofa
will beunionOf(null, int2)
.a INT2 NOT NULL
-> the type ofa
will beint2
.Check constraints.
record
in this pr).Primary key constraint:
This is, given
The type will be:
Other aspect of the PR
ShapeNormalizer: Normalize constraints to the associated type.
a INT2 PRIMARY KEY
. The SQL syntax places primary key constraint, which is a collection level constraint, on attribute level.Record.Field
(struct field) to keep the conversion code simple.ConstraintResolver: Convert the internal type definition to Static Type.
DDLFeatureGate: Gate certain features from customer usage. This is to unblock us from continuously doing internal experiments without the risk of breaking our customer.
Other Information
Updated Unreleased Section in CHANGELOG: [YES/NO]
Any backward-incompatible changes? [YES/NO]
public
visibility in our code-base. >Any new external dependencies? [YES/NO]
Do your changes comply with the Contributing Guidelines and Code Style Guidelines? [YES/NO]
License Information
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.