casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TaQLNodeDer.h
Go to the documentation of this file.
1 //# TaQLNodeDer.h: Specialized nodes in the raw TaQL parse tree
2 //# Copyright (C) 2005
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be addressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //# $Id$
27 
28 #ifndef TABLES_TAQLNODEDER_H
29 #define TABLES_TAQLNODEDER_H
30 
31 //# Includes
32 #include <casacore/casa/aips.h>
39 #include <vector>
40 #include <iostream>
41 
42 namespace casacore { //# NAMESPACE CASACORE - BEGIN
43 
44 
45 // <summary>
46 // Raw TaQL parse tree node defining a constant value.
47 // </summary>
48 // <use visibility=local>
49 // <reviewed reviewer="" date="" tests="tTaQLNode">
50 // </reviewed>
51 // <prerequisite>
52 //# Classes you should understand before using this one.
53 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
54 // </prerequisite>
55 // <synopsis>
56 // This class is a TaQLNodeRep holding a constant expression or a table name.
57 // The types supported are Bool, Int, Double, DComplex, String, and MVTime.
58 // Note that a keyword or column name is represented by TaQLKeyColNodeRep.
59 // </synopsis>
60 
62 {
63 public:
64  // Do not change the values of this enum, as objects might be persistent.
65  enum Type {CTBool =0,
66  CTInt =1,
67  CTReal =2,
70  CTTime =5};
71  explicit TaQLConstNodeRep (Bool value);
72  explicit TaQLConstNodeRep (Int64 value);
73  explicit TaQLConstNodeRep (Double value);
74  explicit TaQLConstNodeRep (Double value, const String& unit);
75  explicit TaQLConstNodeRep (DComplex value);
76  explicit TaQLConstNodeRep (const String& value, Bool isTableName=False);
77  explicit TaQLConstNodeRep (const MVTime& value);
78  explicit TaQLConstNodeRep (Int64 value, const String& subTableName);
79  virtual ~TaQLConstNodeRep();
81  { itsIsTableName = True; }
82  const String& getString() const;
83  const String& getUnit() const
84  { return itsUnit; }
85  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
86  virtual void show (std::ostream& os) const;
87  virtual void save (AipsIO& aio) const;
88  static TaQLConstNodeRep* restore (AipsIO& aio);
89 
99 };
100 
101 
102 // <summary>
103 // Raw TaQL parse tree node defining a constant regex value.
104 // </summary>
105 // <use visibility=local>
106 // <reviewed reviewer="" date="" tests="tTaQLNode">
107 // </reviewed>
108 // <prerequisite>
109 //# Classes you should understand before using this one.
110 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
111 // </prerequisite>
112 // <synopsis>
113 // This class is a TaQLNodeRep holding a constant regex/pattern value.
114 // Part of the regex are the delimiters (like p//).
115 // It also holds if the regex is case-insensitive and if a match or no match
116 // operator is given.
117 // </synopsis>
118 
120 {
121 public:
122  explicit TaQLRegexNodeRep (const String& value);
123  TaQLRegexNodeRep (const String& value, Bool caseInsensitive, Bool negate,
124  Bool ignoreBlanks, Int maxDistance);
125  virtual ~TaQLRegexNodeRep();
126  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
127  virtual void show (std::ostream& os) const;
128  virtual void save (AipsIO& aio) const;
129  static TaQLRegexNodeRep* restore (AipsIO& aio);
130 
133  Bool itsNegate; //# True means !~
134  //# The following members are only used for distance.
137 };
138 
139 
140 // <summary>
141 // Raw TaQL parse tree node defining a unary operator.
142 // </summary>
143 // <use visibility=local>
144 // <reviewed reviewer="" date="" tests="tTaQLNode">
145 // </reviewed>
146 // <prerequisite>
147 //# Classes you should understand before using this one.
148 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
149 // </prerequisite>
150 // <synopsis>
151 // This class is a TaQLNodeRep holding a unary operator and operand.
152 // The operators supported are -, ~, NOT, EXISTS, and NOT EXISTS.
153 // Note the unary operator + is superfluous and is ignored by the parser.
154 // </synopsis>
155 
157 {
158 public:
159  // Do not change the values of this enum, as objects might be persistent.
160  enum Type {U_MINUS =0,
161  U_NOT =1,
164  U_BITNOT =4};
165  TaQLUnaryNodeRep (Type type, const TaQLNode& child);
166  virtual ~TaQLUnaryNodeRep();
167  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
168  virtual void show (std::ostream& os) const;
169  virtual void save (AipsIO& aio) const;
170  static TaQLUnaryNodeRep* restore (AipsIO& aio);
171 
174 };
175 
176 
177 // <summary>
178 // Raw TaQL parse tree node defining a binary operator.
179 // </summary>
180 // <use visibility=local>
181 // <reviewed reviewer="" date="" tests="tTaQLNode">
182 // </reviewed>
183 // <prerequisite>
184 //# Classes you should understand before using this one.
185 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
186 // </prerequisite>
187 // <synopsis>
188 // This class is a TaQLNodeRep holding a binary operator and operands.
189 // All standard mathematical (including % and ^), relational, bit, and logical
190 // operators are supported. Furthermore operator IN and the INDEX operator
191 // (for indexing in an array) are supported.
192 // </synopsis>
193 
195 {
196 public:
197  // Do not change the values of this enum, as objects might be persistent.
198  enum Type {B_PLUS =0,
204  B_EQ =6,
205  B_NE =7,
206  B_GT =8,
207  B_GE =9,
208  B_LT =10,
209  B_LE =11,
210  B_OR =12,
211  B_AND =13,
212  B_IN =14,
213  B_INDEX =15,
217  B_BITAND =19,
218  B_BITXOR =20,
219  B_BITOR =21};
220  TaQLBinaryNodeRep (Type type, const TaQLNode& left, const TaQLNode& right);
221  virtual ~TaQLBinaryNodeRep();
222  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
223  virtual void show (std::ostream& os) const;
224  virtual void save (AipsIO& aio) const;
225  static TaQLBinaryNodeRep* restore (AipsIO& aio);
226  // Handle a comparison wih a regex. The operator (~ or !~) is extracted
227  // from the regex.
228  static TaQLBinaryNodeRep* handleRegex (const TaQLNode& left,
229  const TaQLRegexNode& regex);
230 
234 };
235 
236 
237 // <summary>
238 // Raw TaQL parse tree node defining a list of nodes.
239 // </summary>
240 // <use visibility=local>
241 // <reviewed reviewer="" date="" tests="tTaQLNode">
242 // </reviewed>
243 // <prerequisite>
244 //# Classes you should understand before using this one.
245 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
246 // </prerequisite>
247 // <synopsis>
248 // This class is a TaQLNodeRep holding a list of heterogeneous nodes.
249 // </synopsis>
250 
252 {
253 public:
254  explicit TaQLMultiNodeRep (Bool isSetOrArray=False);
255  TaQLMultiNodeRep(const String& prefix, const String& postfix,
256  Bool isSetOrArray=False);
257  virtual ~TaQLMultiNodeRep();
259  { itsIsSetOrArray = True; }
260  void setPPFix (const String& prefix, const String& postfix)
261  { itsPrefix = prefix; itsPostfix = postfix; }
262  void setSeparator (const String& sep)
263  { itsSep = sep; }
264  void setSeparator (uInt incr, const String& sep)
265  { itsIncr = incr; itsSep2 = sep; }
266  void add (const TaQLNode& node)
267  { itsNodes.push_back (node); }
268  const std::vector<TaQLNode>& getNodes() const
269  { return itsNodes; }
270  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
271  virtual void show (std::ostream& os) const;
272  virtual void save (AipsIO& aio) const;
273  static TaQLMultiNodeRep* restore (AipsIO& aio);
274 
275  std::vector<TaQLNode> itsNodes;
282 };
283 
284 
285 // <summary>
286 // Raw TaQL parse tree node defining a function.
287 // </summary>
288 // <use visibility=local>
289 // <reviewed reviewer="" date="" tests="tTaQLNode">
290 // </reviewed>
291 // <prerequisite>
292 //# Classes you should understand before using this one.
293 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
294 // </prerequisite>
295 // <synopsis>
296 // This class is a TaQLNodeRep holding a function name and its arguments.
297 // </synopsis>
298 
300 {
301 public:
302  TaQLFuncNodeRep (const String& name);
303  TaQLFuncNodeRep (const String& name, const TaQLMultiNode& args);
304  virtual ~TaQLFuncNodeRep();
305  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
306  virtual void show (std::ostream& os) const;
307  virtual void save (AipsIO& aio) const;
308  static TaQLFuncNodeRep* restore (AipsIO& aio);
309 
312 };
313 
314 
315 // <summary>
316 // Raw TaQL parse tree node defining a range.
317 // </summary>
318 // <use visibility=local>
319 // <reviewed reviewer="" date="" tests="tTaQLNode">
320 // </reviewed>
321 // <prerequisite>
322 //# Classes you should understand before using this one.
323 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
324 // </prerequisite>
325 // <synopsis>
326 // This class is a TaQLNodeRep holding the optional start and end values
327 // of a range (i.e. an interval) and flags if the range is open or closed.
328 // </synopsis>
329 
331 {
332 public:
333  TaQLRangeNodeRep (Bool leftClosed, TaQLNode start,
334  const TaQLNode& end, Bool rightClosed);
335  TaQLRangeNodeRep (Bool leftClosed, const TaQLNode& start);
336  TaQLRangeNodeRep (const TaQLNode& end, Bool rightClosed);
337  virtual ~TaQLRangeNodeRep();
338  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
339  virtual void show (std::ostream& os) const;
340  virtual void save (AipsIO& aio) const;
341  static TaQLRangeNodeRep* restore (AipsIO& aio);
342 
347 };
348 
349 
350 // <summary>
351 // Raw TaQL parse tree node defining an index in a array.
352 // </summary>
353 // <use visibility=local>
354 // <reviewed reviewer="" date="" tests="tTaQLNode">
355 // </reviewed>
356 // <prerequisite>
357 //# Classes you should understand before using this one.
358 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
359 // </prerequisite>
360 // <synopsis>
361 // This class is a TaQLNodeRep holding the optional start, end, and incr
362 // values of an index in an array.
363 // </synopsis>
364 
366 {
367 public:
368  TaQLIndexNodeRep (const TaQLNode& start, const TaQLNode& end,
369  const TaQLNode& incr);
370  virtual ~TaQLIndexNodeRep();
371  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
372  virtual void show (std::ostream& os) const;
373  virtual void save (AipsIO& aio) const;
374  static TaQLIndexNodeRep* restore (AipsIO& aio);
375 
379 };
380 
381 
382 // <summary>
383 // Raw TaQL parse tree node defining a join operation.
384 // </summary>
385 // <use visibility=local>
386 // <reviewed reviewer="" date="" tests="tTaQLNode">
387 // </reviewed>
388 // <prerequisite>
389 //# Classes you should understand before using this one.
390 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
391 // </prerequisite>
392 // <synopsis>
393 // This class is a TaQLNodeRep holding the expressions of a join operation.
394 // This is, however, a placeholder and not implemented yet.
395 // </synopsis>
396 
398 {
399 public:
400  TaQLJoinNodeRep (const TaQLMultiNode& tables, const TaQLNode& condition);
401  virtual ~TaQLJoinNodeRep();
402  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
403  virtual void show (std::ostream& os) const;
404  virtual void save (AipsIO& aio) const;
405  static TaQLJoinNodeRep* restore (AipsIO& aio);
406 
409 };
410 
411 
412 // <summary>
413 // Raw TaQL parse tree node defining a keyword or column name.
414 // </summary>
415 // <use visibility=local>
416 // <reviewed reviewer="" date="" tests="tTaQLNode">
417 // </reviewed>
418 // <prerequisite>
419 //# Classes you should understand before using this one.
420 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
421 // </prerequisite>
422 // <synopsis>
423 // This class is a TaQLNodeRep holding the name of a keyword or column.
424 // The name can contain . and :: delimiters for scoping.
425 // </synopsis>
426 
428 {
429 public:
430  TaQLKeyColNodeRep (const String& name, const String& nameMask = String());
431  virtual ~TaQLKeyColNodeRep();
432  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
433  virtual void show (std::ostream& os) const;
434  virtual void save (AipsIO& aio) const;
435  static TaQLKeyColNodeRep* restore (AipsIO& aio);
436 
439 };
440 
441 
442 // <summary>
443 // Raw TaQL parse tree node defining a table.
444 // </summary>
445 // <use visibility=local>
446 // <reviewed reviewer="" date="" tests="tTaQLNode">
447 // </reviewed>
448 // <prerequisite>
449 //# Classes you should understand before using this one.
450 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
451 // </prerequisite>
452 // <synopsis>
453 // This class is a TaQLNodeRep holding the info defining a table.
454 // It can be a constant value holding a name or it can be a subquery.
455 // Furthermore the alias of the table is defined (which can be empty).
456 // </synopsis>
457 
459 {
460 public:
461  TaQLTableNodeRep (const TaQLNode& table, const String& alias);
462  virtual ~TaQLTableNodeRep();
463  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
464  virtual void show (std::ostream& os) const;
465  virtual void save (AipsIO& aio) const;
466  static TaQLTableNodeRep* restore (AipsIO& aio);
467 
470 };
471 
472 
473 // <summary>
474 // Raw TaQL parse tree node defining a select column expression.
475 // </summary>
476 // <use visibility=local>
477 // <reviewed reviewer="" date="" tests="tTaQLNode">
478 // </reviewed>
479 // <prerequisite>
480 //# Classes you should understand before using this one.
481 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
482 // </prerequisite>
483 // <synopsis>
484 // This class is a TaQLNodeRep holding a column expression in the
485 // column list of the select clause.
486 // A new column name and data type can be defined for the column (expression).
487 // The expression can be a wildcarded column name (a regex) preceeded by
488 // ~ or !~ (meaning include or exclude).
489 // </synopsis>
490 
492 {
493 public:
494  TaQLColNodeRep (const TaQLNode& expr, const String& name,
495  const String& nameMask, const String& dtype);
496  virtual ~TaQLColNodeRep();
497  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
498  virtual void show (std::ostream& os) const;
499  virtual void save (AipsIO& aio) const;
500  static TaQLColNodeRep* restore (AipsIO& aio);
501 
506 };
507 
508 
509 // <summary>
510 // Raw TaQL parse tree node defining a select column list.
511 // </summary>
512 // <use visibility=local>
513 // <reviewed reviewer="" date="" tests="tTaQLNode">
514 // </reviewed>
515 // <prerequisite>
516 //# Classes you should understand before using this one.
517 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
518 // </prerequisite>
519 // <synopsis>
520 // This class is a TaQLNodeRep holding a select column list.
521 // It also defines if the result must be distinct (unique)
522 // </synopsis>
523 
525 {
526 public:
527  TaQLColumnsNodeRep (Bool distinct, const TaQLMultiNode& nodes);
528  virtual ~TaQLColumnsNodeRep();
529  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
530  virtual void show (std::ostream& os) const;
531  virtual void save (AipsIO& aio) const;
532  static TaQLColumnsNodeRep* restore (AipsIO& aio);
533 
536 };
537 
538 
539 // <summary>
540 // Raw TaQL parse tree node defining a groupby list.
541 // </summary>
542 // <use visibility=local>
543 // <reviewed reviewer="" date="" tests="tTaQLNode">
544 // </reviewed>
545 // <prerequisite>
546 //# Classes you should understand before using this one.
547 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
548 // </prerequisite>
549 // <synopsis>
550 // This class is a TaQLNodeRep holding a groupby list with the optional
551 // ROLLUP qualifier.
552 // </synopsis>
553 
555 {
556 public:
557  // Do not change the values of this enum, as objects might be persistent.
558  enum Type {Normal=0,
559  Rollup=1}; //# in the future type Cube could be added
560  TaQLGroupNodeRep (Type type, const TaQLMultiNode& nodes);
561  virtual ~TaQLGroupNodeRep();
562  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
563  virtual void show (std::ostream& os) const;
564  virtual void save (AipsIO& aio) const;
565  static TaQLGroupNodeRep* restore (AipsIO& aio);
566 
569 };
570 
571 
572 // <summary>
573 // Raw TaQL parse tree node defining a sort key.
574 // </summary>
575 // <use visibility=local>
576 // <reviewed reviewer="" date="" tests="tTaQLNode">
577 // </reviewed>
578 // <prerequisite>
579 //# Classes you should understand before using this one.
580 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
581 // </prerequisite>
582 // <synopsis>
583 // This class is a TaQLNodeRep holding a sort key and the optional order
584 // in which this key must be sorted.
585 // </synopsis>
586 
588 {
589 public:
590  // Do not change the values of this enum, as objects might be persistent.
591  enum Type {Ascending =0,
593  None =2};
594  TaQLSortKeyNodeRep (Type type, const TaQLNode& child);
595  virtual ~TaQLSortKeyNodeRep();
596  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
597  virtual void show (std::ostream& os) const;
598  virtual void save (AipsIO& aio) const;
599  static TaQLSortKeyNodeRep* restore (AipsIO& aio);
600 
603 };
604 
605 
606 // <summary>
607 // Raw TaQL parse tree node defining a sort list.
608 // </summary>
609 // <use visibility=local>
610 // <reviewed reviewer="" date="" tests="tTaQLNode">
611 // </reviewed>
612 // <prerequisite>
613 //# Classes you should understand before using this one.
614 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
615 // </prerequisite>
616 // <synopsis>
617 // This class is a TaQLNodeRep holding a sort list and the default order
618 // for each individual sort key.
619 // </synopsis>
620 
622 {
623 public:
624  // Do not change the values of this enum, as objects might be persistent.
625  enum Type {Ascending =0,
627  TaQLSortNodeRep (Bool unique, Type type, const TaQLMultiNode& keys);
628  virtual ~TaQLSortNodeRep();
629  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
630  virtual void show (std::ostream& os) const;
631  virtual void save (AipsIO& aio) const;
632  static TaQLSortNodeRep* restore (AipsIO& aio);
633 
637 };
638 
639 
640 // <summary>
641 // Raw TaQL parse tree node defining a limit/offset expression.
642 // </summary>
643 // <use visibility=local>
644 // <reviewed reviewer="" date="" tests="tTaQLNode">
645 // </reviewed>
646 // <prerequisite>
647 //# Classes you should understand before using this one.
648 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
649 // </prerequisite>
650 // <synopsis>
651 // This class is a TaQLNodeRep holding the optional expressions for the
652 // LIMIT and OFFSET clause.
653 // </synopsis>
654 
656 {
657 public:
658  TaQLLimitOffNodeRep (const TaQLNode& limit, const TaQLNode& offset);
659  virtual ~TaQLLimitOffNodeRep();
660  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
661  virtual void show (std::ostream& os) const;
662  virtual void save (AipsIO& aio) const;
663  static TaQLLimitOffNodeRep* restore (AipsIO& aio);
664 
667 };
668 
669 
670 // <summary>
671 // Raw TaQL parse tree node defining a giving expression list.
672 // </summary>
673 // <use visibility=local>
674 // <reviewed reviewer="" date="" tests="tTaQLNode">
675 // </reviewed>
676 // <prerequisite>
677 //# Classes you should understand before using this one.
678 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
679 // </prerequisite>
680 // <synopsis>
681 // This class is a TaQLNodeRep holding the values for a GIVING clause.
682 // The value can be a table name or a list of expressions.
683 // </synopsis>
684 
686 {
687 public:
688  explicit TaQLGivingNodeRep (const String& name, const TaQLMultiNode& type);
689  explicit TaQLGivingNodeRep (const TaQLMultiNode& exprlist);
690  virtual ~TaQLGivingNodeRep();
691  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
692  virtual void show (std::ostream& os) const;
693  virtual void save (AipsIO& aio) const;
694  static TaQLGivingNodeRep* restore (AipsIO& aio);
695 
699 };
700 
701 
702 // <summary>
703 // Raw TaQL parse tree node defining a column update expression.
704 // </summary>
705 // <use visibility=local>
706 // <reviewed reviewer="" date="" tests="tTaQLNode">
707 // </reviewed>
708 // <prerequisite>
709 //# Classes you should understand before using this one.
710 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
711 // </prerequisite>
712 // <synopsis>
713 // This class is a TaQLNodeRep holding the values for an update expression.
714 // It defines the column name and the expression for the new value.
715 // Optionally an index can be defined in case the column contains array
716 // values for which only some values need to be updated.
717 // </synopsis>
718 
720 {
721 public:
722  TaQLUpdExprNodeRep (const String& name, const String& nameMask,
723  const TaQLNode& expr);
724  TaQLUpdExprNodeRep (const String& name, const String& nameMask,
725  const TaQLMultiNode& indices,
726  const TaQLNode& expr);
727  TaQLUpdExprNodeRep (const String& name, const String& nameMask,
728  const TaQLMultiNode& indices1,
729  const TaQLMultiNode& indices2,
730  const TaQLNode& expr);
731  virtual ~TaQLUpdExprNodeRep();
732  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
733  virtual void show (std::ostream& os) const;
734  virtual void save (AipsIO& aio) const;
735  static TaQLUpdExprNodeRep* restore (AipsIO& aio);
736 
739  TaQLMultiNode itsIndices1; //# indices or mask
740  TaQLMultiNode itsIndices2; //# mask or indices
742 };
743 
744 
745 // <summary>
746 // Raw TaQL parse tree node defining a selection command.
747 // </summary>
748 // <use visibility=local>
749 // <reviewed reviewer="" date="" tests="tTaQLNode">
750 // </reviewed>
751 // <prerequisite>
752 //# Classes you should understand before using this one.
753 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
754 // </prerequisite>
755 // <synopsis>
756 // This class is an abstract TaQLNodeRep for a selection command that can
757 // also be used as a subquery.
758 // It holds flags telling if and how the select command must be
759 // executed when the node is visited for TaQLNodeHandler.
760 // </synopsis>
761 
763 {
764 public:
766  virtual ~TaQLQueryNodeRep();
767  void setBrackets()
768  { itsBrackets = True; }
770  { itsNoExecute = True; }
772  { itsFromExecute = True; }
774  { return itsBrackets; }
776  { return itsNoExecute; }
778  { return itsFromExecute; }
779  virtual void show (std::ostream& os) const;
780 protected:
781  virtual void saveSuper (AipsIO& aio) const;
782  virtual void restoreSuper (AipsIO& aio);
783 private:
784  virtual void showDerived (std::ostream& os) const = 0;
786  Bool itsNoExecute; //# no execute in EXISTS operator
787  Bool itsFromExecute; //# special execute in FROM
788 };
789 
790 
791 // <summary>
792 // Raw TaQL parse tree node defining a select command.
793 // </summary>
794 // <use visibility=local>
795 // <reviewed reviewer="" date="" tests="tTaQLNode">
796 // </reviewed>
797 // <prerequisite>
798 //# Classes you should understand before using this one.
799 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
800 // </prerequisite>
801 // <synopsis>
802 // This class is a TaQLNodeRep holding the different parts of a
803 // select expression.
804 // It also holds flags telling if and how the select command must be
805 // executed when the node is visited for TaQLNodeHandler.
806 // </synopsis>
807 
809 {
810 public:
811  TaQLSelectNodeRep (const TaQLNode& columns,
812  const TaQLMultiNode& withTables, const TaQLNode& where,
813  const TaQLNode& groupby, const TaQLNode& having,
814  const TaQLNode& sort, const TaQLNode& limitoff,
815  const TaQLNode& giving, const TaQLMultiNode& dminfo);
816  TaQLSelectNodeRep (const TaQLNode& columns,
817  const TaQLMultiNode& withTables, const TaQLMultiNode& fromTables,
818  const TaQLNode& join, const TaQLNode& where,
819  const TaQLNode& groupby, const TaQLNode& having,
820  const TaQLNode& sort, const TaQLNode& limitoff,
821  const TaQLNode& giving, const TaQLMultiNode& dminfo);
822  virtual ~TaQLSelectNodeRep();
823  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
824  virtual void showDerived (std::ostream& os) const;
825  virtual void save (AipsIO& aio) const;
826  static TaQLSelectNodeRep* restore (AipsIO& aio);
827 
839 };
840 
841 
842 // <summary>
843 // Raw TaQL parse tree node defining a count command.
844 // </summary>
845 // <use visibility=local>
846 // <reviewed reviewer="" date="" tests="tTaQLNode">
847 // </reviewed>
848 // <prerequisite>
849 //# Classes you should understand before using this one.
850 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
851 // </prerequisite>
852 // <synopsis>
853 // This class is a TaQLNodeRep holding the parts for a count command.
854 // </synopsis>
855 
857 {
858 public:
859  TaQLCountNodeRep (const TaQLMultiNode& with, const TaQLNode& columns,
860  const TaQLMultiNode& tables, const TaQLNode& where);
861  virtual ~TaQLCountNodeRep();
862  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
863  virtual void showDerived (std::ostream& os) const;
864  virtual void save (AipsIO& aio) const;
865  static TaQLCountNodeRep* restore (AipsIO& aio);
866 
871 };
872 
873 
874 // <summary>
875 // Raw TaQL parse tree node defining an update command.
876 // </summary>
877 // <use visibility=local>
878 // <reviewed reviewer="" date="" tests="tTaQLNode">
879 // </reviewed>
880 // <prerequisite>
881 //# Classes you should understand before using this one.
882 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
883 // </prerequisite>
884 // <synopsis>
885 // This class is a TaQLNodeRep holding the parts for an update command.
886 // The tables to be used can be defined in two parts: the main one in
887 // the UPDATE clause, possible other ones in the FROM command.
888 // </synopsis>
889 
891 {
892 public:
893  TaQLUpdateNodeRep (const TaQLMultiNode& with,
894  const TaQLMultiNode& tables, const TaQLMultiNode& update,
895  const TaQLMultiNode& from, const TaQLNode& where,
896  const TaQLNode& sort, const TaQLNode& limitoff);
897  virtual ~TaQLUpdateNodeRep();
898  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
899  virtual void show (std::ostream& os) const;
900  virtual void save (AipsIO& aio) const;
901  static TaQLUpdateNodeRep* restore (AipsIO& aio);
902 
910 };
911 
912 
913 // <summary>
914 // Raw TaQL parse tree node defining an insert command.
915 // </summary>
916 // <use visibility=local>
917 // <reviewed reviewer="" date="" tests="tTaQLNode">
918 // </reviewed>
919 // <prerequisite>
920 //# Classes you should understand before using this one.
921 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
922 // </prerequisite>
923 // <synopsis>
924 // This class is a TaQLNodeRep holding the parts for an insert command.
925 // The values cvan be a list of expressions or a subquery.
926 // </synopsis>
927 
929 {
930 public:
931  TaQLInsertNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables,
932  const TaQLMultiNode& columns,
933  const TaQLNode& values, const TaQLNode& limit);
934  TaQLInsertNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables,
935  const TaQLMultiNode& insert);
936  virtual ~TaQLInsertNodeRep();
937  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
938  virtual void show (std::ostream& os) const;
939  virtual void save (AipsIO& aio) const;
940  static TaQLInsertNodeRep* restore (AipsIO& aio);
941 
947 };
948 
949 
950 // <summary>
951 // Raw TaQL parse tree node defining a delete command.
952 // </summary>
953 // <use visibility=local>
954 // <reviewed reviewer="" date="" tests="tTaQLNode">
955 // </reviewed>
956 // <prerequisite>
957 //# Classes you should understand before using this one.
958 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
959 // </prerequisite>
960 // <synopsis>
961 // This class is a TaQLNodeRep holding the parts for a delete command.
962 // </synopsis>
963 
965 {
966 public:
967  TaQLDeleteNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables,
968  const TaQLNode& where,
969  const TaQLNode& sort, const TaQLNode& limitoff);
970  virtual ~TaQLDeleteNodeRep();
971  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
972  virtual void show (std::ostream& os) const;
973  virtual void save (AipsIO& aio) const;
974  static TaQLDeleteNodeRep* restore (AipsIO& aio);
975 
981 };
982 
983 
984 // <summary>
985 // Raw TaQL parse tree node defining a calc command.
986 // </summary>
987 // <use visibility=local>
988 // <reviewed reviewer="" date="" tests="tTaQLNode">
989 // </reviewed>
990 // <prerequisite>
991 //# Classes you should understand before using this one.
992 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
993 // </prerequisite>
994 // <synopsis>
995 // This class is a TaQLNodeRep holding the parts of the calc command.
996 // </synopsis>
997 
999 {
1000 public:
1001  TaQLCalcNodeRep (const TaQLMultiNode& withTables, const TaQLMultiNode& fromTables,
1002  const TaQLNode& expr, const TaQLNode& where,
1003  const TaQLNode& sort, const TaQLNode& limitoff);
1004  virtual ~TaQLCalcNodeRep();
1005  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1006  virtual void show (std::ostream& os) const;
1007  virtual void save (AipsIO& aio) const;
1008  static TaQLCalcNodeRep* restore (AipsIO& aio);
1009 
1016 };
1017 
1018 
1019 // <summary>
1020 // Raw TaQL parse tree node defining a create table command.
1021 // </summary>
1022 // <use visibility=local>
1023 // <reviewed reviewer="" date="" tests="tTaQLNode">
1024 // </reviewed>
1025 // <prerequisite>
1026 //# Classes you should understand before using this one.
1027 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1028 // </prerequisite>
1029 // <synopsis>
1030 // This class is a TaQLNodeRep holding the parts of the create table command.
1031 // </synopsis>
1032 
1034 {
1035 public:
1036  TaQLCreTabNodeRep (const TaQLMultiNode& with,
1037  const TaQLNode& giving, const TaQLMultiNode& cols,
1038  const TaQLNode& limit, const TaQLMultiNode& dminfo);
1039  virtual ~TaQLCreTabNodeRep();
1040  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1041  virtual void showDerived (std::ostream& os) const;
1042  virtual void save (AipsIO& aio) const;
1043  static TaQLCreTabNodeRep* restore (AipsIO& aio);
1044 
1050 };
1051 
1052 
1053 // <summary>
1054 // Raw TaQL parse tree node defining a create column specification.
1055 // </summary>
1056 // <use visibility=local>
1057 // <reviewed reviewer="" date="" tests="tTaQLNode">
1058 // </reviewed>
1059 // <prerequisite>
1060 //# Classes you should understand before using this one.
1061 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1062 // </prerequisite>
1063 // <synopsis>
1064 // This class is a TaQLNodeRep holding the parts of a column specification
1065 // in the create table command.
1066 // </synopsis>
1067 
1069 {
1070 public:
1071  TaQLColSpecNodeRep (const String& name, const String& dtype,
1072  const TaQLMultiNode& spec);
1073  virtual ~TaQLColSpecNodeRep();
1074  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1075  virtual void show (std::ostream& os) const;
1076  virtual void save (AipsIO& aio) const;
1077  static TaQLColSpecNodeRep* restore (AipsIO& aio);
1078 
1082 };
1083 
1084 
1085 // <summary>
1086 // Raw TaQL parse tree node defining a record field.
1087 // </summary>
1088 // <use visibility=local>
1089 // <reviewed reviewer="" date="" tests="tTaQLNode">
1090 // </reviewed>
1091 // <prerequisite>
1092 //# Classes you should understand before using this one.
1093 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1094 // </prerequisite>
1095 // <synopsis>
1096 // This class is a TaQLNodeRep holding the parts of a record field.
1097 // </synopsis>
1098 
1100 {
1101 public:
1102  TaQLRecFldNodeRep (const String& name,
1103  const TaQLNode& values, const String& dtype);
1104  TaQLRecFldNodeRep (const String& name, const TaQLRecFldNodeRep&);
1105  TaQLRecFldNodeRep (const String& name, const String& fromName,
1106  const String& dtype);
1107  virtual ~TaQLRecFldNodeRep();
1108  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1109  virtual void show (std::ostream& os) const;
1110  virtual void save (AipsIO& aio) const;
1111  static TaQLRecFldNodeRep* restore (AipsIO& aio);
1112 
1117 };
1118 
1119 
1120 // <summary>
1121 // Raw TaQL parse tree node defining a unit.
1122 // </summary>
1123 // <use visibility=local>
1124 // <reviewed reviewer="" date="" tests="tTaQLNode">
1125 // </reviewed>
1126 // <prerequisite>
1127 //# Classes you should understand before using this one.
1128 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1129 // </prerequisite>
1130 // <synopsis>
1131 // This class is a TaQLNodeRep holding the parts of a record field.
1132 // </synopsis>
1133 
1135 {
1136 public:
1137  TaQLUnitNodeRep (const String& unit, const TaQLNode& child);
1138  virtual ~TaQLUnitNodeRep();
1139  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1140  virtual void show (std::ostream& os) const;
1141  virtual void save (AipsIO& aio) const;
1142  static TaQLUnitNodeRep* restore (AipsIO& aio);
1143 
1146 };
1147 
1148 
1149 // <summary>
1150 // Raw TaQL parse tree node defining an alter table command.
1151 // </summary>
1152 // <use visibility=local>
1153 // <reviewed reviewer="" date="" tests="tTaQLNode">
1154 // </reviewed>
1155 // <prerequisite>
1156 //# Classes you should understand before using this one.
1157 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1158 // </prerequisite>
1159 // <synopsis>
1160 // This class is a TaQLNodeRep holding the parts of the alter table command.
1161 // </synopsis>
1162 
1164 {
1165 public:
1166  TaQLAltTabNodeRep (const TaQLMultiNode& with, const TaQLNode& table,
1167  const TaQLMultiNode& from,
1168  const TaQLMultiNode& commands);
1169  virtual ~TaQLAltTabNodeRep();
1170  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1171  virtual void showDerived (std::ostream& os) const;
1172  virtual void save (AipsIO& aio) const;
1173  static TaQLAltTabNodeRep* restore (AipsIO& aio);
1174 
1179 };
1180 
1181 
1182 // <summary>
1183 // Raw TaQL parse tree node defining an alter table add column command.
1184 // </summary>
1185 // <use visibility=local>
1186 // <reviewed reviewer="" date="" tests="tTaQLNode">
1187 // </reviewed>
1188 // <prerequisite>
1189 //# Classes you should understand before using this one.
1190 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1191 // </prerequisite>
1192 // <synopsis>
1193 // This class is a TaQLNodeRep holding the parts of the add column subcommand.
1194 // </synopsis>
1195 
1197 {
1198 public:
1199  TaQLAddColNodeRep (const TaQLMultiNode& cols, const TaQLMultiNode& dminfo);
1200  virtual ~TaQLAddColNodeRep();
1201  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1202  virtual void show (std::ostream& os) const;
1203  virtual void save (AipsIO& aio) const;
1204  static TaQLAddColNodeRep* restore (AipsIO& aio);
1205 
1208 };
1209 
1210 
1211 // <summary>
1212 // Raw TaQL parse tree node defining an alter table rename or drop command.
1213 // </summary>
1214 // <use visibility=local>
1215 // <reviewed reviewer="" date="" tests="tTaQLNode">
1216 // </reviewed>
1217 // <prerequisite>
1218 //# Classes you should understand before using this one.
1219 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1220 // </prerequisite>
1221 // <synopsis>
1222 // This class is a TaQLNodeRep holding the parts of the rename or drop subcommand.
1223 // </synopsis>
1224 
1226 {
1227 public:
1228  TaQLRenDropNodeRep (Int type, const TaQLMultiNode& cols);
1229  virtual ~TaQLRenDropNodeRep();
1230  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1231  virtual void show (std::ostream& os) const;
1232  virtual void save (AipsIO& aio) const;
1233  static TaQLRenDropNodeRep* restore (AipsIO& aio);
1234 
1237 };
1238 
1239 
1240 // <summary>
1241 // Raw TaQL parse tree node defining an alter table set keyword command.
1242 // </summary>
1243 // <use visibility=local>
1244 // <reviewed reviewer="" date="" tests="tTaQLNode">
1245 // </reviewed>
1246 // <prerequisite>
1247 //# Classes you should understand before using this one.
1248 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1249 // </prerequisite>
1250 // <synopsis>
1251 // This class is a TaQLNodeRep holding the parts of the set keyword subcommand.
1252 // </synopsis>
1253 
1255 {
1256 public:
1257  TaQLSetKeyNodeRep (const TaQLMultiNode& keyvals);
1258  virtual ~TaQLSetKeyNodeRep();
1259  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1260  virtual void show (std::ostream& os) const;
1261  virtual void save (AipsIO& aio) const;
1262  static TaQLSetKeyNodeRep* restore (AipsIO& aio);
1263 
1265 };
1266 
1267 
1268 // <summary>
1269 // Raw TaQL parse tree node defining an alter table add rows command.
1270 // </summary>
1271 // <use visibility=local>
1272 // <reviewed reviewer="" date="" tests="tTaQLNode">
1273 // </reviewed>
1274 // <prerequisite>
1275 //# Classes you should understand before using this one.
1276 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1277 // </prerequisite>
1278 // <synopsis>
1279 // This class is a TaQLNodeRep holding the parts of the add rows subcommand.
1280 // </synopsis>
1281 
1283 {
1284 public:
1285  TaQLAddRowNodeRep (const TaQLNode& nrow);
1286  virtual ~TaQLAddRowNodeRep();
1287  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1288  virtual void show (std::ostream& os) const;
1289  virtual void save (AipsIO& aio) const;
1290  static TaQLAddRowNodeRep* restore (AipsIO& aio);
1291 
1293 };
1294 
1295 
1296 // <summary>
1297 // Raw TaQL parse tree node defining an alter table command.
1298 // </summary>
1299 // <use visibility=local>
1300 // <reviewed reviewer="" date="" tests="tTaQLNode">
1301 // </reviewed>
1302 // <prerequisite>
1303 //# Classes you should understand before using this one.
1304 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1305 // </prerequisite>
1306 // <synopsis>
1307 // This class is a TaQLNodeRep holding the parts of the alter table command.
1308 // </synopsis>
1309 
1311 {
1312 public:
1313  TaQLConcTabNodeRep (const String& tableName,
1314  const TaQLMultiNode& tables,
1315  const TaQLMultiNode& subtableNames);
1316  virtual ~TaQLConcTabNodeRep();
1317  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1318  virtual void showDerived (std::ostream& os) const;
1319  virtual void save (AipsIO& aio) const;
1320  static TaQLConcTabNodeRep* restore (AipsIO& aio);
1321 
1325 };
1326 
1327 
1328 // <summary>
1329 // Raw TaQL parse tree node defining a show command.
1330 // </summary>
1331 // <use visibility=local>
1332 // <reviewed reviewer="" date="" tests="tTaQLNode">
1333 // </reviewed>
1334 // <prerequisite>
1335 //# Classes you should understand before using this one.
1336 // <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1337 // </prerequisite>
1338 // <synopsis>
1339 // This class is a TaQLNodeRep holding the parts of the show command.
1340 // </synopsis>
1341 
1343 {
1344 public:
1345  TaQLShowNodeRep (const TaQLMultiNode& names);
1346  virtual ~TaQLShowNodeRep();
1347  virtual TaQLNodeResult visit (TaQLNodeVisitor&) const;
1348  virtual void show (std::ostream& os) const;
1349  virtual void save (AipsIO& aio) const;
1350  static TaQLShowNodeRep* restore (AipsIO& aio);
1351 
1353 };
1354 
1355 
1356 } //# NAMESPACE CASACORE - END
1357 
1358 #endif
static TaQLTableNodeRep * restore(AipsIO &aio)
Raw TaQL parse tree node defining a selection command.
Definition: TaQLNodeDer.h:762
TaQLRangeNodeRep(Bool leftClosed, TaQLNode start, const TaQLNode &end, Bool rightClosed)
TaQLJoinNodeRep(const TaQLMultiNode &tables, const TaQLNode &condition)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
Definition: aipsxtype.h:38
Raw TaQL parse tree node defining a count command.
Definition: TaQLNodeDer.h:856
TaQLAltTabNodeRep(const TaQLMultiNode &with, const TaQLNode &table, const TaQLMultiNode &from, const TaQLMultiNode &commands)
int Int
Definition: aipstype.h:50
static TaQLConstNodeRep * restore(AipsIO &aio)
TaQLCountNodeRep(const TaQLMultiNode &with, const TaQLNode &columns, const TaQLMultiNode &tables, const TaQLNode &where)
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void show(std::ostream &os) const
Print the object in an ostream.
static TaQLLimitOffNodeRep * restore(AipsIO &aio)
virtual void show(std::ostream &os) const
Print the object in an ostream.
TaQLColSpecNodeRep(const String &name, const String &dtype, const TaQLMultiNode &spec)
Bool getNoExecute() const
Definition: TaQLNodeDer.h:775
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void show(std::ostream &os) const
Print the object in an ostream.
static TaQLColSpecNodeRep * restore(AipsIO &aio)
TaQLAddColNodeRep(const TaQLMultiNode &cols, const TaQLMultiNode &dminfo)
Raw TaQL parse tree node defining an alter table add rows command.
Definition: TaQLNodeDer.h:1282
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void save(AipsIO &aio) const
Save the object.
virtual void save(AipsIO &aio) const
Save the object.
TaQLInsertNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables, const TaQLMultiNode &columns, const TaQLNode &values, const TaQLNode &limit)
virtual void show(std::ostream &os) const
Print the object in an ostream.
Raw TaQL parse tree node defining a select command.
Definition: TaQLNodeDer.h:808
TaQLTableNodeRep(const TaQLNode &table, const String &alias)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
TaQLUnaryNodeRep(Type type, const TaQLNode &child)
Raw TaQL parse tree node defining an update command.
Definition: TaQLNodeDer.h:890
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
TaQLRegexNodeRep(const String &value)
virtual void showDerived(std::ostream &os) const
static TaQLUnaryNodeRep * restore(AipsIO &aio)
virtual void saveSuper(AipsIO &aio) const
AipsIO is the object persistency mechanism of Casacore.
Definition: AipsIO.h:168
virtual void save(AipsIO &aio) const
Save the object.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
static TaQLSetKeyNodeRep * restore(AipsIO &aio)
static TaQLGroupNodeRep * restore(AipsIO &aio)
TaQLColumnsNodeRep(Bool distinct, const TaQLMultiNode &nodes)
static TaQLUpdateNodeRep * restore(AipsIO &aio)
virtual void save(AipsIO &aio) const
Save the object.
virtual void show(std::ostream &os) const
Print the object in an ostream.
void setPPFix(const String &prefix, const String &postfix)
Definition: TaQLNodeDer.h:260
static TaQLAddColNodeRep * restore(AipsIO &aio)
static TaQLBinaryNodeRep * handleRegex(const TaQLNode &left, const TaQLRegexNode &regex)
Handle a comparison wih a regex.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void show(std::ostream &os) const
Print the object in an ostream.
static TaQLColNodeRep * restore(AipsIO &aio)
TaQLUpdateNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables, const TaQLMultiNode &update, const TaQLMultiNode &from, const TaQLNode &where, const TaQLNode &sort, const TaQLNode &limitoff)
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
static TaQLIndexNodeRep * restore(AipsIO &aio)
virtual void showDerived(std::ostream &os) const =0
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Raw TaQL parse tree node defining a range.
Definition: TaQLNodeDer.h:330
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
static TaQLAltTabNodeRep * restore(AipsIO &aio)
Raw TaQL parse tree node defining an alter table set keyword command.
Definition: TaQLNodeDer.h:1254
static TaQLFuncNodeRep * restore(AipsIO &aio)
casacore::String join(Itr begin, Itr end, const casacore::String &delimiter)
Definition: UtilJ.h:177
Raw TaQL parse tree node defining a constant value.
Definition: TaQLNodeDer.h:61
Raw TaQL parse tree node defining a create table command.
Definition: TaQLNodeDer.h:1033
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual casacore::String type() const
Implements RegionShape::type.
Definition: RegionShapes.h:548
virtual void restoreSuper(AipsIO &aio)
TaQLRenDropNodeRep(Int type, const TaQLMultiNode &cols)
Raw TaQL parse tree node defining an index in a array.
Definition: TaQLNodeDer.h:365
virtual void save(AipsIO &aio) const
Save the object.
Raw TaQL parse tree node defining a calc command.
Definition: TaQLNodeDer.h:998
virtual void save(AipsIO &aio) const
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
ABSTRACT CLASSES Abstract class for colors Any implementation of color should be able to provide a hexadecimal form of the if a human readable name(i.e."black").In many places throughout the plotter
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
const_iterator end() const
Raw TaQL parse tree node defining a list of nodes.
Definition: TaQLNodeDer.h:251
virtual void show(std::ostream &os) const
Print the object in an ostream.
TaQLQueryNodeRep(int nodeType)
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void save(AipsIO &aio) const
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void showDerived(std::ostream &os) const
static TaQLRegexNodeRep * restore(AipsIO &aio)
static TaQLShowNodeRep * restore(AipsIO &aio)
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void showDerived(std::ostream &os) const
virtual void save(AipsIO &aio) const
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
TaQLCalcNodeRep(const TaQLMultiNode &withTables, const TaQLMultiNode &fromTables, const TaQLNode &expr, const TaQLNode &where, const TaQLNode &sort, const TaQLNode &limitoff)
static TaQLRangeNodeRep * restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
static TaQLCountNodeRep * restore(AipsIO &aio)
Raw TaQL parse tree node defining a delete command.
Definition: TaQLNodeDer.h:964
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Envelope class for a node containing a list of nodes.
Definition: TaQLNode.h:226
Raw TaQL parse tree node defining a table.
Definition: TaQLNodeDer.h:458
virtual void showDerived(std::ostream &os) const
virtual void show(std::ostream &os) const
Print the object in an ostream.
static TaQLKeyColNodeRep * restore(AipsIO &aio)
static TaQLRecFldNodeRep * restore(AipsIO &aio)
const String & getString() const
Raw TaQL parse tree node defining a groupby list.
Definition: TaQLNodeDer.h:554
virtual void save(AipsIO &aio) const
Save the object.
static TaQLGivingNodeRep * restore(AipsIO &aio)
TaQLCreTabNodeRep(const TaQLMultiNode &with, const TaQLNode &giving, const TaQLMultiNode &cols, const TaQLNode &limit, const TaQLMultiNode &dminfo)
Raw TaQL parse tree node defining a giving expression list.
Definition: TaQLNodeDer.h:685
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Envelope class for a node containing a constant regex value.
Definition: TaQLNode.h:203
Raw TaQL parse tree node defining a unary operator.
Definition: TaQLNodeDer.h:156
Raw TaQL parse tree node defining a constant regex value.
Definition: TaQLNodeDer.h:119
Normal or Gaussian distribution.
Definition: Random.h:997
Raw TaQL parse tree node defining a record field.
Definition: TaQLNodeDer.h:1099
virtual void show(std::ostream &os) const
Print the object in an ostream.
double Double
Definition: aipstype.h:55
static TaQLDeleteNodeRep * restore(AipsIO &aio)
virtual void show(std::ostream &os) const
Print the object in an ostream.
TaQLUpdExprNodeRep(const String &name, const String &nameMask, const TaQLNode &expr)
virtual void save(AipsIO &aio) const
Save the object.
Raw TaQL parse tree node defining an alter table command.
Definition: TaQLNodeDer.h:1310
static TaQLMultiNodeRep * restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Raw TaQL parse tree node defining a keyword or column name.
Definition: TaQLNodeDer.h:427
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
static TaQLSortKeyNodeRep * restore(AipsIO &aio)
virtual void save(AipsIO &aio) const
Save the object.
TaQLFuncNodeRep(const String &name)
virtual void save(AipsIO &aio) const
Save the object.
TaQLIndexNodeRep(const TaQLNode &start, const TaQLNode &end, const TaQLNode &incr)
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
virtual void save(AipsIO &aio) const
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Raw TaQL parse tree node defining a function.
Definition: TaQLNodeDer.h:299
virtual void save(AipsIO &aio) const
Save the object.
TaQLSetKeyNodeRep(const TaQLMultiNode &keyvals)
TaQLShowNodeRep(const TaQLMultiNode &names)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
TaQLConcTabNodeRep(const String &tableName, const TaQLMultiNode &tables, const TaQLMultiNode &subtableNames)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Raw TaQL parse tree node defining an alter table rename or drop command.
Definition: TaQLNodeDer.h:1225
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Raw TaQL parse tree node defining a create column specification.
Definition: TaQLNodeDer.h:1068
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
TaQLBinaryNodeRep(Type type, const TaQLNode &left, const TaQLNode &right)
virtual void save(AipsIO &aio) const
Save the object.
const Bool False
Definition: aipstype.h:44
static TaQLJoinNodeRep * restore(AipsIO &aio)
char nodeType() const
Get the node type of the derived class.
Definition: TaQLNodeRep.h:128
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void show(std::ostream &os) const
Print the object in an ostream.
Raw TaQL parse tree node defining a unit.
Definition: TaQLNodeDer.h:1134
Raw TaQL parse tree node defining a column update expression.
Definition: TaQLNodeDer.h:719
TaQLUnitNodeRep(const String &unit, const TaQLNode &child)
virtual void save(AipsIO &aio) const
Save the object.
virtual void save(AipsIO &aio) const
Save the object.
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void save(AipsIO &aio) const
Save the object.
virtual void save(AipsIO &aio) const
Save the object.
virtual void show(std::ostream &os) const
Print the object in an ostream.
Type
Do not change the values of this enum, as objects might be persistent.
Definition: TaQLNodeDer.h:591
TaQLGivingNodeRep(const String &name, const TaQLMultiNode &type)
TaQLRecFldNodeRep(const String &name, const TaQLNode &values, const String &dtype)
TaQLKeyColNodeRep(const String &name, const String &nameMask=String())
static TaQLBinaryNodeRep * restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
TaQLDeleteNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables, const TaQLNode &where, const TaQLNode &sort, const TaQLNode &limitoff)
virtual void save(AipsIO &aio) const
Save the object.
virtual void save(AipsIO &aio) const
Save the object.
TableExprNode regex(const TableExprNode &node)
Functions for regular expression matching and pattern matching.
Definition: ExprNode.h:1440
virtual void showDerived(std::ostream &os) const
virtual void show(std::ostream &os) const
Print the object in an ostream.
virtual void show(std::ostream &os) const
Print the object in an ostream.
Type
Do not change the values of this enum, as objects might be persistent.
Definition: TaQLNodeDer.h:198
TaQLGroupNodeRep(Type type, const TaQLMultiNode &nodes)
Envelope class to hold the result of a visit to the node tree.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
static TaQLUpdExprNodeRep * restore(AipsIO &aio)
Raw TaQL parse tree node defining a limit/offset expression.
Definition: TaQLNodeDer.h:655
void setSeparator(uInt incr, const String &sep)
Definition: TaQLNodeDer.h:264
std::vector< TaQLNode > itsNodes
Definition: TaQLNodeDer.h:275
Raw TaQL parse tree node defining a sort key.
Definition: TaQLNodeDer.h:587
static TaQLSelectNodeRep * restore(AipsIO &aio)
TaQLLimitOffNodeRep(const TaQLNode &limit, const TaQLNode &offset)
Raw TaQL parse tree node defining a sort list.
Definition: TaQLNodeDer.h:621
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
static TaQLRenDropNodeRep * restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
Type
Do not change the values of this enum, as objects might be persistent.
Definition: TaQLNodeDer.h:160
Raw TaQL parse tree node defining an alter table add column command.
Definition: TaQLNodeDer.h:1196
String: the storage and methods of handling collections of characters.
Definition: String.h:223
Raw TaQL parse tree node defining a select column expression.
Definition: TaQLNodeDer.h:491
Raw TaQL parse tree node defining a show command.
Definition: TaQLNodeDer.h:1342
Raw TaQL parse tree node defining a select column list.
Definition: TaQLNodeDer.h:524
Raw TaQL parse tree node defining a join operation.
Definition: TaQLNodeDer.h:397
virtual void save(AipsIO &aio) const
Save the object.
Envelope class for a node in the raw TaQL parse tree.
Definition: TaQLNode.h:82
const std::vector< TaQLNode > & getNodes() const
Definition: TaQLNodeDer.h:268
static TaQLUnitNodeRep * restore(AipsIO &aio)
static TaQLAddRowNodeRep * restore(AipsIO &aio)
TaQLSortKeyNodeRep(Type type, const TaQLNode &child)
TaQLColNodeRep(const TaQLNode &expr, const String &name, const String &nameMask, const String &dtype)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
Class to visit the nodes in the raw TaQL parse tree.
TaQLSortNodeRep(Bool unique, Type type, const TaQLMultiNode &keys)
Type
Do not change the values of this enum, as objects might be persistent.
Definition: TaQLNodeDer.h:625
virtual void save(AipsIO &aio) const
Save the object.
Type
Do not change the values of this enum, as objects might be persistent.
Definition: TaQLNodeDer.h:65
virtual void save(AipsIO &aio) const
Save the object.
Class to handle date/time type conversions and I/O.
Definition: MVTime.h:269
Bool getFromExecute() const
Definition: TaQLNodeDer.h:777
static TaQLInsertNodeRep * restore(AipsIO &aio)
void setSeparator(const String &sep)
Definition: TaQLNodeDer.h:262
virtual void save(AipsIO &aio) const
Save the object.
static TaQLColumnsNodeRep * restore(AipsIO &aio)
static TaQLCreTabNodeRep * restore(AipsIO &aio)
virtual void save(AipsIO &aio) const
Save the object.
static TaQLCalcNodeRep * restore(AipsIO &aio)
const String & getUnit() const
Definition: TaQLNodeDer.h:83
const Bool True
Definition: aipstype.h:43
Raw TaQL parse tree node defining a binary operator.
Definition: TaQLNodeDer.h:194
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const
Save the object.
Raw TaQL parse tree node defining an alter table command.
Definition: TaQLNodeDer.h:1163
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
Representation of a node in the raw TaQL parse tree.
Definition: TaQLNodeRep.h:76
TaQLAddRowNodeRep(const TaQLNode &nrow)
virtual void show(std::ostream &os) const
Print the object in an ostream.
Raw TaQL parse tree node defining an insert command.
Definition: TaQLNodeDer.h:928
unsigned int uInt
Definition: aipstype.h:51
TaQLMultiNodeRep(Bool isSetOrArray=False)
virtual void save(AipsIO &aio) const
Save the object.
void add(const TaQLNode &node)
Definition: TaQLNodeDer.h:266
Type
Do not change the values of this enum, as objects might be persistent.
Definition: TaQLNodeDer.h:558
static TaQLConcTabNodeRep * restore(AipsIO &aio)
static TaQLSortNodeRep * restore(AipsIO &aio)
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42
TaQLSelectNodeRep(const TaQLNode &columns, const TaQLMultiNode &withTables, const TaQLNode &where, const TaQLNode &groupby, const TaQLNode &having, const TaQLNode &sort, const TaQLNode &limitoff, const TaQLNode &giving, const TaQLMultiNode &dminfo)