You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by im...@apache.org on 2015/05/20 03:25:46 UTC
[05/10] incubator-asterixdb git commit: Temp dataset support: 1. DDLs
for creating a temporary dataset 2. Garbage collection for temporary dataset
3. Reading, inserting,
and deleting data from (to) a temporary dataset is locking-free (except
metadata loc
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset-with-index/insert-and-scan-dataset-with-index.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset-with-index/insert-and-scan-dataset-with-index.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset-with-index/insert-and-scan-dataset-with-index.1.adm
new file mode 100644
index 0000000..f889b2d
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset-with-index/insert-and-scan-dataset-with-index.1.adm
@@ -0,0 +1,241 @@
+[ { "id": 101, "fname": "Javier", "lname": "Makuch", "age": 28, "dept": "IT" }
+, { "id": 110, "fname": "Allan", "lname": "Piland", "age": 29, "dept": "HR" }
+, { "id": 112, "fname": "Pearlie", "lname": "Aumann", "age": 31, "dept": "Payroll" }
+, { "id": 113, "fname": "Chandra", "lname": "Hase", "age": 34, "dept": "Sales" }
+, { "id": 114, "fname": "Christian", "lname": "Convery", "age": 28, "dept": "HR" }
+, { "id": 115, "fname": "Panther", "lname": "Ritch", "age": 26, "dept": "IT" }
+, { "id": 116, "fname": "Ted", "lname": "Elsea", "age": 26, "dept": "IT" }
+, { "id": 117, "fname": "Tabatha", "lname": "Bladen", "age": 25, "dept": "HR" }
+, { "id": 118, "fname": "Clayton", "lname": "Oltman", "age": 42, "dept": "Sales" }
+, { "id": 119, "fname": "Sharron", "lname": "Darwin", "age": 32, "dept": "Payroll" }
+, { "id": 210, "fname": "Clayton", "lname": "Durgin", "age": 52, "dept": "HR" }
+, { "id": 212, "fname": "Emilia", "lname": "Chenail", "age": 26, "dept": "Sales" }
+, { "id": 213, "fname": "Kenya", "lname": "Almquist", "age": 43, "dept": "Payroll" }
+, { "id": 214, "fname": "Alejandra", "lname": "Lacefield", "age": 41, "dept": "HR" }
+, { "id": 215, "fname": "Karina", "lname": "Michelsen", "age": 46, "dept": "IT" }
+, { "id": 216, "fname": "Katy", "lname": "Delillo", "age": 36, "dept": "IT" }
+, { "id": 217, "fname": "Benita", "lname": "Kleist", "age": 37, "dept": "HR" }
+, { "id": 218, "fname": "Earlene", "lname": "Paluch", "age": 31, "dept": "IT" }
+, { "id": 219, "fname": "Kurt", "lname": "Petermann", "age": 27, "dept": "Payroll" }
+, { "id": 299, "fname": "Julio", "lname": "Iorio", "age": 37, "dept": "IT" }
+, { "id": 363, "fname": "Cody", "lname": "Rodreguez", "age": 26, "dept": "IT" }
+, { "id": 404, "fname": "Emilia", "lname": "Square", "age": 32, "dept": "IT" }
+, { "id": 414, "fname": "Mathew", "lname": "Fuschetto", "age": 34, "dept": "HR" }
+, { "id": 424, "fname": "Allyson", "lname": "Remus", "age": 32, "dept": "IT" }
+, { "id": 434, "fname": "Earlene", "lname": "Linebarger", "age": 26, "dept": "Payroll" }
+, { "id": 444, "fname": "Clinton", "lname": "Sick", "age": 29, "dept": "IT" }
+, { "id": 454, "fname": "Ted", "lname": "Caba", "age": 28, "dept": "HR" }
+, { "id": 463, "fname": "Marcie", "lname": "States", "age": 28, "dept": "IT" }
+, { "id": 464, "fname": "Fernando", "lname": "Engelke", "age": 39, "dept": "IT" }
+, { "id": 474, "fname": "Mathew", "lname": "Courchesne", "age": 31, "dept": "IT" }
+, { "id": 484, "fname": "Cody", "lname": "Vinyard", "age": 36, "dept": "Payroll" }
+, { "id": 494, "fname": "Benita", "lname": "Fravel", "age": 33, "dept": "Sales" }
+, { "id": 504, "fname": "Erik", "lname": "Dobek", "age": 29, "dept": "IT" }
+, { "id": 514, "fname": "Julio", "lname": "Ruben", "age": 41, "dept": "IT" }
+, { "id": 524, "fname": "Benita", "lname": "Maltos", "age": 33, "dept": "IT" }
+, { "id": 534, "fname": "Kurt", "lname": "Biscoe", "age": 36, "dept": "HR" }
+, { "id": 538, "fname": "Milagros", "lname": "Forkey", "age": 34, "dept": "Sales" }
+, { "id": 544, "fname": "Loraine", "lname": "Housel", "age": 30, "dept": "Sales" }
+, { "id": 554, "fname": "Jamie", "lname": "Rachal", "age": 30, "dept": "IT" }
+, { "id": 564, "fname": "Liza", "lname": "Fredenburg", "age": 37, "dept": "IT" }
+, { "id": 574, "fname": "Ericka", "lname": "Feldmann", "age": 29, "dept": "Sales" }
+, { "id": 584, "fname": "Dollie", "lname": "Dattilo", "age": 32, "dept": "Payroll" }
+, { "id": 589, "fname": "Lorrie", "lname": "Sharon", "age": 27, "dept": "IT" }
+, { "id": 594, "fname": "Roxie", "lname": "Houghtaling", "age": 40, "dept": "Payroll" }
+, { "id": 601, "fname": "Neil", "lname": "Deforge", "age": 26, "dept": "HR" }
+, { "id": 611, "fname": "Earlene", "lname": "Marcy", "age": 32, "dept": "IT" }
+, { "id": 621, "fname": "Erik", "lname": "Lechuga", "age": 42, "dept": "Payroll" }
+, { "id": 631, "fname": "Tyrone", "lname": "Holtzclaw", "age": 34, "dept": "Sales" }
+, { "id": 641, "fname": "Lance", "lname": "Hankey", "age": 35, "dept": "Sales" }
+, { "id": 651, "fname": "Mallory", "lname": "Gladding", "age": 31, "dept": "HR" }
+, { "id": 661, "fname": "Tia", "lname": "Braaten", "age": 40, "dept": "IT" }
+, { "id": 671, "fname": "Julio", "lname": "Vanpatten", "age": 30, "dept": "Payroll" }
+, { "id": 681, "fname": "Max", "lname": "Teachout", "age": 34, "dept": "IT" }
+, { "id": 691, "fname": "Karina", "lname": "Wingerter", "age": 31, "dept": "IT" }
+, { "id": 711, "fname": "Hugh", "lname": "Lema", "age": 25, "dept": "HR" }
+, { "id": 721, "fname": "Schwan", "lname": "Phil", "age": 34, "dept": "Payroll" }
+, { "id": 732, "fname": "Noemi", "lname": "Eacret", "age": 56, "dept": "HR" }
+, { "id": 741, "fname": "Julio", "lname": "Mattocks", "age": 38, "dept": "Sales" }
+, { "id": 751, "fname": "Lance", "lname": "Kottke", "age": 34, "dept": "IT" }
+, { "id": 761, "fname": "Kurt", "lname": "Liz", "age": 32, "dept": "HR" }
+, { "id": 771, "fname": "Neva", "lname": "Barbeau", "age": 45, "dept": "Sales" }
+, { "id": 781, "fname": "Karina", "lname": "Tuthill", "age": 46, "dept": "Payroll" }
+, { "id": 791, "fname": "Maricela", "lname": "Cambron", "age": 36, "dept": "IT" }
+, { "id": 809, "fname": "Clayton", "lname": "Delany", "age": 23, "dept": "IT" }
+, { "id": 811, "fname": "Kubik", "lname": "Kuhn", "age": 27, "dept": "HR" }
+, { "id": 821, "fname": "Allan", "lname": "Tomes", "age": 29, "dept": "Payroll" }
+, { "id": 831, "fname": "Lonnie", "lname": "Aller", "age": 33, "dept": "Sales" }
+, { "id": 841, "fname": "Neil", "lname": "Hurrell", "age": 26, "dept": "IT" }
+, { "id": 851, "fname": "Clayton", "lname": "Engles", "age": 41, "dept": "HR" }
+, { "id": 861, "fname": "Javier", "lname": "Gabrielson", "age": 39, "dept": "Payroll" }
+, { "id": 871, "fname": "Allan", "lname": "Alejandre", "age": 48, "dept": "IT" }
+, { "id": 881, "fname": "Julio", "lname": "Isa", "age": 38, "dept": "Sales" }
+, { "id": 891, "fname": "Roslyn", "lname": "Simmerman", "age": 31, "dept": "IT" }
+, { "id": 915, "fname": "Starner", "lname": "Stuart", "age": 25, "dept": "Sales" }
+, { "id": 925, "fname": "Sofia", "lname": "Cuff", "age": 30, "dept": "HR" }
+, { "id": 935, "fname": "Milagros", "lname": "Murguia", "age": 31, "dept": "IT" }
+, { "id": 945, "fname": "Margery", "lname": "Haldeman", "age": 32, "dept": "IT" }
+, { "id": 955, "fname": "Max", "lname": "Mell", "age": 33, "dept": "HR" }
+, { "id": 965, "fname": "Micco", "lname": "Mercy", "age": 31, "dept": "Payroll" }
+, { "id": 975, "fname": "Clare", "lname": "Vangieson", "age": 34, "dept": "IT" }
+, { "id": 985, "fname": "Elnora", "lname": "Dimauro", "age": 35, "dept": "Sales" }
+, { "id": 995, "fname": "Pearlie", "lname": "Kocian", "age": 38, "dept": "HR" }
+, { "id": 1007, "fname": "Yingyi", "lname": "Bu", "age": 27, "dept": "IT" }
+, { "id": 1263, "fname": "Tania", "lname": "Loffredo", "age": 25, "dept": "IT" }
+, { "id": 1410, "fname": "Clinton", "lname": "Fredricks", "age": 34, "dept": "IT" }
+, { "id": 1411, "fname": "Lance", "lname": "Farquhar", "age": 32, "dept": "HR" }
+, { "id": 1412, "fname": "Tabatha", "lname": "Crisler", "age": 33, "dept": "IT" }
+, { "id": 1413, "fname": "Max", "lname": "Durney", "age": 29, "dept": "IT" }
+, { "id": 1414, "fname": "Carmella", "lname": "Strauser", "age": 30, "dept": "Payroll" }
+, { "id": 1415, "fname": "Kelly", "lname": "Carrales", "age": 40, "dept": "IT" }
+, { "id": 1416, "fname": "Guy", "lname": "Merten", "age": 29, "dept": "Sales" }
+, { "id": 1417, "fname": "Noreen", "lname": "Ruhland", "age": 29, "dept": "IT" }
+, { "id": 1418, "fname": "Julio", "lname": "Damore", "age": 27, "dept": "Sales" }
+, { "id": 1419, "fname": "Selena", "lname": "Truby", "age": 25, "dept": "HR" }
+, { "id": 1420, "fname": "Alejandra", "lname": "Commons", "age": 30, "dept": "Sales" }
+, { "id": 1421, "fname": "Allyson", "lname": "Balk", "age": 30, "dept": "IT" }
+, { "id": 1422, "fname": "Nelson", "lname": "Byun", "age": 40, "dept": "Sales" }
+, { "id": 1423, "fname": "Christian", "lname": "Reidhead", "age": 40, "dept": "IT" }
+, { "id": 1424, "fname": "Pearlie", "lname": "Hopkin", "age": 48, "dept": "Payroll" }
+, { "id": 1425, "fname": "Nelson", "lname": "Wohlers", "age": 41, "dept": "HR" }
+, { "id": 1426, "fname": "Marcie", "lname": "Rasnake", "age": 42, "dept": "Sales" }
+, { "id": 1427, "fname": "Hugh", "lname": "Marshburn", "age": 43, "dept": "Payroll" }
+, { "id": 1428, "fname": "Mathew", "lname": "Marasco", "age": 45, "dept": "Sales" }
+, { "id": 1429, "fname": "Kurt", "lname": "Veres", "age": 32, "dept": "IT" }
+, { "id": 1430, "fname": "Julio", "lname": "Barkett", "age": 39, "dept": "Sales" }
+, { "id": 1863, "fname": "Darren", "lname": "Thorington", "age": 32, "dept": "Sales" }
+, { "id": 1999, "fname": "Susan", "lname": "Malaika", "age": 42, "dept": "HR" }
+, { "id": 2333, "fname": "Chen", "lname": "Li", "age": 42, "dept": "HR" }
+, { "id": 2963, "fname": "Neil", "lname": "Gunnerson", "age": 34, "dept": "IT" }
+, { "id": 3563, "fname": "Hazeltine", "lname": "Susan", "age": 29, "dept": "Sales" }
+, { "id": 3666, "fname": "Young Seok", "lname": "Kim", "age": 35, "dept": "Payroll" }
+, { "id": 4727, "fname": "Michael", "lname": "Carey", "age": 50, "dept": "Payroll" }
+, { "id": 5438, "fname": "Lakisha", "lname": "Quashie", "age": 29, "dept": "HR" }
+, { "id": 7444, "fname": "Sharad", "lname": "Mehrotra", "age": 42, "dept": "Sales" }
+, { "id": 7663, "fname": "Annabelle", "lname": "Nimmo", "age": 30, "dept": "Payroll" }
+, { "id": 8301, "fname": "Earlene", "lname": "Wallick", "age": 26, "dept": "HR" }
+, { "id": 8338, "fname": "Julio", "lname": "Bosket", "age": 28, "dept": "Payroll" }
+, { "id": 9555, "fname": "Tony", "lname": "Givargis", "age": 40, "dept": "Sales" }
+, { "id": 9763, "fname": "Ted", "lname": "Saini", "age": 31, "dept": "IT" }
+, { "id": 9941, "fname": "Khurram Faraaz", "lname": "Mohammed", "age": 30, "dept": "HR" }
+, { "id": 10101, "fname": "Javier", "lname": "Makuch", "age": 28, "dept": "IT" }
+, { "id": 10110, "fname": "Allan", "lname": "Piland", "age": 29, "dept": "HR" }
+, { "id": 10112, "fname": "Pearlie", "lname": "Aumann", "age": 31, "dept": "Payroll" }
+, { "id": 10113, "fname": "Chandra", "lname": "Hase", "age": 34, "dept": "Sales" }
+, { "id": 10114, "fname": "Christian", "lname": "Convery", "age": 28, "dept": "HR" }
+, { "id": 10115, "fname": "Panther", "lname": "Ritch", "age": 26, "dept": "IT" }
+, { "id": 10116, "fname": "Ted", "lname": "Elsea", "age": 26, "dept": "IT" }
+, { "id": 10117, "fname": "Tabatha", "lname": "Bladen", "age": 25, "dept": "HR" }
+, { "id": 10118, "fname": "Clayton", "lname": "Oltman", "age": 42, "dept": "Sales" }
+, { "id": 10119, "fname": "Sharron", "lname": "Darwin", "age": 32, "dept": "Payroll" }
+, { "id": 10210, "fname": "Clayton", "lname": "Durgin", "age": 52, "dept": "HR" }
+, { "id": 10212, "fname": "Emilia", "lname": "Chenail", "age": 26, "dept": "Sales" }
+, { "id": 10213, "fname": "Kenya", "lname": "Almquist", "age": 43, "dept": "Payroll" }
+, { "id": 10214, "fname": "Alejandra", "lname": "Lacefield", "age": 41, "dept": "HR" }
+, { "id": 10215, "fname": "Karina", "lname": "Michelsen", "age": 46, "dept": "IT" }
+, { "id": 10216, "fname": "Katy", "lname": "Delillo", "age": 36, "dept": "IT" }
+, { "id": 10217, "fname": "Benita", "lname": "Kleist", "age": 37, "dept": "HR" }
+, { "id": 10218, "fname": "Earlene", "lname": "Paluch", "age": 31, "dept": "IT" }
+, { "id": 10219, "fname": "Kurt", "lname": "Petermann", "age": 27, "dept": "Payroll" }
+, { "id": 10299, "fname": "Julio", "lname": "Iorio", "age": 37, "dept": "IT" }
+, { "id": 10363, "fname": "Cody", "lname": "Rodreguez", "age": 26, "dept": "IT" }
+, { "id": 10404, "fname": "Emilia", "lname": "Square", "age": 32, "dept": "IT" }
+, { "id": 10414, "fname": "Mathew", "lname": "Fuschetto", "age": 34, "dept": "HR" }
+, { "id": 10424, "fname": "Allyson", "lname": "Remus", "age": 32, "dept": "IT" }
+, { "id": 10434, "fname": "Earlene", "lname": "Linebarger", "age": 26, "dept": "Payroll" }
+, { "id": 10444, "fname": "Clinton", "lname": "Sick", "age": 29, "dept": "IT" }
+, { "id": 10454, "fname": "Ted", "lname": "Caba", "age": 28, "dept": "HR" }
+, { "id": 10463, "fname": "Marcie", "lname": "States", "age": 28, "dept": "IT" }
+, { "id": 10464, "fname": "Fernando", "lname": "Engelke", "age": 39, "dept": "IT" }
+, { "id": 10474, "fname": "Mathew", "lname": "Courchesne", "age": 31, "dept": "IT" }
+, { "id": 10484, "fname": "Cody", "lname": "Vinyard", "age": 36, "dept": "Payroll" }
+, { "id": 10494, "fname": "Benita", "lname": "Fravel", "age": 33, "dept": "Sales" }
+, { "id": 10504, "fname": "Erik", "lname": "Dobek", "age": 29, "dept": "IT" }
+, { "id": 10514, "fname": "Julio", "lname": "Ruben", "age": 41, "dept": "IT" }
+, { "id": 10524, "fname": "Benita", "lname": "Maltos", "age": 33, "dept": "IT" }
+, { "id": 10534, "fname": "Kurt", "lname": "Biscoe", "age": 36, "dept": "HR" }
+, { "id": 10538, "fname": "Milagros", "lname": "Forkey", "age": 34, "dept": "Sales" }
+, { "id": 10544, "fname": "Loraine", "lname": "Housel", "age": 30, "dept": "Sales" }
+, { "id": 10554, "fname": "Jamie", "lname": "Rachal", "age": 30, "dept": "IT" }
+, { "id": 10564, "fname": "Liza", "lname": "Fredenburg", "age": 37, "dept": "IT" }
+, { "id": 10574, "fname": "Ericka", "lname": "Feldmann", "age": 29, "dept": "Sales" }
+, { "id": 10584, "fname": "Dollie", "lname": "Dattilo", "age": 32, "dept": "Payroll" }
+, { "id": 10589, "fname": "Lorrie", "lname": "Sharon", "age": 27, "dept": "IT" }
+, { "id": 10594, "fname": "Roxie", "lname": "Houghtaling", "age": 40, "dept": "Payroll" }
+, { "id": 10601, "fname": "Neil", "lname": "Deforge", "age": 26, "dept": "HR" }
+, { "id": 10611, "fname": "Earlene", "lname": "Marcy", "age": 32, "dept": "IT" }
+, { "id": 10621, "fname": "Erik", "lname": "Lechuga", "age": 42, "dept": "Payroll" }
+, { "id": 10631, "fname": "Tyrone", "lname": "Holtzclaw", "age": 34, "dept": "Sales" }
+, { "id": 10641, "fname": "Lance", "lname": "Hankey", "age": 35, "dept": "Sales" }
+, { "id": 10651, "fname": "Mallory", "lname": "Gladding", "age": 31, "dept": "HR" }
+, { "id": 10661, "fname": "Tia", "lname": "Braaten", "age": 40, "dept": "IT" }
+, { "id": 10671, "fname": "Julio", "lname": "Vanpatten", "age": 30, "dept": "Payroll" }
+, { "id": 10681, "fname": "Max", "lname": "Teachout", "age": 34, "dept": "IT" }
+, { "id": 10691, "fname": "Karina", "lname": "Wingerter", "age": 31, "dept": "IT" }
+, { "id": 10711, "fname": "Hugh", "lname": "Lema", "age": 25, "dept": "HR" }
+, { "id": 10721, "fname": "Schwan", "lname": "Phil", "age": 34, "dept": "Payroll" }
+, { "id": 10732, "fname": "Noemi", "lname": "Eacret", "age": 56, "dept": "HR" }
+, { "id": 10741, "fname": "Julio", "lname": "Mattocks", "age": 38, "dept": "Sales" }
+, { "id": 10751, "fname": "Lance", "lname": "Kottke", "age": 34, "dept": "IT" }
+, { "id": 10761, "fname": "Kurt", "lname": "Liz", "age": 32, "dept": "HR" }
+, { "id": 10771, "fname": "Neva", "lname": "Barbeau", "age": 45, "dept": "Sales" }
+, { "id": 10781, "fname": "Karina", "lname": "Tuthill", "age": 46, "dept": "Payroll" }
+, { "id": 10791, "fname": "Maricela", "lname": "Cambron", "age": 36, "dept": "IT" }
+, { "id": 10809, "fname": "Clayton", "lname": "Delany", "age": 23, "dept": "IT" }
+, { "id": 10811, "fname": "Kubik", "lname": "Kuhn", "age": 27, "dept": "HR" }
+, { "id": 10821, "fname": "Allan", "lname": "Tomes", "age": 29, "dept": "Payroll" }
+, { "id": 10831, "fname": "Lonnie", "lname": "Aller", "age": 33, "dept": "Sales" }
+, { "id": 10841, "fname": "Neil", "lname": "Hurrell", "age": 26, "dept": "IT" }
+, { "id": 10851, "fname": "Clayton", "lname": "Engles", "age": 41, "dept": "HR" }
+, { "id": 10861, "fname": "Javier", "lname": "Gabrielson", "age": 39, "dept": "Payroll" }
+, { "id": 10871, "fname": "Allan", "lname": "Alejandre", "age": 48, "dept": "IT" }
+, { "id": 10881, "fname": "Julio", "lname": "Isa", "age": 38, "dept": "Sales" }
+, { "id": 10891, "fname": "Roslyn", "lname": "Simmerman", "age": 31, "dept": "IT" }
+, { "id": 10915, "fname": "Starner", "lname": "Stuart", "age": 25, "dept": "Sales" }
+, { "id": 10925, "fname": "Sofia", "lname": "Cuff", "age": 30, "dept": "HR" }
+, { "id": 10935, "fname": "Milagros", "lname": "Murguia", "age": 31, "dept": "IT" }
+, { "id": 10945, "fname": "Margery", "lname": "Haldeman", "age": 32, "dept": "IT" }
+, { "id": 10955, "fname": "Max", "lname": "Mell", "age": 33, "dept": "HR" }
+, { "id": 10965, "fname": "Micco", "lname": "Mercy", "age": 31, "dept": "Payroll" }
+, { "id": 10975, "fname": "Clare", "lname": "Vangieson", "age": 34, "dept": "IT" }
+, { "id": 10985, "fname": "Elnora", "lname": "Dimauro", "age": 35, "dept": "Sales" }
+, { "id": 10995, "fname": "Pearlie", "lname": "Kocian", "age": 38, "dept": "HR" }
+, { "id": 11007, "fname": "Yingyi", "lname": "Bu", "age": 27, "dept": "IT" }
+, { "id": 11263, "fname": "Tania", "lname": "Loffredo", "age": 25, "dept": "IT" }
+, { "id": 11410, "fname": "Clinton", "lname": "Fredricks", "age": 34, "dept": "IT" }
+, { "id": 11411, "fname": "Lance", "lname": "Farquhar", "age": 32, "dept": "HR" }
+, { "id": 11412, "fname": "Tabatha", "lname": "Crisler", "age": 33, "dept": "IT" }
+, { "id": 11413, "fname": "Max", "lname": "Durney", "age": 29, "dept": "IT" }
+, { "id": 11414, "fname": "Carmella", "lname": "Strauser", "age": 30, "dept": "Payroll" }
+, { "id": 11415, "fname": "Kelly", "lname": "Carrales", "age": 40, "dept": "IT" }
+, { "id": 11416, "fname": "Guy", "lname": "Merten", "age": 29, "dept": "Sales" }
+, { "id": 11417, "fname": "Noreen", "lname": "Ruhland", "age": 29, "dept": "IT" }
+, { "id": 11418, "fname": "Julio", "lname": "Damore", "age": 27, "dept": "Sales" }
+, { "id": 11419, "fname": "Selena", "lname": "Truby", "age": 25, "dept": "HR" }
+, { "id": 11420, "fname": "Alejandra", "lname": "Commons", "age": 30, "dept": "Sales" }
+, { "id": 11421, "fname": "Allyson", "lname": "Balk", "age": 30, "dept": "IT" }
+, { "id": 11422, "fname": "Nelson", "lname": "Byun", "age": 40, "dept": "Sales" }
+, { "id": 11423, "fname": "Christian", "lname": "Reidhead", "age": 40, "dept": "IT" }
+, { "id": 11424, "fname": "Pearlie", "lname": "Hopkin", "age": 48, "dept": "Payroll" }
+, { "id": 11425, "fname": "Nelson", "lname": "Wohlers", "age": 41, "dept": "HR" }
+, { "id": 11426, "fname": "Marcie", "lname": "Rasnake", "age": 42, "dept": "Sales" }
+, { "id": 11427, "fname": "Hugh", "lname": "Marshburn", "age": 43, "dept": "Payroll" }
+, { "id": 11428, "fname": "Mathew", "lname": "Marasco", "age": 45, "dept": "Sales" }
+, { "id": 11429, "fname": "Kurt", "lname": "Veres", "age": 32, "dept": "IT" }
+, { "id": 11430, "fname": "Julio", "lname": "Barkett", "age": 39, "dept": "Sales" }
+, { "id": 11863, "fname": "Darren", "lname": "Thorington", "age": 32, "dept": "Sales" }
+, { "id": 11999, "fname": "Susan", "lname": "Malaika", "age": 42, "dept": "HR" }
+, { "id": 12333, "fname": "Chen", "lname": "Li", "age": 42, "dept": "HR" }
+, { "id": 12963, "fname": "Neil", "lname": "Gunnerson", "age": 34, "dept": "IT" }
+, { "id": 13563, "fname": "Hazeltine", "lname": "Susan", "age": 29, "dept": "Sales" }
+, { "id": 13666, "fname": "Young Seok", "lname": "Kim", "age": 35, "dept": "Payroll" }
+, { "id": 14727, "fname": "Michael", "lname": "Carey", "age": 50, "dept": "Payroll" }
+, { "id": 15438, "fname": "Lakisha", "lname": "Quashie", "age": 29, "dept": "HR" }
+, { "id": 17444, "fname": "Sharad", "lname": "Mehrotra", "age": 42, "dept": "Sales" }
+, { "id": 17663, "fname": "Annabelle", "lname": "Nimmo", "age": 30, "dept": "Payroll" }
+, { "id": 18301, "fname": "Earlene", "lname": "Wallick", "age": 26, "dept": "HR" }
+, { "id": 18338, "fname": "Julio", "lname": "Bosket", "age": 28, "dept": "Payroll" }
+, { "id": 19555, "fname": "Tony", "lname": "Givargis", "age": 40, "dept": "Sales" }
+, { "id": 19763, "fname": "Ted", "lname": "Saini", "age": 31, "dept": "IT" }
+, { "id": 19941, "fname": "Khurram Faraaz", "lname": "Mohammed", "age": 30, "dept": "HR" }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset/insert-and-scan-dataset.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset/insert-and-scan-dataset.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset/insert-and-scan-dataset.1.adm
new file mode 100644
index 0000000..185e642
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/insert-and-scan-dataset/insert-and-scan-dataset.1.adm
@@ -0,0 +1,21 @@
+[ { "id": 1 }
+, { "id": 2 }
+, { "id": 3 }
+, { "id": 4 }
+, { "id": 5 }
+, { "id": 6 }
+, { "id": 7 }
+, { "id": 8 }
+, { "id": 9 }
+, { "id": 10 }
+, { "id": 11 }
+, { "id": 12 }
+, { "id": 13 }
+, { "id": 14 }
+, { "id": 15 }
+, { "id": 16 }
+, { "id": 17 }
+, { "id": 18 }
+, { "id": 19 }
+, { "id": 20 }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.1.adm
new file mode 100644
index 0000000..774e16e
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.1.adm
@@ -0,0 +1,5 @@
+[ { "l_returnflag": "A", "l_linestatus": "F", "sum_qty": 37474.0d, "sum_base_price": 3.7569624640000015E7d, "sum_disc_price": 3.567619209699997E7d, "sum_charge": 3.7101416222424E7d, "ave_qty": 25.354533152909337d, "ave_price": 25419.231826792973d, "ave_disc": 0.05086603518267936d, "count_order": 1478 }
+, { "l_returnflag": "N", "l_linestatus": "F", "sum_qty": 1041.0d, "sum_base_price": 1041301.0700000001d, "sum_disc_price": 999060.898d, "sum_charge": 1036450.8022800002d, "ave_qty": 27.394736842105264d, "ave_price": 27402.659736842106d, "ave_disc": 0.04289473684210526d, "count_order": 38 }
+, { "l_returnflag": "N", "l_linestatus": "O", "sum_qty": 75168.0d, "sum_base_price": 7.538495537000003E7d, "sum_disc_price": 7.165316630340004E7d, "sum_charge": 7.449879813307303E7d, "ave_qty": 25.558653519211152d, "ave_price": 25632.422771166282d, "ave_disc": 0.04969738184291074d, "count_order": 2941 }
+, { "l_returnflag": "R", "l_linestatus": "F", "sum_qty": 36511.0d, "sum_base_price": 3.657084124000002E7d, "sum_disc_price": 3.473847287579997E7d, "sum_charge": 3.616906011219299E7d, "ave_qty": 25.059025394646532d, "ave_price": 25100.09693891559d, "ave_disc": 0.05002745367192867d, "count_order": 1457 }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.adm
new file mode 100644
index 0000000..5b54383
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-delete-rtree-secondary-index/scan-delete-rtree-secondary-index.1.adm
@@ -0,0 +1,2 @@
+[ { "id": 10 }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-persistent-to-temp/scan-insert-persistent-to-temp.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-persistent-to-temp/scan-insert-persistent-to-temp.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-persistent-to-temp/scan-insert-persistent-to-temp.1.adm
new file mode 100644
index 0000000..6fa2dc2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-persistent-to-temp/scan-insert-persistent-to-temp.1.adm
@@ -0,0 +1,4 @@
+[ { "id": 10 }
+, { "id": 12 }
+, { "id": 20 }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.adm
new file mode 100644
index 0000000..6fa2dc2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-rtree-secondary-index/scan-insert-rtree-secondary-index.1.adm
@@ -0,0 +1,4 @@
+[ { "id": 10 }
+, { "id": 12 }
+, { "id": 20 }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-temp-to-persistent/scan-insert-persistent-to-temp.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-temp-to-persistent/scan-insert-persistent-to-temp.1.adm b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-temp-to-persistent/scan-insert-persistent-to-temp.1.adm
new file mode 100644
index 0000000..6fa2dc2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/temp-dataset/scan-insert-temp-to-persistent/scan-insert-persistent-to-temp.1.adm
@@ -0,0 +1,4 @@
+[ { "id": 10 }
+, { "id": 12 }
+, { "id": 20 }
+ ]
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-app/src/test/resources/runtimets/testsuite.xml
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterix-app/src/test/resources/runtimets/testsuite.xml
index f97f793..a954f7e 100644
--- a/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -6691,4 +6691,66 @@
</compilation-unit>
</test-case>
</test-group>
+ <test-group name="temp-dataset">
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="delete-from-loaded-dataset">
+ <output-dir compare="Text">delete-from-loaded-dataset</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="delete-from-loaded-dataset-with-index">
+ <output-dir compare="Text">delete-from-loaded-dataset-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="drop-empty-secondary-indexes">
+ <output-dir compare="Text">drop-empty-secondary-indexes</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="drop-index">
+ <output-dir compare="Text">drop-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="empty-load-with-index">
+ <output-dir compare="Text">empty-load-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="insert-and-scan-dataset">
+ <output-dir compare="Text">insert-and-scan-dataset</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="q01_pricing_summary_report_nt">
+ <output-dir compare="Text">q01_pricing_summary_report_nt</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="scan-delete-rtree-secondary-index">
+ <output-dir compare="Text">scan-delete-rtree-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="scan-insert-rtree-secondary-index">
+ <output-dir compare="Text">scan-insert-rtree-secondary-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="scan-insert-persistent-to-temp">
+ <output-dir compare="Text">scan-insert-persistent-to-temp</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="scan-insert-temp-to-persistent">
+ <output-dir compare="Text">scan-insert-temp-to-persistent</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="temp-dataset">
+ <compilation-unit name="insert-and-scan-dataset-with-index">
+ <output-dir compare="Text">insert-and-scan-dataset-with-index</output-dir>
+ </compilation-unit>
+ </test-case>
+ </test-group>
</test-suite>
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/ExternalDetailsDecl.java
----------------------------------------------------------------------
diff --git a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/ExternalDetailsDecl.java b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/ExternalDetailsDecl.java
index a22d4b4..dca9291 100644
--- a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/ExternalDetailsDecl.java
+++ b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/ExternalDetailsDecl.java
@@ -62,6 +62,11 @@ public class ExternalDetailsDecl implements IDatasetDetailsDecl {
return compactionPolicyProperties;
}
+ @Override
+ public boolean isTemp() {
+ return false;
+ }
+
public void setCompactionPolicyProperties(Map<String, String> compactionPolicyProperties) {
this.compactionPolicyProperties = compactionPolicyProperties;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/FeedDetailsDecl.java
----------------------------------------------------------------------
diff --git a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/FeedDetailsDecl.java b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/FeedDetailsDecl.java
index 4a3661b..e8eca29 100644
--- a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/FeedDetailsDecl.java
+++ b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/FeedDetailsDecl.java
@@ -27,7 +27,7 @@ public class FeedDetailsDecl extends InternalDetailsDecl {
public FeedDetailsDecl(String adapterFactoryClassname, Map<String, String> configuration,
FunctionSignature signature, Identifier nodeGroupName, List<List<String>> partitioningExpr,
String compactionPolicy, Map<String, String> compactionPolicyProperties, List<String> filterField) {
- super(nodeGroupName, partitioningExpr, false, compactionPolicy, compactionPolicyProperties, filterField);
+ super(nodeGroupName, partitioningExpr, false, compactionPolicy, compactionPolicyProperties, filterField, false);
this.adapterFactoryClassname = adapterFactoryClassname;
this.configuration = configuration;
this.functionSignature = signature;
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/IDatasetDetailsDecl.java
----------------------------------------------------------------------
diff --git a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/IDatasetDetailsDecl.java b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/IDatasetDetailsDecl.java
index 51f2a1b..e89ef0d 100644
--- a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/IDatasetDetailsDecl.java
+++ b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/IDatasetDetailsDecl.java
@@ -24,4 +24,6 @@ public interface IDatasetDetailsDecl {
public Map<String, String> getCompactionPolicyProperties();
+ public boolean isTemp();
+
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/InternalDetailsDecl.java
----------------------------------------------------------------------
diff --git a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/InternalDetailsDecl.java b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/InternalDetailsDecl.java
index 8fe482e..92618fa 100644
--- a/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/InternalDetailsDecl.java
+++ b/asterix-aql/src/main/java/edu/uci/ics/asterix/aql/expression/InternalDetailsDecl.java
@@ -25,10 +25,12 @@ public class InternalDetailsDecl implements IDatasetDetailsDecl {
private final boolean autogenerated;
private final String compactionPolicy;
private final Map<String, String> compactionPolicyProperties;
+ private final boolean temp;
private final List<String> filterField;
public InternalDetailsDecl(Identifier nodeGroupName, List<List<String>> partitioningExpr, boolean autogenerated,
- String compactionPolicy, Map<String, String> compactionPolicyProperties, List<String> filterField) {
+ String compactionPolicy, Map<String, String> compactionPolicyProperties, List<String> filterField,
+ boolean temp) {
this.nodegroupName = nodeGroupName == null ? new Identifier(MetadataConstants.METADATA_DEFAULT_NODEGROUP_NAME)
: nodeGroupName;
this.partitioningExprs = partitioningExpr;
@@ -36,6 +38,7 @@ public class InternalDetailsDecl implements IDatasetDetailsDecl {
this.compactionPolicy = compactionPolicy;
this.compactionPolicyProperties = compactionPolicyProperties;
this.filterField = filterField;
+ this.temp = temp;
}
public List<List<String>> getPartitioningExprs() {
@@ -61,6 +64,11 @@ public class InternalDetailsDecl implements IDatasetDetailsDecl {
return compactionPolicyProperties;
}
+ @Override
+ public boolean isTemp() {
+ return temp;
+ }
+
public List<String> getFilterField() {
return filterField;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-aql/src/main/javacc/AQL.html
----------------------------------------------------------------------
diff --git a/asterix-aql/src/main/javacc/AQL.html b/asterix-aql/src/main/javacc/AQL.html
index 994b1c7..b423f6d 100644
--- a/asterix-aql/src/main/javacc/AQL.html
+++ b/asterix-aql/src/main/javacc/AQL.html
@@ -38,6 +38,7 @@
| <UNION: "union">
| <WHERE: "where">
| <WITH: "with">
+| <KEEPING: "keeping">
}
</PRE>
@@ -316,132 +317,137 @@
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SingleStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod3">DataverseDeclaration</A> | <A HREF="#prod4">FunctionDeclaration</A> | <A HREF="#prod5">CreateStatement</A> | <A HREF="#prod6">LoadStatement</A> | <A HREF="#prod7">DropStatement</A> | <A HREF="#prod8">WriteStatement</A> | <A HREF="#prod9">SetStatement</A> | <A HREF="#prod10">InsertStatement</A> | <A HREF="#prod11">DeleteStatement</A> | <A HREF="#prod12">UpdateStatement</A> | <A HREF="#prod13">FeedStatement</A> | <A HREF="#prod14">CompactStatement</A> | <A HREF="#prod15">Query</A> | <A HREF="#prod16">RefreshExternalDatasetStatement</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod3">DataverseDeclaration</A> | <A HREF="#prod4">FunctionDeclaration</A> | <A HREF="#prod5">CreateStatement</A> | <A HREF="#prod6">LoadStatement</A> | <A HREF="#prod7">DropStatement</A> | <A HREF="#prod8">WriteStatement</A> | <A HREF="#prod9">SetStatement</A> | <A HREF="#prod10">InsertStatement</A> | <A HREF="#prod11">DeleteStatement</A> | <A HREF="#prod12">UpdateStatement</A> | <A HREF="#prod13">FeedStatement</A> | <A HREF="#prod14">CompactStatement</A> | <A HREF="#prod15">Query</A> | <A HREF="#prod16">RefreshExternalDatasetStatement</A> | <A HREF="#prod17">RunStatement</A> )</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">DataverseDeclaration</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"use" "dataverse" <A HREF="#prod18">Identifier</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">CreateStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"create" ( <A HREF="#prod18">TypeSpecification</A> | <A HREF="#prod19">NodegroupSpecification</A> | <A HREF="#prod20">DatasetSpecification</A> | <A HREF="#prod21">IndexSpecification</A> | <A HREF="#prod22">DataverseSpecification</A> | <A HREF="#prod23">FunctionSpecification</A> | <A HREF="#prod24">FeedSpecification</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"create" ( <A HREF="#prod19">TypeSpecification</A> | <A HREF="#prod20">NodegroupSpecification</A> | <A HREF="#prod21">DatasetSpecification</A> | <A HREF="#prod22">IndexSpecification</A> | <A HREF="#prod23">DataverseSpecification</A> | <A HREF="#prod24">FunctionSpecification</A> | <A HREF="#prod25">FeedSpecification</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">TypeSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">TypeSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod25">TypeName</A> <A HREF="#prod26">IfNotExists</A> "as" <A HREF="#prod27">TypeExpr</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"type" <A HREF="#prod26">TypeName</A> <A HREF="#prod27">IfNotExists</A> "as" <A HREF="#prod28">TypeExpr</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">NodegroupSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">NodegroupSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> "on" <A HREF="#prod17">Identifier</A> ( <COMMA> <A HREF="#prod17">Identifier</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod18">Identifier</A> ( <COMMA> <A HREF="#prod18">Identifier</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">DatasetSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">DatasetSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "external" <DATASET> <A HREF="#prod28">QualifiedName</A> <LEFTPAREN> <A HREF="#prod17">Identifier</A> <RIGHTPAREN> <A HREF="#prod26">IfNotExists</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( "on" <A HREF="#prod17">Identifier</A> )? ( "hints" <A HREF="#prod31">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod32">CompactionPolicy</A> ( <A HREF="#prod30">Configuration</A> )? )? | ( "internal" )? <DATASET> <A HREF="#prod28">QualifiedName</A> <LEFTPAREN> <A HREF="#prod17">Identifier</A> <RIGHTPAREN> <A HREF="#prod26">IfNotExists</A> <A HREF="#prod33">PrimaryKey</A> ( "autogenerated" )? ( "on" <A HREF="#prod17">Identifier</A> )? ( "hints" <A HREF="#prod31">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod32">CompactionPolicy</A> ( <A HREF="#prod30">Configuration</A> )? )? ( "with filter on" <A HREF="#prod34">FilterField</A> )? )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "external" <DATASET> <A HREF="#prod29">QualifiedName</A> <LEFTPAREN> <A HREF="#prod18">Identifier</A> <RIGHTPAREN> <A HREF="#prod27">IfNotExists</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "on" <A HREF="#prod18">Identifier</A> )? ( "hints" <A HREF="#prod32">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod33">CompactionPolicy</A> ( <A HREF="#prod31">Configuration</A> )? )? | ( "internal" | "temporary" )? <DATASET> <A HREF="#prod29">QualifiedName</A> <LEFTPAREN> <A HREF="#prod18">Identifier</A> <RIGHTPAREN> <A HREF="#prod27">IfNotExists</A> <A HREF="#prod34">PrimaryKey</A> ( "autogenerated" )? ( "on" <A HREF="#prod18">Identifier</A> )? ( "hints" <A HREF="#prod32">Properties</A> )? ( "using" "compaction" "policy" <A HREF="#prod33">CompactionPolicy</A> ( <A HREF="#prod31">Configuration</A> )? )? ( "with filter on" <A HREF="#prod35">FilterField</A> )? )</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">RefreshExternalDatasetStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" <DATASET> <A HREF="#prod28">QualifiedName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"refresh external" <DATASET> <A HREF="#prod29">QualifiedName</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">IndexSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">RunStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> "on" <A HREF="#prod28">QualifiedName</A> <LEFTPAREN> ( <A HREF="#prod17">Identifier</A> ) ( <COMMA> <A HREF="#prod17">Identifier</A> )* <RIGHTPAREN> ( "type" <A HREF="#prod35">IndexType</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"run" <A HREF="#prod18">Identifier</A> <LEFTPAREN> ( <A HREF="#prod18">Identifier</A> ( <COMMA> )? )* <RIGHTPAREN> <FROM> <DATASET> <A HREF="#prod29">QualifiedName</A> "to" <DATASET> <A HREF="#prod29">QualifiedName</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">CompactionPolicy</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">IndexSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"index" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> "on" <A HREF="#prod29">QualifiedName</A> <LEFTPAREN> ( <A HREF="#prod18">Identifier</A> ) ( <COMMA> <A HREF="#prod18">Identifier</A> )* <RIGHTPAREN> ( "type" <A HREF="#prod36">IndexType</A> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">FilterField</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">CompactionPolicy</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">IndexType</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">FilterField</A></TD>
+<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
+</TR>
+<TR>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">IndexType</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE>( "btree" | "rtree" | "keyword" | "ngram" <LEFTPAREN> <INTEGER_LITERAL> <RIGHTPAREN> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">DataverseSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">DataverseSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod17">Identifier</A> <A HREF="#prod26">IfNotExists</A> ( "with format" <A HREF="#prod36">StringLiteral</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod27">IfNotExists</A> ( "with format" <A HREF="#prod37">StringLiteral</A> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">FunctionSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FunctionSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod37">FunctionName</A> <A HREF="#prod26">IfNotExists</A> <A HREF="#prod38">ParameterList</A> <LEFTBRACE> <A HREF="#prod39">Expression</A> <RIGHTBRACE></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"function" <A HREF="#prod38">FunctionName</A> <A HREF="#prod27">IfNotExists</A> <A HREF="#prod39">ParameterList</A> <LEFTBRACE> <A HREF="#prod40">Expression</A> <RIGHTBRACE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">FeedSpecification</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">FeedSpecification</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "feed" <A HREF="#prod28">QualifiedName</A> <A HREF="#prod26">IfNotExists</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( <A HREF="#prod40">ApplyFunction</A> )? )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "feed" <A HREF="#prod29">QualifiedName</A> <A HREF="#prod27">IfNotExists</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( <A HREF="#prod41">ApplyFunction</A> )? )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">ParameterList</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">ParameterList</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> ( <VARIABLE> ( <COMMA> <VARIABLE> )* )? <RIGHTPAREN></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">IfNotExists</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">IfNotExists</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE>( "if not exists" )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">ApplyFunction</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">ApplyFunction</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod37">FunctionName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"apply" "function" <A HREF="#prod38">FunctionName</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">GetPolicy</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">GetPolicy</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"using" "policy" <A HREF="#prod18">Identifier</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">FunctionSignature</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">FunctionSignature</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">FunctionName</A> "@" <INTEGER_LITERAL></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> "@" <INTEGER_LITERAL></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">PrimaryKey</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">PrimaryKey</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod17">Identifier</A> ( <COMMA> <A HREF="#prod17">Identifier</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"primary" "key" <A HREF="#prod18">Identifier</A> ( <COMMA> <A HREF="#prod18">Identifier</A> )*</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">DropStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( <DATASET> <A HREF="#prod28">QualifiedName</A> <A HREF="#prod43">IfExists</A> | "index" <A HREF="#prod44">DoubleQualifiedName</A> <A HREF="#prod43">IfExists</A> | "nodegroup" <A HREF="#prod17">Identifier</A> <A HREF="#prod43">IfExists</A> | "type" <A HREF="#prod25">TypeName</A> <A HREF="#prod43">IfExists</A> | "dataverse" <A HREF="#prod17">Identifier</A> <A HREF="#prod43">IfExists</A> | "function" <A HREF="#prod42">FunctionSignature</A> <A HREF="#prod43">IfExists</A> | "feed" <A HREF="#prod28">QualifiedName</A> <A HREF="#prod43">IfExists</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"drop" ( <DATASET> <A HREF="#prod29">QualifiedName</A> <A HREF="#prod44">IfExists</A> | "index" <A HREF="#prod45">DoubleQualifiedName</A> <A HREF="#prod44">IfExists</A> | "nodegroup" <A HREF="#prod18">Identifier</A> <A HREF="#prod44">IfExists</A> | "type" <A HREF="#prod26">TypeName</A> <A HREF="#prod44">IfExists</A> | "dataverse" <A HREF="#prod18">Identifier</A> <A HREF="#prod44">IfExists</A> | "function" <A HREF="#prod43">FunctionSignature</A> <A HREF="#prod44">IfExists</A> | "feed" <A HREF="#prod29">QualifiedName</A> <A HREF="#prod44">IfExists</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">IfExists</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">IfExists</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE>( <IF> "exists" )?</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">InsertStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" <DATASET> <A HREF="#prod28">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"insert" "into" <DATASET> <A HREF="#prod29">QualifiedName</A> <A HREF="#prod15">Query</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">DeleteStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod45">Variable</A> <FROM> <DATASET> <A HREF="#prod28">QualifiedName</A> ( <WHERE> <A HREF="#prod39">Expression</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"delete" <A HREF="#prod46">Variable</A> <FROM> <DATASET> <A HREF="#prod29">QualifiedName</A> ( <WHERE> <A HREF="#prod40">Expression</A> )?</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">UpdateStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod45">Variable</A> <IN> <A HREF="#prod39">Expression</A> <WHERE> <A HREF="#prod39">Expression</A> <LEFTPAREN> ( <A HREF="#prod46">UpdateClause</A> ( <COMMA> <A HREF="#prod46">UpdateClause</A> )* ) <RIGHTPAREN></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"update" <A HREF="#prod46">Variable</A> <IN> <A HREF="#prod40">Expression</A> <WHERE> <A HREF="#prod40">Expression</A> <LEFTPAREN> ( <A HREF="#prod47">UpdateClause</A> ( <COMMA> <A HREF="#prod47">UpdateClause</A> )* ) <RIGHTPAREN></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">UpdateClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">UpdateClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod39">Expression</A> <ASSIGN> <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod40">Expression</A> <ASSIGN> <A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
@@ -461,302 +467,302 @@
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><IF> <LEFTPAREN> <A HREF="#prod39">Expression</A> <RIGHTPAREN> <THEN> <A HREF="#prod46">UpdateClause</A> ( <ELSE> <A HREF="#prod46">UpdateClause</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><IF> <LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN> <THEN> <A HREF="#prod47">UpdateClause</A> ( <ELSE> <A HREF="#prod47">UpdateClause</A> )?</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SetStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod17">Identifier</A> <A HREF="#prod36">StringLiteral</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"set" <A HREF="#prod18">Identifier</A> <A HREF="#prod37">StringLiteral</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">WriteStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod17">Identifier</A> <COLON> <A HREF="#prod36">StringLiteral</A> ( "using" <A HREF="#prod36">StringLiteral</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"write" "output" "to" <A HREF="#prod18">Identifier</A> <COLON> <A HREF="#prod37">StringLiteral</A> ( "using" <A HREF="#prod37">StringLiteral</A> )?</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">LoadStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"load" <DATASET> <A HREF="#prod28">QualifiedName</A> "using" <A HREF="#prod29">AdapterName</A> <A HREF="#prod30">Configuration</A> ( "pre-sorted" )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"load" <DATASET> <A HREF="#prod29">QualifiedName</A> "using" <A HREF="#prod30">AdapterName</A> <A HREF="#prod31">Configuration</A> ( "pre-sorted" )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">AdapterName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">AdapterName</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">CompactStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"compact" <DATASET> <A HREF="#prod28">QualifiedName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"compact" <DATASET> <A HREF="#prod29">QualifiedName</A></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">FeedStatement</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod28">QualifiedName</A> "to" <DATASET> <A HREF="#prod28">QualifiedName</A> ( <A HREF="#prod41">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod28">QualifiedName</A> <FROM> <DATASET> <A HREF="#prod28">QualifiedName</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "connect" "feed" <A HREF="#prod29">QualifiedName</A> "to" <DATASET> <A HREF="#prod29">QualifiedName</A> ( <A HREF="#prod42">GetPolicy</A> )? | "disconnect" "feed" <A HREF="#prod29">QualifiedName</A> <FROM> <DATASET> <A HREF="#prod29">QualifiedName</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">Configuration</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Configuration</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> ( <A HREF="#prod47">KeyValuePair</A> ( <COMMA> <A HREF="#prod47">KeyValuePair</A> )* )? <RIGHTPAREN></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> ( <A HREF="#prod48">KeyValuePair</A> ( <COMMA> <A HREF="#prod48">KeyValuePair</A> )* )? <RIGHTPAREN></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod47">KeyValuePair</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">KeyValuePair</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> <A HREF="#prod36">StringLiteral</A> <EQ> <A HREF="#prod36">StringLiteral</A> <RIGHTPAREN></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> <A HREF="#prod37">StringLiteral</A> <EQ> <A HREF="#prod37">StringLiteral</A> <RIGHTPAREN></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">Properties</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">Properties</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <LEFTPAREN> <A HREF="#prod48">Property</A> ( <COMMA> <A HREF="#prod48">Property</A> )* <RIGHTPAREN> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <LEFTPAREN> <A HREF="#prod49">Property</A> ( <COMMA> <A HREF="#prod49">Property</A> )* <RIGHTPAREN> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod48">Property</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">Property</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> <EQ> ( <A HREF="#prod36">StringLiteral</A> | <INTEGER_LITERAL> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> <EQ> ( <A HREF="#prod37">StringLiteral</A> | <INTEGER_LITERAL> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">TypeExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">TypeExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod49">RecordTypeDef</A> | <A HREF="#prod50">TypeReference</A> | <A HREF="#prod51">OrderedListTypeDef</A> | <A HREF="#prod52">UnorderedListTypeDef</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod50">RecordTypeDef</A> | <A HREF="#prod51">TypeReference</A> | <A HREF="#prod52">OrderedListTypeDef</A> | <A HREF="#prod53">UnorderedListTypeDef</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod49">RecordTypeDef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">RecordTypeDef</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? <LEFTBRACE> ( <A HREF="#prod53">RecordField</A> ( <COMMA> <A HREF="#prod53">RecordField</A> )* )? <RIGHTBRACE></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( "closed" | "open" )? <LEFTBRACE> ( <A HREF="#prod54">RecordField</A> ( <COMMA> <A HREF="#prod54">RecordField</A> )* )? <RIGHTBRACE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">RecordField</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">RecordField</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> <COLON> <A HREF="#prod27">TypeExpr</A> ( <QUES> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> <COLON> <A HREF="#prod28">TypeExpr</A> ( <QUES> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod50">TypeReference</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">TypeReference</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod51">OrderedListTypeDef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">OrderedListTypeDef</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod27">TypeExpr</A> ) <RIGHTBRACKET></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod28">TypeExpr</A> ) <RIGHTBRACKET></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod52">UnorderedListTypeDef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod53">UnorderedListTypeDef</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTDBLBRACE> ( <A HREF="#prod27">TypeExpr</A> ) <RIGHTDBLBRACE></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTDBLBRACE> ( <A HREF="#prod28">TypeExpr</A> ) <RIGHTDBLBRACE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">FunctionName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">FunctionName</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> ( <DOT> <A HREF="#prod17">Identifier</A> ( "#" <A HREF="#prod17">Identifier</A> )? | "#" <A HREF="#prod17">Identifier</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> ( "#" <A HREF="#prod18">Identifier</A> )? | "#" <A HREF="#prod18">Identifier</A> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">TypeName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">TypeName</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod28">QualifiedName</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod29">QualifiedName</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">Identifier</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">Identifier</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE><IDENTIFIER></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod36">StringLiteral</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">StringLiteral</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">StringLiteral</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">StringLiteral</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE><STRING_LITERAL></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">QualifiedName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">QualifiedName</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> ( <DOT> <A HREF="#prod17">Identifier</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">DoubleQualifiedName</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">DoubleQualifiedName</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod17">Identifier</A> <DOT> <A HREF="#prod17">Identifier</A> ( <DOT> <A HREF="#prod17">Identifier</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">Identifier</A> <DOT> <A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> )?</TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FunctionDeclaration</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod17">Identifier</A> <A HREF="#prod38">ParameterList</A> <LEFTBRACE> <A HREF="#prod39">Expression</A> <RIGHTBRACE></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>"declare" "function" <A HREF="#prod18">Identifier</A> <A HREF="#prod39">ParameterList</A> <LEFTBRACE> <A HREF="#prod40">Expression</A> <RIGHTBRACE></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">Query</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">Expression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">Expression</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod54">OperatorExpr</A> | <A HREF="#prod55">IfThenElse</A> | <A HREF="#prod56">FLWOGR</A> | <A HREF="#prod57">QuantifiedExpression</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod55">OperatorExpr</A> | <A HREF="#prod56">IfThenElse</A> | <A HREF="#prod57">FLWOGR</A> | <A HREF="#prod58">QuantifiedExpression</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod54">OperatorExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">OperatorExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod58">AndExpr</A> ( <OR> <A HREF="#prod58">AndExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">AndExpr</A> ( <OR> <A HREF="#prod59">AndExpr</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">AndExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">AndExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod59">RelExpr</A> ( <AND> <A HREF="#prod59">RelExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">RelExpr</A> ( <AND> <A HREF="#prod60">RelExpr</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod59">RelExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">RelExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod60">AddExpr</A> ( ( <LT> | <GT> | <LE> | <GE> | <EQ> | <NE> | <SIMILAR> ) <A HREF="#prod60">AddExpr</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">AddExpr</A> ( ( <LT> | <GT> | <LE> | <GE> | <EQ> | <NE> | <SIMILAR> ) <A HREF="#prod61">AddExpr</A> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod60">AddExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">AddExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod61">MultExpr</A> ( ( <PLUS> | <MINUS> ) <A HREF="#prod61">MultExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">MultExpr</A> ( ( <PLUS> | <MINUS> ) <A HREF="#prod62">MultExpr</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod61">MultExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">MultExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod62">UnionExpr</A> ( ( <MUL> | <DIV> | <MOD> | <CARET> | <IDIV> ) <A HREF="#prod62">UnionExpr</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnionExpr</A> ( ( <MUL> | <DIV> | <MOD> | <CARET> | <IDIV> ) <A HREF="#prod63">UnionExpr</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod62">UnionExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnionExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod63">UnaryExpr</A> ( <UNION> ( <A HREF="#prod63">UnaryExpr</A> ) )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod64">UnaryExpr</A> ( <UNION> ( <A HREF="#prod64">UnaryExpr</A> ) )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod63">UnaryExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">UnaryExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( ( <PLUS> | <MINUS> ) )? <A HREF="#prod64">ValueExpr</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( ( <PLUS> | <MINUS> ) )? <A HREF="#prod65">ValueExpr</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod64">ValueExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">ValueExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod65">PrimaryExpr</A> ( <A HREF="#prod66">Field</A> | <A HREF="#prod67">Index</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod66">PrimaryExpr</A> ( <A HREF="#prod67">Field</A> | <A HREF="#prod68">Index</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">Field</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Field</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><DOT> <A HREF="#prod17">Identifier</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><DOT> <A HREF="#prod18">Identifier</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod67">Index</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">Index</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod39">Expression</A> | <QUES> ) <RIGHTBRACKET></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod40">Expression</A> | <QUES> ) <RIGHTBRACKET></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod65">PrimaryExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod66">PrimaryExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod68">FunctionCallExpr</A> | <A HREF="#prod69">Literal</A> | <A HREF="#prod70">DatasetAccessExpression</A> | <A HREF="#prod71">VariableRef</A> | <A HREF="#prod72">ListConstructor</A> | <A HREF="#prod73">RecordConstructor</A> | <A HREF="#prod74">ParenthesizedExpression</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod69">FunctionCallExpr</A> | <A HREF="#prod70">Literal</A> | <A HREF="#prod71">DatasetAccessExpression</A> | <A HREF="#prod72">VariableRef</A> | <A HREF="#prod73">ListConstructor</A> | <A HREF="#prod74">RecordConstructor</A> | <A HREF="#prod75">ParenthesizedExpression</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">Literal</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">Literal</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod36">StringLiteral</A> | <INTEGER_LITERAL> | <FLOAT_LITERAL> | <DOUBLE_LITERAL> | <NULL> | <TRUE> | <FALSE> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod37">StringLiteral</A> | <INTEGER_LITERAL> | <FLOAT_LITERAL> | <DOUBLE_LITERAL> | <NULL> | <TRUE> | <FALSE> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">VariableRef</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">VariableRef</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE><VARIABLE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod45">Variable</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod46">Variable</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
<TD ALIGN=LEFT VALIGN=BASELINE><VARIABLE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod72">ListConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">ListConstructor</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod75">OrderedListConstructor</A> | <A HREF="#prod76">UnorderedListConstructor</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod76">OrderedListConstructor</A> | <A HREF="#prod77">UnorderedListConstructor</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">OrderedListConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">OrderedListConstructor</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod39">Expression</A> ( <COMMA> <A HREF="#prod39">Expression</A> )* )? <RIGHTBRACKET></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACKET> ( <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )* )? <RIGHTBRACKET></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod76">UnorderedListConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">UnorderedListConstructor</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTDBLBRACE> ( <A HREF="#prod39">Expression</A> ( <COMMA> <A HREF="#prod39">Expression</A> )* )? <RIGHTDBLBRACE></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTDBLBRACE> ( <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )* )? <RIGHTDBLBRACE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod73">RecordConstructor</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">RecordConstructor</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACE> ( <A HREF="#prod77">FieldBinding</A> ( <COMMA> <A HREF="#prod77">FieldBinding</A> )* )? <RIGHTBRACE></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTBRACE> ( <A HREF="#prod78">FieldBinding</A> ( <COMMA> <A HREF="#prod78">FieldBinding</A> )* )? <RIGHTBRACE></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod77">FieldBinding</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">FieldBinding</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod39">Expression</A> <COLON> <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod40">Expression</A> <COLON> <A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod68">FunctionCallExpr</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod69">FunctionCallExpr</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">FunctionName</A> <LEFTPAREN> ( <A HREF="#prod39">Expression</A> ( <COMMA> <A HREF="#prod39">Expression</A> )* )? <RIGHTPAREN></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">FunctionName</A> <LEFTPAREN> ( <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )* )? <RIGHTPAREN></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod70">DatasetAccessExpression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod71">DatasetAccessExpression</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><DATASET> ( ( <A HREF="#prod17">Identifier</A> ( <DOT> <A HREF="#prod17">Identifier</A> )? ) | ( <LEFTPAREN> <A HREF="#prod39">Expression</A> <RIGHTPAREN> ) )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><DATASET> ( ( <A HREF="#prod18">Identifier</A> ( <DOT> <A HREF="#prod18">Identifier</A> )? ) | ( <LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN> ) )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod74">ParenthesizedExpression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod75">ParenthesizedExpression</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> <A HREF="#prod39">Expression</A> <RIGHTPAREN></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod55">IfThenElse</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">IfThenElse</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><IF> <LEFTPAREN> <A HREF="#prod39">Expression</A> <RIGHTPAREN> <THEN> <A HREF="#prod39">Expression</A> <ELSE> <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><IF> <LEFTPAREN> <A HREF="#prod40">Expression</A> <RIGHTPAREN> <THEN> <A HREF="#prod40">Expression</A> <ELSE> <A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod56">FLWOGR</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">FLWOGR</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod78">ForClause</A> | <A HREF="#prod79">LetClause</A> ) ( <A HREF="#prod80">Clause</A> )* ( <RETURN> | <SELECT> ) <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> ) ( <A HREF="#prod81">Clause</A> )* ( <RETURN> | <SELECT> ) <A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">Clause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">Clause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod78">ForClause</A> | <A HREF="#prod79">LetClause</A> | <A HREF="#prod81">WhereClause</A> | <A HREF="#prod82">OrderbyClause</A> | <A HREF="#prod83">GroupClause</A> | <A HREF="#prod84">LimitClause</A> | <A HREF="#prod85">DistinctClause</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod79">ForClause</A> | <A HREF="#prod80">LetClause</A> | <A HREF="#prod82">WhereClause</A> | <A HREF="#prod83">OrderbyClause</A> | <A HREF="#prod84">GroupClause</A> | <A HREF="#prod85">LimitClause</A> | <A HREF="#prod86">DistinctClause</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod78">ForClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">ForClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <FOR> | <FROM> ) <A HREF="#prod45">Variable</A> ( <AT> <A HREF="#prod45">Variable</A> )? <IN> ( <A HREF="#prod39">Expression</A> )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <FOR> | <FROM> ) <A HREF="#prod46">Variable</A> ( <AT> <A HREF="#prod46">Variable</A> )? <IN> ( <A HREF="#prod40">Expression</A> )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod79">LetClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod80">LetClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <LET> | <WITH> ) <A HREF="#prod45">Variable</A> <ASSIGN> <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <LET> | <WITH> ) <A HREF="#prod46">Variable</A> <ASSIGN> <A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod81">WhereClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">WhereClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><WHERE> <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><WHERE> <A HREF="#prod40">Expression</A></TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod82">OrderbyClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">OrderbyClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( <ORDER> <BY> <A HREF="#prod39">Expression</A> ( ( <ASC> ) | ( <DESC> ) )? ( <COMMA> <A HREF="#prod39">Expression</A> ( ( <ASC> ) | ( <DESC> ) )? )* )</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( <ORDER> <BY> <A HREF="#prod40">Expression</A> ( ( <ASC> ) | ( <DESC> ) )? ( <COMMA> <A HREF="#prod40">Expression</A> ( ( <ASC> ) | ( <DESC> ) )? )* )</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod83">GroupClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">GroupClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><GROUP> <BY> ( <A HREF="#prod45">Variable</A> <ASSIGN> )? <A HREF="#prod39">Expression</A> ( <COMMA> ( <A HREF="#prod45">Variable</A> <ASSIGN> )? <A HREF="#prod39">Expression</A> )* ( <DECOR> <A HREF="#prod45">Variable</A> <ASSIGN> <A HREF="#prod39">Expression</A> ( <COMMA> <DECOR> <A HREF="#prod45">Variable</A> <ASSIGN> <A HREF="#prod39">Expression</A> )* )? <WITH> <A HREF="#prod71">VariableRef</A> ( <COMMA> <A HREF="#prod71">VariableRef</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><GROUP> <BY> ( <A HREF="#prod46">Variable</A> <ASSIGN> )? <A HREF="#prod40">Expression</A> ( <COMMA> ( <A HREF="#prod46">Variable</A> <ASSIGN> )? <A HREF="#prod40">Expression</A> )* ( <DECOR> <A HREF="#prod46">Variable</A> <ASSIGN> <A HREF="#prod40">Expression</A> ( <COMMA> <DECOR> <A HREF="#prod46">Variable</A> <ASSIGN> <A HREF="#prod40">Expression</A> )* )? ( <WITH> | <KEEPING> ) <A HREF="#prod72">VariableRef</A> ( <COMMA> <A HREF="#prod72">VariableRef</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod84">LimitClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">LimitClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><LIMIT> <A HREF="#prod39">Expression</A> ( <OFFSET> <A HREF="#prod39">Expression</A> )?</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><LIMIT> <A HREF="#prod40">Expression</A> ( <OFFSET> <A HREF="#prod40">Expression</A> )?</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod85">DistinctClause</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod86">DistinctClause</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE><DISTINCT> <BY> <A HREF="#prod39">Expression</A> ( <COMMA> <A HREF="#prod39">Expression</A> )*</TD>
+<TD ALIGN=LEFT VALIGN=BASELINE><DISTINCT> <BY> <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod40">Expression</A> )*</TD>
</TR>
<TR>
-<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod57">QuantifiedExpression</A></TD>
+<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod58">QuantifiedExpression</A></TD>
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
-<TD ALIGN=LEFT VALIGN=BASELINE>( ( <SOME> ) | ( <EVERY> ) ) <A HREF="#prod45">Variable</A> <IN> <A HREF="#prod39">Expression</A> ( <COMMA> <A HREF="#prod45">Variable</A> <IN> <A HREF="#prod39">Expression</A> )* <SATISFIES> <A HREF="#prod39">Expression</A></TD>
+<TD ALIGN=LEFT VALIGN=BASELINE>( ( <SOME> ) | ( <EVERY> ) ) <A HREF="#prod46">Variable</A> <IN> <A HREF="#prod40">Expression</A> ( <COMMA> <A HREF="#prod46">Variable</A> <IN> <A HREF="#prod40">Expression</A> )* <SATISFIES> <A HREF="#prod40">Expression</A></TD>
</TR>
</TABLE>
</BODY>
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-aql/src/main/javacc/AQL.jj
----------------------------------------------------------------------
diff --git a/asterix-aql/src/main/javacc/AQL.jj b/asterix-aql/src/main/javacc/AQL.jj
index 3e64da4..8150871 100644
--- a/asterix-aql/src/main/javacc/AQL.jj
+++ b/asterix-aql/src/main/javacc/AQL.jj
@@ -407,6 +407,7 @@ DatasetDecl DatasetSpecification() throws ParseException:
DatasetDecl dsetDecl = null;
boolean autogenerated = false;
String compactionPolicy = null;
+ boolean temp = false;
List<String> filterField = null;
}
{
@@ -434,7 +435,11 @@ DatasetDecl DatasetSpecification() throws ParseException:
ifNotExists);
}
- | ("internal")? <DATASET> nameComponents = QualifiedName()
+ | ("internal" | "temporary" {
+ temp = token.image.toLowerCase().equals("temporary");
+ }
+ )?
+ <DATASET> nameComponents = QualifiedName()
<LEFTPAREN> typeName = Identifier() <RIGHTPAREN>
ifNotExists = IfNotExists()
primaryKeyFields = PrimaryKey()
@@ -451,7 +456,8 @@ DatasetDecl DatasetSpecification() throws ParseException:
autogenerated,
compactionPolicy,
compactionPolicyProperties,
- filterField);
+ filterField,
+ temp);
dsetDecl = new DatasetDecl(nameComponents.first,
nameComponents.second,
new Identifier(typeName),
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/DatasetConfig.java
----------------------------------------------------------------------
diff --git a/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/DatasetConfig.java b/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/DatasetConfig.java
index ec11c5d..debab84 100644
--- a/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/DatasetConfig.java
+++ b/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/DatasetConfig.java
@@ -39,15 +39,15 @@ public class DatasetConfig {
}
public enum ExternalDatasetTransactionState {
- COMMIT, // The committed state <- nothing is required->
- BEGIN, // The state after starting the refresh transaction <- will either abort moving to committed state or move to ready to commit->
+ COMMIT, // The committed state <- nothing is required->
+ BEGIN, // The state after starting the refresh transaction <- will either abort moving to committed state or move to ready to commit->
READY_TO_COMMIT // The transaction is ready to commit <- can only move forward to committed state->
};
public enum ExternalFilePendingOp {
- PENDING_NO_OP, // the stored file is part of a committed transaction nothing is required
- PENDING_ADD_OP, // the stored file is part of an ongoing transaction (will be added if transaction succeed)
- PENDING_DROP_OP, // the stored file is part of an ongoing transaction (will be dropped if transaction succeed)
- PENDING_APPEND_OP // the stored file is part of an ongoing transaction (will be updated if transaction succeed)
+ PENDING_NO_OP, // the stored file is part of a committed transaction nothing is required
+ PENDING_ADD_OP, // the stored file is part of an ongoing transaction (will be added if transaction succeed)
+ PENDING_DROP_OP, // the stored file is part of an ongoing transaction (will be dropped if transaction succeed)
+ PENDING_APPEND_OP // the stored file is part of an ongoing transaction (will be updated if transaction succeed)
};
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/ccd67fe8/asterix-common/src/main/java/edu/uci/ics/asterix/common/context/DatasetLifecycleManager.java
----------------------------------------------------------------------
diff --git a/asterix-common/src/main/java/edu/uci/ics/asterix/common/context/DatasetLifecycleManager.java b/asterix-common/src/main/java/edu/uci/ics/asterix/common/context/DatasetLifecycleManager.java
index b7064d3..9a91289 100644
--- a/asterix-common/src/main/java/edu/uci/ics/asterix/common/context/DatasetLifecycleManager.java
+++ b/asterix-common/src/main/java/edu/uci/ics/asterix/common/context/DatasetLifecycleManager.java
@@ -446,7 +446,8 @@ public class DatasetLifecycleManager implements IIndexLifecycleManager, ILifeCyc
AbstractLSMIOOperationCallback ioCallback = (AbstractLSMIOOperationCallback) iInfo.index
.getIOOperationCallback();
if (!(((AbstractLSMIndex) iInfo.index).isCurrentMutableComponentEmpty()
- || ioCallback.hasPendingFlush() || opTracker.isFlushLogCreated() || opTracker.isFlushOnExit())) {
+ || ioCallback.hasPendingFlush() || opTracker.isFlushLogCreated() || opTracker
+ .isFlushOnExit())) {
long firstLSN = ioCallback.getFirstLSN();
if (firstLSN < targetLSN) {
opTracker.setFlushOnExit(true);