Edit C:\galaxie\jobs\GALAXIE__JOBs\GALAXIE__PCKG_0.5\lib\org\postgresql\jdbc\PgDatabaseMetaData.class
Êþº¾ 4? &org/postgresql/jdbc/PgDatabaseMetaData java/lang/Object java/sql/DatabaseMetaData PgDatabaseMetaData.java (org/postgresql/jdbc/PgDatabaseMetaData$1 java/util/Map$Entry java/util/Map Entry keywords Ljava/lang/String; connection "Lorg/postgresql/jdbc/PgConnection; nameDataLength I indexMaxKeys tableTypeClauses Ljava/util/Map; XLjava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>; <init> %(Lorg/postgresql/jdbc/PgConnection;)V ()V " this (Lorg/postgresql/jdbc/PgDatabaseMetaData; conn getMaxIndexKeys ()I java/sql/SQLException ) FSELECT setting FROM pg_catalog.pg_settings WHERE name='max_index_keys' + org/postgresql/jdbc/PgConnection - createStatement ()Ljava/sql/Statement; / 0 . 1 java/sql/Statement 3 executeQuery ((Ljava/lang/String;)Ljava/sql/ResultSet; 5 6 4 7 java/sql/ResultSet 9 next ()Z ; < : = close ? 4 @ !org/postgresql/util/PSQLException B PUnable to determine a value for MaxIndexKeys due to missing system catalog data. D org/postgresql/util/GT F tr 9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; H I G J org/postgresql/util/PSQLState L UNEXPECTED_ERROR Lorg/postgresql/util/PSQLState; N O M P 4(Ljava/lang/String;Lorg/postgresql/util/PSQLState;)V R C S java/lang/String U getInt (I)I W X : Y !org/postgresql/util/JdbcBlackHole [ (Ljava/sql/ResultSet;)V ? ] \ ^ (Ljava/sql/Statement;)V ? ` \ a java/lang/Throwable c 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' k 4Unable to find name datatype in the system catalogs. m typlen o (Ljava/lang/String;)I W q : r allProceduresAreCallable allTablesAreSelectable getURL ()Ljava/lang/String; v w . x getUserName z w . { isReadOnly } < . ~ nullsAreSortedHigh nullsAreSortedLow nullsAreSortedAtStart nullsAreSortedAtEnd getDatabaseProductName PostgreSQL ? getDatabaseProductVersion getDBVersionNumber ? w . ? getDriverName PostgreSQL JDBC Driver ? getDriverVersion 42.2.9 ? getDriverMajorVersion getDriverMinorVersion usesLocalFiles usesLocalFilePerTable supportsMixedCaseIdentifiers storesUpperCaseIdentifiers storesLowerCaseIdentifiers storesMixedCaseIdentifiers "supportsMixedCaseQuotedIdentifiers storesUpperCaseQuotedIdentifiers storesLowerCaseQuotedIdentifiers storesMixedCaseQuotedIdentifiers getIdentifierQuoteString " ? getSQLKeywords checkClosed ¡ . ¢ ¤ !org/postgresql/core/ServerVersion ¦ v9_0 #Lorg/postgresql/core/ServerVersion; ¨ © § ª haveMinimumServerVersion (Lorg/postgresql/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; ´ µ : ¶å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 É w Á Ê 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 j ( " getMaxColumnsInGroupBy getMaxColumnsInIndex ' ( & 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; getStandardConformingStringsD < .E EG 'I escapeStringKC .L 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 S isEmptyU < VV AND n.nspname LIKE XBC Z !and pg_function_is_visible(p.oid)\ AND p.proname LIKE ^ getHideUnprivilegedObjects` < .a , AND has_function_privilege(p.oid,'EXECUTE')c 7 ORDER BY PROCEDURE_SCHEM, PROCEDURE_NAME, p.oid::text e createMetaDataStatementg 0 h catalog schemaPattern procedureNamePattern getProcedureColumns ^(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet; org/postgresql/core/Fieldo java/util/ArrayListq r PROCEDURE_CATt (Ljava/lang/String;I)V v pw PROCEDURE_SCHEMy 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_OCTET_LENGTH? ORDINAL_POSITION? IS_NULLABLE? SPECIFIC_NAME?SELECT n.nspname,p.proname,p.prorettype,p.proargtypes, t.typtype,t.typrelid, p.proargnames, p.proargmodes, p.proallargtypes, p.oid FROM pg_catalog.pg_proc p, pg_catalog.pg_namespace n, pg_catalog.pg_type t WHERE p.pronamespace=n.oid AND p.prorettype=t.oid ? [Lorg/postgresql/core/Field;¡ java/util/List£ , ORDER BY n.nspname, p.proname, p.oid::text ¥ [B§ nspname© getBytes (Ljava/lang/String;)[B«¬ : proname¯ ´C :± _³ oidµ encodeString·¬ .¸ prorettypeº getLong (Ljava/lang/String;)J¼½ :¾ typtypeÀ typrelid proargtypesÄ java/util/StringTokenizerÆ (Ljava/lang/String;)V È ÇÉ hasMoreTokensË < ÇÌ nextTokenÎ w ÇÏ java/lang/LongÑ valueOf $(Ljava/lang/String;)Ljava/lang/Long;ÓÔ ÒÕ add (Ljava/lang/Object;)Zר¤Ù proargnamesÛ getArray $(Ljava/lang/String;)Ljava/sql/Array;ÝÞ :ß java/sql/Arrayá ()Ljava/lang/Object;Ýãâä [Ljava/lang/String;æ proargmodesè sizeê (¤ë proallargtypesí [Ljava/lang/Long;ï bñ equalsóØ Vô dö eø pú returnValueü java/lang/Integerþ É µ ÿ getTypeInfo ()Lorg/postgresql/core/TypeInfo; . org/postgresql/core/TypeInfo getSQLType X getPGType µ [[B $ (I)Ljava/lang/StringBuilder; à Á o t intValue ( Ò get (I)Ljava/lang/Object;¤ c OSELECT a.attname,a.atttypid FROM pg_catalog.pg_attribute a WHERE a.attrelid = " ; AND NOT a.attisdropped AND a.attnum > 0 ORDER BY a.attnum $ atttypid& attname( : @ !org/postgresql/core/BaseStatement+ createDriverResultSet B([Lorg/postgresql/core/Field;Ljava/util/List;)Ljava/sql/ResultSet;-.,/ tuple argOid columnMode i columnTypeOid columnsql columnstmt columnrs procedureName specificName returnType returnTypeType returnTypeRelid strArgTypes st Ljava/util/StringTokenizer; argTypes "Ljava/util/List<Ljava/lang/Long;>; Ljava/util/List; argNames argNamesArray Ljava/sql/Array; argModes argModesArray numArgs allArgTypes allArgTypesArray columnNamePattern columns f v Ljava/util/List<[[B>; isnullableUnknown getTables _(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet; SCHEMASTÀSELECT 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' WHEN 'm' THEN 'MATERIALIZED VIEW' ELSE NULL END ELSE NULL END AS TABLE_TYPE, d.description AS REMARKS, '' as TYPE_CAT, '' as TYPE_SCHEM, '' as TYPE_NAME, '' AS SELF_REFERENCING_COL_NAME, '' AS REF_GENERATION 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 V ] AND has_table_privilege(c.oid, 'SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER')X , ORDER BY TABLE_TYPE,TABLE_SCHEM,TABLE_NAME Z AND c.relname LIKE \ AND (false ^ ` &(Ljava/lang/Object;)Ljava/lang/Object;b c OR ( e ) g ) i clause clauses 5Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>; type orclause tableNamePattern types select orderby useSchemas getSchemas ()Ljava/sql/ResultSet; :(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;uw x>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_')) z AND nspname LIKE | 3 AND has_schema_privilege(nspname, 'USAGE, CREATE')~ ORDER BY TABLE_SCHEM? getCatalogs TABLE_CAT? getCatalog? w .? 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 TABLE_SCHEM? TABLE_NAME? COLUMN_SIZE BUFFER_LENGTH¢ DECIMAL_DIGITS¤ NUM_PREC_RADIX¦ SCOPE_CATALOG¨ SCOPE_SCHEMAª SCOPE_TABLE¬ SOURCE_DATA_TYPE® IS_AUTOINCREMENT° IS_GENERATEDCOLUMN² 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,t.typtypmod,¹ 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') 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Î relnameÐ adsrcÒ int4Ô nextval(Ö contains (Ljava/lang/CharSequence;)ZØÙ VÚ serialÜ int8Þ bigserialà attidentityâ typbasetypeä typtypmodæ getScale (II)Ièéê getPrecisionìéí getDisplaySizeïéð 10ò bitô varbitö 2ø attnotnullú getBoolean (Ljava/lang/String;)Züý :þ description attnumÓ µ V NO YES sqlType columnSize decimalDigits typeOid typeMod pgType defval identity baseTypeOid autoinc numberOfFields getColumnPrivileges GRANTOR GRANTEE PRIVILEGE IS_GRANTABLE /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 = $ AND c.relname = & AND a.attname LIKE ( ORDER BY attname * rolname, relacl. parseACL 5(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;01 2 attacl4 putAll (Ljava/util/Map;)V67 8 entrySet:? ; iterator ()Ljava/util/Iterator;=>?? java/util/IteratorA hasNextC <BD ;ãBF getValueHã I getKeyKã L¤? acl relPermissions kLjava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<[Ljava/lang/String;>;>;>; grantable grants grantor %Ljava/util/List<[Ljava/lang/String;>; grantee userToGrantable NLjava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<[Ljava/lang/String;>;>; Ljava/util/Map$Entry; privilege grantees HLjava/util/Map<Ljava/lang/String;Ljava/util/List<[Ljava/lang/String;>;>; 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') g ORDER BY nspname, relname i grantTuple granteeUser parseACLArray $(Ljava/lang/String;)Ljava/util/List; lengtho ( Vp charAt (I)Crs Vt substring (II)Ljava/lang/String;vw Vx startsWithzý V{ endsWith}ý V~ set '(ILjava/lang/Object;)Ljava/lang/Object;??¤? C aclString acls $Ljava/util/List<Ljava/lang/String;>; inQuotes Z beginIndex prevChar addACLPrivileges $(Ljava/lang/String;Ljava/util/Map;)V =? lastIndexOf? q V? /? 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à {Å }Çmn É?? Ë 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à qâ getPrimaryKeysMSELECT 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 i.indisprimary ORDER BY table_name, pk_name, key_seqç 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 pkicí , pg_catalog.pg_depend dep ï$ 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' ñ ? AND con.oid = dep.objid AND pkic.oid = dep.refobjid AND dep.classid = 'pg_constraint'::regclass::oid AND dep.refclassid = 'pg_class'::regclass::oid ó AND pkic.oid = con.conindid õ AND pkn.nspname = ÷ AND fkn.nspname = ù AND pkc.relname = û AND fkc.relname = ý 3 ORDER BY fkn.nspname,fkc.relname,con.conname,pos.nÿ 4 ORDER BY pkn.nspname,pkc.relname, con.conname,pos.n primaryCatalog primarySchema primaryTable foreignCatalog foreignSchema foreignTable getImportedKeyséê getExportedKeys getCrossReference LITERAL_PREFIX LITERAL_SUFFIX CREATE_PARAMS CASE_SENSITIVE SEARCHABLE UNSIGNED_ATTRIBUTE FIXED_PREC_SCALE AUTO_INCREMENT LOCAL_TYPE_NAME MINIMUM_SCALE MAXIMUM_SCALE" ñ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' AND (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))$ v9_2&