-
-
Notifications
You must be signed in to change notification settings - Fork 271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define timestamp columns explicitly #1019
Merged
marianaballa
merged 2 commits into
phpList:release-3.6.15
from
bramley:timestamp_columns_2
Mar 28, 2024
Merged
Define timestamp columns explicitly #1019
marianaballa
merged 2 commits into
phpList:release-3.6.15
from
bramley:timestamp_columns_2
Mar 28, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…tting explicit_defaults_for_timestamp
Haven't tested it, but looking at the code looks fine. |
michield
approved these changes
Feb 10, 2024
This pull request has been mentioned on phpList Discuss. There might be relevant details there: https://discuss.phplist.org/t/3-6-15-release-candidate-is-available-for-testing/9473/1 |
This pull request has been mentioned on phpList Discuss. There might be relevant details there: https://discuss.phplist.org/t/phplist-3-6-15-has-been-released/9495/1 |
marianaballa
added a commit
that referenced
this pull request
Apr 26, 2024
* Translations for 3.6.15 (#1032) * Translated using Weblate (English) Currently translated at 91.4% (1950 of 2132 strings) Translation: phpList/phpList3 Translate-URL: http://translate.phplist.org/projects/phplist/phplist3/en/ * Translated using Weblate (French) Currently translated at 99.8% (2128 of 2132 strings) Translation: phpList/phpList3 Translate-URL: http://translate.phplist.org/projects/phplist/phplist3/fr/ --------- Co-authored-by: Duncan Cameron <phplist@dcameron.me.uk> Co-authored-by: Alain Rihs <alainrihs@sunrise.ch> * Support for indicating and getting feedback for e-mail test messages (#1031) * Update sendemaillib.php 1. Appended a test subject indicator to test messages 1. Added a reply-to address to test messages that have no manual reply-to: using the logged in admin's address or at least the general admin's * Update sendemaillib.php Rephrased variable name * Update sendemaillib.php Switched to using $admin_auth * Allowing subscribers to be filtered by confirmed and/or blacklisted (#1030) * Update users.php Allowed to filter by confirmed and/or non blacklisted - and not just by unconfirmed and/or blacklisted * Changed users to subscribers * Bouncemgt - allowing processing only existing bounces + a related new rule action (#1028) * Update bouncemgt.php Added &justexisting=true * Update processbounces.php 1. Added support for &justexisting=true 1. Added support for new bounce rule action * Update lib.php Added support for new bounce action * Update bouncemgt.php Added non default title (otherwise it takes the wrong one) * Update processbounces.php 1. Replaced goto with if-else 1. Hardcoded "-1" instead of supplying it in a sprintf value * Hardcoding defaults for older PHP versions * Removed modern solution * Update Common plugin and Segment plugin (#1024) * Define timestamp columns explicitly (#1019) * Define timestamp fields explicitly to avoid problem with the mysql setting explicit_defaults_for_timestamp * Remove setting of timestamp fields that are automatically updated * update CI to remove old PHP versions and add 8.3 (#1004) * Escape single quote in error message (#1003) * Allow ajax page links to have a title, defaulting to the link description (#1002) Fixes #996 * Update CONTRIBUTING.md (#994) Removed obsolete references * update UUID class to the latest upstream (#990) * update UUID class to the latest upstream * clean up old files * use the list order, even when grouping by category (#1025) * restore ability to create other super users (#1014) * restore ability to create other super users * correctly initialise the privileges array * Bounces' subscriber' status indicator + allowing to confirm right from bounces (#1029) * Update listbounces.php Added support for confirmed/blacklisted indicator * Update bounces.php Added confirmed/blacklisted indicator * Update bounce.php 1. Added confirmed/blacklisted indicator 1. Added support for confirming user from a bounce * Update bounce.php 1. Avoided ternary if because translation system doesn't support it 1. Used the newer s() function * Update listbounces.php Added curly brackets * Used potential translation * Php8fixes 202401 (#1026) * remove deprecated ini_set call * stop possible warning * avoid warning * avoid warning * cast to int * avoid warning on existing being null * force template to be an integer * suppress warnings * check on valid var and cast to int * give buttons an ID, so they can be targetted with testing * avoid warning on empty array index * add notification by email when an admin logs in from a new IP address. (#1027) * add notification by email when an admin logs in from a new IP address. * check IP per admin * force columns to be not null * prevent blocking login on an non-upgraded system and send login alert just to admin, or superuser * keep newlines in translation as they are * make shorter lines, so it renders a bit better * Remove redundant upgrade steps (#1020) * Remove steps that are unnecessary due to the 3.2.0 being the minimum upgrade version * Keep silent when there are no subscriber UUIDs to generate * Remove other unnecessary upgrade steps --------- Co-authored-by: Michiel Dethmers <michiel@phplist.com> * Use utf8mb4 for the connection etc (#1001) * Use utf8mb4 for the connection etc * Support utf8mb4 in campaign subject and content --------- Co-authored-by: Michiel Dethmers <michiel@phplist.com> * use PHP8.2 to build * use latest phplint * update docker build from bookworm * set version * avoid the admin being kicked out after upgrade (#1033) * mark update translations as @wip --------- Co-authored-by: Duncan Cameron <phplist@dcameron.me.uk> Co-authored-by: Alain Rihs <alainrihs@sunrise.ch> Co-authored-by: lwcorp <lwcorp@users.noreply.github.com> Co-authored-by: Duncan Cameron <3147688+bramley@users.noreply.github.com> Co-authored-by: Michiel Dethmers <michiel@phplist.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
As explained in #1015 prior to MySQL 8 when a phplist database was created timestamp columns were implicitly given a default of
current_timestamp
andon update current_timestamp
. This was due to the default value forexplicit_defaults_for_timestamp
being OFF.In MySQL 8 the default changed to ON, which means any databases created with MySQL 8, or MariaDB 10.5, have had timestamp columns created incorrectly leading to null values in those columns.
This PR changes the definitions of timestamp columns to be explicit so that new databases will be created correctly.
For existing databases, any affected columns that have null values are updated to have a valid value. The choices here only seem to be to copy a "created" value if one exists or to use the time of applying the update. The timestamp columns are then changed to have the required definition.
For clarity any places in the code that explicitly set a timestamp column to now() have been removed. There is one place, in processbounces.php that sets a timestamp to a different value, the date/time of a bounce. This has been untouched. The linktrack table has not been changed as it is now read-only.
Related Issue
#1015
Screenshots (if appropriate):