├── .github
└── workflows
│ ├── ci.yml
│ ├── docs.yaml
│ └── rebase_checker.yaml
├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── LICENSE
├── README.md
├── admin
├── local
│ ├── cli
│ │ ├── qserv
│ │ └── qserv-template.cfg
│ ├── docker
│ │ └── compose
│ │ │ ├── docker-compose.yml
│ │ │ └── log
│ │ │ ├── log-czar-proxy.cnf
│ │ │ ├── log-repl-controller.cnf
│ │ │ ├── log-repl-registry.cnf
│ │ │ ├── log-repl-worker.cnf
│ │ │ ├── log-worker-xrootd.cnf
│ │ │ └── log.cnf
│ └── watcher
│ │ ├── watcher_int.yaml
│ │ └── watcher_prod.yaml
└── tools
│ └── docker
│ ├── base
│ ├── Dockerfile
│ └── xrootd_f032a1b0.patch
│ ├── build-user
│ └── Dockerfile
│ ├── mariadb
│ └── Dockerfile
│ └── run
│ └── Dockerfile
├── doc
├── CMakeLists.txt
├── _static
│ ├── ingest-options-pull.png
│ ├── ingest-options-push.png
│ ├── ingest-options-read.png
│ ├── ingest-options.pptx
│ ├── ingest-table-types-dependent.png
│ ├── ingest-table-types-partitioned.png
│ ├── ingest-table-types-regular.png
│ ├── ingest-table-types.pptx
│ ├── ingest-trans-multiple-chunks.png
│ ├── ingest-trans-multiple-one.png
│ ├── ingest-trans-multiple-scattered.png
│ ├── ingest-trans-multiple.pptx
│ ├── ingest-transaction-fsm.png
│ ├── ingest-transaction-fsm.pptx
│ ├── ingest-transactions-aborted.png
│ ├── ingest-transactions-aborted.pptx
│ ├── ingest-transactions-failed.png
│ ├── ingest-transactions-failed.pptx
│ ├── ingest-transactions-resolved.png
│ ├── ingest-transactions-resolved.pptx
│ └── subchunks.png
├── admin
│ ├── admin-upgrade.rst
│ ├── data-table-indexes.rst
│ ├── director-index.rst
│ ├── index.rst
│ ├── k8s.rst
│ └── row-counters.rst
├── cmake
│ └── FindSphinx.cmake
├── conf.py
├── dev
│ ├── doc.rst
│ ├── index.rst
│ ├── quick-start-devel.rst
│ └── scisql.rst
├── documenteer.toml
├── index.rst
├── ingest
│ ├── api
│ │ ├── advanced
│ │ │ ├── async-concurrency.rst
│ │ │ ├── charset.rst
│ │ │ ├── config.rst
│ │ │ ├── contributions.rst
│ │ │ ├── directors.rst
│ │ │ ├── index.rst
│ │ │ ├── optimisations.rst
│ │ │ ├── ref-match.rst
│ │ │ ├── transactions.rst
│ │ │ ├── unpublishing.rst
│ │ │ └── warnings.rst
│ │ ├── concepts
│ │ │ ├── contributions.rst
│ │ │ ├── families.rst
│ │ │ ├── index.rst
│ │ │ ├── overview.rst
│ │ │ ├── publishing.rst
│ │ │ ├── table-types.rst
│ │ │ └── transactions.rst
│ │ ├── index.rst
│ │ ├── introduction.rst
│ │ ├── post-ingest
│ │ │ └── index.rst
│ │ ├── reference
│ │ │ ├── index.rst
│ │ │ ├── rest
│ │ │ │ ├── controller
│ │ │ │ │ ├── config.rst
│ │ │ │ │ ├── db-table-management.rst
│ │ │ │ │ ├── director-index.rst
│ │ │ │ │ ├── index.rst
│ │ │ │ │ ├── info.rst
│ │ │ │ │ ├── row-counters.rst
│ │ │ │ │ ├── table-location.rst
│ │ │ │ │ └── trans-management.rst
│ │ │ │ ├── general.rst
│ │ │ │ ├── index.rst
│ │ │ │ └── worker
│ │ │ │ │ └── index.rst
│ │ │ └── tools.rst
│ │ └── simple
│ │ │ └── index.rst
│ ├── data
│ │ ├── index.rst
│ │ ├── intro.rst
│ │ ├── partitioner.rst
│ │ ├── partitioning.rst
│ │ └── ref-match.rst
│ ├── index.rst
│ ├── intro.rst
│ └── qserv-ingest
│ │ ├── index.rst
│ │ ├── ingest.yaml
│ │ ├── input-data.rst
│ │ ├── itest.rst
│ │ ├── repcli.rst
│ │ ├── run.rst
│ │ └── version.rst
├── intro
│ └── index.rst
├── misc
│ ├── KNOWN-ISSUES.txt
│ ├── README.md
│ ├── RELEASE-NOTES.txt
│ ├── Scheduler-Foreman-rationale-tkt1863.txt
│ ├── component_interaction.odg
│ ├── examples
│ │ ├── README.md
│ │ ├── obsolete
│ │ │ ├── README.txt
│ │ │ ├── fell.qserv.cnf
│ │ │ ├── ir2farm.qserv.cnf
│ │ │ ├── loader.py
│ │ │ ├── lsst-dev01.qserv.cnf
│ │ │ ├── plotChunksCopies.tcl
│ │ │ └── rebalance.py
│ │ └── xrootd
│ │ │ └── supervisor.lsp.cf
│ ├── guide_to_source.txt
│ ├── installation.trac
│ ├── overview.tex
│ ├── parser.txt
│ ├── proto-czarHandlesWorkerResponse.gv
│ ├── proto-workerSendsResponse.gv
│ └── query_manipulation.dot
├── templates
│ └── overview.html
└── user
│ ├── async.rst
│ ├── http-frontend-general.rst
│ ├── http-frontend-ingest.rst
│ ├── http-frontend-query.rst
│ ├── http-frontend.rst
│ ├── index.rst
│ └── sql.rst
├── doc_datasets
└── test101
│ ├── README.md
│ ├── data
│ ├── Filter.csv
│ ├── Object
│ │ ├── chunk_7310_overlap.txt
│ │ ├── chunk_7480.txt
│ │ └── chunk_7480_overlap.txt
│ └── Source
│ │ └── chunk_7480.txt
│ ├── database_test101.json
│ ├── table_Filter.json
│ ├── table_Object.json
│ └── table_Source.json
├── itest_src
└── datasets
│ ├── case01
│ ├── data
│ │ ├── Filter.tsv.gz
│ │ ├── LeapSeconds.tsv.gz
│ │ ├── Logs.tsv.gz
│ │ ├── Object.tsv.gz
│ │ ├── RefSrcMatch.tsv.gz
│ │ ├── Science_Ccd_Exposure.tsv.gz
│ │ ├── SimRefObject.tsv.gz
│ │ ├── Source.tsv.gz
│ │ ├── description.yaml
│ │ ├── ingest
│ │ │ ├── Filter.json
│ │ │ ├── LeapSeconds.json
│ │ │ ├── Logs.json
│ │ │ ├── Object.json
│ │ │ ├── RefSrcMatch.json
│ │ │ ├── Science_Ccd_Exposure.json
│ │ │ ├── SimRefObject.json
│ │ │ ├── Source.json
│ │ │ ├── database.json
│ │ │ ├── metadata.json
│ │ │ └── sdqa_Metric.json
│ │ ├── partition
│ │ │ ├── Object.json
│ │ │ ├── Source.json
│ │ │ └── common.json
│ │ ├── readme.txt
│ │ ├── schema
│ │ │ ├── Filter.schema
│ │ │ ├── LeapSeconds.schema
│ │ │ ├── Logs.schema
│ │ │ ├── Object.schema
│ │ │ ├── RefSrcMatch.schema
│ │ │ ├── Science_Ccd_Exposure.schema
│ │ │ ├── SimRefObject.schema
│ │ │ ├── Source.schema
│ │ │ └── sdqa_Metric.schema
│ │ └── sdqa_Metric.tsv.gz
│ └── queries
│ │ ├── 0001.1_fetchObjectById.sql
│ │ ├── 0001.2_fetchObjectByIdIN.sql
│ │ ├── 0001.3_fetchObjectByIdSelectVARBINARY.sql
│ │ ├── 0001.4_fetchObjectByIdFullyQualified.sql
│ │ ├── 0002_fetchObjectByIdNoResult.sql
│ │ ├── 0003_selectMetadataForOneGalaxy.sql
│ │ ├── 0003_selectMetadataForOneGalaxy_classicJOIN.sql
│ │ ├── 0003_selectMetadataForOneGalaxy_withUSING.sql
│ │ ├── 0004_lightCurve.sql
│ │ ├── 0005_nonReplicatedTable.sql
│ │ ├── 0006_transientVarObjNearGalaxy.sql
│ │ ├── 0007.1_fetchSourceByObjId.sql
│ │ ├── 0007.2_fetchSourceByObjIdSelectBLOB.sql
│ │ ├── 0007_fetchSourceByObjId.sql
│ │ ├── 0008.1_fetchSourceByObjIdIN_noRes.sql
│ │ ├── 0008.2_fetchSourceByObjIdIN_withRes.sql
│ │ ├── 0008.3_fetchSourceByObjIdIN.sql
│ │ ├── 0008.4_fetchSourceByObjIdBETWEEN.sql
│ │ ├── 0008_fetchSourceByObjIdIN_withRes.sql
│ │ ├── 0010_leapSec.sql
│ │ ├── 0012.1_raftAndCcd.sql
│ │ ├── 0012.2_raftAndCcd.sql
│ │ ├── 0012.3_raftAndCcd.sql
│ │ ├── 0012_raftAndCcd.sql
│ │ ├── 0013_groupedLogicalTerm.sql
│ │ ├── 1002_coneMagColor.sql
│ │ ├── 1002_coneMagColor_noalias.sql
│ │ ├── 1003_coneMagColorEmptyRes.sql
│ │ ├── 1004.1_varObjects.sql
│ │ ├── 1004_varObjects.sql
│ │ ├── 1005_allGalaxiesInArea.sql
│ │ ├── 1006_qserv_func_with_equals.1.sql
│ │ ├── 1006_qserv_func_with_equals.2.sql
│ │ ├── 1011_objectsForExposure.sql
│ │ ├── 1030_timeSeries.sql
│ │ ├── 1051_nn.sql
│ │ ├── 1060_selectPoly.sql
│ │ ├── 1080_refMatch1.sql
│ │ ├── 1083_null_safe_equals_op.sql
│ │ ├── 1084_not_like.sql
│ │ ├── 1084_null_safe_equals_op.sql
│ │ ├── 1086_not_between.sql
│ │ ├── 1087_and_alt.sql
│ │ ├── 1088_or_alt.sql
│ │ ├── 1089_not_in.sql
│ │ ├── 1090_modulo.sql
│ │ ├── 1091_mod.sql
│ │ ├── 1092_div.sql
│ │ ├── 1093_bitwise_and.sql
│ │ ├── 1094_bitwise_or.sql
│ │ ├── 1095_bitwise_right_shift.sql
│ │ ├── 1096_bitwise_left_shift.sql
│ │ ├── 1097_bitwise_xor.sql
│ │ ├── 1098_negative_one.sql
│ │ ├── 1099_two_group_by_columns.sql
│ │ ├── 1100_aliasInSelect.sql
│ │ ├── 1101.1_having.sql
│ │ ├── 1101.2_having.sql
│ │ ├── 1101.3_having.sql
│ │ ├── 1102_having_with_limit.sql
│ │ ├── 1103_select_star_with_limit.sql
│ │ ├── 1104_column_disambiguation.sql
│ │ ├── 1105_simpleCountStar.sql
│ │ ├── 2001_fullObjectScan.sql
│ │ ├── 2100_groupByChunkId.sql
│ │ ├── 3005_orderByRA.sql
│ │ ├── 3006.1_selectAs.sql
│ │ ├── 3006_selectAs.sql
│ │ ├── 3008_showColumns.sql
│ │ ├── 3010_selectWithComputation.sql
│ │ ├── 3011_selectSample.sql
│ │ ├── 3014_limitAfterAreaspec.sql
│ │ ├── 8003_areaWithLimitClause.sql
│ │ ├── 9000_caseinsensitiveUDF.sql
│ │ ├── 9001_quoteTabInBlob.sql
│ │ ├── 9002_secIdxCompEq.sql
│ │ ├── 9003_secIdxCompLt.sql
│ │ ├── 9004_secIdxCompGt.sql
│ │ ├── unsupported_columns
│ │ ├── 2002_findStarsWithMultiMeasAndMagVariation.sql
│ │ ├── 2003_objectWithVariabilityOrPeriodOrMag.sql
│ │ ├── 3004_nonExistingColumn.sql
│ │ └── README.txt
│ │ ├── unsupported_syntax
│ │ ├── 0011_sdqaMetric.sql
│ │ ├── 1012_orderByClause.sql
│ │ ├── 1013_orderByClauseRounded.sql
│ │ ├── 1052_nnSimilarColors.sql
│ │ ├── 1070_areaUsingPoly.sql
│ │ ├── 1081_refMatch2.sql
│ │ ├── 2006_randomSample.sql
│ │ ├── 2010_logs.sql
│ │ ├── 3001_SelectInPoly.sql
│ │ ├── 3002_sameColumnName.sql
│ │ ├── 3003_SameColumnTwice.sql
│ │ ├── 3007_countGroupBy.sql
│ │ ├── 3009_subquery.sql
│ │ ├── 3012_similarObject.sql
│ │ ├── 3015_orderByFunction.sql
│ │ ├── 3016_selectAllPairsWithinDistance.sql
│ │ ├── 8001_badLiteral.sql
│ │ ├── 8002_badLiteral.sql
│ │ ├── 8004_badArea.sql
│ │ └── README.txt
│ │ └── unsupported_tables
│ │ ├── 1031_newTransientsForEpoch.sql
│ │ ├── 1082_refMatch3.sql
│ │ ├── 1083_refMatch3.sql
│ │ ├── 1085_refMatch3.sql
│ │ ├── 2004_objectsSimilarToQuasarsWithRedshift.sql
│ │ ├── 2005_varObjectsOfOneType.sql
│ │ ├── 3013_nonexistantTable.sql
│ │ └── README.txt
│ ├── case02
│ ├── README.txt
│ ├── data
│ │ ├── Object.csv.gz
│ │ ├── Source.csv.gz
│ │ ├── description.yaml
│ │ ├── ingest
│ │ │ ├── Object.json
│ │ │ ├── Source.json
│ │ │ └── database.json
│ │ ├── partition
│ │ │ ├── Object.json
│ │ │ ├── Source.json
│ │ │ └── common.json
│ │ └── schema
│ │ │ ├── Object.schema
│ │ │ └── Source.schema
│ └── queries
│ │ ├── 0001_fetchObjectById.sql
│ │ ├── 0002_fetchObjectByIdNoResult.sql
│ │ ├── 0003_selectMetadataForOneGalaxy_withUSING.sql
│ │ ├── 0004_fetchSourceById.sql
│ │ ├── 1002.1_coneMagColor.sql
│ │ ├── 1002.2_coneMagColor.sql
│ │ ├── 1002.3_coneMagColor.sql
│ │ ├── 1002.4_coneMagColor.sql
│ │ ├── 1003_coneMagColorEmptyRes.sql
│ │ ├── 1004.1_varObjects.sql
│ │ ├── 1004.2_varObjects.sql
│ │ ├── 1004.3_varObjects.sql
│ │ ├── 1004.4_varObjects.sql
│ │ ├── 1004.5_varObjects.sql
│ │ ├── 1004.6_varObjects.sql
│ │ ├── 1004.7_varObjects.sql
│ │ ├── 1004.8_varObjects.sql
│ │ ├── 1004_varObjects.sql
│ │ ├── 1051_nn.sql
│ │ ├── 2001_fullObjectScan.sql
│ │ ├── 3001_query_035.sql
│ │ ├── 3002_query_030.sql
│ │ ├── 3005_objectCount.sql
│ │ ├── 3006_selectIntervalMagnitudes.sql
│ │ ├── 3007_countObjectWithColorFluxGreaterThan.sql
│ │ ├── 3008_selectObjectWithColorMagnitudeGreaterThan.sql
│ │ ├── 3009_countObjectInRegionWithZFlux.sql
│ │ ├── 3011_selectObjectWithMagnitudes.sql
│ │ ├── 3011_selectObjectWithMagnitudes_noalias.sql
│ │ ├── 3012_selectObjectInCircularRegion.sql
│ │ ├── 3013_joinObjectSourceInRegion_withUSING.sql
│ │ ├── 3014_joinObjectSourceTimeInterval_withUSING.sql
│ │ ├── 3020.2_selectObjectWithLimit.sql
│ │ ├── 3020_selectObjectWithLimit.sql
│ │ ├── 3021.1_selectObjectSortedByRA.sql
│ │ ├── 3022_selectCountObjectInBox.sql
│ │ ├── 3023_selectCountSourceInBox.sql
│ │ ├── 8003_areaWithLimitClause.sql
│ │ ├── unsupported_by_mysql
│ │ ├── 3010_countObjectPerChunks.sql
│ │ ├── 3020.1_selectObjectWithLimit.sql
│ │ └── README.txt
│ │ ├── unsupported_columns
│ │ ├── 0006_transientVarObjNearGalaxy.sql
│ │ ├── 1005_allGalaxiesInArea.sql
│ │ ├── 2002_findStarsWithMultiMeasAndMagVariation.sql
│ │ ├── 2003_objectWithVariabilityOrPeriodOrMag.sql
│ │ └── README.txt
│ │ ├── unsupported_syntax
│ │ ├── 1012_orderByClause.sql
│ │ ├── 1013_orderByClauseRounded.sql
│ │ ├── 1052_nnSimilarColors.sql
│ │ ├── 1070_areaUsingPoly.sql
│ │ ├── 2006_randomSample.sql
│ │ ├── 2010_logs.sql
│ │ ├── 3003_query_025.sql
│ │ ├── 3004_query_022.sql
│ │ ├── 3015_selectAllPairsWithDistanceInRegion.sql
│ │ ├── 3021_selectObjectSortedByRA.sql
│ │ ├── 3022_selectAllPairsWithinSomeDistanceOfPointsInRegion.sql
│ │ ├── 8001_badLiteral.sql
│ │ ├── 8002_badLiteral.sql
│ │ └── README.txt
│ │ └── unsupported_tables
│ │ ├── 1011_objectsForExposure.sql
│ │ ├── 1030_timeSeries.sql
│ │ ├── 1031_newTransientsForEpoch.sql
│ │ ├── 1080_refMatch1.sql
│ │ ├── 1081_refMatch2.sql
│ │ ├── 1083_refMatch3.sql
│ │ ├── 2004_objectsSimilarToQuasarsWithRedshift.sql
│ │ ├── 2005_varObjectsOfOneType.sql
│ │ ├── 3023_joinObjectSourceFilter.sql
│ │ └── README.txt
│ ├── case03
│ ├── data
│ │ ├── AvgForcedPhot.csv.gz
│ │ ├── AvgForcedPhotYearly.csv.gz
│ │ ├── DeepCoadd.csv.gz
│ │ ├── DeepCoadd_Metadata.csv.gz
│ │ ├── DeepCoadd_To_Htm10.csv.gz
│ │ ├── Filter.csv.gz
│ │ ├── LeapSeconds.csv.gz
│ │ ├── RefDeepSrcMatch.csv.gz
│ │ ├── RefObject.csv.gz
│ │ ├── RunDeepForcedSource.csv.gz
│ │ ├── RunDeepSource.csv.gz
│ │ ├── Science_Ccd_Exposure.csv.gz
│ │ ├── Science_Ccd_Exposure_Metadata.csv.gz
│ │ ├── Science_Ccd_Exposure_Metadata_coadd_r.csv.gz
│ │ ├── Science_Ccd_Exposure_To_Htm10_coadd_r.csv.gz
│ │ ├── Science_Ccd_Exposure_coadd_r.csv.gz
│ │ ├── ZZZ_Db_Description.csv.gz
│ │ ├── description.yaml
│ │ ├── ingest
│ │ │ ├── AvgForcedPhot.json
│ │ │ ├── AvgForcedPhotYearly.json
│ │ │ ├── DeepCoadd.json
│ │ │ ├── DeepCoadd_Metadata.json
│ │ │ ├── DeepCoadd_To_Htm10.json
│ │ │ ├── Filter.json
│ │ │ ├── LeapSeconds.json
│ │ │ ├── RefDeepSrcMatch.json
│ │ │ ├── RefObject.json
│ │ │ ├── RunDeepForcedSource.json
│ │ │ ├── RunDeepSource.json
│ │ │ ├── Science_Ccd_Exposure.json
│ │ │ ├── Science_Ccd_Exposure_Metadata.json
│ │ │ ├── Science_Ccd_Exposure_Metadata_coadd_r.json
│ │ │ ├── Science_Ccd_Exposure_To_Htm10_coadd_r.json
│ │ │ ├── Science_Ccd_Exposure_coadd_r.json
│ │ │ ├── ZZZ_Db_Description.json
│ │ │ ├── database.json
│ │ │ └── metadata.json
│ │ ├── partition
│ │ │ ├── DeepForcedSource.cfg.view.TODO
│ │ │ ├── DeepForcedSource.json.view.TODO-DM-1728
│ │ │ ├── DeepSource.cfg.view.TODO
│ │ │ ├── DeepSource.json.view.TODO-DM-1728
│ │ │ ├── RefDeepSrcMatch.json
│ │ │ ├── RefObject.json
│ │ │ ├── RunDeepForcedSource.json
│ │ │ ├── RunDeepSource.json
│ │ │ └── common.json
│ │ └── schema
│ │ │ ├── AvgForcedPhot.schema
│ │ │ ├── AvgForcedPhotYearly.schema
│ │ │ ├── DeepCoadd.schema
│ │ │ ├── DeepCoadd_Metadata.schema
│ │ │ ├── DeepCoadd_To_Htm10.schema
│ │ │ ├── DeepForcedSource.schema
│ │ │ ├── DeepSource.schema
│ │ │ ├── Filter.schema
│ │ │ ├── LeapSeconds.schema
│ │ │ ├── RefDeepSrcMatch.schema
│ │ │ ├── RefObject.schema
│ │ │ ├── RunDeepForcedSource.schema
│ │ │ ├── RunDeepSource.schema
│ │ │ ├── Science_Ccd_Exposure.schema
│ │ │ ├── Science_Ccd_Exposure_Metadata.schema
│ │ │ ├── Science_Ccd_Exposure_Metadata_coadd_r.schema
│ │ │ ├── Science_Ccd_Exposure_To_Htm10_coadd_r.schema
│ │ │ ├── Science_Ccd_Exposure_coadd_r.schema
│ │ │ └── ZZZ_Db_Description.schema
│ └── queries
│ │ ├── 0002.0_fetchRunAndFieldById.sql
│ │ ├── 0002.1.1_fetchRunAndFieldById.sql
│ │ ├── 0002.1_fetchRunAndFieldById.sql
│ │ ├── 0002.2.1_fetchRunAndFieldById.sql
│ │ ├── 0002.2_fetchRunAndFieldById.sql
│ │ ├── 0002_fetchRunAndFieldById.sql
│ │ ├── 0005_showColumnsFromRefObject.sql
│ │ ├── 0006.1_selectExposure.sql
│ │ ├── 0006_selectExposure.sql
│ │ ├── 0009.1_selectCCDExposure.sql
│ │ ├── 0009_selectCCDExposure.sql
│ │ ├── 0011_selectDeepCoadd.sql
│ │ ├── 0012.1_selectDistinctDeepCoaddWithGivenTractPatchFiltername.sql
│ │ ├── 0012_selectDistinctDeepCoaddWithGivenTractPatchFiltername.sql
│ │ ├── 0013.1_selectDeepCoadd2.sql
│ │ ├── 0013_selectDeepCoadd2.sql
│ │ ├── 0014.1_selectDeepCoadd3.sql
│ │ ├── 0014.3_selectDeepCoadd3.sql
│ │ ├── 0014_selectDeepCoadd3.sql
│ │ ├── 0018.1_selectDeepCoaddWithGivenTractPatchFiltername.sql
│ │ ├── 0018_selectDeepCoaddWithGivenTractPatchFiltername.sql
│ │ ├── 0019.1_selectRunDeepSourceDeepcoaddDeepsrcmatchRefobject.sql
│ │ ├── 0019.2_selectRunDeepSourceDeepcoaddDeepsrcmatchRefobject.sql
│ │ ├── 0019.3_selectRunDeepSourceDeepcoaddDeepsrcmatchRefobject.sql
│ │ ├── 0021.1_selectScienceCCDExposure.sql
│ │ ├── 0021_selectScienceCCDExposure.sql
│ │ ├── 0022.1_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0022_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0023.1_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0023_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0025.1_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0025_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0028.1_selectScienceCCDExposure.sql
│ │ ├── 0028_selectScienceCCDExposure.sql
│ │ ├── 0030.1_selectScienceCCDExposureByRunField.sql
│ │ ├── 0030.2_selectScienceCCDExposureByRunField.sql
│ │ ├── 0031_selectEmptyString.sql
│ │ ├── 0032_longSelectListItem.sql
│ │ ├── 0033_selectCountFromScience_Ccd_Exposure.sql
│ │ ├── 0034_selectCountFromScience_Ccd_Exposure_Metadata.sql
│ │ ├── 0035_selectCountFromScience_Ccd_Exposure_Metadata_coadd_r.sql
│ │ ├── 0036_select_CountFromScience_Ccd_Exposure_To_Htm10_coadd_r.sql
│ │ ├── 0037_selectCountFromScience_Ccd_Exposure_coadd_r.sql
│ │ ├── 0038_selectCountFromRefObject.sql
│ │ ├── 0039_selectCountFromRunDeepSource.sql
│ │ ├── 0040_selectCountFromRunDeepForcedSource.sql
│ │ ├── 0041_selectCountFromRunDeepSrcMatch.sql
│ │ ├── 0042_selectCountFromAvgForcedPhot.sql
│ │ ├── 0043_selectCountFromAvgForcedPhotYearly.sql
│ │ ├── 0044_selectCountFromDeepCoadd.sql
│ │ ├── 0045_selectCountFromDeepCoaddMetadata.sql
│ │ ├── 0046_selectCountFromDeepCoadd_To_Htm10.sql
│ │ ├── 0047_selectCountFromFilter.sql
│ │ ├── 0048_selectCountFromLeapSeconds.sql
│ │ ├── 0049_selectCountFromZZZ_Db_Description.sql
│ │ ├── unsupported_syntax
│ │ ├── 0007_selectExposureWithPoly.sql
│ │ ├── 0008_selectRefObjectInPoly.sql
│ │ ├── 0014.2_selectDeepCoadd3.sql
│ │ ├── 0016_selectDeepCoaddInPoly.sql
│ │ ├── 0017_selectRefObjectInPoly.sql
│ │ ├── 0026_selectScienceCCDExposureInPoly.sql
│ │ ├── 0027_selectRefObjectInPoly.sql
│ │ └── README.txt
│ │ └── unsupported_tables
│ │ ├── 0001_showColumnsFromSource.sql
│ │ ├── 0003.1_SourcesForGivenExposure.sql
│ │ ├── 0003_SourcesForGivenExposure.sql
│ │ ├── 0004_SourceExposureWithFilternameAndField.sql
│ │ ├── 0010_selectSource_RefSrcMatch_RefObject.sql
│ │ ├── 0015_selectDeepSourceDeepCoadd.sql
│ │ ├── 0019_selectDeepsourceDeepcoaddDeepsrcmatchRefobject.sql
│ │ ├── 0020_showColumnsFromDeepforcedsource.sql
│ │ ├── 0024.1_selectDeepForcedSourceScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0024_selectDeepForcedSourceScienceCCDExposureWithFilternameFieldCamcolRun.sql
│ │ ├── 0029_selectDeepforcedsourceScienceCCDExposureRefdeepsrcmatchRefobject.sql
│ │ └── README.txt
│ └── case04
│ ├── data
│ ├── DeepCoadd.csv.gz
│ ├── DeepForcedSource.csv.gz
│ ├── DeepSource.csv.gz
│ ├── DeepSourceDupKeys.csv.gz
│ ├── Science_Ccd_Exposure.csv.gz
│ ├── description.yaml
│ ├── ingest
│ │ ├── DeepCoadd.json
│ │ ├── DeepForcedSource.json
│ │ ├── DeepSource.json
│ │ ├── DeepSourceDupKeys.json
│ │ ├── Science_Ccd_Exposure.json
│ │ └── database.json
│ ├── partition
│ │ ├── DeepCoadd.json
│ │ ├── DeepForcedSource.json
│ │ ├── DeepSource.json
│ │ ├── DeepSourceDupKeys.json
│ │ ├── Science_Ccd_Exposure.json
│ │ └── common.json
│ └── schema
│ │ ├── DeepCoadd.schema
│ │ ├── DeepForcedSource.schema
│ │ ├── DeepSource.schema
│ │ ├── DeepSourceDupKeys.schema
│ │ └── Science_Ccd_Exposure.schema
│ └── queries
│ ├── 0001_showColumnsFromSource.sql
│ ├── 0003_SourcesForGivenExposure.sql
│ ├── 0011_selectDeepCoadd.sql
│ ├── 0015_selectDeepSourceDeepCoadd.sql
│ ├── 0018_selectDeepCoaddWithGivenTractPatchFiltername.sql
│ ├── 0020_showColumnsFromDeepForcedSource
│ └── 0030_largeResult.sql
├── pyproject.toml
├── src
├── .clang-format
├── CMakeLists.txt
├── admin
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── bin
│ │ ├── entrypoint
│ │ └── qserv-kraken
│ ├── etc
│ │ ├── integration_tests.yaml
│ │ └── log.cnf
│ ├── examples
│ │ ├── _template_database.params
│ │ ├── _template_table.params
│ │ ├── dbNonPartitioned.params
│ │ ├── dbPartitioned.params
│ │ ├── tbSchema_Exposure.sql
│ │ ├── tbSchema_Object.sql
│ │ ├── tbSchema_RefObjMatch.sql
│ │ ├── tbSchema_Source.sql
│ │ ├── tb_Exposure.params
│ │ ├── tb_Exposure.sql
│ │ ├── tb_Object.params
│ │ ├── tb_Object.sql
│ │ ├── tb_RefObjMatch.sql
│ │ ├── tb_Science_Ccd_Exposure.sql
│ │ ├── tb_Source.params
│ │ ├── tb_Source.sql
│ │ ├── testMap_dbNp.params
│ │ ├── testMap_dbPt.params
│ │ ├── testMap_generateMap
│ │ ├── testMap_tbExposure.params
│ │ ├── testMap_tbFilter.params
│ │ ├── testMap_tbLeapSeconds.params
│ │ ├── testMap_tbObject_ls.params
│ │ ├── testMap_tbObject_rp.params
│ │ ├── testMap_tbRefObjMatch.params
│ │ ├── testMap_tbScience_Ccd_Exposure.params
│ │ ├── testMap_tbSimRefObject.params
│ │ ├── testMap_tbSource.params
│ │ ├── testMap_tbSource2.params
│ │ ├── testQserv_loadIt
│ │ ├── testQserv_tbDeepFSource.params
│ │ └── testQserv_tbDeepSource.params
│ ├── python
│ │ ├── lsst
│ │ │ └── qserv
│ │ │ │ ├── admin
│ │ │ │ ├── __init__.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── _integration_test.py
│ │ │ │ │ ├── chunk_0.txt
│ │ │ │ │ ├── entrypoint.py
│ │ │ │ │ ├── options.py
│ │ │ │ │ ├── render_targs.py
│ │ │ │ │ ├── script.py
│ │ │ │ │ └── utils.py
│ │ │ │ ├── constants.py
│ │ │ │ ├── itest.py
│ │ │ │ ├── itest_load.py
│ │ │ │ ├── itest_table.py
│ │ │ │ ├── mysql_connection.py
│ │ │ │ ├── qservCli
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── images.py
│ │ │ │ │ ├── launch.py
│ │ │ │ │ ├── opt.py
│ │ │ │ │ ├── qserv_cli.py
│ │ │ │ │ ├── qserv_log.py
│ │ │ │ │ └── subproc.py
│ │ │ │ ├── qserv_backoff.py
│ │ │ │ ├── replicationInterface.py
│ │ │ │ ├── schema_migration.py
│ │ │ │ ├── template.py
│ │ │ │ ├── tests
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── test_images.py
│ │ │ │ │ ├── test_itest.py
│ │ │ │ │ ├── test_optionsFileOption.py
│ │ │ │ │ ├── test_qserv_cli.py
│ │ │ │ │ ├── test_qserv_log.py
│ │ │ │ │ ├── test_render_targs.py
│ │ │ │ │ ├── test_smig.py
│ │ │ │ │ ├── test_testing.py
│ │ │ │ │ ├── test_utils.py
│ │ │ │ │ └── test_watcher.py
│ │ │ │ └── watcher.py
│ │ │ │ └── testing
│ │ │ │ ├── README.md
│ │ │ │ ├── __init__.py
│ │ │ │ ├── config.py
│ │ │ │ ├── config
│ │ │ │ └── common.yaml
│ │ │ │ ├── main.py
│ │ │ │ ├── mock_db.py
│ │ │ │ ├── monitor.py
│ │ │ │ ├── query_runner.py
│ │ │ │ └── runner_mgr.py
│ │ └── mypy.ini
│ ├── schema
│ │ └── migrate-None-to-0.sql.jinja
│ └── templates
│ │ ├── http
│ │ └── etc
│ │ │ └── qserv-czar.cnf.jinja
│ │ ├── integration-test
│ │ └── etc
│ │ │ └── my.cnf
│ │ ├── mariadb
│ │ └── etc
│ │ │ └── my.cnf
│ │ ├── proxy
│ │ └── etc
│ │ │ ├── my-proxy.cnf.jinja
│ │ │ └── qserv-czar.cnf.jinja
│ │ ├── repl-ctl
│ │ └── etc
│ │ │ └── log4cxx.replication.properties.jinja
│ │ ├── repl-db
│ │ └── etc
│ │ │ └── my.cnf
│ │ └── xrootd
│ │ └── etc
│ │ ├── cmsd-manager.cf.jinja
│ │ ├── cmsd-worker.cf.jinja
│ │ ├── xrdssi.cf.jinja
│ │ └── xrootd-manager.cf.jinja
├── cconfig
│ ├── CMakeLists.txt
│ ├── CzarConfig.cc
│ └── CzarConfig.h
├── ccontrol
│ ├── CMakeLists.txt
│ ├── Callback.h
│ ├── ConfigError.h
│ ├── ConfigMap.h
│ ├── MergingHandler.cc
│ ├── MergingHandler.h
│ ├── MissingUserQuery.h
│ ├── ParseAdapters.cc
│ ├── ParseAdapters.h
│ ├── ParseAdaptersCBH.h
│ ├── ParseHelpers.h
│ ├── ParseListener.cc
│ ├── ParseListener.h
│ ├── ParseRunner.cc
│ ├── ParseRunner.h
│ ├── QueryState.cc
│ ├── QueryState.h
│ ├── SessionManager.h
│ ├── TmpTableName.h
│ ├── UserQuery.h
│ ├── UserQueryAsyncResult.cc
│ ├── UserQueryAsyncResult.h
│ ├── UserQueryError.h
│ ├── UserQueryFactory.cc
│ ├── UserQueryFactory.h
│ ├── UserQueryInvalid.h
│ ├── UserQueryProcessList.cc
│ ├── UserQueryProcessList.h
│ ├── UserQueryQueries.cc
│ ├── UserQueryQueries.h
│ ├── UserQueryResources.cc
│ ├── UserQueryResources.h
│ ├── UserQueryResultDelete.cc
│ ├── UserQueryResultDelete.h
│ ├── UserQuerySelect.cc
│ ├── UserQuerySelect.h
│ ├── UserQuerySelectCountStar.cc
│ ├── UserQuerySelectCountStar.h
│ ├── UserQuerySet.cc
│ ├── UserQuerySet.h
│ ├── UserQueryType.cc
│ ├── UserQueryType.h
│ ├── msgCode.h
│ ├── testAntlr4GeneratedIR.cc
│ ├── testCControl.cc
│ └── testUserQueryType.cc
├── css
│ ├── CMakeLists.txt
│ ├── CssAccess.cc
│ ├── CssAccess.h
│ ├── CssConfig.cc
│ ├── CssConfig.h
│ ├── CssError.h
│ ├── DbInterfaceMySql.cc
│ ├── DbInterfaceMySql.h
│ ├── EmptyChunks.cc
│ ├── EmptyChunks.h
│ ├── KvInterface.h
│ ├── KvInterfaceImplMem.cc
│ ├── KvInterfaceImplMem.h
│ ├── KvInterfaceImplMySql.cc
│ ├── KvInterfaceImplMySql.h
│ ├── MatchTableParams.h
│ ├── NodeParams.h
│ ├── PartTableParams.h
│ ├── ScanTableParams.h
│ ├── StripingParams.h
│ ├── TableParams.h
│ ├── constants.h
│ ├── python
│ │ ├── __init__.py
│ │ └── schema_migration.py
│ ├── schema
│ │ └── migrate-None-to-0.sql
│ ├── testCssAccess.cc
│ ├── testEmptyChunks.cc
│ ├── testKvInterfaceImpl.cc
│ └── testKvInterfaceImplMySql.cc
├── czar
│ ├── CMakeLists.txt
│ ├── ChttpModule.cc
│ ├── ChttpModule.h
│ ├── Czar.cc
│ ├── Czar.h
│ ├── CzarErrors.h
│ ├── CzarThreads.cc
│ ├── CzarThreads.h
│ ├── HttpCzarIngestCsvModule.cc
│ ├── HttpCzarIngestCsvModule.h
│ ├── HttpCzarIngestModule.cc
│ ├── HttpCzarIngestModule.h
│ ├── HttpCzarIngestModuleBase.cc
│ ├── HttpCzarIngestModuleBase.h
│ ├── HttpCzarQueryModule.cc
│ ├── HttpCzarQueryModule.h
│ ├── HttpCzarSvc.cc
│ ├── HttpCzarSvc.h
│ ├── HttpMonitorModule.cc
│ ├── HttpMonitorModule.h
│ ├── HttpSvc.cc
│ ├── HttpSvc.h
│ ├── MessageTable.cc
│ ├── MessageTable.h
│ ├── QhttpModule.cc
│ ├── QhttpModule.h
│ ├── SubmitResult.h
│ ├── WorkerIngestProcessor.cc
│ ├── WorkerIngestProcessor.h
│ └── qserv-czar-http.cc
├── global
│ ├── CMakeLists.txt
│ ├── ConfigError.h
│ ├── DbTable.cc
│ ├── DbTable.h
│ ├── LogContext.h
│ ├── ResourceUnit.cc
│ ├── ResourceUnit.h
│ ├── UnsupportedError.h
│ ├── clock_defs.h
│ ├── constants.h
│ ├── debugUtil.cc
│ ├── debugUtil.h
│ ├── intTypes.h
│ ├── sqltoken.cc
│ ├── sqltoken.h
│ ├── stringTypes.h
│ ├── stringUtil.cc
│ ├── stringUtil.h
│ └── testResourceUnit.cc
├── http
│ ├── AsyncReq.cc
│ ├── AsyncReq.h
│ ├── BaseModule.cc
│ ├── BaseModule.h
│ ├── BinaryEncoding.cc
│ ├── BinaryEncoding.h
│ ├── CMakeLists.txt
│ ├── ChttpMetaModule.cc
│ ├── ChttpMetaModule.h
│ ├── ChttpModule.cc
│ ├── ChttpModule.h
│ ├── Client.cc
│ ├── Client.h
│ ├── ClientConfig.cc
│ ├── ClientConfig.h
│ ├── ClientConnPool.cc
│ ├── ClientConnPool.h
│ ├── Exceptions.cc
│ ├── Exceptions.h
│ ├── FileUploadModule.cc
│ ├── FileUploadModule.h
│ ├── MetaModule.cc
│ ├── MetaModule.h
│ ├── Method.cc
│ ├── Method.h
│ ├── Module.cc
│ ├── Module.h
│ ├── QhttpModule.cc
│ ├── QhttpModule.h
│ ├── RequestBodyJSON.cc
│ ├── RequestBodyJSON.h
│ ├── RequestQuery.cc
│ ├── RequestQuery.h
│ ├── Url.cc
│ ├── Url.h
│ ├── testAsyncReq.cc
│ ├── testRequestBodyJSON.cc
│ ├── testRequestQuery.cc
│ └── testUrl.cc
├── mimic
│ ├── CMakeLists.txt
│ ├── README.txt
│ └── python
│ │ └── lsst
│ │ └── utils
│ │ └── wrappers.py
├── mysql
│ ├── CMakeLists.txt
│ ├── CsvBuffer.cc
│ ├── CsvBuffer.h
│ ├── LocalInfile.cc
│ ├── LocalInfile.h
│ ├── LocalInfileError.h
│ ├── MySqlConfig.cc
│ ├── MySqlConfig.h
│ ├── MySqlConnection.cc
│ ├── MySqlConnection.h
│ ├── MySqlUtils.cc
│ ├── MySqlUtils.h
│ ├── SConscript.test
│ ├── SchemaFactory.cc
│ ├── SchemaFactory.h
│ ├── testCsvBuffer.cc
│ ├── testLocalInfile.cc
│ └── testMySqlUtils.cc
├── parser
│ ├── CMakeLists.txt
│ ├── MySqlLexer.g4
│ ├── MySqlParser.g4
│ ├── ParseException.cc
│ ├── ParseException.h
│ ├── QSMySqlLexer.g4
│ └── QSMySqlParser.g4
├── partition
│ ├── CMakeLists.txt
│ ├── ChunkIndex.cc
│ ├── ChunkIndex.h
│ ├── ChunkReducer.cc
│ ├── ChunkReducer.h
│ ├── Chunker.cc
│ ├── Chunker.h
│ ├── CmdLineUtils.cc
│ ├── CmdLineUtils.h
│ ├── ConfigStore.cc
│ ├── ConfigStore.h
│ ├── Constants.h
│ ├── Csv.cc
│ ├── Csv.h
│ ├── FileUtils.cc
│ ├── FileUtils.h
│ ├── Geometry.cc
│ ├── Geometry.h
│ ├── HtmIndex.cc
│ ├── HtmIndex.h
│ ├── InputLines.cc
│ ├── InputLines.h
│ ├── MapReduce.h
│ ├── ObjectIndex.cc
│ ├── ObjectIndex.h
│ ├── ParquetInterface.cc
│ ├── ParquetInterface.h
│ ├── Vector.h
│ ├── config
│ │ ├── PT1.1
│ │ │ ├── Object.json
│ │ │ ├── RefObjMatch.json
│ │ │ ├── SimRefObject.json
│ │ │ ├── Source.json
│ │ │ └── common.json
│ │ └── PT1.2
│ │ │ ├── Object.json
│ │ │ ├── RefObjMatch.json
│ │ │ ├── RefSrcMatch.json
│ │ │ ├── SimRefObject.json
│ │ │ ├── Source.json
│ │ │ └── common.json
│ ├── doc
│ │ ├── duplication.md
│ │ ├── partitioner.md
│ │ ├── partitioning.md
│ │ └── subchunks.png
│ ├── sph-duplicate.cc
│ ├── sph-duplicate2.cc
│ ├── sph-estimate-stats.cc
│ ├── sph-htm-index.cc
│ ├── sph-layout.cc
│ ├── sph-parq2csv.cc
│ ├── sph-partition-matches.cc
│ ├── sph-partition.cc
│ └── tests
│ │ ├── CMakeLists.txt
│ │ ├── TempFile.h
│ │ ├── chunkIndex.cc
│ │ ├── configStore.cc
│ │ ├── csv.cc
│ │ ├── fileUtils.cc
│ │ ├── geometry.cc
│ │ ├── htmIndex.cc
│ │ ├── mapReduce.cc
│ │ ├── objectIndex.cc
│ │ └── vector.cc
├── proto
│ ├── CMakeLists.txt
│ ├── COPYRIGHT
│ ├── FakeProtocolFixture.h
│ ├── FrameBuffer.cc
│ ├── FrameBuffer.h
│ ├── ProtoHeaderWrap.cc
│ ├── ProtoHeaderWrap.h
│ ├── ProtoImporter.h
│ ├── ScanTableInfo.cc
│ ├── ScanTableInfo.h
│ ├── testProtocol.cc
│ └── worker.proto
├── proxy
│ ├── CMakeLists.txt
│ ├── README.txt
│ ├── czarProxy.cc
│ ├── czarProxy.h
│ ├── czarProxyLuaWrapper.cc
│ ├── mysqlProxy.lua
│ └── test.sh
├── qana
│ ├── AggregatePlugin.cc
│ ├── AggregatePlugin.h
│ ├── AnalysisError.h
│ ├── CMakeLists.txt
│ ├── CheckAggregation.h
│ ├── ColumnVertexMap.cc
│ ├── ColumnVertexMap.h
│ ├── DuplSelectExprPlugin.cc
│ ├── DuplSelectExprPlugin.h
│ ├── InvalidTableError.h
│ ├── MatchTablePlugin.cc
│ ├── MatchTablePlugin.h
│ ├── PluginNotFoundError.h
│ ├── PostPlugin.cc
│ ├── PostPlugin.h
│ ├── QservRestrictorPlugin.cc
│ ├── QservRestrictorPlugin.h
│ ├── QueryMapping.cc
│ ├── QueryMapping.h
│ ├── QueryNotEvaluableError.h
│ ├── QueryPlugin.h
│ ├── README_qana.rst
│ ├── RelationGraph.cc
│ ├── RelationGraph.h
│ ├── ScanTablePlugin.cc
│ ├── ScanTablePlugin.h
│ ├── TableInfo.cc
│ ├── TableInfo.h
│ ├── TableInfoPool.cc
│ ├── TableInfoPool.h
│ ├── TablePlugin.cc
│ ├── TablePlugin.h
│ ├── WherePlugin.cc
│ ├── WherePlugin.h
│ ├── testDuplSelectExprPlugin.cc
│ ├── testPlugins.cc
│ ├── testPlugins.kvmap
│ └── testTablePlugin.cc
├── qdisp
│ ├── CMakeLists.txt
│ ├── ChunkMeta.cc
│ ├── ChunkMeta.h
│ ├── CzarStats.cc
│ ├── CzarStats.h
│ ├── Executive.cc
│ ├── Executive.h
│ ├── JobDescription.cc
│ ├── JobDescription.h
│ ├── JobQuery.cc
│ ├── JobQuery.h
│ ├── JobStatus.cc
│ ├── JobStatus.h
│ ├── MessageStore.cc
│ ├── MessageStore.h
│ ├── QdispPool.cc
│ ├── QdispPool.h
│ ├── QueryRequest.cc
│ ├── QueryRequest.h
│ ├── ResponseHandler.h
│ ├── SharedResources.h
│ ├── XrdSsiMocks.cc
│ ├── XrdSsiMocks.h
│ └── testQDisp.cc
├── qhttp
│ ├── AjaxEndpoint.cc
│ ├── AjaxEndpoint.h
│ ├── CMakeLists.txt
│ ├── LogHelpers.h
│ ├── MultiPartParser.cc
│ ├── MultiPartParser.h
│ ├── Path.cc
│ ├── Path.h
│ ├── README.md
│ ├── Request.cc
│ ├── Request.h
│ ├── Response.cc
│ ├── Response.h
│ ├── Server.cc
│ ├── Server.h
│ ├── StaticContent.cc
│ ├── StaticContent.h
│ ├── Status.h
│ ├── testdata
│ │ ├── css
│ │ │ └── style.css
│ │ ├── images
│ │ │ ├── favicon.ico
│ │ │ ├── lsst.gif
│ │ │ ├── lsst.jpg
│ │ │ └── lsst.png
│ │ ├── index.html
│ │ └── js
│ │ │ └── main.js
│ └── testqhttp.cc
├── qmeta
│ ├── CMakeLists.txt
│ ├── Exceptions.h
│ ├── QInfo.h
│ ├── QMeta.cc
│ ├── QMeta.h
│ ├── QMetaMysql.cc
│ ├── QMetaMysql.h
│ ├── QMetaSelect.cc
│ ├── QMetaSelect.h
│ ├── QMetaTransaction.cc
│ ├── QMetaTransaction.h
│ ├── QStats.h
│ ├── QStatus.h
│ ├── QStatusMysql.cc
│ ├── QStatusMysql.h
│ ├── python
│ │ └── schema_migration.py
│ ├── schema
│ │ ├── migrate-0-to-1.sql
│ │ ├── migrate-1-to-2.sql
│ │ ├── migrate-2-to-3.sql
│ │ ├── migrate-3-to-4.sql
│ │ ├── migrate-4-to-5.sql
│ │ ├── migrate-5-to-6.sql
│ │ ├── migrate-6-to-7.sql
│ │ ├── migrate-7-to-8.sql
│ │ ├── migrate-8-to-9.sql
│ │ ├── migrate-9-to-10.sql
│ │ └── migrate-None-to-10.sql.jinja
│ ├── testQMeta.cc
│ └── types.h
├── qproc
│ ├── CMakeLists.txt
│ ├── ChunkQuerySpec.cc
│ ├── ChunkQuerySpec.h
│ ├── ChunkSpec.cc
│ ├── ChunkSpec.h
│ ├── DatabaseModels.cc
│ ├── DatabaseModels.h
│ ├── IndexMap.cc
│ ├── IndexMap.h
│ ├── QueryProcessingBug.h
│ ├── QueryProcessingError.h
│ ├── QuerySession.cc
│ ├── QuerySession.h
│ ├── SecondaryIndex.cc
│ ├── SecondaryIndex.h
│ ├── TaskMsgFactory.cc
│ ├── TaskMsgFactory.h
│ ├── fakeGeometry.h
│ ├── geomAdapter.h
│ ├── testChunkSpec.cc
│ ├── testGeomAdapter.cc
│ ├── testIndexMap.cc
│ ├── testQueryAnaAggregation.cc
│ ├── testQueryAnaBetween.cc
│ ├── testQueryAnaDuplSelectExpr.cc
│ ├── testQueryAnaGeneral.cc
│ ├── testQueryAnaIn.cc
│ └── testQueryAnaOrderBy.cc
├── query
│ ├── AggOp.cc
│ ├── AggOp.h
│ ├── AggRecord.h
│ ├── AndTerm.cc
│ ├── AndTerm.h
│ ├── AreaRestrictor.cc
│ ├── AreaRestrictor.h
│ ├── BetweenPredicate.cc
│ ├── BetweenPredicate.h
│ ├── BoolFactor.cc
│ ├── BoolFactor.h
│ ├── BoolFactorTerm.h
│ ├── BoolTerm.cc
│ ├── BoolTerm.h
│ ├── BoolTermFactor.cc
│ ├── BoolTermFactor.h
│ ├── CMakeLists.txt
│ ├── ColumnRef.cc
│ ├── ColumnRef.h
│ ├── CompPredicate.cc
│ ├── CompPredicate.h
│ ├── CopyTerms.h
│ ├── FromList.cc
│ ├── FromList.h
│ ├── FuncExpr.cc
│ ├── FuncExpr.h
│ ├── GroupByClause.cc
│ ├── GroupByClause.h
│ ├── HavingClause.cc
│ ├── HavingClause.h
│ ├── InPredicate.cc
│ ├── InPredicate.h
│ ├── JoinRef.cc
│ ├── JoinRef.h
│ ├── JoinSpec.cc
│ ├── JoinSpec.h
│ ├── LikePredicate.cc
│ ├── LikePredicate.h
│ ├── LogicalTerm.cc
│ ├── LogicalTerm.h
│ ├── NullPredicate.cc
│ ├── NullPredicate.h
│ ├── OrTerm.cc
│ ├── OrTerm.h
│ ├── OrderByClause.cc
│ ├── OrderByClause.h
│ ├── PassListTerm.cc
│ ├── PassListTerm.h
│ ├── PassTerm.cc
│ ├── PassTerm.h
│ ├── Predicate.cc
│ ├── Predicate.h
│ ├── QueryContext.cc
│ ├── QueryContext.h
│ ├── QueryTemplate.cc
│ ├── QueryTemplate.h
│ ├── README_query.rst
│ ├── SecIdxRestrictor.cc
│ ├── SecIdxRestrictor.h
│ ├── SelectList.cc
│ ├── SelectList.h
│ ├── SelectStmt.cc
│ ├── SelectStmt.h
│ ├── SubsetHelper.h
│ ├── TableRef.cc
│ ├── TableRef.h
│ ├── TestFactory.cc
│ ├── TestFactory.h
│ ├── UnknownTerm.cc
│ ├── UnknownTerm.h
│ ├── ValueExpr.cc
│ ├── ValueExpr.h
│ ├── ValueExprPredicate.cc
│ ├── ValueExprPredicate.h
│ ├── ValueFactor.cc
│ ├── ValueFactor.h
│ ├── WhereClause.cc
│ ├── WhereClause.h
│ ├── testAreaRestrictor.cc
│ ├── testColumnRef.cc
│ ├── testOrderBy.cc
│ ├── testQueryContext.cc
│ ├── testRepr.cc
│ ├── testSecIdxRestrictor.cc
│ ├── testTableRef.cc
│ ├── testValueExpr.cc
│ └── typedefs.h
├── replica
│ ├── CMakeLists.txt
│ ├── COPYRIGHT
│ ├── apps
│ │ ├── AbortTransactionApp.cc
│ │ ├── AbortTransactionApp.h
│ │ ├── AdminApp.cc
│ │ ├── AdminApp.h
│ │ ├── Application.cc
│ │ ├── Application.h
│ │ ├── ApplicationColl.cc
│ │ ├── ApplicationColl.h
│ │ ├── ApplicationTypes.cc
│ │ ├── ApplicationTypes.h
│ │ ├── CMakeLists.txt
│ │ ├── CheckSumApp.cc
│ │ ├── CheckSumApp.h
│ │ ├── ChunksApp.cc
│ │ ├── ChunksApp.h
│ │ ├── ClusterHealthApp.cc
│ │ ├── ClusterHealthApp.h
│ │ ├── ConfigApp.cc
│ │ ├── ConfigApp.h
│ │ ├── ConfigAppBase.cc
│ │ ├── ConfigAppBase.h
│ │ ├── ConfigTestApp.cc
│ │ ├── ConfigTestApp.h
│ │ ├── ControllerApp.cc
│ │ ├── ControllerApp.h
│ │ ├── DatabaseTestApp.cc
│ │ ├── DatabaseTestApp.h
│ │ ├── DeleteWorkerApp.cc
│ │ ├── DeleteWorkerApp.h
│ │ ├── DirectorIndexApp.cc
│ │ ├── DirectorIndexApp.h
│ │ ├── FileExportApp.cc
│ │ ├── FileExportApp.h
│ │ ├── FileIngestApp.cc
│ │ ├── FileIngestApp.h
│ │ ├── FileReadApp.cc
│ │ ├── FileReadApp.h
│ │ ├── FileServerApp.cc
│ │ ├── FileServerApp.h
│ │ ├── FixUpApp.cc
│ │ ├── FixUpApp.h
│ │ ├── HttpAsyncReqApp.cc
│ │ ├── HttpAsyncReqApp.h
│ │ ├── HttpClientApp.cc
│ │ ├── HttpClientApp.h
│ │ ├── HttpLibServerApp.cc
│ │ ├── HttpLibServerApp.h
│ │ ├── MasterControllerHttpApp.cc
│ │ ├── MasterControllerHttpApp.h
│ │ ├── MessengerTestApp.cc
│ │ ├── MessengerTestApp.h
│ │ ├── MoveApp.cc
│ │ ├── MoveApp.h
│ │ ├── MySQLTestApp.cc
│ │ ├── MySQLTestApp.h
│ │ ├── PurgeApp.cc
│ │ ├── PurgeApp.h
│ │ ├── QhttpTestApp.cc
│ │ ├── QhttpTestApp.h
│ │ ├── QservWorkerApp.cc
│ │ ├── QservWorkerApp.h
│ │ ├── QservWorkerPingApp.cc
│ │ ├── QservWorkerPingApp.h
│ │ ├── QservXrootdSsiApp.cc
│ │ ├── QservXrootdSsiApp.h
│ │ ├── RebalanceApp.cc
│ │ ├── RebalanceApp.h
│ │ ├── RegistryHttpApp.cc
│ │ ├── RegistryHttpApp.h
│ │ ├── ReplicateApp.cc
│ │ ├── ReplicateApp.h
│ │ ├── SqlApp.cc
│ │ ├── SqlApp.h
│ │ ├── SyncApp.cc
│ │ ├── SyncApp.h
│ │ ├── TestAwsS3App.cc
│ │ ├── TestAwsS3App.h
│ │ ├── TransactionsApp.cc
│ │ ├── TransactionsApp.h
│ │ ├── VerifyApp.cc
│ │ ├── VerifyApp.h
│ │ ├── WorkerApp.cc
│ │ └── WorkerApp.h
│ ├── config
│ │ ├── CMakeLists.txt
│ │ ├── ConfigCzar.cc
│ │ ├── ConfigCzar.h
│ │ ├── ConfigDatabase.cc
│ │ ├── ConfigDatabase.h
│ │ ├── ConfigDatabaseFamily.cc
│ │ ├── ConfigDatabaseFamily.h
│ │ ├── ConfigHost.cc
│ │ ├── ConfigHost.h
│ │ ├── ConfigParserJSON.cc
│ │ ├── ConfigParserJSON.h
│ │ ├── ConfigParserMySQL.cc
│ │ ├── ConfigParserMySQL.h
│ │ ├── ConfigParserUtils.h
│ │ ├── ConfigTable.cc
│ │ ├── ConfigTable.h
│ │ ├── ConfigTestData.cc
│ │ ├── ConfigTestData.h
│ │ ├── ConfigWorker.cc
│ │ ├── ConfigWorker.h
│ │ ├── Configuration.cc
│ │ ├── Configuration.h
│ │ ├── ConfigurationExceptions.h
│ │ ├── ConfigurationSchema.cc
│ │ └── ConfigurationSchema.h
│ ├── contr
│ │ ├── CMakeLists.txt
│ │ ├── Controller.cc
│ │ ├── Controller.h
│ │ ├── DeleteWorkerTask.cc
│ │ ├── DeleteWorkerTask.h
│ │ ├── EventLogger.cc
│ │ ├── EventLogger.h
│ │ ├── HealthMonitorTask.cc
│ │ ├── HealthMonitorTask.h
│ │ ├── HttpCatalogsModule.cc
│ │ ├── HttpCatalogsModule.h
│ │ ├── HttpConfigurationModule.cc
│ │ ├── HttpConfigurationModule.h
│ │ ├── HttpControllersModule.cc
│ │ ├── HttpControllersModule.h
│ │ ├── HttpDirectorIndexModule.cc
│ │ ├── HttpDirectorIndexModule.h
│ │ ├── HttpExportModule.cc
│ │ ├── HttpExportModule.h
│ │ ├── HttpIngestChunksModule.cc
│ │ ├── HttpIngestChunksModule.h
│ │ ├── HttpIngestConfigModule.cc
│ │ ├── HttpIngestConfigModule.h
│ │ ├── HttpIngestModule.cc
│ │ ├── HttpIngestModule.h
│ │ ├── HttpIngestTransModule.cc
│ │ ├── HttpIngestTransModule.h
│ │ ├── HttpJobsModule.cc
│ │ ├── HttpJobsModule.h
│ │ ├── HttpModule.cc
│ │ ├── HttpModule.h
│ │ ├── HttpProcessor.cc
│ │ ├── HttpProcessor.h
│ │ ├── HttpProcessorConfig.h
│ │ ├── HttpQservMonitorModule.cc
│ │ ├── HttpQservMonitorModule.h
│ │ ├── HttpQservSqlModule.cc
│ │ ├── HttpQservSqlModule.h
│ │ ├── HttpReplicationLevelsModule.cc
│ │ ├── HttpReplicationLevelsModule.h
│ │ ├── HttpRequestsModule.cc
│ │ ├── HttpRequestsModule.h
│ │ ├── HttpSqlIndexModule.cc
│ │ ├── HttpSqlIndexModule.h
│ │ ├── HttpSqlSchemaModule.cc
│ │ ├── HttpSqlSchemaModule.h
│ │ ├── HttpWorkerStatusModule.cc
│ │ ├── HttpWorkerStatusModule.h
│ │ ├── ReplicationTask.cc
│ │ ├── ReplicationTask.h
│ │ ├── Task.cc
│ │ └── Task.h
│ ├── export
│ │ ├── CMakeLists.txt
│ │ ├── ExportClient.cc
│ │ ├── ExportClient.h
│ │ ├── ExportServer.cc
│ │ ├── ExportServer.h
│ │ ├── ExportServerConnection.cc
│ │ └── ExportServerConnection.h
│ ├── ingest
│ │ ├── CMakeLists.txt
│ │ ├── IngestClient.cc
│ │ ├── IngestClient.h
│ │ ├── IngestDataHttpSvcMod.cc
│ │ ├── IngestDataHttpSvcMod.h
│ │ ├── IngestFileHttpSvcMod.cc
│ │ ├── IngestFileHttpSvcMod.h
│ │ ├── IngestFileSvc.cc
│ │ ├── IngestFileSvc.h
│ │ ├── IngestHttpSvc.cc
│ │ ├── IngestHttpSvc.h
│ │ ├── IngestHttpSvcMod.cc
│ │ ├── IngestHttpSvcMod.h
│ │ ├── IngestRequest.cc
│ │ ├── IngestRequest.h
│ │ ├── IngestRequestMgr.cc
│ │ ├── IngestRequestMgr.h
│ │ ├── IngestResourceMgr.cc
│ │ ├── IngestResourceMgr.h
│ │ ├── IngestResourceMgrP.cc
│ │ ├── IngestResourceMgrP.h
│ │ ├── IngestResourceMgrT.cc
│ │ ├── IngestResourceMgrT.h
│ │ ├── IngestSvc.cc
│ │ ├── IngestSvc.h
│ │ ├── IngestSvcConn.cc
│ │ ├── IngestSvcConn.h
│ │ ├── IngestUtils.cc
│ │ ├── IngestUtils.h
│ │ ├── TransactionContrib.cc
│ │ └── TransactionContrib.h
│ ├── jobs
│ │ ├── AbortTransactionJob.cc
│ │ ├── AbortTransactionJob.h
│ │ ├── CMakeLists.txt
│ │ ├── ClusterHealthJob.cc
│ │ ├── ClusterHealthJob.h
│ │ ├── CreateReplicaJob.cc
│ │ ├── CreateReplicaJob.h
│ │ ├── DeleteReplicaJob.cc
│ │ ├── DeleteReplicaJob.h
│ │ ├── DeleteWorkerJob.cc
│ │ ├── DeleteWorkerJob.h
│ │ ├── DirectorIndexJob.cc
│ │ ├── DirectorIndexJob.h
│ │ ├── FindAllJob.cc
│ │ ├── FindAllJob.h
│ │ ├── FixUpJob.cc
│ │ ├── FixUpJob.h
│ │ ├── Job.cc
│ │ ├── Job.h
│ │ ├── MoveReplicaJob.cc
│ │ ├── MoveReplicaJob.h
│ │ ├── PurgeJob.cc
│ │ ├── PurgeJob.h
│ │ ├── QservGetReplicasJob.cc
│ │ ├── QservGetReplicasJob.h
│ │ ├── QservStatusJob.cc
│ │ ├── QservStatusJob.h
│ │ ├── QservSyncJob.cc
│ │ ├── QservSyncJob.h
│ │ ├── RebalanceJob.cc
│ │ ├── RebalanceJob.h
│ │ ├── ReplicateJob.cc
│ │ ├── ReplicateJob.h
│ │ ├── ServiceManagementJob.cc
│ │ ├── ServiceManagementJob.h
│ │ ├── SqlAlterTablesJob.cc
│ │ ├── SqlAlterTablesJob.h
│ │ ├── SqlCreateDbJob.cc
│ │ ├── SqlCreateDbJob.h
│ │ ├── SqlCreateIndexesJob.cc
│ │ ├── SqlCreateIndexesJob.h
│ │ ├── SqlCreateTableJob.cc
│ │ ├── SqlCreateTableJob.h
│ │ ├── SqlCreateTablesJob.cc
│ │ ├── SqlCreateTablesJob.h
│ │ ├── SqlDeleteDbJob.cc
│ │ ├── SqlDeleteDbJob.h
│ │ ├── SqlDeleteTableJob.cc
│ │ ├── SqlDeleteTableJob.h
│ │ ├── SqlDeleteTablePartitionJob.cc
│ │ ├── SqlDeleteTablePartitionJob.h
│ │ ├── SqlDisableDbJob.cc
│ │ ├── SqlDisableDbJob.h
│ │ ├── SqlDropIndexesJob.cc
│ │ ├── SqlDropIndexesJob.h
│ │ ├── SqlEnableDbJob.cc
│ │ ├── SqlEnableDbJob.h
│ │ ├── SqlGetIndexesJob.cc
│ │ ├── SqlGetIndexesJob.h
│ │ ├── SqlGrantAccessJob.cc
│ │ ├── SqlGrantAccessJob.h
│ │ ├── SqlJob.cc
│ │ ├── SqlJob.h
│ │ ├── SqlJobResult.cc
│ │ ├── SqlJobResult.h
│ │ ├── SqlQueryJob.cc
│ │ ├── SqlQueryJob.h
│ │ ├── SqlRemoveTablePartitionsJob.cc
│ │ ├── SqlRemoveTablePartitionsJob.h
│ │ ├── SqlRowStatsJob.cc
│ │ ├── SqlRowStatsJob.h
│ │ ├── VerifyJob.cc
│ │ └── VerifyJob.h
│ ├── mysql
│ │ ├── CMakeLists.txt
│ │ ├── DatabaseMySQL.cc
│ │ ├── DatabaseMySQL.h
│ │ ├── DatabaseMySQLExceptions.h
│ │ ├── DatabaseMySQLGenerator.cc
│ │ ├── DatabaseMySQLGenerator.h
│ │ ├── DatabaseMySQLRow.cc
│ │ ├── DatabaseMySQLRow.h
│ │ ├── DatabaseMySQLTypes.cc
│ │ ├── DatabaseMySQLTypes.h
│ │ ├── DatabaseMySQLUtils.cc
│ │ └── DatabaseMySQLUtils.h
│ ├── proto
│ │ ├── CMakeLists.txt
│ │ └── protocol.proto
│ ├── python
│ │ ├── __init__.py
│ │ └── schema_migration.py
│ ├── qserv
│ │ ├── AddReplicaQservMgtRequest.cc
│ │ ├── AddReplicaQservMgtRequest.h
│ │ ├── CMakeLists.txt
│ │ ├── GetConfigQservCzarMgtRequest.cc
│ │ ├── GetConfigQservCzarMgtRequest.h
│ │ ├── GetConfigQservMgtRequest.cc
│ │ ├── GetConfigQservMgtRequest.h
│ │ ├── GetDbStatusQservMgtRequest.cc
│ │ ├── GetDbStatusQservMgtRequest.h
│ │ ├── GetQueryProgressQservCzarMgtRequest.cc
│ │ ├── GetQueryProgressQservCzarMgtRequest.h
│ │ ├── GetReplicasQservMgtRequest.cc
│ │ ├── GetReplicasQservMgtRequest.h
│ │ ├── GetResultFilesQservMgtRequest.cc
│ │ ├── GetResultFilesQservMgtRequest.h
│ │ ├── GetStatusQservCzarMgtRequest.cc
│ │ ├── GetStatusQservCzarMgtRequest.h
│ │ ├── GetStatusQservMgtRequest.cc
│ │ ├── GetStatusQservMgtRequest.h
│ │ ├── QservCzarMgtRequest.cc
│ │ ├── QservCzarMgtRequest.h
│ │ ├── QservMgtRequest.cc
│ │ ├── QservMgtRequest.h
│ │ ├── QservMgtServices.cc
│ │ ├── QservMgtServices.h
│ │ ├── QservWorkerMgtRequest.cc
│ │ ├── QservWorkerMgtRequest.h
│ │ ├── RemoveReplicaQservMgtRequest.cc
│ │ ├── RemoveReplicaQservMgtRequest.h
│ │ ├── SetReplicasQservMgtRequest.cc
│ │ ├── SetReplicasQservMgtRequest.h
│ │ ├── TestEchoQservMgtRequest.cc
│ │ ├── TestEchoQservMgtRequest.h
│ │ └── XrdCmsgetVnId.cc
│ ├── registry
│ │ ├── CMakeLists.txt
│ │ ├── Registry.cc
│ │ ├── Registry.h
│ │ ├── RegistryHttpSvc.cc
│ │ ├── RegistryHttpSvc.h
│ │ ├── RegistryHttpSvcMod.cc
│ │ ├── RegistryHttpSvcMod.h
│ │ ├── RegistryServices.cc
│ │ └── RegistryServices.h
│ ├── requests
│ │ ├── CMakeLists.txt
│ │ ├── DeleteRequest.cc
│ │ ├── DeleteRequest.h
│ │ ├── DirectorIndexRequest.cc
│ │ ├── DirectorIndexRequest.h
│ │ ├── DisposeRequest.cc
│ │ ├── DisposeRequest.h
│ │ ├── EchoRequest.cc
│ │ ├── EchoRequest.h
│ │ ├── FindAllRequest.cc
│ │ ├── FindAllRequest.h
│ │ ├── FindRequest.cc
│ │ ├── FindRequest.h
│ │ ├── Messenger.cc
│ │ ├── Messenger.h
│ │ ├── MessengerConnector.cc
│ │ ├── MessengerConnector.h
│ │ ├── ReplicationRequest.cc
│ │ ├── ReplicationRequest.h
│ │ ├── Request.cc
│ │ ├── Request.h
│ │ ├── RequestMessenger.cc
│ │ ├── RequestMessenger.h
│ │ ├── RequestTracker.cc
│ │ ├── RequestTracker.h
│ │ ├── ServiceManagementRequest.cc
│ │ ├── ServiceManagementRequest.h
│ │ ├── ServiceManagementRequestBase.cc
│ │ ├── ServiceManagementRequestBase.h
│ │ ├── SqlAlterTablesRequest.cc
│ │ ├── SqlAlterTablesRequest.h
│ │ ├── SqlCreateDbRequest.cc
│ │ ├── SqlCreateDbRequest.h
│ │ ├── SqlCreateIndexesRequest.cc
│ │ ├── SqlCreateIndexesRequest.h
│ │ ├── SqlCreateTableRequest.cc
│ │ ├── SqlCreateTableRequest.h
│ │ ├── SqlCreateTablesRequest.cc
│ │ ├── SqlCreateTablesRequest.h
│ │ ├── SqlDeleteDbRequest.cc
│ │ ├── SqlDeleteDbRequest.h
│ │ ├── SqlDeleteTablePartitionRequest.cc
│ │ ├── SqlDeleteTablePartitionRequest.h
│ │ ├── SqlDeleteTableRequest.cc
│ │ ├── SqlDeleteTableRequest.h
│ │ ├── SqlDisableDbRequest.cc
│ │ ├── SqlDisableDbRequest.h
│ │ ├── SqlDropIndexesRequest.cc
│ │ ├── SqlDropIndexesRequest.h
│ │ ├── SqlEnableDbRequest.cc
│ │ ├── SqlEnableDbRequest.h
│ │ ├── SqlGetIndexesRequest.cc
│ │ ├── SqlGetIndexesRequest.h
│ │ ├── SqlGrantAccessRequest.cc
│ │ ├── SqlGrantAccessRequest.h
│ │ ├── SqlQueryRequest.cc
│ │ ├── SqlQueryRequest.h
│ │ ├── SqlRemoveTablePartitionsRequest.cc
│ │ ├── SqlRemoveTablePartitionsRequest.h
│ │ ├── SqlRequest.cc
│ │ ├── SqlRequest.h
│ │ ├── SqlResultSet.cc
│ │ ├── SqlResultSet.h
│ │ ├── SqlRowStatsRequest.cc
│ │ ├── SqlRowStatsRequest.h
│ │ ├── StatusRequest.cc
│ │ ├── StatusRequest.h
│ │ ├── StopRequest.cc
│ │ └── StopRequest.h
│ ├── schema
│ │ ├── migrate-0-to-1.sql
│ │ ├── migrate-1-to-2.sql
│ │ ├── migrate-10-to-11.sql
│ │ ├── migrate-11-to-12.sql
│ │ ├── migrate-12-to-13.sql
│ │ ├── migrate-13-to-14.sql
│ │ ├── migrate-2-to-3.sql
│ │ ├── migrate-3-to-4.sql
│ │ ├── migrate-4-to-5.sql
│ │ ├── migrate-5-to-6.sql
│ │ ├── migrate-6-to-7.sql
│ │ ├── migrate-7-to-8.sql
│ │ ├── migrate-8-to-9.sql
│ │ ├── migrate-9-to-10.sql
│ │ └── migrate-None-to-14.sql
│ ├── services
│ │ ├── CMakeLists.txt
│ │ ├── ChunkLocker.cc
│ │ ├── ChunkLocker.h
│ │ ├── DatabaseServices.cc
│ │ ├── DatabaseServices.h
│ │ ├── DatabaseServicesMySQL.cc
│ │ ├── DatabaseServicesMySQL.h
│ │ ├── DatabaseServicesPool.cc
│ │ ├── DatabaseServicesPool.h
│ │ ├── ServiceProvider.cc
│ │ └── ServiceProvider.h
│ ├── tests
│ │ ├── testApplicationParser.cc
│ │ ├── testChunkLocker.cc
│ │ ├── testChunkNumber.cc
│ │ ├── testChunkedTable.cc
│ │ ├── testConfiguration.cc
│ │ ├── testConnectionParams.cc
│ │ ├── testCsv.cc
│ │ ├── testFileIngestApp.cc
│ │ ├── testFileUtils.cc
│ │ ├── testIngestRequestMgr.cc
│ │ ├── testJson.cc
│ │ ├── testMessageQueue.cc
│ │ ├── testNamedMutexRegistry.cc
│ │ ├── testQueryGenerator.cc
│ │ ├── testReplicaInfo.cc
│ │ ├── testSemanticMap.cc
│ │ ├── testSqlResultSet.cc
│ │ ├── testSqlSchemaUtils.cc
│ │ ├── testTaskSelector.cc
│ │ └── testTypes.cc
│ ├── tools
│ │ ├── qserv-replica-calc-cs.cc
│ │ ├── qserv-replica-config-test.cc
│ │ ├── qserv-replica-config.cc
│ │ ├── qserv-replica-controller-cmd.cc
│ │ ├── qserv-replica-file.cc
│ │ ├── qserv-replica-job.cc
│ │ ├── qserv-replica-master-http.cc
│ │ ├── qserv-replica-registry.cc
│ │ ├── qserv-replica-test.cc
│ │ ├── qserv-replica-worker-notify.cc
│ │ └── qserv-replica-worker.cc
│ ├── util
│ │ ├── CMakeLists.txt
│ │ ├── ChttpSvc.cc
│ │ ├── ChttpSvc.h
│ │ ├── ChunkNumber.cc
│ │ ├── ChunkNumber.h
│ │ ├── ChunkedTable.cc
│ │ ├── ChunkedTable.h
│ │ ├── Common.cc
│ │ ├── Common.h
│ │ ├── Csv.cc
│ │ ├── Csv.h
│ │ ├── ErrorReporting.h
│ │ ├── FileUtils.cc
│ │ ├── FileUtils.h
│ │ ├── HttpSvc.cc
│ │ ├── HttpSvc.h
│ │ ├── MessageQueue.h
│ │ ├── Mutex.cc
│ │ ├── Mutex.h
│ │ ├── NamedMutexRegistry.cc
│ │ ├── NamedMutexRegistry.h
│ │ ├── OneWayFailer.h
│ │ ├── Performance.cc
│ │ ├── Performance.h
│ │ ├── ProtocolBuffer.cc
│ │ ├── ProtocolBuffer.h
│ │ ├── ReplicaInfo.cc
│ │ ├── ReplicaInfo.h
│ │ ├── SemanticMaps.h
│ │ ├── SqlSchemaUtils.cc
│ │ ├── SqlSchemaUtils.h
│ │ ├── SuccessRateGenerator.cc
│ │ └── SuccessRateGenerator.h
│ └── worker
│ │ ├── CMakeLists.txt
│ │ ├── FileClient.cc
│ │ ├── FileClient.h
│ │ ├── FileServer.cc
│ │ ├── FileServer.h
│ │ ├── FileServerConnection.cc
│ │ ├── FileServerConnection.h
│ │ ├── WorkerDeleteRequest.cc
│ │ ├── WorkerDeleteRequest.h
│ │ ├── WorkerDirectorIndexRequest.cc
│ │ ├── WorkerDirectorIndexRequest.h
│ │ ├── WorkerEchoRequest.cc
│ │ ├── WorkerEchoRequest.h
│ │ ├── WorkerFindAllRequest.cc
│ │ ├── WorkerFindAllRequest.h
│ │ ├── WorkerFindRequest.cc
│ │ ├── WorkerFindRequest.h
│ │ ├── WorkerProcessor.cc
│ │ ├── WorkerProcessor.h
│ │ ├── WorkerProcessorThread.cc
│ │ ├── WorkerProcessorThread.h
│ │ ├── WorkerReplicationRequest.cc
│ │ ├── WorkerReplicationRequest.h
│ │ ├── WorkerRequest.cc
│ │ ├── WorkerRequest.h
│ │ ├── WorkerServer.cc
│ │ ├── WorkerServer.h
│ │ ├── WorkerServerConnection.cc
│ │ ├── WorkerServerConnection.h
│ │ ├── WorkerSqlRequest.cc
│ │ └── WorkerSqlRequest.h
├── rproc
│ ├── CMakeLists.txt
│ ├── InfileMerger.cc
│ ├── InfileMerger.h
│ ├── python
│ │ ├── __init__.py
│ │ └── schema_migration.py
│ └── schema
│ │ └── migrate-None-to-0.sql
├── schema
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── bin
│ │ └── qserv-smig.py
│ └── python
│ │ ├── __init__.py
│ │ ├── schemaMigMgr.py
│ │ ├── smig.py
│ │ └── tests
│ │ └── test_SchemaMigMgr.py
├── sql
│ ├── CMakeLists.txt
│ ├── MockSql.cc
│ ├── MockSql.h
│ ├── MySqlConnection.cc
│ ├── MySqlConnection.h
│ ├── Schema.h
│ ├── SqlBulkInsert.cc
│ ├── SqlBulkInsert.h
│ ├── SqlConfig.h
│ ├── SqlConnection.h
│ ├── SqlConnectionFactory.cc
│ ├── SqlConnectionFactory.h
│ ├── SqlErrorObject.cc
│ ├── SqlErrorObject.h
│ ├── SqlException.h
│ ├── SqlFragmenter.cc
│ ├── SqlFragmenter.h
│ ├── SqlResults.cc
│ ├── SqlResults.h
│ ├── SqlTransaction.cc
│ ├── SqlTransaction.h
│ ├── SqlTransactionScope.cc
│ ├── SqlTransactionScope.h
│ ├── statement.cc
│ ├── statement.h
│ ├── testSqlConnection.cc
│ └── testSqlTransaction.cc
├── tests
│ ├── MySqlUdf.py
│ ├── QueryAnaFixture.h
│ ├── QueryAnaHelper.cc
│ ├── QueryAnaHelper.h
│ ├── dbinit.sql
│ ├── partmapsql.sql
│ ├── qserv-protobuf-assert-version.cc
│ ├── setQsmasterPerm.sql
│ ├── spdistfunc.sql
│ ├── testApp.py
│ └── testKvMap.h
├── util
│ ├── AsyncTimer.cc
│ ├── AsyncTimer.h
│ ├── BlockPost.cc
│ ├── BlockPost.h
│ ├── Bug.cc
│ ├── Bug.h
│ ├── CIUtils.h
│ ├── CMakeLists.txt
│ ├── CmdLineParser.cc
│ ├── CmdLineParser.h
│ ├── Command.cc
│ ├── Command.h
│ ├── ConfigStore.cc
│ ├── ConfigStore.h
│ ├── ConfigStoreError.h
│ ├── ConfigValMap.cc
│ ├── ConfigValMap.h
│ ├── DynamicWorkQueue.cc
│ ├── DynamicWorkQueue.h
│ ├── Error.cc
│ ├── Error.h
│ ├── EventThread.cc
│ ├── EventThread.h
│ ├── File.cc
│ ├── File.h
│ ├── FileMonitor.cc
│ ├── FileMonitor.h
│ ├── Histogram.cc
│ ├── Histogram.h
│ ├── HoldTrack.cc
│ ├── HoldTrack.h
│ ├── InstanceCount.cc
│ ├── InstanceCount.h
│ ├── Issue.cc
│ ├── Issue.h
│ ├── IterableFormatter.h
│ ├── MultiError.cc
│ ├── MultiError.h
│ ├── Mutex.cc
│ ├── Mutex.h
│ ├── PointerCompare.h
│ ├── Regex.h
│ ├── ResultFileName.cc
│ ├── ResultFileName.h
│ ├── String.cc
│ ├── String.h
│ ├── StringHash.cc
│ ├── StringHash.h
│ ├── Substitution.cc
│ ├── Substitution.h
│ ├── TablePrinter.cc
│ ├── TablePrinter.h
│ ├── ThreadPool.cc
│ ├── ThreadPool.h
│ ├── ThreadPriority.cc
│ ├── ThreadPriority.h
│ ├── TimeUtils.cc
│ ├── TimeUtils.h
│ ├── Timer.cc
│ ├── Timer.h
│ ├── WorkQueue.cc
│ ├── WorkQueue.h
│ ├── common.cc
│ ├── common.h
│ ├── format.h
│ ├── testCommon.cc
│ ├── testConfigStore.cc
│ ├── testEventThread.cc
│ ├── testHistogram.cc
│ ├── testIterableFormatter.cc
│ ├── testMultiError.cc
│ ├── testMutex.cc
│ ├── testResultFileName.cc
│ ├── testString.cc
│ ├── testTablePrinter.cc
│ ├── threadSafe.h
│ ├── xrootd.cc
│ └── xrootd.h
├── wbase
│ ├── Base.cc
│ ├── Base.h
│ ├── CMakeLists.txt
│ ├── FileChannelShared.cc
│ ├── FileChannelShared.h
│ ├── MsgProcessor.h
│ ├── SendChannel.cc
│ ├── SendChannel.h
│ ├── Task.cc
│ ├── Task.h
│ ├── TaskState.h
│ ├── UserQueryInfo.cc
│ ├── UserQueryInfo.h
│ ├── WorkerCommand.cc
│ └── WorkerCommand.h
├── wconfig
│ ├── CMakeLists.txt
│ ├── WorkerConfig.cc
│ ├── WorkerConfig.h
│ ├── WorkerConfigError.h
│ └── testSanityCheck.cc
├── wcontrol
│ ├── CMakeLists.txt
│ ├── Foreman.cc
│ ├── Foreman.h
│ ├── ResourceMonitor.cc
│ ├── ResourceMonitor.h
│ ├── SqlConnMgr.cc
│ ├── SqlConnMgr.h
│ ├── WorkerStats.cc
│ └── WorkerStats.h
├── wdb
│ ├── CMakeLists.txt
│ ├── ChunkResource.cc
│ ├── ChunkResource.h
│ ├── QueryRunner.cc
│ ├── QueryRunner.h
│ ├── QuerySql.cc
│ ├── QuerySql.h
│ ├── QuerySql_Batch.h
│ ├── SQLBackend.cc
│ ├── SQLBackend.h
│ ├── python
│ │ ├── __init__.py
│ │ └── schema_migration.py
│ ├── schema
│ │ ├── migrate-0-to-1.sql
│ │ └── migrate-1-to-2.sql
│ ├── testChunkResource.cc
│ ├── testQueryRunner.cc
│ └── testQuerySql.cc
├── worker
│ ├── CMakeLists.txt
│ ├── python
│ │ ├── __init__.py
│ │ └── schema_migration.py
│ └── schema
│ │ └── migrate-None-to-2.sql.jinja
├── wpublish
│ ├── CMakeLists.txt
│ ├── ChunkInventory.cc
│ ├── ChunkInventory.h
│ ├── QueriesAndChunks.cc
│ ├── QueriesAndChunks.h
│ ├── QueryStatistics.cc
│ ├── QueryStatistics.h
│ └── testChunkInventory.cc
├── wsched
│ ├── BlendScheduler.cc
│ ├── BlendScheduler.h
│ ├── CMakeLists.txt
│ ├── ChunkTaskCollection.h
│ ├── ChunkTasksQueue.cc
│ ├── ChunkTasksQueue.h
│ ├── FifoScheduler.h
│ ├── GroupScheduler.cc
│ ├── GroupScheduler.h
│ ├── ScanScheduler.cc
│ ├── ScanScheduler.h
│ ├── SchedulerBase.cc
│ ├── SchedulerBase.h
│ └── testSchedulers.cc
├── www
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── assets
│ │ └── bootstrap-icons-1.5.0
│ │ │ ├── bootstrap-icons.css
│ │ │ ├── bootstrap-icons.json
│ │ │ ├── bootstrap-icons.svg
│ │ │ ├── fonts
│ │ │ ├── bootstrap-icons.woff
│ │ │ └── bootstrap-icons.woff2
│ │ │ └── index.html
│ ├── dashboard.html
│ ├── index.html
│ ├── modules
│ │ └── js
│ │ │ ├── sql-formatter.min.js
│ │ │ └── sql-formatter.min.js.map
│ ├── qserv
│ │ ├── css
│ │ │ ├── IngestConfiguration.css
│ │ │ ├── IngestContribInfo.css
│ │ │ ├── IngestContributions.css
│ │ │ ├── IngestStatus.css
│ │ │ ├── IngestTransactions.css
│ │ │ ├── IngestTransactionsLog.css
│ │ │ ├── QservCss.css
│ │ │ ├── QservCzarConfig.css
│ │ │ ├── QservCzarMySQLQueries.css
│ │ │ ├── QservCzarQueryProgress.css
│ │ │ ├── QservCzarStatistics.css
│ │ │ ├── QservMySQLConnections.css
│ │ │ ├── QservPDAC.css
│ │ │ ├── QservWorkerConfig.css
│ │ │ ├── QservWorkerFiles.css
│ │ │ ├── QservWorkerMySQLQueries.css
│ │ │ ├── QservWorkerQueries.css
│ │ │ ├── QservWorkerResultsFilesystem.css
│ │ │ ├── QservWorkerSchedulerHist.css
│ │ │ ├── QservWorkerSchedulers.css
│ │ │ ├── QservWorkerTaskHist.css
│ │ │ ├── QservWorkerTasks.css
│ │ │ ├── ReplicationConfigCatalogs.css
│ │ │ ├── ReplicationConfigGeneral.css
│ │ │ ├── ReplicationConfigWorkers.css
│ │ │ ├── ReplicationController.css
│ │ │ ├── ReplicationSchema.css
│ │ │ ├── ReplicationTableIndexes.css
│ │ │ ├── ReplicationTools.css
│ │ │ ├── StatusActiveChunksMap.css
│ │ │ ├── StatusActiveQueries.css
│ │ │ ├── StatusCatalogs.css
│ │ │ ├── StatusPastQueries.css
│ │ │ ├── StatusQueryInspector.css
│ │ │ ├── StatusReplicationLevel.css
│ │ │ ├── StatusWorkers.css
│ │ │ └── ToolsSql.css
│ │ └── js
│ │ │ ├── Common.js
│ │ │ ├── IngestConfiguration.js
│ │ │ ├── IngestContribInfo.js
│ │ │ ├── IngestContributions.js
│ │ │ ├── IngestStatus.js
│ │ │ ├── IngestTransactions.js
│ │ │ ├── IngestTransactionsLog.js
│ │ │ ├── QservCss.js
│ │ │ ├── QservCzarConfig.js
│ │ │ ├── QservCzarMySQLQueries.js
│ │ │ ├── QservCzarQueryProgress.js
│ │ │ ├── QservCzarStatistics.js
│ │ │ ├── QservMonitoringDashboard.js
│ │ │ ├── QservMySQLConnections.js
│ │ │ ├── QservWorkerConfig.js
│ │ │ ├── QservWorkerFiles.js
│ │ │ ├── QservWorkerMySQLQueries.js
│ │ │ ├── QservWorkerQueries.js
│ │ │ ├── QservWorkerResultsFilesystem.js
│ │ │ ├── QservWorkerSchedulerHist.js
│ │ │ ├── QservWorkerSchedulers.js
│ │ │ ├── QservWorkerTaskHist.js
│ │ │ ├── QservWorkerTasks.js
│ │ │ ├── ReplicationConfigCatalogs.js
│ │ │ ├── ReplicationConfigGeneral.js
│ │ │ ├── ReplicationConfigWorkers.js
│ │ │ ├── ReplicationController.js
│ │ │ ├── ReplicationSchema.js
│ │ │ ├── ReplicationTableIndexes.js
│ │ │ ├── ReplicationTools.js
│ │ │ ├── StatusActiveChunksMap.js
│ │ │ ├── StatusActiveQueries.js
│ │ │ ├── StatusCatalogs.js
│ │ │ ├── StatusPastQueries.js
│ │ │ ├── StatusQueryInspector.js
│ │ │ ├── StatusReplicationLevel.js
│ │ │ ├── StatusWorkers.js
│ │ │ └── ToolsSql.js
│ └── webfwk
│ │ ├── css
│ │ ├── Fwk.css
│ │ ├── FwkApplicationControlApp.css
│ │ ├── FwkTestApp.css
│ │ ├── SimpleTable.css
│ │ └── SimpleTableTestApp.css
│ │ ├── js
│ │ ├── CSSLoader.js
│ │ ├── Class.js
│ │ ├── Fwk.js
│ │ ├── FwkApplication.js
│ │ ├── FwkApplicationControlApp.js
│ │ ├── FwkTestApp.js
│ │ ├── SimpleTable.js
│ │ ├── SimpleTableTestApp.js
│ │ └── Widget.js
│ │ └── ws
│ │ └── table_data.json
├── xrdlog
│ ├── CMakeLists.txt
│ └── XrdLogging.cc
├── xrdreq
│ ├── CMakeLists.txt
│ ├── QservRequest.cc
│ ├── QservRequest.h
│ ├── QueryManagementAction.cc
│ ├── QueryManagementAction.h
│ ├── QueryManagementRequest.cc
│ ├── QueryManagementRequest.h
│ └── qserv-query-management.cc
└── xrdsvc
│ ├── CMakeLists.txt
│ ├── ChannelStream.cc
│ ├── ChannelStream.h
│ ├── HttpModule.cc
│ ├── HttpModule.h
│ ├── HttpMonitorModule.cc
│ ├── HttpMonitorModule.h
│ ├── HttpReplicaMgtModule.cc
│ ├── HttpReplicaMgtModule.h
│ ├── HttpSvc.cc
│ ├── HttpSvc.h
│ ├── SsiProvider.cc
│ ├── SsiProvider.h
│ ├── SsiRequest.cc
│ ├── SsiRequest.h
│ ├── SsiService.cc
│ ├── SsiService.h
│ ├── StreamBuffer.cc
│ ├── StreamBuffer.h
│ └── XrdName.h
└── tox.ini
/.github/workflows/rebase_checker.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | name: Check that 'main' is not merged into the development branch
3 |
4 | on: pull_request
5 |
6 | jobs:
7 | call-workflow:
8 | uses: lsst/rubin_workflows/.github/workflows/rebase_checker.yaml@main
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | \#*\#
3 | .env
4 | *.pyc
5 | .tags
6 | .tags_sorted_by_file
7 | /build/
8 | /parallel-cmd-log/
9 | /.cproject
10 | /.metadata/
11 | /.project
12 | /.settings/
13 | /.pydevproject
14 | /RemoteSystemTempFiles/
15 | /nbproject/
16 | /.vscode/
17 | /qserv/
18 | /doc/_build
19 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "extern/sphgeom"]
2 | path = extern/sphgeom
3 | url = ../../lsst/sphgeom
4 | [submodule "extern/log"]
5 | path = extern/log
6 | url = ../../lsst/log
7 |
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.12)
2 |
3 | project(Qserv
4 | DESCRIPTION "The Qserv distributed parallel database"
5 | LANGUAGES CXX
6 | )
7 |
8 | enable_testing()
9 |
10 | include(GNUInstallDirs)
11 | set(CMAKE_INSTALL_PREFIX ${PROJECT_BINARY_DIR}/install)
12 |
13 | add_subdirectory(doc)
14 | add_subdirectory(extern/log)
15 | add_subdirectory(extern/sphgeom)
16 | add_subdirectory(src)
17 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Qserv: petascale distributed database
2 |
3 | [](https://github.com/lsst/qserv/actions?query=workflow%3A"CI")
4 |
5 | ## Documentation
6 |
7 | [Documentation for main branch](https://qserv.lsst.io/)
8 |
--------------------------------------------------------------------------------
/admin/local/cli/qserv-template.cfg:
--------------------------------------------------------------------------------
1 | # this file contains default values for qserv config
2 |
3 | mysqld_user_qserv: qsmaster
4 | mysql_monitor_password: ''
5 |
--------------------------------------------------------------------------------
/admin/local/docker/compose/log/log-czar-proxy.cnf:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=DEBUG, CONSOLE
2 | #log4j.rootLogger=WARN, CONSOLE
3 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
4 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
5 | log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
6 |
7 | log4j.logger.lsst.qserv.xrdssi.msgs=WARN
8 | #log4j.logger.lsst.qserv.xrdssi.msgs=DEBUG
9 |
--------------------------------------------------------------------------------
/admin/local/docker/compose/log/log-repl-registry.cnf:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=DEBUG, CONSOLE
2 |
3 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
4 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
5 | #log4j.appender.CONSOLE.layout.ConversionPattern=[%d{yyyy-MM-ddTHH:mm:ss.SSSZ}] [LWP:%X{LWP}] %-5p %c{2} (%F:%L) - %m%n
6 | log4j.appender.CONSOLE.layout.ConversionPattern=[%d{yyyy-MM-ddTHH:mm:ss.SSSZ}] [LWP:%X{LWP}] %-5p - %m%n
7 |
8 | # Tune log at the module level
9 | #log4j.logger.lsst.qserv.replica=DEBUG
10 | #log4j.logger.lsst.qserv.replica.DatabaseMySQL=DEBUG
11 | #log4j.logger.lsst.qserv.replica.DatabaseServicesMySQL=ERROR
12 | #log4j.logger.lsst.qserv.util=DEBUG
13 |
--------------------------------------------------------------------------------
/admin/local/docker/compose/log/log-repl-worker.cnf:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=DEBUG, CONSOLE
2 |
3 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
4 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
5 | #log4j.appender.CONSOLE.layout.ConversionPattern=[%d{yyyy-MM-ddTHH:mm:ss.SSSZ}] [LWP:%X{LWP}] %-5p %c{2} (%F:%L) - %m%n
6 | log4j.appender.CONSOLE.layout.ConversionPattern=[%d{yyyy-MM-ddTHH:mm:ss.SSSZ}] [LWP:%X{LWP}] %-5p - %m%n
7 |
8 | # Tune log at the module level
9 | #log4j.logger.lsst.qserv.replica=DEBUG
10 | #log4j.logger.lsst.qserv.replica.DatabaseMySQL=DEBUG
11 | #log4j.logger.lsst.qserv.replica.DatabaseServicesMySQL=ERROR
12 | #log4j.logger.lsst.qserv.util=DEBUG
13 |
--------------------------------------------------------------------------------
/admin/local/docker/compose/log/log-worker-xrootd.cnf:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=DEBUG, CONSOLE
2 | #log4j.rootLogger=WARN, CONSOLE
3 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
4 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
5 | log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
6 |
7 | log4j.logger.lsst.qserv.xrdssi.msgs=WARN
8 |
--------------------------------------------------------------------------------
/admin/local/docker/compose/log/log.cnf:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=DEBUG, CONSOLE
2 | #log4j.rootLogger=WARN, CONSOLE
3 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
4 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
5 | log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
6 |
7 | log4j.logger.lsst.qserv.xrdssi.msgs=WARN
8 | #log4j.logger.lsst.qserv.xrdssi.msgs=DEBUG
9 |
10 |
--------------------------------------------------------------------------------
/doc/_static/ingest-options-pull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-options-pull.png
--------------------------------------------------------------------------------
/doc/_static/ingest-options-push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-options-push.png
--------------------------------------------------------------------------------
/doc/_static/ingest-options-read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-options-read.png
--------------------------------------------------------------------------------
/doc/_static/ingest-options.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-options.pptx
--------------------------------------------------------------------------------
/doc/_static/ingest-table-types-dependent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-table-types-dependent.png
--------------------------------------------------------------------------------
/doc/_static/ingest-table-types-partitioned.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-table-types-partitioned.png
--------------------------------------------------------------------------------
/doc/_static/ingest-table-types-regular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-table-types-regular.png
--------------------------------------------------------------------------------
/doc/_static/ingest-table-types.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-table-types.pptx
--------------------------------------------------------------------------------
/doc/_static/ingest-trans-multiple-chunks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-trans-multiple-chunks.png
--------------------------------------------------------------------------------
/doc/_static/ingest-trans-multiple-one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-trans-multiple-one.png
--------------------------------------------------------------------------------
/doc/_static/ingest-trans-multiple-scattered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-trans-multiple-scattered.png
--------------------------------------------------------------------------------
/doc/_static/ingest-trans-multiple.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-trans-multiple.pptx
--------------------------------------------------------------------------------
/doc/_static/ingest-transaction-fsm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transaction-fsm.png
--------------------------------------------------------------------------------
/doc/_static/ingest-transaction-fsm.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transaction-fsm.pptx
--------------------------------------------------------------------------------
/doc/_static/ingest-transactions-aborted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transactions-aborted.png
--------------------------------------------------------------------------------
/doc/_static/ingest-transactions-aborted.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transactions-aborted.pptx
--------------------------------------------------------------------------------
/doc/_static/ingest-transactions-failed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transactions-failed.png
--------------------------------------------------------------------------------
/doc/_static/ingest-transactions-failed.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transactions-failed.pptx
--------------------------------------------------------------------------------
/doc/_static/ingest-transactions-resolved.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transactions-resolved.png
--------------------------------------------------------------------------------
/doc/_static/ingest-transactions-resolved.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/ingest-transactions-resolved.pptx
--------------------------------------------------------------------------------
/doc/_static/subchunks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/_static/subchunks.png
--------------------------------------------------------------------------------
/doc/admin/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. _admin:
3 |
4 | #####################
5 | Administrator's Guide
6 | #####################
7 |
8 | .. warning::
9 |
10 | This version of Qserv uses MariaDB version 11.4.4. If you still have an older release based on
11 | MariaDB 10.6.8 then you should upgrade your databases as described in the following section:
12 |
13 | - :ref:`admin-upgrade-mariadb-11-4-4`
14 |
15 | .. toctree::
16 | :maxdepth: 4
17 |
18 | k8s
19 | row-counters
20 | data-table-indexes
21 | director-index
22 | admin-upgrade
23 |
--------------------------------------------------------------------------------
/doc/cmake/FindSphinx.cmake:
--------------------------------------------------------------------------------
1 | find_program(SPHINX_EXECUTABLE NAMES sphinx-build
2 | DOC "Sphinx documentation generator"
3 | )
4 |
5 | include(FindPackageHandleStandardArgs)
6 |
7 | find_package_handle_standard_args(Sphinx DEFAULT_MSG
8 | SPHINX_EXECUTABLE
9 | )
10 |
11 | mark_as_advanced(SPHINX_EXECUTABLE)
12 |
--------------------------------------------------------------------------------
/doc/dev/index.rst:
--------------------------------------------------------------------------------
1 | .. highlight:: sql
2 |
3 | #################
4 | Developer's Guide
5 | #################
6 |
7 | .. toctree::
8 | :maxdepth: 2
9 |
10 | quick-start-devel
11 | doc
12 | scisql
13 |
--------------------------------------------------------------------------------
/doc/documenteer.toml:
--------------------------------------------------------------------------------
1 | [project]
2 | title = "Qserv"
3 | copyright = "2015-2024 Association of Universities for Research in Astronomy, Inc. (AURA)"
4 | base_url = "https://qserv.lsst.io"
5 | github_url = "https://github.com/lsst/qserv"
6 |
--------------------------------------------------------------------------------
/doc/index.rst:
--------------------------------------------------------------------------------
1 | Qserv
2 | =====
3 |
4 | Qserv is an open source, massively parallel, distributed SQL database designed to host the petascale astronomical catalogs of the `Rubin Observatory `_.
5 |
6 | .. toctree::
7 | :maxdepth: 1
8 |
9 | /intro/index
10 | /admin/index
11 | /user/index
12 | /ingest/index
13 | /dev/index
14 |
--------------------------------------------------------------------------------
/doc/ingest/api/advanced/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. _ingest-api-advanced:
3 |
4 | ==================
5 | Advanced Scenarios
6 | ==================
7 |
8 | .. hint::
9 |
10 | Read the following document first:
11 |
12 | - :ref:`ingest-api-concepts` (CONCEPTS)
13 |
14 | .. toctree::
15 | :maxdepth: 4
16 |
17 | config
18 | charset
19 | async-concurrency
20 | unpublishing
21 | transactions
22 | optimisations
23 | contributions
24 | directors
25 | ref-match
26 | warnings
27 |
--------------------------------------------------------------------------------
/doc/ingest/api/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. note::
3 |
4 | Information in this guide corresponds to the version **39** of the Qserv REST API. Keep in mind
5 | that each implementation of the API has a specific version. The version number will change
6 | if any changes to the implementation or the API that might affect users will be made.
7 | The current document will be kept updated to reflect the latest version of the API.
8 |
9 | #####################################
10 | The Ingest Workflow Developer's Guide
11 | #####################################
12 |
13 | .. toctree::
14 | :maxdepth: 4
15 |
16 | introduction
17 | concepts/index
18 | simple/index
19 | advanced/index
20 | post-ingest/index
21 | reference/index
22 |
--------------------------------------------------------------------------------
/doc/ingest/api/post-ingest/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. _ingest-api-post-ingest:
3 |
4 | =================================
5 | Post-Ingest Data Management Tasks
6 | =================================
7 |
8 | The following optional steps are performed after the data has been ingested:
9 |
10 | - :ref:`admin-row-counters` (ADMIN)
11 | - :ref:`admin-data-table-index` (ADMIN)
12 | - :ref:`admin-director-index` (ADMIN)
13 |
--------------------------------------------------------------------------------
/doc/ingest/api/reference/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. _ingest-api-reference:
3 |
4 | ######################
5 | Ingest API Reference
6 | ######################
7 |
8 | .. toctree::
9 | :maxdepth: 4
10 |
11 | rest/index
12 | tools
13 |
--------------------------------------------------------------------------------
/doc/ingest/api/reference/rest/controller/index.rst:
--------------------------------------------------------------------------------
1 | #############################
2 | Master Replication Controller
3 | #############################
4 |
5 | .. toctree::
6 | :maxdepth: 4
7 |
8 | config
9 | db-table-management
10 | trans-management
11 | table-location
12 | info
13 | director-index
14 | row-counters
15 |
--------------------------------------------------------------------------------
/doc/ingest/api/reference/rest/index.rst:
--------------------------------------------------------------------------------
1 | #############
2 | REST Services
3 | #############
4 |
5 | .. toctree::
6 | :maxdepth: 3
7 |
8 | general
9 | controller/index
10 | worker/index
11 |
--------------------------------------------------------------------------------
/doc/ingest/api/reference/tools.rst:
--------------------------------------------------------------------------------
1 | ######################
2 | The Command Line Tools
3 | ######################
4 |
5 | Error reporting in the command-line tools
6 | =========================================
7 |
8 | All command line tools return ``0`` to indicate the successful completion of the requested operation.
9 | Other values shall be treated as errors. The error messages are printed to the standard error stream.
10 | Additional information on the error can be found in the standard output stream.
11 |
12 | .. _ingest-tools-qserv-replica-file:
13 |
14 | qserv-replica-file
15 | ==================
16 |
17 | TBC.
--------------------------------------------------------------------------------
/doc/ingest/data/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. _ingest-data:
3 |
4 | Data preparation
5 | ================
6 |
7 | .. toctree::
8 | :maxdepth: 2
9 |
10 | intro
11 | partitioning
12 | partitioner
13 | ref-match
14 |
--------------------------------------------------------------------------------
/doc/ingest/index.rst:
--------------------------------------------------------------------------------
1 |
2 | .. highlight:: sql
3 |
4 | ##################
5 | Ingesting catalogs
6 | ##################
7 |
8 | .. toctree::
9 | :maxdepth: 2
10 |
11 | intro
12 | api/index
13 | qserv-ingest/index
14 | data/index
15 |
--------------------------------------------------------------------------------
/doc/ingest/qserv-ingest/index.rst:
--------------------------------------------------------------------------------
1 | .. _installation-label:
2 |
3 | ####################################
4 | The Kubernetes-based Ingest Workflow
5 | ####################################
6 |
7 | .. toctree::
8 | :maxdepth: 2
9 |
10 | input-data
11 | version
12 | run
13 | repcli
14 | itest
15 |
16 |
--------------------------------------------------------------------------------
/doc/intro/index.rst:
--------------------------------------------------------------------------------
1 | ############
2 | Introduction
3 | ############
4 |
--------------------------------------------------------------------------------
/doc/misc/KNOWN-ISSUES.txt:
--------------------------------------------------------------------------------
1 |
2 | Known issues:
3 | * DISTINCT is not implemented
4 | * subqueries are not implemented
5 |
--------------------------------------------------------------------------------
/doc/misc/README.md:
--------------------------------------------------------------------------------
1 | # Generate images
2 |
3 | Install Graphviz and run next command for each gv file:
4 |
5 | ```
6 | dot -Tpng -o proto-czarHandlesWorkerResponse.png proto-czarHandlesWorkerResponse.gv
7 | ```
8 |
--------------------------------------------------------------------------------
/doc/misc/component_interaction.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/doc/misc/component_interaction.odg
--------------------------------------------------------------------------------
/doc/misc/examples/obsolete/README.txt:
--------------------------------------------------------------------------------
1 | - plotChunksCopies.tcl: while dependent on output from obsolete code, is still the
2 | only way we have of visualizing the chunk layout. Plan on some small work to port
3 | it for the current infrastructure.
4 |
5 | - rebalance.py: provides a chunk-to-node mapping. It should work fine on the new
6 | partitioner's output. It depends on loader.py. We might borrow code from this
7 | and the old loader in building the multi-node loader.
8 |
9 | - loader.py: previous loader and rebalance.py dependency
10 |
11 |
--------------------------------------------------------------------------------
/doc/misc/examples/obsolete/fell.qserv.cnf:
--------------------------------------------------------------------------------
1 | [partitioner]
2 | emptyChunkListFile=emptyChunks.txt
3 |
4 | [frontend]
5 | xrootd = lsst-db2:1094
6 | scratch_path = /dev/shm/qserv
7 |
8 | [resultdb]
9 | passwd =
10 | db = qservResult
11 | unix_socket = /scratch/lsst/var/run/mysql.sock
12 | host =
13 | user = qsmaster
14 | port = 0
15 |
16 | [mysql]
17 | mysqlclient=
18 |
--------------------------------------------------------------------------------
/doc/misc/examples/obsolete/ir2farm.qserv.cnf:
--------------------------------------------------------------------------------
1 | [partitioner]
2 |
3 | [frontend]
4 | xrootd = ir2farm01:1094
5 | scratch_path = /dev/shm/qserv
6 |
7 | [resultdb]
8 | passwd =
9 | db = qservResult
10 | unix_socket = /u1/lsst/var/run/mysql.sock
11 | host =
12 | user = qsmaster
13 | port = 0
14 |
15 | [mysql]
16 | mysqlclient=
17 |
--------------------------------------------------------------------------------
/doc/misc/examples/obsolete/lsst-dev01.qserv.cnf:
--------------------------------------------------------------------------------
1 |
2 | [frontend]
3 | # port=7080
4 | xrootd = lsst-dev01:1094
5 | scratch_path = /dev/shm/qserv
6 |
7 | # [mgmtdb]
8 | # db=qservMeta
9 | # # Steal resultdb settings for now.
10 |
11 | [resultdb]
12 | passwd =
13 | db = qservResult
14 | unix_socket = /u1/local/mysql.sock
15 | host =
16 | user = qsmaster
17 | port = 0
18 |
19 | [partitioner]
20 | emptyChunkListFile=emptyChunks.txt
21 |
22 | # [tuning]
23 | # memoryEngine=yes
24 |
25 | # [debug]
26 | # chunkLimit=-1
27 |
28 | [mysql]
29 | # mysqlclient=
30 | mysqlclient=
31 |
--------------------------------------------------------------------------------
/doc/misc/proto-czarHandlesWorkerResponse.gv:
--------------------------------------------------------------------------------
1 | digraph G {
2 | czar_xrootd_client -> "QueryRequest::ProcessResponseData" ->
3 | "MergingRequester::flush"-> "QueryRequest::_finish";
4 | HEADER_SIZE_WAIT -> RESULT_WAIT -> RESULT_RECV -> BUFFER_DRAIN -> finish;
5 | RESULT_WAIT -> finish;
6 | RESULT_RECV -> finish;
7 | RESULT_WAIT -> RESULT_EXTRA -> RESULT_WAIT;
8 | HEADER_SIZE_WAIT -> HEADER_ERR -> failed;
9 | RESULT_WAIT -> RESULT_ERR -> failed;
10 | }
--------------------------------------------------------------------------------
/doc/misc/proto-workerSendsResponse.gv:
--------------------------------------------------------------------------------
1 | digraph G {
2 | "ForemanImpl::Runner::operator()()" -> "QueryAction::act" -> "QueryAction::_dispatchChannel" ->
3 | fillSchema -> fillRows -> transmit -> transmitHeader -> transmitResult ->
4 | "Done, all rows sent";
5 | transmitResult -> fillRows;
6 | }
--------------------------------------------------------------------------------
/doc/user/index.rst:
--------------------------------------------------------------------------------
1 | ############
2 | User's Guide
3 | ############
4 |
5 | .. toctree::
6 | :maxdepth: 2
7 |
8 | sql
9 | async
10 | http-frontend
11 |
--------------------------------------------------------------------------------
/doc_datasets/test101/README.md:
--------------------------------------------------------------------------------
1 |
2 | Sample data and configuration for a test catalog referenced in the "Ingest Workflow Developer's Guide"
3 | ======================================================================================================
4 |
5 | See the following section of the Guide for further details:
6 |
7 | "Ingesting Catalogs" / "Ingest Workflow Developer's Guide" / "Simple Workflow Example"
8 |
9 |
--------------------------------------------------------------------------------
/doc_datasets/test101/data/Filter.csv:
--------------------------------------------------------------------------------
1 | 0 u 0 0
2 | 1 g 0 0
3 | 2 r 0 0
4 | 3 i 0 0
5 | 4 z 0 0
6 | 5 y 0 0
7 | 6 w 0 0
8 | 7 V 0 0
9 | -99 DD 0 0
10 |
--------------------------------------------------------------------------------
/doc_datasets/test101/database_test101.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"test101",
5 | "auto_build_secondary_index":1,
6 | "local_load_secondary_index":1,
7 | "num_stripes":85,
8 | "num_sub_stripes":12,
9 | "overlap":0.01667
10 | }
11 |
--------------------------------------------------------------------------------
/doc_datasets/test101/table_Filter.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"test101",
5 | "table":"Filter",
6 | "is_partitioned":0,
7 | "fields_terminated_by":"\\t",
8 | "schema":[
9 | {"name":"filterId", "type":"tinyint(4) NOT NULL"},
10 | {"name":"filterName", "type":"char(3) NOT NULL"},
11 | {"name":"photClam", "type":"float NOT NULL"},
12 | {"name":"photBW", "type":"float NOT NULL"}
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/Filter.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/Filter.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/LeapSeconds.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/LeapSeconds.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/Logs.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/Logs.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/Object.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/Object.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/RefSrcMatch.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/RefSrcMatch.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/Science_Ccd_Exposure.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/Science_Ccd_Exposure.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/SimRefObject.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/SimRefObject.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/Source.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/Source.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/description.yaml:
--------------------------------------------------------------------------------
1 | tables:
2 | directors: ['Object']
3 | partitioned-tables: ['Object', 'Source']
4 | extensions:
5 | data: '.tsv'
6 | schema: '.schema'
7 | zip: '.gz'
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/ingest/Filter.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase01",
5 | "table":"Filter",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"filterId", "type":"tinyint(4) NOT NULL"},
9 | {"name":"filterName", "type":"char(3) NOT NULL"},
10 | {"name":"photClam", "type":"float NOT NULL"},
11 | {"name":"photBW", "type":"float NOT NULL"}
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/ingest/LeapSeconds.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase01",
5 | "table":"LeapSeconds",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"whenJd", "type":"float NOT NULL"},
9 | {"name":"offset", "type":"float NOT NULL"},
10 | {"name":"mjdRef", "type":"float NOT NULL"},
11 | {"name":"drift", "type":"float NOT NULL"},
12 | {"name":"whenMjdUtc", "type":"float DEFAULT NULL"},
13 | {"name":"whenUtc", "type":"bigint(20) DEFAULT NULL"},
14 | {"name":"whenTai", "type":"bigint(20) DEFAULT NULL"}
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/ingest/database.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase01",
5 | "auto_build_secondary_index":1,
6 | "local_load_secondary_index":1,
7 | "num_stripes":85,
8 | "num_sub_stripes":12,
9 | "overlap":0.01667
10 | }
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/ingest/sdqa_Metric.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase01",
5 | "table":"sdqa_Metric",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"sdqa_metricId", "type":"smallint(6) NOT NULL"},
9 | {"name":"metricName", "type":"varchar(30) NOT NULL"},
10 | {"name":"physicalUnits", "type":"varchar(30) NOT NULL"},
11 | {"name":"dataType", "type":"char(1) NOT NULL"},
12 | {"name":"definition", "type":"varchar(255) NOT NULL"}
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/partition/common.json:
--------------------------------------------------------------------------------
1 | {
2 | "htm":{
3 | "level":8
4 | },
5 | "dirDb":"qcase01",
6 | "dirTable":"Object",
7 | "part":{
8 | "num-stripes":85,
9 | "num-sub-stripes":12,
10 | "chunk":"chunkId",
11 | "sub-chunk":"subChunkId",
12 | "default-overlap":0.01667
13 | },
14 | "in":{
15 | "csv":{
16 | "null":"\\N",
17 | "delimiter":"\t"
18 | }
19 | },
20 | "out":{
21 | "csv":{
22 | "null":"\\N",
23 | "delimiter":"\t",
24 | "escape":"\\",
25 | "no-quote":true
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/schema/Filter.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `Filter` (
2 | `filterId` tinyint(4) NOT NULL,
3 | `filterName` char(3) NOT NULL,
4 | `photClam` float NOT NULL,
5 | `photBW` float NOT NULL
6 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/schema/LeapSeconds.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `LeapSeconds` (
2 | `whenJd` float NOT NULL,
3 | `offset` float NOT NULL,
4 | `mjdRef` float NOT NULL,
5 | `drift` float NOT NULL,
6 | `whenMjdUtc` float DEFAULT NULL,
7 | `whenUtc` bigint(20) DEFAULT NULL,
8 | `whenTai` bigint(20) DEFAULT NULL
9 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/schema/RefSrcMatch.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `RefSrcMatch` (
2 | `refObjectId` bigint(20) DEFAULT NULL,
3 | `sourceId` bigint(20) DEFAULT NULL,
4 | `refRa` double DEFAULT NULL,
5 | `refDec` double DEFAULT NULL,
6 | `angSep` double DEFAULT NULL,
7 | `nRefMatches` int(11) DEFAULT NULL,
8 | `nSrcMatches` int(11) DEFAULT NULL,
9 | `closestToRef` tinyint(4) DEFAULT NULL,
10 | `closestToSrc` tinyint(4) DEFAULT NULL,
11 | `flags` int(11) DEFAULT NULL,
12 | KEY `sourceId` (`sourceId`),
13 | KEY `refObjectId` (`refObjectId`)
14 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/schema/sdqa_Metric.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `sdqa_Metric` (
2 | `sdqa_metricId` smallint(6) NOT NULL AUTO_INCREMENT,
3 | `metricName` varchar(30) NOT NULL,
4 | `physicalUnits` varchar(30) NOT NULL,
5 | `dataType` char(1) NOT NULL,
6 | `definition` varchar(255) NOT NULL,
7 | PRIMARY KEY (`sdqa_metricId`),
8 | UNIQUE KEY `UQ_sdqaMetric_metricName` (`metricName`)
9 | ) ENGINE=MyISAM AUTO_INCREMENT=54 DEFAULT CHARSET=latin1;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/data/sdqa_Metric.tsv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case01/data/sdqa_Metric.tsv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0001.2_fetchObjectByIdIN.sql:
--------------------------------------------------------------------------------
1 | -- Find objects with a particular object ids
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery009
3 |
4 | -- pragma sortresult
5 | select ra_Ps, decl_PS
6 | FROM Object
7 | WHERE objectId IN (390034570102582, 396210733076852, 393126946553816, 390030275138483)
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0002_fetchObjectByIdNoResult.sql:
--------------------------------------------------------------------------------
1 | -- Find an object with a particular object id
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery009
3 |
4 | -- not working, see ticket #1847
5 |
6 | -- pragma sortresult
7 | SELECT *
8 | FROM Object
9 | WHERE objectId = 430213989000
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0003_selectMetadataForOneGalaxy.sql:
--------------------------------------------------------------------------------
1 | -- select the full color image of a single given galaxy
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery006
3 |
4 | -- pragma sortresult
5 | SELECT s.ra, s.decl, o.raRange, o.declRange
6 | FROM Object o
7 | JOIN Source s USING (objectId)
8 | WHERE o.objectId = 390034570102582
9 | AND o.latestObsTime = s.taiMidPoint
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0003_selectMetadataForOneGalaxy_classicJOIN.sql:
--------------------------------------------------------------------------------
1 | -- pragma sortresult
2 | SELECT s.ra, s.decl, o.raRange, o.declRange
3 | FROM Object o, Source s
4 | WHERE o.objectId = 390034570102582 AND o.objectId = s.objectId AND o.latestObsTime = s.taiMidPoint;
5 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0003_selectMetadataForOneGalaxy_withUSING.sql:
--------------------------------------------------------------------------------
1 | -- select the full color image of a single given galaxy
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery006
3 |
4 | -- pragma sortresult
5 | SELECT s.ra, s.decl, o.raRange, o.declRange
6 | FROM Object o
7 | JOIN Source s USING (objectId)
8 | WHERE o.objectId = 390034570102582
9 | AND o.latestObsTime = s.taiMidPoint
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0004_lightCurve.sql:
--------------------------------------------------------------------------------
1 | -- Extract light curve for a given object (time, magnitude and position)
2 | -- See http://dev.lsstcorp.org/trac/wiki/dbQuery001
3 |
4 | -- pragma sortresult
5 |
6 | SELECT taiMidPoint, psfFlux, psfFluxSigma, ra, decl
7 | FROM Source
8 | JOIN Filter USING (filterId)
9 | WHERE objectId = 402412665835716
10 | AND filterName = 'r'
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0005_nonReplicatedTable.sql:
--------------------------------------------------------------------------------
1 | -- trivial query, should return one row (some cleverness
2 | -- is needed to execute this query on one node only!)
3 |
4 | -- pragma sortresult
5 | SELECT `offset`, mjdRef, drift FROM LeapSeconds where `offset` = 10
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0007.1_fetchSourceByObjId.sql:
--------------------------------------------------------------------------------
1 |
2 | -- this query exercises secondary index in an interesting way:
3 | -- because Qserv needs to figure out what the director table
4 | -- is and use it when setting up its secondary index.
5 |
6 | SELECT sourceId, objectId
7 | FROM Source
8 | WHERE objectId = 386942193651348
9 | ORDER BY sourceId;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0007.2_fetchSourceByObjIdSelectBLOB.sql:
--------------------------------------------------------------------------------
1 |
2 | -- this query exercises secondary index in an interesting way:
3 | -- because Qserv needs to figure out what the director table
4 | -- is and use it when setting up its secondary index.
5 |
6 | SELECT sourceId, objectId, blobField
7 | FROM Source
8 | WHERE objectId = 386942193651348
9 | ORDER BY sourceId;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0007_fetchSourceByObjId.sql:
--------------------------------------------------------------------------------
1 |
2 | -- this query exercises secondary index in an interesting way:
3 | -- because Qserv needs to figure out what the director table
4 | -- is and use it when setting up its secondary index.
5 |
6 | SELECT sourceId, objectId
7 | FROM Source
8 | WHERE objectId = 386942193651348
9 | ORDER BY sourceId;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0008.1_fetchSourceByObjIdIN_noRes.sql:
--------------------------------------------------------------------------------
1 |
2 | -- this query exercises secondary index in an interesting way:
3 | -- because Qserv needs to figure out what the director table
4 | -- is and use it when setting up its secondary index.
5 | -- This query returns 0 rows
6 |
7 | SELECT sourceId, objectId
8 | FROM Source
9 | WHERE objectId IN (1234)
10 | ORDER BY sourceId;
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0008.2_fetchSourceByObjIdIN_withRes.sql:
--------------------------------------------------------------------------------
1 |
2 | -- this query exercises secondary index in an interesting way:
3 | -- because Qserv needs to figure out what the director table
4 | -- is and use it when setting up its secondary index.
5 | --- This query returns some rows.
6 |
7 | SELECT sourceId, objectId
8 | FROM Source
9 | WHERE objectId IN (386942193651348)
10 | ORDER BY sourceId;
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0008.3_fetchSourceByObjIdIN.sql:
--------------------------------------------------------------------------------
1 | -- Qserv needs to figure out what the director table
2 | -- is and then retrieve chunkID from secondary index
3 |
4 | select COUNT(*) AS N
5 | FROM Source
6 | WHERE objectId IN (386950783579546, 386942193651348)
7 |
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0008.4_fetchSourceByObjIdBETWEEN.sql:
--------------------------------------------------------------------------------
1 | -- Qserv needs to figure out what the director table
2 | -- is and then retrieve chunkID from secondary index
3 |
4 | select COUNT(*) AS N
5 | FROM Source
6 | WHERE objectId BETWEEN 386942193651348 AND 386950783579546
7 |
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0008_fetchSourceByObjIdIN_withRes.sql:
--------------------------------------------------------------------------------
1 |
2 | -- this query exercises secondary index in an interesting way:
3 | -- because Qserv needs to figure out what the director table
4 | -- is and use it when setting up its secondary index.
5 | --- This query returns some rows.
6 |
7 | SELECT sourceId, objectId
8 | FROM Source
9 | WHERE objectId IN (386942193651348)
10 | ORDER BY sourceId;
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0010_leapSec.sql:
--------------------------------------------------------------------------------
1 | -- This query is frequently executed by buildbot
2 |
3 | -- See ticket #2048
4 |
5 | SELECT `offset`, mjdRef, drift, whenUtc
6 | FROM LeapSeconds
7 | WHERE whenUtc < 39900600000000000000000000
8 | ORDER BY whenUtc DESC
9 | LIMIT 1;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0012.1_raftAndCcd.sql:
--------------------------------------------------------------------------------
1 | -- Test ORDER BY against non-chunked data
2 |
3 | SELECT sce.filterId, sce.filterName
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.visit = 887404831)
6 | AND (sce.raftName = '3,3')
7 | AND (sce.ccdName LIKE '%')
8 | ORDER BY filterId
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0012.2_raftAndCcd.sql:
--------------------------------------------------------------------------------
1 | -- Test ORDER BY ... LIMIT ... against
2 | -- non-chunked data
3 |
4 | SELECT sce.filterId, sce.filterName
5 | FROM Science_Ccd_Exposure AS sce
6 | WHERE (sce.visit = 887404831)
7 | AND (sce.raftName = '3,3')
8 | AND (sce.ccdName LIKE '%')
9 | ORDER BY filterId LIMIT 5
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0012.3_raftAndCcd.sql:
--------------------------------------------------------------------------------
1 | -- pragma sortresult
2 |
3 | SELECT sce.filterId, sce.filterName, sce.ccdName
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.visit = 887404831)
6 | AND (sce.raftName = '3,3')
7 | AND (sce.ccdName NOT LIKE '0,2');
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0012_raftAndCcd.sql:
--------------------------------------------------------------------------------
1 | -- interesting syntax
2 |
3 | -- pragma sortresult
4 | SELECT sce.filterId, sce.filterName
5 | FROM Science_Ccd_Exposure AS sce
6 | WHERE (sce.visit = 887404831)
7 | AND (sce.raftName = '3,3')
8 | AND (sce.ccdName LIKE '%')
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/0013_groupedLogicalTerm.sql:
--------------------------------------------------------------------------------
1 | -- Used to reproduce DM-15491: Parenthesis are ignored in the WHERE clause of qserv queries
2 |
3 | select objectId, ra_PS
4 | from Object
5 | where ra_PS > 359.5 and (objectId = 417853073271391 or objectId = 399294519599888)
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1002_coneMagColor.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- pragma sortresult
5 | SELECT COUNT(*) as OBJ_COUNT
6 | FROM Object
7 | WHERE ra_PS BETWEEN 0.1 AND 4 -- noQserv
8 | AND decl_PS BETWEEN -6 AND 6 -- noQserv
9 | -- withQserv WHERE qserv_areaspec_box(0.1, -6, 4, 6)
10 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
11 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.9
12 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 1.0
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1002_coneMagColor_noalias.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- pragma noheader sortresult
5 | SELECT COUNT(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 0.1 AND 4 -- noQserv
8 | AND decl_PS BETWEEN -6 AND 6 -- noQserv
9 | -- withQserv WHERE qserv_areaspec_box(0.1, -6, 4, 6)
10 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
11 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.9
12 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 1.0
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1003_coneMagColorEmptyRes.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- See ticket #2051
5 |
6 | -- pragma sortresult
7 | SELECT COUNT(*) as OBJ_COUNT
8 | FROM Object
9 | WHERE ra_PS BETWEEN 0 AND 4 -- noQserv
10 | AND decl_PS BETWEEN -6 AND -5 -- noQserv
11 | -- withQserv WHERE qserv_areaspec_box(0, -6, 4, -5)
12 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
13 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.2
14 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 0.2
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1004.1_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | -- ORDER BY is performed by mysql-proxy but
5 | -- AVG() still has to trigger aggregation
6 | -- step.
7 |
8 | -- pragma noheader
9 | SELECT objectId, AVG(ra_PS) as ra
10 | FROM Object
11 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
12 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
13 | -- withQserv WHERE qserv_areaspec_box(0, 0, 3, 10)
14 | GROUP BY objectId
15 | ORDER BY ra
16 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1004_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
7 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
8 | -- withQserv WHERE qserv_areaspec_box(0, 0, 3, 10)
9 | -- AND variability > 0.8
10 | ORDER BY objectId
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1005_allGalaxiesInArea.sql:
--------------------------------------------------------------------------------
1 | -- Select all galaxies in a given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery014
3 |
4 | -- pragma sortresult
5 |
6 | SELECT objectId
7 | FROM Object
8 | WHERE ra_PS BETWEEN 1.0 AND 2.0 -- noQserv
9 | AND decl_PS BETWEEN -6.0 AND -4.0 -- noQserv
10 | -- withQserv WHERE qserv_areaspec_box(1.0, -6.0, 2.0, -4.0)
11 | AND rRadius_SG > 0.5
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1006_qserv_func_with_equals.1.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
7 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
8 | -- withQserv WHERE 1 = qserv_areaspec_box(0, 0, 3, 10)
9 | ORDER BY objectId
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1006_qserv_func_with_equals.2.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
7 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
8 | -- withQserv WHERE qserv_areaspec_box(0, 0, 3, 10) = 1
9 | ORDER BY objectId
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1011_objectsForExposure.sql:
--------------------------------------------------------------------------------
1 | -- joins, but for limited number of visits
2 | -- sort by is here purely so that we can compare results from mysql and qserv
3 |
4 | SELECT objectId
5 | FROM Source s
6 | JOIN Science_Ccd_Exposure sce USING (scienceCcdExposureId)
7 | WHERE sce.visit IN (885449631,886257441,886472151) ORDER BY objectId LIMIT 10
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1030_timeSeries.sql:
--------------------------------------------------------------------------------
1 | -- Select time series data for all objects
2 | -- in a given area of the sky,
3 | -- in a given photometric band
4 | -- Similar query: http://dev.lsstcorp.org/trac/wiki/dbQuery007
5 |
6 | -- See ticket #2052: https://dev.lsstcorp.org/trac/ticket/2052
7 |
8 | -- pragma noheader
9 | SELECT objectId, taiMidPoint, scisql_fluxToAbMag(psfFlux)
10 | FROM Source
11 | JOIN Object USING(objectId)
12 | JOIN Filter USING(filterId)
13 | WHERE ra_PS BETWEEN 355 AND 360 -- noQserv
14 | and decl_PS BETWEEN 0 AND 20 -- noQserv
15 | -- withQserv WHERE qserv_areaspec_box(355, 0, 360, 20)
16 | AND filterName = 'g'
17 | ORDER BY objectId, taiMidPoint ASC
18 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1051_nn.sql:
--------------------------------------------------------------------------------
1 | -- Find near-neighbor objects in a given region
2 |
3 |
4 | -- See ticket #1840
5 | -- Test DM-1582: Qserv spatial restrictor names
6 | -- must be case-insensitive
7 |
8 | -- pragma sortresult
9 | SELECT o1.objectId AS objId1,
10 | o2.objectId AS objId2,
11 | scisql_angSep(o1.ra_PS, o1.decl_PS, o2.ra_PS, o2.decl_PS) AS distance
12 | FROM Object o1,
13 | Object o2
14 | WHERE o1.ra_PS BETWEEN 0 AND 0.2 -- noQserv
15 | AND o1.decl_PS between 0 and 1 -- noQserv
16 | -- withQserv WHERE qserv_areaspec_box(0, 0, 0.2, 1)
17 | AND scisql_angSep(o1.ra_PS, o1.decl_PS, o2.ra_PS, o2.decl_PS) < 0.016
18 | AND o1.objectId <> o2.objectId
19 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1060_selectPoly.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to return [VAR]BINARY data.
2 |
3 | -- pragma sortresult
4 | SELECT scienceCcdExposureId, hex(poly) as hexPoly
5 | FROM Science_Ccd_Exposure;
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1083_null_safe_equals_op.sql:
--------------------------------------------------------------------------------
1 | -- find columns whose value is NULL using the null safe
2 | -- equals operator, `<=>`
3 |
4 |
5 | -- pragma sortresult
6 |
7 | select objectId from Object where raRange <=> NULL;
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1084_not_like.sql:
--------------------------------------------------------------------------------
1 | -- test for NOT LIKE
2 |
3 | SELECT filterId,filterName,photClam,photBW FROM Filter WHERE filterName NOT LIKE 'Z';
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1084_null_safe_equals_op.sql:
--------------------------------------------------------------------------------
1 | -- find columns whose value is NULL using the null safe
2 | -- equals operator, `<=>`
3 |
4 |
5 | -- pragma sortresult
6 |
7 | select objectId from Object where raRange <=> NULL;
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1086_not_between.sql:
--------------------------------------------------------------------------------
1 | -- test for NOT BETWEEN
2 |
3 |
4 | -- pragma sortresult
5 |
6 | SELECT objectId,ra_PS FROM Object WHERE objectId NOT BETWEEN 417857368235490 AND 420949744686724
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1087_and_alt.sql:
--------------------------------------------------------------------------------
1 | -- test for &&
2 |
3 | -- pragma sortresult
4 |
5 | select objectId, iRadius_SG, ra_PS, decl_PS from Object where iRadius_SG > .5 && ra_PS < 2 && decl_PS < 3;
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1088_or_alt.sql:
--------------------------------------------------------------------------------
1 | -- test for ||
2 |
3 | -- pragma sortresult
4 |
5 | select objectId from Object where objectId < 400000000000000 || objectId > 430000000000000 ORDER BY objectId;
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1089_not_in.sql:
--------------------------------------------------------------------------------
1 | -- test for NOT IN
2 |
3 | -- pragma sortresult
4 |
5 | SELECT objectId, ra_PS FROM Object WHERE objectId NOT IN (417857368235490, 420949744686724, 420954039650823);
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1090_modulo.sql:
--------------------------------------------------------------------------------
1 | -- test for the modulo operator
2 |
3 | -- pragma sortresult
4 |
5 | select objectId, ra_PS, decl_PS from Object where ra_PS % 3 > 1.5
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1091_mod.sql:
--------------------------------------------------------------------------------
1 | -- test for the MOD operator
2 |
3 | -- pragma sortresult
4 |
5 | select objectId, ra_PS, decl_PS from Object where ra_PS MOD 3 > 1.5
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1092_div.sql:
--------------------------------------------------------------------------------
1 | -- test for the DIV operator
2 |
3 | -- pragma sortresult
4 |
5 | SELECT objectId from Object where ra_PS DIV 2 > 1
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1093_bitwise_and.sql:
--------------------------------------------------------------------------------
1 | -- test for the & operator
2 |
3 | -- pragma sortresult
4 |
5 | SELECT objectId from Object where objectId & 1 = 1;
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1094_bitwise_or.sql:
--------------------------------------------------------------------------------
1 | -- test for the | operator
2 |
3 | select objectId from Object where objectId = 399324584348580 | 1;
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1095_bitwise_right_shift.sql:
--------------------------------------------------------------------------------
1 | -- test for the >> operator
2 |
3 | SELECT filterId,filterName,photClam,photBW FROM Filter WHERE filterId >> 1 = 1;
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1096_bitwise_left_shift.sql:
--------------------------------------------------------------------------------
1 | -- test for the << operator
2 |
3 | SELECT filterId,filterName,photClam,photBW FROM Filter WHERE filterId << 1 = 2;
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1097_bitwise_xor.sql:
--------------------------------------------------------------------------------
1 | -- test for the ^ operator
2 |
3 | SELECT filterId,filterName,photClam,photBW FROM Filter WHERE filterId ^ 3 != 0;
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1098_negative_one.sql:
--------------------------------------------------------------------------------
1 | -- regression test for DM-16613
2 | -- tests constant value -1 in e.g. 'WHERE x > -1'
3 | -- -1 and -2 were parsing differently than other decimal integers because of
4 | -- placeholder lexer values TWO_DECIMAL, ONE_DECIMAL, AND ZERO_DECIMAL, which
5 | -- are necessary for cases where the grammar uses decimal integers in quotes,
6 | -- for example 'boolValue=('0' | '1')'. This was fixed with prioritization of
7 | -- ONE_DECIMAL and the others with respect to DECIMAL_LITERAL in the lexer.
8 |
9 | -- pragma sortresult
10 |
11 | select objectId from Object where ra_PS > -1;
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1099_two_group_by_columns.sql:
--------------------------------------------------------------------------------
1 | -- regression test for DM-17092
2 | -- tests that a query with a GROUP BY clause with 2 columns returns correct results.
3 |
4 | -- pragma sortresult
5 |
6 | select objectId, filterId from Source group by objectId, filterId;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1100_aliasInSelect.sql:
--------------------------------------------------------------------------------
1 | -- tests that a query with an alias in the select list parses, runs, and returns correct results.
2 |
3 | -- pragma sortresult
4 |
5 | SELECT objectId - 1 AS objLessOne FROM Object;
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1101.1_having.sql:
--------------------------------------------------------------------------------
1 | -- Tests that the having clause is handled properly
2 | -- pragma sortresult
3 | -- pragma noheader
4 |
5 | SELECT objectId,
6 | MAX(raFlux) - MIN(raFlux)
7 | FROM Source
8 | GROUP BY objectId
9 | HAVING MAX(raFlux)-MIN(raFlux) > 5;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1101.2_having.sql:
--------------------------------------------------------------------------------
1 | -- Tests that the having clause is handled properly
2 | -- pragma sortresult
3 |
4 | SELECT objectId,
5 | MAX(raFlux) - MIN(raFlux) AS flx
6 | FROM Source
7 | GROUP BY objectId
8 | HAVING MAX(raFlux)-MIN(raFlux) > 5;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1101.3_having.sql:
--------------------------------------------------------------------------------
1 | -- Tests that the having clause is handled properly
2 | -- pragma sortresult
3 |
4 | SELECT objectId,
5 | MAX(raFlux) - MIN(raFlux) AS flx
6 | FROM Source
7 | GROUP BY objectId
8 | HAVING flx > 5;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1102_having_with_limit.sql:
--------------------------------------------------------------------------------
1 | -- Tests that the having clause is handled properly
2 | -- pragma sortresult
3 |
4 | SELECT objectId,
5 | MAX(raFlux) - MIN(raFlux) as `flx`
6 | FROM Source
7 | GROUP BY objectId
8 | HAVING `flx` > 5
9 | LIMIT 5;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/1104_column_disambiguation.sql:
--------------------------------------------------------------------------------
1 | -- Select the same column name from different tables
2 | -- Verifies that the columns are disambiguated to coexist in the
3 | -- results table, and re-ambiguated so that only the column name
4 | -- appears in the results returned to the user (as is normal
5 | -- mysql behavior)
6 |
7 | -- pragma sortresult
8 |
9 | SELECT Object.htmId20, Source.htmId20 FROM Object JOIN Source ON Object.objectId = Source.objectId;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/2100_groupByChunkId.sql:
--------------------------------------------------------------------------------
1 | -- chunkId column must be filled in input data so that mysql mode
2 | -- can give same answers as Qserv
3 |
4 | SELECT count(*) AS n, AVG(ra_PS), AVG(decl_PS), chunkId
5 | FROM Object
6 | GROUP BY chunkId;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/3005_orderByRA.sql:
--------------------------------------------------------------------------------
1 | SELECT objectId, ra_PS
2 | FROM Object
3 | WHERE ra_PS BETWEEN 0. AND 1.
4 | AND decl_PS BETWEEN 0. AND 1.
5 | ORDER BY ra_PS;
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/3006.1_selectAs.sql:
--------------------------------------------------------------------------------
1 | -- Test support for multiple ORDER BY fields
2 |
3 | SELECT ra_PS AS ra,
4 | decl_PS AS decl
5 | FROM Object
6 | WHERE ra_PS BETWEEN 0. AND 1.
7 | AND decl_PS BETWEEN 0. AND 1.
8 | ORDER BY ra, decl;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/3006_selectAs.sql:
--------------------------------------------------------------------------------
1 | SELECT ra_PS AS ra
2 | FROM Object
3 | WHERE ra_PS BETWEEN 0. AND 1.
4 | AND decl_PS BETWEEN 0. AND 1.
5 | ORDER BY ra;
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/3008_showColumns.sql:
--------------------------------------------------------------------------------
1 | SHOW COLUMNS FROM Object;
2 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/3011_selectSample.sql:
--------------------------------------------------------------------------------
1 | SELECT uFlux_PS, gFlux_PS, rFlux_PS,
2 | iFlux_PS, zFlux_PS, yFlux_PS
3 | FROM Object
4 | WHERE (objectId % 100 ) = 57
5 | ORDER BY uFlux_PS, gFlux_PS, rFlux_PS,
6 | iFlux_PS, zFlux_PS, yFlux_PS;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/3014_limitAfterAreaspec.sql:
--------------------------------------------------------------------------------
1 | -- Note: result ordering before limiting th eresult is required in Qserv
2 | -- to get the deterministic output.
3 |
4 | -- This is testing syntax (limit after areaspec)
5 |
6 | -- See ticket #2200
7 |
8 | SELECT objectId
9 | FROM Object
10 | WHERE ra_PS BETWEEN 0.1 AND 4 -- noQserv
11 | AND decl_PS BETWEEN -6 AND 6 -- noQserv
12 | -- withQserv WHERE qserv_areaspec_box(0.1, -6, 4, 6)
13 | ORDER BY objectId
14 | LIMIT 10
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/8003_areaWithLimitClause.sql:
--------------------------------------------------------------------------------
1 | -- This is testing syntax (limit after areaspec)
2 |
3 | -- See ticket #2200
4 |
5 | SELECT COUNT(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 355 AND 356 -- noQserv
8 | AND decl_PS BETWEEN 0 AND 1 -- noQserv
9 | -- withQserv WHERE qserv_areaspec_box(355, 0, 356, 1)
10 | LIMIT 10
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/9000_caseinsensitiveUDF.sql:
--------------------------------------------------------------------------------
1 | -- Test case-insensitive names for
2 | -- Qserv spatial restrictor
3 | -- inspired by 1004_varObjects.sql
4 |
5 | SELECT objectId
6 | FROM Object
7 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
8 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
9 | -- withQserv WHERE QsErV_ArEaSpEc_BoX(0, 0, 3, 10)
10 | -- AND variability > 0.8
11 | ORDER BY objectId
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/9001_quoteTabInBlob.sql:
--------------------------------------------------------------------------------
1 | -- Test to be sure that a blob with a backslash
2 | -- in it is loaded the same in qserv as baseline
3 | -- test databases
4 |
5 | SELECT blobField
6 | FROM Source
7 | WHERE sourceId=29759322768015696;
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/9002_secIdxCompEq.sql:
--------------------------------------------------------------------------------
1 | -- Test to verify that a query returns correct results with a secondary index equality comparison.
2 | -- pragma sortresult
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE objectId = 405483567466455;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/9003_secIdxCompLt.sql:
--------------------------------------------------------------------------------
1 | -- Test to verify that a query returns correct results with a secondary index less than comparison.
2 | -- pragma sortresult
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE objectId < 400000000000000;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/9004_secIdxCompGt.sql:
--------------------------------------------------------------------------------
1 | -- Test to verify that a query returns correct results with a secondary index greater than comparison.
2 | -- pragma sortresult
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE objectId > 400000000000000;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_columns/3004_nonExistingColumn.sql:
--------------------------------------------------------------------------------
1 | -- Selecting a non existing field
2 |
3 | SELECT o.foobar
4 | FROM Object o
5 | WHERE o.objectid = 402391191015221 ;
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_columns/README.txt:
--------------------------------------------------------------------------------
1 | Queries found in this folder are referring to columns that do not exist in
2 | existingt tables of the catalog and they may need to be eliminated. It's not
3 | clear why the queries were put here.
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/0011_sdqaMetric.sql:
--------------------------------------------------------------------------------
1 | -- interesting syntax
2 |
3 | -- See ticket #2049
4 | -- This is a WONTFIX because NAME_CONST is a MySQL-ism.
5 | -- COLLATE will be low-priority if/when we have a test case for it that
6 | -- doesn't include MySQL-isms.
7 |
8 | SELECT sdqa_metricId
9 | FROM sdqa_Metric
10 | WHERE metricName = NAME_CONST('metricName_',_latin1'ip.isr.numSaturatedPixels' COLLATE 'latin1_swedish_ci')
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/1012_orderByClause.sql:
--------------------------------------------------------------------------------
1 | -- Unsupported syntax:
2 | -- ERROR 4110 (Proxy): Query processing error: QI=?: Failed to instantiate
3 | -- query: ParseException:Error parsing query, near "ABS(iE1_SG)", qserv does not
4 | -- support functions in ORDER BY.
5 |
6 | -- Just testing ORDER BY
7 | -- (This query does not have real scientific meaning..)
8 |
9 | -- pragma noheader
10 |
11 | SELECT objectId, iE1_SG, ABS(iE1_SG)
12 | FROM Object
13 | WHERE iE1_SG between -0.1 and 0.1
14 | ORDER BY ABS(iE1_SG);
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/1013_orderByClauseRounded.sql:
--------------------------------------------------------------------------------
1 | -- Unsupported syntax:
2 | -- ERROR 4110 (Proxy): Query processing error: QI=?: Failed to instantiate
3 | -- query: ParseException:Error parsing query, near "ROUND(ABS(iE1_SG),3)",
4 | -- qserv does not support functions in ORDER BY.
5 |
6 | -- Variation of the previous query, with "round"
7 | -- (This query does not have real scientific meaning..)
8 |
9 | SELECT objectId, ROUND(iE1_SG, 3), ROUND(ABS(iE1_SG), 3)
10 | FROM Object
11 | WHERE iE1_SG between -0.1 and 0.1
12 | ORDER BY ROUND(ABS(iE1_SG), 3);
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/1081_refMatch2.sql:
--------------------------------------------------------------------------------
1 | -- Unsupported syntax:
2 | -- ERROR 4110 (Proxy): Query processing error: QI=?: Failed to instantiate
3 | -- query: ParseException:qserv can not parse query, near
4 | -- "LEFT JOIN SimRefObject t ON(o2t.refObjectId=t.refObjectId)"
5 |
6 | SELECT count(*)
7 | FROM Object o
8 | INNER JOIN RefObjMatch o2t ON (o.objectId = o2t.objectId)
9 | LEFT JOIN SimRefObject t ON (o2t.refObjectId = t.refObjectId)
10 | WHERE closestToObj = 1
11 | OR closestToObj is NULL
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/2006_randomSample.sql:
--------------------------------------------------------------------------------
1 | -- Unsupported syntax due to the placeholder ':percentage'.
2 | -- The query may need to be rewritten to replace the placeholder with
3 | -- so,me meaningful value.
4 |
5 | -- Random sample of the dataq
6 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery004
7 |
8 |
9 | SELECT fluxToAbMag(uFlux_PS),
10 | fluxToAbMag(gFlux_PS),
11 | fluxToAbMag(rFlux_PS),
12 | fluxToAbMag(iFlux_PS),
13 | fluxToAbMag(zFlux_PS),
14 | fluxToAbMag(yFlux_PS)
15 | FROM Object
16 | WHERE (objectId % 100 ) = :percentage
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3001_SelectInPoly.sql:
--------------------------------------------------------------------------------
1 |
2 | SET @poly = scisql_s2CPolyToBin(359.5, -5.0,
3 | 0.05, -5.0,
4 | 0.05, 3.5,
5 | 359.5, 3.5);
6 |
7 | SELECT count(*)
8 | FROM Object
9 | where scisql_s2PtInCPoly(ra_PS, decl_PS, @poly) = 1 ;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3002_sameColumnName.sql:
--------------------------------------------------------------------------------
1 |
2 | SELECT o1.ra_PS,o2.ra_PS
3 | FROM Object o1, Object o2
4 | WHERE o1.objectid = 402391191015221
5 | AND o2.objectid = 390030275138483 ;
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3003_SameColumnTwice.sql:
--------------------------------------------------------------------------------
1 | -- Selecting the same column twice
2 |
3 | SELECT o.ra_PS,o.decl_PS,o.ra_PS
4 | FROM Object o
5 | WHERE o.objectid = 402391191015221 ;
6 |
7 |
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3007_countGroupBy.sql:
--------------------------------------------------------------------------------
1 |
2 | SELECT count(src.sourceId), avg(o.ra_PS), avg(o.decl_PS)
3 | FROM Object o, Source src
4 | WHERE ra_PS BETWEEN 0. AND 1.
5 | AND decl_PS BETWEEN 0. AND 1.
6 | GROUP BY src.objectId ;
7 |
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3009_subquery.sql:
--------------------------------------------------------------------------------
1 |
2 | SELECT src.sourceId
3 | FROM Source src
4 | WHERE src.objectId IN (
5 | SELECT objectId
6 | FROM Object o
7 | WHERE ra_PS BETWEEN 0. AND 1.
8 | AND decl_PS BETWEEN 0. AND 1.
9 | ) ;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3015_orderByFunction.sql:
--------------------------------------------------------------------------------
1 | -- Functions in the ORDER BY clause aren't supported by Qserv.
2 |
3 | SELECT objectID
4 | FROM Object
5 | WHERE scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
6 | ORDER BY (scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS))
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/3016_selectAllPairsWithinDistance.sql:
--------------------------------------------------------------------------------
1 | -- Select all pairs within some distance of points in region
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- based on https://dev.lsstcorp.org/trac/wiki/db/queries/022
4 |
5 | SELECT o1.objectId, o2.objectId
6 | FROM Object o1, Object o2
7 | WHERE o1.ra_PS BETWEEN 0.04 AND 5. -- noQserv
8 | AND o1.decl_PS BETWEEN -3. AND 3. -- noQserv
9 | -- withQserv WHERE qserv_areaspec_box(0.04, -3., 5., 3.)
10 | AND scisql_angSep(o1.ra_PS, o1.decl_PS, o2.ra_PS, o2.decl_Ps) < 5.
11 |
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/8001_badLiteral.sql:
--------------------------------------------------------------------------------
1 |
2 |
3 | -- note wrong literal: "35 .1" instead of "35.1"
4 |
5 | SELECT count(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 35 AND 35 .1 -- noQserv
8 | AND decl_PS BETWEEN 6 AND 6.0001 -- noQserv
9 | -- withQserv WHERE qserv_areaSpec_box(35, 6, 35 .1, 6.0001);
10 |
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/8002_badLiteral.sql:
--------------------------------------------------------------------------------
1 |
2 |
3 | -- note wrong literal: "35. 1" instead of "35.1"
4 |
5 | SELECT count(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 35 AND 35. 1 -- noQserv
8 | AND decl_PS BETWEEN 6 AND 6.0001 -- noQserv
9 | -- withQserv WHERE qserv_areaSpec_box(35, 6, 35. 1, 6.0001);
10 |
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/8004_badArea.sql:
--------------------------------------------------------------------------------
1 | -- Bad area spec box
2 |
3 | SELECT o1.objectId, o2.objectId
4 | FROM Object o1, Object o2
5 | WHERE o1.ra_PS BETWEEN 0.04 AND -3. -- noQserv
6 | AND o1.decl_PS BETWEEN 5. AND 3. -- noQserv
7 | -- withQserv WHERE qserv_areaspec_box(0.04, 5., -3., 3.)
8 | AND scisql_angSep(o1.ra_PS, o1.decl_PS, o2.ra_PS, o2.decl_Ps) < 5.
9 |
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_syntax/README.txt:
--------------------------------------------------------------------------------
1 | Queries in this folder are based on the SQL syntax that is not presently
2 | supported by Qserv.
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/1031_newTransientsForEpoch.sql:
--------------------------------------------------------------------------------
1 | -- Find new transients for a given epoch
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery005
3 |
4 | -- Missing in current schema: Alert table
5 |
6 | SELECT objectId
7 | FROM Alert
8 | JOIN _Alert2Type USING (alertId)
9 | JOIN AlertType USING (alertTypeId)
10 | WHERE alertTypeDescr = 'newTransients'
11 | AND Alert.timeGenerated BETWEEN :timeMin AND :timeMax
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/1082_refMatch3.sql:
--------------------------------------------------------------------------------
1 | select objectId, sro.*, (sro.refObjectId-1)/2%pow(2,10) typeId
2 | from Source s
3 | join RefObjMatch rom using (objectId)
4 | join SimRefObject sro using (refObjectId)
5 | where isStar =1 limit 10
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/1083_refMatch3.sql:
--------------------------------------------------------------------------------
1 | select objectId, sro.*, (sro.refObjectId-1)/2%pow(2,10) typeId
2 | from Source s
3 | join RefObjMatch rom using (objectId)
4 | join SimRefObject sro using (refObjectId)
5 | where isStar =1 limit 10
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/1085_refMatch3.sql:
--------------------------------------------------------------------------------
1 | select objectId, sro.*, (sro.refObjectId-1)/2%pow(2,10) typeId
2 | from Source s
3 | join RefObjMatch rom using (objectId)
4 | join SimRefObject sro using (refObjectId)
5 | where isStar =1 limit 10
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/2005_varObjectsOfOneType.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects of a specific type
2 | -- See http://dev.lsstcorp.org/trac/wiki/dbQuery002
3 |
4 |
5 | -- missing in current schema: variability, probability
6 |
7 | SELECT objectId
8 | FROM Object
9 | JOIN _ObjectToType USING(objectId)
10 | JOIN ObjectType USING (typeId)
11 | WHERE description = 'Supernova'
12 | AND variability > 0.8
13 | AND probability > 0.8
14 |
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/3013_nonexistantTable.sql:
--------------------------------------------------------------------------------
1 |
2 | select count(*) from Sources;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case01/queries/unsupported_tables/README.txt:
--------------------------------------------------------------------------------
1 | Queries found in this folder are referring to tables that do not exist in
2 | the catalog and they may need to be eliminated. It's not clear why the queries
3 | were put here.
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/README.txt:
--------------------------------------------------------------------------------
1 | This test cases contains an extract of PT1.1 Source and Object tables.$
2 | In fact first 1000 objects and theirs associated sources.
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/data/Object.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case02/data/Object.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case02/data/Source.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case02/data/Source.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case02/data/description.yaml:
--------------------------------------------------------------------------------
1 | tables:
2 | directors: ['Object']
3 | partitioned-tables: ['Object', 'Source']
4 | extensions:
5 | data: '.csv'
6 | schema: '.schema'
7 | zip: '.gz'
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/data/ingest/database.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase02",
5 | "auto_build_secondary_index":1,
6 | "local_load_secondary_index":1,
7 | "num_stripes":85,
8 | "num_sub_stripes":12,
9 | "overlap":0.01667
10 | }
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/data/partition/common.json:
--------------------------------------------------------------------------------
1 | {
2 | "htm":{
3 | "level":8
4 | },
5 | "dirDb":"qcase02",
6 | "dirTable":"Object",
7 | "part":{
8 | "num-stripes":85,
9 | "num-sub-stripes":12,
10 | "chunk":"chunkId",
11 | "sub-chunk":"subChunkId",
12 | "default-overlap":0.01667
13 | },
14 | "in":{
15 | "csv":{
16 | "null":"\\N",
17 | "delimiter":","
18 | }
19 | },
20 | "out":{
21 | "csv":{
22 | "null":"\\N",
23 | "delimiter":",",
24 | "escape":"\\",
25 | "no-quote":true
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/0002_fetchObjectByIdNoResult.sql:
--------------------------------------------------------------------------------
1 | -- Find an object with a particular object id
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery009
3 |
4 | -- not working, see ticket #1847
5 |
6 | SELECT *
7 | FROM Object
8 | WHERE objectId = 430213989000
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/0003_selectMetadataForOneGalaxy_withUSING.sql:
--------------------------------------------------------------------------------
1 | -- select the full color image of a single given galaxy
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery006
3 |
4 | -- pragma sortresult
5 | SELECT s.ra, s.decl, o.raRange, o.declRange
6 | FROM Object o
7 | JOIN Source s USING (objectId)
8 | WHERE o.objectId = 433327840428032
9 | -- AND o.latestObsTime = s.taiMidPoint
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1002.1_coneMagColor.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | SELECT COUNT(*) AS OBJ_COUNT
5 | FROM Object
6 | WHERE ra_PS BETWEEN 0.1 AND 4 -- noQserv
7 | AND decl_PS BETWEEN -6 AND 6 -- noQserv
8 | -- withQserv WHERE qserv_areaspec_box(0.1, -6, 4, 6)
9 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
10 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.9
11 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 1.0
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1002.2_coneMagColor.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See https://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- See ticket #2051
5 |
6 |
7 | SELECT COUNT(*) AS OBJ_COUNT
8 | FROM Object
9 | WHERE scisql_s2PtInCircle(ra_PS, decl_PS, 1.2, 3.2, 0.5) = 1 -- noQserv
10 | -- withQserv WHERE qserv_areaspec_circle(1.2, 3.2, 0.5)
11 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
12 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.6
13 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 0.6
14 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1002.3_coneMagColor.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- See ticket #2051
5 |
6 |
7 | SELECT COUNT(*) AS OBJ_COUNT
8 | FROM Object
9 | WHERE scisql_s2PtInEllipse(ra_PS, decl_PS, 1.2, 3.2, 2500, 1500, 0.2) = 1 -- noQserv
10 | -- withQserv WHERE qserv_areaspec_ellipse(1.2, 3.2, 6000, 5000, 0.2)
11 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
12 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.6
13 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 0.6
14 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1002.4_coneMagColor.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- See ticket #2051
5 |
6 | SELECT COUNT(*) AS OBJ_COUNT
7 | FROM Object
8 | WHERE scisql_s2PtInCPoly(ra_PS, decl_PS, 1.0, 3.0, 1.5, 2.0, 2.0, 4.0) = 1 -- noQserv
9 | -- withQserv WHERE qserv_areaspec_poly(1.0, 3.0, 1.5, 2.0, 2.0, 4.0)
10 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
11 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.6
12 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 0.6
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1003_coneMagColorEmptyRes.sql:
--------------------------------------------------------------------------------
1 | -- Cone-magnitude-color search
2 | -- See http://dev.lsstcorp.org/trac/wiki/db/queries/003
3 |
4 | -- See ticket #2051
5 |
6 |
7 | SELECT COUNT(*) AS OBJ_COUNT
8 | FROM Object
9 | WHERE ra_PS BETWEEN 0 AND 4 -- noQserv
10 | AND decl_PS BETWEEN -6 AND -5 -- noQserv
11 | -- withQserv WHERE qserv_areaspec_box(0, -6, 4, -5)
12 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 20 AND 24
13 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) BETWEEN 0.1 AND 0.2
14 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) BETWEEN 0.1 AND 0.2
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.1_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | -- Test support for multiple ORDER BY fields
5 |
6 | SELECT objectId, ra_PS, decl_PS
7 | FROM Object
8 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
9 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
10 | -- withQserv WHERE qserv_areaspec_box(0, 0, 3, 10)
11 | ORDER BY objectId, ra_PS, decl_PS
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.2_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE scisql_s2PtInCircle(ra_PS, decl_PS, 1.5, 3, 1)
7 | ORDER BY objectId
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.3_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE scisql_s2PtInEllipse(ra_PS, decl_PS, 1.5, 3, 3500, 200, 0.5)
7 | ORDER BY objectId
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.4_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE scisql_s2PtInCPoly(ra_PS, decl_PS, 0, 0, 3, 10, 0, 5, 3, 1)
7 | ORDER BY objectId
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.5_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | -- tests combining multiple AND and OR statements
5 |
6 | SELECT objectId
7 | FROM Object
8 | WHERE scisql_s2PtInCircle(ra_PS, decl_PS, 1.5, 3, 1)
9 | AND scisql_s2PtInCircle(ra_PS, decl_PS, 1.6, 3, 1)
10 | OR scisql_s2PtInCircle(ra_PS, decl_PS, 1.4, 3, 1)
11 | ORDER BY objectId
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.6_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | -- tests using a comparison expression with a function in the left side of an AND
5 |
6 | SELECT objectId
7 | FROM Object
8 | WHERE scisql_s2PtInCircle(ra_PS, decl_PS, 1.5, 3, 1) = 1
9 | AND scisql_s2PtInCircle(ra_PS, decl_PS, 1.6, 3, 1)
10 | ORDER BY objectId
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.7_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | -- tests using a comparison expression with a function in the right side of an AND
5 |
6 | SELECT objectId
7 | FROM Object
8 | WHERE scisql_s2PtInCircle(ra_PS, decl_PS, 1.5, 3, 1)
9 | AND scisql_s2PtInCircle(ra_PS, decl_PS, 1.6, 3, 1) = 1
10 | ORDER BY objectId
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004.8_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | -- tests using a comparison expression with a function in both sides of an AND
5 |
6 | SELECT objectId
7 | FROM Object
8 | WHERE scisql_s2PtInCircle(ra_PS, decl_PS, 1.5, 3, 1) = 1
9 | AND scisql_s2PtInCircle(ra_PS, decl_PS, 1.6, 3, 1) = 1
10 | ORDER BY objectId
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1004_varObjects.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects in given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery008
3 |
4 | SELECT objectId
5 | FROM Object
6 | WHERE ra_PS BETWEEN 0 AND 3 -- noQserv
7 | AND decl_PS BETWEEN 0 AND 10 -- noQserv
8 | -- withQserv WHERE qserv_areaspec_box(0, 0, 3, 10)
9 | ORDER BY objectId
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/1051_nn.sql:
--------------------------------------------------------------------------------
1 | -- Find near-neighbor objects in a given region
2 |
3 |
4 | -- See ticket #1840
5 |
6 | -- pragma sortresult
7 |
8 | SELECT o1.objectId AS objId1,
9 | o2.objectId AS objId2,
10 | scisql_angSep(o1.ra_PS, o1.decl_PS, o2.ra_PS, o2.decl_PS) AS distance
11 | FROM Object o1,
12 | Object o2
13 | WHERE o1.ra_PS BETWEEN 1.2 AND 1.3 -- noQserv
14 | AND o1.decl_PS between 3.3 and 3.4 -- noQserv
15 | AND o2.ra_PS BETWEEN 1.2 AND 1.3 -- noQserv
16 | AND o2.decl_PS between 3.3 and 3.4 -- noQserv
17 | -- withQserv WHERE qserv_areaspec_box(1.2, 3.3, 1.3, 3.4)
18 | AND scisql_angSep(o1.ra_PS, o1.decl_PS, o2.ra_PS, o2.decl_PS) < 0.016
19 | AND o1.objectId <> o2.objectId
20 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3001_query_035.sql:
--------------------------------------------------------------------------------
1 | -- Select object based on flux interval
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/queries/013
4 |
5 | -- pragma sortresult
6 | SELECT objectId
7 | FROM Object
8 | WHERE scisql_fluxToAbMag(uFlux_PS)-scisql_fluxToAbMag(gFlux_PS) < 2.0
9 | AND scisql_fluxToAbMag(gFlux_PS)-scisql_fluxToAbMag(rFlux_PS) < 0.1
10 | AND scisql_fluxToAbMag(rFlux_PS)-scisql_fluxToAbMag(iFlux_PS) > -0.8
11 | AND scisql_fluxToAbMag(iFlux_PS)-scisql_fluxToAbMag(zFlux_PS) < 1.4
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3005_objectCount.sql:
--------------------------------------------------------------------------------
1 | -- Count the number of Objects
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 |
4 | SELECT count(*) AS OBJ_COUNT FROM Object
5 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3006_selectIntervalMagnitudes.sql:
--------------------------------------------------------------------------------
1 | -- Select object with Magnitude in intervals
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/queries/013
4 |
5 | SELECT count(*) AS OBJ_COUNT
6 | FROM Object
7 | WHERE ra_PS BETWEEN 1.28 AND 1.38
8 | AND decl_PS BETWEEN 3.18 AND 3.34
9 | AND scisql_fluxToAbMag(zFlux_PS)
10 | BETWEEN 21 AND 21.5
11 | AND scisql_fluxToAbMag(gFlux_PS)
12 | - scisql_fluxToAbMag(rFlux_PS)
13 | BETWEEN 0.3 AND 0.4
14 | AND scisql_fluxToAbMag(iFlux_PS)
15 | - scisql_fluxToAbMag(zFlux_PS)
16 | BETWEEN 0.1 AND 0.12
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3007_countObjectWithColorFluxGreaterThan.sql:
--------------------------------------------------------------------------------
1 | -- Count the number of object with a color flux greater than a constant
2 | -- See https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/queries/026
4 |
5 | SELECT COUNT(*) AS OBJ_COUNT
6 | FROM Object
7 | WHERE gFlux_PS>1e-25
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3008_selectObjectWithColorMagnitudeGreaterThan.sql:
--------------------------------------------------------------------------------
1 | -- Select object with IZ magnitude greater than a constant
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/queries/051
4 |
5 | -- pragma sortresult
6 | SELECT objectId, ra_PS, decl_PS,
7 | uFlux_PS, gFlux_PS, rFlux_PS,
8 | iFlux_PS, zFlux_PS, yFlux_PS
9 | FROM Object
10 | WHERE scisql_fluxToAbMag(iFlux_PS)
11 | - scisql_fluxToAbMag(zFlux_PS) > 0.08
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3009_countObjectInRegionWithZFlux.sql:
--------------------------------------------------------------------------------
1 | -- Count object in a region with ZFlux in a given interval
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/queries/020
4 |
5 | SELECT count(*) AS OBJ_COUNT
6 | FROM Object
7 | WHERE ra_PS BETWEEN 1.28 AND 1.38
8 | AND decl_PS BETWEEN 3.18 AND 3.34
9 | AND scisql_fluxToAbMag(zFlux_PS) BETWEEN 21 and 21.5
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3011_selectObjectWithMagnitudes.sql:
--------------------------------------------------------------------------------
1 | -- Select object with magnitudes between 20 and 24
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/Qserv/OptimalPartitionSize
4 |
5 | -- pragma sortresult
6 | SELECT objectId, ra_PS, decl_PS,
7 | scisql_fluxToAbMag(zFlux_PS) AS fluxToAbMag
8 | FROM Object
9 | WHERE scisql_fluxToAbMag(zFlux_PS)
10 | BETWEEN 20 AND 24
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3011_selectObjectWithMagnitudes_noalias.sql:
--------------------------------------------------------------------------------
1 | -- Select object with magnitudes between 20 and 24
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/Qserv/OptimalPartitionSize
4 |
5 | -- pragma noheader sortresult
6 | SELECT objectId, ra_PS, decl_PS,
7 | scisql_fluxToAbMag(zFlux_PS)
8 | FROM Object
9 | WHERE scisql_fluxToAbMag(zFlux_PS)
10 | BETWEEN 20 AND 24
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3012_selectObjectInCircularRegion.sql:
--------------------------------------------------------------------------------
1 | -- Select object in a circular region
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 |
4 |
5 | SELECT count(*) AS OBJ_COUNT
6 | FROM Object
7 | WHERE scisql_angSep(ra_PS, decl_PS, 1.2, 3.2) < 0.2
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3013_joinObjectSourceInRegion_withUSING.sql:
--------------------------------------------------------------------------------
1 | -- Join Object/Source for all object in a region
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/ticket/2052
4 |
5 | -- pragma sortresult
6 | SELECT objectId
7 | FROM Source
8 | JOIN Object USING(objectId)
9 | WHERE ra_PS BETWEEN 1.28 AND 1.38
10 | AND decl_PS BETWEEN 3.18 AND 3.34
11 |
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3014_joinObjectSourceTimeInterval_withUSING.sql:
--------------------------------------------------------------------------------
1 | -- Join Object and Source on a given object and for a given time interval
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/queries/006
4 |
5 | -- pragma sortresult
6 | SELECT s.ra, s.decl
7 | FROM Object o
8 | JOIN Source s
9 | USING (objectId)
10 | WHERE o.objectId = 433327840429024
11 | AND o.latestObsTime BETWEEN s.taiMidPoint - 300 AND s.taiMidPoint + 300
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3020.2_selectObjectWithLimit.sql:
--------------------------------------------------------------------------------
1 | -- Select 10 object in a given area
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Base on https://dev.lsstcorp.org/trac/wiki/db/Qserv/Limitations
4 |
5 | SELECT *
6 | FROM Object
7 | WHERE scisql_s2PtInBox(ra_PS,decl_PS,1,3,2,4)
8 | LIMIT 10;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3020_selectObjectWithLimit.sql:
--------------------------------------------------------------------------------
1 | -- Select 10 object in a given area
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Base on https://dev.lsstcorp.org/trac/wiki/db/Qserv/Limitations
4 |
5 | SELECT *
6 | FROM Object
7 | WHERE ra_PS BETWEEN 1 AND 2
8 | AND decl_PS BETWEEN 3 AND 4
9 | LIMIT 10;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3021.1_selectObjectSortedByRA.sql:
--------------------------------------------------------------------------------
1 | -- Select objects in a given area sorted by right ascension
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Base on https://dev.lsstcorp.org/trac/ticket/2051
4 |
5 | -- Note: Qserv requires that columns used in ORDER BY be explicitly
6 | -- mentioned in the SELECT list. Otherwise the query would fail the
7 | -- query analysis.
8 | -- Also note the area strictor function used to limit the spatial area
9 | -- inspected by the query.
10 |
11 | SELECT ra_PS,decl_PS
12 | FROM Object
13 | WHERE scisql_s2PtInBox(ra_PS,decl_PS,1.28,1.38,3.18,3.34)
14 | ORDER BY ra_PS;
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3022_selectCountObjectInBox.sql:
--------------------------------------------------------------------------------
1 | SELECT COUNT(*)
2 | FROM Object
3 | WHERE scisql_s2PtInBox(ra_PS,decl_PS,1,3,2,4);
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/3023_selectCountSourceInBox.sql:
--------------------------------------------------------------------------------
1 | SELECT COUNT(*)
2 | FROM Source
3 | WHERE scisql_s2PtInBox(ra,decl,1,3,2,4);
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/8003_areaWithLimitClause.sql:
--------------------------------------------------------------------------------
1 | -- This is testing syntax (limit after areaspec)
2 |
3 | -- See ticket #2200
4 |
5 | SELECT COUNT(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 355 AND 356 -- noQserv
8 | AND decl_PS BETWEEN 0 AND 1 -- noQserv
9 | -- withQserv WHERE qserv_areaspec_box(355, 0, 356, 1)
10 | LIMIT 10
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_by_mysql/3010_countObjectPerChunks.sql:
--------------------------------------------------------------------------------
1 | -- Count object per Chunks
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- Based on https://dev.lsstcorp.org/trac/wiki/db/Qserv/250Development
4 |
5 | -- Note: chunkId field is not in MySQL tables. The query is still
6 | -- a valid Qserv query.
7 |
8 | SELECT count(*) AS n,
9 | AVG(ra_PS),
10 | AVG(decl_PS),
11 | objectId,
12 | chunkId
13 | FROM Object
14 | GROUP BY chunkId
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_by_mysql/3020.1_selectObjectWithLimit.sql:
--------------------------------------------------------------------------------
1 | -- This query can't be executed by MySQL since it's relying on the Qserv-specific
2 | -- area restrictor. The restrictor seem to be obsolete as it can be
3 | -- replaced with the functionally equivalent SciSQL stored orocedure that's also
4 | -- supported in MySQL: scisql_s2PtInBox(ra_PS,decl_PS,1,3,2,4)
5 |
6 | -- Select 10 object in a given area
7 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
8 | -- Base on https://dev.lsstcorp.org/trac/wiki/db/Qserv/Limitations
9 |
10 | SELECT *
11 | FROM Object
12 | WHERE qserv_areaspec_box(1,3,2,4)
13 | LIMIT 10;
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_by_mysql/README.txt:
--------------------------------------------------------------------------------
1 | The folder containers queries that are perfetly valid for Qserv, and which
2 | can't be executed in MySQL. See details in each query description.
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_columns/0006_transientVarObjNearGalaxy.sql:
--------------------------------------------------------------------------------
1 | -- Select transient variable objects near a known galaxy
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery015
3 |
4 | -- we don't have variability and extendedParamer columns
5 |
6 | SELECT v.objectId, v.ra, v.decl
7 | FROM Object v, Object o
8 | WHERE o.objectId = :objectId
9 | AND spDist(v.ra, v.decl, o.ra, o.decl, :dist)
10 | AND v.variability > 0.8
11 | AND o.extendedParameter > 0.8
12 |
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_columns/1005_allGalaxiesInArea.sql:
--------------------------------------------------------------------------------
1 | -- Select all galaxies in a given area
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery014
3 |
4 | -- Missing in current schema: extendedParameter
5 |
6 | SELECT objectId
7 | FROM Object
8 | WHERE ra_PS BETWEEN :raMin AND :raMax -- noQserv
9 | AND decl_PS BETWEEN :declMin AND :declMax -- noQserv
10 | -- withQserv WHERE qserv_areaspec_box(:raMin, :declMin, :raMax, :declMax)
11 | AND extendedParameter > 0.8
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_columns/README.txt:
--------------------------------------------------------------------------------
1 | Queries found in this folder are referring to columns that do not exist in
2 | existingt tables of the catalog and they may need to be eliminated. It's not
3 | clear why the queries were put here.
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_syntax/1012_orderByClause.sql:
--------------------------------------------------------------------------------
1 | -- The query syntax is not supported in Qserv:
2 | -- ERROR 4110 (Proxy): Query processing error: QI=?: Failed to instantiate query: ParseException:Error parsing query, near "ABS(iE1_SG)", qserv does not support functions in ORDER BY.
3 |
4 | -- Just testing ORDER BY
5 | -- (This query does not have real scientific meaning..)
6 |
7 | SELECT objectId, iE1_SG, ABS(iE1_SG)
8 | FROM Object
9 | WHERE iE1_SG between -0.1 and 0.1
10 | ORDER BY ABS(iE1_SG);
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_syntax/1013_orderByClauseRounded.sql:
--------------------------------------------------------------------------------
1 | -- The query syntax is not supported in Qserv:
2 | -- ERROR 4110 (Proxy): Query processing error: QI=?: Failed to instantiate query: ParseException:Error parsing query, near "ROUND(ABS(iE1_SG),3)", qserv does not support functions in ORDER BY.
3 |
4 | -- Variation of the previous query, with "round"
5 | -- (This query does not have real scientific meaning..)
6 |
7 | SELECT objectId, ROUND(iE1_SG, 3), ROUND(ABS(iE1_SG), 3)
8 | FROM Object
9 | WHERE iE1_SG between -0.1 and 0.1
10 | ORDER BY ROUND(ABS(iE1_SG), 3);
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_syntax/2006_randomSample.sql:
--------------------------------------------------------------------------------
1 | -- The query is referring to the non-existsing placeholder ':percentage'
2 |
3 | -- Random sample of the dataq
4 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery004
5 |
6 |
7 | SELECT fluxToAbMag(uFlux_PS),
8 | fluxToAbMag(gFlux_PS),
9 | fluxToAbMag(rFlux_PS),
10 | fluxToAbMag(iFlux_PS),
11 | fluxToAbMag(zFlux_PS),
12 | fluxToAbMag(yFlux_PS)
13 | FROM Object
14 | WHERE (objectId % 100 ) = :percentage
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_syntax/8001_badLiteral.sql:
--------------------------------------------------------------------------------
1 |
2 |
3 | -- note wrong literal: "35 .1" instead of "35.1"
4 |
5 | SELECT count(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 35 AND 35 .1 -- noQserv
8 | AND decl_PS BETWEEN 6 AND 6.0001 -- noQserv
9 | -- withQserv WHERE qserv_areaSpec_box(35, 6, 35 .1, 6.0001);
10 |
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_syntax/8002_badLiteral.sql:
--------------------------------------------------------------------------------
1 |
2 |
3 | -- note wrong literal: "35. 1" instead of "35.1"
4 |
5 | SELECT count(*)
6 | FROM Object
7 | WHERE ra_PS BETWEEN 35 AND 35. 1 -- noQserv
8 | AND decl_PS BETWEEN 6 AND 6.0001 -- noQserv
9 | -- withQserv WHERE qserv_areaSpec_box(35, 6, 35. 1, 6.0001);
10 |
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_syntax/README.txt:
--------------------------------------------------------------------------------
1 | Queries in this folder are based on the SQL syntax that is not presently
2 | supported by Qserv.
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/1011_objectsForExposure.sql:
--------------------------------------------------------------------------------
1 | -- joins, but for limited number of visits
2 | -- sort by is here purely so that we can compare results from mysql and qserv
3 |
4 | SELECT objectId
5 | FROM Source s
6 | JOIN Science_Ccd_Exposure sce USING (scienceCcdExposureId)
7 | WHERE sce.visit IN (885449631,886257441,886472151) ORDER BY objectId LIMIT 10
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/1030_timeSeries.sql:
--------------------------------------------------------------------------------
1 | -- Select time series data for all objects
2 | -- in a given area of the sky,
3 | -- in a given photometric band
4 | -- Similar query: http://dev.lsstcorp.org/trac/wiki/dbQuery007
5 |
6 | -- See ticket #2052
7 |
8 | SELECT objectId, taiMidPoint, scisql_fluxToAbMag(psfFlux)
9 | FROM Source
10 | JOIN Object USING(objectId)
11 | JOIN Filter USING(filterId)
12 | WHERE ra_PS BETWEEN 355 AND 360 -- noQserv
13 | and decl_PS BETWEEN 0 AND 20 -- noQserv
14 | -- withQserv WHERE qserv_areaspec_box(355, 0, 360, 20)
15 | AND filterName = 'g'
16 | ORDER BY objectId, taiMidPoint ASC
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/1031_newTransientsForEpoch.sql:
--------------------------------------------------------------------------------
1 | -- Find new transients for a given epoch
2 | -- http://dev.lsstcorp.org/trac/wiki/dbQuery005
3 |
4 | -- Missing in current schema: Alert table
5 |
6 | SELECT objectId
7 | FROM Alert
8 | JOIN _Alert2Type USING (alertId)
9 | JOIN AlertType USING (alertTypeId)
10 | WHERE alertTypeDescr = 'newTransients'
11 | AND Alert.timeGenerated BETWEEN :timeMin AND :timeMax
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/1081_refMatch2.sql:
--------------------------------------------------------------------------------
1 | SELECT count(*)
2 | FROM Object o
3 | INNER JOIN RefObjMatch o2t ON (o.objectId = o2t.objectId)
4 | LEFT JOIN SimRefObject t ON (o2t.refObjectId = t.refObjectId)
5 | WHERE closestToObj = 1
6 | OR closestToObj is NULL
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/1083_refMatch3.sql:
--------------------------------------------------------------------------------
1 | select objectId, sro.*, (sro.refObjectId-1)/2%pow(2,10) typeId
2 | from Source s
3 | join RefObjMatch rom using (objectId)
4 | join SimRefObject sro using (refObjectId)
5 | where isStar =1 limit 10
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/2005_varObjectsOfOneType.sql:
--------------------------------------------------------------------------------
1 | -- Select all variable objects of a specific type
2 | -- See http://dev.lsstcorp.org/trac/wiki/dbQuery002
3 |
4 |
5 | -- missing in current schema: variability, probability
6 |
7 | SELECT objectId
8 | FROM Object
9 | JOIN _ObjectToType USING(objectId)
10 | JOIN ObjectType USING (typeId)
11 | WHERE description = 'Supernova'
12 | AND variability > 0.8
13 | AND probability > 0.8
14 |
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/3023_joinObjectSourceFilter.sql:
--------------------------------------------------------------------------------
1 | -- Join on Source and Filter and select specific filter in region
2 | -- https://dev.lsstcorp.org/trac/wiki/db/Qserv/IN2P3/BenchmarkMarch2013
3 | -- https://dev.lsstcorp.org/trac/wiki/db/queries/007
4 |
5 | SELECT objectId, taiMidPoint, fluxToAbMag(psfMag)
6 | FROM Source
7 | JOIN Object USING(objectId)
8 | JOIN Filter USING(filterId)
9 | WHERE ra_PS BETWEEN 1 AND 2 -- noQserv
10 | AND decl_PS BETWEEN 3 AND 4 -- noQserv
11 | -- withQserv qserv_areaspec_box(1,3,2,4)
12 | AND filterName = 'u'
13 | AND variability BETWEEN 0 AND 2
14 | ORDER BY objectId, taiMidPoint
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case02/queries/unsupported_tables/README.txt:
--------------------------------------------------------------------------------
1 | Queries found in this folder are referring to tables that do not exist in
2 | the catalog and they may need to be eliminated. It's not clear why the queries
3 | were put here.
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/AvgForcedPhot.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/AvgForcedPhot.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/AvgForcedPhotYearly.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/AvgForcedPhotYearly.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/DeepCoadd.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/DeepCoadd.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/DeepCoadd_Metadata.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/DeepCoadd_Metadata.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/DeepCoadd_To_Htm10.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/DeepCoadd_To_Htm10.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/Filter.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/Filter.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/LeapSeconds.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/LeapSeconds.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/RefDeepSrcMatch.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/RefDeepSrcMatch.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/RefObject.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/RefObject.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/RunDeepForcedSource.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/RunDeepForcedSource.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/RunDeepSource.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/RunDeepSource.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/Science_Ccd_Exposure.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/Science_Ccd_Exposure.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/Science_Ccd_Exposure_Metadata.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/Science_Ccd_Exposure_Metadata.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/Science_Ccd_Exposure_Metadata_coadd_r.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/Science_Ccd_Exposure_Metadata_coadd_r.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/Science_Ccd_Exposure_To_Htm10_coadd_r.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/Science_Ccd_Exposure_To_Htm10_coadd_r.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/Science_Ccd_Exposure_coadd_r.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/Science_Ccd_Exposure_coadd_r.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ZZZ_Db_Description.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case03/data/ZZZ_Db_Description.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/DeepCoadd_Metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"DeepCoadd_Metadata",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"deepCoaddId", "type":"bigint(20) NOT NULL"},
9 | {"name":"metadataKey", "type":"varchar(255) NOT NULL"},
10 | {"name":"exposureType", "type":"tinyint(4) NOT NULL"},
11 | {"name":"intValue", "type":"int(11) DEFAULT NULL"},
12 | {"name":"doubleValue", "type":"double DEFAULT NULL"},
13 | {"name":"stringValue", "type":"varchar(255) DEFAULT NULL"}
14 | ],
15 | "fields_terminated_by":","
16 | }
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/DeepCoadd_To_Htm10.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"DeepCoadd_To_Htm10",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"deepCoaddId", "type":"bigint(20) NOT NULL"},
9 | {"name":"htmId10", "type":"int(11) NOT NULL"}
10 | ],
11 | "fields_terminated_by":","
12 | }
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/Filter.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"Filter",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"filterId", "type":"tinyint(4) NOT NULL"},
9 | {"name":"filterName", "type":"char(3) NOT NULL"},
10 | {"name":"photClam", "type":"float NOT NULL"},
11 | {"name":"photBW", "type":"float NOT NULL"}
12 | ],
13 | "fields_terminated_by":","
14 | }
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/LeapSeconds.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"LeapSeconds",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"whenJd", "type":"float NOT NULL"},
9 | {"name":"offset", "type":"float NOT NULL"},
10 | {"name":"mjdRef", "type":"float NOT NULL"},
11 | {"name":"drift", "type":"float NOT NULL"},
12 | {"name":"whenMjdUtc", "type":"float DEFAULT NULL"},
13 | {"name":"whenUtc", "type":"bigint(20) DEFAULT NULL"},
14 | {"name":"whenTai", "type":"bigint(20) DEFAULT NULL"}
15 | ],
16 | "fields_terminated_by":","
17 | }
18 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/Science_Ccd_Exposure_Metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"Science_Ccd_Exposure_Metadata",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"scienceCcdExposureId", "type":"bigint(20) NOT NULL"},
9 | {"name":"metadataKey", "type":"varchar(255) NOT NULL"},
10 | {"name":"exposureType", "type":"tinyint(4) NOT NULL"},
11 | {"name":"intValue", "type":"int(11) DEFAULT NULL"},
12 | {"name":"doubleValue", "type":"double DEFAULT NULL"},
13 | {"name":"stringValue", "type":"varchar(255) DEFAULT NULL"}
14 | ],
15 | "fields_terminated_by":","
16 | }
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/Science_Ccd_Exposure_Metadata_coadd_r.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"Science_Ccd_Exposure_Metadata_coadd_r",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"scienceCcdExposureId", "type":"bigint(20) NOT NULL"},
9 | {"name":"metadataKey", "type":"varchar(255) NOT NULL"},
10 | {"name":"exposureType", "type":"tinyint(4) NOT NULL"},
11 | {"name":"intValue", "type":"int(11) DEFAULT NULL"},
12 | {"name":"doubleValue", "type":"double DEFAULT NULL"},
13 | {"name":"stringValue", "type":"varchar(255) DEFAULT NULL"}
14 | ],
15 | "fields_terminated_by":","
16 | }
17 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/Science_Ccd_Exposure_To_Htm10_coadd_r.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"Science_Ccd_Exposure_To_Htm10_coadd_r",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"scienceCcdExposureId", "type":"bigint(20) NOT NULL"},
9 | {"name":"htmId10", "type":"int(11) NOT NULL"}
10 | ],
11 | "fields_terminated_by":","
12 | }
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/ZZZ_Db_Description.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "table":"ZZZ_Db_Description",
6 | "is_partitioned":0,
7 | "schema":[
8 | {"name":"f", "type":"varchar(255) DEFAULT NULL"},
9 | {"name":"r", "type":"varchar(255) DEFAULT NULL"}
10 | ],
11 | "fields_terminated_by":","
12 | }
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/ingest/database.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase03",
5 | "auto_build_secondary_index":1,
6 | "local_load_secondary_index":1,
7 | "num_stripes":85,
8 | "num_sub_stripes":14,
9 | "overlap":0.001
10 | }
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/partition/DeepForcedSource.cfg.view.TODO:
--------------------------------------------------------------------------------
1 | # ============================================
2 | # W13 DeepForcedSource view configuration file
3 | # ============================================
4 |
5 | # TODO: DM-1728
6 |
7 | # Table primary key column.
8 | id = deepForcedSourceId
9 |
10 | # Partitioning parameters.
11 | part = {
12 | # The partitioning position is the object's point-source model position.
13 | pos = 'ra, decl'
14 | # Overlap radius in degrees.
15 | overlap = 0
16 | subChunks = 0
17 | }
18 |
19 | dirColName = "TODO"
20 |
21 | in.csv = {
22 | # List of table column names, in order of occurrence.
23 | field = [
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/partition/DeepForcedSource.json.view.TODO-DM-1728:
--------------------------------------------------------------------------------
1 | {
2 | "id":"deepForcedSourceId",
3 | "part":{
4 | "pos":"ra, decl",
5 | "overlap":0,
6 | "subChunks":0
7 | },
8 | "dirColName":"TODO",
9 | "in":{
10 | "csv":{
11 | "field":[
12 | ]
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/partition/DeepSource.cfg.view.TODO:
--------------------------------------------------------------------------------
1 | # ======================================
2 | # W13 DeepSource view configuration file
3 | # ======================================
4 |
5 | # TODO: DM-1728
6 |
7 | # Table primary key column.
8 | id = id
9 |
10 | # Partitioning parameters.
11 | part = {
12 | # The partitioning position is the object's point-source model position.
13 | pos = 'coord_ra, coord_decl'
14 | # Overlap radius in degrees.
15 | overlap = 0
16 | subChunks = 0
17 | }
18 |
19 | dirColName = "TODO"
20 |
21 | in.csv = {
22 | # List of table column names, in order of occurrence.
23 | field = [
24 | #TODO
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/partition/DeepSource.json.view.TODO-DM-1728:
--------------------------------------------------------------------------------
1 | {
2 | "id":"id",
3 | "part":{
4 | "pos":"coord_ra, coord_decl",
5 | "overlap":0,
6 | "subChunks":0
7 | },
8 | "dirColName":"TODO",
9 | "in":{
10 | "csv":{
11 | "field":[
12 | ]
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/partition/RefDeepSrcMatch.json:
--------------------------------------------------------------------------------
1 | {
2 | "part":{
3 | "pos1":"ra, decl",
4 | "pos2":"coord_ra, coord_decl",
5 | "flags":"flags"
6 | },
7 | "in":{
8 | "csv":{
9 | "field":[
10 | "ra",
11 | "decl",
12 | "coord_ra",
13 | "coord_decl",
14 | "refObjectId",
15 | "deepSourceId",
16 | "angSep",
17 | "nRefMatches",
18 | "nSrcMatches",
19 | "closestToRef",
20 | "closestToSrc",
21 | "flags"
22 | ]
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/partition/common.json:
--------------------------------------------------------------------------------
1 | {
2 | "htm":{
3 | "level":8
4 | },
5 | "dirDb":"qcase03",
6 | "dirTable":"RunDeepSource",
7 | "part":{
8 | "num-stripes":85,
9 | "num-sub-stripes":14,
10 | "overlap": 0.001,
11 | "chunk":"chunkId",
12 | "sub-chunk":"subChunkId"
13 | },
14 | "in":{
15 | "csv":{
16 | "null":"\\N",
17 | "delimiter":",",
18 | "escape":"\\"
19 | }
20 | },
21 | "out":{
22 | "csv":{
23 | "null":"\\N",
24 | "delimiter":",",
25 | "escape":"\\",
26 | "no-quote":true
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/DeepCoadd_Metadata.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `DeepCoadd_Metadata` (
2 | `deepCoaddId` bigint(20) NOT NULL,
3 | `metadataKey` varchar(255) NOT NULL,
4 | `exposureType` tinyint(4) NOT NULL,
5 | `intValue` int(11) DEFAULT NULL,
6 | `doubleValue` double DEFAULT NULL,
7 | `stringValue` varchar(255) DEFAULT NULL,
8 | PRIMARY KEY (`deepCoaddId`,`metadataKey`),
9 | KEY `IDX_metadataKey` (`metadataKey`)
10 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/DeepCoadd_To_Htm10.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `DeepCoadd_To_Htm10` (
2 | `deepCoaddId` bigint(20) NOT NULL,
3 | `htmId10` int(11) NOT NULL,
4 | KEY `IDX_htmId10` (`htmId10`),
5 | KEY `IDX_deepCoaddId` (`deepCoaddId`)
6 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/Filter.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `Filter` (
2 | `filterId` tinyint(4) NOT NULL,
3 | `filterName` char(3) NOT NULL,
4 | `photClam` float NOT NULL,
5 | `photBW` float NOT NULL,
6 | PRIMARY KEY (`filterId`)
7 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/LeapSeconds.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `LeapSeconds` (
2 | `whenJd` float NOT NULL,
3 | `offset` float NOT NULL,
4 | `mjdRef` float NOT NULL,
5 | `drift` float NOT NULL,
6 | `whenMjdUtc` float DEFAULT NULL,
7 | `whenUtc` bigint(20) DEFAULT NULL,
8 | `whenTai` bigint(20) DEFAULT NULL
9 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/Science_Ccd_Exposure_Metadata.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `Science_Ccd_Exposure_Metadata` (
2 | `scienceCcdExposureId` bigint(20) NOT NULL,
3 | `metadataKey` varchar(255) NOT NULL,
4 | `exposureType` tinyint(4) NOT NULL,
5 | `intValue` int(11) DEFAULT NULL,
6 | `doubleValue` double DEFAULT NULL,
7 | `stringValue` varchar(255) DEFAULT NULL,
8 | PRIMARY KEY (`scienceCcdExposureId`,`metadataKey`),
9 | KEY `IDX_metadataKey` (`metadataKey`)
10 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/Science_Ccd_Exposure_Metadata_coadd_r.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `Science_Ccd_Exposure_Metadata_coadd_r` (
2 | `scienceCcdExposureId` bigint(20) NOT NULL,
3 | `metadataKey` varchar(255) NOT NULL,
4 | `exposureType` tinyint(4) NOT NULL,
5 | `intValue` int(11) DEFAULT NULL,
6 | `doubleValue` double DEFAULT NULL,
7 | `stringValue` varchar(255) DEFAULT NULL,
8 | PRIMARY KEY (`scienceCcdExposureId`,`metadataKey`),
9 | KEY `IDX_metadataKey` (`metadataKey`)
10 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/Science_Ccd_Exposure_To_Htm10_coadd_r.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `Science_Ccd_Exposure_To_Htm10_coadd_r` (
2 | `scienceCcdExposureId` bigint(20) NOT NULL,
3 | `htmId10` int(11) NOT NULL,
4 | KEY `IDX_htmId10` (`htmId10`),
5 | KEY `IDX_scienceCcdExposureId` (`scienceCcdExposureId`)
6 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/data/schema/ZZZ_Db_Description.schema:
--------------------------------------------------------------------------------
1 | CREATE TABLE `ZZZ_Db_Description` (
2 | `f` varchar(255) DEFAULT NULL,
3 | `r` varchar(255) DEFAULT NULL
4 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
5 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0002.0_fetchRunAndFieldById.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT distinct run, field
4 | FROM Science_Ccd_Exposure
5 | WHERE (run = 94) AND (field = 535);
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0002.1.1_fetchRunAndFieldById.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.filterName like '%')
6 | AND (sce.field = 535)
7 | AND (sce.camcol like '%')
8 | AND (sce.run = 94);
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0002.1_fetchRunAndFieldById.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE sce.filterName like '%'
6 | AND sce.field = 535
7 | AND sce.camcol like '%'
8 | AND sce.run = 94;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0002.2.1_fetchRunAndFieldById.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- note, filterName is selected twice, is that needed???
4 | -- see #2758, it is confusing qserv
5 | SELECT sce.scienceCcdExposureId, sce.filterName, sce.field, sce.camcol, sce.run,
6 | sce.filterId, sce.ra, sce.decl, sce.crpix1, sce.crpix2,
7 | sce.crval1, sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2,
8 | sce.fluxMag0, sce.fluxMag0Sigma, sce.fwhm
9 | FROM Science_Ccd_Exposure AS sce
10 | WHERE (sce.filterName = 'g')
11 | AND (sce.field = 535)
12 | AND (sce.camcol = 1)
13 | AND (sce.run = 94);
14 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0002.2_fetchRunAndFieldById.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- note, filterName is selected twice, is that needed???
4 | -- see #2758, it is confusing qserv
5 |
6 | SELECT sce.scienceCcdExposureId, sce.filterName, sce.field, sce.camcol, sce.run,
7 | sce.filterId, sce.ra, sce.decl, sce.crpix1, sce.crpix2,
8 | sce.crval1, sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2,
9 | sce.fluxMag0, sce.fluxMag0Sigma, sce.fwhm
10 | FROM Science_Ccd_Exposure AS sce
11 | WHERE sce.filterName = 'g'
12 | AND sce.field = 535
13 | AND sce.camcol = 1
14 | AND sce.run = 94;
15 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0002_fetchRunAndFieldById.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT DISTINCT run, field
4 | FROM Science_Ccd_Exposure
5 | WHERE run = 94 AND field = 535;
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0005_showColumnsFromRefObject.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- Exclude special columns added by the partitioner and the Qserv ingest system.
4 | -- If the query wouldn't be restricted the integration test would fail.
5 | SHOW COLUMNS FROM RefObject WHERE Field NOT IN ('qserv_trans_id','chunkId','subChunkId');
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0006.1_selectExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.filterName = 'g')
6 | AND (sce.field = 670)
7 | AND (sce.camcol = 2)
8 | AND (sce.run = 7202)
9 | ;
10 |
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0006_selectExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE sce.filterName = 'g'
6 | AND sce.field = 670
7 | AND sce.camcol = 2
8 | AND sce.run = 7202
9 | ;
10 |
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0009.1_selectCCDExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterId, sce.filterName
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.filterName = 'g')
6 | AND (sce.field = 670)
7 | AND (sce.camcol = 2)
8 | AND (sce.run = 7202)
9 | ;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0009_selectCCDExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterId, sce.filterName
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE sce.filterName = 'g'
6 | AND sce.field = 670
7 | AND sce.camcol = 2
8 | AND sce.run = 7202
9 | ;
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0011_selectDeepCoadd.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- pragma sortresult
4 | SELECT DISTINCT tract,patch,filterName
5 | FROM DeepCoadd
6 | ;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0012.1_selectDistinctDeepCoaddWithGivenTractPatchFiltername.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT DISTINCT tract, patch, filterName
4 | FROM DeepCoadd
5 | WHERE (tract = 0)
6 | AND (patch = '159,2')
7 | AND (filterName = 'r');
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0012_selectDistinctDeepCoaddWithGivenTractPatchFiltername.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- pragma sortresult
4 | SELECT DISTINCT tract, patch, filterName
5 | FROM DeepCoadd
6 | WHERE tract = 0
7 | AND patch = '159,2'
8 | AND filterName = 'r';
9 |
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0013.1_selectDeepCoadd2.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.tract, sce.patch
4 | FROM DeepCoadd AS sce
5 | WHERE (sce.filterName = 'r')
6 | AND (sce.tract = 0)
7 | AND (sce.patch = '159,3');
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0013_selectDeepCoadd2.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- pragma sortresult
4 | SELECT sce.filterName, sce.tract, sce.patch
5 | FROM DeepCoadd AS sce
6 | WHERE sce.filterName = 'r'
7 | AND sce.tract = 0
8 | AND sce.patch = '159,3';
9 |
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0014.1_selectDeepCoadd3.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.DeepCoaddId, sce.filterName, sce.tract, sce.patch, sce.filterId,
4 | sce.ra, sce.decl, sce.crpix1, sce.crpix2, sce.crval1,
5 | sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2, sce.fluxMag0,
6 | sce.fluxMag0Sigma, sce.measuredFwhm
7 | FROM DeepCoadd AS sce
8 | WHERE (sce.filterName = 'r')
9 | AND (sce.tract = 0)
10 | AND (sce.patch = '159,2');
11 |
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0014.3_selectDeepCoadd3.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.DeepCoaddId, sce.filterName, sce.tract, sce.patch, sce.filterId,
4 | sce.filterName AS filterName_1, sce.ra, sce.decl, sce.crpix1, sce.crpix2, sce.crval1,
5 | sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2, sce.fluxMag0,
6 | sce.fluxMag0Sigma, sce.measuredFwhm
7 | FROM DeepCoadd AS sce
8 | WHERE (sce.filterName = 'r')
9 | AND (sce.tract = 0)
10 | AND (sce.patch = '159,2');
11 |
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0014_selectDeepCoadd3.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- pragma sortresult
4 | SELECT sce.DeepCoaddId, sce.filterName, sce.tract, sce.patch, sce.filterId,
5 | sce.ra, sce.decl, sce.crpix1, sce.crpix2, sce.crval1,
6 | sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2, sce.fluxMag0,
7 | sce.fluxMag0Sigma, sce.measuredFwhm
8 | FROM DeepCoadd AS sce
9 | WHERE sce.filterName = 'r'
10 | AND sce.tract = 0
11 | AND sce.patch = '159,2';
12 |
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0018.1_selectDeepCoaddWithGivenTractPatchFiltername.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterId, sce.filterName
4 | FROM DeepCoadd AS sce
5 | WHERE (sce.filterName = 'r')
6 | AND (sce.tract = 0)
7 | AND (sce.patch = '159,1');
8 |
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0018_selectDeepCoaddWithGivenTractPatchFiltername.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | -- pragma sortresult
4 | SELECT sce.filterId, sce.filterName
5 | FROM DeepCoadd AS sce
6 | WHERE sce.filterName = 'r'
7 | AND sce.tract = 0
8 | AND sce.patch = '159,1';
9 |
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0021.1_selectScienceCCDExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT distinct run, field
4 | FROM Science_Ccd_Exposure
5 | WHERE run = 94
6 | AND field = 535;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0021_selectScienceCCDExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT distinct run, field
4 | FROM Science_Ccd_Exposure
5 | WHERE (run = 94)
6 | AND (field = 535);
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0022.1_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.filterName like '%')
6 | AND (sce.field = 535)
7 | AND (sce.camcol like '%')
8 | AND (sce.run = 94);
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0022_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE sce.filterName like '%'
6 | AND sce.field = 535
7 | AND sce.camcol like '%'
8 | AND sce.run = 94;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0023.1_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.scienceCcdExposureId, sce.field, sce.camcol, sce.run,
4 | sce.filterId, sce.filterName, sce.ra, sce.decl, sce.crpix1, sce.crpix2,
5 | sce.crval1, sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2,
6 | sce.fluxMag0, sce.fluxMag0Sigma, sce.fwhm
7 | FROM Science_Ccd_Exposure AS sce
8 | WHERE (sce.filterName = 'g')
9 | AND (sce.field = 535)
10 | AND (sce.camcol = 1)
11 | AND (sce.run = 94);
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0023_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.scienceCcdExposureId, sce.field, sce.camcol, sce.run,
4 | sce.filterId, sce.filterName, sce.ra, sce.decl, sce.crpix1, sce.crpix2,
5 | sce.crval1, sce.crval2, sce.cd1_1, sce.cd1_2, sce.cd2_1, sce.cd2_2,
6 | sce.fluxMag0, sce.fluxMag0Sigma, sce.fwhm
7 | FROM Science_Ccd_Exposure AS sce
8 | WHERE sce.filterName = 'g'
9 | AND sce.field = 535
10 | AND sce.camcol = 1
11 | AND sce.run = 94;
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0025.1_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE (sce.filterName = 'g')
6 | AND (sce.field = 535)
7 | AND (sce.camcol = 1)
8 | AND (sce.run = 94);
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0025_selectScienceCCDExposureWithFilternameFieldCamcolRun.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterName, sce.field, sce.camcol, sce.run
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE sce.filterName = 'g'
6 | AND sce.field = 535
7 | AND sce.camcol = 1
8 | AND sce.run = 94;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0028.1_selectScienceCCDExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 |
4 | SELECT sce.filterId, sce.filterName
5 | FROM Science_Ccd_Exposure AS sce
6 | WHERE (sce.filterName = 'g')
7 | AND (sce.field = 535)
8 | AND (sce.camcol = 1)
9 | AND (sce.run = 94);
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0028_selectScienceCCDExposure.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT sce.filterId, sce.filterName
4 | FROM Science_Ccd_Exposure AS sce
5 | WHERE sce.filterName = 'g'
6 | AND sce.field = 535
7 | AND sce.camcol = 1
8 | AND sce.run = 94;
9 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0030.1_selectScienceCCDExposureByRunField.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT distinct run, field
4 | FROM Science_Ccd_Exposure
5 | WHERE run = 94 AND field = 536;
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0030.2_selectScienceCCDExposureByRunField.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SELECT distinct run, field
4 | FROM Science_Ccd_Exposure
5 | WHERE (run = 94) AND (field = 536);
6 |
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0031_selectEmptyString.sql:
--------------------------------------------------------------------------------
1 | -- Used to reproduce DM-1822: Fix czar assertion failure
2 |
3 | SELECT scienceCcdExposureId, metadataKey, exposureType, intValue, doubleValue, stringValue
4 | FROM Science_Ccd_Exposure_Metadata
5 | WHERE scienceCcdExposureId=7202320671 AND stringValue='';
6 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0032_longSelectListItem.sql:
--------------------------------------------------------------------------------
1 | -- Used to reproduce DM-20693
2 |
3 | SELECT scienceCcdExposureId FROM Science_Ccd_Exposure_To_Htm10_coadd_r;
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0033_selectCountFromScience_Ccd_Exposure.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM Science_Ccd_Exposure;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0034_selectCountFromScience_Ccd_Exposure_Metadata.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM Science_Ccd_Exposure_Metadata;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0035_selectCountFromScience_Ccd_Exposure_Metadata_coadd_r.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM Science_Ccd_Exposure_Metadata_coadd_r;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0036_select_CountFromScience_Ccd_Exposure_To_Htm10_coadd_r.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM Science_Ccd_Exposure_To_Htm10_coadd_r;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0037_selectCountFromScience_Ccd_Exposure_coadd_r.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM Science_Ccd_Exposure_coadd_r;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0038_selectCountFromRefObject.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM RefObject;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0039_selectCountFromRunDeepSource.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM RunDeepSource;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0040_selectCountFromRunDeepForcedSource.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM RunDeepForcedSource;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0041_selectCountFromRunDeepSrcMatch.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM RefDeepSrcMatch;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0042_selectCountFromAvgForcedPhot.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM AvgForcedPhot;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0043_selectCountFromAvgForcedPhotYearly.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM AvgForcedPhotYearly;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0044_selectCountFromDeepCoadd.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM DeepCoadd;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0045_selectCountFromDeepCoaddMetadata.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM DeepCoadd_Metadata;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0046_selectCountFromDeepCoadd_To_Htm10.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM DeepCoadd_To_Htm10;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0047_selectCountFromFilter.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM Filter;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0048_selectCountFromLeapSeconds.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM LeapSeconds;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/0049_selectCountFromZZZ_Db_Description.sql:
--------------------------------------------------------------------------------
1 | -- Basic test to ensure the table exists and has the correct number of rows
2 | SELECT COUNT(*) FROM ZZZ_Db_Description;
3 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/0007_selectExposureWithPoly.sql:
--------------------------------------------------------------------------------
1 | -- The syntax isn't presently supported.
2 |
3 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
4 |
5 | SELECT scisql_s2CPolyToBin(54.96, -0.64, 55.12, -0.64,
6 | 55.12, -0.41, 54.96, -0.41)
7 | FROM Science_Ccd_Exposure AS sce
8 | WHERE (sce.filterName = 'g')
9 | AND (sce.field = 670)
10 | AND (sce.camcol = 2)
11 | AND (sce.run = 7202) INTO @poly;
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/0008_selectRefObjectInPoly.sql:
--------------------------------------------------------------------------------
1 | -- The syntax isn't presently supported.
2 |
3 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
4 |
5 | SET @poly = scisql_s2CPolyToBin(54.9, -1.25,
6 | 55.0, -1.25,
7 | 55.0, -0.75,
8 | 54.9, -0.75);
9 |
10 | SELECT sro.refObjectId, sro.isStar, sro.ra, sro.decl, sro.uMag, sro.gMag,
11 | sro.rMag, sro.iMag, sro.zMag
12 | FROM RefObject AS sro
13 | WHERE (scisql_s2PtInCPoly(sro.ra, sro.decl, @poly) = 1);
14 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/0016_selectDeepCoaddInPoly.sql:
--------------------------------------------------------------------------------
1 | -- This syntax is not presently supported in Qserv
2 |
3 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
4 |
5 | SELECT scisql_s2CPolyToBin(sce.corner1Ra, sce.corner1Decl, sce.corner2Ra, sce.corner2Decl,
6 | sce.corner3Ra, sce.corner3Decl, sce.corner4Ra, sce.corner4Decl)
7 | FROM DeepCoadd AS sce
8 | WHERE (sce.filterName = 'g')
9 | AND (sce.tract = 0)
10 | AND (sce.patch = '159,1') INTO @poly;
11 |
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/0017_selectRefObjectInPoly.sql:
--------------------------------------------------------------------------------
1 | -- This syntax is not presently supported in Qserv
2 |
3 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
4 |
5 | SELECT sro.refObjectId, sro.isStar, sro.ra, sro.decl, sro.uMag, sro.gMag,
6 | sro.rMag, sro.iMag, sro.zMag
7 | FROM RefObject AS sro
8 | WHERE (scisql_s2PtInCPoly(sro.ra, sro.decl, @poly) = 1);
9 |
10 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/0026_selectScienceCCDExposureInPoly.sql:
--------------------------------------------------------------------------------
1 | -- Qserv doesn't presently support nested SciSQL functions or setting SQL variables.
2 |
3 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
4 |
5 | SELECT scisql_s2CPolyToBin(sce.corner1Ra, sce.corner1Decl, sce.corner2Ra, sce.corner2Decl,
6 | sce.corner3Ra, sce.corner3Decl, sce.corner4Ra, sce.corner4Decl)
7 | FROM Science_Ccd_Exposure AS sce
8 | WHERE (sce.filterName = 'g')
9 | AND (sce.field = 535)
10 | AND (sce.camcol = 1)
11 | AND (sce.run = 94) INTO @poly;
12 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/0027_selectRefObjectInPoly.sql:
--------------------------------------------------------------------------------
1 | -- Qserv doesn't presently support nested SciSQL functions or setting SQL variables.
2 |
3 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
4 |
5 | SET @poly = scisql_s2CPolyToBin(54.9, -1.25,
6 | 55.0, -1.25,
7 | 55.0, -0.75,
8 | 54.9, -0.75);
9 |
10 | SELECT sro.refObjectId, sro.isStar, sro.ra, sro.decl, sro.uMag,
11 | sro.gMag, sro.rMag, sro.iMag, sro.zMag
12 | FROM RefObject AS sro
13 | WHERE (scisql_s2PtInCPoly(sro.ra, sro.decl, @poly) = 1) ;
14 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_syntax/README.txt:
--------------------------------------------------------------------------------
1 | Queries in this folder are based on the SQL syntax that is not presently
2 | supported by Qserv.
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_tables/0001_showColumnsFromSource.sql:
--------------------------------------------------------------------------------
1 | -- The query is disabled because it refers to the table DeepSource
2 | -- which doesn't exist in this catalog.
3 |
4 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
5 |
6 | SHOW COLUMNS FROM DeepSource;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_tables/0020_showColumnsFromDeepforcedsource.sql:
--------------------------------------------------------------------------------
1 | -- The query is disabled because it refers to the table DeepForcedSource
2 | -- which doesn't exist in this catalog.
3 |
4 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
5 |
6 | SHOW COLUMNS FROM DeepForcedSource;
7 |
--------------------------------------------------------------------------------
/itest_src/datasets/case03/queries/unsupported_tables/README.txt:
--------------------------------------------------------------------------------
1 | Queries found in this folder are referring to tables that do not exist in
2 | the catalog and they may need to be eliminated. It's not clear why the queries
3 | were put here.
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/DeepCoadd.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case04/data/DeepCoadd.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/DeepForcedSource.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case04/data/DeepForcedSource.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/DeepSource.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case04/data/DeepSource.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/DeepSourceDupKeys.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case04/data/DeepSourceDupKeys.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/Science_Ccd_Exposure.csv.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/itest_src/datasets/case04/data/Science_Ccd_Exposure.csv.gz
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/description.yaml:
--------------------------------------------------------------------------------
1 | tables:
2 | directors: ['DeepSource', 'DeepSourceDupKeys']
3 | partitioned-tables: ['DeepSource', 'DeepSourceDupKeys', 'DeepForcedSource']
4 | extensions:
5 | data: '.csv'
6 | schema: '.schema'
7 | zip: '.gz'
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/ingest/database.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 12,
3 | "auth_key":"",
4 | "database":"qcase04",
5 | "auto_build_secondary_index":1,
6 | "local_load_secondary_index":1,
7 | "num_stripes":85,
8 | "num_sub_stripes":14,
9 | "overlap":0.001
10 | }
11 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/partition/DeepCoadd.json:
--------------------------------------------------------------------------------
1 | {
2 | "in":{
3 | "csv":{
4 | "enclose":"\""
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/partition/Science_Ccd_Exposure.json:
--------------------------------------------------------------------------------
1 | {
2 | "in":{
3 | "csv":{
4 | "enclose":"\""
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/data/partition/common.json:
--------------------------------------------------------------------------------
1 | {
2 | "htm":{
3 | "level":8
4 | },
5 | "dirDb":"qcase04",
6 | "dirTable":"DeepSource",
7 | "part":{
8 | "num-stripes":85,
9 | "num-sub-stripes":14,
10 | "chunk":"chunkId",
11 | "sub-chunk":"subChunkId",
12 | "overlap":0.001
13 | },
14 | "in":{
15 | "csv":{
16 | "null":"\\N",
17 | "delimiter":",",
18 | "escape":"\\"
19 | }
20 | },
21 | "out":{
22 | "csv":{
23 | "null":"\\N",
24 | "delimiter":",",
25 | "escape":"\\",
26 | "no-quote":true
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/queries/0001_showColumnsFromSource.sql:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SHOW COLUMNS FROM DeepSource;
4 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/queries/0011_selectDeepCoadd.sql:
--------------------------------------------------------------------------------
1 | -- Note: ordering is required to compare MySQL vs Qserv results because
2 | -- partial results reported for Qserv chunked queries have non-deterministic
3 | -- order.
4 |
5 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
6 |
7 | SELECT DISTINCT tract,patch,filterName FROM DeepCoadd ORDER BY tract,patch,filterName;
8 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/queries/0018_selectDeepCoaddWithGivenTractPatchFiltername.sql:
--------------------------------------------------------------------------------
1 | -- Note: this query is returning the empty result set. This may need
2 | -- to be investigated ad fixed.
3 |
4 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
5 |
6 | -- pragma sortresult
7 | SELECT sce.filterId, sce.filterName
8 | FROM DeepCoadd AS sce
9 | WHERE sce.filterName = 'r'
10 | AND sce.tract = 0
11 | AND sce.patch = '159,1';
12 |
13 |
--------------------------------------------------------------------------------
/itest_src/datasets/case04/queries/0020_showColumnsFromDeepForcedSource:
--------------------------------------------------------------------------------
1 | -- https://dev.lsstcorp.org/trac/wiki/dbPipeQAQueries
2 |
3 | SHOW COLUMNS FROM DeepForcedSource;
4 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.black]
2 | line-length = 110
3 | target-version = ['py38']
4 |
--------------------------------------------------------------------------------
/src/.clang-format:
--------------------------------------------------------------------------------
1 | ---
2 | Language: Cpp
3 | BasedOnStyle: Google
4 | ColumnLimit: 110
5 | IndentWidth: 4
6 | AccessModifierOffset: -4
7 | SortIncludes: false # reordering may break existing code
8 | ConstructorInitializerIndentWidth: 8
9 | ContinuationIndentWidth: 8
10 | CompactNamespaces: true
11 | ...
12 |
--------------------------------------------------------------------------------
/src/admin/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/admin/.gitignore
--------------------------------------------------------------------------------
/src/admin/bin/qserv-kraken:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import sys
4 |
5 | from lsst.qserv.testing.main import main
6 |
7 | sys.exit(main())
8 |
--------------------------------------------------------------------------------
/src/admin/etc/log.cnf:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=DEBUG, CONSOLE
2 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
3 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
4 | log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
5 |
6 | log4j.logger.lsst.qserv.xrdssi.msgs=WARN
7 |
--------------------------------------------------------------------------------
/src/admin/examples/_template_database.params:
--------------------------------------------------------------------------------
1 | [db_info]
2 |
3 | # For LSST, this represents L1, L2, L3
4 | storageClass: L2
5 |
6 | # Allowed values are: 0, 1
7 | # In this example partitioning is turned on
8 | partitioning: 1
9 |
10 | # If partitioning is on, you must specific partitioning strategy
11 | # partitioningStrategy:
12 | # Currently supported partitioningStrategies are: sphBox
13 | # You must also create [] section.
14 |
15 | # Partitioning for individual tables can be turn
16 | # off on table-by-table bases, see createTable
17 | # config file for details.
18 |
19 | partitioning: 1
20 | partitioningStrategy: sphBox
21 |
22 | [sphBox]
23 | nStripes: 85
24 | nSubStripes: 12
25 | overlap: 0.0001
26 |
--------------------------------------------------------------------------------
/src/admin/examples/dbNonPartitioned.params:
--------------------------------------------------------------------------------
1 | [db_info]
2 | partitioning: 0
3 |
--------------------------------------------------------------------------------
/src/admin/examples/dbPartitioned.params:
--------------------------------------------------------------------------------
1 | [db_info]
2 | storageClass: L2
3 | partitioning: 1
4 | partitioningStrategy: sphBox
5 | nStripes: 85
6 | nSubStripes: 12
7 | overlap: 0.0001
8 |
9 |
--------------------------------------------------------------------------------
/src/admin/examples/tbSchema_Exposure.sql:
--------------------------------------------------------------------------------
1 |
2 | create table Exposure (
3 | i int
4 | );
5 |
--------------------------------------------------------------------------------
/src/admin/examples/tbSchema_Source.sql:
--------------------------------------------------------------------------------
1 |
2 | create table Source (
3 | sourceId bigint,
4 | ra float,
5 | decl float
6 | );
7 |
--------------------------------------------------------------------------------
/src/admin/examples/tb_Exposure.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Exposure
3 | partitioning: 0
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tb_Exposure.sql
5 |
--------------------------------------------------------------------------------
/src/admin/examples/tb_Exposure.sql:
--------------------------------------------------------------------------------
1 |
2 | create table Exposure (
3 | i int
4 | );
5 |
--------------------------------------------------------------------------------
/src/admin/examples/tb_Object.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Object
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tb_Object.sql
5 | compression: 0
6 | subChunks: 1
7 | dirColName: objectId
8 | dirTable: Object
9 | latColName: decl_PS
10 | lonColName: ra_PS
11 |
--------------------------------------------------------------------------------
/src/admin/examples/tb_Science_Ccd_Exposure.sql:
--------------------------------------------------------------------------------
1 |
2 | create table Science_Ccd_Exposure (
3 | i int
4 | );
5 |
--------------------------------------------------------------------------------
/src/admin/examples/tb_Source.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Source
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tb_Source.sql
5 | compression: 0
6 | subChunks: 0
7 | dirTable: Object
8 | latColName: ra
9 | lonColName: decl
10 | dirColName: objId
11 |
--------------------------------------------------------------------------------
/src/admin/examples/tb_Source.sql:
--------------------------------------------------------------------------------
1 |
2 | create table Source (
3 | sourceId bigint,
4 | objId bigint,
5 | ra float,
6 | decl float
7 | );
8 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_dbNp.params:
--------------------------------------------------------------------------------
1 | [db_info]
2 | partitioning: 0
3 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_dbPt.params:
--------------------------------------------------------------------------------
1 | [db_info]
2 | storageClass: L2
3 | partitioning: 1
4 | partitioningStrategy: sphBox
5 | nStripes: 60
6 | nSubStripes: 18
7 | overlap: 0.025
8 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbExposure.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Exposure
3 | partitioning: 0
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Exposure.sql
5 | compression: 0
6 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbFilter.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Filter
3 | partitioning: 0
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Exposure.sql
5 | compression: 0
6 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbLeapSeconds.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: LeapSeconds
3 | partitioning: 0
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_LeapSeconds.sql
5 | compression: 0
6 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbObject_ls.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Object
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Object.sql
5 | compression: 0
6 | subChunks: 1
7 | dirColName: objectIdObjTest
8 | dirTable: Object
9 | latColName: decl_Test
10 | lonColName: ra_Test
11 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbObject_rp.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Object
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Object.sql
5 | compression: 0
6 | subChunks: 1
7 | dirColName: objectIdObjTest
8 | dirTable: Object
9 | latColName: decl
10 | lonColName: ra
11 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbRefObjMatch.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: RefObjMatch
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_RefObjMatch.sql
5 | compression: 0
6 | match: 1
7 | dirTable1: SimRefObject
8 | dirColName1: refObjectId
9 | dirTable2: Object
10 | dirColName2: objectId
11 | flagColName: flags
12 | subChunks: 0
13 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbScience_Ccd_Exposure.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Science_Ccd_Exposure
3 | partitioning: 0
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Exposure.sql
5 | compression: 0
6 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbSimRefObject.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: SimRefObject
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_SimRefObject.sql
5 | compression: 0
6 | subChunks: 1
7 | dirColName: refObjectId
8 | dirTable: SimRefObject
9 | latColName: refDecl
10 | lonColName: refRa
11 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbSource.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Source
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Source.sql
5 | compression: 0
6 | subChunks: 0
7 | dirColName: objectIdSourceTest
8 | dirTable: Object
9 | latColName: declObjectTest
10 | lonColName: raObjectTest
11 |
--------------------------------------------------------------------------------
/src/admin/examples/testMap_tbSource2.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: Source2
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Source.sql
5 | compression: 0
6 | subChunks: 0
7 | dirColName: objectIdObjTest
8 | dirTable: Object
9 |
--------------------------------------------------------------------------------
/src/admin/examples/testQserv_loadIt:
--------------------------------------------------------------------------------
1 | drop database LSST;
2 | create database LSST admin/examples/dbPartitioned.params;
3 | create table LSST.DeepSource admin/examples/testQserv_tbDeepSource.params;
4 | create table LSST.DeepForcedSource admin/examples/testQserv_tbDeepFSource.params;
5 |
--------------------------------------------------------------------------------
/src/admin/examples/testQserv_tbDeepFSource.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: DeepForcedSource
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Object.sql
5 | compression: 0
6 | subChunks: 0
7 | dirColName: objectId
8 | dirTable: DeepSource
9 | latColName: decl
10 | lonColName: ra
11 |
--------------------------------------------------------------------------------
/src/admin/examples/testQserv_tbDeepSource.params:
--------------------------------------------------------------------------------
1 | [table_info]
2 | tableName: DeepSource
3 | partitioning: 1
4 | schemaFile: /u1/qserv/sandbox/qserv/meta/examples/tbSchema_Object.sql
5 | compression: 0
6 | subChunks: 0
7 | dirColName: id
8 | dirTable: DeepSource
9 | latColName: decl
10 | lonColName: ra
11 |
--------------------------------------------------------------------------------
/src/admin/python/lsst/qserv/admin/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/admin/python/lsst/qserv/admin/__init__.py
--------------------------------------------------------------------------------
/src/admin/python/lsst/qserv/admin/cli/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/admin/python/lsst/qserv/admin/cli/__init__.py
--------------------------------------------------------------------------------
/src/admin/python/lsst/qserv/admin/cli/chunk_0.txt:
--------------------------------------------------------------------------------
1 | 1,0.1,-89.5,123.456,0,1
2 |
--------------------------------------------------------------------------------
/src/admin/python/lsst/qserv/admin/qservCli/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/admin/python/lsst/qserv/admin/qservCli/__init__.py
--------------------------------------------------------------------------------
/src/admin/python/lsst/qserv/admin/tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/admin/python/lsst/qserv/admin/tests/__init__.py
--------------------------------------------------------------------------------
/src/admin/python/lsst/qserv/testing/__init__.py:
--------------------------------------------------------------------------------
1 |
2 | from .config import *
3 |
--------------------------------------------------------------------------------
/src/admin/python/mypy.ini:
--------------------------------------------------------------------------------
1 | [mypy]
2 | ignore_missing_imports = true
3 | disallow_incomplete_defs = true
4 | disallow_untyped_defs = true
5 |
6 | #--warn-unused-configs
7 | #--disallow-any-generics
8 | #--disallow-subclassing-any
9 | #--disallow-untyped-calls
10 | #--check-untyped-defs,
11 | #--disallow-untyped-decorators
12 | #--no-implicit-optional
13 | #--warn-redundant-casts
14 | #--warn-unused-ignores
15 | #--warn-return-any
16 | #--no-implicit-reexport
17 | #--strict-equality
18 |
--------------------------------------------------------------------------------
/src/admin/templates/proxy/etc/my-proxy.cnf.jinja:
--------------------------------------------------------------------------------
1 | [mysql-proxy]
2 |
3 | proxy-address = :4040
4 | proxy-backend-addresses = {{ proxy_backend_address }}
5 |
6 | log-level=debug
7 |
8 | proxy-connect-timeout=30
9 |
--------------------------------------------------------------------------------
/src/cconfig/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(cconfig SHARED)
2 |
3 | target_sources(cconfig PRIVATE
4 | CzarConfig.cc
5 | )
6 |
7 | target_include_directories(cconfig PRIVATE
8 | ${XROOTD_INCLUDE_DIRS}
9 | )
10 |
11 | target_link_libraries(cconfig PUBLIC
12 | log
13 | XrdSsiLib
14 | )
15 |
16 | install(
17 | TARGETS cconfig
18 | )
19 |
--------------------------------------------------------------------------------
/src/css/python/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/css/python/__init__.py
--------------------------------------------------------------------------------
/src/global/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(global SHARED)
2 |
3 | target_sources(global PRIVATE
4 | DbTable.cc
5 | debugUtil.cc
6 | ResourceUnit.cc
7 | sqltoken.cc
8 | stringUtil.cc
9 | )
10 |
11 | target_link_libraries(global PUBLIC
12 | log
13 | )
14 |
15 | install(
16 | TARGETS global
17 | )
18 |
19 | add_executable(testResourceUnit testResourceUnit.cc)
20 |
21 | target_link_libraries(testResourceUnit
22 | global
23 | Boost::unit_test_framework
24 | )
25 |
26 | add_test(NAME testResourceUnit COMMAND testResourceUnit)
27 |
--------------------------------------------------------------------------------
/src/mimic/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | install(DIRECTORY python/lsst/utils DESTINATION ${CMAKE_INSTALL_PREFIX}/python/lsst/)
2 |
--------------------------------------------------------------------------------
/src/mimic/README.txt:
--------------------------------------------------------------------------------
1 | The mimic module has small amounts of python code copied from modules that we do
2 | not want to import all of, because of unused indirect dependencies, or
3 | installation time or size.
4 |
5 | For example, lsst.log depends on a couple functions in lsst.utils, and
6 | lsst.utils depends on numpy, but lsst.log does not indirectly depend on numpy;
7 | i.e. lsst.log does not use functions in lsst.utils that depend on numpy. Since
8 | the amount of code used by lsst.log in lsst.utils is small, we copy the code
9 | here.
10 |
--------------------------------------------------------------------------------
/src/mysql/SConscript.test:
--------------------------------------------------------------------------------
1 | # -*- python -*-
2 | Import('env')
3 | Import('libProducts')
4 | Import('defaultTgts')
5 | Import('findLibs')
6 |
7 | import os
8 | import itertools
9 |
10 |
11 | programs = []
12 | # extDeps
13 | extDeps = "mysqlclient_r boost_thread boost_system log log4cxx ssl crypto".split()
14 |
15 | modDeps = 'mysql sql'.split() # deps on other modules
16 | deps = itertools.chain(*map(lambda m: defaultTgts[m], modDeps))
17 | deps = map(lambda i:i, deps) # un-chain
18 | deps.sort(key=str) # Prevent dependency-order change rebuilding.
19 | p = env.Program(['testLocalInfile.cc'] + deps,
20 | LIBS=findLibs(extDeps))
21 | programs.append(p)
22 |
23 | Return('programs')
24 |
--------------------------------------------------------------------------------
/src/partition/config/PT1.1/common.json:
--------------------------------------------------------------------------------
1 | {
2 | "htm": {
3 | "level": 8
4 | },
5 | "part": {
6 | "num-stripes": 85,
7 | "num-sub-stripes": 12,
8 | "chunk": "chunkId",
9 | "sub-chunk": "subChunkId"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/partition/config/PT1.2/common.json:
--------------------------------------------------------------------------------
1 | {
2 | "htm": {
3 | "level": 8
4 | },
5 | "part": {
6 | "num-stripes": 85,
7 | "num-sub-stripes": 12,
8 | "chunk": "chunkId",
9 | "sub-chunk": "subChunkId"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/partition/doc/subchunks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/partition/doc/subchunks.png
--------------------------------------------------------------------------------
/src/partition/tests/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | FUNCTION(partition_tests)
2 | FOREACH(TEST IN ITEMS ${ARGV})
3 | add_executable(${TEST} ${TEST}.cc)
4 | target_link_libraries(${TEST} PRIVATE
5 | partition
6 | Boost::filesystem
7 | Boost::unit_test_framework
8 | )
9 | add_test(NAME ${TEST} COMMAND ${TEST})
10 | ENDFOREACH()
11 | ENDFUNCTION()
12 |
13 | partition_tests(
14 | chunkIndex
15 | configStore
16 | csv
17 | fileUtils
18 | geometry
19 | htmIndex
20 | mapReduce
21 | objectIndex
22 | vector
23 | )
24 |
--------------------------------------------------------------------------------
/src/proto/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(proto SHARED)
2 |
3 | target_compile_options(proto PRIVATE
4 | -Wno-maybe-uninitialized
5 | )
6 |
7 | protobuf_generate_cpp(PROTO_PB_SRCS PROTO_PB_HDRS worker.proto)
8 |
9 | target_sources(proto PRIVATE
10 | ${PROTO_PB_SRCS}
11 | ${PROTO_PB_HDRS}
12 | FrameBuffer.cc
13 | ProtoHeaderWrap.cc
14 | ScanTableInfo.cc
15 | )
16 |
17 | target_link_libraries(proto PUBLIC
18 | log
19 | protobuf
20 | )
21 |
22 | install(
23 | TARGETS proto
24 | )
25 |
26 | add_executable(testProtocol testProtocol.cc)
27 |
28 | target_link_libraries(testProtocol
29 | proto
30 | crypto
31 | Boost::unit_test_framework
32 | )
33 |
34 | add_test(NAME testProtocol COMMAND testProtocol)
35 |
36 |
--------------------------------------------------------------------------------
/src/proto/COPYRIGHT:
--------------------------------------------------------------------------------
1 | 2011-2015 LSST Corp, 2015-2018 SLAC
2 |
--------------------------------------------------------------------------------
/src/proxy/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(czarProxy MODULE)
2 |
3 | set_target_properties(czarProxy PROPERTIES
4 | PREFIX ""
5 | )
6 |
7 | target_sources(czarProxy PRIVATE
8 | czarProxy.cc
9 | czarProxyLuaWrapper.cc
10 | )
11 |
12 | target_include_directories(czarProxy PRIVATE
13 | ${LUA_INCLUDE_DIR}
14 | )
15 |
16 | target_link_libraries(czarProxy PRIVATE
17 | log
18 | lua-5.1
19 | cconfig
20 | ccontrol
21 | czar
22 | parser
23 | qana
24 | query
25 | qdisp
26 | qproc
27 | rproc
28 | css
29 | qmeta
30 | xrdreq)
31 |
32 | install(TARGETS czarProxy DESTINATION ${CMAKE_INSTALL_PREFIX}/lua/qserv/lib)
33 | install(FILES mysqlProxy.lua DESTINATION ${CMAKE_INSTALL_PREFIX}/lua/qserv/scripts)
34 |
--------------------------------------------------------------------------------
/src/proxy/README.txt:
--------------------------------------------------------------------------------
1 |
2 | # Start mysql proxy and rpcServer using provided scripts
3 |
4 | # Talk to mysql proxy from mysql client using
5 | mysql --port=4040 --protocol=TCP
6 |
7 |
8 | # packages needed for lua (on ubuntu)
9 | # liblua5.1-socket2 liblua5.1-xmlrpc0 lua
10 |
11 | # Note: luaxmlrpc 1.0b (dec 2, 2004) has a bug.
12 | # At minimum, replace "module (arg and arg[1])" with module (...)"
13 | # lua-xmlrpc author suggests using CVS head version.
14 | # We recommend unpacking Ubuntu's liblua5.1-xmlrpc0_1.0b-4_all.deb .
15 | # Put the package's /usr/share/lua/5.1/xmlrpc in $PREFIX/share/lua/5.1/xmlrpc
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/qana/README_qana.rst:
--------------------------------------------------------------------------------
1 | =============
2 | Module "qana"
3 | =============
4 |
5 | Overview
6 | ========
7 | The qana module is responsible for the *analysis* of SQL queries in
8 | Qserv. It contains logic to extract query information and manipulate
9 | queries in preparation for execution and result handling.
10 |
--------------------------------------------------------------------------------
/src/qhttp/testdata/css/style.css:
--------------------------------------------------------------------------------
1 | img {
2 | border: 1px solid black;
3 | position: relative;
4 | }
5 |
--------------------------------------------------------------------------------
/src/qhttp/testdata/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/qhttp/testdata/images/favicon.ico
--------------------------------------------------------------------------------
/src/qhttp/testdata/images/lsst.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/qhttp/testdata/images/lsst.gif
--------------------------------------------------------------------------------
/src/qhttp/testdata/images/lsst.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/qhttp/testdata/images/lsst.jpg
--------------------------------------------------------------------------------
/src/qhttp/testdata/images/lsst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/qhttp/testdata/images/lsst.png
--------------------------------------------------------------------------------
/src/qhttp/testdata/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | qdht test
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/qhttp/testdata/js/main.js:
--------------------------------------------------------------------------------
1 | var img1 = document.getElementById("img1");
2 | var img2 = document.getElementById("img2");
3 | var img3 = document.getElementById("img3");
4 |
5 | var theta = 0.0;
6 |
7 | function frame() {
8 | img1.style.top = (25 + 25*Math.sin(theta + 0.0)) + "px";
9 | img2.style.top = (25 + 25*Math.sin(theta + 0.5)) + "px";
10 | img3.style.top = (25 + 25*Math.sin(theta + 1.0)) + "px";
11 | theta = theta + .02;
12 | }
13 |
14 | setInterval(frame, 5);
15 |
--------------------------------------------------------------------------------
/src/qmeta/schema/migrate-2-to-3.sql:
--------------------------------------------------------------------------------
1 | --
2 | -- Migration script from version 2 to version 3 of QMeta database:
3 | --
4 |
5 | -- QInfo table adds resultQuery column, migration script expecets this table to exist.
6 | ALTER TABLE `QInfo` ADD COLUMN (`resultQuery` TEXT);
7 |
8 | -- QInfo table drops proxyOrderBy column
9 | ALTER TABLE `QInfo` DROP COLUMN `proxyOrderBy`;
10 |
--------------------------------------------------------------------------------
/src/qmeta/schema/migrate-6-to-7.sql:
--------------------------------------------------------------------------------
1 | --
2 | -- Migration script from version 6 to version 7 of QMeta database:
3 | --
4 | --
5 | -- Rename resultBytes and resultRows to collectedBytes and collectedRows in QInfo.
6 | -- Also, add finalRows to QInfo
7 | --
8 | ALTER TABLE `QInfo`
9 | RENAME COLUMN `resultBytes` TO `collectedBytes`,
10 | RENAME COLUMN `resultRows` TO `collectedRows`,
11 | ADD `finalRows` INT DEFAULT 0 COMMENT 'number of rows in the final result';
12 |
--------------------------------------------------------------------------------
/src/qmeta/schema/migrate-7-to-8.sql:
--------------------------------------------------------------------------------
1 | -- Fix a bug that was introduced earlier. In the previous version of
2 | -- the schema these columns were defined as 'INT' (32-bits) which was
3 | -- causing Qserv to crash when result set sizes exceeded the limit.
4 | ALTER TABLE `QInfo` MODIFY COLUMN `collectedBytes` BIGINT DEFAULT 0 COMMENT 'number of bytes collected from workers';
5 | ALTER TABLE `QInfo` MODIFY COLUMN `collectedRows` BIGINT DEFAULT 0 COMMENT 'number of rows collected from workers';
6 | ALTER TABLE `QInfo` MODIFY COLUMN `finalRows` BIGINT DEFAULT 0 COMMENT 'number of rows in the final result';
7 |
--------------------------------------------------------------------------------
/src/qmeta/schema/migrate-8-to-9.sql:
--------------------------------------------------------------------------------
1 | -- This index had significant performance implications for Qserv.
2 | DROP INDEX IF EXISTS `QInfo_query_index` ON `QInfo`;
3 |
--------------------------------------------------------------------------------
/src/replica/COPYRIGHT:
--------------------------------------------------------------------------------
1 | 2011-2015 LSST Corp, 2015-2019 SLAC
2 |
--------------------------------------------------------------------------------
/src/replica/config/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_config OBJECT)
2 | target_sources(replica_config PRIVATE
3 | ConfigCzar.cc
4 | ConfigDatabase.cc
5 | ConfigDatabaseFamily.cc
6 | ConfigHost.cc
7 | ConfigParserJSON.cc
8 | ConfigParserMySQL.cc
9 | ConfigTable.cc
10 | ConfigTestData.cc
11 | ConfigWorker.cc
12 | Configuration.cc
13 | ConfigurationSchema.cc
14 | )
15 | target_link_libraries(replica_config PUBLIC
16 | log
17 | sphgeom
18 | )
--------------------------------------------------------------------------------
/src/replica/export/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_export OBJECT)
2 | add_dependencies(replica_export replica_proto)
3 | target_sources(replica_export PRIVATE
4 | ExportClient.cc
5 | ExportServer.cc
6 | ExportServerConnection.cc
7 | )
8 | target_link_libraries(replica_export PUBLIC
9 | log
10 | )
11 |
--------------------------------------------------------------------------------
/src/replica/ingest/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_ingest OBJECT)
2 | add_dependencies(replica_ingest replica_proto)
3 | target_sources(replica_ingest PRIVATE
4 | IngestClient.cc
5 | IngestDataHttpSvcMod.cc
6 | IngestFileHttpSvcMod.cc
7 | IngestFileSvc.cc
8 | IngestHttpSvc.cc
9 | IngestHttpSvcMod.cc
10 | IngestRequest.cc
11 | IngestRequestMgr.cc
12 | IngestResourceMgr.cc
13 | IngestResourceMgrP.cc
14 | IngestResourceMgrT.cc
15 | IngestSvc.cc
16 | IngestSvcConn.cc
17 | IngestUtils.cc
18 | TransactionContrib.cc
19 | )
20 | target_link_libraries(replica_ingest PUBLIC
21 | log
22 | )
23 |
--------------------------------------------------------------------------------
/src/replica/mysql/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_mysql OBJECT)
2 | add_dependencies(replica_mysql replica_proto)
3 | target_sources(replica_mysql PRIVATE
4 | DatabaseMySQL.cc
5 | DatabaseMySQLGenerator.cc
6 | DatabaseMySQLRow.cc
7 | DatabaseMySQLTypes.cc
8 | DatabaseMySQLUtils.cc
9 | )
10 | target_link_libraries(replica_mysql PUBLIC
11 | log
12 | )
13 |
--------------------------------------------------------------------------------
/src/replica/proto/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | protobuf_generate_cpp(REPLICA_PB_SRCS REPLICA_PB_HDRS protocol.proto)
2 |
3 | add_library(replica_proto OBJECT)
4 | target_sources(replica_proto PRIVATE
5 | ${REPLICA_PB_SRCS}
6 | ${REPLICA_PB_HDRS}
7 | )
8 |
--------------------------------------------------------------------------------
/src/replica/python/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/replica/python/__init__.py
--------------------------------------------------------------------------------
/src/replica/registry/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_registry OBJECT)
2 | target_sources(replica_registry PRIVATE
3 | Registry.cc
4 | RegistryHttpSvc.cc
5 | RegistryHttpSvcMod.cc
6 | RegistryServices.cc
7 | )
8 | target_link_libraries(replica_registry PUBLIC
9 | log
10 | )
11 |
--------------------------------------------------------------------------------
/src/replica/schema/migrate-10-to-11.sql:
--------------------------------------------------------------------------------
1 | --
2 | -- Changes needed for the RefMatch tables
3 | --
4 | ALTER TABLE `config_database_table` ADD COLUMN `director_table2` VARCHAR(255) DEFAULT "" AFTER `director_key` ;
5 | ALTER TABLE `config_database_table` ADD COLUMN `director_key2` VARCHAR(255) DEFAULT "" AFTER `director_table2` ;
6 | ALTER TABLE `config_database_table` ADD COLUMN `flag` VARCHAR(255) DEFAULT "" AFTER `director_key2` ;
7 | ALTER TABLE `config_database_table` ADD COLUMN `ang_sep` DOUBLE DEFAULT 0 AFTER `flag` ;
8 |
--------------------------------------------------------------------------------
/src/replica/schema/migrate-13-to-14.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE `config_database_table`
2 | ADD COLUMN `unique_primary_key` BOOLEAN NOT NULL DEFAULT TRUE
3 | AFTER `ang_sep`;
4 |
--------------------------------------------------------------------------------
/src/replica/schema/migrate-4-to-5.sql:
--------------------------------------------------------------------------------
1 | -- Drop these obsolete columns left over the original implementation of the job classes
2 | ALTER TABLE `job` DROP COLUMN `exclusive` ;
3 | ALTER TABLE `job` DROP COLUMN `preemptable` ;
4 |
--------------------------------------------------------------------------------
/src/replica/schema/migrate-6-to-7.sql:
--------------------------------------------------------------------------------
1 | -- This table used to store the general configuration parameters of the system.
2 | -- It's no longer used in the current version of the code.
3 |
4 | DROP TABLE IF EXISTS `config`;
5 |
--------------------------------------------------------------------------------
/src/replica/services/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_services OBJECT)
2 | target_sources(replica_services PRIVATE
3 | ChunkLocker.cc
4 | DatabaseServices.cc
5 | DatabaseServicesMySQL.cc
6 | DatabaseServicesPool.cc
7 | ServiceProvider.cc
8 | )
9 | target_link_libraries(replica_services PUBLIC
10 | log
11 | )
12 |
--------------------------------------------------------------------------------
/src/replica/util/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_util OBJECT)
2 | add_dependencies(replica_util replica_proto)
3 | target_sources(replica_util PRIVATE
4 | ChttpSvc.cc
5 | ChunkNumber.cc
6 | ChunkedTable.cc
7 | Common.cc
8 | Csv.cc
9 | FileUtils.cc
10 | HttpSvc.cc
11 | Mutex.cc
12 | NamedMutexRegistry.cc
13 | Performance.cc
14 | ProtocolBuffer.cc
15 | ReplicaInfo.cc
16 | SqlSchemaUtils.cc
17 | SuccessRateGenerator.cc
18 | )
19 | target_link_libraries(replica_util PUBLIC
20 | log
21 | sphgeom
22 | )
23 |
--------------------------------------------------------------------------------
/src/replica/worker/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(replica_worker OBJECT)
2 | add_dependencies(replica_worker replica_proto)
3 | target_sources(replica_worker PRIVATE
4 | FileClient.cc
5 | FileServer.cc
6 | FileServerConnection.cc
7 | WorkerDeleteRequest.cc
8 | WorkerDirectorIndexRequest.cc
9 | WorkerEchoRequest.cc
10 | WorkerFindAllRequest.cc
11 | WorkerFindRequest.cc
12 | WorkerProcessor.cc
13 | WorkerProcessorThread.cc
14 | WorkerReplicationRequest.cc
15 | WorkerRequest.cc
16 | WorkerServer.cc
17 | WorkerServerConnection.cc
18 | WorkerSqlRequest.cc
19 | )
20 | target_link_libraries(replica_worker PUBLIC
21 | log
22 | )
23 |
--------------------------------------------------------------------------------
/src/rproc/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(rproc SHARED)
2 | add_dependencies(rproc proto)
3 |
4 | target_sources(rproc PRIVATE
5 | InfileMerger.cc
6 | )
7 |
8 | target_link_libraries(rproc PUBLIC
9 | boost_regex
10 | cconfig
11 | log
12 | )
13 |
14 | install(TARGETS rproc
15 | EXPORT qserv
16 | )
17 |
18 | install(DIRECTORY python/ DESTINATION ${CMAKE_INSTALL_PREFIX}/python/lsst/qserv/rproc)
19 | install(DIRECTORY schema/ DESTINATION ${CMAKE_INSTALL_PREFIX}/qserv/smig/rproc/schema/)
20 |
--------------------------------------------------------------------------------
/src/rproc/python/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/rproc/python/__init__.py
--------------------------------------------------------------------------------
/src/rproc/schema/migrate-None-to-0.sql:
--------------------------------------------------------------------------------
1 | CREATE DATABASE IF NOT EXISTS qservResult;
2 |
--------------------------------------------------------------------------------
/src/schema/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | install(DIRECTORY python/ DESTINATION ${CMAKE_INSTALL_PREFIX}/python/lsst/qserv/schema)
2 | install(DIRECTORY bin/ DESTINATION ${CMAKE_INSTALL_BINDIR})
3 |
4 | add_test(NAME test_SchemaMigMgr
5 | COMMAND python3 -m unittest lsst.qserv.schema.tests.test_SchemaMigMgr
6 | WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/python/
7 | )
8 |
--------------------------------------------------------------------------------
/src/schema/python/__init__.py:
--------------------------------------------------------------------------------
1 | from .schemaMigMgr import (
2 | MigMgrArgs,
3 | MigMatch,
4 | Migration,
5 | SchemaMigMgr,
6 | SchemaUpdateRequired,
7 | Uninitialized,
8 | Version,
9 | )
10 | from .smig import smig, smig_block
11 |
--------------------------------------------------------------------------------
/src/tests/dbinit.sql:
--------------------------------------------------------------------------------
1 | CREATE DATABASE LSST;
2 | CREATE DATABASE LSST_Shared;
3 | CREATE TABLE LSST.Object_314159 (
4 | objectId BIGINT,
5 | subchunkId INT);
6 | INSERT INTO LSST.Object_314159 VALUES
7 | (1, 42), (2, 42), (3, 42), (4, 42),
8 | (5, 99), (6, 42), (7, 99), (8, 99);
9 |
--------------------------------------------------------------------------------
/src/tests/setQsmasterPerm.sql:
--------------------------------------------------------------------------------
1 | GRANT SELECT ON *.* TO 'qsmaster'@'localhost';
2 | GRANT EXECUTE ON LSST.* TO 'qsmaster'@'localhost';
3 | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `Subchunks\_%`.* TO 'qsmaster'@'localhost' WITH GRANT OPTION;
4 | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `q\_%`.* TO 'qsmaster'@'localhost' WITH GRANT OPTION;
5 |
--------------------------------------------------------------------------------
/src/tests/spdistfunc.sql:
--------------------------------------------------------------------------------
1 | delimiter //
2 | create function spdist(ra1 double, dec1 double, ra2 double, dec2 double)
3 | returns double
4 | begin
5 | declare dra double;
6 | declare ddec double;
7 | declare a double;
8 | declare b double;
9 | declare c double;
10 | set dra = radians(0.5*(ra2 - ra1));
11 | set ddec = radians(0.5*(dec2 - dec1));
12 | set a = pow(sin(ddec), 2) + cos(radians(dec1))*cos(radians(dec2))*pow(sin(dra), 2);
13 | set b = sqrt(a);
14 | set c = if(b > 1, 1, b);
15 | return degrees(2.0*asin(c));
16 | end
17 | //
18 | delimiter ;
19 |
--------------------------------------------------------------------------------
/src/wbase/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(wbase SHARED)
2 | add_dependencies(wbase proto)
3 |
4 | target_sources(wbase PRIVATE
5 | Base.cc
6 | FileChannelShared.cc
7 | SendChannel.cc
8 | Task.cc
9 | UserQueryInfo.cc
10 | WorkerCommand.cc
11 | )
12 |
13 | install(
14 | TARGETS wbase
15 | )
16 |
17 | target_include_directories(wbase PRIVATE
18 | ${XROOTD_INCLUDE_DIRS}
19 | )
20 |
21 | target_link_libraries(wbase PUBLIC
22 | boost_regex
23 | log
24 | XrdSsiLib
25 | )
26 |
--------------------------------------------------------------------------------
/src/wconfig/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(wconfig SHARED)
2 | add_dependencies(wconfig proto)
3 |
4 | target_sources(wconfig PRIVATE
5 | WorkerConfig.cc
6 | )
7 |
8 | target_link_libraries(wconfig PUBLIC
9 | log
10 | proto
11 | )
12 |
13 | install(
14 | TARGETS wconfig
15 | )
16 |
17 | add_executable(testSanityCheck testSanityCheck.cc)
18 |
19 | target_link_libraries(testSanityCheck
20 | Boost::unit_test_framework
21 | Threads::Threads
22 | )
23 |
24 | add_test(NAME testSanityCheck COMMAND testSanityCheck)
25 |
26 | install(
27 | TARGETS wconfig
28 | )
29 |
--------------------------------------------------------------------------------
/src/wcontrol/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(wcontrol SHARED)
2 | add_dependencies(wcontrol proto)
3 |
4 | target_sources(wcontrol PRIVATE
5 | Foreman.cc
6 | ResourceMonitor.cc
7 | SqlConnMgr.cc
8 | WorkerStats.cc
9 | )
10 |
11 | install(
12 | TARGETS wcontrol
13 | )
14 |
15 | target_include_directories(wcontrol PRIVATE
16 | ${XROOTD_INCLUDE_DIRS}
17 | )
18 |
19 | target_link_libraries(wcontrol PUBLIC
20 | log
21 | XrdSsiLib
22 | qhttp
23 | wdb
24 | )
25 |
--------------------------------------------------------------------------------
/src/wdb/python/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | Top level wdb module
3 | """
4 |
5 | # local imports
6 |
--------------------------------------------------------------------------------
/src/wdb/schema/migrate-1-to-2.sql:
--------------------------------------------------------------------------------
1 | --
2 | -- Migration script from version 1 to version 2 of the qservw_worker database:
3 | --
4 | -- - grant extended privileges to user 'qsmaster' for the database tables
5 | --
6 |
7 | GRANT ALL ON qservw_worker.* TO 'qsmaster'@'localhost';
8 |
--------------------------------------------------------------------------------
/src/worker/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/python/ DESTINATION ${CMAKE_INSTALL_PREFIX}/python/lsst/qserv/worker)
2 | install(DIRECTORY schema/ DESTINATION ${CMAKE_INSTALL_PREFIX}/qserv/smig/worker/schema/)
3 |
--------------------------------------------------------------------------------
/src/worker/python/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | Top level worker module
3 | """
4 |
5 |
--------------------------------------------------------------------------------
/src/wsched/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(wsched SHARED)
2 | add_dependencies(wsched proto)
3 |
4 | target_sources(wsched PRIVATE
5 | BlendScheduler.cc
6 | ChunkTasksQueue.cc
7 | GroupScheduler.cc
8 | ScanScheduler.cc
9 | SchedulerBase.cc
10 | )
11 |
12 | target_link_libraries(wsched PUBLIC
13 | log
14 | )
15 |
16 | install(
17 | TARGETS wsched
18 | )
19 |
20 | add_executable(testSchedulers testSchedulers.cc)
21 |
22 | target_include_directories(testSchedulers PRIVATE
23 | ${XROOTD_INCLUDE_DIRS}
24 | )
25 |
26 | target_link_libraries(testSchedulers PUBLIC
27 | wsched
28 | xrdsvc
29 | Boost::unit_test_framework
30 | Threads::Threads
31 | )
32 |
33 | add_test(NAME testSchedulers COMMAND testSchedulers)
34 |
--------------------------------------------------------------------------------
/src/www/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | install(
2 | DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
3 | DESTINATION ${CMAKE_INSTALL_PREFIX}/qserv/www/
4 | PATTERN "CMakeLists.txt" EXCLUDE
5 | PATTERN "README.md" EXCLUDE
6 | )
7 |
--------------------------------------------------------------------------------
/src/www/README.md:
--------------------------------------------------------------------------------
1 | This directory holds static web content served at runtime by Qserv. At present, this is principally
2 | the administration dashboard app.
3 |
4 | Contents of this directory (excepting `CMakeLists.txt` and `README.md`) will be copied to
5 | `/usr/local/qserv/www` in the Qserv run container image, and served from that location by the `qhttp` server
6 | embedded in the replication controller (see `replica/HttpProcessor.cc`.)
7 |
--------------------------------------------------------------------------------
/src/www/assets/bootstrap-icons-1.5.0/fonts/bootstrap-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/www/assets/bootstrap-icons-1.5.0/fonts/bootstrap-icons.woff
--------------------------------------------------------------------------------
/src/www/assets/bootstrap-icons-1.5.0/fonts/bootstrap-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/www/assets/bootstrap-icons-1.5.0/fonts/bootstrap-icons.woff2
--------------------------------------------------------------------------------
/src/www/dashboard.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Qserv monitoring dashboard
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/www/qserv/css/QservCzarConfig.css:
--------------------------------------------------------------------------------
1 | #fwk-qserv-czar-config-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-qserv-czar-config pre {
5 | padding: 0;
6 | margin: 0;
7 | }
8 | table#fwk-qserv-czar-config th,
9 | table#fwk-qserv-czar-config td {
10 | vertical-align: top;
11 | }
12 | table#fwk-qserv-czar-config {
13 | position: relative;
14 | }
15 | table#fwk-qserv-czar-config > thead > tr > th.sticky {
16 | position:sticky;
17 | top:80px;
18 | z-index:2;
19 | }
20 | table#fwk-qserv-czar-config caption {
21 | caption-side: top;
22 | text-align: right;
23 | padding-top: 0;
24 | }
25 | table#fwk-qserv-czar-config caption.updating {
26 | background-color: #ffeeba;
27 | }
28 |
--------------------------------------------------------------------------------
/src/www/qserv/css/QservPDAC.css:
--------------------------------------------------------------------------------
1 | span.code {
2 | font-family: "Courier New";
3 | }
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerConfig.css:
--------------------------------------------------------------------------------
1 | #fwk-worker-config-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-worker-config caption {
5 | caption-side: top;
6 | text-align: right;
7 | padding-top: 0;
8 | }
9 | table#fwk-worker-config > thead > tr > th.sticky {
10 | position:sticky;
11 | top:80px;
12 | z-index:2;
13 | }
14 | table#fwk-worker-config tbody th,
15 | table#fwk-worker-config tbody td {
16 | vertical-align:middle;
17 | }
18 | table#fwk-worker-config pre {
19 | padding: 0;
20 | margin: 0;
21 | }
22 | table#fwk-worker-config tbody > tr > td.query_toggler:hover {
23 | cursor:pointer;
24 | }
25 | table#fwk-worker-config caption.updating {
26 | background-color: #ffeeba;
27 | }
28 |
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerFiles.css:
--------------------------------------------------------------------------------
1 | #fwk-qserv-files-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-qserv-files caption {
5 | caption-side: top;
6 | text-align: right;
7 | padding-top: 0;
8 | }
9 | table#fwk-qserv-files > thead > tr > th.sticky {
10 | position:sticky;
11 | top:80px;
12 | z-index:2;
13 | }
14 | table#fwk-qserv-files tbody th,
15 | table#fwk-qserv-files tbody td {
16 | vertical-align:middle;
17 | }
18 | table#fwk-qserv-files pre {
19 | padding: 0;
20 | margin: 0;
21 | }
22 | table#fwk-qserv-files caption.updating {
23 | background-color: #ffeeba;
24 | }
25 |
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerQueries.css:
--------------------------------------------------------------------------------
1 | #fwk-qserv-queries-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-qserv-queries caption {
5 | caption-side: top;
6 | text-align: right;
7 | padding-top: 0;
8 | }
9 | table#fwk-qserv-queries tbody th,
10 | table#fwk-qserv-queries tbody td {
11 | vertical-align:top;
12 | }
13 | table#fwk-qserv-queries pre {
14 | padding: 0;
15 | margin: 0;
16 | }
17 | table#fwk-qserv-queries caption.updating {
18 | background-color: #ffeeba;
19 | }
20 | table#fwk-qserv-queries > thead > tr > th.sticky {
21 | position:sticky;
22 | top:80px;
23 | z-index:2;
24 | }
25 |
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerSchedulerHist.css:
--------------------------------------------------------------------------------
1 | #fwk-qserv-scheduler-hist-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-qserv-scheduler-hist caption {
5 | caption-side: top;
6 | text-align: right;
7 | padding-top: 0;
8 | }
9 | table#fwk-qserv-scheduler-hist > thead > tr > th.sticky {
10 | position:sticky;
11 | top:80px;
12 | z-index:2;
13 | }
14 | table#fwk-qserv-scheduler-hist tbody th,
15 | table#fwk-qserv-scheduler-hist tbody td {
16 | vertical-align:middle;
17 | }
18 | table#fwk-qserv-scheduler-hist pre {
19 | padding: 0;
20 | margin: 0;
21 | }
22 | table#fwk-qserv-scheduler-hist caption.updating {
23 | background-color: #ffeeba;
24 | }
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerSchedulers.css:
--------------------------------------------------------------------------------
1 | table#fwk-qserv-schedulers caption {
2 | caption-side: top;
3 | text-align: right;
4 | padding-top: 0;
5 | }
6 | table#fwk-qserv-schedulers tbody th,
7 | table#fwk-qserv-schedulers tbody td {
8 | vertical-align:middle;
9 | }
10 | table#fwk-qserv-schedulers pre {
11 | padding: 0;
12 | margin: 0;
13 | }
14 | table#fwk-qserv-schedulers caption.updating {
15 | background-color: #ffeeba;
16 | }
17 | table#fwk-qserv-schedulers > thead > tr > th.sticky {
18 | position:sticky;
19 | top:80px;
20 | z-index:2;
21 | }
22 |
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerTaskHist.css:
--------------------------------------------------------------------------------
1 | #fwk-qserv-task-hist-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-qserv-task-hist caption {
5 | caption-side: top;
6 | text-align: right;
7 | padding-top: 0;
8 | }
9 | table#fwk-qserv-task-hist > thead > tr > th.sticky {
10 | position:sticky;
11 | top:80px;
12 | z-index:2;
13 | }
14 | table#fwk-qserv-task-hist tbody th,
15 | table#fwk-qserv-task-hist tbody td {
16 | vertical-align:middle;
17 | }
18 | table#fwk-qserv-task-hist pre {
19 | padding: 0;
20 | margin: 0;
21 | }
22 | table#fwk-qserv-task-hist caption.updating {
23 | background-color: #ffeeba;
24 | }
--------------------------------------------------------------------------------
/src/www/qserv/css/QservWorkerTasks.css:
--------------------------------------------------------------------------------
1 | #fwk-qserv-tasks-controls label {
2 | font-weight: bold;
3 | }
4 | table#fwk-qserv-tasks caption {
5 | caption-side: top;
6 | text-align: right;
7 | padding-top: 0;
8 | }
9 | table#fwk-qserv-tasks > thead > tr > th.sticky {
10 | position:sticky;
11 | top:80px;
12 | z-index:2;
13 | }
14 | table#fwk-qserv-tasks tbody th,
15 | table#fwk-qserv-tasks tbody td {
16 | vertical-align:middle;
17 | }
18 | table#fwk-qserv-tasks pre {
19 | padding: 0;
20 | margin: 0;
21 | }
22 | table#fwk-qserv-tasks caption.updating {
23 | background-color: #ffeeba;
24 | }
25 |
--------------------------------------------------------------------------------
/src/www/qserv/css/ReplicationConfigGeneral.css:
--------------------------------------------------------------------------------
1 | table#fwk-controller-config-general pre {
2 | padding: 0;
3 | margin: 0;
4 | }
5 | table#fwk-controller-config-general th,
6 | table#fwk-controller-config-general td {
7 | vertical-align: middle;
8 | }
9 | table#fwk-controller-config-general {
10 | position: relative;
11 | }
12 | table#fwk-controller-config-general > thead > tr > th.sticky {
13 | position:sticky;
14 | top:80px;
15 | z-index:2;
16 | }
17 | table#fwk-controller-config-general caption {
18 | caption-side: top;
19 | text-align: right;
20 | padding-top: 0;
21 | }
22 | table#fwk-controller-config-general caption.updating {
23 | background-color: #ffeeba;
24 | }
25 |
--------------------------------------------------------------------------------
/src/www/qserv/css/ReplicationConfigWorkers.css:
--------------------------------------------------------------------------------
1 | table#fwk-controller-config-workers pre {
2 | padding: 0;
3 | margin: 0;
4 | }
5 | table#fwk-controller-config-workers th,
6 | table#fwk-controller-config-workers td {
7 | vertical-align: middle;
8 | }
9 | table#fwk-controller-config-workers {
10 | position: relative;
11 | }
12 | table#fwk-controller-config-workers > thead > tr > th.sticky {
13 | position:sticky;
14 | top:80px;
15 | z-index:2;
16 | }
17 | table#fwk-controller-config-workers caption {
18 | caption-side: top;
19 | text-align: right;
20 | padding-top: 0;
21 | }
22 | table#fwk-controller-config-workers caption.updating {
23 | background-color: #ffeeba;
24 | }
25 |
--------------------------------------------------------------------------------
/src/www/qserv/css/ReplicationSchema.css:
--------------------------------------------------------------------------------
1 | table#fwk-replication-schema pre {
2 | padding: 0;
3 | margin: 0;
4 | }
5 | table#fwk-replication-schema th,
6 | table#fwk-replication-schema td {
7 | vertical-align: middle;
8 | }
9 | table#fwk-replication-schema {
10 | position: relative;
11 | }
12 | table#fwk-replication-schema > thead > tr > th.sticky {
13 | position:sticky;
14 | top:80px;
15 | z-index:2;
16 | }
17 | table#fwk-replication-schema caption {
18 | caption-side: top;
19 | text-align: right;
20 | padding-top: 0;
21 | }
22 | table#fwk-replication-schema caption.updating {
23 | background-color: #ffeeba;
24 | }
25 |
--------------------------------------------------------------------------------
/src/www/qserv/css/ReplicationTools.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsst/qserv/8fdbc2fd040bc33c0fe0cd8716a607ebf3bf6600/src/www/qserv/css/ReplicationTools.css
--------------------------------------------------------------------------------
/src/www/qserv/css/StatusReplicationLevel.css:
--------------------------------------------------------------------------------
1 | table#fwk-status-level pre {
2 | padding: 0;
3 | margin: 0;
4 | }
5 | table#fwk-status-level td {
6 | vertical-align: middle;
7 | }
8 | table#fwk-status-level caption {
9 | caption-side: top;
10 | text-align: right;
11 | padding-top: 0;
12 | }
13 | table#fwk-status-level caption.updating {
14 | background-color: #ffeeba;
15 | }
16 |
--------------------------------------------------------------------------------
/src/www/qserv/css/StatusWorkers.css:
--------------------------------------------------------------------------------
1 | table#fwk-status-workers pre {
2 | padding: 0;
3 | margin: 0;
4 | }
5 | table#fwk-status-workers td {
6 | vertical-align: middle;
7 | }
8 | table#fwk-status-workers caption {
9 | caption-side: top;
10 | text-align: right;
11 | padding-top: 0;
12 | }
13 | table#fwk-status-workers caption.updating {
14 | background-color: #ffeeba;
15 | }
16 |
--------------------------------------------------------------------------------
/src/www/qserv/css/ToolsSql.css:
--------------------------------------------------------------------------------
1 | table#fwk-tools-sql-resultset pre {
2 | padding: 0;
3 | margin: 0;
4 | }
5 | table#fwk-tools-sql-resultset td {
6 | vertical-align: middle;
7 | }
8 | table#fwk-tools-sql-resultset caption {
9 | caption-side: top;
10 | text-align: right;
11 | padding-top: 0;
12 | }
13 | table#fwk-tools-sql-resultset caption.updating {
14 | background-color: #ffeeba;
15 | }
16 | table#fwk-tools-sql-resultset caption.error {
17 | text-align: left;
18 | color: maroon;
19 | }
20 | #fwk-tools-sql {
21 | padding-top: 1em;
22 | }
23 | #fwk-tools-sql div.row {
24 | margin-bottom: 1em;
25 | }
--------------------------------------------------------------------------------
/src/www/webfwk/css/Fwk.css:
--------------------------------------------------------------------------------
1 | .fwk-cont {
2 | padding: 1em;
3 | }
4 |
--------------------------------------------------------------------------------
/src/www/webfwk/css/FwkApplicationControlApp.css:
--------------------------------------------------------------------------------
1 | #fwk-uitests-appcontrol {
2 | margin-top: 1em;
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/src/www/webfwk/css/FwkTestApp.css:
--------------------------------------------------------------------------------
1 | .fwk-test-app-name {
2 | font-weight: bold;
3 | color: maroon;
4 | }
5 |
--------------------------------------------------------------------------------
/src/www/webfwk/css/SimpleTableTestApp.css:
--------------------------------------------------------------------------------
1 | #fwk-uitests-simpletable > div.table-cont {
2 | float: left;
3 | margin-right: 3em;
4 | margin-bottom: 1em;
5 | }
6 | #fwk-uitests-simpletable > div.table-cont-last {
7 | clear:both;
8 | }
9 |
10 | #fwk-uitests-simpletable table > caption {
11 | caption-side: top;
12 | text-align: left;
13 | }
--------------------------------------------------------------------------------
/src/www/webfwk/js/CSSLoader.js:
--------------------------------------------------------------------------------
1 | define({
2 | load: function (url) {
3 | var link = document.createElement("link");
4 | link.type = "text/css";
5 | link.rel = "stylesheet";
6 | link.href = url + "?bust="+new Date().getTime();
7 | document.getElementsByTagName("head")[0].appendChild(link);
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/src/www/webfwk/ws/table_data.json:
--------------------------------------------------------------------------------
1 | [[1,"a"],
2 | [2,"b"],
3 | [3,"c"],
4 | [4,"d"],
5 | [5,"e"]
6 | ]
--------------------------------------------------------------------------------
/src/xrdlog/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(xrdlog MODULE)
2 |
3 | target_sources(xrdlog PRIVATE
4 | XrdLogging.cc
5 | )
6 |
7 | target_include_directories(xrdlog PRIVATE
8 | ${XROOTD_INCLUDE_DIRS}
9 | )
10 |
11 | target_link_libraries(xrdlog PUBLIC
12 | log
13 | XrdSsiLib
14 | )
15 |
16 | install(
17 | TARGETS xrdlog DESTINATION ${CMAKE_INSTALL_LIBDIR}
18 | )
19 |
--------------------------------------------------------------------------------
/src/xrdsvc/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_library(xrdsvc SHARED)
2 | add_dependencies(xrdsvc proto)
3 |
4 | target_sources(xrdsvc PRIVATE
5 | ChannelStream.cc
6 | HttpModule.cc
7 | HttpMonitorModule.cc
8 | HttpReplicaMgtModule.cc
9 | HttpSvc.cc
10 | SsiProvider.cc
11 | SsiRequest.cc
12 | SsiService.cc
13 | StreamBuffer.cc
14 | )
15 |
16 | target_include_directories(xrdsvc PRIVATE
17 | ${XROOTD_INCLUDE_DIRS}
18 | )
19 |
20 | target_link_libraries(xrdsvc PUBLIC
21 | boost_filesystem
22 | boost_system
23 | global
24 | log
25 | mysql
26 | http
27 | sql
28 | wbase
29 | wconfig
30 | wcontrol
31 | wpublish
32 | wsched
33 | XrdSsiLib
34 | )
35 |
36 | install(
37 | TARGETS xrdsvc
38 | )
39 |
--------------------------------------------------------------------------------
/tox.ini:
--------------------------------------------------------------------------------
1 | [tox]
2 | envlist = docs,docs-linkcheck
3 | isolated_build = False
4 |
5 | [testenv]
6 | skip_install = True
7 | description = Python environment.
8 | deps =
9 | sphinx
10 | documenteer[guide]
11 |
12 | [testenv:docs]
13 | description = Build documentation (HTML) with Sphinx.
14 | commands =
15 | sphinx-build --keep-going -n -W -T -b html -d {envtmpdir}/doctrees doc doc/_build/html
16 |
17 | [testenv:docs-linkcheck]
18 | description = Check links in the documentation.
19 | allowlist_externals =
20 | make
21 | commands =
22 | make linkcheck
23 |
--------------------------------------------------------------------------------