Hi All, I get "ERROR 1067 (42000): Invalid default value for 'REG_LAST_UPDATED_TIME' error when sourcing '<wso2is-5.1.0>/dbscripts/mysql.sql, even after removing 'DEFAULT 0' Please find further information below.
*1. Issue description* CREATE TABLE IF NOT EXISTS REG_RESOURCE( REG_PATH_ID INTEGER NOT NULL, REG_NAME VARCHAR(256), REG_VERSION INTEGER NOT NULL AUTO_INCREMENT, REG_MEDIA_TYPE VARCHAR(500), REG_CREATOR VARCHAR(31) NOT NULL, REG_CREATED_TIME TIMESTAMP NOT NULL, REG_LAST_UPDATOR VARCHAR(31), REG_LAST_UPDATED_TIME TIMESTAMP NOT NULL, REG_DESCRIPTION VARCHAR(1000), REG_CONTENT_ID INTEGER, REG_TENANT_ID INTEGER DEFAULT 0, REG_UUID VARCHAR(100) NOT NULL, CONSTRAINT PK_REG_RESOURCE PRIMARY KEY(REG_VERSION, REG_TENANT_ID) )ENGINE INNODB; When creating above table "ERROR 1067 (42000): Invalid default value for 'REG_LAST_UPDATED_TIME' error occurred and table didn't get created. Please note that this error shows *only when there are two timestamp columns* (REG_CREATED_TIME and REG_LAST_UPDATED_TIME) in the table. *2. What happens when there are two time stamp columns?* According to [1] when we have two timestamp columns not declared an explicit 'DEFAULT' or 'ON UPDATE' clause, first column is automatically assigned the DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP attributes, while the second one is assigned the '0000-00-00 00:00:00' (the “zero” timestamp). *3. Why are we getting the Error explained In issue description?* When 'strict SQL mode' and ' NO_ZERO_DATE' mode is enabled in MySQL server the “zero” timestamp is not allowed and it gives an error [2]. In MySQL 5.7 by default 'NO_ZERO_DATE' mode is enabled. *4.Question* As a fix I found below 1. Setting MySQL mode to 'ALLOW_INVALID_DATES' [3]. EX: SET SQL_MODE='ALLOW_INVALID_DATES'; *Is it okay to use this or is there a much more appropriate way of doing that? * [1]. http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp [2]. http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_date [3]. http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_allow_invalid_dates Thank You, Best Regards, Sewmini. Sewmini Jayaweera *Software Engineer - QA Team* Mobile: +94 (0) 773 381 250 sewm...@wso2.com On Wed, May 25, 2016 at 12:13 PM, Kishanthan Thangarajah < kishant...@wso2.com> wrote: > We can verify and fix this for 4.4.6. > > On Tue, May 24, 2016 at 3:17 PM, Nuwan Dias <nuw...@wso2.com> wrote: > >> This issue is still open. >> >> If we don't fix this before kernel 4.4.6, none of our new products are >> going to be compatible with MySQL 5.7. Which would be a major limitation in >> the platform. >> >> Thanks, >> NuwanD. >> >> On Tue, May 10, 2016 at 4:15 PM, Chandana Napagoda <chand...@wso2.com> >> wrote: >> >>> Hi Janaka, >>> >>> Please note that, this fix will be available in the next kernel release. >>> >>> Regards, >>> Chandana >>> On May 10, 2016 3:14 PM, "Thilini Cooray" <thili...@wso2.com> wrote: >>> >>>> Hi, >>>> >>>> A public JIRA is raised in [1]. >>>> >>>> [1] https://wso2.org/jira/browse/REGISTRY-3610 >>>> >>>> Thanks. >>>> >>>> On Tue, May 10, 2016 at 12:11 PM, Janaka Ranabahu <jan...@wso2.com> >>>> wrote: >>>> >>>>> Hi Thushara >>>>> >>>>> On Tue, May 10, 2016 at 12:06 PM, Thushara Ranawaka < >>>>> thusha...@wso2.com> wrote: >>>>> >>>>>> Hi Thilini, >>>>>> >>>>>> AFAIU you workaround need to be updated with the current >>>>>> timestamp[1][2]. Setting default value to zero is not nice. You might >>>>>> have >>>>>> to figure out the correct syntax for other DB types and test against >>>>>> them. >>>>>> >>>>> What Thilini is pointing is an issue in the Registry database >>>>> creation script. Hence we will create a public JIRA and assign it to you >>>>> guys. Please fix them. >>>>> >>>>> We can not modify the Registry database creation script since API >>>>> Manager would not capture the complete scenarios of G-Reg. >>>>> >>>>> Thanks, >>>>> Janaka >>>>> >>>>> >>>>>> >>>>>> >>>>>> [1] - DEFAULT CURRENT_TIMESTAMP >>>>>> [2] - >>>>>> http://stackoverflow.com/questions/168736/how-do-you-set-a-default-value-for-a-mysql-datetime-column >>>>>> >>>>>> Thanks, >>>>>> Thushara. >>>>>> >>>>>> On Tue, May 10, 2016 at 11:52 AM, Thilini Cooray <thili...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Hi GReg team, >>>>>>> >>>>>>> We encounter following issue [1] while testing API Manager with >>>>>>> MySQL 5.7 >>>>>>> MySQL 5.7 has enabled NO_ZERO_IN_DATE, NO_ZERO_DATE policies by >>>>>>> default. Therefore it does not allow 0 as a valid default value for >>>>>>> date/time. >>>>>>> >>>>>>> As a workaround we can set MySQL server to accept 0 changing the >>>>>>> default server settings if the database owner agrees on it. >>>>>>> [2] contains the related table creation script. >>>>>>> >>>>>>> Appreciate your feedback on a fix for this. >>>>>>> >>>>>>> [1] https://wso2.org/jira/browse/APIMANAGER-4645 >>>>>>> >>>>>>> [2] CREATE TABLE IF NOT EXISTS REG_RESOURCE ( >>>>>>> REG_PATH_ID INTEGER NOT NULL, >>>>>>> REG_NAME VARCHAR(256), >>>>>>> REG_VERSION INTEGER NOT NULL AUTO_INCREMENT, >>>>>>> REG_MEDIA_TYPE VARCHAR(500), >>>>>>> REG_CREATOR VARCHAR(31) NOT NULL, >>>>>>> REG_CREATED_TIME TIMESTAMP NOT NULL *DEFAULT 0*, >>>>>>> REG_LAST_UPDATOR VARCHAR(31), >>>>>>> REG_LAST_UPDATED_TIME TIMESTAMP NOT NULL *DEFAULT 0*, >>>>>>> REG_DESCRIPTION VARCHAR(1000), >>>>>>> REG_CONTENT_ID INTEGER, >>>>>>> REG_TENANT_ID INTEGER DEFAULT 0, >>>>>>> REG_UUID VARCHAR(100) NOT NULL, >>>>>>> CONSTRAINT PK_REG_RESOURCE PRIMARY KEY(REG_VERSION, >>>>>>> REG_TENANT_ID) >>>>>>> )ENGINE INNODB; >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>> -- >>>>>>> Best Regards, >>>>>>> >>>>>>> *Thilini Cooray* >>>>>>> Software Engineer >>>>>>> Mobile : +94 (0) 774 570 112 <%2B94%20%280%29%20773%20451194> >>>>>>> E-mail : thili...@wso2.com >>>>>>> >>>>>>> WSO2 Inc. www.wso2.com >>>>>>> lean.enterprise.middleware >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Thanks, >>>>>> Thushara Kasun Ranawaka >>>>>> Software Engineer >>>>>> WSO2 Inc.; <http://www.wso2.com> >>>>>> lean.enterprise.middleware >>>>>> Mobile : *+94 (0) 773438949 <%2B94%20%280%29%20773438949>* >>>>>> *thusha...@wso2.com <thusha...@wso2.com>* >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Janaka Ranabahu* >>>>> Associate Technical Lead, WSO2 Inc. >>>>> http://wso2.com >>>>> >>>>> >>>>> *E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861 >>>>> <%2B94%20718370861>* >>>>> >>>>> Lean . Enterprise . Middleware >>>>> >>>> >>>> >>>> >>>> -- >>>> Best Regards, >>>> >>>> *Thilini Cooray* >>>> Software Engineer >>>> Mobile : +94 (0) 774 570 112 <%2B94%20%280%29%20773%20451194> >>>> E-mail : thili...@wso2.com >>>> >>>> WSO2 Inc. www.wso2.com >>>> lean.enterprise.middleware >>>> >>> >> >> >> -- >> Nuwan Dias >> >> Technical Lead - WSO2, Inc. http://wso2.com >> email : nuw...@wso2.com >> Phone : +94 777 775 729 >> > > > > -- > *Kishanthan Thangarajah* > Associate Technical Lead, > Platform Technologies Team, > WSO2, Inc. > lean.enterprise.middleware > > Mobile - +94773426635 > Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>* > Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>* > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev