]> granicus.if.org Git - postgresql/commitdiff
Applied Zoltan's patch to correctly align interval and timestamp data in ecpg's sqlda.
authorMichael Meskes <meskes@postgresql.org>
Thu, 17 Nov 2011 13:07:25 +0000 (14:07 +0100)
committerMichael Meskes <meskes@postgresql.org>
Thu, 17 Nov 2011 13:07:25 +0000 (14:07 +0100)
src/interfaces/ecpg/ecpglib/sqlda.c

index a1a0e18104f2b20ba025a41014c5069a5faa57e0..ac43c4bfa84458f65f650fd8adc80b5732d9e102 100644 (file)
@@ -127,10 +127,10 @@ sqlda_common_total_size(const PGresult *res, int row, enum COMPAT_MODE compat, l
                                ecpg_sqlda_align_add_size(offset, sizeof(date), sizeof(date), &offset, &next_offset);
                                break;
                        case ECPGt_timestamp:
-                               ecpg_sqlda_align_add_size(offset, sizeof(int), sizeof(timestamp), &offset, &next_offset);
+                               ecpg_sqlda_align_add_size(offset, sizeof(int64), sizeof(timestamp), &offset, &next_offset);
                                break;
                        case ECPGt_interval:
-                               ecpg_sqlda_align_add_size(offset, sizeof(int), sizeof(interval), &offset, &next_offset);
+                               ecpg_sqlda_align_add_size(offset, sizeof(int64), sizeof(interval), &offset, &next_offset);
                                break;
                        case ECPGt_char:
                        case ECPGt_unsigned_char:
@@ -359,7 +359,7 @@ ecpg_set_compat_sqlda(int lineno, struct sqlda_compat ** _sqlda, const PGresult
                                sqlda->sqlvar[i].sqllen = sizeof(date);
                                break;
                        case ECPGt_timestamp:
-                               ecpg_sqlda_align_add_size(offset, sizeof(timestamp), sizeof(timestamp), &offset, &next_offset);
+                               ecpg_sqlda_align_add_size(offset, sizeof(int64), sizeof(timestamp), &offset, &next_offset);
                                sqlda->sqlvar[i].sqldata = (char *) sqlda + offset;
                                sqlda->sqlvar[i].sqllen = sizeof(timestamp);
                                break;
@@ -545,7 +545,7 @@ ecpg_set_native_sqlda(int lineno, struct sqlda_struct ** _sqlda, const PGresult
                                sqlda->sqlvar[i].sqllen = sizeof(date);
                                break;
                        case ECPGt_timestamp:
-                               ecpg_sqlda_align_add_size(offset, sizeof(timestamp), sizeof(timestamp), &offset, &next_offset);
+                               ecpg_sqlda_align_add_size(offset, sizeof(int64), sizeof(timestamp), &offset, &next_offset);
                                sqlda->sqlvar[i].sqldata = (char *) sqlda + offset;
                                sqlda->sqlvar[i].sqllen = sizeof(timestamp);
                                break;