• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

skeema / skeema / 7729820783
92%

Build:
DEFAULT BRANCH: main
Ran 31 Jan 2024 05:20PM UTC
Jobs 1
Files 75
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Jan 2024 04:41PM UTC coverage: 93.266% (+0.02%) from 93.243%
7729820783

push

github

evanelias
workspace=docker: fix cross-flavor sql_mode portability edge cases

When using workspace=docker, Skeema v1.10.1+ will attempt to connect to the
"real" target database server to obtain its sql_mode, and then apply that
sql_mode to the Docker container; see commit cfc11a0. Unfortunately this
behavior can be detrimental when the real database server's flavor does not
match the Docker container image's flavor, since some sql_mode values are
not present in all flavors. This commit attempts to fix the situation by
stripping out non-portable sql_mode values from Docker workspace connection
pools on an as-needed basis.

In practice this situation most commonly comes up when the target database
server runs MySQL 5.7, and Skeema is being run on an Apple Silicon Mac. In
this situation, workspace=docker must substitute a mysql:8.0 image, since
pre-8.0 images are not available for ARM CPUs. However, MySQL 5.7's default
sql_mode includes NO_AUTO_CREATE_USER, which has been removed from MySQL 8.0,
so the real database server's sql_mode cannot be used as-is for the workspace
connection pools.

The same situation with NO_AUTO_CREATE_USER comes up when overriding --flavor
on the command-line for `skeema lint`, for example using workspace=docker to
test compatibility of a schema across both MySQL and MariaDB, since MariaDB's
default sql_mode also includes NO_AUTO_CREATE_USER.

Less commonly, several other non-default sql_mode values are only present in
certain flavors/versions. The behavior in this commit simply strips all non-
portable values, since these sql_modes either do not affect DDL, or are
already stripped from introspection-related code paths. This logic may need to
be enhanced in the future to only strip specific modes that are missing from
a given flavor, for example once a future MySQL version completely removes
NO_ZERO_DATE and NO_ZERO_IN_DATE, since these impact DDL and shouldn't be
stripped from flavors which do still support them.

Separately, this comm... (continued)

9709 of 10410 relevant lines covered (93.27%)

1.11 hits per line

Jobs
ID Job ID Ran Files Coverage
1 7729820783.1 31 Jan 2024 05:20PM UTC 0
93.27
GitHub Action Run
Source Files on build 7729820783
Detailed source file information is not available for this build.
  • Back to Repo
  • 686294ed on github
  • Prev Build on main (#7586487175)
  • Next Build on main (#7822844759)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc