【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
- 一、openGauss查表
- 二、openGauss查索引
- 三、openGauss查序列
- 四、openGauss查权限
- 五、openGauss或PostgreSQL查函数
- 六、PostgreSQL查表
- 七、PostgreSQL查索引
- 八、PostgreSQL查序列
- 九、PostgreSQL查权限
一、openGauss查表
/* openGauss查表 */
select (casewhen substr(version(), 0, 1) = '('then substring(substr(version(), 2, length(version())) from '^[^ ]+')else substring(version() from '^[^ ]+')end)::text as database_type,ic.table_schema::text as schema,o.owner::text,ic.table_name::text,tab_com.description::text as table_comment,ic.ordinal_position::text as column_num,ic.column_name::text,(casewhen ic.data_type = 'bigint'then 'INT8'when ic.data_type = 'integer'then 'INT4'when ic.data_type = 'smallint'then 'INT2'when ic.data_type in ('nvarchar2') AND ic.character_maximum_length IS NOT NULLthen upper(ic.data_type) || '(' || ic.character_maximum_length || ')'when ic.data_type in ('nvarchar2') AND ic.character_maximum_length IS NULLthen 'NVARCHAR2'when ic.data_type in ('character varying')then 'VARCHAR(' || ic.character_maximum_length || ')'when ic.data_type in ('character')then 'CHAR(' || ic.character_maximum_length || ')'when ic.data_type = 'timestamp without time zone'then 'TIMESTAMP(' || ic.datetime_precision || ')'when ic.data_type = 'time without time zone'then 'TIME(' || ic.datetime_precision || ')'when ic.data_type = 'numeric' and ic.numeric_precision is not null and ic.numeric_scale is not nullthen 'NUMERIC(' || ic.numeric_precision || ',' || ic.numeric_scale || ')'when ic.data_type = 'numeric' and ic.numeric_precision is null and ic.numeric_scale is nullthen 'NUMERIC'when ic.data_type = 'text'then 'TEXT'when ic.data_type = 'date'then 'DATE'else upper(ic.data_type)end)::text as data_type,col_com.description::text as column_comment,(CASEwhen (POSITION(lower('::regclass') IN lower(ic.column_default)) > 0)then REPLACE(ic.column_default, '::regclass', '')when (POSITION(lower('::integer') IN lower(ic.column_default)) > 0)then REPLACE(REPLACE(ic.column_default, '::integer', ''), '''', '')else ic.column_defaultend)::text as column_default,ic.is_nullable::text,(casewhen pc.conname is null then null::textelse 'Y'end)::text as pkeyfrom pg_class c-- join db_objects o join adm_objects o on o.object_id = c.oid and o.object_type like '%table%'and c.relkind in ('r','p')-- and c.relname ~ '[0-9]'join pg_namespace non c.relnamespace = n.oidjoin information_schema.columns icon ic.table_name = c.relnameand n.nspname = ic.table_schemaleft join pg_description tab_comon tab_com.objoid = c.oidand tab_com.objsubid = 0left join pg_description col_comon col_com.objoid = c.oidand col_com.objsubid = ic.ordinal_positionleft join (SELECT conname, conrelid , unnest(conkey) as column_numFROM pg_constraintwhere contype = 'p') as pcon pc.conrelid = c.oidand pc.column_num = ic.ordinal_positionwhere 1=1order by ic.table_schema, ic.table_name, ic.ordinal_position
;
二、openGauss查索引
/* openGauss查索引 */
with t as (select (case when t1.indexdef ~ '^.* WHERE .*$'then REGEXP_REPLACE(t1.indexdef, '^.*\((.*)\).* WHERE .*$', '\1')else REGEXP_REPLACE(t1.indexdef, '^.*\((.*)\).*$', '\1')end)::varchar as index_columns,t1.* from (select 'gs_et_sit'::varchar as source,o.owner::varchar,ist.table_schema::varchar as schemaname,c.relname::varchar as tablename,c1.relname::varchar as indexname,(case i.indisuniquewhen 't' then 'Y'when 'f' then 'N'end)::varchar as index_is_unique,(case i.indisprimarywhen 't' then 'Y'when 'f' then 'N'end)::varchar as index_is_primary,(pg_get_indexdef(i.indexrelid))::varchar as indexdef_old,(case when pg_get_indexdef(i.indexrelid) ~ '^.*WHERE.*$'then replace(replace(replace(REGEXP_REPLACE(pg_get_indexdef(i.indexrelid),'^.*WHERE \((.*)\).*.*$', '\1'),'::text', ''),'(', ''),')', '')else NULLend)::varchar as where_condition,(casewhen i.indisprimary = 't'then 'ALTER TABLE ' || c.relname || ' ADD CONSTRAINT ' || c1.relname || ' PRIMARY KEY (' || (case when pg_get_indexdef(i.indexrelid) ~ '^.*\((.*)\).*\((.*)\).*$'then REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*\((.*)\).*$', '\1')else REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*$', '\1')end) || ');' else replace(replace(replace(replace(replace(replace(pg_get_indexdef(i.indexrelid),' USING btree', ''),' TABLESPACE pg_default', ''),'::text', ''),' WITH (storage_type=USTORE)', ''),'WITH (storage_type=ustore)', ''),' USING ubtree', '')||';'end)::varchar as indexdef from pg_index i,pg_class c1,pg_class c,information_schema.tables ist,db_objects o,pg_namespace nwhere i.indexrelid = c1.oidand i.indrelid = c.oidand c.relnamespace = n.oidand c.relname = ist.table_nameand n.nspname = ist.table_schemaand o.object_id = c.oidand ist.table_schema not in ('pg_catalog','db4ai')and ist.table_schema not like '%\_test%'and o.owner not in ('rdsAdmin','hisAdmin')and o.owner not like '%test%'and c.relname !~* '^pg\_toast\_.*$') t1)
select t.source,t.owner,t.schemaname as schema,t.tablename,t.indexname,t.indexdef,t.index_is_primary,t.index_is_unique,t.index_columns,t.where_conditionfrom torder by t.schemaname, t.tablename, t.indexname
;
三、openGauss查序列
/* openGauss查序列 */
with c as (
select r.rolname::varchar as owner,n.nspname::varchar as schema,c.relname::varchar as sequence_namefrom pg_class c, pg_roles r, pg_namespace nwhere c.relowner = r.oidand c.relnamespace = n.oidand c.relkind = 'S')
,s as (
select sequence_owner::varchar as owner,sequence_name::varchar,min_value::varchar,max_value::varchar,increment_by::varchar,cache_size::varchar,cycle_flag::varchar,last_number::varcharfrom db_sequences
)
select c.owner::varchar,c.schema::varchar,c.sequence_name::varchar,s.min_value::varchar,s.max_value::varchar,s.increment_by::varchar,s.cache_size::varchar,s.cycle_flag::varchar,s.last_number::varcharfrom Cinner join s on c.owner = s.owner and c.sequence_name = s.sequence_nameorder by schema, sequence_name;
四、openGauss查权限
/* openGauss查权限 */
WITH pg_rel_privs AS(SELECT xx.schemaname,xx.owner,xx.relname,xx.relkind,xx.relacls[1] AS grantee,xx.relacls[2] AS privilege,xx.relacls[3] AS grantorFROM (SELECT (SELECT n.nspnameFROM pg_namespace nWHERE n.oid = tt.relnamespace) AS schemaname,o.owner,tt.relname,tt.relkind,regexp_split_to_array(unnest(tt.relacl)::character varying::text, '=|/'::text) AS relaclsFROM pg_class ttLEFT JOIN db_objects oON tt.oid = o.object_idWHERE tt.relacl IS NOT NULL) xx)
SELECT t.schemaname::varchar as schema,t.owner::varchar,t.relname::varchar as object_name,(CASEWHEN t.relkind = 'r' ::char THEN 'table' ::textWHEN t.relkind = 'S' ::char THEN 'sequence' ::textWHEN t.relkind = 'v' ::char THEN 'view' ::textWHEN t.relkind = 'p' ::char THEN 'patition table' ::textELSE t.relkind ::textEND)::varchar AS type,t.grantor::varchar,t.grantee::varchar,(TRIM(CASE WHEN instr(t.privilege, 'a') > 0 THEN 'insert,' END || CASE WHEN instr(t.privilege, 'r') > 0 THEN 'select,' END || CASE WHEN instr(t.privilege, 'w') > 0 THEN 'update,' END || CASE WHEN instr(t.privilege, 'd') > 0 THEN 'delete,' END || CASE WHEN instr(t.privilege, 'D') > 0 THEN 'truncate,' END || CASE WHEN instr(t.privilege, 'U') > 0 THEN 'usage,' END,','))::varchar AS privilegeFROM pg_rel_privs tWHERE t.grantor != 'rdsAdmin'AND t.grantee != t.grantororder by schema,object_name,type,grantor,grantee,privilege;
五、openGauss或PostgreSQL查函数
/* openGauss或PostgreSQL查函数 */
select (CASE schemawhen 'tzq' then 'f_g_tzq'else schemaEND)::varchar as schema,(CASE ownerwhen 'tzq' then 'f_g_tzq'else ownerEND)::varchar as owner,pro_name,pro_arg,pro_arg_type,pro_ret_type,pro_content from (
select * from (select pn.nspname::varchar AS schema,r.rolname::varchar as owner,pc.proname::varchar as pro_name,pc.proargnames::varchar as pro_arg,(SELECT array(SELECT format_type(val, NULL)FROM unnest(proargtypes) as val))::varchar as pro_arg_type,format_type(pc.prorettype, NULL)::varchar as pro_ret_type,REGEXP_REPLACE(pg_get_functiondef(pc."oid")::text, '^\(4,"(.*)"\)$', '\1')::textas pro_contentfrom pg_proc pcinner join pg_roles ron pc.proowner = r.oidinner join pg_namespace pnon pc.pronamespace = pn.oidwhere 1=1and pn.nspname not in ('pg_catalog','dbe_pldebugger')and r.rolname not in ('rdsAdmin') and pc.proargnames is not nullorder by r.rolname asc
) aa
union all select pn.nspname::varchar AS schema,r.rolname::varchar as owner,pc.proname::varchar as pro_name,pc.proargnames::varchar as pro_arg,proargtypes::varchar AS pro_arg_type,format_type(pc.prorettype, NULL)::varchar as pro_ret_type-- ,pc.oid,REGEXP_REPLACE(pg_get_functiondef(pc.oid)::text, '^\(4,"(.*)"\)$', '\1')::text as pro_contentfrom pg_proc pcinner join pg_roles ron pc.proowner = r.oidinner join pg_namespace pnon pc.pronamespace = pn.oidwhere 1=1and pn.nspname not in ('pg_catalog','dbe_pldebugger')and r.rolname not in ('rdsAdmin') and pc.proargnames is null
) bb
order by schema, pro_name;
六、PostgreSQL查表
/* PostgreSQL查表 */
/* 更新日志:由于 information_schema.columns 有权限控制,不是该用户能查的权限就查不到,故下掉。采用 pg_attrdef 来获取列的默认值
*/
with tab_info_v as (SELECT substring(version() FROM '(\S+)') as database_type,n.nspname AS schema,r.rolname as owner,c.relname AS table_name,(col_description(c.oid, 0))::character varying AS table_comment,a.attnum,a.attname AS column_name,concat_ws('', t.typname) AS data_type,(CASEWHEN a.attlen > 0 THEN a.attlenWHEN t.typname = 'bit' THEN a.atttypmodELSE a.atttypmod - 4END) AS data_length,CASE-- 为了和 高斯比对WHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'date'::text) THEN 'TIMESTAMP(0)'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'bigint'::text) THEN 'INT8'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'smallint'::text) THEN 'INT2'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'integer'::text) THEN 'INT4'::character varyingWHEN (left(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 17) = 'character varying'::text) THEN (replace(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 'character varying'::text, 'VARCHAR'::text))::character varyingWHEN (left(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 9) = 'character'::text) THEN (replace(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 'character'::text, 'char'::text))::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::text)::text = 'timestamp without time zone'::text) THEN 'TIMESTAMP'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::text)::text = 'timestamp(0) without time zone'::text) THEN 'TIMESTAMP(0)'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::text)::text = 'timestamp(6) without time zone'::text) THEN 'TIMESTAMP(6)'::character varyingELSE (format_type(a.atttypid, a.atttypmod))::character varyingEND AS typelen,(CASEWHEN a.attnotnull = TRUE THEN 'NO'ELSE 'YES'END) AS is_nullable -- 可为空,(CASEWHEN (SELECT COUNT(pg_constraint.*)FROM pg_constraintINNER JOIN pg_classON pg_constraint.conrelid = pg_class.oidINNER JOIN pg_attributeON pg_attribute.attrelid = pg_class.oidAND pg_attribute.attnum = ANY(pg_constraint.conkey)INNER JOIN pg_typeON pg_type.oid = pg_attribute.atttypidWHERE pg_class.relname = c.relnameAND pg_constraint.contype = 'p'AND pg_attribute.attname = a.attnameand pg_class.relowner = c.relowner) > 0 THEN 'Y'ELSE NULLEND) AS pkey,pg_get_expr(ad.adbin, ad.adrelid) as data_default,(SELECT descriptionFROM pg_descriptionWHERE objoid = a.attrelidAND objsubid = a.attnum) AS column_commentFROM pg_class cinner join pg_roles ron c.relowner = r.oidand c.relkind in ('r','p')and c.relpartbound is null-- and ((relkind = 'p') or (relkind = 'r' and relpartbound is null))inner join pg_attribute aon a.attnum > 0AND a.attrelid = c.oidinner join pg_namespace non n.oid = c.relnamespaceinner join pg_type ton a.atttypid = t.oidleft join pg_attrdef ad -- 列的默认值on ad.adrelid = c.oidand ad.adnum = a.attnumWHERE 1 = 1and n.nspname not in ('information_schema')ORDER BY c.relname ASC,a.attnum ASC,a.attname ASC
)
select database_type-- ,schema,CASE schemawhen 'tzq' then 'f_g_tzq'else schemaEND as schema,CASE ownerwhen 'tzq' then 'f_g_tzq'else schemaEND as owner,table_name, table_comment,attnum,column_name,replace(upper(typelen),'VARCHAR','NVARCHAR2') as data_type,column_comment,data_default as column_default,is_nullable,pkeyfrom tab_info_v vwhere 1=1-- and table_name = 'ets_risk_premium_check_tmp'-- and schema <> ownerand table_name not like 'adms_ogg_checkpoint%'-- and table_name !~ '[p][0-9]{2}$'-- and table_name !~ '[p][0-9]{1}$'-- and table_name ~ '[p][0-9]{1}$'
order by schema, table_name, attnum, column_name;
七、PostgreSQL查索引
/* PostgreSQL查索引 */
-- drop view if exists pg_index_info_v;
-- create view pg_index_info_v as
with t as (
select u.usename ,c.relname as tablename,c1.relname as indexname,case i.indisuniquewhen 't' then 'Y'when 'f' then 'N'end as index_is_unique -- 是否为唯一索引,case i.indisprimarywhen 't' then 'Y'when 'f' then 'N'end as index_is_primary -- 是否为主键,case when pg_get_indexdef(i.indexrelid) ~ '^.* WHERE .*$'then REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).* WHERE .*$', '\1')else REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*$', '\1')end as index_columns,replace(pg_get_indexdef(i.indexrelid), 'USING btree ', '')||';'as indexdef1,casewhen i.indisprimary = 't'then 'ALTER TABLE ' || c.relname || ' ADD CONSTRAINT ' || c1.relname || ' PRIMARY KEY (' || (case when pg_get_indexdef(i.indexrelid) ~ '^.*\((.*)\).*\((.*)\).*$'then REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*\((.*)\).*$', '\1')else REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*$', '\1')end) || ');' else replace(replace(replace(pg_get_indexdef(i.indexrelid),' USING btree', ''),' TABLESPACE pg_default', '') ,'::text', '') ||';'end as indexdef,case when pg_get_indexdef(i.indexrelid) ~ '^.*WHERE.*$'then replace(replace(replace(REGEXP_REPLACE(pg_get_indexdef(i.indexrelid),'^.*WHERE \((.*)\).*.*$', '\1'),'::text', ''),'(', ''),')', '')else NULLend as where_condition--,i.* from pg_index i,pg_class c1,pg_class c,pg_user uwhere i.indexrelid = c1.oidand i.indrelid = c.oidand c.relowner = u.usesysidand c.relkind in ('r','p')and c.relpartbound is null-- and u.usename = CURRENT_USERand c.relname !~* '^pg\_toast\_.*$')
select CASE t.usenamewhen 'tzq' then 'f_g_tzq'else t.usenameEND as schema,t.tablename,t.indexname,casewhen index_is_primary = 'Y'then 'ALTER TABLE ' || t.tablename || ' ADD CONSTRAINT ' || t.indexname || ' PRIMARY KEY (' || t.index_columns || ');' else t.indexdef end as indexdef,t.index_is_unique,t.index_is_primary,t.index_columns,t.where_conditionfrom twhere t.tablename not like 'adms_ogg_checkpoint%'order by t.usename, t.tablename, t.indexname;
八、PostgreSQL查序列
/* PostgreSQL查序列 */
select (CASE sequenceownerwhen 'tzq' then 'f_g_tzq'else sequenceownerEND)::varchar as owner,(CASE schemanamewhen 'tzq' then 'f_g_tzq'else schemanameEND)::varchar as schema, sequencename::varchar as sequence_name, min_value::varchar, max_value::varchar, increment_by::varchar, cache_size::varchar,(case cycle when 'f' then 'n' else 'y' end)::varchar as cycle_flag,(case when last_value is null then '1' else last_value end)::varchar as last_numberfrom pg_sequenceswhere 1=1-- and schemaname in ('tzq');order by schema,sequence_name;
九、PostgreSQL查权限
/* PostgreSQL查权限 */
WITH pg_rel_privs AS (SELECT xx.relowner,xx.schemaname,xx.relname,xx.relkind,xx.relacls[1] AS grantee,xx.relacls[2] AS privilege,xx.relacls[3] AS grantorFROM ( SELECT ( SELECT u.usenameFROM pg_user uWHERE u.usesysid = tt.relowner) AS relowner,( SELECT n.nspnameFROM pg_namespace nWHERE n.oid = tt.relnamespace) AS schemaname,tt.relname,tt.relkind,regexp_split_to_array(unnest(tt.relacl)::character varying::text, '=|/'::text) AS relaclsFROM pg_class ttWHERE tt.relacl IS NOT NULL) xx),
dba_tab_privs as (SELECT x.relowner AS owner_,x.schemaname AS schema_name,x.relname AS table_name,CASEWHEN x.relkind = 'r'::char THEN 'table'::textWHEN x.relkind = 'S'::char THEN 'sequence'::textWHEN x.relkind = 'v'::char THEN 'view'::textWHEN x.relkind = 'p'::char THEN 'patition table'::textELSE x.relkind::textEND AS type_,x.grantee,CASEWHEN x.privilege = 'r'::text THEN 'select'::textWHEN x.privilege = 'a'::text THEN 'insert'::textWHEN x.privilege = 'd'::text THEN 'delete'::textWHEN x.privilege = 'w'::text THEN 'update'::textWHEN x.privilege = 'D'::text THEN 'truncate'::textWHEN x.privilege = 'X'::text THEN 'execute'::textWHEN x.privilege = 'U'::text THEN 'usage'::textWHEN x.privilege = 'x'::text THEN 'references'::textWHEN x.privilege = 't'::text THEN 'trigger'::textELSE x.privilegeEND AS privilege,x.grantorFROM ( SELECT t.relowner,t.schemaname,t.relname,t.relkind,t.grantee,regexp_split_to_table(t.privilege, ''::text) AS privilege,t.grantorFROM pg_rel_privs tWHERE t.relowner <> t.grantee) x)
select (CASE schema_namewhen 'tzq' then 'f_g_tzq'else schema_nameEND)::varchar as schema,(CASE owner_when 'tzq' then 'f_g_tzq'else owner_END)::varchar as owner,table_name::varchar as object_name,type_::varchar as type,(CASE lower(grantor)when 'tzq' then 'f_g_tzq'else lower(grantor)END)::varchar as grantor,(CASE lower(grantee)when 'tzq' then 'f_g_tzq'else lower(grantee)END)::varchar as grantee,privilege::varcharfrom dba_tab_privs twhere owner_ not in ('rdsAdmin')and schema_name not in ('pg_catalog')and lower(grantee) not in ('appmon')-- and schema_name in ('tzq')-- and (table_name like '%\_t' OR table_name like '%\_ti' OR table_name like '%\_tmp')
-- and type_ ~* 'table'and table_name not like 'adms_ogg_checkpoint%'
order by schema_name,table_name;
相关文章:
【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数 一、openGauss查表二、openGauss查索引三、openGauss查序列四、openGauss查权限五、openGauss或PostgreSQL查函数六、PostgreSQL查表七、PostgreSQL查索引八、PostgreSQL查序列九、PostgreSQL查权…...

Dataset用load_dataset读图片和对应的caption的一个坑
代码: data_files {} if args.train_data_dir is not None:data_files["train"] os.path.join(args.train_data_dir, "**")dataset load_dataset("imagefolder",data_filesdata_files,cache_dirargs.cache_dir,) 数据࿱…...
【信息系统项目管理师】第7章:项目立项管理 考点梳理
文章目录 7.1 项目建议与立项申请7.2 项目可行性研究7.2.1 可行性研究的内容7.2.2 初步可行性研究7.2.3 详细可行性研究(重点) 7.3 项目评估与决策 【学习建议】本章大概考选择题2分左右,有可能考案例题。论文早年考过。本章知识点比较集中&a…...
知识库、提示词对大语言模型的影响测试
简介 通过对比有无知识库,测试大语言模型的回答 有无提示词对比测试 前提 大语言模型:Qwen1.5-1.8B-Chat-GPTQ-Int4 GPU:1650super,显存4G 提问:华为mate70 没有提示词 回答的内容如下 “华为mate70pro和mate40p…...
vistat-监控和分析网络状态
vistat 是一个用于监控和分析网络状态的工具,通常用于查看网络接口、流量、连接等实时数据。 原理:用户态调用系统接口获取内核中的网络统计信息。 核心功能:网络接口流量监控、查看连接状态、带宽使用分析。 使用方法: 查看接…...

EasyAnimateV5 视频生成大模型原理详解与模型使用
在数字内容创作中,视频扮演的角色日益重要。然而,创作高质量视频通常耗时且昂贵。EasyAnimate 系列旨在利用人工智能技术简化这一过程。EasyAnimateV5 建立在其前代版本的基础之上,不仅在质量上有所提升,还在多模态数据处理和跨语…...

水稻和拟南芥生命周期中单碱基分辨率的m6A定量分析-文献精读88
Quantitative profiling of m6A at single base resolution across the life cycle of rice and Arabidopsis 水稻和拟南芥生命周期中单碱基分辨率的m6A定量分析 水稻参考基因组(日本晴品种)-CSDN博客 “Xian”(籼)和“Geng”&…...

学习threejs,使用canvas更新纹理
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Texture 贴图 二、…...

【笔记2-3】ESP32 bug:PSRAM chip not found or not supported 没有外部PSRAM问题解决
主要参考b站宸芯IOT老师的视频,记录自己的笔记,老师讲的主要是linux环境,但配置过程实在太多问题,就直接用windows环境了,老师也有讲一些windows的操作,只要代码会写,操作都还好,开发…...

大数据hadoop、spark、flink、kafka发展的过程
将sql 代发翻译成java 程序 将python 程序通过pyspark框架翻译成java 程序,然后运行在spark计算框架上...
设计模式-理论基础
理论基础 一、代码质量指标1.可维护性(maintainability)2.可读性(readability)3.可扩展性(extensibility)4.灵活性(flexibility)5.简洁性(simplicity)6.可复用…...

猎板 PCB特殊工艺:铸就电子行业核心竞争力新高度
在当今竞争激烈且技术驱动的电子制造领域,印制电路板(PCB)作为电子产品的关键基石,其特殊工艺的发展水平直接影响着整个行业的创新步伐与产品品质。猎板 PCB 凭借在厚铜板、孔口铺铜、HDI 板、大尺寸板以及高频高速板等特殊工艺方…...
用于目标检测的集中式特征金字塔
摘要 https://arxiv.org/pdf/2210.02093 视觉特征金字塔在多种应用中已展现出其在有效性和效率方面的优越性。然而,现有方法过度关注层间特征交互,却忽略了经验证明有益的层内特征调节。尽管一些方法试图借助注意力机制或视觉变换器来学习紧凑的层内特征表示,但它们忽略了…...

大舍传媒-关于海外媒体宣发的探讨
关于海外媒体宣发的探讨 一、海外媒体宣发的重要性 在当今全球化的时代,海外媒体宣发对于企业、组织和个人来说具有至关重要的意义。通过有效的海外媒体宣发,可以提升品牌知名度,拓展国际市场,增强影响力,吸引更多的潜…...

Python从入门到入狱
Python是从入门到入狱?这个充满调侃意味的说法在程序员圈子里流传甚广。表面看,它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差,实际上却隐藏着很多值得深思的问题。要解读这个话题,得从Python的特点、使用场景以及潜在风…...

AMEYA360 | 杭晶电子:晶振在AR/VR中的应用
晶振在AR/VR设备中扮演重要角色,为其核心电子系统提供稳定的时钟信号,确保设备的高性能运行。 以下是晶振在AR/VR应用中的具体作用: 01、图像处理与同步 1、晶振为图形处理单元(GPU)和显示芯片提供精准的时钟信号,支持高速图像渲染…...

RAG评估指南:从检索到生成,全面解析LLM性能评估方法
前言 这一节我们将从时间线出发对RAG的评估方式进行对比,这些评估方式不仅限于RAG流程之中,其中基于LLM的评估方式更加适用于各行各业。 RAG常用评估方式 上一节我们讲了如何用ROUGE 这个方法评估摘要的相似度,由于篇幅限制,没…...

贪心算法实例-问题分析(C++)
贪心算法实例-问题分析 饼干分配问题 有一群孩子和一堆饼干,每个小孩都有一个饥饿度,每个饼干都有一个能量值,当饼干的能量值大于等于小孩的饥饿度时,小孩可以吃饱,求解最多有多少个孩子可以吃饱?(注:每个小孩只能吃…...
Ubuntu20.04 配置虚拟显示器和切回物理显示器
1、安装软件,用中软安装虚拟显示器软件 sudo apt-get install xserver-xorg-core-hwe-18.04 sudo apt-get install xserver-xorg-video-dummy2、添加配置文件 进入 /usr/share/X11/xorg.conf.d/ 文件夹下创建xorg.conf文件 # 创建xorg.conf文件 touch xorg.conf …...
HTML 常用标签属性汇总一〈body〉标签
背景属性:包括:bgcolor,background <body background—color:black〉 背景颜色 <body background—image : url(image/bg.gif)〉 背景图片 <body background—attachment : fixed〉 固定背景 〈body background—repeat : repeat〉 重复排列—网页预设 〈b…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...