gnucash master: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Tue Aug 2 17:19:19 EDT 2016
Updated via https://github.com/Gnucash/gnucash/commit/31d13bee (commit)
via https://github.com/Gnucash/gnucash/commit/ddb8a43c (commit)
from https://github.com/Gnucash/gnucash/commit/f0d4a971 (commit)
commit 31d13beeb13f1bb9311bf632203985a810556b08
Author: John Ralls <jralls at ceridwen.us>
Date: Tue Aug 2 14:16:30 2016 -0700
Don't error out if select @@sql_mode is an empty string.
Unless there's actually an error. Having no sql_modes set just means
we don't need to filter them.
diff --git a/src/backend/dbi/gnc-backend-dbi.cpp b/src/backend/dbi/gnc-backend-dbi.cpp
index 902f8a2..b2d4b3b 100644
--- a/src/backend/dbi/gnc-backend-dbi.cpp
+++ b/src/backend/dbi/gnc-backend-dbi.cpp
@@ -897,7 +897,10 @@ adjust_sql_options (dbi_conn connection)
{
const char* errmsg;
int err = dbi_conn_error(connection, &errmsg);
- PERR("Unable to get sql_mode %d : %s", err, errmsg);
+ if (err)
+ PERR("Unable to get sql_mode %d : %s", err, errmsg);
+ else
+ PINFO("Sql_mode isn't set.");
}
else
{
commit ddb8a43ca0b94c5d94b1868a89548d18d4af52fd
Author: John Ralls <jralls at ceridwen.us>
Date: Tue Aug 2 14:09:12 2016 -0700
Fix crash and error decoding GDates returned as time64.
Only shows up with MySql/Postgresql because SQLite3 returns a string.
diff --git a/src/backend/sql/gnc-backend-sql.cpp b/src/backend/sql/gnc-backend-sql.cpp
index 973de93..a1ccfa9 100644
--- a/src/backend/sql/gnc-backend-sql.cpp
+++ b/src/backend/sql/gnc-backend-sql.cpp
@@ -2078,16 +2078,23 @@ load_date (const GncSqlBackend* be, GncSqlRow* row,
{
if (G_VALUE_HOLDS_INT64 (val))
{
- gint64 time = g_value_get_int64 (val);
- Timespec ts = {time, 0};
- struct tm tm;
- gint day, month, year;
- GDate date = timespec_to_gdate (ts);
+ /* timespec_to_gdate applies the tz, and gdates are saved
+ * as ymd, so we don't want that.
+ */
+ auto time = g_value_get_int64 (val);
+ auto tm = gnc_gmtime(&time);
+
+ GDate date;
+ g_date_clear(&date, 1);
+ g_date_set_dmy(&date, tm->tm_mday,
+ static_cast<GDateMonth>(tm->tm_mon + 1),
+ tm->tm_year + 1900);
+ free(tm);
if (table_row->gobj_param_name != NULL)
{
if (QOF_IS_INSTANCE (pObject))
qof_instance_increase_editlevel (QOF_INSTANCE (pObject));
- g_object_set (pObject, table_row->gobj_param_name, date, NULL);
+ g_object_set (pObject, table_row->gobj_param_name, &date, NULL);
if (QOF_IS_INSTANCE (pObject))
qof_instance_increase_editlevel (QOF_INSTANCE (pObject));
}
Summary of changes:
src/backend/dbi/gnc-backend-dbi.cpp | 5 ++++-
src/backend/sql/gnc-backend-sql.cpp | 19 +++++++++++++------
2 files changed, 17 insertions(+), 7 deletions(-)
More information about the gnucash-changes
mailing list