deepthi912 opened a new pull request, #16626:
URL: https://github.com/apache/pinot/pull/16626

   - Continuition to: https://github.com/apache/pinot/pull/16536
   
   - The PR adds in additional json fields tableConfigs and schemas in addition 
to sql. If tableConfigs and schemas are not specified, it will fallback to the 
existing logic to validating the query using cluster's table cache. This will 
be very useful when static list of table configs are scraped and fed to this 
API without having to restrict to just cluster specific table config and 
schemas list.
   
   
   **Sample Request JSON:** 
   
   
   ```
   {
     "sql": "SELECT COUNT(*) FROM mytable",
     "tableConfigs": [
       {
         "tableName": "mytable_OFFLINE",
         "tableType": "OFFLINE",
         "segmentsConfig": {
           "minimizeDataMovement": false,
           "segmentPushType": "APPEND",
           "timeColumnName": "DaysSinceEpoch",
           "replication": "1",
           "deletedSegmentsRetentionPeriod": "7d"
         },
         "tenants": {
           "broker": "DefaultTenant",
           "server": "DefaultTenant"
         },
         "tableIndexConfig": {
           "noDictionaryColumns": [
             "ActualElapsedTime",
             "ArrDelay",
             "DepDelay",
             "CRSDepTime"
           ],
           "optimizeDictionary": false,
           "rangeIndexVersion": 2,
           "aggregateMetrics": false,
           "sortedColumn": [
             "Carrier"
           ],
           "rangeIndexColumns": [
             "Origin"
           ],
           "bloomFilterColumns": [
             "FlightNum",
             "Origin"
           ],
           "nullHandlingEnabled": false,
           "loadMode": "MMAP",
           "columnMajorSegmentBuilderEnabled": true,
           "optimizeDictionaryForMetrics": false,
           "noDictionarySizeRatioThreshold": 0,
           "enableDynamicStarTreeCreation": false,
           "skipSegmentPreprocess": false,
           "autoGeneratedInvertedIndex": false,
           "enableDefaultStarTree": false,
           "optimizeDictionaryType": false,
           "invertedIndexColumns": [
             "FlightNum",
             "Origin",
             "Quarter"
           ],
           "noDictionaryCardinalityRatioThreshold": 0,
           "createInvertedIndexDuringSegmentGeneration": false
         },
         "metadata": {},
         "query": {
           "disableGroovy": false
         },
         "isDimTable": false
       },
       {}
     ],
     "schemas": [
       {
         "schemaName": "mytable",
         "enableColumnBasedNullHandling": false,
         "dimensionFieldSpecs": [
           {
             "name": "AirlineID",
             "dataType": "LONG",
             "fieldType": "DIMENSION"
           },
           {
             "name": "ArrTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "ArrTimeBlk",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "CRSArrTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "CRSDepTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "CRSElapsedTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "CancellationCode",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Carrier",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DayOfWeek",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DayofMonth",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DepTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DepTimeBlk",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Dest",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestAirportID",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestAirportSeqID",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestCityMarketID",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestCityName",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestState",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestStateFips",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestStateName",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DestWac",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Distance",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DistanceGroup",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DivActualElapsedTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DivAirportIDs",
             "dataType": "INT",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivAirportLandings",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DivAirportSeqIDs",
             "dataType": "INT",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivAirports",
             "dataType": "STRING",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivArrDelay",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DivDistance",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DivLongestGTimes",
             "dataType": "FLOAT",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivReachedDest",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "DivTailNums",
             "dataType": "STRING",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivTotalGTimes",
             "dataType": "LONG",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivWheelsOffs",
             "dataType": "INT",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "DivWheelsOns",
             "dataType": "INT",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "Diverted",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "FirstDepTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "FlightDate",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "FlightNum",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Flights",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "LongestAddGTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Month",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Origin",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginAirportID",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginAirportSeqID",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginCityMarketID",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginCityName",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginState",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginStateFips",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginStateName",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "OriginWac",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Quarter",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "RandomAirports",
             "dataType": "STRING",
             "fieldType": "DIMENSION",
             "singleValueField": false
           },
           {
             "name": "TailNum",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "TaxiIn",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "TaxiOut",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "Year",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "WheelsOn",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "WheelsOff",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           },
           {
             "name": "UniqueCarrier",
             "dataType": "STRING",
             "fieldType": "DIMENSION"
           },
           {
             "name": "TotalAddGTime",
             "dataType": "INT",
             "fieldType": "DIMENSION"
           }
         ],
         "metricFieldSpecs": [
           {
             "name": "ActualElapsedTime",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "AirTime",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "ArrDel15",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "ArrDelay",
             "dataType": "FLOAT",
             "fieldType": "METRIC"
           },
           {
             "name": "ArrivalDelayGroups",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "ArrDelayMinutes",
             "dataType": "DOUBLE",
             "fieldType": "METRIC"
           },
           {
             "name": "Cancelled",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "CarrierDelay",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "DepDel15",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "DepDelay",
             "dataType": "DOUBLE",
             "fieldType": "METRIC"
           },
           {
             "name": "DepDelayMinutes",
             "dataType": "FLOAT",
             "fieldType": "METRIC"
           },
           {
             "name": "DepartureDelayGroups",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "LateAircraftDelay",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "NASDelay",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "SecurityDelay",
             "dataType": "INT",
             "fieldType": "METRIC"
           },
           {
             "name": "WeatherDelay",
             "dataType": "INT",
             "fieldType": "METRIC"
           }
         ],
         "timeFieldSpec": {
           "incomingGranularitySpec": {
             "name": "DaysSinceEpoch",
             "dataType": "INT",
             "timeType": "DAYS"
           }
         }
       }
     ],
     "ignoreCase": false
   }
   ```
   
   Sample Request Succesful Response:
   
   ```
   {
     "errorMessage": null,
     "compiledSuccessfully": true,
     "errorCode": null
   }
   
   ```
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to