gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/ql2/ql2.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: ql2.proto 3 4 package ql2 5 6 import proto "github.com/golang/protobuf/proto" 7 import fmt "fmt" 8 import math "math" 9 10 // Reference imports to suppress errors if they are not otherwise used. 11 var _ = proto.Marshal 12 var _ = fmt.Errorf 13 var _ = math.Inf 14 15 // This is a compile-time assertion to ensure that this generated file 16 // is compatible with the proto package it is being compiled against. 17 // A compilation error at this line likely means your copy of the 18 // proto package needs to be updated. 19 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 20 21 // non-conforming protobuf libraries 22 // This enum contains the magic numbers for your version. See **THE HIGH-LEVEL 23 // VIEW** for what to do with it. 24 type VersionDummy_Version int32 25 26 const ( 27 VersionDummy_V0_1 VersionDummy_Version = 1063369270 28 VersionDummy_V0_2 VersionDummy_Version = 1915781601 29 VersionDummy_V0_3 VersionDummy_Version = 1601562686 30 VersionDummy_V0_4 VersionDummy_Version = 1074539808 31 VersionDummy_V1_0 VersionDummy_Version = 885177795 32 ) 33 34 var VersionDummy_Version_name = map[int32]string{ 35 1063369270: "V0_1", 36 1915781601: "V0_2", 37 1601562686: "V0_3", 38 1074539808: "V0_4", 39 885177795: "V1_0", 40 } 41 var VersionDummy_Version_value = map[string]int32{ 42 "V0_1": 1063369270, 43 "V0_2": 1915781601, 44 "V0_3": 1601562686, 45 "V0_4": 1074539808, 46 "V1_0": 885177795, 47 } 48 49 func (x VersionDummy_Version) Enum() *VersionDummy_Version { 50 p := new(VersionDummy_Version) 51 *p = x 52 return p 53 } 54 func (x VersionDummy_Version) String() string { 55 return proto.EnumName(VersionDummy_Version_name, int32(x)) 56 } 57 func (x *VersionDummy_Version) UnmarshalJSON(data []byte) error { 58 value, err := proto.UnmarshalJSONEnum(VersionDummy_Version_value, data, "VersionDummy_Version") 59 if err != nil { 60 return err 61 } 62 *x = VersionDummy_Version(value) 63 return nil 64 } 65 func (VersionDummy_Version) EnumDescriptor() ([]byte, []int) { 66 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{0, 0} 67 } 68 69 // The protocol to use after the handshake, specified in V0_3 70 type VersionDummy_Protocol int32 71 72 const ( 73 VersionDummy_PROTOBUF VersionDummy_Protocol = 656407617 74 VersionDummy_JSON VersionDummy_Protocol = 2120839367 75 ) 76 77 var VersionDummy_Protocol_name = map[int32]string{ 78 656407617: "PROTOBUF", 79 2120839367: "JSON", 80 } 81 var VersionDummy_Protocol_value = map[string]int32{ 82 "PROTOBUF": 656407617, 83 "JSON": 2120839367, 84 } 85 86 func (x VersionDummy_Protocol) Enum() *VersionDummy_Protocol { 87 p := new(VersionDummy_Protocol) 88 *p = x 89 return p 90 } 91 func (x VersionDummy_Protocol) String() string { 92 return proto.EnumName(VersionDummy_Protocol_name, int32(x)) 93 } 94 func (x *VersionDummy_Protocol) UnmarshalJSON(data []byte) error { 95 value, err := proto.UnmarshalJSONEnum(VersionDummy_Protocol_value, data, "VersionDummy_Protocol") 96 if err != nil { 97 return err 98 } 99 *x = VersionDummy_Protocol(value) 100 return nil 101 } 102 func (VersionDummy_Protocol) EnumDescriptor() ([]byte, []int) { 103 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{0, 1} 104 } 105 106 type Query_QueryType int32 107 108 const ( 109 Query_START Query_QueryType = 1 110 Query_CONTINUE Query_QueryType = 2 111 // (see [Response]). 112 Query_STOP Query_QueryType = 3 113 Query_NOREPLY_WAIT Query_QueryType = 4 114 Query_SERVER_INFO Query_QueryType = 5 115 ) 116 117 var Query_QueryType_name = map[int32]string{ 118 1: "START", 119 2: "CONTINUE", 120 3: "STOP", 121 4: "NOREPLY_WAIT", 122 5: "SERVER_INFO", 123 } 124 var Query_QueryType_value = map[string]int32{ 125 "START": 1, 126 "CONTINUE": 2, 127 "STOP": 3, 128 "NOREPLY_WAIT": 4, 129 "SERVER_INFO": 5, 130 } 131 132 func (x Query_QueryType) Enum() *Query_QueryType { 133 p := new(Query_QueryType) 134 *p = x 135 return p 136 } 137 func (x Query_QueryType) String() string { 138 return proto.EnumName(Query_QueryType_name, int32(x)) 139 } 140 func (x *Query_QueryType) UnmarshalJSON(data []byte) error { 141 value, err := proto.UnmarshalJSONEnum(Query_QueryType_value, data, "Query_QueryType") 142 if err != nil { 143 return err 144 } 145 *x = Query_QueryType(value) 146 return nil 147 } 148 func (Query_QueryType) EnumDescriptor() ([]byte, []int) { 149 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{1, 0} 150 } 151 152 type Frame_FrameType int32 153 154 const ( 155 Frame_POS Frame_FrameType = 1 156 Frame_OPT Frame_FrameType = 2 157 ) 158 159 var Frame_FrameType_name = map[int32]string{ 160 1: "POS", 161 2: "OPT", 162 } 163 var Frame_FrameType_value = map[string]int32{ 164 "POS": 1, 165 "OPT": 2, 166 } 167 168 func (x Frame_FrameType) Enum() *Frame_FrameType { 169 p := new(Frame_FrameType) 170 *p = x 171 return p 172 } 173 func (x Frame_FrameType) String() string { 174 return proto.EnumName(Frame_FrameType_name, int32(x)) 175 } 176 func (x *Frame_FrameType) UnmarshalJSON(data []byte) error { 177 value, err := proto.UnmarshalJSONEnum(Frame_FrameType_value, data, "Frame_FrameType") 178 if err != nil { 179 return err 180 } 181 *x = Frame_FrameType(value) 182 return nil 183 } 184 func (Frame_FrameType) EnumDescriptor() ([]byte, []int) { 185 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{2, 0} 186 } 187 188 type Response_ResponseType int32 189 190 const ( 191 // These response types indicate success. 192 Response_SUCCESS_ATOM Response_ResponseType = 1 193 Response_SUCCESS_SEQUENCE Response_ResponseType = 2 194 Response_SUCCESS_PARTIAL Response_ResponseType = 3 195 // datatypes. If you send a [CONTINUE] query with 196 // the same token as this response, you will get 197 // more of the sequence. Keep sending [CONTINUE] 198 // queries until you get back [SUCCESS_SEQUENCE]. 199 Response_WAIT_COMPLETE Response_ResponseType = 4 200 Response_SERVER_INFO Response_ResponseType = 5 201 // These response types indicate failure. 202 Response_CLIENT_ERROR Response_ResponseType = 16 203 // client sends a malformed protobuf, or tries to 204 // send [CONTINUE] for an unknown token. 205 Response_COMPILE_ERROR Response_ResponseType = 17 206 // checking. For example, if you pass too many 207 // arguments to a function. 208 Response_RUNTIME_ERROR Response_ResponseType = 18 209 ) 210 211 var Response_ResponseType_name = map[int32]string{ 212 1: "SUCCESS_ATOM", 213 2: "SUCCESS_SEQUENCE", 214 3: "SUCCESS_PARTIAL", 215 4: "WAIT_COMPLETE", 216 5: "SERVER_INFO", 217 16: "CLIENT_ERROR", 218 17: "COMPILE_ERROR", 219 18: "RUNTIME_ERROR", 220 } 221 var Response_ResponseType_value = map[string]int32{ 222 "SUCCESS_ATOM": 1, 223 "SUCCESS_SEQUENCE": 2, 224 "SUCCESS_PARTIAL": 3, 225 "WAIT_COMPLETE": 4, 226 "SERVER_INFO": 5, 227 "CLIENT_ERROR": 16, 228 "COMPILE_ERROR": 17, 229 "RUNTIME_ERROR": 18, 230 } 231 232 func (x Response_ResponseType) Enum() *Response_ResponseType { 233 p := new(Response_ResponseType) 234 *p = x 235 return p 236 } 237 func (x Response_ResponseType) String() string { 238 return proto.EnumName(Response_ResponseType_name, int32(x)) 239 } 240 func (x *Response_ResponseType) UnmarshalJSON(data []byte) error { 241 value, err := proto.UnmarshalJSONEnum(Response_ResponseType_value, data, "Response_ResponseType") 242 if err != nil { 243 return err 244 } 245 *x = Response_ResponseType(value) 246 return nil 247 } 248 func (Response_ResponseType) EnumDescriptor() ([]byte, []int) { 249 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{4, 0} 250 } 251 252 // If `ResponseType` is `RUNTIME_ERROR`, this may be filled in with more 253 // information about the error. 254 type Response_ErrorType int32 255 256 const ( 257 Response_INTERNAL Response_ErrorType = 1000000 258 Response_RESOURCE_LIMIT Response_ErrorType = 2000000 259 Response_QUERY_LOGIC Response_ErrorType = 3000000 260 Response_NON_EXISTENCE Response_ErrorType = 3100000 261 Response_OP_FAILED Response_ErrorType = 4100000 262 Response_OP_INDETERMINATE Response_ErrorType = 4200000 263 Response_USER Response_ErrorType = 5000000 264 Response_PERMISSION_ERROR Response_ErrorType = 6000000 265 ) 266 267 var Response_ErrorType_name = map[int32]string{ 268 1000000: "INTERNAL", 269 2000000: "RESOURCE_LIMIT", 270 3000000: "QUERY_LOGIC", 271 3100000: "NON_EXISTENCE", 272 4100000: "OP_FAILED", 273 4200000: "OP_INDETERMINATE", 274 5000000: "USER", 275 6000000: "PERMISSION_ERROR", 276 } 277 var Response_ErrorType_value = map[string]int32{ 278 "INTERNAL": 1000000, 279 "RESOURCE_LIMIT": 2000000, 280 "QUERY_LOGIC": 3000000, 281 "NON_EXISTENCE": 3100000, 282 "OP_FAILED": 4100000, 283 "OP_INDETERMINATE": 4200000, 284 "USER": 5000000, 285 "PERMISSION_ERROR": 6000000, 286 } 287 288 func (x Response_ErrorType) Enum() *Response_ErrorType { 289 p := new(Response_ErrorType) 290 *p = x 291 return p 292 } 293 func (x Response_ErrorType) String() string { 294 return proto.EnumName(Response_ErrorType_name, int32(x)) 295 } 296 func (x *Response_ErrorType) UnmarshalJSON(data []byte) error { 297 value, err := proto.UnmarshalJSONEnum(Response_ErrorType_value, data, "Response_ErrorType") 298 if err != nil { 299 return err 300 } 301 *x = Response_ErrorType(value) 302 return nil 303 } 304 func (Response_ErrorType) EnumDescriptor() ([]byte, []int) { 305 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{4, 1} 306 } 307 308 // ResponseNotes are used to provide information about the query 309 // response that may be useful for people writing drivers or ORMs. 310 // Currently all the notes we send indicate that a stream has certain 311 // special properties. 312 type Response_ResponseNote int32 313 314 const ( 315 // The stream is a changefeed stream (e.g. `r.table('test').changes()`). 316 Response_SEQUENCE_FEED Response_ResponseNote = 1 317 // The stream is a point changefeed stream 318 // (e.g. `r.table('test').get(0).changes()`). 319 Response_ATOM_FEED Response_ResponseNote = 2 320 // The stream is an order_by_limit changefeed stream 321 // (e.g. `r.table('test').order_by(index: 'id').limit(5).changes()`). 322 Response_ORDER_BY_LIMIT_FEED Response_ResponseNote = 3 323 // The stream is a union of multiple changefeed types that can't be 324 // collapsed to a single type 325 // (e.g. `r.table('test').changes().union(r.table('test').get(0).changes())`). 326 Response_UNIONED_FEED Response_ResponseNote = 4 327 // The stream is a changefeed stream and includes notes on what state 328 // the changefeed stream is in (e.g. objects of the form `{state: 329 // 'initializing'}`). 330 Response_INCLUDES_STATES Response_ResponseNote = 5 331 ) 332 333 var Response_ResponseNote_name = map[int32]string{ 334 1: "SEQUENCE_FEED", 335 2: "ATOM_FEED", 336 3: "ORDER_BY_LIMIT_FEED", 337 4: "UNIONED_FEED", 338 5: "INCLUDES_STATES", 339 } 340 var Response_ResponseNote_value = map[string]int32{ 341 "SEQUENCE_FEED": 1, 342 "ATOM_FEED": 2, 343 "ORDER_BY_LIMIT_FEED": 3, 344 "UNIONED_FEED": 4, 345 "INCLUDES_STATES": 5, 346 } 347 348 func (x Response_ResponseNote) Enum() *Response_ResponseNote { 349 p := new(Response_ResponseNote) 350 *p = x 351 return p 352 } 353 func (x Response_ResponseNote) String() string { 354 return proto.EnumName(Response_ResponseNote_name, int32(x)) 355 } 356 func (x *Response_ResponseNote) UnmarshalJSON(data []byte) error { 357 value, err := proto.UnmarshalJSONEnum(Response_ResponseNote_value, data, "Response_ResponseNote") 358 if err != nil { 359 return err 360 } 361 *x = Response_ResponseNote(value) 362 return nil 363 } 364 func (Response_ResponseNote) EnumDescriptor() ([]byte, []int) { 365 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{4, 2} 366 } 367 368 type Datum_DatumType int32 369 370 const ( 371 Datum_R_NULL Datum_DatumType = 1 372 Datum_R_BOOL Datum_DatumType = 2 373 Datum_R_NUM Datum_DatumType = 3 374 Datum_R_STR Datum_DatumType = 4 375 Datum_R_ARRAY Datum_DatumType = 5 376 Datum_R_OBJECT Datum_DatumType = 6 377 // This [DatumType] will only be used if [accepts_r_json] is 378 // set to [true] in [Query]. [r_str] will be filled with a 379 // JSON encoding of the [Datum]. 380 Datum_R_JSON Datum_DatumType = 7 381 ) 382 383 var Datum_DatumType_name = map[int32]string{ 384 1: "R_NULL", 385 2: "R_BOOL", 386 3: "R_NUM", 387 4: "R_STR", 388 5: "R_ARRAY", 389 6: "R_OBJECT", 390 7: "R_JSON", 391 } 392 var Datum_DatumType_value = map[string]int32{ 393 "R_NULL": 1, 394 "R_BOOL": 2, 395 "R_NUM": 3, 396 "R_STR": 4, 397 "R_ARRAY": 5, 398 "R_OBJECT": 6, 399 "R_JSON": 7, 400 } 401 402 func (x Datum_DatumType) Enum() *Datum_DatumType { 403 p := new(Datum_DatumType) 404 *p = x 405 return p 406 } 407 func (x Datum_DatumType) String() string { 408 return proto.EnumName(Datum_DatumType_name, int32(x)) 409 } 410 func (x *Datum_DatumType) UnmarshalJSON(data []byte) error { 411 value, err := proto.UnmarshalJSONEnum(Datum_DatumType_value, data, "Datum_DatumType") 412 if err != nil { 413 return err 414 } 415 *x = Datum_DatumType(value) 416 return nil 417 } 418 func (Datum_DatumType) EnumDescriptor() ([]byte, []int) { 419 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{5, 0} 420 } 421 422 type Term_TermType int32 423 424 const ( 425 // A RQL datum, stored in `datum` below. 426 Term_DATUM Term_TermType = 1 427 Term_MAKE_ARRAY Term_TermType = 2 428 // Evaluate the terms in [optargs] and make an object 429 Term_MAKE_OBJ Term_TermType = 3 430 // Takes an integer representing a variable and returns the value stored 431 // in that variable. It's the responsibility of the client to translate 432 // from their local representation of a variable to a unique _non-negative_ 433 // integer for that variable. (We do it this way instead of letting 434 // clients provide variable names as strings to discourage 435 // variable-capturing client libraries, and because it's more efficient 436 // on the wire.) 437 Term_VAR Term_TermType = 10 438 // Takes some javascript code and executes it. 439 Term_JAVASCRIPT Term_TermType = 11 440 // STRING {timeout: !NUMBER} -> Function(*) 441 Term_UUID Term_TermType = 169 442 // Takes an HTTP URL and gets it. If the get succeeds and 443 // returns valid JSON, it is converted into a DATUM 444 Term_HTTP Term_TermType = 153 445 // Takes a string and throws an error with that message. 446 // Inside of a `default` block, you can omit the first 447 // argument to rethrow whatever error you catch (this is most 448 // useful as an argument to the `default` filter optarg). 449 Term_ERROR Term_TermType = 12 450 // Takes nothing and returns a reference to the implicit variable. 451 Term_IMPLICIT_VAR Term_TermType = 13 452 // * Data Operators 453 // Returns a reference to a database. 454 Term_DB Term_TermType = 14 455 // Returns a reference to a table. 456 Term_TABLE Term_TermType = 15 457 // STRING, {read_mode:STRING, identifier_format:STRING} -> Table 458 // Gets a single element from a table by its primary or a secondary key. 459 Term_GET Term_TermType = 16 460 // Table, STRING -> NULL | Table, NUMBER -> NULL | 461 Term_GET_ALL Term_TermType = 78 462 // Simple DATUM Ops 463 Term_EQ Term_TermType = 17 464 Term_NE Term_TermType = 18 465 Term_LT Term_TermType = 19 466 Term_LE Term_TermType = 20 467 Term_GT Term_TermType = 21 468 Term_GE Term_TermType = 22 469 Term_NOT Term_TermType = 23 470 // ADD can either add two numbers or concatenate two arrays. 471 Term_ADD Term_TermType = 24 472 Term_SUB Term_TermType = 25 473 Term_MUL Term_TermType = 26 474 Term_DIV Term_TermType = 27 475 Term_MOD Term_TermType = 28 476 Term_FLOOR Term_TermType = 183 477 Term_CEIL Term_TermType = 184 478 Term_ROUND Term_TermType = 185 479 // DATUM Array Ops 480 // Append a single element to the end of an array (like `snoc`). 481 Term_APPEND Term_TermType = 29 482 // Prepend a single element to the end of an array (like `cons`). 483 Term_PREPEND Term_TermType = 80 484 // Remove the elements of one array from another array. 485 Term_DIFFERENCE Term_TermType = 95 486 // DATUM Set Ops 487 // Set ops work on arrays. They don't use actual sets and thus have 488 // performance characteristics you would expect from arrays rather than 489 // from sets. All set operations have the post condition that they 490 // array they return contains no duplicate values. 491 Term_SET_INSERT Term_TermType = 88 492 Term_SET_INTERSECTION Term_TermType = 89 493 Term_SET_UNION Term_TermType = 90 494 Term_SET_DIFFERENCE Term_TermType = 91 495 Term_SLICE Term_TermType = 30 496 Term_SKIP Term_TermType = 70 497 Term_LIMIT Term_TermType = 71 498 Term_OFFSETS_OF Term_TermType = 87 499 Term_CONTAINS Term_TermType = 93 500 // Stream/Object Ops 501 // Get a particular field from an object, or map that over a 502 // sequence. 503 Term_GET_FIELD Term_TermType = 31 504 // | Sequence, STRING -> Sequence 505 // Return an array containing the keys of the object. 506 Term_KEYS Term_TermType = 94 507 // Return an array containing the values of the object. 508 Term_VALUES Term_TermType = 186 509 // Creates an object 510 Term_OBJECT Term_TermType = 143 511 // Check whether an object contains all the specified fields, 512 // or filters a sequence so that all objects inside of it 513 // contain all the specified fields. 514 Term_HAS_FIELDS Term_TermType = 32 515 // x.with_fields(...) <=> x.has_fields(...).pluck(...) 516 Term_WITH_FIELDS Term_TermType = 96 517 // Get a subset of an object by selecting some attributes to preserve, 518 // or map that over a sequence. (Both pick and pluck, polymorphic.) 519 Term_PLUCK Term_TermType = 33 520 // Get a subset of an object by selecting some attributes to discard, or 521 // map that over a sequence. (Both unpick and without, polymorphic.) 522 Term_WITHOUT Term_TermType = 34 523 // Merge objects (right-preferential) 524 Term_MERGE Term_TermType = 35 525 // Sequence Ops 526 // Get all elements of a sequence between two values. 527 // Half-open by default, but the openness of either side can be 528 // changed by passing 'closed' or 'open for `right_bound` or 529 // `left_bound`. 530 Term_BETWEEN_DEPRECATED Term_TermType = 36 531 // With the newer version, clients should use `r.minval` and `r.maxval` for unboundedness 532 Term_BETWEEN Term_TermType = 182 533 Term_REDUCE Term_TermType = 37 534 Term_MAP Term_TermType = 38 535 Term_FOLD Term_TermType = 187 536 // Filter a sequence with either a function or a shortcut 537 // object (see API docs for details). The body of FILTER is 538 // wrapped in an implicit `.default(false)`, and you can 539 // change the default value by specifying the `default` 540 // optarg. If you make the default `r.error`, all errors 541 // caught by `default` will be rethrown as if the `default` 542 // did not exist. 543 Term_FILTER Term_TermType = 39 544 // Sequence, OBJECT, {default:DATUM} -> Sequence 545 // Map a function over a sequence and then concatenate the results together. 546 Term_CONCAT_MAP Term_TermType = 40 547 // Order a sequence based on one or more attributes. 548 Term_ORDER_BY Term_TermType = 41 549 // Get all distinct elements of a sequence (like `uniq`). 550 Term_DISTINCT Term_TermType = 42 551 // Count the number of elements in a sequence, or only the elements that match 552 // a given filter. 553 Term_COUNT Term_TermType = 43 554 Term_IS_EMPTY Term_TermType = 86 555 // Take the union of multiple sequences (preserves duplicate elements! (use distinct)). 556 Term_UNION Term_TermType = 44 557 // Get the Nth element of a sequence. 558 Term_NTH Term_TermType = 45 559 // do NTH or GET_FIELD depending on target object 560 Term_BRACKET Term_TermType = 170 561 Term_INNER_JOIN Term_TermType = 48 562 Term_OUTER_JOIN Term_TermType = 49 563 // An inner-join that does an equality comparison on two attributes. 564 Term_EQ_JOIN Term_TermType = 50 565 Term_ZIP Term_TermType = 72 566 Term_RANGE Term_TermType = 173 567 // Array Ops 568 // Insert an element in to an array at a given index. 569 Term_INSERT_AT Term_TermType = 82 570 // Remove an element at a given index from an array. 571 Term_DELETE_AT Term_TermType = 83 572 // ARRAY, NUMBER, NUMBER -> ARRAY 573 // Change the element at a given index of an array. 574 Term_CHANGE_AT Term_TermType = 84 575 // Splice one array in to another array. 576 Term_SPLICE_AT Term_TermType = 85 577 // * Type Ops 578 // Coerces a datum to a named type (e.g. "bool"). 579 // If you previously used `stream_to_array`, you should use this instead 580 // with the type "array". 581 Term_COERCE_TO Term_TermType = 51 582 // Returns the named type of a datum (e.g. TYPE_OF(true) = "BOOL") 583 Term_TYPE_OF Term_TermType = 52 584 // * Write Ops (the OBJECTs contain data about number of errors etc.) 585 // Updates all the rows in a selection. Calls its Function with the row 586 // to be updated, and then merges the result of that call. 587 Term_UPDATE Term_TermType = 53 588 // SingleSelection, Function(1), {non_atomic:BOOL, durability:STRING, return_changes:BOOL} -> OBJECT | 589 // StreamSelection, OBJECT, {non_atomic:BOOL, durability:STRING, return_changes:BOOL} -> OBJECT | 590 // SingleSelection, OBJECT, {non_atomic:BOOL, durability:STRING, return_changes:BOOL} -> OBJECT 591 // Deletes all the rows in a selection. 592 Term_DELETE Term_TermType = 54 593 // Replaces all the rows in a selection. Calls its Function with the row 594 // to be replaced, and then discards it and stores the result of that 595 // call. 596 Term_REPLACE Term_TermType = 55 597 // Inserts into a table. If `conflict` is replace, overwrites 598 // entries with the same primary key. If `conflict` is 599 // update, does an update on the entry. If `conflict` is 600 // error, or is omitted, conflicts will trigger an error. 601 Term_INSERT Term_TermType = 56 602 // * Administrative OPs 603 // Creates a database with a particular name. 604 Term_DB_CREATE Term_TermType = 57 605 // Drops a database with a particular name. 606 Term_DB_DROP Term_TermType = 58 607 // Lists all the databases by name. (Takes no arguments) 608 Term_DB_LIST Term_TermType = 59 609 // Creates a table with a particular name in a particular 610 // database. (You may omit the first argument to use the 611 // default database.) 612 Term_TABLE_CREATE Term_TermType = 60 613 // Database, STRING, {primary_key:STRING, shards:NUMBER, replicas:OBJECT, primary_replica_tag:STRING} -> OBJECT 614 // STRING, {primary_key:STRING, shards:NUMBER, replicas:NUMBER, primary_replica_tag:STRING} -> OBJECT 615 // STRING, {primary_key:STRING, shards:NUMBER, replicas:OBJECT, primary_replica_tag:STRING} -> OBJECT 616 // Drops a table with a particular name from a particular 617 // database. (You may omit the first argument to use the 618 // default database.) 619 Term_TABLE_DROP Term_TermType = 61 620 // STRING -> OBJECT 621 // Lists all the tables in a particular database. (You may 622 // omit the first argument to use the default database.) 623 Term_TABLE_LIST Term_TermType = 62 624 // -> ARRAY 625 // Returns the row in the `rethinkdb.table_config` or `rethinkdb.db_config` table 626 // that corresponds to the given database or table. 627 Term_CONFIG Term_TermType = 174 628 // Table -> SingleSelection 629 // Returns the row in the `rethinkdb.table_status` table that corresponds to the 630 // given table. 631 Term_STATUS Term_TermType = 175 632 // Called on a table, waits for that table to be ready for read/write operations. 633 // Called on a database, waits for all of the tables in the database to be ready. 634 // Returns the corresponding row or rows from the `rethinkdb.table_status` table. 635 Term_WAIT Term_TermType = 177 636 // Database -> OBJECT 637 // Generates a new config for the given table, or all tables in the given database 638 // The `shards` and `replicas` arguments are required. If `emergency_repair` is 639 // specified, it will enter a completely different mode of repairing a table 640 // which has lost half or more of its replicas. 641 Term_RECONFIGURE Term_TermType = 176 642 // dry_run:BOOLEAN] 643 // } -> OBJECT 644 // Database|Table, {shards:NUMBER, replicas:OBJECT [, 645 // primary_replica_tag:STRING, 646 // nonvoting_replica_tags:ARRAY, 647 // dry_run:BOOLEAN] 648 // } -> OBJECT 649 // Table, {emergency_repair:STRING, dry_run:BOOLEAN} -> OBJECT 650 // Balances the table's shards but leaves everything else the same. Can also be 651 // applied to an entire database at once. 652 Term_REBALANCE Term_TermType = 179 653 // Ensures that previously issued soft-durability writes are complete and 654 // written to disk. 655 Term_SYNC Term_TermType = 138 656 // Set global, database, or table-specific permissions 657 Term_GRANT Term_TermType = 188 658 // * Secondary indexes OPs 659 // Creates a new secondary index with a particular name and definition. 660 Term_INDEX_CREATE Term_TermType = 75 661 // Drops a secondary index with a particular name from the specified table. 662 Term_INDEX_DROP Term_TermType = 76 663 // Lists all secondary indexes on a particular table. 664 Term_INDEX_LIST Term_TermType = 77 665 // Gets information about whether or not a set of indexes are ready to 666 // be accessed. Returns a list of objects that look like this: 667 // {index:STRING, ready:BOOL[, progress:NUMBER]} 668 Term_INDEX_STATUS Term_TermType = 139 669 // Blocks until a set of indexes are ready to be accessed. Returns the 670 // same values INDEX_STATUS. 671 Term_INDEX_WAIT Term_TermType = 140 672 // Renames the given index to a new name 673 Term_INDEX_RENAME Term_TermType = 156 674 // * Write hook Function OPs 675 // Creates a new write hook function with a particular definition 676 Term_SET_WRITE_HOOK Term_TermType = 189 677 // Gets an existing write hook function on a table 678 Term_GET_WRITE_HOOK Term_TermType = 190 679 // * Control Operators 680 // Calls a function on data 681 Term_FUNCALL Term_TermType = 64 682 // Executes its first argument, and returns its second argument if it 683 // got [true] or its third argument if it got [false] (like an `if` 684 // statement). 685 Term_BRANCH Term_TermType = 65 686 // Returns true if any of its arguments returns true (short-circuits). 687 Term_OR Term_TermType = 66 688 // Returns true if all of its arguments return true (short-circuits). 689 Term_AND Term_TermType = 67 690 // Calls its Function with each entry in the sequence 691 // and executes the array of terms that Function returns. 692 Term_FOR_EACH Term_TermType = 68 693 // An anonymous function. Takes an array of numbers representing 694 // variables (see [VAR] above), and a [Term] to execute with those in 695 // scope. Returns a function that may be passed an array of arguments, 696 // then executes the Term with those bound to the variable names. The 697 // user will never construct this directly. We use it internally for 698 // things like `map` which take a function. The "arity" of a [Function] is 699 // the number of arguments it takes. 700 // For example, here's what `_X_.map{|x| x+2}` turns into: 701 // Term { 702 // type = MAP; 703 // args = [_X_, 704 // Term { 705 // type = Function; 706 // args = [Term { 707 // type = DATUM; 708 // datum = Datum { 709 // type = R_ARRAY; 710 // r_array = [Datum { type = R_NUM; r_num = 1; }]; 711 // }; 712 // }, 713 // Term { 714 // type = ADD; 715 // args = [Term { 716 // type = VAR; 717 // args = [Term { 718 // type = DATUM; 719 // datum = Datum { type = R_NUM; 720 // r_num = 1}; 721 // }]; 722 // }, 723 // Term { 724 // type = DATUM; 725 // datum = Datum { type = R_NUM; r_num = 2; }; 726 // }]; 727 // }]; 728 // }]; 729 Term_FUNC Term_TermType = 69 730 // Indicates to ORDER_BY that this attribute is to be sorted in ascending order. 731 Term_ASC Term_TermType = 73 732 // Indicates to ORDER_BY that this attribute is to be sorted in descending order. 733 Term_DESC Term_TermType = 74 734 // Gets info about anything. INFO is most commonly called on tables. 735 Term_INFO Term_TermType = 79 736 // `a.match(b)` returns a match object if the string `a` 737 // matches the regular expression `b`. 738 Term_MATCH Term_TermType = 97 739 // Change the case of a string. 740 Term_UPCASE Term_TermType = 141 741 Term_DOWNCASE Term_TermType = 142 742 // Select a number of elements from sequence with uniform distribution. 743 Term_SAMPLE Term_TermType = 81 744 // Evaluates its first argument. If that argument returns 745 // NULL or throws an error related to the absence of an 746 // expected value (for instance, accessing a non-existent 747 // field or adding NULL to an integer), DEFAULT will either 748 // return its second argument or execute it if it's a 749 // function. If the second argument is a function, it will be 750 // passed either the text of the error or NULL as its 751 // argument. 752 Term_DEFAULT Term_TermType = 92 753 // Parses its first argument as a json string and returns it as a 754 // datum. 755 Term_JSON Term_TermType = 98 756 // Parses its first arguments as an ISO 8601 time and returns it as a 757 // datum. 758 Term_ISO8601 Term_TermType = 99 759 // Prints a time as an ISO 8601 time. 760 Term_TO_ISO8601 Term_TermType = 100 761 // Returns a time given seconds since epoch in UTC. 762 Term_EPOCH_TIME Term_TermType = 101 763 // Returns seconds since epoch in UTC given a time. 764 Term_TO_EPOCH_TIME Term_TermType = 102 765 // The time the query was received by the server. 766 Term_NOW Term_TermType = 103 767 // Puts a time into an ISO 8601 timezone. 768 Term_IN_TIMEZONE Term_TermType = 104 769 // a.during(b, c) returns whether a is in the range [b, c) 770 Term_DURING Term_TermType = 105 771 // Retrieves the date portion of a time. 772 Term_DATE Term_TermType = 106 773 // x.time_of_day == x.date - x 774 Term_TIME_OF_DAY Term_TermType = 126 775 // Returns the timezone of a time. 776 Term_TIMEZONE Term_TermType = 127 777 // These access the various components of a time. 778 Term_YEAR Term_TermType = 128 779 Term_MONTH Term_TermType = 129 780 Term_DAY Term_TermType = 130 781 Term_DAY_OF_WEEK Term_TermType = 131 782 Term_DAY_OF_YEAR Term_TermType = 132 783 Term_HOURS Term_TermType = 133 784 Term_MINUTES Term_TermType = 134 785 Term_SECONDS Term_TermType = 135 786 // Construct a time from a date and optional timezone or a 787 // date+time and optional timezone. 788 Term_TIME Term_TermType = 136 789 // Constants for ISO 8601 days of the week. 790 Term_MONDAY Term_TermType = 107 791 Term_TUESDAY Term_TermType = 108 792 Term_WEDNESDAY Term_TermType = 109 793 Term_THURSDAY Term_TermType = 110 794 Term_FRIDAY Term_TermType = 111 795 Term_SATURDAY Term_TermType = 112 796 Term_SUNDAY Term_TermType = 113 797 // Constants for ISO 8601 months. 798 Term_JANUARY Term_TermType = 114 799 Term_FEBRUARY Term_TermType = 115 800 Term_MARCH Term_TermType = 116 801 Term_APRIL Term_TermType = 117 802 Term_MAY Term_TermType = 118 803 Term_JUNE Term_TermType = 119 804 Term_JULY Term_TermType = 120 805 Term_AUGUST Term_TermType = 121 806 Term_SEPTEMBER Term_TermType = 122 807 Term_OCTOBER Term_TermType = 123 808 Term_NOVEMBER Term_TermType = 124 809 Term_DECEMBER Term_TermType = 125 810 // Indicates to MERGE to replace, or remove in case of an empty literal, the 811 // other object rather than merge it. 812 Term_LITERAL Term_TermType = 137 813 // SEQUENCE, STRING -> GROUPED_SEQUENCE | SEQUENCE, FUNCTION -> GROUPED_SEQUENCE 814 Term_GROUP Term_TermType = 144 815 Term_SUM Term_TermType = 145 816 Term_AVG Term_TermType = 146 817 Term_MIN Term_TermType = 147 818 Term_MAX Term_TermType = 148 819 // `str.split()` splits on whitespace 820 // `str.split(" ")` splits on spaces only 821 // `str.split(" ", 5)` splits on spaces with at most 5 results 822 // `str.split(nil, 5)` splits on whitespace with at most 5 results 823 Term_SPLIT Term_TermType = 149 824 Term_UNGROUP Term_TermType = 150 825 // Takes a range of numbers and returns a random number within the range 826 Term_RANDOM Term_TermType = 151 827 Term_CHANGES Term_TermType = 152 828 Term_ARGS Term_TermType = 154 829 // BINARY is client-only at the moment, it is not supported on the server 830 Term_BINARY Term_TermType = 155 831 Term_GEOJSON Term_TermType = 157 832 Term_TO_GEOJSON Term_TermType = 158 833 Term_POINT Term_TermType = 159 834 Term_LINE Term_TermType = 160 835 Term_POLYGON Term_TermType = 161 836 Term_DISTANCE Term_TermType = 162 837 Term_INTERSECTS Term_TermType = 163 838 Term_INCLUDES Term_TermType = 164 839 Term_CIRCLE Term_TermType = 165 840 Term_GET_INTERSECTING Term_TermType = 166 841 Term_FILL Term_TermType = 167 842 Term_GET_NEAREST Term_TermType = 168 843 Term_POLYGON_SUB Term_TermType = 171 844 // Returns the datum as a JSON string. 845 // N.B.: we would really prefer this be named TO_JSON and that exists as 846 // an alias in Python and JavaScript drivers; however it conflicts with the 847 // standard `to_json` method defined by Ruby's standard json library. 848 Term_TO_JSON_STRING Term_TermType = 172 849 // Constants for specifying key ranges 850 Term_MINVAL Term_TermType = 180 851 Term_MAXVAL Term_TermType = 181 852 // Bitwise operations 853 Term_BIT_AND Term_TermType = 191 854 Term_BIT_OR Term_TermType = 192 855 Term_BIT_XOR Term_TermType = 193 856 Term_BIT_NOT Term_TermType = 194 857 Term_BIT_SAL Term_TermType = 195 858 Term_BIT_SAR Term_TermType = 196 859 ) 860 861 var Term_TermType_name = map[int32]string{ 862 1: "DATUM", 863 2: "MAKE_ARRAY", 864 3: "MAKE_OBJ", 865 10: "VAR", 866 11: "JAVASCRIPT", 867 169: "UUID", 868 153: "HTTP", 869 12: "ERROR", 870 13: "IMPLICIT_VAR", 871 14: "DB", 872 15: "TABLE", 873 16: "GET", 874 78: "GET_ALL", 875 17: "EQ", 876 18: "NE", 877 19: "LT", 878 20: "LE", 879 21: "GT", 880 22: "GE", 881 23: "NOT", 882 24: "ADD", 883 25: "SUB", 884 26: "MUL", 885 27: "DIV", 886 28: "MOD", 887 183: "FLOOR", 888 184: "CEIL", 889 185: "ROUND", 890 29: "APPEND", 891 80: "PREPEND", 892 95: "DIFFERENCE", 893 88: "SET_INSERT", 894 89: "SET_INTERSECTION", 895 90: "SET_UNION", 896 91: "SET_DIFFERENCE", 897 30: "SLICE", 898 70: "SKIP", 899 71: "LIMIT", 900 87: "OFFSETS_OF", 901 93: "CONTAINS", 902 31: "GET_FIELD", 903 94: "KEYS", 904 186: "VALUES", 905 143: "OBJECT", 906 32: "HAS_FIELDS", 907 96: "WITH_FIELDS", 908 33: "PLUCK", 909 34: "WITHOUT", 910 35: "MERGE", 911 36: "BETWEEN_DEPRECATED", 912 182: "BETWEEN", 913 37: "REDUCE", 914 38: "MAP", 915 187: "FOLD", 916 39: "FILTER", 917 40: "CONCAT_MAP", 918 41: "ORDER_BY", 919 42: "DISTINCT", 920 43: "COUNT", 921 86: "IS_EMPTY", 922 44: "UNION", 923 45: "NTH", 924 170: "BRACKET", 925 48: "INNER_JOIN", 926 49: "OUTER_JOIN", 927 50: "EQ_JOIN", 928 72: "ZIP", 929 173: "RANGE", 930 82: "INSERT_AT", 931 83: "DELETE_AT", 932 84: "CHANGE_AT", 933 85: "SPLICE_AT", 934 51: "COERCE_TO", 935 52: "TYPE_OF", 936 53: "UPDATE", 937 54: "DELETE", 938 55: "REPLACE", 939 56: "INSERT", 940 57: "DB_CREATE", 941 58: "DB_DROP", 942 59: "DB_LIST", 943 60: "TABLE_CREATE", 944 61: "TABLE_DROP", 945 62: "TABLE_LIST", 946 174: "CONFIG", 947 175: "STATUS", 948 177: "WAIT", 949 176: "RECONFIGURE", 950 179: "REBALANCE", 951 138: "SYNC", 952 188: "GRANT", 953 75: "INDEX_CREATE", 954 76: "INDEX_DROP", 955 77: "INDEX_LIST", 956 139: "INDEX_STATUS", 957 140: "INDEX_WAIT", 958 156: "INDEX_RENAME", 959 189: "SET_WRITE_HOOK", 960 190: "GET_WRITE_HOOK", 961 64: "FUNCALL", 962 65: "BRANCH", 963 66: "OR", 964 67: "AND", 965 68: "FOR_EACH", 966 69: "FUNC", 967 73: "ASC", 968 74: "DESC", 969 79: "INFO", 970 97: "MATCH", 971 141: "UPCASE", 972 142: "DOWNCASE", 973 81: "SAMPLE", 974 92: "DEFAULT", 975 98: "JSON", 976 99: "ISO8601", 977 100: "TO_ISO8601", 978 101: "EPOCH_TIME", 979 102: "TO_EPOCH_TIME", 980 103: "NOW", 981 104: "IN_TIMEZONE", 982 105: "DURING", 983 106: "DATE", 984 126: "TIME_OF_DAY", 985 127: "TIMEZONE", 986 128: "YEAR", 987 129: "MONTH", 988 130: "DAY", 989 131: "DAY_OF_WEEK", 990 132: "DAY_OF_YEAR", 991 133: "HOURS", 992 134: "MINUTES", 993 135: "SECONDS", 994 136: "TIME", 995 107: "MONDAY", 996 108: "TUESDAY", 997 109: "WEDNESDAY", 998 110: "THURSDAY", 999 111: "FRIDAY", 1000 112: "SATURDAY", 1001 113: "SUNDAY", 1002 114: "JANUARY", 1003 115: "FEBRUARY", 1004 116: "MARCH", 1005 117: "APRIL", 1006 118: "MAY", 1007 119: "JUNE", 1008 120: "JULY", 1009 121: "AUGUST", 1010 122: "SEPTEMBER", 1011 123: "OCTOBER", 1012 124: "NOVEMBER", 1013 125: "DECEMBER", 1014 137: "LITERAL", 1015 144: "GROUP", 1016 145: "SUM", 1017 146: "AVG", 1018 147: "MIN", 1019 148: "MAX", 1020 149: "SPLIT", 1021 150: "UNGROUP", 1022 151: "RANDOM", 1023 152: "CHANGES", 1024 154: "ARGS", 1025 155: "BINARY", 1026 157: "GEOJSON", 1027 158: "TO_GEOJSON", 1028 159: "POINT", 1029 160: "LINE", 1030 161: "POLYGON", 1031 162: "DISTANCE", 1032 163: "INTERSECTS", 1033 164: "INCLUDES", 1034 165: "CIRCLE", 1035 166: "GET_INTERSECTING", 1036 167: "FILL", 1037 168: "GET_NEAREST", 1038 171: "POLYGON_SUB", 1039 172: "TO_JSON_STRING", 1040 180: "MINVAL", 1041 181: "MAXVAL", 1042 191: "BIT_AND", 1043 192: "BIT_OR", 1044 193: "BIT_XOR", 1045 194: "BIT_NOT", 1046 195: "BIT_SAL", 1047 196: "BIT_SAR", 1048 } 1049 var Term_TermType_value = map[string]int32{ 1050 "DATUM": 1, 1051 "MAKE_ARRAY": 2, 1052 "MAKE_OBJ": 3, 1053 "VAR": 10, 1054 "JAVASCRIPT": 11, 1055 "UUID": 169, 1056 "HTTP": 153, 1057 "ERROR": 12, 1058 "IMPLICIT_VAR": 13, 1059 "DB": 14, 1060 "TABLE": 15, 1061 "GET": 16, 1062 "GET_ALL": 78, 1063 "EQ": 17, 1064 "NE": 18, 1065 "LT": 19, 1066 "LE": 20, 1067 "GT": 21, 1068 "GE": 22, 1069 "NOT": 23, 1070 "ADD": 24, 1071 "SUB": 25, 1072 "MUL": 26, 1073 "DIV": 27, 1074 "MOD": 28, 1075 "FLOOR": 183, 1076 "CEIL": 184, 1077 "ROUND": 185, 1078 "APPEND": 29, 1079 "PREPEND": 80, 1080 "DIFFERENCE": 95, 1081 "SET_INSERT": 88, 1082 "SET_INTERSECTION": 89, 1083 "SET_UNION": 90, 1084 "SET_DIFFERENCE": 91, 1085 "SLICE": 30, 1086 "SKIP": 70, 1087 "LIMIT": 71, 1088 "OFFSETS_OF": 87, 1089 "CONTAINS": 93, 1090 "GET_FIELD": 31, 1091 "KEYS": 94, 1092 "VALUES": 186, 1093 "OBJECT": 143, 1094 "HAS_FIELDS": 32, 1095 "WITH_FIELDS": 96, 1096 "PLUCK": 33, 1097 "WITHOUT": 34, 1098 "MERGE": 35, 1099 "BETWEEN_DEPRECATED": 36, 1100 "BETWEEN": 182, 1101 "REDUCE": 37, 1102 "MAP": 38, 1103 "FOLD": 187, 1104 "FILTER": 39, 1105 "CONCAT_MAP": 40, 1106 "ORDER_BY": 41, 1107 "DISTINCT": 42, 1108 "COUNT": 43, 1109 "IS_EMPTY": 86, 1110 "UNION": 44, 1111 "NTH": 45, 1112 "BRACKET": 170, 1113 "INNER_JOIN": 48, 1114 "OUTER_JOIN": 49, 1115 "EQ_JOIN": 50, 1116 "ZIP": 72, 1117 "RANGE": 173, 1118 "INSERT_AT": 82, 1119 "DELETE_AT": 83, 1120 "CHANGE_AT": 84, 1121 "SPLICE_AT": 85, 1122 "COERCE_TO": 51, 1123 "TYPE_OF": 52, 1124 "UPDATE": 53, 1125 "DELETE": 54, 1126 "REPLACE": 55, 1127 "INSERT": 56, 1128 "DB_CREATE": 57, 1129 "DB_DROP": 58, 1130 "DB_LIST": 59, 1131 "TABLE_CREATE": 60, 1132 "TABLE_DROP": 61, 1133 "TABLE_LIST": 62, 1134 "CONFIG": 174, 1135 "STATUS": 175, 1136 "WAIT": 177, 1137 "RECONFIGURE": 176, 1138 "REBALANCE": 179, 1139 "SYNC": 138, 1140 "GRANT": 188, 1141 "INDEX_CREATE": 75, 1142 "INDEX_DROP": 76, 1143 "INDEX_LIST": 77, 1144 "INDEX_STATUS": 139, 1145 "INDEX_WAIT": 140, 1146 "INDEX_RENAME": 156, 1147 "SET_WRITE_HOOK": 189, 1148 "GET_WRITE_HOOK": 190, 1149 "FUNCALL": 64, 1150 "BRANCH": 65, 1151 "OR": 66, 1152 "AND": 67, 1153 "FOR_EACH": 68, 1154 "FUNC": 69, 1155 "ASC": 73, 1156 "DESC": 74, 1157 "INFO": 79, 1158 "MATCH": 97, 1159 "UPCASE": 141, 1160 "DOWNCASE": 142, 1161 "SAMPLE": 81, 1162 "DEFAULT": 92, 1163 "JSON": 98, 1164 "ISO8601": 99, 1165 "TO_ISO8601": 100, 1166 "EPOCH_TIME": 101, 1167 "TO_EPOCH_TIME": 102, 1168 "NOW": 103, 1169 "IN_TIMEZONE": 104, 1170 "DURING": 105, 1171 "DATE": 106, 1172 "TIME_OF_DAY": 126, 1173 "TIMEZONE": 127, 1174 "YEAR": 128, 1175 "MONTH": 129, 1176 "DAY": 130, 1177 "DAY_OF_WEEK": 131, 1178 "DAY_OF_YEAR": 132, 1179 "HOURS": 133, 1180 "MINUTES": 134, 1181 "SECONDS": 135, 1182 "TIME": 136, 1183 "MONDAY": 107, 1184 "TUESDAY": 108, 1185 "WEDNESDAY": 109, 1186 "THURSDAY": 110, 1187 "FRIDAY": 111, 1188 "SATURDAY": 112, 1189 "SUNDAY": 113, 1190 "JANUARY": 114, 1191 "FEBRUARY": 115, 1192 "MARCH": 116, 1193 "APRIL": 117, 1194 "MAY": 118, 1195 "JUNE": 119, 1196 "JULY": 120, 1197 "AUGUST": 121, 1198 "SEPTEMBER": 122, 1199 "OCTOBER": 123, 1200 "NOVEMBER": 124, 1201 "DECEMBER": 125, 1202 "LITERAL": 137, 1203 "GROUP": 144, 1204 "SUM": 145, 1205 "AVG": 146, 1206 "MIN": 147, 1207 "MAX": 148, 1208 "SPLIT": 149, 1209 "UNGROUP": 150, 1210 "RANDOM": 151, 1211 "CHANGES": 152, 1212 "ARGS": 154, 1213 "BINARY": 155, 1214 "GEOJSON": 157, 1215 "TO_GEOJSON": 158, 1216 "POINT": 159, 1217 "LINE": 160, 1218 "POLYGON": 161, 1219 "DISTANCE": 162, 1220 "INTERSECTS": 163, 1221 "INCLUDES": 164, 1222 "CIRCLE": 165, 1223 "GET_INTERSECTING": 166, 1224 "FILL": 167, 1225 "GET_NEAREST": 168, 1226 "POLYGON_SUB": 171, 1227 "TO_JSON_STRING": 172, 1228 "MINVAL": 180, 1229 "MAXVAL": 181, 1230 "BIT_AND": 191, 1231 "BIT_OR": 192, 1232 "BIT_XOR": 193, 1233 "BIT_NOT": 194, 1234 "BIT_SAL": 195, 1235 "BIT_SAR": 196, 1236 } 1237 1238 func (x Term_TermType) Enum() *Term_TermType { 1239 p := new(Term_TermType) 1240 *p = x 1241 return p 1242 } 1243 func (x Term_TermType) String() string { 1244 return proto.EnumName(Term_TermType_name, int32(x)) 1245 } 1246 func (x *Term_TermType) UnmarshalJSON(data []byte) error { 1247 value, err := proto.UnmarshalJSONEnum(Term_TermType_value, data, "Term_TermType") 1248 if err != nil { 1249 return err 1250 } 1251 *x = Term_TermType(value) 1252 return nil 1253 } 1254 func (Term_TermType) EnumDescriptor() ([]byte, []int) { 1255 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{6, 0} 1256 } 1257 1258 type VersionDummy struct { 1259 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1260 XXX_unrecognized []byte `json:"-"` 1261 XXX_sizecache int32 `json:"-"` 1262 } 1263 1264 func (m *VersionDummy) Reset() { *m = VersionDummy{} } 1265 func (m *VersionDummy) String() string { return proto.CompactTextString(m) } 1266 func (*VersionDummy) ProtoMessage() {} 1267 func (*VersionDummy) Descriptor() ([]byte, []int) { 1268 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{0} 1269 } 1270 func (m *VersionDummy) XXX_Unmarshal(b []byte) error { 1271 return xxx_messageInfo_VersionDummy.Unmarshal(m, b) 1272 } 1273 func (m *VersionDummy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1274 return xxx_messageInfo_VersionDummy.Marshal(b, m, deterministic) 1275 } 1276 func (dst *VersionDummy) XXX_Merge(src proto.Message) { 1277 xxx_messageInfo_VersionDummy.Merge(dst, src) 1278 } 1279 func (m *VersionDummy) XXX_Size() int { 1280 return xxx_messageInfo_VersionDummy.Size(m) 1281 } 1282 func (m *VersionDummy) XXX_DiscardUnknown() { 1283 xxx_messageInfo_VersionDummy.DiscardUnknown(m) 1284 } 1285 1286 var xxx_messageInfo_VersionDummy proto.InternalMessageInfo 1287 1288 // You send one of: 1289 // * A [START] query with a [Term] to evaluate and a unique-per-connection token. 1290 // * A [CONTINUE] query with the same token as a [START] query that returned 1291 // [SUCCESS_PARTIAL] in its [Response]. 1292 // * A [STOP] query with the same token as a [START] query that you want to stop. 1293 // * A [NOREPLY_WAIT] query with a unique per-connection token. The server answers 1294 // with a [WAIT_COMPLETE] [Response]. 1295 // * A [SERVER_INFO] query. The server answers with a [SERVER_INFO] [Response]. 1296 type Query struct { 1297 Type *Query_QueryType `protobuf:"varint,1,opt,name=type,enum=Query_QueryType" json:"type,omitempty"` 1298 // A [Term] is how we represent the operations we want a query to perform. 1299 Query *Term `protobuf:"bytes,2,opt,name=query" json:"query,omitempty"` 1300 Token *int64 `protobuf:"varint,3,opt,name=token" json:"token,omitempty"` 1301 // This flag is ignored on the server. `noreply` should be added 1302 // to `global_optargs` instead (the key "noreply" should map to 1303 // either true or false). 1304 OBSOLETENoreply *bool `protobuf:"varint,4,opt,name=OBSOLETE_noreply,json=OBSOLETENoreply,def=0" json:"OBSOLETE_noreply,omitempty"` 1305 // If this is set to [true], then [Datum] values will sometimes be 1306 // of [DatumType] [R_JSON] (see below). This can provide enormous 1307 // speedups in languages with poor protobuf libraries. 1308 AcceptsRJson *bool `protobuf:"varint,5,opt,name=accepts_r_json,json=acceptsRJson,def=0" json:"accepts_r_json,omitempty"` 1309 GlobalOptargs []*Query_AssocPair `protobuf:"bytes,6,rep,name=global_optargs,json=globalOptargs" json:"global_optargs,omitempty"` 1310 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1311 XXX_unrecognized []byte `json:"-"` 1312 XXX_sizecache int32 `json:"-"` 1313 } 1314 1315 func (m *Query) Reset() { *m = Query{} } 1316 func (m *Query) String() string { return proto.CompactTextString(m) } 1317 func (*Query) ProtoMessage() {} 1318 func (*Query) Descriptor() ([]byte, []int) { 1319 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{1} 1320 } 1321 func (m *Query) XXX_Unmarshal(b []byte) error { 1322 return xxx_messageInfo_Query.Unmarshal(m, b) 1323 } 1324 func (m *Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1325 return xxx_messageInfo_Query.Marshal(b, m, deterministic) 1326 } 1327 func (dst *Query) XXX_Merge(src proto.Message) { 1328 xxx_messageInfo_Query.Merge(dst, src) 1329 } 1330 func (m *Query) XXX_Size() int { 1331 return xxx_messageInfo_Query.Size(m) 1332 } 1333 func (m *Query) XXX_DiscardUnknown() { 1334 xxx_messageInfo_Query.DiscardUnknown(m) 1335 } 1336 1337 var xxx_messageInfo_Query proto.InternalMessageInfo 1338 1339 const Default_Query_OBSOLETENoreply bool = false 1340 const Default_Query_AcceptsRJson bool = false 1341 1342 func (m *Query) GetType() Query_QueryType { 1343 if m != nil && m.Type != nil { 1344 return *m.Type 1345 } 1346 return Query_START 1347 } 1348 1349 func (m *Query) GetQuery() *Term { 1350 if m != nil { 1351 return m.Query 1352 } 1353 return nil 1354 } 1355 1356 func (m *Query) GetToken() int64 { 1357 if m != nil && m.Token != nil { 1358 return *m.Token 1359 } 1360 return 0 1361 } 1362 1363 func (m *Query) GetOBSOLETENoreply() bool { 1364 if m != nil && m.OBSOLETENoreply != nil { 1365 return *m.OBSOLETENoreply 1366 } 1367 return Default_Query_OBSOLETENoreply 1368 } 1369 1370 func (m *Query) GetAcceptsRJson() bool { 1371 if m != nil && m.AcceptsRJson != nil { 1372 return *m.AcceptsRJson 1373 } 1374 return Default_Query_AcceptsRJson 1375 } 1376 1377 func (m *Query) GetGlobalOptargs() []*Query_AssocPair { 1378 if m != nil { 1379 return m.GlobalOptargs 1380 } 1381 return nil 1382 } 1383 1384 type Query_AssocPair struct { 1385 Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` 1386 Val *Term `protobuf:"bytes,2,opt,name=val" json:"val,omitempty"` 1387 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1388 XXX_unrecognized []byte `json:"-"` 1389 XXX_sizecache int32 `json:"-"` 1390 } 1391 1392 func (m *Query_AssocPair) Reset() { *m = Query_AssocPair{} } 1393 func (m *Query_AssocPair) String() string { return proto.CompactTextString(m) } 1394 func (*Query_AssocPair) ProtoMessage() {} 1395 func (*Query_AssocPair) Descriptor() ([]byte, []int) { 1396 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{1, 0} 1397 } 1398 func (m *Query_AssocPair) XXX_Unmarshal(b []byte) error { 1399 return xxx_messageInfo_Query_AssocPair.Unmarshal(m, b) 1400 } 1401 func (m *Query_AssocPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1402 return xxx_messageInfo_Query_AssocPair.Marshal(b, m, deterministic) 1403 } 1404 func (dst *Query_AssocPair) XXX_Merge(src proto.Message) { 1405 xxx_messageInfo_Query_AssocPair.Merge(dst, src) 1406 } 1407 func (m *Query_AssocPair) XXX_Size() int { 1408 return xxx_messageInfo_Query_AssocPair.Size(m) 1409 } 1410 func (m *Query_AssocPair) XXX_DiscardUnknown() { 1411 xxx_messageInfo_Query_AssocPair.DiscardUnknown(m) 1412 } 1413 1414 var xxx_messageInfo_Query_AssocPair proto.InternalMessageInfo 1415 1416 func (m *Query_AssocPair) GetKey() string { 1417 if m != nil && m.Key != nil { 1418 return *m.Key 1419 } 1420 return "" 1421 } 1422 1423 func (m *Query_AssocPair) GetVal() *Term { 1424 if m != nil { 1425 return m.Val 1426 } 1427 return nil 1428 } 1429 1430 // A backtrace frame (see `backtrace` in Response below) 1431 type Frame struct { 1432 Type *Frame_FrameType `protobuf:"varint,1,opt,name=type,enum=Frame_FrameType" json:"type,omitempty"` 1433 Pos *int64 `protobuf:"varint,2,opt,name=pos" json:"pos,omitempty"` 1434 Opt *string `protobuf:"bytes,3,opt,name=opt" json:"opt,omitempty"` 1435 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1436 XXX_unrecognized []byte `json:"-"` 1437 XXX_sizecache int32 `json:"-"` 1438 } 1439 1440 func (m *Frame) Reset() { *m = Frame{} } 1441 func (m *Frame) String() string { return proto.CompactTextString(m) } 1442 func (*Frame) ProtoMessage() {} 1443 func (*Frame) Descriptor() ([]byte, []int) { 1444 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{2} 1445 } 1446 func (m *Frame) XXX_Unmarshal(b []byte) error { 1447 return xxx_messageInfo_Frame.Unmarshal(m, b) 1448 } 1449 func (m *Frame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1450 return xxx_messageInfo_Frame.Marshal(b, m, deterministic) 1451 } 1452 func (dst *Frame) XXX_Merge(src proto.Message) { 1453 xxx_messageInfo_Frame.Merge(dst, src) 1454 } 1455 func (m *Frame) XXX_Size() int { 1456 return xxx_messageInfo_Frame.Size(m) 1457 } 1458 func (m *Frame) XXX_DiscardUnknown() { 1459 xxx_messageInfo_Frame.DiscardUnknown(m) 1460 } 1461 1462 var xxx_messageInfo_Frame proto.InternalMessageInfo 1463 1464 func (m *Frame) GetType() Frame_FrameType { 1465 if m != nil && m.Type != nil { 1466 return *m.Type 1467 } 1468 return Frame_POS 1469 } 1470 1471 func (m *Frame) GetPos() int64 { 1472 if m != nil && m.Pos != nil { 1473 return *m.Pos 1474 } 1475 return 0 1476 } 1477 1478 func (m *Frame) GetOpt() string { 1479 if m != nil && m.Opt != nil { 1480 return *m.Opt 1481 } 1482 return "" 1483 } 1484 1485 type Backtrace struct { 1486 Frames []*Frame `protobuf:"bytes,1,rep,name=frames" json:"frames,omitempty"` 1487 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1488 XXX_unrecognized []byte `json:"-"` 1489 XXX_sizecache int32 `json:"-"` 1490 } 1491 1492 func (m *Backtrace) Reset() { *m = Backtrace{} } 1493 func (m *Backtrace) String() string { return proto.CompactTextString(m) } 1494 func (*Backtrace) ProtoMessage() {} 1495 func (*Backtrace) Descriptor() ([]byte, []int) { 1496 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{3} 1497 } 1498 func (m *Backtrace) XXX_Unmarshal(b []byte) error { 1499 return xxx_messageInfo_Backtrace.Unmarshal(m, b) 1500 } 1501 func (m *Backtrace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1502 return xxx_messageInfo_Backtrace.Marshal(b, m, deterministic) 1503 } 1504 func (dst *Backtrace) XXX_Merge(src proto.Message) { 1505 xxx_messageInfo_Backtrace.Merge(dst, src) 1506 } 1507 func (m *Backtrace) XXX_Size() int { 1508 return xxx_messageInfo_Backtrace.Size(m) 1509 } 1510 func (m *Backtrace) XXX_DiscardUnknown() { 1511 xxx_messageInfo_Backtrace.DiscardUnknown(m) 1512 } 1513 1514 var xxx_messageInfo_Backtrace proto.InternalMessageInfo 1515 1516 func (m *Backtrace) GetFrames() []*Frame { 1517 if m != nil { 1518 return m.Frames 1519 } 1520 return nil 1521 } 1522 1523 // You get back a response with the same [token] as your query. 1524 type Response struct { 1525 Type *Response_ResponseType `protobuf:"varint,1,opt,name=type,enum=Response_ResponseType" json:"type,omitempty"` 1526 ErrorType *Response_ErrorType `protobuf:"varint,7,opt,name=error_type,json=errorType,enum=Response_ErrorType" json:"error_type,omitempty"` 1527 Notes []Response_ResponseNote `protobuf:"varint,6,rep,name=notes,enum=Response_ResponseNote" json:"notes,omitempty"` 1528 Token *int64 `protobuf:"varint,2,opt,name=token" json:"token,omitempty"` 1529 // [response] contains 1 RQL datum if [type] is [SUCCESS_ATOM] or 1530 // [SERVER_INFO]. [response] contains many RQL data if [type] is 1531 // [SUCCESS_SEQUENCE] or [SUCCESS_PARTIAL]. [response] contains 1 1532 // error message (of type [R_STR]) in all other cases. 1533 Response []*Datum `protobuf:"bytes,3,rep,name=response" json:"response,omitempty"` 1534 // If [type] is [CLIENT_ERROR], [TYPE_ERROR], or [RUNTIME_ERROR], then a 1535 // backtrace will be provided. The backtrace says where in the query the 1536 // error occurred. Ideally this information will be presented to the user as 1537 // a pretty-printed version of their query with the erroneous section 1538 // underlined. A backtrace is a series of 0 or more [Frame]s, each of which 1539 // specifies either the index of a positional argument or the name of an 1540 // optional argument. (Those words will make more sense if you look at the 1541 // [Term] message below.) 1542 Backtrace *Backtrace `protobuf:"bytes,4,opt,name=backtrace" json:"backtrace,omitempty"` 1543 // If the [global_optargs] in the [Query] that this [Response] is a 1544 // response to contains a key "profile" which maps to a static value of 1545 // true then [profile] will contain a [Datum] which provides profiling 1546 // information about the execution of the query. This field should be 1547 // returned to the user along with the result that would normally be 1548 // returned (a datum or a cursor). In official drivers this is accomplished 1549 // by putting them inside of an object with "value" mapping to the return 1550 // value and "profile" mapping to the profile object. 1551 Profile *Datum `protobuf:"bytes,5,opt,name=profile" json:"profile,omitempty"` 1552 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1553 XXX_unrecognized []byte `json:"-"` 1554 XXX_sizecache int32 `json:"-"` 1555 } 1556 1557 func (m *Response) Reset() { *m = Response{} } 1558 func (m *Response) String() string { return proto.CompactTextString(m) } 1559 func (*Response) ProtoMessage() {} 1560 func (*Response) Descriptor() ([]byte, []int) { 1561 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{4} 1562 } 1563 func (m *Response) XXX_Unmarshal(b []byte) error { 1564 return xxx_messageInfo_Response.Unmarshal(m, b) 1565 } 1566 func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1567 return xxx_messageInfo_Response.Marshal(b, m, deterministic) 1568 } 1569 func (dst *Response) XXX_Merge(src proto.Message) { 1570 xxx_messageInfo_Response.Merge(dst, src) 1571 } 1572 func (m *Response) XXX_Size() int { 1573 return xxx_messageInfo_Response.Size(m) 1574 } 1575 func (m *Response) XXX_DiscardUnknown() { 1576 xxx_messageInfo_Response.DiscardUnknown(m) 1577 } 1578 1579 var xxx_messageInfo_Response proto.InternalMessageInfo 1580 1581 func (m *Response) GetType() Response_ResponseType { 1582 if m != nil && m.Type != nil { 1583 return *m.Type 1584 } 1585 return Response_SUCCESS_ATOM 1586 } 1587 1588 func (m *Response) GetErrorType() Response_ErrorType { 1589 if m != nil && m.ErrorType != nil { 1590 return *m.ErrorType 1591 } 1592 return Response_INTERNAL 1593 } 1594 1595 func (m *Response) GetNotes() []Response_ResponseNote { 1596 if m != nil { 1597 return m.Notes 1598 } 1599 return nil 1600 } 1601 1602 func (m *Response) GetToken() int64 { 1603 if m != nil && m.Token != nil { 1604 return *m.Token 1605 } 1606 return 0 1607 } 1608 1609 func (m *Response) GetResponse() []*Datum { 1610 if m != nil { 1611 return m.Response 1612 } 1613 return nil 1614 } 1615 1616 func (m *Response) GetBacktrace() *Backtrace { 1617 if m != nil { 1618 return m.Backtrace 1619 } 1620 return nil 1621 } 1622 1623 func (m *Response) GetProfile() *Datum { 1624 if m != nil { 1625 return m.Profile 1626 } 1627 return nil 1628 } 1629 1630 // A [Datum] is a chunk of data that can be serialized to disk or returned to 1631 // the user in a Response. Currently we only support JSON types, but we may 1632 // support other types in the future (e.g., a date type or an integer type). 1633 type Datum struct { 1634 Type *Datum_DatumType `protobuf:"varint,1,opt,name=type,enum=Datum_DatumType" json:"type,omitempty"` 1635 RBool *bool `protobuf:"varint,2,opt,name=r_bool,json=rBool" json:"r_bool,omitempty"` 1636 RNum *float64 `protobuf:"fixed64,3,opt,name=r_num,json=rNum" json:"r_num,omitempty"` 1637 RStr *string `protobuf:"bytes,4,opt,name=r_str,json=rStr" json:"r_str,omitempty"` 1638 RArray []*Datum `protobuf:"bytes,5,rep,name=r_array,json=rArray" json:"r_array,omitempty"` 1639 RObject []*Datum_AssocPair `protobuf:"bytes,6,rep,name=r_object,json=rObject" json:"r_object,omitempty"` 1640 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1641 XXX_unrecognized []byte `json:"-"` 1642 XXX_sizecache int32 `json:"-"` 1643 } 1644 1645 func (m *Datum) Reset() { *m = Datum{} } 1646 func (m *Datum) String() string { return proto.CompactTextString(m) } 1647 func (*Datum) ProtoMessage() {} 1648 func (*Datum) Descriptor() ([]byte, []int) { 1649 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{5} 1650 } 1651 func (m *Datum) XXX_Unmarshal(b []byte) error { 1652 return xxx_messageInfo_Datum.Unmarshal(m, b) 1653 } 1654 func (m *Datum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1655 return xxx_messageInfo_Datum.Marshal(b, m, deterministic) 1656 } 1657 func (dst *Datum) XXX_Merge(src proto.Message) { 1658 xxx_messageInfo_Datum.Merge(dst, src) 1659 } 1660 func (m *Datum) XXX_Size() int { 1661 return xxx_messageInfo_Datum.Size(m) 1662 } 1663 func (m *Datum) XXX_DiscardUnknown() { 1664 xxx_messageInfo_Datum.DiscardUnknown(m) 1665 } 1666 1667 var xxx_messageInfo_Datum proto.InternalMessageInfo 1668 1669 func (m *Datum) GetType() Datum_DatumType { 1670 if m != nil && m.Type != nil { 1671 return *m.Type 1672 } 1673 return Datum_R_NULL 1674 } 1675 1676 func (m *Datum) GetRBool() bool { 1677 if m != nil && m.RBool != nil { 1678 return *m.RBool 1679 } 1680 return false 1681 } 1682 1683 func (m *Datum) GetRNum() float64 { 1684 if m != nil && m.RNum != nil { 1685 return *m.RNum 1686 } 1687 return 0 1688 } 1689 1690 func (m *Datum) GetRStr() string { 1691 if m != nil && m.RStr != nil { 1692 return *m.RStr 1693 } 1694 return "" 1695 } 1696 1697 func (m *Datum) GetRArray() []*Datum { 1698 if m != nil { 1699 return m.RArray 1700 } 1701 return nil 1702 } 1703 1704 func (m *Datum) GetRObject() []*Datum_AssocPair { 1705 if m != nil { 1706 return m.RObject 1707 } 1708 return nil 1709 } 1710 1711 type Datum_AssocPair struct { 1712 Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` 1713 Val *Datum `protobuf:"bytes,2,opt,name=val" json:"val,omitempty"` 1714 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1715 XXX_unrecognized []byte `json:"-"` 1716 XXX_sizecache int32 `json:"-"` 1717 } 1718 1719 func (m *Datum_AssocPair) Reset() { *m = Datum_AssocPair{} } 1720 func (m *Datum_AssocPair) String() string { return proto.CompactTextString(m) } 1721 func (*Datum_AssocPair) ProtoMessage() {} 1722 func (*Datum_AssocPair) Descriptor() ([]byte, []int) { 1723 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{5, 0} 1724 } 1725 func (m *Datum_AssocPair) XXX_Unmarshal(b []byte) error { 1726 return xxx_messageInfo_Datum_AssocPair.Unmarshal(m, b) 1727 } 1728 func (m *Datum_AssocPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1729 return xxx_messageInfo_Datum_AssocPair.Marshal(b, m, deterministic) 1730 } 1731 func (dst *Datum_AssocPair) XXX_Merge(src proto.Message) { 1732 xxx_messageInfo_Datum_AssocPair.Merge(dst, src) 1733 } 1734 func (m *Datum_AssocPair) XXX_Size() int { 1735 return xxx_messageInfo_Datum_AssocPair.Size(m) 1736 } 1737 func (m *Datum_AssocPair) XXX_DiscardUnknown() { 1738 xxx_messageInfo_Datum_AssocPair.DiscardUnknown(m) 1739 } 1740 1741 var xxx_messageInfo_Datum_AssocPair proto.InternalMessageInfo 1742 1743 func (m *Datum_AssocPair) GetKey() string { 1744 if m != nil && m.Key != nil { 1745 return *m.Key 1746 } 1747 return "" 1748 } 1749 1750 func (m *Datum_AssocPair) GetVal() *Datum { 1751 if m != nil { 1752 return m.Val 1753 } 1754 return nil 1755 } 1756 1757 // A [Term] is either a piece of data (see **Datum** above), or an operator and 1758 // its operands. If you have a [Datum], it's stored in the member [datum]. If 1759 // you have an operator, its positional arguments are stored in [args] and its 1760 // optional arguments are stored in [optargs]. 1761 // 1762 // A note about type signatures: 1763 // We use the following notation to denote types: 1764 // arg1_type, arg2_type, argrest_type... -> result_type 1765 // So, for example, if we have a function `avg` that takes any number of 1766 // arguments and averages them, we might write: 1767 // NUMBER... -> NUMBER 1768 // Or if we had a function that took one number modulo another: 1769 // NUMBER, NUMBER -> NUMBER 1770 // Or a function that takes a table and a primary key of any Datum type, then 1771 // retrieves the entry with that primary key: 1772 // Table, DATUM -> OBJECT 1773 // Some arguments must be provided as literal values (and not the results of sub 1774 // terms). These are marked with a `!`. 1775 // Optional arguments are specified within curly braces as argname `:` value 1776 // type (e.x `{noreply:BOOL}`) 1777 // Many RQL operations are polymorphic. For these, alterantive type signatures 1778 // are separated by `|`. 1779 // 1780 // The RQL type hierarchy is as follows: 1781 // Top 1782 // DATUM 1783 // NULL 1784 // BOOL 1785 // NUMBER 1786 // STRING 1787 // OBJECT 1788 // SingleSelection 1789 // ARRAY 1790 // Sequence 1791 // ARRAY 1792 // Stream 1793 // StreamSelection 1794 // Table 1795 // Database 1796 // Function 1797 // Ordering - used only by ORDER_BY 1798 // Pathspec -- an object, string, or array that specifies a path 1799 // Error 1800 type Term struct { 1801 Type *Term_TermType `protobuf:"varint,1,opt,name=type,enum=Term_TermType" json:"type,omitempty"` 1802 // This is only used when type is DATUM. 1803 Datum *Datum `protobuf:"bytes,2,opt,name=datum" json:"datum,omitempty"` 1804 Args []*Term `protobuf:"bytes,3,rep,name=args" json:"args,omitempty"` 1805 Optargs []*Term_AssocPair `protobuf:"bytes,4,rep,name=optargs" json:"optargs,omitempty"` 1806 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1807 XXX_unrecognized []byte `json:"-"` 1808 XXX_sizecache int32 `json:"-"` 1809 } 1810 1811 func (m *Term) Reset() { *m = Term{} } 1812 func (m *Term) String() string { return proto.CompactTextString(m) } 1813 func (*Term) ProtoMessage() {} 1814 func (*Term) Descriptor() ([]byte, []int) { 1815 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{6} 1816 } 1817 func (m *Term) XXX_Unmarshal(b []byte) error { 1818 return xxx_messageInfo_Term.Unmarshal(m, b) 1819 } 1820 func (m *Term) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1821 return xxx_messageInfo_Term.Marshal(b, m, deterministic) 1822 } 1823 func (dst *Term) XXX_Merge(src proto.Message) { 1824 xxx_messageInfo_Term.Merge(dst, src) 1825 } 1826 func (m *Term) XXX_Size() int { 1827 return xxx_messageInfo_Term.Size(m) 1828 } 1829 func (m *Term) XXX_DiscardUnknown() { 1830 xxx_messageInfo_Term.DiscardUnknown(m) 1831 } 1832 1833 var xxx_messageInfo_Term proto.InternalMessageInfo 1834 1835 func (m *Term) GetType() Term_TermType { 1836 if m != nil && m.Type != nil { 1837 return *m.Type 1838 } 1839 return Term_DATUM 1840 } 1841 1842 func (m *Term) GetDatum() *Datum { 1843 if m != nil { 1844 return m.Datum 1845 } 1846 return nil 1847 } 1848 1849 func (m *Term) GetArgs() []*Term { 1850 if m != nil { 1851 return m.Args 1852 } 1853 return nil 1854 } 1855 1856 func (m *Term) GetOptargs() []*Term_AssocPair { 1857 if m != nil { 1858 return m.Optargs 1859 } 1860 return nil 1861 } 1862 1863 type Term_AssocPair struct { 1864 Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` 1865 Val *Term `protobuf:"bytes,2,opt,name=val" json:"val,omitempty"` 1866 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1867 XXX_unrecognized []byte `json:"-"` 1868 XXX_sizecache int32 `json:"-"` 1869 } 1870 1871 func (m *Term_AssocPair) Reset() { *m = Term_AssocPair{} } 1872 func (m *Term_AssocPair) String() string { return proto.CompactTextString(m) } 1873 func (*Term_AssocPair) ProtoMessage() {} 1874 func (*Term_AssocPair) Descriptor() ([]byte, []int) { 1875 return fileDescriptor_ql2_e86fe8a8468b24a0, []int{6, 0} 1876 } 1877 func (m *Term_AssocPair) XXX_Unmarshal(b []byte) error { 1878 return xxx_messageInfo_Term_AssocPair.Unmarshal(m, b) 1879 } 1880 func (m *Term_AssocPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1881 return xxx_messageInfo_Term_AssocPair.Marshal(b, m, deterministic) 1882 } 1883 func (dst *Term_AssocPair) XXX_Merge(src proto.Message) { 1884 xxx_messageInfo_Term_AssocPair.Merge(dst, src) 1885 } 1886 func (m *Term_AssocPair) XXX_Size() int { 1887 return xxx_messageInfo_Term_AssocPair.Size(m) 1888 } 1889 func (m *Term_AssocPair) XXX_DiscardUnknown() { 1890 xxx_messageInfo_Term_AssocPair.DiscardUnknown(m) 1891 } 1892 1893 var xxx_messageInfo_Term_AssocPair proto.InternalMessageInfo 1894 1895 func (m *Term_AssocPair) GetKey() string { 1896 if m != nil && m.Key != nil { 1897 return *m.Key 1898 } 1899 return "" 1900 } 1901 1902 func (m *Term_AssocPair) GetVal() *Term { 1903 if m != nil { 1904 return m.Val 1905 } 1906 return nil 1907 } 1908 1909 func init() { 1910 proto.RegisterType((*VersionDummy)(nil), "VersionDummy") 1911 proto.RegisterType((*Query)(nil), "Query") 1912 proto.RegisterType((*Query_AssocPair)(nil), "Query.AssocPair") 1913 proto.RegisterType((*Frame)(nil), "Frame") 1914 proto.RegisterType((*Backtrace)(nil), "Backtrace") 1915 proto.RegisterType((*Response)(nil), "Response") 1916 proto.RegisterType((*Datum)(nil), "Datum") 1917 proto.RegisterType((*Datum_AssocPair)(nil), "Datum.AssocPair") 1918 proto.RegisterType((*Term)(nil), "Term") 1919 proto.RegisterType((*Term_AssocPair)(nil), "Term.AssocPair") 1920 proto.RegisterEnum("VersionDummy_Version", VersionDummy_Version_name, VersionDummy_Version_value) 1921 proto.RegisterEnum("VersionDummy_Protocol", VersionDummy_Protocol_name, VersionDummy_Protocol_value) 1922 proto.RegisterEnum("Query_QueryType", Query_QueryType_name, Query_QueryType_value) 1923 proto.RegisterEnum("Frame_FrameType", Frame_FrameType_name, Frame_FrameType_value) 1924 proto.RegisterEnum("Response_ResponseType", Response_ResponseType_name, Response_ResponseType_value) 1925 proto.RegisterEnum("Response_ErrorType", Response_ErrorType_name, Response_ErrorType_value) 1926 proto.RegisterEnum("Response_ResponseNote", Response_ResponseNote_name, Response_ResponseNote_value) 1927 proto.RegisterEnum("Datum_DatumType", Datum_DatumType_name, Datum_DatumType_value) 1928 proto.RegisterEnum("Term_TermType", Term_TermType_name, Term_TermType_value) 1929 } 1930 1931 func init() { proto.RegisterFile("ql2.proto", fileDescriptor_ql2_e86fe8a8468b24a0) } 1932 1933 var fileDescriptor_ql2_e86fe8a8468b24a0 = []byte{ 1934 // 2492 bytes of a gzipped FileDescriptorProto 1935 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x5b, 0x70, 0x64, 0x45, 1936 0x19, 0xae, 0xc9, 0xcc, 0x64, 0x66, 0x3a, 0xd9, 0xec, 0xbf, 0x27, 0x0b, 0x84, 0x7b, 0x1c, 0x51, 1937 0x03, 0x8b, 0x5b, 0xbb, 0x01, 0x01, 0x51, 0x2c, 0x7b, 0xce, 0xe9, 0x99, 0xe9, 0xe4, 0x4c, 0xf7, 1938 0x49, 0x77, 0x9f, 0x64, 0x07, 0x2f, 0x87, 0x6c, 0x98, 0xc5, 0x65, 0x93, 0x4c, 0x38, 0x33, 0x8b, 1939 0x06, 0x6f, 0xab, 0x20, 0x0a, 0x88, 0x8a, 0x17, 0x54, 0x10, 0xc1, 0x0b, 0xe0, 0x05, 0x15, 0x4a, 1940 0x05, 0xbc, 0x80, 0x0b, 0x58, 0xe5, 0xab, 0x6f, 0x54, 0xf9, 0x24, 0x2f, 0x56, 0xf9, 0xe2, 0x8b, 1941 0x3e, 0x58, 0xee, 0x83, 0xd6, 0xff, 0x9f, 0x99, 0x49, 0x56, 0x28, 0x5f, 0x7c, 0x99, 0xf3, 0x7f, 1942 0xdf, 0xff, 0xf7, 0xed, 0xbf, 0x75, 0x0f, 0xab, 0xdc, 0xb6, 0x3e, 0x7f, 0x70, 0x2b, 0xed, 0xf6, 1943 0xbb, 0xd5, 0xfb, 0x72, 0x6c, 0x72, 0xb9, 0x93, 0xf6, 0x8e, 0x77, 0x37, 0x83, 0x93, 0x1b, 0x1b, 1944 0xdb, 0x55, 0xcd, 0x4a, 0x03, 0xec, 0x4d, 0xb2, 0xc2, 0xf2, 0xa1, 0xe4, 0x30, 0x3c, 0xfb, 0x8f, 1945 0xbb, 0xcf, 0xe4, 0x07, 0x68, 0x1e, 0x5e, 0xbb, 0xf3, 0xe5, 0x07, 0x4a, 0x03, 0x74, 0x15, 0xbc, 1946 0xf8, 0xc7, 0x57, 0xcf, 0x14, 0x07, 0xe8, 0x6a, 0x78, 0xec, 0x4f, 0x4f, 0x9f, 0x2a, 0x10, 0x3a, 1947 0x9c, 0x1c, 0x82, 0x57, 0xce, 0xdc, 0xfb, 0x44, 0xbe, 0x7a, 0x05, 0x2b, 0x47, 0xb8, 0xd4, 0x5a, 1948 0x77, 0xdd, 0x03, 0x56, 0x8e, 0x8c, 0x76, 0xba, 0x16, 0xd7, 0xe1, 0xa5, 0x7f, 0xfe, 0xfb, 0xf9, 1949 0x31, 0xb4, 0x5d, 0xb0, 0x5a, 0xc1, 0x1f, 0x5e, 0x7b, 0xfc, 0xef, 0xa5, 0xea, 0x9d, 0x79, 0x56, 1950 0x5c, 0x3a, 0xd9, 0x49, 0xb7, 0xbd, 0xcb, 0x58, 0xa1, 0xbf, 0xbd, 0xd5, 0x99, 0xc9, 0xcd, 0xe6, 1951 0xe6, 0xa6, 0xe6, 0xe1, 0x20, 0xb1, 0xd9, 0xaf, 0xdb, 0xde, 0xea, 0x18, 0xd2, 0x7a, 0x17, 0xb2, 1952 0xe2, 0x6d, 0x48, 0xcd, 0x8c, 0xcd, 0xe6, 0xe6, 0x26, 0xe6, 0x8b, 0x07, 0x5d, 0x27, 0xdd, 0x30, 1953 0x19, 0xe7, 0xed, 0x67, 0xc5, 0x7e, 0xf7, 0x44, 0x67, 0x73, 0x26, 0x3f, 0x9b, 0x9b, 0xcb, 0x9b, 1954 0x0c, 0x78, 0x87, 0x18, 0xe8, 0x9a, 0xd5, 0xa1, 0x70, 0x22, 0xd9, 0xec, 0xa6, 0x9d, 0xad, 0xf5, 1955 0xed, 0x99, 0xc2, 0x6c, 0x6e, 0xae, 0x7c, 0x7d, 0xf1, 0xd8, 0xea, 0x7a, 0xaf, 0x63, 0xf6, 0x0e, 1956 0xd5, 0x2a, 0xd3, 0x7a, 0x07, 0xd8, 0xd4, 0xea, 0xda, 0x5a, 0x67, 0xab, 0xdf, 0x4b, 0xd2, 0xe4, 1957 0xd6, 0x5e, 0x77, 0x73, 0xa6, 0xb8, 0xdb, 0x7e, 0x72, 0xa0, 0x34, 0x0b, 0xbd, 0xee, 0xa6, 0x77, 1958 0x2d, 0x9b, 0xba, 0x65, 0xbd, 0x7b, 0x74, 0x75, 0x3d, 0xe9, 0x6e, 0xf5, 0x57, 0xd3, 0x5b, 0x7a, 1959 0x33, 0xe3, 0xb3, 0xf9, 0xb9, 0x89, 0xd1, 0x09, 0x78, 0xaf, 0xd7, 0x5d, 0x8b, 0x56, 0x8f, 0xa7, 1960 0x66, 0x4f, 0x66, 0xa7, 0x33, 0xb3, 0x0b, 0xae, 0x61, 0x95, 0x91, 0xce, 0x03, 0x96, 0x3f, 0xd1, 1961 0xd9, 0xa6, 0xc3, 0x57, 0x0c, 0x8a, 0xde, 0x79, 0x2c, 0x7f, 0xfb, 0xea, 0xfa, 0xd9, 0xe7, 0x44, 1962 0xa6, 0xba, 0xc4, 0x2a, 0x23, 0xaf, 0x78, 0x15, 0x56, 0xb4, 0x8e, 0x1b, 0x07, 0x39, 0x6f, 0x92, 1963 0x95, 0x7d, 0xad, 0x9c, 0x54, 0xb1, 0x80, 0x31, 0xaf, 0xcc, 0x0a, 0xd6, 0xe9, 0x08, 0xf2, 0x1e, 1964 0xb0, 0x49, 0xa5, 0x8d, 0x88, 0xc2, 0x76, 0xb2, 0xc2, 0xa5, 0x83, 0x82, 0xb7, 0x97, 0x4d, 0x58, 1965 0x61, 0x96, 0x85, 0x49, 0xa4, 0xaa, 0x6b, 0x28, 0x56, 0xb7, 0x58, 0xb1, 0x9e, 0xae, 0x6e, 0x74, 1966 0x5e, 0x17, 0x04, 0x62, 0xb3, 0xdf, 0x5d, 0x41, 0x00, 0x96, 0xdf, 0xea, 0xf6, 0x68, 0x6b, 0x79, 1967 0x83, 0x22, 0x32, 0xdd, 0xad, 0x3e, 0xf9, 0xbd, 0x62, 0x50, 0xac, 0x5e, 0xcc, 0x2a, 0xa3, 0x61, 1968 0x5e, 0x89, 0xe5, 0x23, 0x6d, 0x21, 0x87, 0x82, 0x8e, 0x1c, 0x8c, 0x55, 0x0f, 0xb0, 0x4a, 0x6d, 1969 0x75, 0xed, 0x44, 0x3f, 0x5d, 0x5d, 0xeb, 0x78, 0x97, 0xb0, 0xf1, 0x63, 0x68, 0xdb, 0x9b, 0xc9, 1970 0x91, 0xeb, 0xc6, 0xb3, 0x15, 0xcd, 0x80, 0xad, 0xfe, 0xb5, 0xc8, 0xca, 0xa6, 0xd3, 0xdb, 0xea, 1971 0x6e, 0xf6, 0x3a, 0xde, 0x15, 0x67, 0x6d, 0xf1, 0xdc, 0x83, 0x43, 0xc5, 0x48, 0xd8, 0xb5, 0xd1, 1972 0x79, 0xc6, 0x3a, 0x69, 0xda, 0x4d, 0x13, 0x1a, 0x51, 0xa2, 0x11, 0xd3, 0x3b, 0x23, 0x04, 0xea, 1973 0xc8, 0xbc, 0xd2, 0x19, 0x8a, 0xde, 0x95, 0xac, 0xb8, 0xd9, 0xed, 0x77, 0xb2, 0x30, 0xbe, 0xe1, 1974 0x02, 0xaa, 0xdb, 0xef, 0x98, 0xcc, 0x68, 0x27, 0xe5, 0xc6, 0x76, 0xa7, 0x5c, 0x95, 0x95, 0xd3, 1975 0x81, 0xf1, 0x4c, 0x7e, 0x70, 0xa4, 0x60, 0xb5, 0x7f, 0x72, 0xc3, 0x8c, 0x78, 0x6f, 0x8e, 0x55, 1976 0x8e, 0x0e, 0x3d, 0x40, 0xf9, 0x38, 0x31, 0xcf, 0x0e, 0x8e, 0x7c, 0x62, 0x76, 0x94, 0xde, 0x2c, 1977 0x2b, 0x6d, 0xa5, 0xdd, 0x63, 0xc7, 0xd7, 0x3b, 0x94, 0x87, 0x3b, 0x93, 0x0d, 0xe9, 0xea, 0x93, 1978 0x39, 0x36, 0xb9, 0xfb, 0xf8, 0x18, 0x73, 0x1b, 0xfb, 0xbe, 0xb0, 0x36, 0xe1, 0x4e, 0xb7, 0x20, 1979 0xe7, 0xed, 0x67, 0x30, 0x64, 0xac, 0x58, 0x8a, 0x85, 0xf2, 0x31, 0x4b, 0xa6, 0xd9, 0xde, 0x21, 1980 0x1b, 0x71, 0xe3, 0x24, 0x0f, 0x21, 0xef, 0xed, 0x63, 0x7b, 0x30, 0x51, 0x12, 0x5f, 0xb7, 0x22, 1981 0x2c, 0x8b, 0x37, 0xc8, 0x18, 0x5c, 0xc0, 0x0f, 0xa5, 0x50, 0x2e, 0x11, 0xc6, 0x68, 0x03, 0x80, 1982 0xa3, 0x70, 0x80, 0x0c, 0xc5, 0x80, 0xda, 0x87, 0x94, 0x89, 0x95, 0x93, 0xad, 0x21, 0xe5, 0x55, 1983 0x9f, 0xca, 0xb1, 0xca, 0xc8, 0xed, 0xde, 0x14, 0x2b, 0x4b, 0xe5, 0x84, 0x51, 0x3c, 0x84, 0xd3, 1984 0x77, 0xdd, 0xe0, 0xed, 0x67, 0x53, 0x46, 0x58, 0x1d, 0x1b, 0x5f, 0x24, 0xa1, 0x6c, 0x49, 0x07, 1985 0xa7, 0xee, 0xb9, 0xc3, 0xf3, 0xd8, 0xc4, 0x52, 0x2c, 0x4c, 0x3b, 0x09, 0x75, 0x43, 0xfa, 0x70, 1986 0xfa, 0xfe, 0xe7, 0xf0, 0x38, 0x7b, 0x94, 0x56, 0x89, 0x38, 0x22, 0xad, 0xa3, 0xb3, 0xfc, 0xf9, 1987 0xa1, 0x17, 0x72, 0x1e, 0xb0, 0x8a, 0x8e, 0x92, 0x3a, 0x97, 0xa1, 0x08, 0xe0, 0xb1, 0x47, 0xff, 1988 0x95, 0xf3, 0xce, 0x63, 0xa0, 0xa3, 0x44, 0xaa, 0x40, 0x38, 0x61, 0x5a, 0x52, 0x71, 0x27, 0xe0, 1989 0xf4, 0x53, 0xa7, 0xc6, 0xbc, 0x09, 0x56, 0x88, 0xad, 0x30, 0x70, 0xfa, 0xc1, 0x67, 0xc6, 0xd0, 1990 0x2a, 0x42, 0xb5, 0xb5, 0x12, 0x27, 0xa5, 0xbd, 0x9e, 0x7a, 0xf8, 0x6f, 0x63, 0xd5, 0xad, 0x1d, 1991 0xbf, 0x62, 0xd4, 0xf1, 0x44, 0x43, 0xef, 0x25, 0x75, 0x21, 0x02, 0xc8, 0x79, 0x7b, 0x58, 0x05, 1992 0x5d, 0x9c, 0x41, 0x9c, 0x6a, 0x5a, 0x9b, 0x40, 0x98, 0xa4, 0xd6, 0xce, 0x8e, 0x90, 0x29, 0xa8, 1993 0x0c, 0x63, 0x25, 0xb5, 0x12, 0x41, 0xc6, 0x14, 0xd0, 0xf9, 0x52, 0xf9, 0x61, 0x1c, 0x08, 0x9b, 1994 0x58, 0xc7, 0x9d, 0xb0, 0x50, 0xac, 0xbe, 0x3a, 0xc6, 0x8a, 0x14, 0xdd, 0xd7, 0xd5, 0x22, 0xb1, 1995 0xd9, 0xef, 0xae, 0x14, 0x3f, 0x87, 0x8d, 0xa7, 0xc9, 0xd1, 0x6e, 0x37, 0xeb, 0x14, 0x65, 0x53, 1996 0x4c, 0x6b, 0xdd, 0xee, 0xba, 0x37, 0xcd, 0x8a, 0x69, 0xb2, 0x79, 0x72, 0x83, 0x4a, 0x32, 0x67, 1997 0x0a, 0xa9, 0x3a, 0xb9, 0x91, 0x91, 0xbd, 0x7e, 0x4a, 0xe9, 0x56, 0x31, 0x85, 0xd4, 0xf6, 0x53, 1998 0xef, 0x52, 0x56, 0x4a, 0x93, 0xd5, 0x34, 0x5d, 0xdd, 0x9e, 0x29, 0x9e, 0x95, 0xaa, 0xe3, 0x29, 1999 0x47, 0xd6, 0x3b, 0xc0, 0xca, 0x69, 0xd2, 0x3d, 0x7a, 0x6b, 0x67, 0xad, 0x3f, 0x6a, 0x6d, 0xd9, 2000 0x5e, 0x76, 0x5a, 0x5b, 0x29, 0xd5, 0x64, 0x70, 0xc1, 0xb5, 0xff, 0xbb, 0xa9, 0xcd, 0xec, 0x6e, 2001 0x6a, 0xc3, 0x85, 0xa8, 0xab, 0xdd, 0xc4, 0x2a, 0xa3, 0xa3, 0x79, 0x8c, 0x8d, 0x9b, 0x44, 0xc5, 2002 0x61, 0x08, 0xb9, 0x4c, 0xae, 0x69, 0x1d, 0xc2, 0x18, 0x76, 0x3b, 0xe4, 0x5b, 0x90, 0xcf, 0x44, 2003 0xeb, 0x0c, 0x14, 0xbc, 0x09, 0x56, 0x32, 0x09, 0x37, 0x86, 0xb7, 0x01, 0x2f, 0xa6, 0xb2, 0x49, 2004 0x74, 0x6d, 0x41, 0xf8, 0x0e, 0xc6, 0xb3, 0xc1, 0x74, 0xdd, 0x94, 0xaa, 0x7f, 0xd9, 0xcf, 0x0a, 2005 0xd8, 0x45, 0xbd, 0xea, 0x59, 0x8e, 0x9d, 0xa2, 0xd6, 0x4a, 0x3f, 0xbb, 0xdc, 0x7a, 0x11, 0x2b, 2006 0xde, 0x8c, 0xdb, 0xf9, 0xaf, 0xad, 0x66, 0xa4, 0x77, 0x3e, 0x2b, 0x50, 0xa7, 0xcf, 0x6a, 0x7b, 2007 0xd0, 0x9c, 0x89, 0xf2, 0x2e, 0x67, 0xa5, 0xe1, 0x3d, 0x50, 0x20, 0xed, 0xde, 0x6c, 0xfe, 0x5d, 2008 0xbe, 0xea, 0xfe, 0x9f, 0x17, 0xc0, 0x23, 0xd3, 0xac, 0x3c, 0xdc, 0x2e, 0xfa, 0x21, 0xe0, 0x2e, 2009 0xc6, 0x12, 0x9f, 0x62, 0xac, 0xc5, 0x17, 0xc5, 0xc0, 0x15, 0x78, 0xd3, 0x96, 0x09, 0xeb, 0xda, 2010 0x02, 0xe4, 0xb1, 0xf5, 0x2e, 0x73, 0x03, 0x0c, 0xcd, 0x16, 0xf8, 0x32, 0xb7, 0xbe, 0x91, 0x91, 2011 0x83, 0x09, 0xaf, 0xc2, 0x0a, 0x71, 0x2c, 0x03, 0xf8, 0x61, 0x0e, 0xc5, 0xa6, 0x73, 0x11, 0x7c, 2012 0x13, 0xc5, 0x62, 0x56, 0x07, 0x93, 0x98, 0xb9, 0xb2, 0x15, 0x85, 0xd2, 0x97, 0x2e, 0xc1, 0x29, 2013 0xf6, 0x78, 0xe3, 0x6c, 0x2c, 0xa8, 0xc1, 0x14, 0x1a, 0x39, 0x5e, 0x0b, 0x05, 0xec, 0xc5, 0xe9, 2014 0x1b, 0xc2, 0x01, 0x60, 0x34, 0x1a, 0xc2, 0x25, 0x3c, 0x0c, 0x41, 0xa1, 0xa1, 0x58, 0x82, 0x7d, 2015 0xf8, 0x55, 0x02, 0x3c, 0xfc, 0x86, 0x0e, 0xa6, 0xe9, 0x2b, 0x60, 0x3f, 0x7e, 0x1b, 0x0e, 0xce, 2016 0xa1, 0xaf, 0x80, 0x73, 0x71, 0x16, 0xa5, 0x1d, 0x9c, 0x87, 0x02, 0x0f, 0x02, 0x98, 0x41, 0xc1, 2017 0xc6, 0x35, 0x38, 0x1f, 0x85, 0x56, 0x1c, 0xc2, 0x05, 0x28, 0x04, 0x72, 0x19, 0x2e, 0x24, 0x46, 2018 0x07, 0x70, 0x91, 0xc7, 0x58, 0xb1, 0x1e, 0x6a, 0x6d, 0xe0, 0x39, 0x3a, 0x82, 0x2f, 0x64, 0x08, 2019 0xcf, 0x63, 0xe6, 0x14, 0x8d, 0x8e, 0x55, 0x00, 0xbf, 0xa2, 0x2c, 0xe2, 0x51, 0x24, 0x54, 0x00, 2020 0x17, 0xe3, 0x0e, 0x23, 0x23, 0x08, 0x44, 0xe8, 0x8d, 0x40, 0xd6, 0xeb, 0xc2, 0x50, 0x17, 0x49, 2021 0x10, 0x5b, 0xe1, 0x12, 0xa9, 0xac, 0x30, 0x0e, 0x8e, 0x50, 0xdf, 0x24, 0xec, 0x84, 0xb1, 0xc2, 2022 0x77, 0x52, 0x2b, 0x68, 0x63, 0xd1, 0x23, 0x4b, 0x05, 0x0d, 0x37, 0x7a, 0x1e, 0x9b, 0x42, 0xb8, 2023 0x6b, 0xa2, 0xf7, 0xd1, 0xcd, 0x1c, 0x4a, 0x5f, 0xc0, 0x25, 0x74, 0x17, 0x2f, 0xca, 0x08, 0xea, 2024 0x48, 0x66, 0x7d, 0xad, 0x81, 0x0b, 0xe9, 0x7a, 0xdd, 0x0a, 0x67, 0x13, 0x5d, 0x87, 0x95, 0xe1, 2025 0xf5, 0xcd, 0xa5, 0xb2, 0xf0, 0x01, 0x5c, 0x00, 0xbd, 0x58, 0x97, 0x22, 0x0c, 0xe0, 0x52, 0x9c, 2026 0x61, 0x51, 0xb4, 0x2d, 0x7c, 0xd0, 0x9b, 0x60, 0xe3, 0xcb, 0x3c, 0x8c, 0x85, 0x85, 0x5f, 0xe7, 2027 0x10, 0x0c, 0x52, 0xfd, 0x8b, 0x14, 0xfe, 0x26, 0xb7, 0xd9, 0x10, 0x0b, 0xb3, 0xd8, 0xb3, 0x57, 2028 0xa4, 0x6b, 0x0e, 0x89, 0x9b, 0x70, 0xf1, 0x28, 0x8c, 0xfd, 0x45, 0x78, 0x13, 0xba, 0x00, 0x75, 2029 0x3a, 0x76, 0x50, 0x45, 0xbe, 0x25, 0x4c, 0x43, 0xc0, 0x9b, 0xbd, 0x73, 0x99, 0x57, 0x13, 0x6e, 2030 0x45, 0x08, 0x95, 0x04, 0x22, 0x32, 0xc2, 0xe7, 0x4e, 0x04, 0x70, 0x99, 0x37, 0xc9, 0x4a, 0x03, 2031 0x1e, 0x9e, 0xcd, 0x4a, 0x52, 0x04, 0xb1, 0x2f, 0xe0, 0x2d, 0x14, 0x04, 0x1e, 0xc1, 0x5b, 0xd1, 2032 0xf1, 0x75, 0x1d, 0x06, 0xf0, 0x1b, 0xd2, 0xd7, 0x65, 0xe8, 0x84, 0x81, 0xb7, 0xe1, 0xae, 0x7c, 2033 0xad, 0x7c, 0xee, 0x12, 0x34, 0x9b, 0xc3, 0x63, 0x0e, 0xfb, 0x23, 0x5c, 0x8e, 0x28, 0x90, 0xd6, 2034 0x49, 0xe5, 0x3b, 0xb8, 0x02, 0x37, 0xe2, 0xeb, 0x58, 0x39, 0x38, 0x80, 0x0a, 0x69, 0x13, 0xd1, 2035 0x8a, 0x5c, 0x1b, 0x96, 0x51, 0x91, 0xb9, 0xfa, 0x4a, 0xca, 0x10, 0xd7, 0x84, 0xb7, 0xd3, 0x96, 2036 0x0c, 0xf7, 0x17, 0x85, 0x83, 0x1f, 0xd1, 0xe1, 0xa5, 0x52, 0xc2, 0x24, 0x0b, 0x5a, 0x2a, 0x38, 2037 0x44, 0xde, 0x8d, 0xdd, 0x10, 0x1f, 0xc6, 0x03, 0x8b, 0xa5, 0x0c, 0xcc, 0xe3, 0x1c, 0x37, 0xca, 2038 0x08, 0x9a, 0x94, 0x21, 0x5c, 0x35, 0x04, 0xfc, 0x84, 0xfa, 0x78, 0x16, 0xf4, 0x84, 0x3b, 0x30, 2039 0x08, 0x03, 0x41, 0x6f, 0x46, 0xee, 0xc0, 0x22, 0xf4, 0x9b, 0x68, 0x8a, 0xd0, 0x51, 0xfc, 0xb1, 2040 0x22, 0x08, 0xc6, 0xa4, 0xd5, 0x02, 0x6f, 0x2d, 0xa7, 0xe1, 0x2a, 0x5c, 0xcc, 0xb5, 0x23, 0x81, 2041 0x71, 0xbd, 0x1a, 0x9d, 0x11, 0x47, 0x01, 0xde, 0x3b, 0xef, 0x40, 0x39, 0x9b, 0x14, 0xae, 0xa1, 2042 0xae, 0x25, 0xa2, 0x90, 0xfb, 0x02, 0xae, 0x45, 0xc5, 0x20, 0xe3, 0xae, 0xa3, 0x95, 0x6b, 0x89, 2043 0x6f, 0x04, 0x8e, 0x79, 0x27, 0xda, 0x05, 0xb5, 0x24, 0x30, 0x3a, 0x82, 0xeb, 0x07, 0x20, 0x94, 2044 0xd6, 0xc1, 0xbb, 0xb0, 0x2e, 0xa9, 0xfa, 0x86, 0xb6, 0xef, 0xc6, 0x53, 0x67, 0x0c, 0x99, 0xdf, 2045 0xb0, 0x83, 0x69, 0xc4, 0x7b, 0x30, 0x5f, 0x7c, 0xad, 0xea, 0xb2, 0x01, 0x3f, 0xa5, 0xe4, 0xc1, 2046 0x5b, 0x27, 0xb6, 0xf0, 0x33, 0x2a, 0x1b, 0x7a, 0x1c, 0x3e, 0x83, 0x97, 0xe8, 0x84, 0x11, 0x99, 2047 0x59, 0x6c, 0x04, 0x3c, 0x8d, 0xce, 0xad, 0x18, 0x51, 0xe3, 0x21, 0xc7, 0xcc, 0xfe, 0x39, 0x19, 2048 0xdb, 0xb6, 0xf2, 0xe1, 0x5e, 0xaa, 0xb1, 0x86, 0xe1, 0xca, 0xc1, 0x6f, 0x73, 0xd4, 0x27, 0x54, 2049 0x20, 0x8e, 0x0c, 0xf7, 0xb3, 0x98, 0x45, 0x05, 0x19, 0xda, 0x4f, 0xb8, 0x83, 0x69, 0x3f, 0x2d, 2050 0x6f, 0xdf, 0x70, 0xc4, 0x60, 0x23, 0xf7, 0xe5, 0xbc, 0xbd, 0x43, 0x13, 0xda, 0xce, 0xe7, 0x73, 2051 0x3b, 0x36, 0x46, 0x28, 0xde, 0x12, 0xf0, 0xad, 0x9c, 0x37, 0x9d, 0x95, 0xdb, 0x8a, 0x91, 0x4e, 2052 0x24, 0x4d, 0xad, 0x17, 0xe1, 0x05, 0x22, 0x1b, 0x67, 0x93, 0x2f, 0xe2, 0x19, 0x4b, 0xf5, 0x58, 2053 0xf9, 0xd8, 0x8c, 0xde, 0x8b, 0x4e, 0xae, 0x19, 0xae, 0xfc, 0x26, 0x70, 0x6c, 0x38, 0xda, 0x40, 2054 0x8d, 0xfa, 0x8c, 0x0a, 0xc0, 0xc7, 0x84, 0xab, 0x6b, 0x93, 0x08, 0xee, 0x37, 0x21, 0xc0, 0x7a, 2055 0xc3, 0x71, 0x20, 0xc8, 0xc0, 0xfa, 0x20, 0x91, 0x0a, 0x84, 0xf5, 0x61, 0x01, 0x25, 0x7a, 0x05, 2056 0x69, 0xaa, 0x1c, 0xee, 0xfc, 0x26, 0xac, 0xa2, 0x37, 0xe3, 0xc8, 0xe7, 0x56, 0xc0, 0xfd, 0x98, 2057 0x4b, 0xe5, 0x40, 0xaf, 0x28, 0x82, 0x5f, 0xa0, 0x7a, 0xb0, 0x1c, 0xdf, 0x52, 0xb0, 0x44, 0x11, 2058 0x14, 0x75, 0x1e, 0x87, 0x0e, 0xde, 0x8f, 0x33, 0xd1, 0xe5, 0x74, 0x14, 0x69, 0x69, 0xf5, 0x75, 2059 0xd7, 0x1c, 0x3a, 0x0c, 0x6b, 0x14, 0x36, 0x9d, 0x0c, 0xf1, 0xcd, 0x88, 0x45, 0xa4, 0xfd, 0x66, 2060 0x82, 0x4f, 0x29, 0xa0, 0x57, 0x88, 0xd3, 0xc9, 0x2e, 0xea, 0x58, 0xd6, 0x38, 0x57, 0xe0, 0x16, 2061 0xac, 0x7a, 0xa9, 0x88, 0xbd, 0x51, 0x2b, 0x01, 0x1f, 0xa2, 0x9c, 0x8b, 0x8d, 0x54, 0x0d, 0x38, 2062 0x4e, 0x67, 0xc0, 0xc8, 0xdc, 0x8a, 0x66, 0xf4, 0x2e, 0xd3, 0xf5, 0x24, 0xe0, 0x6d, 0xf8, 0x04, 2063 0x9e, 0x7f, 0x34, 0xe8, 0x93, 0x18, 0xe1, 0xb6, 0xe0, 0x06, 0x4e, 0x51, 0x84, 0x5b, 0x1a, 0x4b, 2064 0xee, 0x53, 0x39, 0xaf, 0xcc, 0xf2, 0x68, 0xfd, 0x69, 0x4a, 0x92, 0x80, 0xb7, 0x71, 0xf8, 0x8a, 2065 0x10, 0x8b, 0x70, 0xe7, 0x6e, 0x86, 0x46, 0xde, 0x45, 0x23, 0x9b, 0x3a, 0x36, 0x16, 0x3e, 0x83, 2066 0x7f, 0x4e, 0x4a, 0x2d, 0xa9, 0x62, 0x7c, 0xe3, 0xdc, 0x4d, 0xc8, 0x62, 0x8a, 0x05, 0x16, 0x3e, 2067 0x4b, 0xe9, 0x44, 0xa7, 0xf8, 0x1c, 0x79, 0xaa, 0xa5, 0x15, 0xae, 0x71, 0x82, 0xaa, 0x28, 0x16, 2068 0x16, 0xc1, 0x3a, 0x16, 0xc5, 0x8a, 0x08, 0x54, 0x06, 0x37, 0x68, 0xb7, 0xcd, 0xd8, 0x10, 0xda, 2069 0xa4, 0x7e, 0x63, 0x24, 0xca, 0x5d, 0xd4, 0x58, 0xee, 0x62, 0x83, 0x68, 0x8b, 0x3c, 0x1f, 0xd3, 2070 0x7c, 0xb7, 0xe1, 0x7c, 0x0b, 0x5c, 0xc5, 0xdc, 0xb4, 0x21, 0xa5, 0x70, 0x8b, 0x9a, 0x21, 0xd4, 2071 0xcb, 0xe2, 0x68, 0xfc, 0x26, 0xf4, 0x51, 0xe4, 0x91, 0x91, 0x21, 0x9c, 0xcc, 0x5a, 0x5b, 0x1b, 2072 0x6e, 0xa7, 0x30, 0xc5, 0x4a, 0xc0, 0x87, 0x33, 0x29, 0x6c, 0xc3, 0x47, 0xe8, 0x42, 0x89, 0x1b, 2073 0xb1, 0x75, 0xb0, 0x9d, 0xdd, 0x06, 0x91, 0x13, 0xad, 0x9a, 0x30, 0x70, 0x07, 0x2e, 0xa4, 0x7d, 2074 0xa7, 0x11, 0x7c, 0x14, 0x17, 0x52, 0x7a, 0x39, 0x53, 0x7d, 0x8c, 0xfa, 0x9d, 0xf0, 0x33, 0xf4, 2075 0x71, 0x74, 0x43, 0x28, 0x9d, 0x30, 0x3c, 0x84, 0x7b, 0x06, 0xa5, 0xa4, 0xe3, 0x08, 0xbe, 0x44, 2076 0x8e, 0xb6, 0x71, 0x0b, 0x1e, 0x20, 0x89, 0x2f, 0x37, 0xe0, 0xcb, 0x24, 0xb5, 0xa4, 0x82, 0xaf, 2077 0x64, 0x12, 0x3f, 0x02, 0x5f, 0xa5, 0x31, 0xd8, 0x87, 0x1c, 0x7c, 0x8d, 0x9c, 0x1a, 0xab, 0x6c, 2078 0x86, 0x07, 0xa9, 0xba, 0x0d, 0x57, 0x81, 0x6e, 0xc1, 0xd7, 0x49, 0x95, 0x75, 0x2f, 0x0b, 0xdf, 2079 0x20, 0x7f, 0x73, 0xd3, 0xb0, 0xf0, 0x10, 0x59, 0xd5, 0xa4, 0x42, 0x27, 0x3c, 0x4c, 0x56, 0x0d, 2080 0xa1, 0x29, 0x21, 0x1f, 0xa1, 0x42, 0x74, 0x3a, 0x19, 0x12, 0xdf, 0xa6, 0xb5, 0x22, 0x2d, 0x95, 2081 0x83, 0x47, 0x69, 0x8a, 0x50, 0x2a, 0x01, 0x8f, 0xd1, 0xa8, 0x48, 0x87, 0xed, 0x86, 0x56, 0xf0, 2082 0x9d, 0x2c, 0xf3, 0xa5, 0x75, 0xd4, 0x29, 0xbe, 0x3b, 0xa8, 0xe6, 0xc1, 0xcd, 0x69, 0xe1, 0x7b, 2083 0xa4, 0x1f, 0xbe, 0x79, 0xe1, 0xfb, 0xb4, 0xbe, 0x2f, 0x8d, 0x1f, 0x0a, 0x78, 0x3c, 0xe7, 0x9d, 2084 0xc3, 0xa0, 0x71, 0xd6, 0x55, 0xab, 0x1a, 0xf0, 0x04, 0xad, 0x55, 0x97, 0x61, 0x08, 0x4f, 0x52, 2085 0x8e, 0xa1, 0x85, 0x12, 0xdc, 0x08, 0xeb, 0xe0, 0x07, 0xc4, 0x0c, 0x56, 0x4f, 0xf0, 0x99, 0xf0, 2086 0x63, 0xea, 0x03, 0x4e, 0xd3, 0x9b, 0x0f, 0x9f, 0x87, 0x38, 0xc7, 0x53, 0xb4, 0x4e, 0x4b, 0xaa, 2087 0x65, 0x1e, 0xc2, 0x2f, 0x32, 0xc0, 0x8f, 0x20, 0xf8, 0x25, 0x6d, 0xbf, 0x26, 0x5d, 0x82, 0x4d, 2088 0xe0, 0x77, 0x03, 0x7f, 0xb8, 0x44, 0x1b, 0x38, 0x3d, 0x52, 0x1d, 0xd1, 0x06, 0x5e, 0x1a, 0x21, 2089 0x7c, 0x9e, 0xbc, 0x3c, 0x42, 0x96, 0x87, 0xf0, 0xca, 0x2e, 0x64, 0xe0, 0xf7, 0xb9, 0xff, 0x04, 2090 0x00, 0x00, 0xff, 0xff, 0x00, 0xe8, 0xb7, 0x56, 0x6d, 0x11, 0x00, 0x00, 2091 }