Skip to content

Commit

Permalink
0004115: MySQL zero date to null works on initial load but not change
Browse files Browse the repository at this point in the history
capture
  • Loading branch information
erilong committed Oct 17, 2019
1 parent 09b7856 commit 121aed5
Showing 1 changed file with 9 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

import java.util.HashMap;

import org.jumpmind.db.util.BasicDataSourcePropertyConstants;
import org.jumpmind.symmetric.db.AbstractTriggerTemplate;
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.util.SymmetricUtils;
Expand All @@ -34,7 +35,7 @@ public MySqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
stringColumnTemplate = "cast(if($(tableAlias).`$(columnName)` is null,'',concat('\"',replace(replace($(tableAlias).`$(columnName)`,'\\\\','\\\\\\\\'),'\"','\\\\\"'),'\"')) as char)\n" ;
geometryColumnTemplate = "if($(tableAlias).`$(columnName)` is null,'',concat('\"',replace(replace(astext($(tableAlias).`$(columnName)`),'\\\\','\\\\\\\\'),'\"','\\\\\"'),'\"'))\n" ;
numberColumnTemplate = "if($(tableAlias).`$(columnName)` is null,'',concat('\"',cast($(tableAlias).`$(columnName)` as char),'\"'))\n" ;
datetimeColumnTemplate = "if($(tableAlias).`$(columnName)` is null,'',concat('\"',cast($(tableAlias).`$(columnName)` as char),'\"'))\n" ;
datetimeColumnTemplate = "if($(tableAlias).`$(columnName)` is null" + getConvertZeroDateToNull() + ",'',concat('\"',cast($(tableAlias).`$(columnName)` as char),'\"'))\n" ;
clobColumnTemplate = stringColumnTemplate;
blobColumnTemplate = "if($(tableAlias).`$(columnName)` is null,'',concat('\"',hex($(tableAlias).`$(columnName)`),'\"'))\n" ;
booleanColumnTemplate = "if($(tableAlias).`$(columnName)` is null,'',concat('\"',cast($(tableAlias).`$(columnName)` as unsigned),'\"'))\n" ;
Expand Down Expand Up @@ -163,6 +164,13 @@ public MySqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
"select concat($(columns)) from $(schemaName)$(tableName) t where $(whereClause) " );
}

protected String getConvertZeroDateToNull() {
if (symmetricDialect.getParameterService().getString(BasicDataSourcePropertyConstants.DB_POOL_URL).contains("zeroDateTimeBehavior=convertToNull")) {
return " or $(tableAlias).`$(columnName)` = '0000-00-00'";
}
return "";
}

@Override
protected String castDatetimeColumnToString(String columnName) {
return "cast(\n" + SymmetricUtils.quote(symmetricDialect, columnName) + " as char) as \n" + columnName;
Expand Down

0 comments on commit 121aed5

Please sign in to comment.