/ Changes On Branch date-overflow-fix
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch date-overflow-fix Excluding Merge-Ins

This is equivalent to a diff from 0bdb7ae126 to 3c58b173d9

2016-12-02
17:08
Extend the valid range of 'unixepoch' dates from JulianDay 0 through 9999-12-31. (check-in: 768c9859b2 user: drh tags: trunk)
14:15
Fix a potential integer overflow during out-of-bound date computations. (Closed-Leaf check-in: 3c58b173d9 user: drh tags: date-overflow-fix)
02:19
Test cases for the improved LIKE/GLOB matcher. (check-in: 0bdb7ae126 user: drh tags: trunk)
2016-12-01
19:58
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening sub-selects. Possible fix for [2df0107b]. (check-in: a427c40528 user: dan tags: trunk)

Changes to src/date.c.

837
838
839
840
841
842
843






844

845
846
847
848
849
850
851
837
838
839
840
841
842
843
844
845
846
847
848
849

850
851
852
853
854
855
856
857







+
+
+
+
+
+
-
+







    z = sqlite3_value_text(argv[0]);
    if( !z || parseDateOrTime(context, (char*)z, p) ){
      return 1;
    }
  }
  for(i=1; i<argc; i++){
    z = sqlite3_value_text(argv[i]);
    if( z==0 ) return 1;
    if( p->validJD && !validJulianDay(p->iJD) 
     && strcmp((const char*)z,"unixepoch")!=0
    ){
      return 1;
    }
    if( z==0 || parseModifier(context, (char*)z, p) ) return 1;
    if( parseModifier(context, (char*)z, p) ) return 1;
  }
  computeJD(p);
  if( p->isError || !validJulianDay(p->iJD) ) return 1;
  return 0;
}


Changes to test/date.test.

591
592
593
594
595
596
597
598

599
600
591
592
593
594
595
596
597

598
599
600







-
+


datetest 16.25 {datetime(5373484,'-128963628 hours')} NULL
datetest 16.26 {datetime(5373484,'-5373484 days')} {-4713-11-24 12:00:00}
datetest 16.27 {datetime(5373484,'-5373485 days')} NULL
datetest 16.28 {datetime(5373484,'-176545 months')} {-4713-12-01 12:00:00}
datetest 16.29 {datetime(5373484,'-176546 months')} NULL
datetest 16.30 {datetime(5373484,'-14712 years')} {-4713-12-31 12:00:00}
datetest 16.31 {datetime(5373484,'-14713 years')} NULL

datetest 16.32 {datetime('-5e19','-01:00')} NULL

finish_test