| @@ 559-576 (lines=18) @@ | ||
| 556 | ||
| 557 | // Get a list of text columns. |
|
| 558 | $columns = array(); |
|
| 559 | if ($db_type == 'postgresql') |
|
| 560 | $request = $smcFunc['db_query']('', ' |
|
| 561 | SELECT column_name "Field", data_type "Type" |
|
| 562 | FROM information_schema.columns |
|
| 563 | WHERE table_name = {string:cur_table} |
|
| 564 | AND (data_type = \'character varying\' or data_type = \'text\')', |
|
| 565 | array( |
|
| 566 | 'cur_table' => $db_prefix.$cur_table, |
|
| 567 | ) |
|
| 568 | ); |
|
| 569 | else |
|
| 570 | $request = $smcFunc['db_query']('', ' |
|
| 571 | SHOW FULL COLUMNS |
|
| 572 | FROM {db_prefix}{raw:cur_table}', |
|
| 573 | array( |
|
| 574 | 'cur_table' => $cur_table, |
|
| 575 | ) |
|
| 576 | ); |
|
| 577 | while ($column_info = $smcFunc['db_fetch_assoc']($request)) |
|
| 578 | if (strpos($column_info['Type'], 'text') !== false || strpos($column_info['Type'], 'char') !== false) |
|
| 579 | $columns[] = strtolower($column_info['Field']); |
|
| @@ 582-601 (lines=20) @@ | ||
| 579 | $columns[] = strtolower($column_info['Field']); |
|
| 580 | ||
| 581 | // Get the column with the (first) primary key. |
|
| 582 | if ($db_type == 'postgresql') |
|
| 583 | $request = $smcFunc['db_query']('', ' |
|
| 584 | SELECT a.attname "Column_name", \'PRIMARY\' "Key_name", attnum "Seq_in_index" |
|
| 585 | FROM pg_index i |
|
| 586 | JOIN pg_attribute a ON a.attrelid = i.indrelid |
|
| 587 | AND a.attnum = ANY(i.indkey) |
|
| 588 | WHERE i.indrelid = {string:cur_table}::regclass |
|
| 589 | AND i.indisprimary', |
|
| 590 | array( |
|
| 591 | 'cur_table' => $db_prefix.$cur_table, |
|
| 592 | ) |
|
| 593 | ); |
|
| 594 | else |
|
| 595 | $request = $smcFunc['db_query']('', ' |
|
| 596 | SHOW KEYS |
|
| 597 | FROM {db_prefix}{raw:cur_table}', |
|
| 598 | array( |
|
| 599 | 'cur_table' => $cur_table, |
|
| 600 | ) |
|
| 601 | ); |
|
| 602 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
| 603 | { |
|
| 604 | if ($row['Key_name'] === 'PRIMARY') |
|