remove_versions
The remove_versions operator removes older versions of an array.
Synopsis
remove_versions(named_array, version_id);
remove_versions(named_array, keep: count);
remove_versions(named_array);
Summary
The first form of the remove_versions operator removes all versions of an array older than the specified version_id. The second form keeps the count most recent versions, removing all earlier versions. The third form removes all but the most recent version.
Inputs
- named_array - the name of the array from which you are removing versions.
- version_id - removes all versions up to the version_id, but not including the version_id.
- keep: N - remove all but the last N versions
Examples
Using the Operator
To demonstrate remove_versions operator, do the following:
From the command shell, use iquery to create an array and store several versions of data into it:
$ iquery -aq "create array A<val:double>[i=0:4]" Query was executed successfully $ for x in $(seq 1 5) ;do iquery -naq "store(build(A, 10 + $x), A)" ;done Query was executed successfully Query was executed successfully Query was executed successfully Query was executed successfully Query was executed successfully $
Use list('arrays', true) to see all versions of the array, and inspect the values from some older versions:
$ iquery -a AFL% list('arrays', true); {No} name,uaid,aid,schema,availability,temporary,namespace {0} 'A',60,60,'A<val:double> [i=0:4:0:*]',true,false,'public' {1} 'A@1',60,61,'A@1<val:double> [i=0:4:0:1000000]',true,false,'public' {2} 'A@2',60,62,'A@2<val:double> [i=0:4:0:1000000]',true,false,'public' {3} 'A@3',60,63,'A@3<val:double> [i=0:4:0:1000000]',true,false,'public' {4} 'A@4',60,64,'A@4<val:double> [i=0:4:0:1000000]',true,false,'public' {5} 'A@5',60,65,'A@5<val:double> [i=0:4:0:1000000]',true,false,'public' AFL% AFL% scan(A@3); {i} val {0} 13 {1} 13 {2} 13 {3} 13 {4} 13 AFL% scan(A@2); {i} val {0} 12 {1} 12 {2} 12 {3} 12 {4} 12
Remove all versions earlier than version 3:
AFL% remove_versions(A, 3); Query was executed successfully AFL% AFL% list('arrays', true); {No} name,uaid,aid,schema,availability,temporary,namespace {0} 'A',60,60,'A<val:double> [i=0:4:0:*]',true,false,'public' {1} 'A@3',60,63,'A@3<val:double> [i=0:4:0:1000000]',true,false,'public' {2} 'A@4',60,64,'A@4<val:double> [i=0:4:0:1000000]',true,false,'public' {3} 'A@5',60,65,'A@5<val:double> [i=0:4:0:1000000]',true,false,'public' {4} 'foo',53,53,'foo<a:int32> [i=0:50000:0:1000]',true,false,'public'
Remove all but the last two versions:
AFL% remove_versions(A, keep: 2); Query was executed successfully AFL% AFL% list('arrays', true); {No} name,uaid,aid,schema,availability,temporary,namespace {0} 'A',60,60,'A<val:double> [i=0:4:0:*]',true,false,'public' {1} 'A@4',60,64,'A@4<val:double> [i=0:4:0:1000000]',true,false,'public' {2} 'A@5',60,65,'A@5<val:double> [i=0:4:0:1000000]',true,false,'public'
Keep the latest version, removing everything else:
AFL% remove_versions(A); Query was executed successfully AFL% AFL% list('arrays', true); {No} name,uaid,aid,schema,availability,temporary,namespace {0} 'A',60,60,'A<val:double> [i=0:4:0:*]',true,false,'public' {1} 'A@5',60,65,'A@5<val:double> [i=0:4:0:1000000]',true,false,'public'
Remove the rest of the versions of the array:
AFL% remove(A); Query was executed successfully AFL%