@@ -606,22 +606,26 @@ private void TestDatePartExtraction(string table, SqlDatePart part, int expected
606606 using ( var reader = command . ExecuteReader ( ) ) {
607607
608608 while ( reader . Read ( ) ) {
609- if ( aliasesEnabled && part != SqlDatePart . Year ) {
610- // year from +-infinity -> +-infinity
609+ if ( aliasesEnabled ) {
610+ // +-infinify
611+ // year from +-infinity -> +-infinity (or 0 in case of versions older than 9.6)
611612 // month from +-infinity -> null (or 0 in case of versions older that 9.6)
612613 if ( Driver . CoreServerInfo . ServerVersion >= StorageProviderVersion . PostgreSql96 ) {
613- Assert . That ( reader . IsDBNull ( 0 ) ) ;
614+ if ( part != SqlDatePart . Year ) {
615+ Assert . That ( reader . IsDBNull ( 0 ) ) ;
616+ }
617+ else {
618+ var partValue = reader . GetDouble ( 0 ) ;
619+ Assert . That ( double . IsInfinity ( partValue ) , Is . True ) ;
620+ }
614621 }
615622 else {
616623 var partValue = reader . GetDouble ( 0 ) ;
617624 Assert . That ( partValue , Is . Zero ) ;
618625 }
619626 }
620- else if ( Driver . CoreServerInfo . ServerVersion < StorageProviderVersion . PostgreSql96 ) {
621- var partValue = reader . GetDouble ( 0 ) ;
622- Assert . That ( partValue , Is . Zero ) ;
623- }
624627 else {
628+ // pure dates
625629 var partValue = reader . GetDouble ( 0 ) ;
626630 CheckPartNative ( partValue , expectedValueNative , aliasesEnabled ) ;
627631 }
@@ -651,21 +655,26 @@ private void TestDateTimePartExtraction(string table, SqlDateTimePart part, int
651655 using ( var reader = command . ExecuteReader ( ) ) {
652656
653657 while ( reader . Read ( ) ) {
654- if ( aliasesEnabled && part != SqlDateTimePart . Year ) {
655- // year from +-infinity -> +-infinity
658+ if ( aliasesEnabled ) {
659+ // +-infinify
660+ // year from +-infinity -> +-infinity (or 0 in case of versions older than 9.6)
656661 // month from +-infinity -> null (or 0 in case of versions older that 9.6)
657- if ( Driver . CoreServerInfo . ServerVersion >= StorageProviderVersion . PostgreSql96 )
658- Assert . That ( reader . IsDBNull ( 0 ) ) ;
662+ if ( Driver . CoreServerInfo . ServerVersion >= StorageProviderVersion . PostgreSql96 ) {
663+ if ( part != SqlDateTimePart . Year ) {
664+ Assert . That ( reader . IsDBNull ( 0 ) ) ;
665+ }
666+ else {
667+ var partValue = reader . GetDouble ( 0 ) ;
668+ Assert . That ( double . IsInfinity ( partValue ) , Is . True ) ;
669+ }
670+ }
659671 else {
660672 var partValue = reader . GetDouble ( 0 ) ;
661673 Assert . That ( partValue , Is . Zero ) ;
662674 }
663675 }
664- else if ( Driver . CoreServerInfo . ServerVersion < StorageProviderVersion . PostgreSql96 ) {
665- var partValue = reader . GetDouble ( 0 ) ;
666- Assert . That ( partValue , Is . Zero ) ;
667- }
668676 else {
677+ // pure dates
669678 var partValue = reader . GetDouble ( 0 ) ;
670679 CheckPartNative ( partValue , expectedValueNative , aliasesEnabled ) ;
671680 }
@@ -695,21 +704,26 @@ private void TestDateTimeOffsetPartExtraction(string table, SqlDateTimeOffsetPar
695704 using ( var reader = command . ExecuteReader ( ) ) {
696705
697706 while ( reader . Read ( ) ) {
698- if ( aliasesEnabled && part != SqlDateTimeOffsetPart . Year ) {
699- // year from +-infinity -> +-infinity
707+ if ( aliasesEnabled ) {
708+ // +-infinify
709+ // year from +-infinity -> +-infinity (or 0 in case of versions older than 9.6)
700710 // month from +-infinity -> null (or 0 in case of versions older that 9.6)
701- if ( Driver . CoreServerInfo . ServerVersion >= StorageProviderVersion . PostgreSql96 )
702- Assert . That ( reader . IsDBNull ( 0 ) ) ;
711+ if ( Driver . CoreServerInfo . ServerVersion >= StorageProviderVersion . PostgreSql96 ) {
712+ if ( part != SqlDateTimeOffsetPart . Year ) {
713+ Assert . That ( reader . IsDBNull ( 0 ) ) ;
714+ }
715+ else {
716+ var partValue = reader . GetDouble ( 0 ) ;
717+ Assert . That ( double . IsInfinity ( partValue ) , Is . True ) ;
718+ }
719+ }
703720 else {
704721 var partValue = reader . GetDouble ( 0 ) ;
705722 Assert . That ( partValue , Is . Zero ) ;
706723 }
707724 }
708- else if ( Driver . CoreServerInfo . ServerVersion < StorageProviderVersion . PostgreSql96 ) {
709- var partValue = reader . GetDouble ( 0 ) ;
710- Assert . That ( partValue , Is . Zero ) ;
711- }
712725 else {
726+ // pure dates
713727 var partValue = reader . GetDouble ( 0 ) ;
714728 CheckPartNative ( partValue , expectedValueNative , aliasesEnabled ) ;
715729 }
0 commit comments