Add FluidDataSetQuery help
parent
148ca0ac10
commit
1d8652df93
@ -0,0 +1,140 @@
|
||||
TITLE:: FluidDataSetQuery
|
||||
summary:: Query a FluidDataSet
|
||||
categories:: UGens>FluidManipulation
|
||||
related:: Classes/FluidDataSet
|
||||
|
||||
DESCRIPTION::
|
||||
A selection of columns and a set of conditions that match rows of a FluidDataSet.
|
||||
Use to filter and search in a database of descriptors.
|
||||
|
||||
CLASSMETHODS::
|
||||
|
||||
METHOD:: new
|
||||
Make a new instance
|
||||
ARGUMENT:: server
|
||||
The server on which to run this object
|
||||
|
||||
INSTANCEMETHODS::
|
||||
|
||||
PRIVATE:: init
|
||||
|
||||
METHOD:: addColumn
|
||||
Add a column to the query
|
||||
ARGUMENT:: column
|
||||
Column index
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
METHOD:: addRange
|
||||
Add a range of columns to the query
|
||||
ARGUMENT:: start
|
||||
First index
|
||||
ARGUMENT:: count
|
||||
Number of columns
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
METHOD:: filter
|
||||
Filter rows according to some condition.
|
||||
|
||||
Example: (3, ">", 0.5) filters rows where the value of the 4th column (starting at 0) is larger than 0.5.
|
||||
ARGUMENT:: column
|
||||
Column index
|
||||
ARGUMENT:: condition
|
||||
Condition string. Possible values: "==", "!=", "<", "<=", ">", ">="
|
||||
ARGUMENT:: value
|
||||
Condition value
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
METHOD:: and
|
||||
Add a condition to an existing filter with an "and" connector.
|
||||
ARGUMENT:: column
|
||||
Column index
|
||||
ARGUMENT:: condition
|
||||
Condition string. Possible values: "==", "!=", "<", "<=", ">", ">="
|
||||
ARGUMENT:: value
|
||||
Condition value
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
|
||||
METHOD:: or
|
||||
Add a condition to an existing filter with an "or" connector.
|
||||
ARGUMENT:: column
|
||||
Column index
|
||||
ARGUMENT:: condition
|
||||
Condition string. Possible values: "==", "!=", "<", "<=", ">", ">="
|
||||
ARGUMENT:: value
|
||||
Condition value
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
METHOD:: limit
|
||||
Limit the number of resulting rows.
|
||||
ARGUMENT:: rows
|
||||
Maximum number of rows
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
METHOD:: reset
|
||||
Clear the query, remove all columns, filters and limit.
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
METHOD:: transform
|
||||
Apply the query to a source link::Classes/FluidDataSet:: and write to a destination. Can be the same.
|
||||
ARGUMENT:: sourceDataset
|
||||
Source data, or the dataset name
|
||||
ARGUMENT:: destDataset
|
||||
Destination data, or the dataset name
|
||||
ARGUMENT:: action
|
||||
Run when done
|
||||
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
code::
|
||||
|
||||
s.boot;
|
||||
|
||||
|
||||
// Create a dataset with random data
|
||||
~dataset= FluidDataSet(s,\help_fluid_dataset_query);
|
||||
|
||||
(
|
||||
~points = 100.collect{24.collect{100.rand}};
|
||||
~dataset.clear;
|
||||
~tmpbuf = Buffer.alloc(s,24);
|
||||
|
||||
fork{
|
||||
s.sync;
|
||||
~points.do{|x,i|
|
||||
~tmpbuf.setn(0,x);
|
||||
~dataset.addPoint(i,~tmpbuf);
|
||||
s.sync
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// Prepare a FluidDataSetQuery object
|
||||
~query = FluidDataSetQuery.new;
|
||||
~query.reset;
|
||||
~query.addColumn(5);
|
||||
~query.addRange(0,2);
|
||||
|
||||
~query.filter(0,"<",50);
|
||||
~query.and(1,"<",50);
|
||||
~query.and(2,"<",50);
|
||||
~query.limit(10);
|
||||
|
||||
// Create an output dataset and run the query
|
||||
~out = FluidDataSet(s,\help_fluid_dataset_query_out);
|
||||
~query.transform(~dataset, ~out);
|
||||
|
||||
// Check the results
|
||||
~dataset.print;
|
||||
~out.print;
|
||||
|
||||
|
||||
::
|
||||
Loading…
Reference in New Issue