Skip to content
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

Add support for casting DATE values as Time objects. (:cast_dates_as_times => true) #1012

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

joe07734
Copy link

This patch adds a new query option to cast mysql DATE result values as ruby Time objects.

At Bandcamp we've been using this patch (and the other) in our fork of the mysql2 gem since the beginning. I made this patch because we use DATETIME columns in almost all our tables, but occasionally we'll use DATE. With this patch we don't have to care about mixed results.

This is a default for all our queries:

opts = Mysql2::Client.default_query_options
opts[:cast_dates_as_times] = true

I've been meaning to make these two pull requests since forever. We've had years of experience with them and think they're useful. If you have any questions about how Bandcamp's Linux/MySQL/Ruby stack works, just ask.

@sodabrew
Copy link
Collaborator

This is awesome! Do you have time to also ensure this works for Prepared Statements? Start with adding the same unit test with a statement, it's possible no further work is needed beyond that.

@joe07734
Copy link
Author

Glad you dig it. I'll add the prepared statements test(s) in a bit.

@joe07734
Copy link
Author

joe07734 commented Nov 1, 2018

Added and tested.

@sodabrew
Copy link
Collaborator

sodabrew commented Nov 1, 2018

Usually I'd squash to merge rather than keeping the history of little-edit-commits, but to preserve the two authors, would you squash down to two commits? I suggest one with the main thrust of work and the other with the fixups to get it upstreamed.

@sodabrew sodabrew added this to the 0.6.0 milestone Nov 1, 2018
@joe07734
Copy link
Author

joe07734 commented Nov 7, 2018

It's fine by me if you squash the merge. I'm unclear how I'd squash it in the pull request, is that something you can explain?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants