Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bumpCreated with
brew bump-formula-pr.release notes
Bind vars can be specified in a string format or a binary format. The library Doltgres uses for decoding the bind vars (
pgtype) errors out when converting some types in binary format to string format. The error looks like:cannot scan timestamp (OID 1114) in binary format into *string.As part of fixing
timestamp, I also found thatdateandboolneeded special handling, too, and I updated our prepared statement tests with more type coverage and to ensure we hit both the string format and binary format bind var code paths.Fixes: Error for
INSERTusing prepared statement with timestamp column dolthub/doltgresql#1419OID equality is found very commonly in expensive joins on pg_catalog tables, and was revealed to be a major bottleneck in SQLAlchemy performance via profiling.
Removes two duplicate type definitions. Original customer report also mentioned unused tokens, although those have been left in, since they are valid Postgres tokens and many will likely be used as we continue extending Doltgres support.
Related to: Duplicated %type declarations in postgres/parser/parser/sql.y dolthub/doltgresql#1592
This takes 30% or more off pg_catalog accesses. Before:
After:
Erroring out is preventing gms from setting system variables when server starts (dolthub/go-mysql-server#3005) since AssignValues calls InitValue with global set to true.
Also unskipped a few formerly skipped tests for another aggregate function since it's now supported by the engine.
This extends the definitions build script to search for GCC and Clang too. These were all tested and confirmed to work locally.
SETqueries to expectOKResultcompanion pr: Only print
Query Okresults in interactive shell. dolthub/dolt#9441Also picks up newer versions of our crosstools toolchain and sets the platform_version metadata in the MacOS builds so that they will be more compatible with App Store release in the future if the Workbench ever supports Doltgres.
Depends on Support for set-returning functions dolthub/go-mysql-server#3054
Fixes dolthub/dolt#483
Removed Doltgres over specific expected error string on constraint check test
Fixes dolthub/dolt#483
Add skip for test since
doltgresharness does not create remote dir withh.UseLocalFileSystem()Relies on:
This implements support for
CREATE EXTENSION, in that onlyuuid-osspis tested. This doesn't handle everything else that's needed forDROP EXTENSION, such as tracking the created artifacts. There are also some skipped tests where the results aren't quite what are expected, but besides that everything works assuming the environment requirements are satisfied.Relies on Utility method to list all system tables in a schema dolthub/dolt#9339
Also fixes a bug in NOT IN expressions
UPDATE ... FROMAdds support for using
UPDATE ... FROMstatements to update a table using data joined from other tables.The biggest gap I'm aware of is support for executing triggers on the updated table. GMS needs some additional changes to clean up the interface for
plan.GetUpdatable()and needs to return implementations ofsql.DatabaseSchemaTablein order for Doltgres triggers to work withUPDATE ... FROMstatements.Depends on: Minor updates to support
UPDATE ... FROMin Doltgres dolthub/go-mysql-server#3016SELECTstatements with no expressionsResolves SELECT FROM ... support dolthub/doltgresql#1470
IS NULLexpression on recordsPostgres semantics for
IS NULLandIS NOT NULLdiffer slightly from the the MySQL semantics implemented in GMS. For records and composites,IS NULLreturns true if the record/composite itself isNULLor if all values in the record/composite areNULL.IS NOT NULLreturns true only if all values in the record/composite are notNULL. Note that this means, for records and composites in Postgres,IS NOT NULLis not equivalent toNOT(IS NULL).This change adds custom implementations of
IS NULLandIS NOT NULLto support Postgres' behavior with records and composites.Depends on: Abstract
IsNullandIsNotNullexpression logic dolthub/go-mysql-server#3064Depends on Support for injected expressions with ORDER BY clauses dolthub/go-mysql-server#3001
This invalidates the previous approach, but I want feedback on this technique before I remove it.
Also added user types to pg_types table
Partial fix for #1465
Other aggregate functions will require type overload resolution logic that this first function, array_agg, does not.
Also not yet supported: the
ORDER BYclause in the function, e.g.:array_agg ( anyarray ORDER BY input_sort_columns )This behavior was introduced in Bug fix for dolt_ tables with incompatible types dolthub/doltgresql#1408
Depends on add returning clause case for assign exec index rule dolthub/go-mysql-server#2986
EXISTS, prepared statement typingThis fixes the failing query in SQLAlchemy Demo no work with Doltgres dolthub/doltgresql#1464
One of the new tests for SHOW SEQUENCES exposes a very bad bug:
ROW()record constructor supportInitial support for the
ROW()constructor expression, which creates anonymous records.This PR adds support for basic uses of the
ROW()constructor, such as creating records from groups of expressions, selecting records, comparing records, and using records inWHEREclauses. There are still severalrecordfeatures that don't work yet, such as using a table alias with theROW()constructor.Fixes: ROW keyword for tuples not yet supported dolthub/doltgresql#1425
Depends on: Bug fix: use ExtendedType serialization if present dolthub/go-mysql-server#2982
Confirmed fix for unable to prepare query: unsupported syntax dolthub/doltgresql#1424
Closed Issues
INSERTusing prepared statement with timestamp columnOFFSET $1errors withunsupported syntax: <nil>ORDER BYsupport in aggregate functionsView the full release notes at https://github.com/dolthub/doltgresql/releases/tag/v0.51.0.