|
10 | 10 | *
|
11 | 11 | *
|
12 | 12 | * IDENTIFICATION
|
13 |
| - * $PostgreSQL: pgsql/src/backend/utils/adt/nabstime.c,v 1.161 2009/06/11 14:49:03 momjian Exp $ |
| 13 | + * $PostgreSQL: pgsql/src/backend/utils/adt/nabstime.c,v 1.162 2009/09/04 11:20:22 heikki Exp $ |
14 | 14 | *
|
15 | 15 | *-------------------------------------------------------------------------
|
16 | 16 | */
|
@@ -786,20 +786,25 @@ tintervalrecv(PG_FUNCTION_ARGS)
|
786 | 786 | {
|
787 | 787 | StringInfo buf = (StringInfo) PG_GETARG_POINTER(0);
|
788 | 788 | TimeInterval tinterval;
|
| 789 | + int32 status; |
789 | 790 |
|
790 | 791 | tinterval = (TimeInterval) palloc(sizeof(TimeIntervalData));
|
791 | 792 |
|
792 | 793 | tinterval->status = pq_getmsgint(buf, sizeof(tinterval->status));
|
| 794 | + tinterval->data[0] = pq_getmsgint(buf, sizeof(tinterval->data[0])); |
| 795 | + tinterval->data[1] = pq_getmsgint(buf, sizeof(tinterval->data[1])); |
| 796 | + |
| 797 | + if (tinterval->data[0] == INVALID_ABSTIME || |
| 798 | + tinterval->data[1] == INVALID_ABSTIME) |
| 799 | + status = T_INTERVAL_INVAL; /* undefined */ |
| 800 | + else |
| 801 | + status = T_INTERVAL_VALID; |
793 | 802 |
|
794 |
| - if (!(tinterval->status == T_INTERVAL_INVAL || |
795 |
| - tinterval->status == T_INTERVAL_VALID)) |
| 803 | + if (status != tinterval->status) |
796 | 804 | ereport(ERROR,
|
797 | 805 | (errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
|
798 | 806 | errmsg("invalid status in external \"tinterval\" value")));
|
799 | 807 |
|
800 |
| - tinterval->data[0] = pq_getmsgint(buf, sizeof(tinterval->data[0])); |
801 |
| - tinterval->data[1] = pq_getmsgint(buf, sizeof(tinterval->data[1])); |
802 |
| - |
803 | 808 | PG_RETURN_TIMEINTERVAL(tinterval);
|
804 | 809 | }
|
805 | 810 |
|
|
0 commit comments