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