Edit C:\Program Files\Java\jdk1.7.0_45\db\lib\org\apache\derby\impl\sql\compile\OptimizerImpl.class
Êþº¾ 0` ³12 1 ²3 ²4 ²5 ²6 ²7 ²8ïÿÿÿÿÿÿ ²9:; ²<:= ²> ²? ²@ ²A ²B ²C ²D ²E ²F ²G ²H ²I ²J ²K ²L ²MN O ²P ²Q:RST U VW ²X ²Y ²Z ²[ ²\ ²] m= m^_ 0` ²a ²b ²c ²d ²e:f ²g ?h ²i ²j ?kSlmnop ²qSr ²s:tu ûv:w HxymzS{ ²|S}S~ ? ?S? H? ?? ?x H? ?? ²?S?S?o? ? ²? 0? ? = ? ? ? ?? c?? e? c? e? ? 0?S? m??S?S? Hk ²? ²????? ² ?¡ ?¢S£?¤?¥S¦S§ ²¨ ²©mª m«S¬mm® ²¯m°m±m²m³S´ µ¶m·S¸ Hh?¹Sº»:¼S½:¾¿ ?1 ²ÀSÁ H ÂÃÄÅ ÆÇ¿ð SÈÉÊSË ?Ì:Í ¥Î ¥=Ï ¥1 ¥Ð  ¥ÑÒ ª1 ª= ª^ 0Ó 0Ô mÕ ª?Ö×Ø dDictionary 5Lorg/apache/derby/iapi/sql/dictionary/DataDictionary; numTablesInQuery I numOptimizables assignedTableMap $Lorg/apache/derby/iapi/util/JBitSet; optimizableList 3Lorg/apache/derby/iapi/sql/compile/OptimizableList; predicateList <Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList; nonCorrelatedTableMap proposedJoinOrder [I bestJoinOrder joinPosition desiredJoinOrderFound Z NO_JUMP ConstantValue READY_TO_JUMP JUMPING WALK_HIGH WALK_LOW permuteState firstLookOrder ruleBasedOptimization outermostCostEstimate 4Lorg/apache/derby/impl/sql/compile/CostEstimateImpl; currentCost currentSortAvoidanceCost bestCost timeOptimizationStarted J currentTime timeExceeded noTimeout useStatistics tableLockThreshold joinStrategies 1[Lorg/apache/derby/iapi/sql/compile/JoinStrategy; requiredRowOrdering 7Lorg/apache/derby/iapi/sql/compile/RequiredRowOrdering; foundABestPlan sortCost 0Lorg/apache/derby/iapi/sql/compile/CostEstimate; currentRowOrdering /Lorg/apache/derby/iapi/sql/compile/RowOrdering; bestRowOrdering conglomerate_OneRowResultSet optimizerTrace optimizerTraceHtml maxMemoryPerTable reloadBestPlan savedJoinOrders Ljava/util/HashMap; timeLimit D finalCostEstimate usingPredsPushedFromAbove bestJoinOrderUsedPredsFromAbove <init>(Lorg/apache/derby/iapi/sql/compile/OptimizableList;Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/dictionary/DataDictionary;ZZZI[Lorg/apache/derby/iapi/sql/compile/JoinStrategy;ILorg/apache/derby/iapi/sql/compile/RequiredRowOrdering;I)V Code ExceptionsÙ prepForNextRound ()V getMaxMemoryPerTable ()I getNextPermutation ()Z rewindJoinOrder endOfRoundCleanup recoverCostFromProposedJoinOrder (Z)D joinOrderMeetsDependencies (I)Z pullOptimizableFromJoinOrder pushPredicates V(Lorg/apache/derby/iapi/sql/compile/Optimizable;Lorg/apache/derby/iapi/util/JBitSet;)V getNextDecoratedPermutation rememberBestCost 4(Lorg/apache/derby/iapi/sql/compile/CostEstimate;I)V costPermutation costOptimizable(Lorg/apache/derby/iapi/sql/compile/Optimizable;Lorg/apache/derby/iapi/sql/dictionary/TableDescriptor;Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor;Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/compile/CostEstimate;)V ruleBasedCostOptimizable costBasedCostOptimizable considerCost Î(Lorg/apache/derby/iapi/sql/compile/Optimizable;Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/compile/CostEstimate;Lorg/apache/derby/iapi/sql/compile/CostEstimate;)V getDataDictionary 7()Lorg/apache/derby/iapi/sql/dictionary/DataDictionary; modifyAccessPaths newCostEstimate 2()Lorg/apache/derby/iapi/sql/compile/CostEstimate; getOptimizedCost getFinalCost setOuterRows (D)V getNumberOfJoinStrategies getJoinStrategy 3(I)Lorg/apache/derby/iapi/sql/compile/JoinStrategy; D(Ljava/lang/String;)Lorg/apache/derby/iapi/sql/compile/JoinStrategy; uniqueJoinWithOuterTable ?(Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;)D isPushable ;(Lorg/apache/derby/iapi/sql/compile/OptimizablePredicate;)Z estimateTotalCost (Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor;Lorg/apache/derby/iapi/sql/compile/CostEstimate;Lorg/apache/derby/iapi/sql/compile/Optimizable;)Lorg/apache/derby/iapi/sql/compile/CostEstimate; getLevel getNewCostEstimate 9(DDD)Lorg/apache/derby/impl/sql/compile/CostEstimateImpl; trace (IIIDLjava/lang/Object;)V updateBestPlanMaps (SLjava/lang/Object;)V addScopedPredicatesToList 4(Lorg/apache/derby/impl/sql/compile/PredicateList;)V ÷ ý 1org/apache/derby/impl/sql/compile/RowOrderingImpl è é ê é)* Õ Ö × Ö Ø Ö Ù ÖÚÛÜ · ¸Ý ÿ ¹ ¸ Á Â Ò ¸ Ó Â Ã Â Ä ¸ ¼ ½ ¾ ¿ µ ¶ Ô Æ Þ Æ î ¸ á â à ¸ ã ä ß Æ "org/apache/derby/iapi/util/JBitSet ÷Þ º » À »ßàáâãäåæçè Ú Û ï Æ ð ñ ò ó õ Æ ö Æéê +org/apache/derby/impl/sql/compile/Predicateë Ý Æ Å Æ ì Æ+, ýìí Ü Ûî å Æ ýïðñòóôõö÷ ýøùú 42Y70ûüøýþ .org/apache/derby/iapi/sql/compile/CostEstimateÿ . ý ò þþ ÿÞå$%ãåÞå ÿ 9org/apache/derby/impl/sql/compile/BaseTableNumbersVisitor ÷å +org/apache/derby/impl/sql/compile/FromTableåÞ%Þ :org/apache/derby/iapi/sql/compile/OptimizablePredicateListò æ ç !" #$ %&' ý( ý)*+,- ÿ./0123&'4567879Þ:;<=>?@A#BC ý 42Y69DEFGHI 2org/apache/derby/impl/sql/compile/CostEstimateImpl ô çJòKLMNOPQRST#UV!W ÷ ßXY java/util/HashMapYZ[ /org/apache/derby/impl/sql/compile/PredicateList\] ý^_ /org/apache/derby/impl/sql/compile/OptimizerImpl java/lang/Object +org/apache/derby/iapi/sql/compile/Optimizer -org/apache/derby/iapi/error/StandardException 1org/apache/derby/iapi/sql/compile/OptimizableList verifyProperties 8(Lorg/apache/derby/iapi/sql/dictionary/DataDictionary;)V size (I)V getOptimizable 2(I)Lorg/apache/derby/iapi/sql/compile/Optimizable; -org/apache/derby/iapi/sql/compile/Optimizable getReferencedTableMap &()Lorg/apache/derby/iapi/util/JBitSet; or '(Lorg/apache/derby/iapi/util/JBitSet;)V java/lang/System currentTimeMillis ()J getOptPredicate ;(I)Lorg/apache/derby/iapi/sql/compile/OptimizablePredicate; isScopedForPush initAccessPaths 0(Lorg/apache/derby/iapi/sql/compile/Optimizer;)V isUninitialized compare 3(Lorg/apache/derby/iapi/sql/compile/CostEstimate;)D getBestAccessPath 0()Lorg/apache/derby/iapi/sql/compile/AccessPath; ,org/apache/derby/iapi/sql/compile/AccessPath getCostEstimate -org/apache/derby/iapi/sql/compile/RowOrdering copy 2(Lorg/apache/derby/iapi/sql/compile/RowOrdering;)V legalJoinOrder '(Lorg/apache/derby/iapi/util/JBitSet;)Z optimizeJoinOrder newException C(Ljava/lang/String;)Lorg/apache/derby/iapi/error/StandardException; singleScanRowCount ()D setCostEstimate 3(Lorg/apache/derby/iapi/sql/compile/CostEstimate;)V startOptimizing _(Lorg/apache/derby/iapi/sql/compile/Optimizer;Lorg/apache/derby/iapi/sql/compile/RowOrdering;)V pullOptPredicates ?(Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;)V updateBestPlanMap setCost (DDD)V clearAll getBestSortAvoidancePath getEstimatedCost rowCount considerSortAvoidancePath getTableNumber removeOptimizable xor getReferencedMap setTo get clear and getFirstSetBit setTableMap accept Z(Lorg/apache/derby/iapi/sql/compile/Visitor;)Lorg/apache/derby/iapi/sql/compile/Visitable; set pushOptPredicate removeOptPredicate nextAccessPath ?(Lorg/apache/derby/iapi/sql/compile/Optimizer;Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/compile/RowOrdering;)Z getCurrentAccessPath 5org/apache/derby/iapi/sql/compile/RequiredRowOrdering getSortNeeded estimateCost c(DLorg/apache/derby/iapi/sql/compile/RowOrdering;Lorg/apache/derby/iapi/sql/compile/CostEstimate;)V sortRequired e(Lorg/apache/derby/iapi/sql/compile/RowOrdering;Lorg/apache/derby/iapi/sql/compile/OptimizableList;)I rememberAsBest 1(ILorg/apache/derby/iapi/sql/compile/Optimizer;)V sortNotNeeded sortNeeded feasibleJoinStrategy l(Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/compile/Optimizer;)Z optimizeIt ú(Lorg/apache/derby/iapi/sql/compile/Optimizer;Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/compile/CostEstimate;Lorg/apache/derby/iapi/sql/compile/RowOrdering;)Lorg/apache/derby/iapi/sql/compile/CostEstimate; getLockMode useful o(Lorg/apache/derby/iapi/sql/compile/Optimizable;Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor;)Z isCoveringIndex @(Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor;)Z getCoveringIndexScan getNonMatchingIndexScan setConglomerateDescriptor @(Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor;)V setNonMatchingIndexScan (Z)V setCoveringIndexScan setLockMode rememberJoinStrategyAsBest 1(Lorg/apache/derby/iapi/sql/compile/AccessPath;)V ;org/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor isIndex getConglomerateDescriptor ?()Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor; memoryUsageOK (DI)Z ?(Lorg/apache/derby/iapi/sql/compile/RowOrdering;Lorg/apache/derby/iapi/util/JBitSet;Lorg/apache/derby/iapi/sql/compile/OptimizableList;)I rememberSortAvoidancePath reOrder ([I)V modifyAccessPath U(Lorg/apache/derby/iapi/util/JBitSet;)Lorg/apache/derby/iapi/sql/compile/Optimizable; setOptimizable 3(ILorg/apache/derby/iapi/sql/compile/Optimizable;)V getTrulyTheBestAccessPath %org/apache/derby/iapi/util/StringUtil SQLToUpperCase &(Ljava/lang/String;)Ljava/lang/String; .org/apache/derby/iapi/sql/compile/JoinStrategy getName ()Ljava/lang/String; java/lang/String equals (Ljava/lang/Object;)Z uniqueJoin 6org/apache/derby/iapi/sql/compile/OptimizablePredicate hasSubquery7(Lorg/apache/derby/iapi/sql/compile/OptimizablePredicateList;Lorg/apache/derby/iapi/sql/dictionary/ConglomerateDescriptor;Lorg/apache/derby/iapi/sql/compile/CostEstimate;Lorg/apache/derby/iapi/sql/compile/Optimizer;Lorg/apache/derby/iapi/sql/compile/RowOrdering;)Lorg/apache/derby/iapi/sql/compile/CostEstimate; remove &(Ljava/lang/Object;)Ljava/lang/Object; put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; isScopedToSourceResultSet clearScanFlags addOptPredicate ;(Lorg/apache/derby/iapi/sql/compile/OptimizablePredicate;)V ! ² ³ ´ - µ ¶ · ¸ ¹ ¸ º » ¼ ½ ¾ ¿ À » Á Â Ã Â Ä ¸ Å Æ Ç ¸ È É Ê ¸ È Ë Ì ¸ È Í Î ¸ È Ï Ð ¸ È Ñ Ò ¸ Ó Â Ô Æ Õ Ö × Ö Ø Ö Ù Ö Ú Û Ü Û Ý Æ Þ Æ ß Æ à ¸ á â ã ä å Æ æ ç è é ê é ë Æ ì Æ í Æ î ¸ ï Æ ð ñ ò ó ô ç õ Æ ö Æ $ ÷ ø ù ` T*· *» Y· µ *» Y· µ **¶ µ **¶ µ **¶ µ ** ¶ µ +-¹ *µ *+¹ µ **´ ¼ µ ¤ *µ **´ ¼ µ § *µ 6*´ ¢ *´ O?§ÿì**´ ¼ µ *µ *+µ *,µ *-µ *µ *µ *µ *µ * µ * µ *µ *» Y· !µ "*» Y· !µ #6*´ ¢ !+¹ $ : *´ # ¹ % ¶ &?§ÿÜ*¸ 'µ (*µ )*µ ** µ +*µ ,*µ -± ú û ü ý ù ? x*µ )** ¶ µ *µ ,*´ Æ @*´ ¹ . ? 4*´ ¹ . d<? $*´ ¹ / À 0¶ 1? *µ ,§ ?ÿ§ÿÞ*´ ,? *¸ 'µ (*µ 2*µ 3± þ ÿ ù *´ ¬ ù ß Ó*´ ¢ *´ 4? *¶ 5*· 6¬*´ *¹ 7 *´ 2? L*´ ¤ C*´ ? <*¸ 'µ 8**´ 8*´ (e?*´ +?? § µ 2*´ 4? *´ 2? *¶ 5*´ ¶ 9? n*´ :? g*´ ,? *´ -? *´ 2? R*´ ? E*´ Ç **´ ¼ µ <*´ ¢ *´ *´ .O?§ÿé*µ *´ ? *· ;*µ *µ 2<*´ ¶ 9? .*´ *´ ¶ <?? *´ Æ *´ *´ ¶ <?? § =*´ *´ d¢ P? L*´ 2? E*´ ? "*´ *´ *´ .¹ $ ¹ = ¹ > Æ O*Y´ `µ <*´ *´ ¹ ? § 3*´ 4? *´ *´ d¢ *¶ 5*´ *´ d¢ *µ )*´ ? *´ ? *µ )*· ;*µ *´ ?ø*´ *´ .`>*´ *´ .? *· @*´ 3? *´ 2? *´ >§V*´ Î*´ *´ .6>*´ 66*´ ¹ $ :*´ "¹ A ? ~? *´ *´ O*´ O*´ `¤ )*´ ?ÿ.6*´ *´ O*´ O>§ %*´ ? *Y´ dµ *µ )*· ;*µ § *´ ¹ $ :§ÿz*´ ? §ÿ*´ *´ d *µ § ?*´ ¢ {66*´ ¢ *´ . 6§ ?§ÿã? § G*´ ¢ E*· B? =*´ 4? * ¶ 5*´ ¹ C ? *´ 4? * ¶ 5D¸ E¿?§ÿ?*´ ¡}*´ ¹ C ? @*´ *´ ¹ F ? *´ 4? * ¶ 5D¸ E¿*´ 4? *¶ 5*µ 3*´ *´ ? ÿ*´ *´ d ò*µ *´ ¼:6*´ ¢ B*´ O*´ ¹ $ ¹ = ¹ > :Ç *µ § ¹ G R?§ÿ»*´ ?66*´ ¢ h6`6 *´ ¢ 11?? 6? §ÿâ? 01R*´ .6*´ *´ .O*´ O6?§ÿ?? *Y´ dµ *· ;§ý *µ *Y´ dµ *´ ?ý *´ ý*µ *µ §üõ*´ *´ O*´ |66*´ ¢ 4*´ .*´ .¢ 6§ *´ .*´ .¤ § ?§ÿÉ? 7*´ *´ O*Y´ dµ *´ ? *µ )*· ;*µ *µ *· 6¬*´ ¹ $ ¹ = À H¹ I *´ 4? *¶ 5*´ ¹ $ :*´ "¹ % ¶ &**´ ¹ J **´ ¹ $ *´ "¶ K¬*· 6¬ ú û ý ù u i*´ *´ *´ .¹ $ L+*´ ¹ L *´ )? +*¹ M *´ *´ O*´ ? § *Y´ dµ §ÿ¶*´ ¶ N*´ ¶ N*´ "¶ O± ú û ý ù . "<*´ ¢ *´ ¹ $ *¹ M ?§ÿä± ú û ù m aI6*´ ¢ T? ((*´ *´ .¹ $ ¹ P ¹ > ¹ Q cI§ %(*´ *´ .¹ $ ¹ = ¹ > ¹ Q cI?§ÿ©(¯ ú û ù "