This is an automated email from the ASF dual-hosted git repository. skadam pushed a change to branch PHOENIX-6387-4.x in repository https://gitbox.apache.org/repos/asf/phoenix.git.
from 67620b1 PHOENIX-6387 Conditional updates on tables with indexes (#1215) new df12a19 PHOENIX-6271: Effective DDL generated by SchemaExtractionTool should maintain the order of PK and other columns (#1212) new 3666d4a PHOENIX-6456 Support query logging for DDL and DML new a838bef PHOENIX-6351 PhoenixMRJobUtil getActiveResourceManagerAddress logic fails on pseudodistributed cluster new 6a78f83 PHOENIX-6437: Parent-Child Delete marker should get replicated via Sy… (#1219) new 5fabbe8 PHOENIX-6457 - Optionally store schema version string in SYSTEM.CATALOG (#1216) new 4f9c583 PHOENIX-6432 Add support for additional load generators new 9a69ed5 PHOENIX-6357 Change all command line tools to use the fixed commons-cli constructor new 79b16a7 PHOENIX-6462 Index build that failed should be reporting it into the PHOENIX_INDEX_TOOL_RESULT table new 8bbefff PHOENIX-6454: Add feature to SchemaTool to get the DDL in specification mode (#1217) new 01da78e PHOENIX-6397 Implement TableMetricsManager class and its associated functions for select. upsert and Delete Queries new 1e68957 PHOENIX-6442 Phoenix should depend on the appropriate tephra-hbase-compat-x.y module new 741fc70 PHOENIX-6470 Bump Tephra to 0.16.1 in 4.x new 7eba973 PHOENIX-6471 Revert PHOENIX-5387 to remove unneeded CPL 1.0 license (#1234) The 13 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: LICENSE | 223 ---- phoenix-core/pom.xml | 104 +- .../org/apache/phoenix/end2end/AlterTableIT.java | 16 + .../phoenix/end2end/AlterTableWithViewsIT.java | 26 +- .../org/apache/phoenix/end2end/AuditLoggingIT.java | 248 ++++ .../org/apache/phoenix/end2end/CreateTableIT.java | 25 + .../apache/phoenix/end2end/CsvBulkLoadToolIT.java | 8 +- .../end2end/IndexToolForNonTxGlobalIndexIT.java | 43 + .../it/java/org/apache/phoenix/end2end/ViewIT.java | 19 + .../phoenix/end2end/index/MutableIndexIT.java | 21 + .../apache/phoenix/end2end/index/ViewIndexIT.java | 25 + .../phoenix/monitoring/BasePhoenixMetricsIT.java | 109 +- .../monitoring/PhoenixLoggingMetricsIT.java | 2 +- .../phoenix/monitoring/PhoenixMetricsIT.java | 194 ++- .../monitoring/PhoenixTableLevelMetricsIT.java | 1237 ++++++++++++++++++++ .../replication/SystemCatalogWALEntryFilterIT.java | 194 ++- .../phoenix/util/DelayedOrFailingRegionServer.java | 154 +++ .../apache/phoenix/util/DelayedRegionServer.java | 18 + .../coprocessor/GlobalIndexRegionScanner.java | 10 +- .../coprocessor/IndexRebuildRegionScanner.java | 7 +- .../coprocessor/IndexToolVerificationResult.java | 15 + .../phoenix/coprocessor/MetaDataEndpointImpl.java | 21 +- .../phoenix/coprocessor/MetaDataProtocol.java | 2 +- .../org/apache/phoenix/execute/MutationState.java | 249 +++- .../phoenix/iterate/BaseResultIterators.java | 31 +- .../phoenix/iterate/RoundRobinResultIterator.java | 8 + .../phoenix/iterate/ScanningResultIterator.java | 2 + .../org/apache/phoenix/jdbc/PhoenixConnection.java | 9 + .../phoenix/jdbc/PhoenixDatabaseMetaData.java | 3 + .../apache/phoenix/jdbc/PhoenixEmbeddedDriver.java | 2 +- .../phoenix/jdbc/PhoenixPreparedStatement.java | 4 +- .../org/apache/phoenix/jdbc/PhoenixResultSet.java | 45 +- .../org/apache/phoenix/jdbc/PhoenixStatement.java | 399 +++++-- .../org/apache/phoenix/log/AuditQueryLogger.java | 119 ++ ...andler.java => QueryLogDetailsWorkHandler.java} | 28 +- .../java/org/apache/phoenix/log/QueryLogger.java | 10 +- .../apache/phoenix/log/QueryLoggerDisruptor.java | 25 +- .../org/apache/phoenix/log/TableLogWriter.java | 4 + .../phoenix/mapreduce/AbstractBulkLoadTool.java | 34 +- .../apache/phoenix/mapreduce/OrphanViewTool.java | 4 +- .../apache/phoenix/mapreduce/PhoenixTTLTool.java | 4 +- .../phoenix/mapreduce/index/IndexScrutinyTool.java | 4 +- .../apache/phoenix/mapreduce/index/IndexTool.java | 2 +- .../phoenix/mapreduce/index/IndexUpgradeTool.java | 4 +- .../index/IndexVerificationResultRepository.java | 8 +- .../phoenix/monitoring/JmxMetricProvider.java | 96 ++ .../MetricPublisherSupplierFactory.java} | 25 +- .../phoenix/monitoring/MetricServiceResolver.java | 65 + .../org/apache/phoenix/monitoring/MetricType.java | 76 +- .../monitoring/MetricsRegistry.java} | 25 +- .../phoenix/monitoring/MutationMetricQueue.java | 111 +- ...etricImpl.java => NoOpTableMetricsManager.java} | 44 +- .../phoenix/monitoring/OverAllQueryMetrics.java | 42 + .../phoenix/monitoring/ScanMetricsHolder.java | 7 + .../phoenix/monitoring/TableClientMetrics.java | 182 +++ .../phoenix/monitoring/TableMetricsManager.java | 290 +++++ .../apache/phoenix/parse/CreateIndexStatement.java | 14 + .../apache/phoenix/parse/CreateTableStatement.java | 18 +- .../apache/phoenix/parse/IndexKeyConstraint.java | 16 + .../apache/phoenix/parse/PrimaryKeyConstraint.java | 16 +- .../phoenix/query/ConnectionQueryServicesImpl.java | 8 +- .../org/apache/phoenix/query/QueryConstants.java | 6 +- .../org/apache/phoenix/query/QueryServices.java | 8 + .../apache/phoenix/query/QueryServicesOptions.java | 37 + .../replication/SystemCatalogWALEntryFilter.java | 19 +- .../org/apache/phoenix/schema/DelegateTable.java | 5 + .../org/apache/phoenix/schema/MetaDataClient.java | 82 +- .../java/org/apache/phoenix/schema/PTable.java | 7 + .../java/org/apache/phoenix/schema/PTableImpl.java | 24 +- .../org/apache/phoenix/schema/TableProperty.java | 11 + .../phoenix/schema/stats/UpdateStatisticsTool.java | 4 +- .../util/MergeViewIndexIdSequencesTool.java | 4 +- .../org/apache/phoenix/util/PhoenixMRJobUtil.java | 12 +- .../org/apache/phoenix/util/PhoenixRuntime.java | 24 +- .../java/org/apache/phoenix/util/SchemaUtil.java | 13 +- phoenix-core/src/main/protobuf/PTable.proto | 1 + ...enix.monitoring.MetricPublisherSupplierFactory} | 2 +- .../phoenix/monitoring/TableClientMetricsTest.java | 214 ++++ .../monitoring/TableLevelMetricsTestData.java | 165 +++ .../monitoring/TableMetricsManagerTest.java | 207 ++++ phoenix-pherf/pom.xml | 1 + .../MultiTenantTestUtils.java | 201 ++-- .../mt/TenantTableOperationWorkloadIT.java | 149 +++ .../workload/mt/TenantViewOperationWorkloadIT.java | 157 +++ .../MultiTenantTableOperationBaseIT.java | 77 -- .../MultiTenantViewOperationBaseIT.java | 81 -- .../TenantTableOperationWorkloadIT.java | 72 -- .../TenantViewOperationWorkloadIT.java | 61 - .../main/java/org/apache/phoenix/pherf/Pherf.java | 37 +- .../org/apache/phoenix/pherf/PherfConstants.java | 6 + .../phoenix/pherf/configuration/Scenario.java | 15 + .../apache/phoenix/pherf/configuration/Upsert.java | 2 - .../org/apache/phoenix/pherf/util/PhoenixUtil.java | 13 + .../phoenix/pherf/workload/mt/EventGenerator.java | 30 - .../pherf/workload/mt/MultiTenantWorkload.java | 63 +- .../BaseLoadEventGenerator.java} | 176 +-- .../LoadEventGenerator.java} | 30 +- .../LoadEventGeneratorFactory.java} | 33 +- .../generators/SequentialLoadEventGenerator.java | 187 +++ .../TenantLoadEventGeneratorFactory.java | 70 ++ .../TenantOperationInfo.java | 4 +- .../UniformDistributionLoadEventGenerator.java | 109 ++ .../WeightedRandomLoadEventGenerator.java} | 30 +- .../PherfWorkHandler.java} | 14 +- .../RendezvousingWorkHandler.java} | 54 +- .../TenantOperationWorkHandler.java | 26 +- .../BaseOperationSupplier.java | 6 +- .../mt/{ => operations}/IdleTimeOperation.java | 2 +- .../IdleTimeOperationSupplier.java | 7 +- .../workload/mt/{ => operations}/Operation.java | 2 +- .../mt/{ => operations}/OperationStats.java | 49 +- .../mt/{ => operations}/PreScenarioOperation.java | 2 +- .../PreScenarioOperationSupplier.java | 8 +- .../mt/{ => operations}/QueryOperation.java | 2 +- .../QueryOperationSupplier.java | 5 +- .../TenantOperationFactory.java | 78 +- .../mt/{ => operations}/UpsertOperation.java | 2 +- .../UpsertOperationSupplier.java | 7 +- .../mt/{ => operations}/UserDefinedOperation.java | 2 +- .../UserDefinedOperationSupplier.java | 7 +- .../phoenix/pherf/ConfigurationParserTest.java | 26 +- .../java/org/apache/phoenix/pherf/PherfTest.java | 2 +- .../mt/SequentialLoadEventGeneratorTest.java | 146 +++ .../TenantOperationFactoryTest.java | 20 +- .../UniformDistributionLoadEventGeneratorTest.java | 136 +++ ...a => WeightedRandomLoadEventGeneratorTest.java} | 39 +- ...ase_table.sql => test_mt_schema_base_table.sql} | 0 ...chema_mt_view1.sql => test_mt_schema_view1.sql} | 0 ...chema_mt_view2.sql => test_mt_schema_view2.sql} | 0 ...a_tbl_simple.sql => test_tbl_schema_simple.sql} | 0 .../src/test/resources/scenario/test_evt_gen1.xml | 8 +- .../src/test/resources/scenario/test_evt_gen2.xml | 30 +- .../{test_evt_gen2.xml => test_evt_gen3.xml} | 42 +- .../{test_evt_gen2.xml => test_evt_gen4.xml} | 42 +- ..._workload.xml => test_mt_workload_template.xml} | 40 +- ...workload.xml => test_tbl_workload_template.xml} | 4 +- .../scenario/test_workload_with_load_profile.xml | 12 +- ...tionToolIT.java => SchemaToolExtractionIT.java} | 177 ++- .../phoenix/schema/SchemaToolSynthesisIT.java | 196 ++++ .../it/resources/synthesis/alter_add_property.sql | 17 +- .../resources/synthesis/alter_change_property.sql | 17 +- .../synthesis/alter_index_add_property.sql | 10 +- .../synthesis/alter_index_change_property.sql | 10 +- .../src/it/resources/synthesis/alter_table_add.sql | 17 +- .../it/resources/synthesis/alter_table_drop.sql | 17 +- .../resources/synthesis/alter_table_multiple.sql | 17 +- .../src/it/resources/synthesis/alter_view_add.sql | 31 +- .../src/it/resources/synthesis/alter_view_drop.sql | 31 +- .../src/it/resources/synthesis/create_function.sql | 6 +- .../src/it/resources/synthesis/drop_index.sql | 18 +- .../src/it/resources/synthesis/drop_table.sql | 17 +- .../resources/synthesis/mismatched_entity_name.sql | 17 +- .../phoenix/schema/SchemaExtractionProcessor.java | 71 +- .../org/apache/phoenix/schema/SchemaProcessor.java | 4 +- .../org/apache/phoenix/schema/SchemaSQLUtil.java | 168 +++ .../phoenix/schema/SchemaSynthesisProcessor.java | 216 ++++ .../{SchemaExtractionTool.java => SchemaTool.java} | 61 +- pom.xml | 9 +- 158 files changed, 7559 insertions(+), 1591 deletions(-) create mode 100644 phoenix-core/src/it/java/org/apache/phoenix/end2end/AuditLoggingIT.java create mode 100644 phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixTableLevelMetricsIT.java create mode 100644 phoenix-core/src/it/java/org/apache/phoenix/util/DelayedOrFailingRegionServer.java create mode 100644 phoenix-core/src/main/java/org/apache/phoenix/log/AuditQueryLogger.java rename phoenix-core/src/main/java/org/apache/phoenix/log/{QueryLogDetailsEventHandler.java => QueryLogDetailsWorkHandler.java} (65%) create mode 100644 phoenix-core/src/main/java/org/apache/phoenix/monitoring/JmxMetricProvider.java copy phoenix-core/src/main/java/org/apache/{hadoop/hbase/PhoenixTagType.java => phoenix/monitoring/MetricPublisherSupplierFactory.java} (68%) create mode 100644 phoenix-core/src/main/java/org/apache/phoenix/monitoring/MetricServiceResolver.java copy phoenix-core/src/main/java/org/apache/{hadoop/hbase/PhoenixTagType.java => phoenix/monitoring/MetricsRegistry.java} (68%) copy phoenix-core/src/main/java/org/apache/phoenix/monitoring/{NoOpGlobalMetricImpl.java => NoOpTableMetricsManager.java} (53%) create mode 100644 phoenix-core/src/main/java/org/apache/phoenix/monitoring/TableClientMetrics.java create mode 100644 phoenix-core/src/main/java/org/apache/phoenix/monitoring/TableMetricsManager.java copy phoenix-core/src/{test/resources/META-INF/services/org.apache.phoenix.query.PropertyPolicy => main/resources/META-INF/services/org.apache.phoenix.monitoring.MetricPublisherSupplierFactory} (94%) create mode 100644 phoenix-core/src/test/java/org/apache/phoenix/monitoring/TableClientMetricsTest.java create mode 100644 phoenix-core/src/test/java/org/apache/phoenix/monitoring/TableLevelMetricsTestData.java create mode 100644 phoenix-core/src/test/java/org/apache/phoenix/monitoring/TableMetricsManagerTest.java rename phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => }/MultiTenantTestUtils.java (55%) create mode 100644 phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/TenantTableOperationWorkloadIT.java create mode 100644 phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/TenantViewOperationWorkloadIT.java delete mode 100644 phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/tenantoperation/MultiTenantTableOperationBaseIT.java delete mode 100644 phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/tenantoperation/MultiTenantViewOperationBaseIT.java delete mode 100644 phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/tenantoperation/TenantTableOperationWorkloadIT.java delete mode 100644 phoenix-pherf/src/it/java/org/apache/phoenix/pherf/workload/mt/tenantoperation/TenantViewOperationWorkloadIT.java delete mode 100644 phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/EventGenerator.java rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation/TenantOperationWorkload.java => generators/BaseLoadEventGenerator.java} (51%) copy phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{MultiTenantWorkload.java => generators/LoadEventGenerator.java} (55%) copy phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{MultiTenantWorkload.java => generators/LoadEventGeneratorFactory.java} (57%) create mode 100644 phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/generators/SequentialLoadEventGenerator.java create mode 100644 phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/generators/TenantLoadEventGeneratorFactory.java rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => generators}/TenantOperationInfo.java (94%) create mode 100644 phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/generators/UniformDistributionLoadEventGenerator.java rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation/TenantOperationEventGenerator.java => generators/WeightedRandomLoadEventGenerator.java} (87%) copy phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{PreScenarioOperation.java => handlers/PherfWorkHandler.java} (71%) copy phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation/TenantOperationWorkHandler.java => handlers/RendezvousingWorkHandler.java} (53%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => handlers}/TenantOperationWorkHandler.java (73%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/BaseOperationSupplier.java (87%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/IdleTimeOperation.java (94%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/IdleTimeOperationSupplier.java (92%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/Operation.java (95%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/OperationStats.java (63%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/PreScenarioOperation.java (94%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/PreScenarioOperationSupplier.java (93%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/QueryOperation.java (94%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/QueryOperationSupplier.java (96%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/TenantOperationFactory.java (83%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/UpsertOperation.java (94%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/UpsertOperationSupplier.java (97%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{ => operations}/UserDefinedOperation.java (94%) rename phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => operations}/UserDefinedOperationSupplier.java (88%) create mode 100644 phoenix-pherf/src/test/java/org/apache/phoenix/pherf/workload/mt/SequentialLoadEventGeneratorTest.java rename phoenix-pherf/src/test/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation => }/TenantOperationFactoryTest.java (81%) create mode 100644 phoenix-pherf/src/test/java/org/apache/phoenix/pherf/workload/mt/UniformDistributionLoadEventGeneratorTest.java rename phoenix-pherf/src/test/java/org/apache/phoenix/pherf/workload/mt/{tenantoperation/TenantOperationEventGeneratorTest.java => WeightedRandomLoadEventGeneratorTest.java} (89%) rename phoenix-pherf/src/test/resources/datamodel/{test_schema_mt_base_table.sql => test_mt_schema_base_table.sql} (100%) rename phoenix-pherf/src/test/resources/datamodel/{test_schema_mt_view1.sql => test_mt_schema_view1.sql} (100%) rename phoenix-pherf/src/test/resources/datamodel/{test_schema_mt_view2.sql => test_mt_schema_view2.sql} (100%) rename phoenix-pherf/src/test/resources/datamodel/{test_schema_tbl_simple.sql => test_tbl_schema_simple.sql} (100%) copy phoenix-pherf/src/test/resources/scenario/{test_evt_gen2.xml => test_evt_gen3.xml} (65%) copy phoenix-pherf/src/test/resources/scenario/{test_evt_gen2.xml => test_evt_gen4.xml} (65%) rename phoenix-pherf/src/test/resources/scenario/{test_mt_workload.xml => test_mt_workload_template.xml} (85%) rename phoenix-pherf/src/test/resources/scenario/{test_tbl_workload.xml => test_tbl_workload_template.xml} (98%) rename phoenix-tools/src/it/java/org/apache/phoenix/schema/{SchemaExtractionToolIT.java => SchemaToolExtractionIT.java} (68%) create mode 100644 phoenix-tools/src/it/java/org/apache/phoenix/schema/SchemaToolSynthesisIT.java copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_add_property.sql (66%) copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_change_property.sql (66%) copy phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_index_add_property.sql (77%) copy phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_index_change_property.sql (78%) copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_table_add.sql (65%) copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_table_drop.sql (66%) copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/alter_table_multiple.sql (62%) copy phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexSplitForwardScanIT.java => phoenix-tools/src/it/resources/synthesis/alter_view_add.sql (62%) copy phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexSplitForwardScanIT.java => phoenix-tools/src/it/resources/synthesis/alter_view_drop.sql (63%) copy phoenix-core/src/it/resources/gold_files/gold_query_add_delete.txt => phoenix-tools/src/it/resources/synthesis/create_function.sql (89%) copy phoenix-core/src/main/java/org/apache/hadoop/hbase/ipc/RpcUtil.java => phoenix-tools/src/it/resources/synthesis/drop_index.sql (73%) copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/drop_table.sql (63%) copy phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/AbstractBaseSplitter.java => phoenix-tools/src/it/resources/synthesis/mismatched_entity_name.sql (66%) copy phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataEntity.java => phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaProcessor.java (91%) create mode 100644 phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSQLUtil.java create mode 100644 phoenix-tools/src/main/java/org/apache/phoenix/schema/SchemaSynthesisProcessor.java rename phoenix-tools/src/main/java/org/apache/phoenix/schema/{SchemaExtractionTool.java => SchemaTool.java} (64%)