Hola comunidad buen dia para todos Espero puedan colaborarme con la siguiente situacion tengo una tabla de auditoria que graba todas las acciones que se realizan sobre mi tablas de lotes que representan terrenos de casas la tabla tiene esta estructura
CREATE TABLE IF NOT EXISTS public.cat_lote_audit ( audit_id integer NOT NULL DEFAULT nextval('cat_lote_audit_audit_id_seq'::regclass), audit_timestamp timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP, audit_dbuser name COLLATE pg_catalog."C" NOT NULL DEFAULT CURRENT_USER, audit_action character(1) COLLATE pg_catalog."default" NOT NULL, audit_old cat_lote, audit_new cat_lote, CONSTRAINT cat_lote_audit_pkey PRIMARY KEY (audit_id), CONSTRAINT cat_lote_audit_audit_action_check CHECK (audit_action = ANY (ARRAY['I'::bpchar, 'U'::bpchar, 'D'::bpchar])) ) como puede verse audit_old y audit_new son del tipo de la tabla a la que le hago la auditoria y contiene todos los campos de la tabla cat_lote cuando quiero mirar el historico de cambios hago una consulta como esta? select row_number() over(),audit_timestamp,audit_dbuser,(audit_old).id as id_antiguo,(audit_old).the_geom as geo_antiguo, (audit_old).nom_cli as nom_cli_antiguo,(audit_old).v_gral as v_gral_antiguo,(audit_new).nom_cli as nomcli_nuevo,(audit_new).v_gral as v_gral_nuevo,(audit_new).the_geom as geo_nuevo from cat_lote_audit where (audit_old).id = '18012200210' Es decir dentro de audit_old o audit_new colocando los paréntesis para encerrar al campo y luego el punto puedo referirme a un campo de la tabla y revisar los valores antiguos y nuevos hasta ahi todo bien. Ahora viene la interrogante resulta que tengo varios millones de registros y efectuar una consulta como la anterior ya tarda un tiempo considerable asi que intente crear un indice asi: CREATE INDEX idx_audit_lote_gid_old ON cat_lote_audit ((audit_old).id); sin embargo obtengo este error en pgadmin ERROR: syntax error at or near "." LINE 2: ON cat_lote_audit ((audit_old).gid); ^ Como podria crear un índice por uno de los campos dentro de audit_old o audit_new en estos casos. Atte José