Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-27273

Migrate BLOB/TEXT columns of table gaia_02.gaia_source to VARCHAR/CHAR in the small Qserv cluster

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: Qserv
    • Labels:
      None

      Description

      The BLOB/TEXT columns of table gaia_2.gaia_source prevent Qserv from materializing sub-chunks as MEMORY storage engine tables during the spatial join operations. The query that triggered the problem was:

      SELECT o1.source_id as id1, o2.source_id as id2,
            scisql_angSep(o1.ra, o1.decl, o2.ra, o2.dec) as distance
          FROM wise_01.allwise_p3as_psd o1, gaia_dr2_02.gaia_source o2
          WHERE scisql_s2PtInCircle(o1.ra, o1.decl, 1.0, -1.0, 0.1)=1
            AND scisql_angSep(o1.ra, o1.decl, o2.ra, o2.dec) < 0.001
      

      The relevant message reported by Qserv was:

      OperationalError: (4120, "Unable to return query results:\n[1470] Error(s) in result for chunk #113562: [1163] Storage engine MEMORY doesn't support BLOB/TEXT columns Error retrieving results for query: CREATE DATABASE IF NOT EXISTS Subchunks_gaia_dr2_02_113562;CREATE TABLE IF NOT EXISTS Subchunks_gaia_dr2_02_113562.gaia_source_113562_24 ENGINE = MEMORY AS SELECT * FROM gaia_dr2_02.gaia_source_113562 WHERE subChunkId = 24;CREATE TABLE IF NOT EXISTS Subchunks_gaia_dr2_02_113562.gaia_sourceFullOverlap_113562_24 ENGINE = MEMORY AS SELE")
      

      And indeed, according to MySQL documentaton on the MEMORY storage engine: https://dev.mysql.com/doc/refman/8.0/en/memory-storage-engine.html

      MEMORY tables cannot contain BLOB or TEXT columns.
      

      The good news is that the VARCHAR/CHAR type is still supported with some restrictions:

      MEMORY tables use a fixed-length row-storage format. Variable-length types such as VARCHAR are stored using a fixed length.
      

      Hence, a goal of this effort is to see if migrating the BLOB/TEXT columns of the problematic table to VARCHAR/CHAR will address the problem as a temporary workaround before a permanent one would be found.

      The fixup required extending the Replication System to add a distributed operation for parallel processing of the SQL statement:

      ALTER TABLE <table> ...
      

      Required code development

      The change required adding support for this operation in the Replication System's Framwork, and implementing a REST service in the Master Repolication Controller. Further details on the implementation can be found in the qserv ticket branch (PR) linked by the ticket. The new code adds the following services:

      method service description
      GET /replication/sql/table/schema return a schema of an existing table
      PUT /replication/sql/table/schema update a schema of an existing table in Qserv master MySQL, CSS and in all relevant tables at workers

      The services need to be documented.

        Attachments

          Issue Links

            Activity

            Hide
            gapon Igor Gaponenko added a comment - - edited

            Deploying and using the new REST services in the "small" cluster to fix the problematic GAIA table

            At this step, the problematic table gaia_dr2_02.gaia_source is going to be fixed.

            Deploying the REST services

            A development version of the Replication/Ingest system's tools packaged into Docker container qserv/replica:tools-DM-27273 was deployed in the cluster.

            Using the schema retrieval service

            % curl http://localhost:25080/replication/sql/table/schema \
              -X GET \
              -H 'Content-Type: application/json' \
              -d'{"database":"gaia_dr2_02","table":"gaia_source"}'
            

            {"error":"",
             "error_ext":{},
             "schema":{
             "gaia_dr2_02":{
               "gaia_source":[
                 {"CHARACTER_MAXIMUM_LENGTH":"NULL",
                  "COLUMN_COMMENT":"",
                  "COLUMN_DEFAULT":"NULL",
                  "COLUMN_NAME":"qserv_trans_id",
                  "COLUMN_TYPE":"int(11)",
                  "DATA_TYPE":"int",
                  "IS_NULLABLE":"NO",
                  ...
            

            That worked as expected.

            Modifying the schema

            Column designation:

            curl http://localhost:25080/replication/sql/table/schema \
              -X PUT \
              -H 'Content-Type: application/json' \
              -d'{"auth_key":"*****","database":"gaia_dr2_02","table":"gaia_source","spec":"MODIFY COLUMN `designation` varchar(28)"}' >& \
               gaia_dr2_02.gaia_source.designation.log&
            

            Column phot_variable_flag:

            curl http://localhost:25080/replication/sql/table/schema \
              -X PUT \
              -H 'Content-Type: application/json' \
              -d'{"auth_key":"*****","database":"gaia_dr2_02","table":"gaia_source","spec":"MODIFY COLUMN `phot_variable_flag ` varchar(13)"}' >& \
               gaia_dr2_02.gaia_source. phot_variable_flag.log&
            

            Show
            gapon Igor Gaponenko added a comment - - edited Deploying and using the new REST services in the "small" cluster to fix the problematic GAIA table At this step, the problematic table gaia_dr2_02.gaia_source is going to be fixed. Deploying the REST services A development version of the Replication/Ingest system's tools packaged into Docker container qserv/replica:tools- DM-27273 was deployed in the cluster. Using the schema retrieval service % curl http: //localhost :25080 /replication/sql/table/schema \ -X GET \ -H 'Content-Type: application/json' \ -d '{"database":"gaia_dr2_02","table":"gaia_source"}' {"error":"", "error_ext":{}, "schema":{ "gaia_dr2_02":{ "gaia_source":[ {"CHARACTER_MAXIMUM_LENGTH":"NULL", "COLUMN_COMMENT":"", "COLUMN_DEFAULT":"NULL", "COLUMN_NAME":"qserv_trans_id", "COLUMN_TYPE":"int(11)", "DATA_TYPE":"int", "IS_NULLABLE":"NO", ... That worked as expected. Modifying the schema Column designation : curl http: //localhost :25080 /replication/sql/table/schema \ -X PUT \ -H 'Content-Type: application/json' \ -d '{"auth_key":"*****","database":"gaia_dr2_02","table":"gaia_source","spec":"MODIFY COLUMN `designation` varchar(28)"}' >& \ gaia_dr2_02.gaia_source.designation.log& Column phot_variable_flag : curl http: //localhost :25080 /replication/sql/table/schema \ -X PUT \ -H 'Content-Type: application/json' \ -d '{"auth_key":"*****","database":"gaia_dr2_02","table":"gaia_source","spec":"MODIFY COLUMN `phot_variable_flag ` varchar(13)"}' >& \ gaia_dr2_02.gaia_source. phot_variable_flag.log&
            Hide
            gapon Igor Gaponenko added a comment - - edited

            Testing results of the fix-up in "small" Qserv

            Launched the following query against the modified version of catalog gaia_dr2_02 and a compatible catalog wise_01:

            SELECT o1.source_id as id1, o2.source_id AS id2, scisql_angSep(o1.ra,o1.dec,o2.ra,o2.dec) AS distance
                FROM wise_01.allwise_p3as_psd o1, gaia_dr2_02.gaia_source o2
                WHERE scisql_s2PtInCircle(o1.ra,o1.dec,1.0,-1.0,0.1)=1
                    AND scisql_angSep(o1.ra,o1.dec,o2.ra,o2.dec) < 0.001;
            

            +----------------------+---------------------+-------------------------+
            | id1                  | id2                 | distance                |
            +----------------------+---------------------+-------------------------+
            | 0015m016_ac51-042688 | 2449599657716194176 | 0.000028530344874085706 |
            | 0015m016_ac51-043660 | 2449599653421521024 |  0.00016206806136794327 |
            | 0015m016_ac51-062536 | 2449601165248659328 |   0.0003853343413784493 |
            | 0015m016_ac51-062560 | 2449604360704946944 |   0.0000978455996804876 |
            | 0015m016_ac51-062232 | 2449604188905639040 |  0.00006438808694379295 |
            | 0015m016_ac51-062496 | 2449601371407252096 |   0.0001216756982413266 |
            | 0015m016_ac51-062473 | 2449604979179647616 | 0.000038803918735061696 |
            | 0015m016_ac51-062263 | 2449605017835383424 |   0.0009738974909012332 |
            | 0015m016_ac51-062656 | 2449604326344752768 |  0.00030781022950480117 |
            | 0015m016_ac51-062204 | 2449604708597738496 |  0.00019148718693310835 |
            | 0015m016_ac51-062229 | 2449605189634075136 |  0.00001721180946775369 |
            | 0015m016_ac51-062594 | 2449601233968748928 |  0.00006203535599732061 |
            | 0015m016_ac51-062279 | 2449605185338091776 |  0.00000944739196667529 |
            | 0015m016_ac51-062259 | 2449601371407102976 | 0.000047691287313402556 |
            | 0015m016_ac51-064829 | 2449652777871710208 | 0.000014602372777976272 |
            | 0015m016_ac51-064776 | 2449606186066486784 |  0.00020577681332239678 |
            | 0015m016_ac51-064776 | 2449606186066486912 |  0.00046094373840490353 |
            | 0015m016_ac51-062210 | 2449605911188580224 | 0.000022002168874283268 |
            | 0015m016_ac51-064941 | 2449603639149828864 |  0.00003692990597261543 |
            | 0015m016_ac51-064972 | 2449650883790099200 |  0.00013740559249886177 |
            | 0015m016_ac51-062285 | 2449604571158784768 |   0.0001544776330490925 |
            | 0015m016_ac51-064818 | 2449604429423815552 | 0.000012274834662533213 |
            | 0015m016_ac51-064864 | 2449603810948530688 |  0.00006540947970572555 |
            | 0015m016_ac51-065149 | 2449602917595318784 |  0.00016264771065796613 |
            | 0015m016_ac51-065253 | 2449602990610801024 |  0.00004131339230243834 |
            | 0015m016_ac51-064868 | 2449605876828841984 |  0.00015782447825256755 |
            | 0015m016_ac51-065004 | 2449604120186191744 |  0.00003892997617147919 |
            | 0015m016_ac51-064765 | 2449606186066487040 | 0.000016318275041591663 |
            | 0015m016_ac51-041232 | 2449602470919010944 |  0.00039505930829419455 |
            | 0015m016_ac51-065190 | 2449653082813386368 |  0.00004184502060457629 |
            | 0015m016_ac51-043247 | 2449599722139637504 |  0.00022723558758687122 |
            | 0015m016_ac51-064804 | 2449604502439303680 |  0.00003816057814222419 |
            | 0015m016_ac51-064788 | 2449605601950915072 | 0.000031078920134298435 |
            | 0015m016_ac51-064783 | 2449652743511971968 | 0.000032232069769543196 |
            | 0015m016_ac51-064894 | 2449602921891373952 |    0.000593499584887391 |
            | 0015m016_ac51-041188 | 2449602402199398400 |  0.00004919689026577382 |
            | 0015m016_ac51-065322 | 2449605357136765696 |  0.00007493650537652598 |
            | 0015m016_ac51-064792 | 2449650956805560576 | 0.000014106365528018681 |
            | 0015m016_ac51-062825 | 2449602677077146752 |  0.00005523156109104025 |
            | 0015m016_ac51-062608 | 2449602677077145984 |  0.00005598783000656607 |
            | 0015m016_ac51-066004 | 2449604051467248768 |  0.00032081084243776347 |
            | 0015m016_ac51-064971 | 2449602883235577472 |  0.00007348431392978068 |
            | 0015m016_ac51-064799 | 2449603609086091392 |  0.00004216736067872599 |
            | 0015m016_ac51-065459 | 2449653082813385728 |  0.00023465900024476405 |
            | 0015m016_ac51-065852 | 2449651055589327232 |  0.00031792186963396465 |
            | 0015m016_ac51-062200 | 2449605808109365376 |   0.0004652537979712973 |
            | 0015m016_ac51-062200 | 2449605808108194688 |  0.00005586158435078565 |
            | 0015m016_ac51-065035 | 2449650991165298816 | 0.000015302061944663144 |
            | 0015m016_ac51-041268 | 2449602780156358656 |  0.00025910234407740886 |
            | 0015m016_ac51-064800 | 2449652567417302912 |   0.0000420820162847675 |
            | 0015m016_ac51-065025 | 2449652880949674624 |  0.00010994610242938697 |
            | 0015m016_ac51-065375 | 2449605494575730176 |   0.0001499527870182258 |
            | 0015m016_ac51-065766 | 2449650471473514240 |  0.00004898191782551629 |
            | 0015m016_ac51-064805 | 2449605601950914944 | 0.000007114381171723749 |
            | 0015m016_ac51-062361 | 2449604639877257600 |  0.00009441587051671416 |
            | 0015m016_ac51-065557 | 2449603226832960384 |  0.00032089887027954766 |
            | 0015m016_ac51-064771 | 2449606151706760832 | 0.000013011497540563434 |
            | 0015m016_ac51-065041 | 2449650505832972928 |    0.000082722933530476 |
            | 0015m016_ac51-065487 | 2449651021229058176 | 0.000024110791318788434 |
            | 0015m016_ac51-066196 | 2449604223265604224 |   0.0002650365032752145 |
            | 0015m016_ac51-064905 | 2449604124482165760 |  0.00006341189123586907 |
            | 0015m016_ac51-040224 | 2449603192473216896 |  0.00004137204261677892 |
            | 0015m016_ac51-065220 | 2449650952509578112 |  0.00009187324372247836 |
            | 0015m016_ac51-064791 | 2449651162963990144 |  0.00001531800317327851 |
            | 0015m016_ac51-062854 | 2449606113051035008 |   0.0007020655162017366 |
            | 0015m016_ac51-040247 | 2449602470918708992 |  0.00002943939584383453 |
            | 0015m016_ac51-064903 | 2449602745796628736 |  0.00007033030869213263 |
            | 0015m016_ac51-064784 | 2449605361432762624 |  0.00001241999658633202 |
            | 0015m016_ac51-064831 | 2449606289145701760 | 0.000028501666554383944 |
            | 0015m016_ac51-065189 | 2449653185892607232 |   0.0000710830324016788 |
            | 0015m016_ac51-066093 | 2449653014094159872 |   0.0001064697057476423 |
            | 0015m016_ac51-040308 | 2449602642717405568 |  0.00005188508907892857 |
            | 0015m016_ac51-042749 | 2449599692075932416 |  0.00010379129060501254 |
            | 0015m016_ac51-064770 | 2449603780884782720 |    0.000328120446677241 |
            | 0015m016_ac51-064901 | 2449603879668001152 |   0.0000216327353005157 |
            | 0015m016_ac51-040193 | 2449602337775772672 |  0.00003368941669453333 |
            | 0015m016_ac51-040162 | 2449599554636965504 | 0.000013585327821446151 |
            | 0015m016_ac51-040710 | 2449602058603157504 |   0.0004268989066446467 |
            | 0015m016_ac51-040210 | 2449602337775772544 | 0.000016118219213864255 |
            | 0015m016_ac51-040184 | 2449599588996704000 |  0.00008147876898528102 |
            | 0015m016_ac51-040191 | 2449602367839481088 |  0.00016137801957851679 |
            | 0015m016_ac51-040311 | 2449602436558963328 |  0.00003271832491660157 |
            | 0015m016_ac51-040145 | 2449599554636966144 |  0.00003895628960715342 |
            | 0015m016_ac51-040145 | 2449599554636966272 |   0.0005923786659518741 |
            | 0015m016_ac51-040264 | 2449599515981192704 |  0.00020997951458294576 |
            | 0015m016_ac51-040160 | 2449602543934203392 | 0.000029180943893137694 |
            | 0015m016_ac51-040418 | 2449602578293941504 |  0.00004216132489471942 |
            | 0015m016_ac51-041117 | 2449599103664326144 |   0.0001499451786892881 |
            | 0015m016_ac51-040586 | 2449602505279736192 |  0.00029647173517266176 |
            +----------------------+---------------------+-------------------------+
            89 rows in set (0.58 sec)
            

            Show
            gapon Igor Gaponenko added a comment - - edited Testing results of the fix-up in "small" Qserv Launched the following query against the modified version of catalog gaia_dr2_02 and a compatible catalog wise_01 : SELECT o1.source_id as id1, o2.source_id AS id2, scisql_angSep(o1.ra,o1. dec ,o2.ra,o2. dec ) AS distance FROM wise_01.allwise_p3as_psd o1, gaia_dr2_02.gaia_source o2 WHERE scisql_s2PtInCircle(o1.ra,o1. dec ,1.0,-1.0,0.1)=1 AND scisql_angSep(o1.ra,o1. dec ,o2.ra,o2. dec ) < 0.001; + ----------------------+---------------------+-------------------------+ | id1 | id2 | distance | + ----------------------+---------------------+-------------------------+ | 0015m016_ac51-042688 | 2449599657716194176 | 0.000028530344874085706 | | 0015m016_ac51-043660 | 2449599653421521024 | 0.00016206806136794327 | | 0015m016_ac51-062536 | 2449601165248659328 | 0.0003853343413784493 | | 0015m016_ac51-062560 | 2449604360704946944 | 0.0000978455996804876 | | 0015m016_ac51-062232 | 2449604188905639040 | 0.00006438808694379295 | | 0015m016_ac51-062496 | 2449601371407252096 | 0.0001216756982413266 | | 0015m016_ac51-062473 | 2449604979179647616 | 0.000038803918735061696 | | 0015m016_ac51-062263 | 2449605017835383424 | 0.0009738974909012332 | | 0015m016_ac51-062656 | 2449604326344752768 | 0.00030781022950480117 | | 0015m016_ac51-062204 | 2449604708597738496 | 0.00019148718693310835 | | 0015m016_ac51-062229 | 2449605189634075136 | 0.00001721180946775369 | | 0015m016_ac51-062594 | 2449601233968748928 | 0.00006203535599732061 | | 0015m016_ac51-062279 | 2449605185338091776 | 0.00000944739196667529 | | 0015m016_ac51-062259 | 2449601371407102976 | 0.000047691287313402556 | | 0015m016_ac51-064829 | 2449652777871710208 | 0.000014602372777976272 | | 0015m016_ac51-064776 | 2449606186066486784 | 0.00020577681332239678 | | 0015m016_ac51-064776 | 2449606186066486912 | 0.00046094373840490353 | | 0015m016_ac51-062210 | 2449605911188580224 | 0.000022002168874283268 | | 0015m016_ac51-064941 | 2449603639149828864 | 0.00003692990597261543 | | 0015m016_ac51-064972 | 2449650883790099200 | 0.00013740559249886177 | | 0015m016_ac51-062285 | 2449604571158784768 | 0.0001544776330490925 | | 0015m016_ac51-064818 | 2449604429423815552 | 0.000012274834662533213 | | 0015m016_ac51-064864 | 2449603810948530688 | 0.00006540947970572555 | | 0015m016_ac51-065149 | 2449602917595318784 | 0.00016264771065796613 | | 0015m016_ac51-065253 | 2449602990610801024 | 0.00004131339230243834 | | 0015m016_ac51-064868 | 2449605876828841984 | 0.00015782447825256755 | | 0015m016_ac51-065004 | 2449604120186191744 | 0.00003892997617147919 | | 0015m016_ac51-064765 | 2449606186066487040 | 0.000016318275041591663 | | 0015m016_ac51-041232 | 2449602470919010944 | 0.00039505930829419455 | | 0015m016_ac51-065190 | 2449653082813386368 | 0.00004184502060457629 | | 0015m016_ac51-043247 | 2449599722139637504 | 0.00022723558758687122 | | 0015m016_ac51-064804 | 2449604502439303680 | 0.00003816057814222419 | | 0015m016_ac51-064788 | 2449605601950915072 | 0.000031078920134298435 | | 0015m016_ac51-064783 | 2449652743511971968 | 0.000032232069769543196 | | 0015m016_ac51-064894 | 2449602921891373952 | 0.000593499584887391 | | 0015m016_ac51-041188 | 2449602402199398400 | 0.00004919689026577382 | | 0015m016_ac51-065322 | 2449605357136765696 | 0.00007493650537652598 | | 0015m016_ac51-064792 | 2449650956805560576 | 0.000014106365528018681 | | 0015m016_ac51-062825 | 2449602677077146752 | 0.00005523156109104025 | | 0015m016_ac51-062608 | 2449602677077145984 | 0.00005598783000656607 | | 0015m016_ac51-066004 | 2449604051467248768 | 0.00032081084243776347 | | 0015m016_ac51-064971 | 2449602883235577472 | 0.00007348431392978068 | | 0015m016_ac51-064799 | 2449603609086091392 | 0.00004216736067872599 | | 0015m016_ac51-065459 | 2449653082813385728 | 0.00023465900024476405 | | 0015m016_ac51-065852 | 2449651055589327232 | 0.00031792186963396465 | | 0015m016_ac51-062200 | 2449605808109365376 | 0.0004652537979712973 | | 0015m016_ac51-062200 | 2449605808108194688 | 0.00005586158435078565 | | 0015m016_ac51-065035 | 2449650991165298816 | 0.000015302061944663144 | | 0015m016_ac51-041268 | 2449602780156358656 | 0.00025910234407740886 | | 0015m016_ac51-064800 | 2449652567417302912 | 0.0000420820162847675 | | 0015m016_ac51-065025 | 2449652880949674624 | 0.00010994610242938697 | | 0015m016_ac51-065375 | 2449605494575730176 | 0.0001499527870182258 | | 0015m016_ac51-065766 | 2449650471473514240 | 0.00004898191782551629 | | 0015m016_ac51-064805 | 2449605601950914944 | 0.000007114381171723749 | | 0015m016_ac51-062361 | 2449604639877257600 | 0.00009441587051671416 | | 0015m016_ac51-065557 | 2449603226832960384 | 0.00032089887027954766 | | 0015m016_ac51-064771 | 2449606151706760832 | 0.000013011497540563434 | | 0015m016_ac51-065041 | 2449650505832972928 | 0.000082722933530476 | | 0015m016_ac51-065487 | 2449651021229058176 | 0.000024110791318788434 | | 0015m016_ac51-066196 | 2449604223265604224 | 0.0002650365032752145 | | 0015m016_ac51-064905 | 2449604124482165760 | 0.00006341189123586907 | | 0015m016_ac51-040224 | 2449603192473216896 | 0.00004137204261677892 | | 0015m016_ac51-065220 | 2449650952509578112 | 0.00009187324372247836 | | 0015m016_ac51-064791 | 2449651162963990144 | 0.00001531800317327851 | | 0015m016_ac51-062854 | 2449606113051035008 | 0.0007020655162017366 | | 0015m016_ac51-040247 | 2449602470918708992 | 0.00002943939584383453 | | 0015m016_ac51-064903 | 2449602745796628736 | 0.00007033030869213263 | | 0015m016_ac51-064784 | 2449605361432762624 | 0.00001241999658633202 | | 0015m016_ac51-064831 | 2449606289145701760 | 0.000028501666554383944 | | 0015m016_ac51-065189 | 2449653185892607232 | 0.0000710830324016788 | | 0015m016_ac51-066093 | 2449653014094159872 | 0.0001064697057476423 | | 0015m016_ac51-040308 | 2449602642717405568 | 0.00005188508907892857 | | 0015m016_ac51-042749 | 2449599692075932416 | 0.00010379129060501254 | | 0015m016_ac51-064770 | 2449603780884782720 | 0.000328120446677241 | | 0015m016_ac51-064901 | 2449603879668001152 | 0.0000216327353005157 | | 0015m016_ac51-040193 | 2449602337775772672 | 0.00003368941669453333 | | 0015m016_ac51-040162 | 2449599554636965504 | 0.000013585327821446151 | | 0015m016_ac51-040710 | 2449602058603157504 | 0.0004268989066446467 | | 0015m016_ac51-040210 | 2449602337775772544 | 0.000016118219213864255 | | 0015m016_ac51-040184 | 2449599588996704000 | 0.00008147876898528102 | | 0015m016_ac51-040191 | 2449602367839481088 | 0.00016137801957851679 | | 0015m016_ac51-040311 | 2449602436558963328 | 0.00003271832491660157 | | 0015m016_ac51-040145 | 2449599554636966144 | 0.00003895628960715342 | | 0015m016_ac51-040145 | 2449599554636966272 | 0.0005923786659518741 | | 0015m016_ac51-040264 | 2449599515981192704 | 0.00020997951458294576 | | 0015m016_ac51-040160 | 2449602543934203392 | 0.000029180943893137694 | | 0015m016_ac51-040418 | 2449602578293941504 | 0.00004216132489471942 | | 0015m016_ac51-041117 | 2449599103664326144 | 0.0001499451786892881 | | 0015m016_ac51-040586 | 2449602505279736192 | 0.00029647173517266176 | + ----------------------+---------------------+-------------------------+ 89 rows in set (0.58 sec)
            Show
            gapon Igor Gaponenko added a comment - PR: https://github.com/lsst/qserv/pull/575
            Hide
            jgates John Gates added a comment -

            Some minor comments. There's some code duplication that I think can be improved. Do what you will with it.

            Show
            jgates John Gates added a comment - Some minor comments. There's some code duplication that I think can be improved. Do what you will with it.
            Hide
            gapon Igor Gaponenko added a comment -

            John Gates all suggestions make sense. The code duplication in the worker's SQL query generator has been eliminated.

            Show
            gapon Igor Gaponenko added a comment - John Gates all suggestions make sense. The code duplication in the worker's SQL query generator has been eliminated.

              People

              Assignee:
              gapon Igor Gaponenko
              Reporter:
              gapon Igor Gaponenko
              Reviewers:
              John Gates
              Watchers:
              Fritz Mueller, Igor Gaponenko, John Gates, Nate Pease
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: