![JAR search and dependency download from the Maven repository](/logo.png)
com.huawei.opengauss.jdbc.jdbc.PgDatabaseMetaData.class Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of opengaussjdbc Show documentation
Show all versions of opengaussjdbc Show documentation
HuaweiCloud JDBC for GaussDB
The newest version!
???? 4? 1com/huawei/opengauss/jdbc/jdbc/PgDatabaseMetaData java/lang/Object java/sql/DatabaseMetaData PgDatabaseMetaData.java java/util/Map$Entry
java/util/Map
Entry keywords Ljava/lang/String;
connection -Lcom/huawei/opengauss/jdbc/jdbc/PgConnection; NAMEDATALEN I INDEX_MAX_KEYS tableTypeClauses Ljava/util/Map; XLjava/util/Map;>; 0(Lcom/huawei/opengauss/jdbc/jdbc/PgConnection;)V ()V
this 3Lcom/huawei/opengauss/jdbc/jdbc/PgDatabaseMetaData; conn getMaxIndexKeys ()I java/sql/SQLException ' FSELECT setting FROM pg_catalog.pg_settings WHERE name='max_index_keys' ) +com/huawei/opengauss/jdbc/jdbc/PgConnection + createStatement ()Ljava/sql/Statement; - .
, / java/sql/Statement 1 executeQuery ((Ljava/lang/String;)Ljava/sql/ResultSet; 3 4 2 5 java/sql/ResultSet 7 next ()Z 9 : 8 ; close = 2 > ,com/huawei/opengauss/jdbc/util/PSQLException @ PUnable to determine a value for MaxIndexKeys due to missing system catalog data. B !com/huawei/opengauss/jdbc/util/GT D tr 9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; F G
E H (com/huawei/opengauss/jdbc/util/PSQLState J UNEXPECTED_ERROR *Lcom/huawei/opengauss/jdbc/util/PSQLState; L M K N ?(Ljava/lang/String;Lcom/huawei/opengauss/jdbc/util/PSQLState;)V P
A Q java/lang/String S getInt (I)I U V 8 W ,com/huawei/opengauss/jdbc/util/JdbcBlackHole Y (Ljava/sql/ResultSet;)V = [
Z \ (Ljava/sql/Statement;)V = ^
Z _ java/lang/Throwable a sql stmt Ljava/sql/Statement; rs Ljava/sql/ResultSet; getMaxNameLength ?SELECT t.typlen FROM pg_catalog.pg_type t, pg_catalog.pg_namespace n WHERE t.typnamespace=n.oid AND t.typname='name' AND n.nspname='pg_catalog' i 4Unable to find name datatype in the system catalogs. k typlen m (Ljava/lang/String;)I U o 8 p allProceduresAreCallable allTablesAreSelectable getURL ()Ljava/lang/String; t u
, v getUserName x u
, y
isReadOnly { :
, | nullsAreSortedHigh nullsAreSortedLow nullsAreSortedAtStart nullsAreSortedAtEnd getDatabaseProductName gaussdb ? getDriverInfoMode ? u
, ? equals (Ljava/lang/Object;)Z ? ?
T ? GaussDB ?
PostgreSQL ? getDatabaseProductVersion getDBVersionNumber ? u
, ?
getDriverName GaussDB JDBC Driver ? PostgreSQL JDBC Driver ? getDriverVersion 4/*$mvn.project.property.parsedversion.osgiversion$*/ ? getDriverMajorVersion getDriverMinorVersion usesLocalFiles usesLocalFilePerTable supportsMixedCaseIdentifiers storesUpperCaseIdentifiers storesLowerCaseIdentifiers storesMixedCaseIdentifiers "supportsMixedCaseQuotedIdentifiers storesUpperCaseQuotedIdentifiers storesLowerCaseQuotedIdentifiers storesMixedCaseQuotedIdentifiers getIdentifierQuoteString " ? getSQLKeywords checkClosed ?
, ?
? ,com/huawei/opengauss/jdbc/core/ServerVersion ? v9_0 .Lcom/huawei/opengauss/jdbc/core/ServerVersion; ? ? ? ? haveMinimumServerVersion +(Lcom/huawei/opengauss/jdbc/core/Version;)Z ? ?
, ??select string_agg(word, ',') from pg_catalog.pg_get_keywords() where word <> ALL ('{a,abs,absolute,action,ada,add,admin,after,all,allocate,alter,always,and,any,are,array,as,asc,asensitive,assertion,assignment,asymmetric,at,atomic,attribute,attributes,authorization,avg,before,begin,bernoulli,between,bigint,binary,blob,boolean,both,breadth,by,c,call,called,cardinality,cascade,cascaded,case,cast,catalog,catalog_name,ceil,ceiling,chain,char,char_length,character,character_length,character_set_catalog,character_set_name,character_set_schema,characteristics,characters,check,checked,class_origin,clob,close,coalesce,cobol,code_units,collate,collation,collation_catalog,collation_name,collation_schema,collect,column,column_name,command_function,command_function_code,commit,committed,condition,condition_number,connect,connection_name,constraint,constraint_catalog,constraint_name,constraint_schema,constraints,constructors,contains,continue,convert,corr,corresponding,count,covar_pop,covar_samp,create,cross,cube,cume_dist,current,current_collation,current_date,current_default_transform_group,current_path,current_role,current_time,current_timestamp,current_transform_group_for_type,current_user,cursor,cursor_name,cycle,data,date,datetime_interval_code,datetime_interval_precision,day,deallocate,dec,decimal,declare,default,defaults,deferrable,deferred,defined,definer,degree,delete,dense_rank,depth,deref,derived,desc,describe,descriptor,deterministic,diagnostics,disconnect,dispatch,distinct,domain,double,drop,dynamic,dynamic_function,dynamic_function_code,each,element,else,end,end-exec,equals,escape,every,except,exception,exclude,excluding,exec,execute,exists,exp,external,extract,false,fetch,filter,final,first,float,floor,following,for,foreign,fortran,found,free,from,full,function,fusion,g,general,get,global,go,goto,grant,granted,group,grouping,having,hierarchy,hold,hour,identity,immediate,implementation,in,including,increment,indicator,initially,inner,inout,input,insensitive,insert,instance,instantiable,int,integer,intersect,intersection,interval,into,invoker,is,isolation,join,k,key,key_member,key_type,language,large,last,lateral,leading,left,length,level,like,ln,local,localtime,localtimestamp,locator,lower,m,map,match,matched,max,maxvalue,member,merge,message_length,message_octet_length,message_text,method,min,minute,minvalue,mod,modifies,module,month,more,multiset,mumps,name,names,national,natural,nchar,nclob,nesting,new,next,no,none,normalize,normalized,not,"null",nullable,nullif,nulls,number,numeric,object,octet_length,octets,of,old,on,only,open,option,options,or,order,ordering,ordinality,others,out,outer,output,over,overlaps,overlay,overriding,pad,parameter,parameter_mode,parameter_name,parameter_ordinal_position,parameter_specific_catalog,parameter_specific_name,parameter_specific_schema,partial,partition,pascal,path,percent_rank,percentile_cont,percentile_disc,placing,pli,position,power,preceding,precision,prepare,preserve,primary,prior,privileges,procedure,public,range,rank,read,reads,real,recursive,ref,references,referencing,regr_avgx,regr_avgy,regr_count,regr_intercept,regr_r2,regr_slope,regr_sxx,regr_sxy,regr_syy,relative,release,repeatable,restart,result,return,returned_cardinality,returned_length,returned_octet_length,returned_sqlstate,returns,revoke,right,role,rollback,rollup,routine,routine_catalog,routine_name,routine_schema,row,row_count,row_number,rows,savepoint,scale,schema,schema_name,scope_catalog,scope_name,scope_schema,scroll,search,second,section,security,select,self,sensitive,sequence,serializable,server_name,session,session_user,set,sets,similar,simple,size,smallint,some,source,space,specific,specific_name,specifictype,sql,sqlexception,sqlstate,sqlwarning,sqrt,start,state,statement,static,stddev_pop,stddev_samp,structure,style,subclass_origin,submultiset,substring,sum,symmetric,system,system_user,table,table_name,tablesample,temporary,then,ties,time,timestamp,timezone_hour,timezone_minute,to,top_level_count,trailing,transaction,transaction_active,transactions_committed,transactions_rolled_back,transform,transforms,translate,translation,treat,trigger,trigger_catalog,trigger_name,trigger_schema,trim,true,type,uescape,unbounded,uncommitted,under,union,unique,unknown,unnamed,unnest,update,upper,usage,user,user_defined_type_catalog,user_defined_type_code,user_defined_type_name,user_defined_type_schema,using,value,values,var_pop,var_samp,varchar,varying,view,when,whenever,where,width_bucket,window,with,within,without,work,write,year,zone}'::text[]) ? /Unable to find keywords in the system catalogs. ? getString (I)Ljava/lang/String; ? ? 8 ??abort,access,aggregate,also,analyse,analyze,backward,bit,cache,checkpoint,class,cluster,comment,concurrently,connection,conversion,copy,csv,database,delimiter,delimiters,disable,do,enable,encoding,encrypted,exclusive,explain,force,forward,freeze,greatest,handler,header,if,ilike,immutable,implicit,index,indexes,inherit,inherits,instead,isnull,least,limit,listen,load,location,lock,mode,move,nothing,notify,notnull,nowait,off,offset,oids,operator,owned,owner,password,prepared,procedural,quote,reassign,recheck,reindex,rename,replace,reset,restrict,returning,rule,setof,share,show,stable,statistics,stdin,stdout,storage,strict,sysid,tablespace,temp,template,truncate,trusted,unencrypted,unlisten,until,vacuum,valid,validator,verbose,volatile ? getNumericFunctions zabs,acos,asin,atan,atan2,ceiling,cos,cot,degrees,exp,floor,log,log10,mod,pi,power,radians,round,sign,sin,sqrt,tan,truncate ? getStringFunctions Lascii,char,concat,lcase,left,length,ltrim,repeat,rtrim,space,substring,ucase ? java/lang/StringBuilder ?
? append -(Ljava/lang/String;)Ljava/lang/StringBuilder; ? ?
? ? ,replace ? toString ? u
? ? funcs getSystemFunctions database,ifnull,user ? getTimeDateFunctions ocurdate,curtime,dayname,dayofmonth,dayofweek,dayofyear,hour,minute,month,monthname,now,quarter,second,week,year ?
,timestampadd ?
timeDateFuncs getSearchStringEscape \ ? getExtraNameCharacters ? supportsAlterTableWithAddColumn supportsAlterTableWithDropColumn supportsColumnAliasing nullPlusNonNullIsNull supportsConvert (II)Z fromType toType supportsTableCorrelationNames &supportsDifferentTableCorrelationNames supportsExpressionsInOrderBy supportsOrderByUnrelated supportsGroupBy supportsGroupByUnrelated supportsGroupByBeyondSelect supportsLikeEscapeClause supportsMultipleResultSets supportsMultipleTransactions supportsNonNullableColumns supportsMinimumSQLGrammar supportsCoreSQLGrammar supportsExtendedSQLGrammar supportsANSI92EntryLevelSQL supportsANSI92IntermediateSQL supportsANSI92FullSQL $supportsIntegrityEnhancementFacility supportsOuterJoins supportsFullOuterJoins supportsLimitedOuterJoins
getSchemaTerm schema getProcedureTerm function getCatalogTerm database isCatalogAtStart getCatalogSeparator . !supportsSchemasInDataManipulation supportsSchemasInProcedureCalls !supportsSchemasInTableDefinitions !supportsSchemasInIndexDefinitions %supportsSchemasInPrivilegeDefinitions "supportsCatalogsInDataManipulation supportsCatalogsInProcedureCalls "supportsCatalogsInTableDefinitions "supportsCatalogsInIndexDefinitions &supportsCatalogsInPrivilegeDefinitions supportsPositionedDelete supportsPositionedUpdate supportsSelectForUpdate supportsStoredProcedures supportsSubqueriesInComparisons supportsSubqueriesInExists supportsSubqueriesInIns supportsSubqueriesInQuantifieds supportsCorrelatedSubqueries
supportsUnion supportsUnionAll supportsOpenCursorsAcrossCommit !supportsOpenCursorsAcrossRollback "supportsOpenStatementsAcrossCommit $supportsOpenStatementsAcrossRollback getMaxCharLiteralLength getMaxBinaryLiteralLength getMaxColumnNameLength h &
- getMaxColumnsInGroupBy getMaxColumnsInIndex % &
1 getMaxColumnsInOrderBy getMaxColumnsInSelect getMaxColumnsInTable getMaxConnections getMaxCursorNameLength getMaxIndexLength getMaxSchemaNameLength getMaxProcedureNameLength getMaxCatalogNameLength
getMaxRowSize@ doesMaxRowSizeIncludeBlobs getMaxStatementLength getMaxStatements getMaxTableNameLength getMaxTablesInSelect getMaxUserNameLength getDefaultTransactionIsolation supportsTransactions !supportsTransactionIsolationLevel (I)Z level 5supportsDataDefinitionAndDataManipulationTransactions (supportsDataManipulationTransactionsOnly %dataDefinitionCausesTransactionCommit #dataDefinitionIgnoredInTransactions escapeQuotes &(Ljava/lang/String;)Ljava/lang/String; getStandardConformingStringsO :
,P ER 'T escapeStringVN
,W s sb Ljava/lang/StringBuilder;
getProcedures L(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;?SELECT NULL AS PROCEDURE_CAT, n.nspname AS PROCEDURE_SCHEM, p.proname AS PROCEDURE_NAME, NULL, NULL, NULL, d.description AS REMARKS, 2 AS PROCEDURE_TYPE, p.proname || '_' || p.oid AS SPECIFIC_NAME FROM pg_catalog.pg_namespace n, pg_catalog.pg_proc p LEFT JOIN pg_catalog.pg_description d ON (p.oid=d.objoid) LEFT JOIN pg_catalog.pg_class c ON (d.classoid=c.oid AND c.relname='pg_proc') LEFT JOIN pg_catalog.pg_namespace pn ON (c.relnamespace=pn.oid AND pn.nspname='pg_catalog') WHERE p.pronamespace=n.oid ^ isEmpty` :
Ta lowCasecN
d AND n.nspname LIKE fMN
h AND p.proname LIKE j 7 ORDER BY PROCEDURE_SCHEM, PROCEDURE_NAME, p.oid::text l createMetaDataStatementn .
o
resultConvert B(Ljava/sql/ResultSet;)Lcom/huawei/opengauss/jdbc/jdbc/PgResultSet;qr
s catalog
schemaPattern procedureNamePattern getProcedureColumns ^(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet; $com/huawei/opengauss/jdbc/core/Fieldz java/util/ArrayList|
}
PROCEDURE_CAT (Ljava/lang/String;I)V ?
{? PROCEDURE_SCHEM? PROCEDURE_NAME? COLUMN_NAME? COLUMN_TYPE? DATA_TYPE? TYPE_NAME? PRECISION? LENGTH? SCALE? RADIX? NULLABLE? REMARKS?
COLUMN_DEF?
SQL_DATA_TYPE? SQL_DATETIME_SUB? CHAR_OCTECT_LENGTH? ORDINAL_POSITION? IS_NULLABLE?
SPECIFIC_NAME? java/lang/Boolean? valueOf (Z)Ljava/lang/Boolean;??
?? getClientLogic :()Lcom/huawei/opengauss/jdbc/jdbc/clientlogic/ClientLogic;??
,? ,,ce.prorettype_orig, ce.proallargtypes_orig ? C LEFT JOIN pg_catalog.gs_encrypted_proc ce ON (p.oid = ce.func_id) ? , ce.data_type_original_oid ? i LEFT JOIN pg_catalog.gs_encrypted_columns ce ON (a.attrelid = ce.rel_id and a.attname = ce.column_name) ? '[Lcom/huawei/opengauss/jdbc/core/Field;? java/util/List? ?SELECT n.nspname,p.proname,p.prorettype,p.proargtypes, t.typtype,t.typrelid, p.proargnames, p.proargmodes, p.proallargtypes, p.oid ? booleanValue? :
?? FROM pg_catalog.pg_proc p ? f , pg_catalog.pg_namespace n, pg_catalog.pg_type t WHERE p.pronamespace=n.oid AND p.prorettype=t.oid ? , ORDER BY n.nspname, p.proname, p.oid::text ? [B? nspname? getBytes (Ljava/lang/String;)[B?? 8? proname? ?N 8? _? oid? encodeString??
,?
prorettype? getLong (Ljava/lang/String;)J?? 8? prorettype_orig? typtype? typrelid? proargtypes? java/util/StringTokenizer? (Ljava/lang/String;)V ?
??
hasMoreTokens? :
?? nextToken? u
?? java/lang/Long? $(Ljava/lang/String;)Ljava/lang/Long;??
?? add? ??? proargnames? getArray $(Ljava/lang/String;)Ljava/sql/Array; 8 java/sql/Array ()Ljava/lang/Object; [Ljava/lang/String;
proargmodes size &? proallargtypes [Ljava/lang/Long; proallargtypes_orig b d p returnValue java/lang/Integer ? ?
! getTypeInfo +()Lcom/huawei/opengauss/jdbc/core/TypeInfo;#$
,% 'com/huawei/opengauss/jdbc/core/TypeInfo'
getSQLType) V(* getPGType, ?(- [[B/ $1 (I)Ljava/lang/StringBuilder; ?3
?4 o6 t8 intValue: &
?; longValue ()J=>
?? get (I)Ljava/lang/Object;AB?C cE SELECT a.attname,a.atttypid G FROM pg_catalog.pg_attribute a I WHERE a.attrelid = K ; AND NOT a.attisdropped AND a.attnum > 0 ORDER BY a.attnum M atttypidO data_type_original_oidQ attnameS 8 > ,com/huawei/opengauss/jdbc/core/BaseStatementV createDriverResultSet M([Lcom/huawei/opengauss/jdbc/core/Field;Ljava/util/List;)Ljava/sql/ResultSet;XYWZ tuple argOid
columnMode i
columnTypeOid columnsql
columnstmt columnrs
procedureName specificName
returnType returnTypeType returnTypeRelid strArgTypes st Ljava/util/StringTokenizer; argTypes "Ljava/util/List; Ljava/util/List; argNames
argNamesArray Ljava/sql/Array; argModes
argModesArray numArgs allArgTypes allArgTypesArray allArgTypesClientLogic allArgTypesArrayClientLogic columnNamePattern columns f v Ljava/util/List<[[B>;
isClientLogic Ljava/lang/Boolean; clinetLogicSelectClause clinetLogicFromClause "clientLogicMultiColumnSelectClause clientLogicMultiColumnFromClause isnullableUnknown getTables _(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet; SCHEMAS?2SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, c.relname AS TABLE_NAME, CASE n.nspname ~ '^pg_' OR n.nspname = 'information_schema' WHEN true THEN CASE WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN CASE c.relkind WHEN 'r' THEN 'SYSTEM TABLE' WHEN 'v' THEN 'SYSTEM VIEW' WHEN 'i' THEN 'SYSTEM INDEX' ELSE NULL END WHEN n.nspname = 'pg_toast' THEN CASE c.relkind WHEN 'r' THEN 'SYSTEM TOAST TABLE' WHEN 'i' THEN 'SYSTEM TOAST INDEX' ELSE NULL END ELSE CASE c.relkind WHEN 'r' THEN 'TEMPORARY TABLE' WHEN 'p' THEN 'TEMPORARY TABLE' WHEN 'i' THEN 'TEMPORARY INDEX' WHEN 'S' THEN 'TEMPORARY SEQUENCE' WHEN 'v' THEN 'TEMPORARY VIEW' ELSE NULL END END WHEN false THEN CASE c.relkind WHEN 'r' THEN 'TABLE' WHEN 'p' THEN 'TABLE' WHEN 'i' THEN 'INDEX' WHEN 'S' THEN 'SEQUENCE' WHEN 'v' THEN 'VIEW' WHEN 'c' THEN 'TYPE' WHEN 'f' THEN 'FOREIGN TABLE' ELSE NULL END ELSE NULL END AS TABLE_TYPE, d.description AS REMARKS FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid AND d.objsubid = 0) LEFT JOIN pg_catalog.pg_class dc ON (d.classoid=dc.oid AND dc.relname='pg_class') LEFT JOIN pg_catalog.pg_namespace dn ON (dn.oid=dc.relnamespace AND dn.nspname='pg_catalog') WHERE c.relnamespace = n.oid ? , ORDER BY TABLE_TYPE,TABLE_SCHEM,TABLE_NAME ? AND c.relname LIKE ? AND (false ? ? &(Ljava/lang/Object;)Ljava/lang/Object;A? ? OR ( ? ) ? ) ? clause clauses 5Ljava/util/Map; type orclause tableNamePattern types select orderby
useSchemas
getSchemas ()Ljava/sql/ResultSet; :(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;??
?>SELECT nspname AS TABLE_SCHEM, NULL AS TABLE_CATALOG FROM pg_catalog.pg_namespace WHERE nspname <> 'pg_toast' AND (nspname !~ '^pg_temp_' OR nspname = (pg_catalog.current_schemas(true))[1]) AND (nspname !~ '^pg_toast_temp_' OR nspname = replace((pg_catalog.current_schemas(true))[1], 'pg_temp_', 'pg_toast_temp_')) ? AND nspname LIKE ? ORDER BY TABLE_SCHEM? getCatalogs TABLE_CAT?
getCatalog? u
,?
getTableTypes keySet ()Ljava/util/Set;?? ?
java/util/Set? toArray (([Ljava/lang/Object;)[Ljava/lang/Object;???? java/util/Arrays? sort ([Ljava/lang/Object;)V??
??
TABLE_TYPE?
getColumns ? 0,data_type_original_oid, data_type_original_mod ? g LEFT JOIN pg_catalog.gs_encrypted_columns ce ON (a.attrelid=ce.rel_id AND a.attname = ce.column_name) ? TABLE_SCHEM?
TABLE_NAME? COLUMN_SIZE?
BUFFER_LENGTH? DECIMAL_DIGITS? NUM_PREC_RADIX? CHAR_OCTET_LENGTH? SCOPE_CATLOG? SCOPE_SCHEMA? SCOPE_TABLE? SOURCE_DATA_TYPE? IS_AUTOINCREMENT? v8_4? ? ?? SELECT * FROM (? ?SELECT n.nspname,c.relname,a.attname,a.atttypid,a.attnotnull OR (t.typtype = 'd' AND t.typnotnull) AS attnotnull,a.atttypmod,a.attlen,? Irow_number() OVER (PARTITION BY a.attrelid ORDER BY a.attnum) AS attnum, ? a.attnum,? v10? ? ?? )nullif(a.attidentity, '') as attidentity,? null as attidentity,? `pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS adsrc,dsc.description,t.typbasetype,t.typtype ?) FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_class c ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (a.attrelid=c.oid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef def ON (a.attrelid=def.adrelid AND a.attnum = def.adnum) LEFT JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid) LEFT JOIN pg_catalog.pg_class dc ON (dc.oid=dsc.classoid AND dc.relname='pg_class') LEFT JOIN pg_catalog.pg_namespace dn ON (dc.relnamespace=dn.oid AND dn.nspname='pg_catalog') ? R WHERE c.relkind in ('r','p','v','f','m') and a.attnum > 0 AND NOT a.attisdropped ? ) c WHERE true AND attname LIKE # ORDER BY nspname,c.relname,attnum atttypmod data_type_original_mod relname adsrc
int4 nextval( contains (Ljava/lang/CharSequence;)Z
T serial int8 bigserial attidentity getScale (II)I (! getPrecision# ($ getDisplaySize& (' 10) bit+ varbit- 2/
attnotnull1
getBoolean (Ljava/lang/String;)Z34 85 description7 attnum9? ?
T; NO= YES? typbasetypeA sqlType typeOid clientLogicOriginalType typeMod pgType defval identity
decimalDigits
columnSize baseTypeOid autoinc isClientLogicOn Z clientLogicSelectClause clientLogicFromClause numberOfFields getColumnPrivileges GRANTORT GRANTEEV PRIVILEGEX IS_GRANTABLEZ /SELECT n.nspname,c.relname,r.rolname,c.relacl, \
a.attacl, ^ a.attname FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c, pg_catalog.pg_roles r, pg_catalog.pg_attribute a WHERE c.relnamespace = n.oid AND c.relowner = r.oid AND c.oid = a.attrelid AND c.relkind = 'r' AND a.attnum > 0 AND NOT a.attisdropped ` AND n.nspname = b AND c.relname = d AND a.attname LIKE f ORDER BY attname h rolnamej relacll parseACL 5(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;no
p attaclr putAll (Ljava/util/Map;)Vtu v entrySetx? y iterator ()Ljava/util/Iterator;{|?} java/util/Iterator hasNext? :?? 9?? getValue? ? getKey? ??} acl relPermissions kLjava/util/Map;>;>; grantable grants grantor %Ljava/util/List<[Ljava/lang/String;>; grantee userToGrantable NLjava/util/Map$Entry;>; Ljava/util/Map$Entry; privilege grantees HLjava/util/Map;>; permName
schemaName tableName column owner relAcl permissions permNames table getTablePrivileges ?SELECT n.nspname,c.relname,r.rolname,c.relacl FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c, pg_catalog.pg_roles r WHERE c.relnamespace = n.oid AND c.relowner = r.oid AND c.relkind IN ('r','p') ? ORDER BY nspname, relname ?
grantTuple granteeUser
parseACLArray $(Ljava/lang/String;)Ljava/util/List; length? &
T? charAt (I)C??
T? substring (II)Ljava/lang/String;??
T?
startsWith?4
T? endsWith?4
T? set '(ILjava/lang/Object;)Ljava/lang/Object;???? C aclString acls $Ljava/util/List; inQuotes
beginIndex prevChar addACLPrivileges $(Ljava/lang/String;Ljava/util/Map;)V =? lastIndexOf? o
T? /? PUBLIC? INSERT? SELECT? UPDATE? DELETE? TRUNCATE? RULE?
REFERENCES? TRIGGER? EXECUTE? USAGE? CREATE? CREATE TEMP? UNKNOWN? java/util/HashMap?
? put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;?? ? privs sqlpriv permissionByGrantor usersWithPermission grant
privileges
equalIndex
slashIndex user arwdDxt? arwdxt { }??
??
perms aclArray getBestRowIdentifier N(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/sql/ResultSet; SCOPE
PSEUDO_COLUMN?SELECT a.attname, a.atttypid, atttypmod FROM pg_catalog.pg_class ct JOIN pg_catalog.pg_attribute a ON (ct.oid = a.attrelid) JOIN pg_catalog.pg_namespace n ON (ct.relnamespace = n.oid) JOIN (SELECT i.indexrelid, i.indrelid, i.indisprimary, information_schema._pg_expandarray(i.indkey) AS keys FROM pg_catalog.pg_index i) i ON (a.attnum = (i.keys).x AND a.attrelid = i.indrelid) WHERE true AND ct.relname = ' AND i.indisprimary ORDER BY a.attnum scope nullable getVersionColumns ctid tid) o( getPrimaryKeys M(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Ljava/sql/ResultSet;!"
# getPartitionTablePrimaryKeysMSELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, ct.relname AS TABLE_NAME, a.attname AS COLUMN_NAME, (i.keys).n AS KEY_SEQ, ci.relname AS PK_NAME FROM pg_catalog.pg_class ct JOIN pg_catalog.pg_attribute a ON (ct.oid = a.attrelid) JOIN pg_catalog.pg_namespace n ON (ct.relnamespace = n.oid) JOIN (SELECT i.indexrelid, i.indrelid, i.indisprimary, information_schema._pg_expandarray(i.indkey) AS keys FROM pg_catalog.pg_index i) i ON (a.attnum = (i.keys).x AND a.attrelid = i.indrelid) JOIN pg_catalog.pg_class ci ON (ci.oid = i.indexrelid) WHERE true & AND a.attnum > 0 ( : AND i.indisprimary ORDER BY table_name, pk_name, key_seq* needHiddenColumns getImportedExportedKeys ?(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;?SELECT NULL::text AS PKTABLE_CAT, pkn.nspname AS PKTABLE_SCHEM, pkc.relname AS PKTABLE_NAME, pka.attname AS PKCOLUMN_NAME, NULL::text AS FKTABLE_CAT, fkn.nspname AS FKTABLE_SCHEM, fkc.relname AS FKTABLE_NAME, fka.attname AS FKCOLUMN_NAME, pos.n AS KEY_SEQ, CASE con.confupdtype WHEN 'c' THEN 0 WHEN 'n' THEN 2 WHEN 'd' THEN 4 WHEN 'r' THEN 1 WHEN 'p' THEN 1 WHEN 'a' THEN 3 ELSE NULL END AS UPDATE_RULE, CASE con.confdeltype WHEN 'c' THEN 0 WHEN 'n' THEN 2 WHEN 'd' THEN 4 WHEN 'r' THEN 1 WHEN 'p' THEN 1 WHEN 'a' THEN 3 ELSE NULL END AS DELETE_RULE, con.conname AS FK_NAME, pkic.relname AS PK_NAME, CASE WHEN con.condeferrable AND con.condeferred THEN 5 WHEN con.condeferrable THEN 6 ELSE 7 END AS DEFERRABILITY FROM pg_catalog.pg_namespace pkn, pg_catalog.pg_class pkc, pg_catalog.pg_attribute pka, pg_catalog.pg_namespace fkn, pg_catalog.pg_class fkc, pg_catalog.pg_attribute fka, pg_catalog.pg_constraint con, pg_catalog.generate_series(1, / #) pos(n), pg_catalog.pg_class pkic1 , pg_catalog.pg_depend dep 3$ WHERE pkn.oid = pkc.relnamespace AND pkc.oid = pka.attrelid AND pka.attnum = con.confkey[pos.n] AND con.confrelid = pkc.oid AND fkn.oid = fkc.relnamespace AND fkc.oid = fka.attrelid AND fka.attnum = con.conkey[pos.n] AND con.conrelid = fkc.oid AND con.contype = 'f' AND pkic.relkind = 'i' 5 ? AND con.oid = dep.objid AND pkic.oid = dep.refobjid AND dep.classid = 'pg_constraint'::regclass::oid AND dep.refclassid = 'pg_class'::regclass::oid 7 AND pkic.oid = con.conindid 9 AND pkn.nspname = ; AND fkn.nspname = = AND pkc.relname = ? AND fkc.relname = A 3 ORDER BY fkn.nspname,fkc.relname,con.conname,pos.nC 4 ORDER BY pkn.nspname,pkc.relname, con.conname,pos.nE primaryCatalog
primarySchema primaryTable foreignCatalog
foreignSchema foreignTable getImportedKeys-.
N getExportedKeys getCrossReference LITERAL_PREFIXR LITERAL_SUFFIXT
CREATE_PARAMSV CASE_SENSITIVEX
SEARCHABLEZ UNSIGNED_ATTRIBUTE\ FIXED_PREC_SCALE^ AUTO_INCREMENT` LOCAL_TYPE_NAMEb
MINIMUM_SCALEd
MAXIMUM_SCALEf ,com/huawei/opengauss/jdbc/jdbc/TypeInfoCacheh preCacheSQLTypesj
ik ?SELECT t.typname,t.oid FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON (t.typnamespace = n.oid) WHERE n.nspname != 'pg_toast'm 0o{ (I)J?r 8s getMaximumPrecisionu V(v requiresQuotingSqlTypexG(y isCaseSensitive{G(| isSigned~G( 1000? clone?
0? tuple1 typname ti )Lcom/huawei/opengauss/jdbc/core/TypeInfo; bZero b10 bf bt bliteral bNullable bSearchable getIndexInfo N(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/sql/ResultSet; v8_3? ? ???SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, ct.relname AS TABLE_NAME, NOT i.indisunique AS NON_UNIQUE, NULL AS INDEX_QUALIFIER, ci.relname AS INDEX_NAME, CASE i.indisclustered WHEN true THEN 1 ELSE CASE am.amname WHEN 'hash' THEN 2 ELSE 3 END END AS TYPE, (i.keys).n AS ORDINAL_POSITION, trim(both '"' from pg_catalog.pg_get_indexdef(ci.oid, (i.keys).n, false)) AS COLUMN_NAME, ? v9_6? ? ?? ? CASE am.amname WHEN 'btree' THEN CASE i.indoption[(i.keys).n - 1] & 1 WHEN 1 THEN 'D' ELSE 'A' END ELSE NULL END AS ASC_OR_DESC, ? ? CASE am.amcanorder WHEN true THEN CASE i.indoption[(i.keys).n - 1] & 1 WHEN 1 THEN 'D' ELSE 'A' END ELSE NULL END AS ASC_OR_DESC, ?O ci.reltuples AS CARDINALITY, ci.relpages AS PAGES, pg_catalog.pg_get_expr(i.indpred, i.indrelid) AS FILTER_CONDITION FROM pg_catalog.pg_class ct JOIN pg_catalog.pg_namespace n ON (ct.relnamespace = n.oid) JOIN (SELECT i.indexrelid, i.indrelid, i.indoption, i.indisunique, i.indisclustered, i.indpred, i.indexprs, information_schema._pg_expandarray(i.indkey) AS keys FROM pg_catalog.pg_index i) i ON (ct.oid = i.indrelid) JOIN pg_catalog.pg_class ci ON (ci.oid = i.indexrelid) JOIN pg_catalog.pg_am am ON (ci.relam = am.oid) WHERE true ? 4SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, ? ? FROM pg_catalog.pg_namespace n, pg_catalog.pg_class ct, pg_catalog.pg_class ci, pg_catalog.pg_attribute a, pg_catalog.pg_am am ? AND n.oid = ct.relnamespace ? , pg_catalog.pg_index i ? ? ct.relname AS TABLE_NAME, NOT i.indisunique AS NON_UNIQUE, NULL AS INDEX_QUALIFIER, ci.relname AS INDEX_NAME, CASE i.indisclustered WHEN true THEN ? ' ELSE CASE am.amname WHEN 'hash' THEN ? ELSE ?9 END END AS TYPE, a.attnum AS ORDINAL_POSITION, CASE WHEN i.indexprs IS NULL THEN a.attname ELSE pg_catalog.pg_get_indexdef(ci.oid,a.attnum,false) END AS COLUMN_NAME, NULL AS ASC_OR_DESC, ci.reltuples AS CARDINALITY, ci.relpages AS PAGES, pg_catalog.pg_get_expr(i.indpred, i.indrelid) AS FILTER_CONDITION ? [ WHERE ct.oid=i.indrelid AND ci.oid=i.indexrelid AND a.attrelid=ci.oid AND ci.relam=am.oid ? AND i.indisunique ? 9 ORDER BY NON_UNIQUE, TYPE, INDEX_NAME, ORDINAL_POSITION ? from where unique approximate supportsResultSetType supportsResultSetConcurrency concurrency ownUpdatesAreVisible ownDeletesAreVisible ownInsertsAreVisible othersUpdatesAreVisible othersDeletesAreVisible othersInsertsAreVisible updatesAreDetected deletesAreDetected insertsAreDetected supportsBatchUpdates getUDTs N(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I)Ljava/sql/ResultSet;select null as type_cat, n.nspname as type_schem, t.typname as type_name, null as class_name, CASE WHEN t.typtype='c' then 2002 else 2001 end as data_type, pg_catalog.obj_description(t.oid, 'pg_type') as remarks, CASE WHEN t.typtype = 'd' then (select CASE? getPGTypeNamesWithSQLTypes?|(? when typname = ? then ? ? else 1111 end from pg_type where oid=t.typbasetype) else null end as base_type from pg_catalog.pg_type t, pg_catalog.pg_namespace n where t.typnamespace = n.oid and n.nspname != 'pg_catalog' and n.nspname != 'pg_toast'? and (false ? [I? or t.typtype = 'c'? or t.typtype = 'd'? and t.typtype IN ('c','d') ? indexOf? V
T?? V
T?? ?
T? and t.typname like ? and n.nspname like ? * order by data_type, type_schem, type_name? (Ljava/util/Iterator; Ljava/util/Iterator; firstQualifier secondQualifier typeNamePattern sqlwhen toAdd
getConnection ()Ljava/sql/Connection; (II)Ljava/sql/Statement; -?
,? getMaxLogicalLobSize supportsRefCursors getRowIdLifetime ()Ljava/sql/RowIdLifetime; getClass ()Ljava/lang/Class;??
? getRowIdLifetime() com/huawei/opengauss/jdbc/Driver notImplemented O(Ljava/lang/Class;Ljava/lang/String;)Ljava/sql/SQLFeatureNotSupportedException;
&supportsStoredFunctionsUsingCallSyntax $autoCommitFailureClosesAllResultSets getClientInfoProperties NAME MAX_LEN
DEFAULT_VALUE DESCRIPTION ApplicationName ?The name of the application currently utilizing the connection. isWrapperFor (Ljava/lang/Class;)Z isWrapperFor(Class) iface Ljava/lang/Class<*>; Ljava/lang/Class; unwrap %(Ljava/lang/Class;)Ljava/lang/Object; unwrap(Class) Ljava/lang/Class; getFunctions 0 $ ? CASE WHEN (format_type(p.prorettype, null) = 'unknown') THEN 0 WHEN (substring(pg_get_function_result(p.oid) from 0 for 6) = 'TABLE') OR (substring(pg_get_function_result(p.oid) from 0 for 6) = 'SETOF') THEN 2 ELSE 1 END & SELECT current_database() AS FUNCTION_CAT, n.nspname AS FUNCTION_SCHEM, p.proname AS FUNCTION_NAME, d.description AS REMARKS, ( ? AS FUNCTION_TYPE, p.proname || '_' || p.oid AS SPECIFIC_NAME FROM pg_catalog.pg_proc p INNER JOIN pg_catalog.pg_namespace n ON p.pronamespace=n.oid LEFT JOIN pg_catalog.pg_description d ON p.oid=d.objoid WHERE pg_function_is_visible(p.oid) * 5 ORDER BY FUNCTION_SCHEM, FUNCTION_NAME, p.oid::text , functionNamePattern pgFuncResultExists funcTypeSql getFunctionColumnsxy
2 getPseudoColumns 0getPseudoColumns(String, String, String, String)5 generatedKeyAlwaysReturned supportsSavepoints supportsNamedParameters supportsMultipleOpenResults supportsGetGeneratedKeys
getSuperTypes #getSuperTypes(String,String,String)= getSuperTables +getSuperTables(String,String,String,String)@
getAttributes *getAttributes(String,String,String,String)C attributeNamePattern supportsResultSetHoldability holdability getResultSetHoldability getDatabaseMajorVersion getServerMajorVersionJ &
,K getDatabaseMinorVersion getServerMinorVersionN &
,O getJDBCMajorVersion getJDBCMinorVersion getSQLStateType locatorsUpdateCopy supportsStatementPooling getIsUpperCaseV :
,W java/util/LocaleY ENGLISH Ljava/util/Locale;[\ Z] toLowerCase &(Ljava/util/Locale;)Ljava/lang/String;_`
Ta tempSql *com/huawei/opengauss/jdbc/jdbc/PgResultSetd setUppercase (Z)Vfg
eh resultSet pgResultSet ,Lcom/huawei/opengauss/jdbc/jdbc/PgResultSet; TABLEn Tc.relkind IN ('r','p') AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'p NOSCHEMASr .c.relkind IN ('r','p') AND c.relname !~ '^pg_'t VIEWv Sc.relkind = 'v' AND n.nspname <> 'pg_catalog' AND n.nspname <> 'information_schema'x 'c.relkind = 'v' AND c.relname !~ '^pg_'z INDEX| Mc.relkind = 'i' AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'~ 'c.relkind = 'i' AND c.relname !~ '^pg_'? SEQUENCE? c.relkind = 'S'? TYPE? Mc.relkind = 'c' AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'? 'c.relkind = 'c' AND c.relname !~ '^pg_'? SYSTEM TABLE? Rc.relkind = 'r' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema')? ac.relkind = 'r' AND c.relname ~ '^pg_' AND c.relname !~ '^pg_toast_' AND c.relname !~ '^pg_temp_'? SYSTEM TOAST TABLE? *c.relkind = 'r' AND n.nspname = 'pg_toast'? ,c.relkind = 'r' AND c.relname ~ '^pg_toast_'? SYSTEM TOAST INDEX? *c.relkind = 'i' AND n.nspname = 'pg_toast'? ,c.relkind = 'i' AND c.relname ~ '^pg_toast_'? SYSTEM VIEW? hc.relkind = 'v' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' OR n.nspname = 'sys') ? &c.relkind = 'v' AND c.relname ~ '^pg_'? SYSTEM INDEX? Sc.relkind = 'i' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema') ? ac.relkind = 'v' AND c.relname ~ '^pg_' AND c.relname !~ '^pg_toast_' AND c.relname !~ '^pg_temp_'? TEMPORARY TABLE? Hc.relkind = 'r' AND (n.nspname ~ '^pg_temp_' OR c.relpersistence = 'g') ? Hc.relkind = 'r' AND (c.relname ~ '^pg_temp_' OR c.relpersistence = 'g') ? LOCAL TEMPORARY? 3c.relkind IN ('r','p') AND n.nspname ~ '^pg_temp_' ? 3c.relkind IN ('r','p') AND c.relname ~ '^pg_temp_' ? TEMPORARY INDEX? ,c.relkind = 'i' AND n.nspname ~ '^pg_temp_' ? ,c.relkind = 'i' AND c.relname ~ '^pg_temp_' ? TEMPORARY VIEW? ,c.relkind = 'v' AND n.nspname ~ '^pg_temp_' ? ,c.relkind = 'v' AND c.relname ~ '^pg_temp_' ? TEMPORARY SEQUENCE? ,c.relkind = 'S' AND n.nspname ~ '^pg_temp_' ? ,c.relkind = 'S' AND c.relname ~ '^pg_temp_' ?
FOREIGN TABLE? c.relkind = 'f'? ht Signature Code LocalVariableTable LineNumberTable
StackMapTable
Exceptions LocalVariableTypeTable 8(Ljava/lang/String;)Ljava/util/List; ?(Ljava/lang/String;Ljava/util/Map;>;>;)V ?(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;>;>; (Ljava/lang/Class<*>;)Z 1(Ljava/lang/Class;)TT;
SourceFile InnerClasses !
? ? ? X *? *? *? *+? !? ? " # $ ? , ( * - . % &