Difference between revisions of "API:EPrints/Database"
Line 12: | Line 12: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_synopsis --> | <!-- Pod2Wiki=head_synopsis --> | ||
==SYNOPSIS== | ==SYNOPSIS== | ||
Line 24: | Line 23: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_description --> | <!-- Pod2Wiki=head_description --> | ||
==DESCRIPTION== | ==DESCRIPTION== | ||
Line 37: | Line 35: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_cross_database_support --> | <!-- Pod2Wiki=head_cross_database_support --> | ||
===Cross-database Support=== | ===Cross-database Support=== | ||
Line 46: | Line 43: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_quoting_sql_values --> | <!-- Pod2Wiki=head_quoting_sql_values --> | ||
===Quoting SQL Values=== | ===Quoting SQL Values=== | ||
Line 60: | Line 56: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_methods --> | <!-- Pod2Wiki=head_methods --> | ||
==METHODS== | ==METHODS== | ||
Line 67: | Line 62: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_database --> | <!-- Pod2Wiki=head_database --> | ||
===Database=== | ===Database=== | ||
Line 74: | Line 68: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_new --> | <!-- Pod2Wiki=item_new --> | ||
====new==== | ====new==== | ||
Line 85: | Line 78: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create --> | <!-- Pod2Wiki=item_create --> | ||
====create==== | ====create==== | ||
Line 96: | Line 88: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_connect --> | <!-- Pod2Wiki=item_connect --> | ||
====connect==== | ====connect==== | ||
Line 107: | Line 98: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_disconnect --> | <!-- Pod2Wiki=item_disconnect --> | ||
====disconnect==== | ====disconnect==== | ||
Line 118: | Line 108: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_set_debug --> | <!-- Pod2Wiki=item_set_debug --> | ||
====set_debug==== | ====set_debug==== | ||
Line 129: | Line 118: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_set_version --> | <!-- Pod2Wiki=item_set_version --> | ||
====set_version==== | ====set_version==== | ||
Line 140: | Line 128: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_version --> | <!-- Pod2Wiki=item_get_version --> | ||
====get_version==== | ====get_version==== | ||
Line 151: | Line 138: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_is_latest_version --> | <!-- Pod2Wiki=item_is_latest_version --> | ||
====is_latest_version==== | ====is_latest_version==== | ||
Line 162: | Line 148: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_server_version --> | <!-- Pod2Wiki=item_get_server_version --> | ||
====get_server_version==== | ====get_server_version==== | ||
Line 173: | Line 158: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_default_charset --> | <!-- Pod2Wiki=item_get_default_charset --> | ||
====get_default_charset==== | ====get_default_charset==== | ||
Line 186: | Line 170: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_default_collation --> | <!-- Pod2Wiki=item_get_default_collation --> | ||
====get_default_collation==== | ====get_default_collation==== | ||
Line 199: | Line 182: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_driver_name --> | <!-- Pod2Wiki=item_get_driver_name --> | ||
====get_driver_name==== | ====get_driver_name==== | ||
Line 210: | Line 192: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_error --> | <!-- Pod2Wiki=item_error --> | ||
====error==== | ====error==== | ||
Line 221: | Line 202: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_retry_error --> | <!-- Pod2Wiki=item_retry_error --> | ||
====retry_error==== | ====retry_error==== | ||
Line 232: | Line 212: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_duplicate_error --> | <!-- Pod2Wiki=item_duplicate_error --> | ||
====duplicate_error==== | ====duplicate_error==== | ||
Line 243: | Line 222: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_begin --> | <!-- Pod2Wiki=item_begin --> | ||
====begin==== | ====begin==== | ||
Line 254: | Line 232: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_commit --> | <!-- Pod2Wiki=item_commit --> | ||
====commit==== | ====commit==== | ||
Line 265: | Line 242: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_rollback --> | <!-- Pod2Wiki=item_rollback --> | ||
====rollback==== | ====rollback==== | ||
Line 276: | Line 252: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_type_info --> | <!-- Pod2Wiki=item_type_info --> | ||
====type_info==== | ====type_info==== | ||
Line 287: | Line 262: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_column_type --> | <!-- Pod2Wiki=item_get_column_type --> | ||
====get_column_type==== | ====get_column_type==== | ||
Line 329: | Line 303: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_schema_manipulation --> | <!-- Pod2Wiki=head_schema_manipulation --> | ||
===Schema Manipulation=== | ===Schema Manipulation=== | ||
Line 336: | Line 309: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_archive_tables --> | <!-- Pod2Wiki=item_create_archive_tables --> | ||
====create_archive_tables==== | ====create_archive_tables==== | ||
Line 347: | Line 319: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_archive_tables --> | <!-- Pod2Wiki=item_drop_archive_tables --> | ||
====drop_archive_tables==== | ====drop_archive_tables==== | ||
Line 358: | Line 329: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_version_table --> | <!-- Pod2Wiki=item_create_version_table --> | ||
====create_version_table==== | ====create_version_table==== | ||
Line 369: | Line 339: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_version_table --> | <!-- Pod2Wiki=item_drop_version_table --> | ||
====drop_version_table==== | ====drop_version_table==== | ||
Line 380: | Line 349: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_dataset_tables --> | <!-- Pod2Wiki=item_create_dataset_tables --> | ||
====create_dataset_tables==== | ====create_dataset_tables==== | ||
Line 391: | Line 359: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_dataset_tables --> | <!-- Pod2Wiki=item_drop_dataset_tables --> | ||
====drop_dataset_tables==== | ====drop_dataset_tables==== | ||
Line 402: | Line 369: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_dataset_index_tables --> | <!-- Pod2Wiki=item_create_dataset_index_tables --> | ||
====create_dataset_index_tables==== | ====create_dataset_index_tables==== | ||
Line 413: | Line 379: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_dataset_ordervalues_tables --> | <!-- Pod2Wiki=item_create_dataset_ordervalues_tables --> | ||
====create_dataset_ordervalues_tables==== | ====create_dataset_ordervalues_tables==== | ||
Line 424: | Line 389: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_has_dataset --> | <!-- Pod2Wiki=item_has_dataset --> | ||
====has_dataset==== | ====has_dataset==== | ||
Line 437: | Line 401: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_has_field --> | <!-- Pod2Wiki=item_has_field --> | ||
====has_field==== | ====has_field==== | ||
Line 448: | Line 411: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_add_field --> | <!-- Pod2Wiki=item_add_field --> | ||
====add_field==== | ====add_field==== | ||
Line 461: | Line 423: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_remove_field --> | <!-- Pod2Wiki=item_remove_field --> | ||
====remove_field==== | ====remove_field==== | ||
Line 472: | Line 433: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_rename_field --> | <!-- Pod2Wiki=item_rename_field --> | ||
====rename_field==== | ====rename_field==== | ||
Line 485: | Line 445: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_table --> | <!-- Pod2Wiki=item_create_table --> | ||
====create_table==== | ====create_table==== | ||
Line 498: | Line 457: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_foreign_key --> | <!-- Pod2Wiki=item_create_foreign_key --> | ||
====create_foreign_key==== | ====create_foreign_key==== | ||
Line 511: | Line 469: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_counters --> | <!-- Pod2Wiki=item_create_counters --> | ||
====create_counters==== | ====create_counters==== | ||
Line 522: | Line 479: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_has_counter --> | <!-- Pod2Wiki=item_has_counter --> | ||
====has_counter==== | ====has_counter==== | ||
Line 533: | Line 489: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_counter --> | <!-- Pod2Wiki=item_create_counter --> | ||
====create_counter==== | ====create_counter==== | ||
Line 544: | Line 499: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_remove_counters --> | <!-- Pod2Wiki=item_remove_counters --> | ||
====remove_counters==== | ====remove_counters==== | ||
Line 555: | Line 509: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_counter --> | <!-- Pod2Wiki=item_drop_counter --> | ||
====drop_counter==== | ====drop_counter==== | ||
Line 566: | Line 519: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_counter_current --> | <!-- Pod2Wiki=item_counter_current --> | ||
====counter_current==== | ====counter_current==== | ||
Line 577: | Line 529: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_counter_next --> | <!-- Pod2Wiki=item_counter_next --> | ||
====counter_next==== | ====counter_next==== | ||
Line 588: | Line 539: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_counter_minimum --> | <!-- Pod2Wiki=item_counter_minimum --> | ||
====counter_minimum==== | ====counter_minimum==== | ||
Line 599: | Line 549: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_counter_reset --> | <!-- Pod2Wiki=item_counter_reset --> | ||
====counter_reset==== | ====counter_reset==== | ||
Line 610: | Line 559: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_next_doc_pos --> | <!-- Pod2Wiki=item_next_doc_pos --> | ||
====next_doc_pos==== | ====next_doc_pos==== | ||
Line 621: | Line 569: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_sql_utility_methods --> | <!-- Pod2Wiki=head_sql_utility_methods --> | ||
===SQL utility methods=== | ===SQL utility methods=== | ||
Line 628: | Line 575: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_do --> | <!-- Pod2Wiki=item_do --> | ||
====do==== | ====do==== | ||
Line 639: | Line 585: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_prepare --> | <!-- Pod2Wiki=item_prepare --> | ||
====prepare==== | ====prepare==== | ||
Line 655: | Line 600: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_prepare_select --> | <!-- Pod2Wiki=item_prepare_select --> | ||
====prepare_select==== | ====prepare_select==== | ||
Line 675: | Line 619: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_has_sequence --> | <!-- Pod2Wiki=item_has_sequence --> | ||
====has_sequence==== | ====has_sequence==== | ||
Line 686: | Line 629: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_sequence --> | <!-- Pod2Wiki=item_create_sequence --> | ||
====create_sequence==== | ====create_sequence==== | ||
Line 697: | Line 639: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_sequence --> | <!-- Pod2Wiki=item_drop_sequence --> | ||
====drop_sequence==== | ====drop_sequence==== | ||
Line 708: | Line 649: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_column --> | <!-- Pod2Wiki=item_drop_column --> | ||
====drop_column==== | ====drop_column==== | ||
Line 719: | Line 659: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_primary_key --> | <!-- Pod2Wiki=item_get_primary_key --> | ||
====get_primary_key==== | ====get_primary_key==== | ||
Line 732: | Line 671: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_primary_key --> | <!-- Pod2Wiki=item_create_primary_key --> | ||
====create_primary_key==== | ====create_primary_key==== | ||
Line 743: | Line 681: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_index --> | <!-- Pod2Wiki=item_create_index --> | ||
====create_index==== | ====create_index==== | ||
Line 754: | Line 691: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_create_unique_index --> | <!-- Pod2Wiki=item_create_unique_index --> | ||
====create_unique_index==== | ====create_unique_index==== | ||
Line 765: | Line 701: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_index_name --> | <!-- Pod2Wiki=item_index_name --> | ||
====index_name==== | ====index_name==== | ||
Line 778: | Line 713: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item__update --> | <!-- Pod2Wiki=item__update --> | ||
====_update==== | ====_update==== | ||
Line 793: | Line 727: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_insert --> | <!-- Pod2Wiki=item_insert --> | ||
====insert==== | ====insert==== | ||
Line 806: | Line 739: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_insert_quoted --> | <!-- Pod2Wiki=item_insert_quoted --> | ||
====insert_quoted==== | ====insert_quoted==== | ||
Line 819: | Line 751: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_delete_from --> | <!-- Pod2Wiki=item_delete_from --> | ||
====delete_from==== | ====delete_from==== | ||
Line 832: | Line 763: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_count_table --> | <!-- Pod2Wiki=item_count_table --> | ||
====count_table==== | ====count_table==== | ||
Line 843: | Line 773: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_has_table --> | <!-- Pod2Wiki=item_has_table --> | ||
====has_table==== | ====has_table==== | ||
Line 854: | Line 783: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_has_column --> | <!-- Pod2Wiki=item_has_column --> | ||
====has_column==== | ====has_column==== | ||
Line 865: | Line 793: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_table --> | <!-- Pod2Wiki=item_drop_table --> | ||
====drop_table==== | ====drop_table==== | ||
Line 876: | Line 803: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_clear_table --> | <!-- Pod2Wiki=item_clear_table --> | ||
====clear_table==== | ====clear_table==== | ||
Line 887: | Line 813: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_rename_table --> | <!-- Pod2Wiki=item_rename_table --> | ||
====rename_table==== | ====rename_table==== | ||
Line 898: | Line 823: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_swap_table --> | <!-- Pod2Wiki=item_swap_table --> | ||
====swap_table==== | ====swap_table==== | ||
Line 909: | Line 833: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_tables --> | <!-- Pod2Wiki=item_get_tables --> | ||
====get_tables==== | ====get_tables==== | ||
Line 920: | Line 843: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_quoting_values --> | <!-- Pod2Wiki=head_quoting_values --> | ||
===Quoting Values=== | ===Quoting Values=== | ||
Line 927: | Line 849: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_prep_int --> | <!-- Pod2Wiki=item_prep_int --> | ||
====prep_int==== | ====prep_int==== | ||
Line 938: | Line 859: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_prep_value --> | <!-- Pod2Wiki=item_prep_value --> | ||
====prep_value==== | ====prep_value==== | ||
Line 949: | Line 869: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_prep_like_value --> | <!-- Pod2Wiki=item_prep_like_value --> | ||
====prep_like_value==== | ====prep_like_value==== | ||
Line 960: | Line 879: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_quote_value --> | <!-- Pod2Wiki=item_quote_value --> | ||
====quote_value==== | ====quote_value==== | ||
Line 973: | Line 891: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_quote_int --> | <!-- Pod2Wiki=item_quote_int --> | ||
====quote_int==== | ====quote_int==== | ||
Line 984: | Line 901: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_quote_binary --> | <!-- Pod2Wiki=item_quote_binary --> | ||
====quote_binary==== | ====quote_binary==== | ||
Line 997: | Line 913: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_quote_ordervalue --> | <!-- Pod2Wiki=item_quote_ordervalue --> | ||
====quote_ordervalue==== | ====quote_ordervalue==== | ||
Line 1,008: | Line 923: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_quote_identifier --> | <!-- Pod2Wiki=item_quote_identifier --> | ||
====quote_identifier==== | ====quote_identifier==== | ||
Line 1,019: | Line 933: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_prepare_regexp --> | <!-- Pod2Wiki=item_prepare_regexp --> | ||
====prepare_regexp==== | ====prepare_regexp==== | ||
Line 1,030: | Line 943: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_sql_as --> | <!-- Pod2Wiki=item_sql_as --> | ||
====sql_as==== | ====sql_as==== | ||
Line 1,041: | Line 953: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_sql_like --> | <!-- Pod2Wiki=item_sql_like --> | ||
====sql_like==== | ====sql_like==== | ||
Line 1,052: | Line 963: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_dataset_data --> | <!-- Pod2Wiki=head_dataset_data --> | ||
===Dataset Data=== | ===Dataset Data=== | ||
Line 1,059: | Line 969: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_insert_data --> | <!-- Pod2Wiki=item_insert_data --> | ||
====insert_data==== | ====insert_data==== | ||
Line 1,074: | Line 983: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_update_data --> | <!-- Pod2Wiki=item_update_data --> | ||
====update_data==== | ====update_data==== | ||
Line 1,089: | Line 997: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_exists --> | <!-- Pod2Wiki=item_exists --> | ||
====exists==== | ====exists==== | ||
Line 1,100: | Line 1,007: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_remove --> | <!-- Pod2Wiki=item_remove --> | ||
====remove==== | ====remove==== | ||
Line 1,113: | Line 1,019: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_searching_caching_and_retrieval --> | <!-- Pod2Wiki=head_searching_caching_and_retrieval --> | ||
===Searching, Caching and Retrieval=== | ===Searching, Caching and Retrieval=== | ||
Line 1,120: | Line 1,025: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_cache_exp --> | <!-- Pod2Wiki=item_cache_exp --> | ||
====cache_exp==== | ====cache_exp==== | ||
Line 1,131: | Line 1,035: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_cache --> | <!-- Pod2Wiki=item_cache --> | ||
====cache==== | ====cache==== | ||
Line 1,148: | Line 1,051: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_cache_table --> | <!-- Pod2Wiki=item_cache_table --> | ||
====cache_table==== | ====cache_table==== | ||
Line 1,159: | Line 1,061: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_search --> | <!-- Pod2Wiki=item_search --> | ||
====search==== | ====search==== | ||
Line 1,172: | Line 1,073: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_cache --> | <!-- Pod2Wiki=item_drop_cache --> | ||
====drop_cache==== | ====drop_cache==== | ||
Line 1,183: | Line 1,083: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_from_cache --> | <!-- Pod2Wiki=item_from_cache --> | ||
====from_cache==== | ====from_cache==== | ||
Line 1,198: | Line 1,097: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_drop_orphan_cache_tables --> | <!-- Pod2Wiki=item_drop_orphan_cache_tables --> | ||
====drop_orphan_cache_tables==== | ====drop_orphan_cache_tables==== | ||
Line 1,209: | Line 1,107: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_single --> | <!-- Pod2Wiki=item_get_single --> | ||
====get_single==== | ====get_single==== | ||
Line 1,220: | Line 1,117: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_all --> | <!-- Pod2Wiki=item_get_all --> | ||
====get_all==== | ====get_all==== | ||
Line 1,231: | Line 1,127: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_cache_ids --> | <!-- Pod2Wiki=item_get_cache_ids --> | ||
====get_cache_ids==== | ====get_cache_ids==== | ||
Line 1,242: | Line 1,137: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_dataobjs --> | <!-- Pod2Wiki=item_get_dataobjs --> | ||
====get_dataobjs==== | ====get_dataobjs==== | ||
Line 1,253: | Line 1,147: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_values --> | <!-- Pod2Wiki=item_get_values --> | ||
====get_values==== | ====get_values==== | ||
Line 1,264: | Line 1,157: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_get_ids_by_field_values --> | <!-- Pod2Wiki=item_get_ids_by_field_values --> | ||
====get_ids_by_field_values==== | ====get_ids_by_field_values==== | ||
Line 1,275: | Line 1,167: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_dequeue_events --> | <!-- Pod2Wiki=item_dequeue_events --> | ||
====dequeue_events==== | ====dequeue_events==== | ||
Line 1,286: | Line 1,177: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_password_validation --> | <!-- Pod2Wiki=head_password_validation --> | ||
===Password Validation=== | ===Password Validation=== | ||
Line 1,293: | Line 1,183: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=item_valid_login --> | <!-- Pod2Wiki=item_valid_login --> | ||
====valid_login==== | ====valid_login==== | ||
Line 1,306: | Line 1,195: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_see_also --> | <!-- Pod2Wiki=head_see_also --> | ||
==SEE ALSO== | ==SEE ALSO== | ||
Line 1,315: | Line 1,203: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_copyright --> | <!-- Pod2Wiki=head_copyright --> | ||
==COPYRIGHT== | ==COPYRIGHT== | ||
Line 1,322: | Line 1,209: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=_postamble_ --><!-- Edit below this comment --> | <!-- Pod2Wiki=_postamble_ --><!-- Edit below this comment --> |
Revision as of 08:54, 2 March 2012
EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects
Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki
Contents
- 1 NAME
- 2 SYNOPSIS
- 3 DESCRIPTION
- 4 METHODS
- 4.1 Database
- 4.1.1 new
- 4.1.2 create
- 4.1.3 connect
- 4.1.4 disconnect
- 4.1.5 set_debug
- 4.1.6 set_version
- 4.1.7 get_version
- 4.1.8 is_latest_version
- 4.1.9 get_server_version
- 4.1.10 get_default_charset
- 4.1.11 get_default_collation
- 4.1.12 get_driver_name
- 4.1.13 error
- 4.1.14 retry_error
- 4.1.15 duplicate_error
- 4.1.16 begin
- 4.1.17 commit
- 4.1.18 rollback
- 4.1.19 type_info
- 4.1.20 get_column_type
- 4.2 Schema Manipulation
- 4.2.1 create_archive_tables
- 4.2.2 drop_archive_tables
- 4.2.3 create_version_table
- 4.2.4 drop_version_table
- 4.2.5 create_dataset_tables
- 4.2.6 drop_dataset_tables
- 4.2.7 create_dataset_index_tables
- 4.2.8 create_dataset_ordervalues_tables
- 4.2.9 has_dataset
- 4.2.10 has_field
- 4.2.11 add_field
- 4.2.12 remove_field
- 4.2.13 rename_field
- 4.2.14 create_table
- 4.2.15 create_foreign_key
- 4.2.16 create_counters
- 4.2.17 has_counter
- 4.2.18 create_counter
- 4.2.19 remove_counters
- 4.2.20 drop_counter
- 4.2.21 counter_current
- 4.2.22 counter_next
- 4.2.23 counter_minimum
- 4.2.24 counter_reset
- 4.2.25 next_doc_pos
- 4.3 SQL utility methods
- 4.3.1 do
- 4.3.2 prepare
- 4.3.3 prepare_select
- 4.3.4 has_sequence
- 4.3.5 create_sequence
- 4.3.6 drop_sequence
- 4.3.7 drop_column
- 4.3.8 get_primary_key
- 4.3.9 create_primary_key
- 4.3.10 create_index
- 4.3.11 create_unique_index
- 4.3.12 index_name
- 4.3.13 _update
- 4.3.14 insert
- 4.3.15 insert_quoted
- 4.3.16 delete_from
- 4.3.17 count_table
- 4.3.18 has_table
- 4.3.19 has_column
- 4.3.20 drop_table
- 4.3.21 clear_table
- 4.3.22 rename_table
- 4.3.23 swap_table
- 4.3.24 get_tables
- 4.4 Quoting Values
- 4.5 Dataset Data
- 4.6 Searching, Caching and Retrieval
- 4.7 Password Validation
- 4.1 Database
- 5 SEE ALSO
- 6 COPYRIGHT
NAME
EPrints::Database - a connection to the SQL database for an eprints session
SYNOPSIS
$db = $repo->database $sth = $db->prepare("SELECT 'hello, world!'"); $sth->execute; print $sth->fetchrow_arrayref->[0], "\n";
DESCRIPTION
EPrints Database Access Module
Provides access to the backend database. All database access is performed via this module to 1) provide cross-database support and 2) improve security through enforcing proper quoting of SQL values.
In most use-cases it should not be necessary to use the database module directly. Instead you should use EPrints::DataSet or EPrints::MetaField accessor methods to access objects and field values respectively.
Cross-database Support
Any use of SQL statements must use quote_identifier to quote database tables and columns and quote_value to quote values. The only exception to this are the EPrints::Database::* modules which provide database-driver specific extensions.
Quoting SQL Values
By convention variables that contain already quoted values are prefixed with 'Q_' so they can be easily recognised when used in string interpolation:
my $Q_value = $db->quote_value( "Hello, World!" ); $db->do("SELECT $Q_value");
Where possible you should avoid quoting values yourself, instead use a method that accepts unquoted values which will (safely) do the work for you.
METHODS
Database
new
$db = EPrints::Database->new( $repo )
Create a connection to the database.
create
$db = $db->create( $username, $password )
Create and connect to a new database using super user account $username and $password.
connect
$ok = $db->connect
Connects to the database.
disconnect
$db->disconnect
Disconnects from the EPrints database.
set_debug
$db->set_debug( $boolean )
Set the SQL debug mode to true or false.
set_version
$db->set_version( $versionid );
Set the version id table in the SQL database to the given value (used by the upgrade script).
get_version
$version = $db->get_version
Returns the current database schema version.
is_latest_version
$boolean = $db->is_latest_version
Return true if the database schema is in the correct configuration for this version of eprints. Otherwise false.
get_server_version
$version = $db->get_server_version
Return the database server version.
get_default_charset
$charset = $db->get_default_charset( LANGUAGE )
Return the character set to use for LANGUAGE.
Returns undef if character sets are unsupported.
get_default_collation
$collation = $db->get_default_collation( LANGUAGE )
Return the collation to use for LANGUAGE.
Returns undef if collation is unsupported.
get_driver_name
$driver = $db->get_driver_name
Return the database driver name.
error
$errstr = $db->error
Return a string describing the last SQL error.
retry_error
$bool = $db->retry_error
Returns true if the current error is a retry error.
duplicate_error
$bool = $db->duplicate_error
Returns true if the current error is a PRIMARY KEY or UNIQUE error.
begin
$db->begin
Begin a transaction.
commit
$db->commit
Commit the previously begun transaction.
rollback
$db->rollback
Roll-back the current transaction.
type_info
$type_info = $db->type_info( DATA_TYPE )
See DBI/type_info.
get_column_type
$real_type = $db->get_column_type( NAME, TYPE, NOT_NULL, [ LENGTH/PRECISION ], [ SCALE ], %opts )
Returns a SQL column definition for NAME of type TYPE, usually something like:
$name $type($length,$scale) [ NOT NULL ]
If NOT_NULL is true column will be set "not null".
LENGTH/PRECISION and SCALE control the maximum lengths of character or decimal types (see below).
Other options available to refine the column definition:
langid - character set/collation to use sorted - whether this column will be used to order by
langid is mapped to real database values by the "dblanguages" configuration option. The database may not be able to order the request column type in which case, if sorted is true, the database may use a substitute column type.
TYPE is the SQL type. The types are constants defined by this module, to import them use:
use EPrints::Database qw( :sql_types );
Supported types (n = requires LENGTH argument):
Character data: SQL_VARCHAR(n), SQL_LONGVARCHAR, SQL_CLOB.
Binary data: SQL_VARBINARY(n), SQL_LONGVARBINARY.
Integer data: SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT.
Floating-point data: SQL_REAL, SQL_DOUBLE.
Time data: SQL_DATE, SQL_TIME.
The actual column types used will be database-specific.
Schema Manipulation
create_archive_tables
$success = $db->create_archive_tables
Create all the SQL tables for each dataset.
drop_archive_tables
$db->drop_archive_tables()
Destroy all tables used by eprints in the database.
create_version_table
$db->create_version_table
Make the version table (and set the only value to be the current version of eprints).
drop_version_table
$db->drop_version_table
Drop the version table.
create_dataset_tables
$success = $db->create_dataset_tables( $dataset )
Create all the SQL tables for a single dataset.
drop_dataset_tables
$db->drop_dataset_tables( $dataset )
Drop all the SQL tables for a single dataset.
create_dataset_index_tables
$success = $db->create_dataset_index_tables( $dataset )
Create all the index tables for a single dataset.
create_dataset_ordervalues_tables
$success = $db->create_dataset_ordervalues_tables( $dataset )
Create all the ordervalues tables for a single dataset.
has_dataset
$db->has_dataset( $dataset )
Returns true if $dataset exists in the database or has no database tables.
This does not check that all fields are configured - see has_field().
has_field
$db->has_field( $dataset, $field )
Returns true if $field is in the database for $dataset.
add_field
$db->add_field( $dataset, $field [, $force ] )
Add $field to $dataset's tables.
If $force is true will modify/replace an existing column (use with care!).
remove_field
$db->remove_field( $dataset, $field )
Remove $field from $dataset's tables.
rename_field
$ok = $db->rename_field( $dataset, $field, $old_name )
Rename a $field in the database from it's old name $old_name.
Returns true if the field was successfully renamed.
create_table
$success = $db->create_table( $tablename, $setkey, @fields );
Creates a new table $tablename based on @fields.
The first $setkey number of fields are used for a primary key.
create_foreign_key
$ok = $db->create_foreign_key( $main_table, $aux_table, $key_field )
Create a foreign key relationship between $main_table and $aux_table using the $key_field.
This will cause records in $aux_table to be deleted if the equivalent record is deleted from $main_table.
create_counters
$success = $db->create_counters
Create the counters used to store the highest current id of eprints, users etc.
has_counter
$success = $db->has_counter( $counter )
Returns true if $counter exists.
create_counter
$success = $db->create_counter( $name )
Create and initialise to zero a new counter called $name.
remove_counters
$success = $db->remove_counters
Destroy all counters.
drop_counter
$success = $db->drop_counter( $name )
Destroy the counter named $name.
counter_current
$n = $db->counter_current( $counter )
Return the value of the previous counter_next on $counter.
counter_next
$n = $db->counter_next( $counter )
Return the next unused value for the named counter. Returns undef if the counter doesn't exist.
counter_minimum
$db->counter_minimum( $counter, $value )
Ensure that the counter is set no lower than $value. This is used when importing eprints which may not be in scrict sequence.
counter_reset
$db->counter_reset( $counter )
Reset the counter. Use with caution.
next_doc_pos
$n = $db->next_doc_pos( $eprintid )
Return the next unused document pos for the given eprintid.
SQL utility methods
do
$success = $db->do( $sql )
Execute the given SQL.
prepare
$sth = $db->prepare( $sql )
Prepare the SQL statement $sql for execution.
Use the execute method on the returned DBI handle to execute the SQL:
my $sth = $db->prepare_select( "SELECT 'Hello, World'" ); $sth->execute;
prepare_select
$sth = $db->prepare_select( $sql [, %options ] )
Prepare a SELECT statement $sql for execution.
Returns a DBI statement handle.
The LIMIT SQL keyword is not universally supported, to specify a LIMIT you must use the limit option.
Options:
limit - limit the number of rows returned offset - return limit number of rows after offset
has_sequence
$boolean = $db->has_sequence( $name )
Return true if a sequence of the given name exists in the database.
create_sequence
$success = $db->create_sequence( $seq_name )
Creates a new sequence object initialised to zero.
drop_sequence
$success = $db->drop_sequence( $seq_name )
Deletes a sequence object.
drop_column
$success = $db->drop_column( $table, $column )
Drops a column from a table.
get_primary_key
@columns = $db->get_primary_key( $tablename )
Returns the list of column names that comprise the primary key for $tablename.
Returns empty list if no primary key exists.
create_primary_key
$db->create_primary_key( $tablename, @cols )
Create a PRIMARY KEY on $tablename over @cols.
create_index
$success = $db->create_index( $tablename, @columns )
Creates an index over @columns for $tablename. Returns true on success.
create_unique_index
$success = $db->create_unique_index( $tablename, @columns )
Creates a unique index over @columns for $tablename. Returns true on success.
index_name
$name = $db->index_name( $table, @columns )
Returns the name of the first index that starts with @columns on the $table table.
Returns undef if no index exists.
_update
$rows = $db->_update( $tablename, $keycols, $keyvals, $columns, @values )
UPDATES $tablename where $keycols equals $keyvals and returns the number of rows affected.
Note! If no rows are affected the result is still 'true', see DBI's execute() method.
This method is internal.
insert
$success = $db->insert( $table, $columns, @values )
Inserts values into the table $table. If $columns is defined it will be used as a list of columns to insert into. @values is a list of arrays containing values to insert.
Values will be quoted before insertion.
insert_quoted
$success = $db->insert_quoted( $table, $columns, @qvalues )
Inserts values into the table $table. If $columns is defined it will be used as a list of columns to insert into. @qvalues is a list of arrays containing values to insert.
Values will NOT be quoted before insertion - care must be exercised!
delete_from
$success = $db->delete_from( $table, $columns, @values )
Perform a SQL DELETE FROM $table using $columns to build a where clause. @values is a list of array references of values in the same order as $columns.
If you want to clear a table completely use clear_table().
count_table
$n = $db->count_table( $tablename )
Return the number of rows in the specified SQL table.
has_table
$boolean = $db->has_table( $tablename )
Return true if a table of the given name exists in the database.
has_column
$boolean = $db->has_column( $tablename, $columnname )
Return true if the a table of the given name has a column named $columnname in the database.
drop_table
$db->drop_table( $tablename [, $tablename2 ] )
Delete the named table(s). Use with caution!
clear_table
$db->clear_table( $tablename )
Clears all records from the given table, use with caution!
rename_table
$db->rename_table( $tablename, $newtablename )
Renames the table from the old name to the new one.
swap_table
$db->swap_table( $table_a, $table_b )
Swap table a and table b.
get_tables
@tables = $db->get_tables
Return a list of all the tables in the database.
Quoting Values
prep_int
$mungedvalue = EPrints::Database::prep_int( $value )
Escape a numerical value for SQL. undef becomes NULL. Anything else becomes a number (zero if needed).
prep_value
$mungedvalue = EPrints::Database::prep_value( $value )
Escape a value for SQL. Modify value such that " becomes \" and \ becomes \\ and ' becomes \'
prep_like_value
$mungedvalue = EPrints::Database::prep_like_value( $value )
Escape an value for an SQL like field. In addition to ' " and \ also escapes % and _
quote_value
$str = $db->quote_value( $value )
Return a quoted value. To quote a 'like' value you should do:
my $str = $database->quote_value( EPrints::Database::prep_like_value( $foo ) . '%' );
quote_int
$str = $db->quote_int( $value )
Return a quoted integer value
quote_binary
$str = $db->quote_binary( $bytes )
Some databases (Oracle/PostgreSQL) require transforms of binary data to work correctly.
This method should be called on data containing nul bytes or back-slashes before being passed on quote_value.
quote_ordervalue
$str = $db->quote_ordervalue( $field, $value )
Some databases (Oracle) can't order by CLOBS so need special treatment when creating the ordervalues tables. This method allows any fixing-up required for string data before it's inserted.
quote_identifier
$str = $db->quote_identifier( @parts )
Quote a database identifier (e.g. table names). Multiple @parts will be joined by dot.
prepare_regexp
$sql = $db->prepare_regexp( $quoted_column, $quoted_value )
The syntax used for regular expressions varies across databases. This method takes two quoted values and returns a SQL expression that will apply the regexp ($quoted_value) to the column ($quoted_column).
sql_as
$sql = $db->sql_AS()
Returns the syntactic glue to use when aliasing. SQL 92 DBs will happilly use " AS " but some DBs (Oracle!) won't accept it.
sql_like
$sql = $db->sql_LIKE()
Returns the syntactic glue to use when making a case-insensitive LIKE. PostgreSQL requires "ILIKE" while everything else uses "LIKE" and the column collation.
Dataset Data
insert_data
$success = $db->insert_data( $dataset, $data )
Add the given data as a new record in the given dataset. $data is a reference to a hash containing values structured for a record in the that dataset.
Returns undef if a record already exists with the key field value in $data.
Inserts ordervalues if the dataset is ordered.
update_data
$success = $db->update_data( $dataset, $data, $changed )
Updates a record in the given $dataset. $data is a copy of the entire record's data and $changed the values that have changed.
If the record does not already exist or the key field is unset in $data no changes will be written.
Updates ordervalues if the dataset is ordered.
exists
$boolean = $db->exists( $dataset, $id )
Return true if a record with the given primary key exists in the dataset, otherwise false.
remove
$success = $db->remove( $dataset, $id )
Remove the record, index terms and order value with the key field value $id from the specified dataset.
Returns true on success.
Searching, Caching and Retrieval
cache_exp
$searchexp = $db->cache_exp( $cacheid )
Return the serialised Search of a the cached search with id $cacheid. Return undef if the id is invalid or expired.
cache
$cacheid = $db->cache( $searchexp, $dataset, $srctable, [$order], [$list] )
Create a cache of the specified search expression from the SQL table $srctable.
If $order is set then the cache is ordered by the specified fields. For example "-year/title" orders by year (descending). Records with the same year are ordered by title.
If $srctable is set to "LIST" then order is ignored and the list of ids is taken from the array reference $list.
If $srctable is set to "ALL" every matching record from $dataset is added to the cache, optionally ordered by $order.
cache_table
$tablename = $db->cache_table( $id )
Return the SQL table used to store the cache with id $id.
search
$ids = $db->search( $keyfield, $tables, $conditions, [$main_table_alias] )
Return a reference to an array of ids - the results of the search specified by $conditions accross the tables specified in the $tables hash where keys are tables aliases and values are table names.
If no table alias is passed then M is assumed.
drop_cache
$db->drop_cache( $id )
Remove the cached search with the given id.
from_cache
$foo = $db->from_cache( $dataset, $cacheid, [$offset], [$count], [$justids] )
Return a reference to an array containing all the items from the given dataset that have id's in the specified cache. The cache may be specified either by id or serialised search expression.
$offset is an offset from the start of the cache and $count is the number of records to return.
If $justids is true then it returns just an ref to an array of the record ids, not the objects.
drop_orphan_cache_tables
$c = $db->drop_orphan_cache_tables
Drop tables called "cacheXXX" where XXX is an integer. Returns the number of tables dropped.
get_single
$obj = $db->get_single( $dataset, $id )
Return a single item from the given dataset. The one with the specified id.
get_all
$items = $db->get_all( $dataset )
Returns a reference to an array with all the items from the given dataset.
get_cache_ids
@ids = $db->get_cache_ids( $dataset, $cachemap, $offset, $count )
Returns a list of $count ids from $cache_id starting at $offset and in the order in the cachemap.
get_dataobjs
@dataobjs = $db->get_dataobjs( $dataset [, $id [, $id ] ] )
Retrieves the records in $dataset with the given $id(s). If an $id doesn't exist in the database it will be ignored.
get_values
$foo = $db->get_values( $field, $dataset )
Return a reference to an array of all the distinct values of the EPrints::MetaField specified.
get_ids_by_field_values
$ids = $db->get_ids_by_field_values( $field, $dataset [ %opts ] )
Return a reference to a hash table where the keys are field value ids and the value is a reference to an array of ids.
dequeue_events
@events = $db->dequeue_events( $n )
Attempt to dequeue upto $n events. May return between 0 and $n events depending on parallel processes and how many events are remaining on the queue.
Password Validation
valid_login
$real_username = $db->valid_login( $username, $password )
Tests whether the clear-text $password matches the stored encrypted password for $username.
Returns the user's real (case-sensitive) username or undef if the passwords don't match.
SEE ALSO
To access database-stored objects use the methods provided by the following modules: EPrints::Repository, EPrints::DataSet.