| 3548 | // |
| 3549 | |
| 3550 | static void make_array_declaration(ref* reference) |
| 3551 | { |
| 3552 | |
| 3553 | gpre_fld* field = reference->ref_field; |
| 3554 | const TEXT* name = field->fld_symbol->sym_string; |
| 3555 | |
| 3556 | // Don't generate multiple declarations for the array. V3 Bug 569. |
| 3557 | |
| 3558 | if (field->fld_array_info->ary_declared) |
| 3559 | return; |
| 3560 | |
| 3561 | field->fld_array_info->ary_declared = true; |
| 3562 | const TEXT* dtype; |
| 3563 | |
| 3564 | switch (field->fld_array_info->ary_dtype) |
| 3565 | { |
| 3566 | case dtype_short: |
| 3567 | dtype = "short"; |
| 3568 | break; |
| 3569 | |
| 3570 | case dtype_long: |
| 3571 | dtype = DCL_LONG; |
| 3572 | break; |
| 3573 | |
| 3574 | case dtype_cstring: |
| 3575 | case dtype_text: |
| 3576 | case dtype_varying: |
| 3577 | dtype = "char "; |
| 3578 | break; |
| 3579 | |
| 3580 | case dtype_quad: |
| 3581 | dtype = DCL_QUAD; |
| 3582 | break; |
| 3583 | |
| 3584 | // Begin date/time/timestamp |
| 3585 | case dtype_sql_date: |
| 3586 | dtype = "ISC_DATE"; |
| 3587 | break; |
| 3588 | |
| 3589 | case dtype_sql_time: |
| 3590 | dtype = "ISC_TIME"; |
| 3591 | break; |
| 3592 | |
| 3593 | case dtype_timestamp: |
| 3594 | dtype = "ISC_TIMESTAMP"; |
| 3595 | break; |
| 3596 | // End date/time/timestamp |
| 3597 | |
| 3598 | case dtype_int64: |
| 3599 | dtype = "ISC_INT64"; |
| 3600 | break; |
| 3601 | |
| 3602 | case dtype_real: |
| 3603 | dtype = "float "; |
| 3604 | break; |
| 3605 | |
| 3606 | case dtype_double: |
| 3607 | dtype = "double"; |
no test coverage detected