@@ -257,10 +257,23 @@ public void testProjectIncludeMultiStarPattern() {
257257 }
258258
259259 public void testProjectStar () {
260- assertProjection ("""
261- from test
262- | keep *
263- """ , "_meta_field" , "emp_no" , "first_name" , "gender" , "job" , "job.raw" , "languages" , "last_name" , "long_noidx" , "salary" );
260+ assertProjection (
261+ """
262+ from test
263+ | keep *
264+ """ ,
265+ "_meta_field" ,
266+ "emp_no" ,
267+ "first_name" ,
268+ "gender" ,
269+ "hire_date" ,
270+ "job" ,
271+ "job.raw" ,
272+ "languages" ,
273+ "last_name" ,
274+ "long_noidx" ,
275+ "salary"
276+ );
264277 }
265278
266279 public void testEscapedStar () {
@@ -293,9 +306,22 @@ public void testRenameBacktickPlusPattern() {
293306 }
294307
295308 public void testNoProjection () {
296- assertProjection ("""
297- from test
298- """ , "_meta_field" , "emp_no" , "first_name" , "gender" , "job" , "job.raw" , "languages" , "last_name" , "long_noidx" , "salary" );
309+ assertProjection (
310+ """
311+ from test
312+ """ ,
313+ "_meta_field" ,
314+ "emp_no" ,
315+ "first_name" ,
316+ "gender" ,
317+ "hire_date" ,
318+ "job" ,
319+ "job.raw" ,
320+ "languages" ,
321+ "last_name" ,
322+ "long_noidx" ,
323+ "salary"
324+ );
299325 assertProjectionTypes (
300326 """
301327 from test
@@ -304,6 +330,7 @@ public void testNoProjection() {
304330 DataType .INTEGER ,
305331 DataType .KEYWORD ,
306332 DataType .TEXT ,
333+ DataType .DATETIME ,
307334 DataType .TEXT ,
308335 DataType .KEYWORD ,
309336 DataType .INTEGER ,
@@ -325,18 +352,57 @@ public void testDuplicateProjections() {
325352 }
326353
327354 public void testProjectWildcard () {
328- assertProjection ("""
329- from test
330- | keep first_name, *, last_name
331- """ , "first_name" , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" , "last_name" );
332- assertProjection ("""
333- from test
334- | keep first_name, last_name, *
335- """ , "first_name" , "last_name" , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" );
336- assertProjection ("""
337- from test
338- | keep *, first_name, last_name
339- """ , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" , "first_name" , "last_name" );
355+ assertProjection (
356+ """
357+ from test
358+ | keep first_name, *, last_name
359+ """ ,
360+ "first_name" ,
361+ "_meta_field" ,
362+ "emp_no" ,
363+ "gender" ,
364+ "hire_date" ,
365+ "job" ,
366+ "job.raw" ,
367+ "languages" ,
368+ "long_noidx" ,
369+ "salary" ,
370+ "last_name"
371+ );
372+ assertProjection (
373+ """
374+ from test
375+ | keep first_name, last_name, *
376+ """ ,
377+ "first_name" ,
378+ "last_name" ,
379+ "_meta_field" ,
380+ "emp_no" ,
381+ "gender" ,
382+ "hire_date" ,
383+ "job" ,
384+ "job.raw" ,
385+ "languages" ,
386+ "long_noidx" ,
387+ "salary"
388+ );
389+ assertProjection (
390+ """
391+ from test
392+ | keep *, first_name, last_name
393+ """ ,
394+ "_meta_field" ,
395+ "emp_no" ,
396+ "gender" ,
397+ "hire_date" ,
398+ "job" ,
399+ "job.raw" ,
400+ "languages" ,
401+ "long_noidx" ,
402+ "salary" ,
403+ "first_name" ,
404+ "last_name"
405+ );
340406
341407 var e = expectThrows (ParsingException .class , () -> analyze ("""
342408 from test
@@ -359,22 +425,74 @@ public void testProjectMixedWildcard() {
359425 from test
360426 | keep *ob*, first_name, *name, first*
361427 """ , "job" , "job.raw" , "first_name" , "last_name" );
362- assertProjection ("""
363- from test
364- | keep first_name, *, *name
365- """ , "first_name" , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" , "last_name" );
366- assertProjection ("""
367- from test
368- | keep first*, *, last_name, first_name
369- """ , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" , "last_name" , "first_name" );
370- assertProjection ("""
371- from test
372- | keep first*, *, last_name, fir*
373- """ , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" , "last_name" , "first_name" );
374- assertProjection ("""
375- from test
376- | keep *, job*
377- """ , "_meta_field" , "emp_no" , "first_name" , "gender" , "languages" , "last_name" , "long_noidx" , "salary" , "job" , "job.raw" );
428+ assertProjection (
429+ """
430+ from test
431+ | keep first_name, *, *name
432+ """ ,
433+ "first_name" ,
434+ "_meta_field" ,
435+ "emp_no" ,
436+ "gender" ,
437+ "hire_date" ,
438+ "job" ,
439+ "job.raw" ,
440+ "languages" ,
441+ "long_noidx" ,
442+ "salary" ,
443+ "last_name"
444+ );
445+ assertProjection (
446+ """
447+ from test
448+ | keep first*, *, last_name, first_name
449+ """ ,
450+ "_meta_field" ,
451+ "emp_no" ,
452+ "gender" ,
453+ "hire_date" ,
454+ "job" ,
455+ "job.raw" ,
456+ "languages" ,
457+ "long_noidx" ,
458+ "salary" ,
459+ "last_name" ,
460+ "first_name"
461+ );
462+ assertProjection (
463+ """
464+ from test
465+ | keep first*, *, last_name, fir*
466+ """ ,
467+ "_meta_field" ,
468+ "emp_no" ,
469+ "gender" ,
470+ "hire_date" ,
471+ "job" ,
472+ "job.raw" ,
473+ "languages" ,
474+ "long_noidx" ,
475+ "salary" ,
476+ "last_name" ,
477+ "first_name"
478+ );
479+ assertProjection (
480+ """
481+ from test
482+ | keep *, job*
483+ """ ,
484+ "_meta_field" ,
485+ "emp_no" ,
486+ "first_name" ,
487+ "gender" ,
488+ "hire_date" ,
489+ "languages" ,
490+ "last_name" ,
491+ "long_noidx" ,
492+ "salary" ,
493+ "job" ,
494+ "job.raw"
495+ );
378496 }
379497
380498 public void testProjectThenDropName () {
@@ -406,21 +524,34 @@ public void testProjectDropPattern() {
406524 from test
407525 | keep *
408526 | drop *_name
409- """ , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" );
527+ """ , "_meta_field" , "emp_no" , "gender" , "hire_date" , " job" , "job.raw" , "languages" , "long_noidx" , "salary" );
410528 }
411529
412530 public void testProjectDropNoStarPattern () {
413531 assertProjection ("""
414532 from test
415533 | drop *_name
416- """ , "_meta_field" , "emp_no" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" );
534+ """ , "_meta_field" , "emp_no" , "gender" , "hire_date" , " job" , "job.raw" , "languages" , "long_noidx" , "salary" );
417535 }
418536
419537 public void testProjectOrderPatternWithRest () {
420- assertProjection ("""
421- from test
422- | keep *name, *, emp_no
423- """ , "first_name" , "last_name" , "_meta_field" , "gender" , "job" , "job.raw" , "languages" , "long_noidx" , "salary" , "emp_no" );
538+ assertProjection (
539+ """
540+ from test
541+ | keep *name, *, emp_no
542+ """ ,
543+ "first_name" ,
544+ "last_name" ,
545+ "_meta_field" ,
546+ "gender" ,
547+ "hire_date" ,
548+ "job" ,
549+ "job.raw" ,
550+ "languages" ,
551+ "long_noidx" ,
552+ "salary" ,
553+ "emp_no"
554+ );
424555 }
425556
426557 public void testProjectDropPatternAndKeepOthers () {
@@ -559,7 +690,7 @@ public void testDropPatternUnsupportedFields() {
559690 assertProjection ("""
560691 from test
561692 | drop *ala*
562- """ , "_meta_field" , "emp_no" , "first_name" , "gender" , "job" , "job.raw" , "languages" , "last_name" , "long_noidx" );
693+ """ , "_meta_field" , "emp_no" , "first_name" , "gender" , "hire_date" , " job" , "job.raw" , "languages" , "last_name" , "long_noidx" );
563694 }
564695
565696 public void testDropUnsupportedPattern () {
@@ -629,7 +760,7 @@ public void testRenameReuseAlias() {
629760 assertProjection ("""
630761 from test
631762 | rename emp_no as e, first_name as e
632- """ , "_meta_field" , "e" , "gender" , "job" , "job.raw" , "languages" , "last_name" , "long_noidx" , "salary" );
763+ """ , "_meta_field" , "e" , "gender" , "hire_date" , " job" , "job.raw" , "languages" , "last_name" , "long_noidx" , "salary" );
633764 }
634765
635766 public void testRenameUnsupportedSubFieldAndResolved () {
@@ -1942,6 +2073,7 @@ public void testLookup() {
19422073 .item (startsWith ("emp_no{f}" ))
19432074 .item (startsWith ("first_name{f}" ))
19442075 .item (startsWith ("gender{f}" ))
2076+ .item (startsWith ("hire_date{f}" ))
19452077 .item (startsWith ("job{f}" ))
19462078 .item (startsWith ("job.raw{f}" ))
19472079 /*
0 commit comments