| 1849 | } |
| 1850 | |
| 1851 | void QueryPlannerVisitor::planSampling(PlanBuilder & builder, ASTSelectQuery & select_query) |
| 1852 | { |
| 1853 | if (select_query.sampleSize() && context->getSettingsRef().enable_final_sample) |
| 1854 | { |
| 1855 | ASTSampleRatio * sample = select_query.sampleSize()->as<ASTSampleRatio>(); |
| 1856 | ASTSampleRatio::BigNum numerator = sample->ratio.numerator; |
| 1857 | ASTSampleRatio::BigNum denominator = sample->ratio.denominator; |
| 1858 | if (numerator <= 1 || denominator > 1) |
| 1859 | { |
| 1860 | return; |
| 1861 | } |
| 1862 | else |
| 1863 | { |
| 1864 | auto sampling = std::make_unique<FinalSampleStep>(builder.getCurrentDataStream(), numerator, context->getSettingsRef().max_block_size); |
| 1865 | builder.addStep(std::move(sampling)); |
| 1866 | } |
| 1867 | } |
| 1868 | } |
| 1869 | |
| 1870 | RelationPlan QueryPlannerVisitor::planFinalSelect(PlanBuilder & builder, ASTSelectQuery & select_query) |
| 1871 | { |
nothing calls this directly
no test coverage detected