We are extremely excited to announce the release of 1.0.0.
For more information, please refer to the PLK 1.0 Website.
What's Changed
- Initializes PartiQL's Engine by @johnedquinn in #1283
- Updates partiql-eval public API and internal classes by @rchowell in #1287
- Adds support for FILTER in Eval by @johnedquinn in #1290
- Adds INNER JOIN, LEFT JOIN, Path Step Key & Fixes ExprStruct by @johnedquinn in #1294
- Merge
main
topartiql-eval
(incl #1298 fix) by @alancai98 in #1300 - Adds support for FULL/RIGHT OUTER JOIN and improves performance of JOINs by @johnedquinn in #1295
- Merges 0.14 main into partiql-eval by @rchowell in #1314
- Adds evaluation of TUPLEUNION by @johnedquinn in #1301
- Adds support for evaluation of CASE WHEN THEN by @johnedquinn in #1307
- Adds literal STRUCT test by @johnedquinn in #1299
- Updates pivot on rebase and join tests by @rchowell in #1316
- Initializes bindings in connectors and globals by @rchowell in #1317
- Adds support for DISTINCT in Eval by @johnedquinn in #1292
- Adds lt, lte, gt, gte, eq, not operators. by @rchowell in #1330
- Adds IS TYPE and string builtin functions to PartiQL Plugin by @rchowell in #1326
- Adds unary, logical, binary arithmetic, and concat operators by @johnedquinn in #1325
- add conformance reporting by @yliuuuu in #1333
- Implements date_add builtin in partiql-eval by @yliuuuu in #1334
- Add
EXCLUDE
topartiql-eval
by @alancai98 in #1320 - Partiql plugin cherrypick by @yliuuuu in #1349
- Enable Eval Test Suites by @yliuuuu in #1340
- Adds support for dynamic dispatch in evaluation by @johnedquinn in #1347
- Adds support for PERMISSIVE vs STRICT by @johnedquinn in #1353
- Merges partiql-spi work into partiql-plugin-impl by @rchowell in #1360
- Merge evaluator work to partiql-eval branch by @rchowell in #1362
- Add
RelSort
and comparator betweenPartiQLValue
by @alancai98 in #1343 - Cast Impl & Char_length & Abs function by @yliuuuu in #1363
- Adds UNPIVOT, LIMIT, and OFFSET to partiql-eval by @rchowell in #1364
- Adds support for correlated subqueries & coercions via scoping by @johnedquinn in #1365
- initial implementation for like, between and in by @yliuuuu in #1373
- Partiql eval limit offset by @yliuuuu in #1371
- Adds support for aggregations by @johnedquinn in #1367
- Fix Join Hang by @yliuuuu in #1380
- Adds performance optimizations for materialization by @johnedquinn in #1379
- Releases v1.0.0-perf.1 by @johnedquinn in #1381
- Partiql eval wildcard by @yliuuuu in #1374
- Additional Functions implementation for Eval Engine by @yliuuuu in #1375
- Partiql eval continue by @yliuuuu in #1370
- Adds performance optimizations for ExprCallDynamic by @johnedquinn in #1388
- Moves lang.eval sources back to partiql-lang by @johnedquinn in #1412
- PartiQL Eval - Planner Mode by @yliuuuu in #1385
- Run build + tests on every branch by @alancai98 in #1423
- Revert "PartiQL Eval - Planner Mode (#1385)" by @rchowell in #1425
- Merges main branch into v1 by @rchowell in #1420
- Apply "PartiQL Eval - Planner Mode (#1385)" by @rchowell in #1429
- Skips GPML conformance tests for new evaluator by @johnedquinn in #1426
- Adds support for NULLIF and COALESCE by @johnedquinn in #1435
- Fixes to UNPIVOT normalization and empty struct typing by @rchowell in #1431
- Adds support for catching type check exceptions in FILTER when permissive by @johnedquinn in #1434
- Makes a planner missing node into a compile-time error for strict mode by @rchowell in #1437
- Handles null calls in dynamic dispatch by @rchowell in #1436
- Updates AVG to return DECIMAL by @johnedquinn in #1432
- Adds compilation/evaluation support for UNION/INTERSECT/EXCEPT ALL/DISTINCT by @johnedquinn in #1430
- Add binary API compatibility checks to v1 branch by @alancai98 in #1427
- Fix build after #1427 by @alancai98 in #1444
- Support parsing for attribute and tuple level constraint by @yliuuuu in #1442
- run apiDump by @yliuuuu in #1447
- struct subfield and list element type by @yliuuuu in #1449
- Internalize generated ANTLR sources by @alancai98 in #1452
- V1 ddl extended keyword by @yliuuuu in #1455
- Add to non-reserved keywords; rework
functionName
andsymbolPrimitive
parse rules by @alancai98 in #1457 - Merges main into V1 by @johnedquinn in #1469
- Deprecates absent types and removes associated planner logic by @johnedquinn in #1463
- Updates conformance tests and enables easier conformance debugging by @johnedquinn in #1470
- Fixes ANTLR parser grammar and renames parser g4 file by @rchowell in #1474
- Changes INT/INTEGER to be an alias for INT4 by @rchowell in #1473
- Remove hard-coded aggregations from parser and ast by @alancai98 in #1464
- Fix Functions.md heading for text functions by @alancai98 in #1479
- Adds support for parameterized decimal cast by @rchowell in #1483
- Merges main into v1 by @johnedquinn in #1481
- Initializes Datum and adds functionality to evaluator by @johnedquinn in #1451
- Update conformance GH action gradle version by @alancai98 in #1485
- Update conformance GH action gradle version (#1485) by @alancai98 in #1486
- Initializes PType by @johnedquinn in #1488
- Add implementation of date, time, and timestamp values for
PartiQLValueTextWriter
by @alancai98 in #1492 - Add some tests missing from #1492 by @alancai98 in #1493
- Fix bag constructor parsing by @alancai98 in #1500
- Cherry picks #1504 (Fix published jars for non-shadowed packages) by @alancai98 in #1505
- Simplifies joins and fixes bugs by @johnedquinn in #1438
- Add operator node to AST and parser by @alancai98 in #1499
- Updates rules for variable resolution by @johnedquinn in #1508
- Fixes parsing of signed numeric literals by @rchowell in #1484
- Fixes timestamp bug by @johnedquinn in #1515
- Fixes null comparisons and coercions of null collections by @johnedquinn in #1454
- Fixes CASE-WHEN conformance tests by @johnedquinn in #1509
- Merges v1-catalog into v1 by @rchowell in #1521
- Updates conformance tests to latest by @johnedquinn in #1524
- Fixes function invocation for missing arguments by @johnedquinn in #1523
- Replaces internal IR ids and paths with the catalog identifiers and names by @rchowell in #1526
- Replaces PartiQLPlanner.Session with the catalog Session interface by @rchowell in #1528
- V1 roll back ddl by @yliuuuu in #1525
- Add more cast tests by @am357 in #1527
- Fixes small bugs by @johnedquinn in #1529
- Updates CLI/Shell to use the V1 engine by @rchowell in #1458
- Simplify functions in preparation for PartiQL-PATH by @rchowell in #1530
- Initializes plan interfaces for expressions and relations by @rchowell in #1532
- Moves shared dependencies to SPI by @rchowell in #1531
- Optimizes dynamic dispatch & casts. Fixes arithmetic operations, casts, and more. by @johnedquinn in #1533
- Initializes logical plan builders by @rchowell in #1535
- Fixes all DISTINCT conformance tests by @johnedquinn in #1513
- Updates functions and aggregation calls to use Datum by @johnedquinn in #1537
- [v1] Fix try-catch for conformance tests expecting an error by @alancai98 in #1542
- Updates conformance comparison report and exception handling by @johnedquinn in #1547
- [V1] Use consistent names across PType and Datum by @rchowell in #1546
- Addresses some conformance edge cases by @johnedquinn in #1539
- Adds Datum comparator by @johnedquinn in #1545
- Replaces ConnectorMetadata/BindingPath with the catalog interfaces. by @rchowell in #1536
- [v1] Refactor representation of set ops by @alancai98 in #1538
- Merges tag v0.14.8 into v1 by @johnedquinn in #1565
- Adds dataframe style logical plan builders by @rchowell in #1555
- Replaces deprecated SqlBlock with optimized version by @rchowell in #1564
- Removes ConnectorBindings in favor of Table getDatum by @rchowell in #1568
- [v1] Remove
CAN_CAST
andCAN_LOSSLESS_CAST
from partiql-ast by @alancai98 in #1544 - [v1] Remove DML and EXEC ast nodes by @alancai98 in #1552
- Updates to latest conformance tests by @johnedquinn in #1570
- Adds paths to V1 plans by @rchowell in #1571
- Ports evaluation changes to v1 plans by @rchowell in #1573
- [v1] Upgrade to Kotlin 1.9 by @alancai98 in #1578
- [V1] Adds evaluation for the V1 plan interfaces by @rchowell in #1576
- [V1] Moves datum/catalog from eval/planner to spi java package by @rchowell in #1581
- [1/2] Resolve functions from the catalog by @rchowell in #1584
- [2/2] Removes temp SqlFnProvider by @rchowell in #1587
- Generalizes back-tick Ion to a variant pair in the AST by @rchowell in #1591
- Removes unused SPI APIs and makes connector instantiate catalogs by @rchowell in #1588
- Dumps partiql-lang evaluation and parsing test cases and removes partiql-lang source by @johnedquinn in #1593
- [1/2] Function modeling as instance providers and remove signatures by @rchowell in #1598
- Removes ISL and PIG by @johnedquinn in #1596
- [2/2] Parameter match on SqlTypeFamily by @rchowell in #1603
- Fixes small evaluation bugs related to casts, types, etc by @johnedquinn in #1577
- Adds the partiql-lang import-only package by @rchowell in #1607
- Prepares rc.2-SNAPSHOT by @rchowell in #1609
- [v1] Add simplified AST classes and visitors by @alancai98 in #1579
- Adds typing support the V1 logical plans. by @rchowell in #1617
- Fixes a file name not allowed in windows by @johnedquinn in #1619
- [v1] Fix conformance report comment finding by @alancai98 in #1620
- [v1] Add Lombok Builders to classes; make every field final by @alancai98 in #1616
- [v1] Add AST factory methods; some fixes to AST classes by @alancai98 in #1622
- [v1] Make Kotlin AST factory methods by @alancai98 in #1623
- Adds an empty catalog implementation by @rchowell in #1624
- Updates partiql-eval APIs to Java and split compile phase by @rchowell in #1618
- Initializes PartiQL's error reporting mechanism by @johnedquinn in #1615
- [v1] Add equals and hashcode for AST classes by @alancai98 in #1627
- [v1] Add .valueOf and .values methods for enums by @alancai98 in #1628
- [v1] Add name method to AstEnum by @alancai98 in #1630
- [v1] Migrate parser to new AST by @alancai98 in #1626
- [v1] Adds AstVisitor and AstRewriter; port partiql-ast normalization passes to partiql-planner by @alancai98 in #1629
- [v1] Add v1 ast -> plan conversion; hook up w/ existing code by @alancai98 in #1631
- Replaces partiql-memory with standard impls. by @rchowell in #1636
- Adds Parser APIs in Java and allows for parsing multiple statements by @johnedquinn in #1634
- [v1] Rename V1Parser to Parser; move parser builder within the interface by @alancai98 in #1637
- Define datum reader/writer interfaces with variant by @rchowell in #1635
- [v1] Port SqlDialect to v1 AST by @alancai98 in #1638
- [v1] Delete sprout-generated AST; remove
v1
from AST package path by @alancai98 in #1639 - [V1] Adds basic strategies to compiler (see #1625) by @rchowell in #1644
- Prepares v1.0.0-rc.2 release by @johnedquinn in #1643
- Adds -SNAPSHOT by @rchowell in #1645
- Removes StaticType's public API by @johnedquinn in #1648
- Removes SEXP, SYMBOL, and DECIMAL_ARBITRARY from PType and Datum by @johnedquinn in #1633
- Rewrites PLUS and BITWISE_AND implementations using new modeling by @johnedquinn in #1647
- Bump dawidd6/action-download-artifact from 2 to 6 in /.github/workflows by @dependabot in #1653
- Fixes conformance failures by @johnedquinn in #1651
- Simplifies PType's APIs by @johnedquinn in #1658
- Added parsing support for Create Table Statement by @yliuuuu in #1652
- [V1] Address 1.0 partiql-plan feedback and cleanup by @rchowell in #1665
- [v1] Remove PartiQLValue from AST; refactor AST literals by @alancai98 in #1650
- Adds DML (INSERT, DELETE, UPDATE, UPSERT, REPLACE) by @johnedquinn in #1666
- Merges
v1
intomain
by @johnedquinn in #1672 - Adds a built-in PartiQL System catalog, support for SQL-Path, and SPI cleanup by @johnedquinn in #1670
- [v1] Refactor AstNode getChildren() method; change tag to be mutable int by @alancai98 in #1674
- Releases v1.0.0-rc.3 by @johnedquinn in #1676
- [v1] Make
AstNode
equals and hashcode abstract; add missing impls by @alancai98 in #1677 - [v1] Add null defaults to AST factory methods by @alancai98 in #1675
- [v1] Add IS [NOT] TRUE|FALSE|UNKNOWN; make IS NULL and IS MISSING separate AST nodes by @alancai98 in #1679
- Adds -SNAPSHOT by @rchowell in #1683
- [v1] Remove UNKNOWN AST enum variant by @alancai98 in #1688
- Implements VARIANT and removes PartiQLValue by @johnedquinn in #1678
- [v1] Change public fields to Lombok getters; make concrete classes final by @alancai98 in #1685
- [v1] Add javadoc for AST; refactor of ExprVarRef scope by @alancai98 in #1694
- Updates Datum to use java.time for a sane datetime by @rchowell in #1691
- Renames all hidden built-in functions using unicode non-character by @johnedquinn in #1695
- [v1] Remodel AST paths exprs and identifiers; rename SPI's Identifier part to simple by @alancai98 in #1700
- [v1] AST docs and public API cleanup by @alancai98 in #1704
- SPI & Types Package Audit by @johnedquinn in #1703
- [v1] Parser docs and cleanup by @alancai98 in #1707
- [v1] Planner docs and cleanup by @alancai98 in #1708
- Removes
Datum#getBigInteger()
and deprecation notices on Datum by @johnedquinn in #1706 - Ports v0.14.9 changes by @johnedquinn in #1702
- Audits eval package by @johnedquinn in #1709
- [v1] Re-enable some randomized tests by @alancai98 in #1696
- Audits the org.partiql.plan.rex package by @johnedquinn in #1710
- [v1] Fix ABS integer overflow; add parsing of TINYINT by @alancai98 in #1716
- Fixes decimal/numeric arithmetic & mistyped function bugs by @johnedquinn in #1711
- [v1] Plan
Rel
and misc docs and cleanup by @alancai98 in #1712 - Flushes out PartiQL's runtime exceptions by @johnedquinn in #1717
- [v1] Fix unary minus with numeric literal parsing; add data exception for unary neg overflow by @alancai98 in #1718
- Creates PRuntimeException and audits eval package by @johnedquinn in #1719
- Misc cleanup of errors and docs by @alancai98 in #1720
- Updates default impls of Catalog#getFunctions and Catalog#getAggregations by @johnedquinn in #1723
- [v1] Test conformance report upload by @alancai98 in #1726
- Updates README by @johnedquinn in #1724
- Adds Fn, FnProvider, Agg, and AggProvider APIs by @johnedquinn in #1722
- [v1] Fix things found by custom ktlint rules by @alancai98 in #1728
- Adds
Datum#row()
by @johnedquinn in #1729 - Release v1.0.0 by @johnedquinn in #1725
- [v1] Rename SPI's type Field to PTypeField by @alancai98 in #1730
New Contributors
- @dependabot made their first contribution in #1653
Full Changelog: v0.14.9...v1.0.0