@@ -160,6 +160,15 @@ private TaskDescription(
160160 }
161161 }
162162
163+ @ Override
164+ public final void validate (ConnectorArguments arguments ) {
165+ super .validate (arguments );
166+
167+ if (arguments .isAssessment () && arguments .hasQueryLogEarliestTimestamp ()) {
168+ throw unsupportedOption (ConnectorArguments .OPT_QUERY_LOG_EARLIEST_TIMESTAMP );
169+ }
170+ }
171+
163172 @ Nonnull
164173 @ Override
165174 public Class <? extends Enum <? extends ConnectorProperty >> getConnectorProperties () {
@@ -281,8 +290,6 @@ private String createExtendedQueryFromAccountUsage(ConnectorArguments arguments)
281290 String overrideQuery = getOverrideQuery (arguments );
282291 if (overrideQuery != null ) return overrideQuery ;
283292
284- String overrideWhere = getOverrideWhere (arguments );
285-
286293 @ SuppressWarnings ("OrphanedFormatString" )
287294 StringBuilder queryBuilder =
288295 new StringBuilder (
@@ -333,12 +340,8 @@ private String createExtendedQueryFromAccountUsage(ConnectorArguments arguments)
333340 + "WHERE end_time >= to_timestamp_ltz('%s')\n "
334341 + "AND end_time <= to_timestamp_ltz('%s')\n "
335342 + "AND is_client_generated_statement = FALSE\n " );
336- if (!StringUtils .isBlank (arguments .getQueryLogEarliestTimestamp ()))
337- queryBuilder
338- .append ("AND start_time >= " )
339- .append (arguments .getQueryLogEarliestTimestamp ())
340- .append ("\n " );
341- if (overrideWhere != null ) queryBuilder .append (" AND " ).append (overrideWhere );
343+
344+ queryBuilder .append (getOverrideWhere (arguments ));
342345 return queryBuilder .toString ().replace ('\n' , ' ' );
343346 }
344347
@@ -356,16 +359,25 @@ private String getOverrideQuery(@Nonnull ConnectorArguments arguments)
356359 return null ;
357360 }
358361
359- @ CheckForNull
362+ @ Nonnull
360363 private String getOverrideWhere (@ Nonnull ConnectorArguments arguments )
361364 throws MetadataDumperUsageException {
362- return arguments .getDefinition (SnowflakeLogConnectorProperties .OVERRIDE_WHERE );
365+ ConnectorProperty property = SnowflakeLogConnectorProperties .OVERRIDE_WHERE ;
366+ String overrideWhere = arguments .getDefinition (property );
367+ if (overrideWhere != null ) {
368+ return String .format (" AND %s" , overrideWhere );
369+ } else {
370+ return "" ;
371+ }
363372 }
364373
365374 @ Override
366375 public final void addTasksTo (
367376 @ Nonnull List <? super Task <?>> out , @ Nonnull ConnectorArguments arguments )
368377 throws MetadataDumperUsageException {
378+
379+ boolean isAssessment = arguments .isAssessment ();
380+
369381 out .add (new DumpMetadataTask (arguments , FORMAT_NAME ));
370382 out .add (new FormatTask (FORMAT_NAME ));
371383
@@ -380,7 +392,7 @@ public final void addTasksTo(
380392 arguments , rotationDuration , IntervalExpander .createBasedOnDuration (rotationDuration ));
381393 logger .info ("Exporting query log for " + queryLogIntervals );
382394
383- if (!arguments . isAssessment () ) {
395+ if (!isAssessment ) {
384396 TaskDescription queryHistoryTask =
385397 new TaskDescription (ZIP_ENTRY_PREFIX , newQueryFormat (arguments ), Header .class );
386398 queryLogIntervals .forEach (interval -> addJdbcTask (out , interval , queryHistoryTask ));
@@ -413,6 +425,13 @@ private static void addJdbcTask(
413425 out .add (new JdbcSelectTask (file , query , task .taskCategory ).withHeaderClass (task .headerClass ));
414426 }
415427
428+ private static MetadataDumperUsageException unsupportedOption (String option ) {
429+ String assessment = ConnectorArguments .OPT_ASSESSMENT ;
430+ String message =
431+ String .format ("Unsupported option used with --%s: please remove --%s" , assessment , option );
432+ return new MetadataDumperUsageException (message );
433+ }
434+
416435 private String getOverrideableQuery (
417436 @ Nullable String overrideQuery , @ Nonnull String defaultSql , @ Nonnull String whereField ) {
418437 String sql = overrideQuery != null ? overrideQuery : defaultSql ;
0 commit comments