Skip to content

1.42.8

Compare
Choose a tag to compare
@github-actions github-actions released this 06 Aug 00:37

Merged PRs

dolt

  • 8211: Bug fix: binlog replication: logging levels, use MySQL's older date serialization format
    Small bug fixes for binlog replication while testing with the python-mysql-replication library:
    • Adjusting DEBUG logging to be less verbose
    • Using MySQL's older date serialization format for compatibility
    • Adding a nil check for gtidPosition
  • 8207: removing unconditional recursive calls
    fixes:
  • 8201: chore: update lib:eventsapi 2022-> 2024
    Ran into issues when I ran:
    go install github.com/dolthub/dolt/go/cmd/dolt@main
    # github.com/dolthub/dolt/go/cmd/dolt/commands
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/cherry-pick.go:79:19: undefined: eventsapi.ClientEventType_CHERRY_PICK
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/dump.go:112:19: undefined: eventsapi.ClientEventType_DUMP
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/filter-branch.go:95:19: undefined: eventsapi.ClientEventType_FILTER_BRANCH
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/gc.go:76:19: undefined: eventsapi.ClientEventType_GARBAGE_COLLECTION
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/migrate.go:74:19: undefined: eventsapi.ClientEventType_MIGRATE
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/profile.go:89:19: undefined: eventsapi.ClientEventType_PROFILE
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/rebase.go:74:19: undefined: eventsapi.ClientEventType_REBASE
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/reflog.go:63:19: undefined: eventsapi.ClientEventType_REFLOG
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/show.go:72:19: undefined: eventsapi.ClientEventType_SHOW
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/tag.go:81:19: undefined: eventsapi.ClientEventType_TAG
    /go/pkg/mod/github.com/dolthub/dolt/[email protected]/cmd/dolt/commands/tag.go:81:19: too many errors
    
    Realized the eventsapi library version in go.mod is outdated
  • 8187: Feature: Auto-start binlog replication on server restart
    Once replication has been started with START REPLICA;, replication now automatically restarts when the server is restarted. If replication is stopped with STOP REPLICA;, it is not restarted automatically on server restart. This matches MySQL's behavior.
    This PR also includes a few other small improvements to binlog replication:
    • allows 'show replica status' before replication is started
    • moves logging of binlog messages from DEBUG to TRACE level
    • removes several references to GetRunningServer() global function
      Resolves #8168
  • 8184: [dtables] fix from_commit index behavior
  • 8182: go/libraries/doltcore/env/actions: Improve error message when a clone fails mid-download.
    Fixes a dropped error return in the clone implementation.
  • 8181: Bug fix: resolving case-sensitive table name for TableEditor
    A MySQL primary server may send table names in TableMap binlog events that do not match the case of the table name. We use a case-insensitive table name lookup when getting the table's schema, but not when creating the TableWriter that applies row updates/inserts/deletes. This change fixes that so that mixed case table names can replicate correctly.
  • 8177: Bump fast-xml-parser and @aws-sdk/client-ses in /.github/actions/ses-email-action
    Bumps fast-xml-parser to 4.4.1 and updates ancestor dependency @aws-sdk/client-ses. These dependencies need to be updated together.
    Updates fast-xml-parser from 4.2.5 to 4.4.1
    Changelog

    Sourced from fast-xml-parser's changelog.

    Note: If you find missing information about particular minor version, that version must have been changed without any functional change in this library.

    4.4.1 / 2024-07-28

    • v5 fix: maximum length limit to currency value
    • fix #634: build attributes with oneListGroup and attributesGroupName (#653)(By Andreas Naziris)
    • fix: get oneListGroup to work as expected for array of strings (#662)(By Andreas Naziris)

    4.4.0 / 2024-05-18

    • fix #654: parse attribute list correctly for self closing stop node.
    • fix: validator bug when closing tag is not opened. (#647) (By Ryosuke Fukatani)
    • fix #581: typings; return type of tagValueProcessor & attributeValueProcessor (#582) (By monholm)

    4.3.6 / 2024-03-16

    4.3.5 / 2024-02-24

    • code for v5 is added for experimental use

    4.3.4 / 2024-01-10

    • fix: Don't escape entities in CDATA sections (#633) (By wackbyte)

    4.3.3 / 2024-01-10

    • Remove unnecessary regex

    4.3.2 / 2023-10-02

    4.3.1 / 2023-09-24

    • revert back "Fix typings for builder and parser to make return type generic" to avoid failure of existing projects. Need to decide a common approach.

    4.3.0 / 2023-09-20

    4.2.7 / 2023-07-30

    • Fix: builder should set text node correctly when only textnode is present (#589) (By qianqing)
    • Fix: Fix for null and undefined attributes when building xml (#585) (#598). A null or undefined value should be ignored. (By Eugenio Ceschia)

    4.2.6 / 2023-07-17

    4.2.5 / 2023-06-22

    • change code implementation

    4.2.4 / 2023-06-06

    • fix security bug

    4.2.3 / 2023-06-05

    • fix security bug

    ... (truncated)

    Commits
    • d40e29c update package detail and browser bundles
    • d0bfe8a fix maxlength for currency value
    • 2c14fcf Update bug-report-or-unexpected-output.md
    • acf610f fix #634: build attributes with oneListGroup and attributesGroupName (#653)
    • 931e910 fix: get oneListGroup to work as expected for array of strings (#662)
    • b8e40c8 Update ISSUE_TEMPLATE.md
    • a6265ba chore: add trend image (#658)
    • db1c548 redesign README.md
    • 338a2c6 Rename 1.Getting Started.md to 1.GettingStarted.md
    • c762537 Rename v5 docs filenames (#659)
    • Additional commits viewable in compare view

    Updates `@aws-sdk/client-ses` from 3.554.0 to 3.621.0
    Release notes

    Sourced from @​aws-sdk/client-ses's releases.

    v3.621.0

    3.621.0(2024-07-30)

    Chores
    Documentation Changes
    • client-elasticache: Doc only update for changes to deletion API. (3cf46f19)
    • client-workspaces: Removing multi-session as it isn't supported for pools (01552b00)
    New Features
    • clients: update client endpoints as of 2024-07-30 (ecc97a25)
    • client-lex-models-v2: This release adds new capabilities to the AMAZON.QnAIntent: Custom prompting, Guardrails integration and ExactResponse support for Bedrock Knowledge Base. (4d9c7a12)
    • client-eventbridge: Add v2 smoke tests and smithy smokeTests trait for SDK testing. (65290c81)
    • client-rolesanywhere: IAM RolesAnywhere now supports custom role session name on the CreateSession. This release adds the acceptRoleSessionName option to a profile to control whether a role session name will be accepted in a session request with a given profile. (5bc30087)
    • client-cloudwatch-logs: Add v2 smoke tests and smithy smokeTests trait for SDK testing. (88b6a41c)
    • client-codepipeline: AWS CodePipeline V2 type pipelines now support stage level conditions to enable development teams to safely release changes that meet quality and compliance requirements. (5e8b92d3)
    • client-elastic-load-balancing: Add v2 smoke tests and smithy smokeTests trait for SDK testing. (6cbe7bf6)
    • client-tnb: This release adds Network Service Update, through which customers will be able to update their instantiated networks to a new network package. See the documentation for limitations. The release also enhances the Get network operation API to return parameter overrides used during the operation. (cee6948a)
    • client-auto-scaling: Increase the length limit for VPCZoneIdentifier from 2047 to 5000 (23471630)
    • client-appstream: Added support for Red Hat Enterprise Linux 8 on Amazon AppStream 2.0 (bbb4450b)
    Bug Fixes
    • package.json homepage links to use the main branch (#6336) (e3322302)
    • polly-request-presigner: override middleware name to allow concurrent presigning (#6335) (54990fa2)

    For list of updated packages, view updated-packages.md in assets-3.621.0.zip

    v3.620.1

    3.620.1(2024-07-29)

    Chores
    • release accountId-endpoints config and codegen changes (#6313) (de8d4a6b)
    • release accountId-endpoints credential-provider changes (d5011a5f)
    Documentation Changes
    • client-memorydb: Renaming full service name as it appears in developer documentation. (c94ecdde)
    • client-elasticache: Renaming full service name as it appears in developer documentation. (b5146baa)

    ... (truncated)

    Changelog

    Sourced from @​aws-sdk/client-ses's changelog.

    3.621.0 (2024-07-30)

    Note: Version bump only for package @​aws-sdk/client-ses

    3.620.1 (2024-07-29)

    Note: Version bump only for package @​aws-sdk/client-ses

    3.620.0 (2024-07-25)

    Note: Version bump only for package @​aws-sdk/client-ses

    3.616.0 (2024-07-18)

    Note: Version bump only for package @​aws-sdk/client-ses

    3.614.0 (2024-07-10)

    Note: Version bump only for package @​aws-sdk/client-ses

    3.613.0 (2024-07-09)

    Note: Version bump only for package @​aws-sdk/client-ses

    3.609.0 (2024-07-02)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
  • 8163: chore: init go workspace
    • migrate local replace directives to go.work as per go1.18+ standards
  • 8161: Liuliu/log-graph
    command: dolt log --graph
    Steps for Drawing the Commit Graph
    1. Calculate the Positions of Each Commit:
    • Row Position: Determined by the commit's topological order, initialized using the index in the list. Adjust the vertical spacing between commits based on the commit message's height in expandGraph function.
    • Column Position, calculated based on the positions of child commits, implemented in computeColumnEnds function:
    • No Children: Places the commit in a new column (furthest right) if it has no child commits, indicating the start of a new branch.
    • Branch Children: If a commit has branch children, it is positioned in the same column as its leftmost branch child.
    • Merge Children: For commits with merge children, diagonal lines ('') are used to connect to these children, positioning the commit in an available column starting from its rightmost child.
    1. Render the Graph:
      Place a * at each commit's calculated position to mark it.
      Connect commits using vertical (|) and diagonal (\ or /) lines to represent branches and merges.
      An example of the graph of us-jails:
      Screenshot 2024-08-02 at 10 11 12 AM

go-mysql-server

  • 2616: fix insert id
    The logic setting the InsertID in OkResult, did not match results returned from last_insert_id().
    This was made apparent due to changes from dolthub/go-mysql-server#2614.
    For a single insert statement, MySQL sets InsertID exactly once when the AutoIncrement on the column is first triggered.
    While the linked PR fixes that issue and properly sets the session variable, our insertRowHandler (which is responsible for returning OkResult structs) was setting InsertID incorrectly.
    The fix is to just read the LastInsertID from the session, since it is already set to the right value.
  • 2615: faster status updates
    System variables can be session, global, or both. sql.IncrementStatusVariable is a helper method that primarily helps the "both" category increment the global and session counters for certain variables. Threads_running is a global only variable that is incremented/decremented every begin/end query, and gets a lot of traffic. The old code used sql.IncrementStatusVariable to increment Threads_running, which was a particularly expensive way to increment a global var because (1) we'd make a new error for every call to the session updater, and (2) the extra map lookup is unnecessary. We don't do the extra map lookup now, and we weren't using the error return so I removed the return variable.
    Note: this also refactors status variables to be explicitly initializated in the engine
    bump/perf here: #8189
  • 2614: update LAST_INSERT_ID when auto incrementing from empty, NULL, and DEFAULT
    Our logic for determining whether or not we needed to update last insert id only looked at the insertSource schema.
    This does not take into consideration empty, NULL or DEFAULT values.
    Additionally, the value that last insert id is set to depends on what the auto increment value will be.
    This PR addresses those issues.
    Also, has some refactoring for readability.
    fixes: #7565
  • 2613: Query properties rule filtering
    Edit most of the analyzer interfaces to pass a new context object that accumulates query specific properties. Currently the object is called QueryFlags, and accumulates information about the query to inform better rule filtering and more efficient spooling strategies.
    The change that has the biggest effect on oltp_point_select perf is the sql.QFlagMax1Row setting, which lets us skip the default results iter boilerplate when we're only returning one row. Added a couple other skips for rules that are easy to whitelist correctly and show prominently on CPU profiles, like aggregations and subqueries.
  • 2609: fix output type for DateAdd() and DateSub() functions
    The output of DateAdd(), AddDate(), DateSub(), and SubDate(), changes if the input is a properly formatted string vs a date/datetime/time/timestamp.
    fixes: #7304
  • 2604: Index searchable edits
    We previously added support for integrators choosing their own indexes with an sql.IndexSearchable interface. This was for a customer use case. This PR expands the interface to let Dolt cache information about strict key lookups.
    The motivation is that (1) strict key lookups will always be the best-case scenario result of index costing, (2) caching this information in-between ALTER statements is usually a long enough lifecycle for the overhead to be worth it.
    I added a streamlined range builder as part of this optimization that only accepts literal values in the order expected by the target lookup. The user of this range builder takes responsibility for feeding the values in the correct order. As a result, we sidestep expensive string formatting, map creating, and map lookups during range building.
    Follow-on fixes to functional dependencies permuted plans a bit more. Inner joins are chosen more frequently in some of our test plans now that we're reflecting strict key max-1-row cardinalities.
  • 2601: Fixed error in converting panics to errors

Closed Issues

  • 8206: Unknown JSON struct tag in schema_marshaling.go
  • 8202: Unconditional recursive call in prolly_index_writer_keyless.go
  • 8203: Identical blocks for then and else branches of conditional in typeinfo_test.go
  • 8204: Unconditional recursive call in cs_metrics_wrapper.go
  • 8205: Unconditional recursive call in indexed_dolt_table.go
  • 8168: Support restarting replication on server restart
  • 8185: chore: initialize go workspaces
  • 7565: Dolt doesn't update last_insert_id() when DEFAULT is used
  • 8022: Setting the delimiter to begin with / causes the dolt shell to incorrectly interpret lines as slash commands.
  • 8173: prisma migrate dev, generating changes to columns of the date type in loop
  • 8085: CJException: 3878257648 out of range for int
  • 7304: Date functions should omit 00:00:00 time component when dealing with string arguments

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 2.07 2.91 1.4
groupby_scan 13.46 16.71 1.2
index_join 1.39 2.61 1.9
index_join_scan 1.3 2.11 1.6
index_scan 34.33 52.89 1.5
oltp_point_select 0.18 0.39 2.2
oltp_read_only 3.43 6.79 2.0
select_random_points 0.33 0.7 2.1
select_random_ranges 0.39 0.81 2.1
table_scan 34.33 53.85 1.6
types_table_scan 74.46 139.85 1.9
reads_mean_multiplier 1.8
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.13 5.88 0.7
oltp_insert 3.82 2.97 0.8
oltp_read_write 8.58 12.52 1.5
oltp_update_index 3.89 2.97 0.8
oltp_update_non_index 3.89 2.91 0.7
oltp_write_only 5.37 5.99 1.1
types_delete_insert 7.7 6.43 0.8
writes_mean_multiplier 0.9
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 98.89 38.07 2.6
tpcc_tps_multiplier 2.6
Overall Mean Multiple 1.77