casacore
Loading...
Searching...
No Matches
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: casa-feedback@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#ifndef TABLES_TAQLNODEDER_H
27#define TABLES_TAQLNODEDER_H
28
29// # Includes
30#include <casacore/casa/aips.h>
31#include <casacore/tables/TaQL/TaQLNode.h>
32#include <casacore/casa/BasicSL/Complex.h>
33#include <casacore/casa/BasicSL/String.h>
34#include <casacore/casa/Utilities/Regex.h>
35#include <casacore/casa/Quanta/MVTime.h>
36#include <casacore/casa/Containers/Block.h>
37#include <vector>
38#include <iostream>
39
40namespace casacore { // # NAMESPACE CASACORE - BEGIN
41
42// <summary>
43// Raw TaQL parse tree node defining a constant value.
44// </summary>
45// <use visibility=local>
46// <reviewed reviewer="" date="" tests="tTaQLNode">
47// </reviewed>
48// <prerequisite>
49// # Classes you should understand before using this one.
50// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
51// </prerequisite>
52// <synopsis>
53// This class is a TaQLNodeRep holding a constant expression or a table name.
54// The types supported are Bool, Int, Double, DComplex, String, and MVTime.
55// Note that a keyword or column name is represented by TaQLKeyColNodeRep.
56// </synopsis>
57
59 public:
60 // Do not change the values of this enum, as objects might be persistent.
61 enum Type { CTBool = 0, CTInt = 1, CTReal = 2, CTComplex = 3, CTString = 4, CTTime = 5 };
65 explicit TaQLConstNodeRep(Double value, const String& unit);
66 explicit TaQLConstNodeRep(DComplex value);
67 explicit TaQLConstNodeRep(const String& value, Bool isTableName = False);
68 explicit TaQLConstNodeRep(const MVTime& value);
69 explicit TaQLConstNodeRep(Int64 value, const String& subTableName);
71 const String& getString() const;
72 const String& getUnit() const { return itsUnit; }
73 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
74 virtual void show(std::ostream& os) const override;
75 virtual void save(AipsIO& aio) const override;
76 static TaQLNode restore(AipsIO& aio);
77
83 DComplex itsCValue;
87};
88
89// <summary>
90// Raw TaQL parse tree node defining a constant regex value.
91// </summary>
92// <use visibility=local>
93// <reviewed reviewer="" date="" tests="tTaQLNode">
94// </reviewed>
95// <prerequisite>
96// # Classes you should understand before using this one.
97// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
98// </prerequisite>
99// <synopsis>
100// This class is a TaQLNodeRep holding a constant regex/pattern value.
101// Part of the regex are the delimiters (like p//).
102// It also holds if the regex is case-insensitive and if a match or no match
103// operator is given.
104// </synopsis>
105
107 public:
108 explicit TaQLRegexNodeRep(const String& value);
109 TaQLRegexNodeRep(const String& value, Bool caseInsensitive, Bool negate, Bool ignoreBlanks,
110 Int maxDistance);
111 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
112 virtual void show(std::ostream& os) const override;
113 virtual void save(AipsIO& aio) const override;
114 static TaQLNode restore(AipsIO& aio);
115
118 Bool itsNegate; // # True means !~
119 // # The following members are only used for distance.
122};
123
124// <summary>
125// Raw TaQL parse tree node defining a unary operator.
126// </summary>
127// <use visibility=local>
128// <reviewed reviewer="" date="" tests="tTaQLNode">
129// </reviewed>
130// <prerequisite>
131// # Classes you should understand before using this one.
132// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
133// </prerequisite>
134// <synopsis>
135// This class is a TaQLNodeRep holding a unary operator and operand.
136// The operators supported are -, ~, NOT, EXISTS, and NOT EXISTS.
137// Note the unary operator + is superfluous and is ignored by the parser.
138// </synopsis>
139
141 public:
142 // Do not change the values of this enum, as objects might be persistent.
143 enum Type { U_MINUS = 0, U_NOT = 1, U_EXISTS = 2, U_NOTEXISTS = 3, U_BITNOT = 4 };
145 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
146 virtual void show(std::ostream& os) const override;
147 virtual void save(AipsIO& aio) const override;
148 static TaQLNode restore(AipsIO& aio);
149
152};
153
154// <summary>
155// Raw TaQL parse tree node defining a binary operator.
156// </summary>
157// <use visibility=local>
158// <reviewed reviewer="" date="" tests="tTaQLNode">
159// </reviewed>
160// <prerequisite>
161// # Classes you should understand before using this one.
162// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
163// </prerequisite>
164// <synopsis>
165// This class is a TaQLNodeRep holding a binary operator and operands.
166// All standard mathematical (including % and ^), relational, bit, and logical
167// operators are supported. Furthermore operator IN and the INDEX operator
168// (for indexing in an array) are supported.
169// </synopsis>
170
172 public:
173 // Do not change the values of this enum, as objects might be persistent.
174 enum Type {
181 B_EQ = 6,
182 B_NE = 7,
183 B_GT = 8,
184 B_GE = 9,
185 B_LT = 10,
186 B_LE = 11,
187 B_OR = 12,
188 B_AND = 13,
189 B_IN = 14,
197 };
198 TaQLBinaryNodeRep(Type type, const TaQLNode& left, const TaQLNode& right);
199 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
200 virtual void show(std::ostream& os) const override;
201 virtual void save(AipsIO& aio) const override;
202 static TaQLNode restore(AipsIO& aio);
203 // Handle a comparison wih a regex. The operator (~ or !~) is extracted
204 // from the regex.
206
210};
211
212// <summary>
213// Raw TaQL parse tree node defining a list of nodes.
214// </summary>
215// <use visibility=local>
216// <reviewed reviewer="" date="" tests="tTaQLNode">
217// </reviewed>
218// <prerequisite>
219// # Classes you should understand before using this one.
220// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
221// </prerequisite>
222// <synopsis>
223// This class is a TaQLNodeRep holding a list of heterogeneous nodes.
224// </synopsis>
225
227 public:
228 explicit TaQLMultiNodeRep(Bool isSetOrArray = False);
229 TaQLMultiNodeRep(const String& prefix, const String& postfix, Bool isSetOrArray = False);
231 void setPPFix(const String& prefix, const String& postfix) {
232 itsPrefix = prefix;
233 itsPostfix = postfix;
234 }
235 void setSeparator(const String& sep) { itsSep = sep; }
236 void setSeparator(uInt incr, const String& sep) {
237 itsIncr = incr;
238 itsSep2 = sep;
239 }
240 void add(const TaQLNode& node) { itsNodes.push_back(node); }
241 const std::vector<TaQLNode>& getNodes() const { return itsNodes; }
242 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
243 virtual void show(std::ostream& os) const override;
244 virtual void save(AipsIO& aio) const override;
246
247 std::vector<TaQLNode> itsNodes;
254};
255
256// <summary>
257// Raw TaQL parse tree node defining a function.
258// </summary>
259// <use visibility=local>
260// <reviewed reviewer="" date="" tests="tTaQLNode">
261// </reviewed>
262// <prerequisite>
263// # Classes you should understand before using this one.
264// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
265// </prerequisite>
266// <synopsis>
267// This class is a TaQLNodeRep holding a function name and its arguments.
268// </synopsis>
269
271 public:
274 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
275 virtual void show(std::ostream& os) const override;
276 virtual void save(AipsIO& aio) const override;
277 static TaQLNode restore(AipsIO& aio);
278
281};
282
283// <summary>
284// Raw TaQL parse tree node defining a range.
285// </summary>
286// <use visibility=local>
287// <reviewed reviewer="" date="" tests="tTaQLNode">
288// </reviewed>
289// <prerequisite>
290// # Classes you should understand before using this one.
291// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
292// </prerequisite>
293// <synopsis>
294// This class is a TaQLNodeRep holding the optional start and end values
295// of a range (i.e. an interval) and flags if the range is open or closed.
296// </synopsis>
297
299 public:
300 TaQLRangeNodeRep(Bool leftClosed, const TaQLNode& start, const TaQLNode& end, Bool rightClosed,
301 Bool asMidWidth = False);
302 TaQLRangeNodeRep(Bool leftClosed, const TaQLNode& start);
303 TaQLRangeNodeRep(const TaQLNode& end, Bool rightClosed);
304 TaQLRangeNodeRep(const TaQLNode& mid, const TaQLNode& width);
305 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
306 virtual void show(std::ostream& os) const override;
307 virtual void save(AipsIO& aio) const override;
308 static TaQLNode restore(AipsIO& aio);
309
315};
316
317// <summary>
318// Raw TaQL parse tree node defining an index in a array.
319// </summary>
320// <use visibility=local>
321// <reviewed reviewer="" date="" tests="tTaQLNode">
322// </reviewed>
323// <prerequisite>
324// # Classes you should understand before using this one.
325// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
326// </prerequisite>
327// <synopsis>
328// This class is a TaQLNodeRep holding the optional start, end, and incr
329// values of an index in an array.
330// </synopsis>
331
333 public:
334 TaQLIndexNodeRep(const TaQLNode& start, const TaQLNode& end, const TaQLNode& incr);
335 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
336 virtual void show(std::ostream& os) const override;
337 virtual void save(AipsIO& aio) const override;
338 static TaQLNode restore(AipsIO& aio);
339
343};
344
345// <summary>
346// Raw TaQL parse tree node defining a join operation.
347// </summary>
348// <use visibility=local>
349// <reviewed reviewer="" date="" tests="tTaQLNode">
350// </reviewed>
351// <prerequisite>
352// # Classes you should understand before using this one.
353// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
354// </prerequisite>
355// <synopsis>
356// This class is a TaQLNodeRep holding the expressions of a join operation.
357// This is, however, a placeholder and not implemented yet.
358// </synopsis>
359
361 public:
362 TaQLJoinNodeRep(const TaQLMultiNode& tables, const TaQLNode& condition);
363 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
364 virtual void show(std::ostream& os) const override;
365 virtual void save(AipsIO& aio) const override;
366 static TaQLNode restore(AipsIO& aio);
367
370};
371
372// <summary>
373// Raw TaQL parse tree node defining a keyword or column name.
374// </summary>
375// <use visibility=local>
376// <reviewed reviewer="" date="" tests="tTaQLNode">
377// </reviewed>
378// <prerequisite>
379// # Classes you should understand before using this one.
380// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
381// </prerequisite>
382// <synopsis>
383// This class is a TaQLNodeRep holding the name of a keyword or column.
384// The name can contain . and :: delimiters for scoping.
385// </synopsis>
386
388 public:
389 TaQLKeyColNodeRep(const String& name, const String& nameMask = String());
390 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
391 virtual void show(std::ostream& os) const override;
392 virtual void save(AipsIO& aio) const override;
393 static TaQLNode restore(AipsIO& aio);
394
397};
398
399// <summary>
400// Raw TaQL parse tree node defining a table.
401// </summary>
402// <use visibility=local>
403// <reviewed reviewer="" date="" tests="tTaQLNode">
404// </reviewed>
405// <prerequisite>
406// # Classes you should understand before using this one.
407// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
408// </prerequisite>
409// <synopsis>
410// This class is a TaQLNodeRep holding the info defining a table.
411// It can be a constant value holding a name or it can be a subquery.
412// Furthermore the alias of the table is defined (which can be empty).
413// </synopsis>
414
416 public:
417 TaQLTableNodeRep(const TaQLNode& table, const String& alias);
418 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
419 virtual void show(std::ostream& os) const override;
420 virtual void save(AipsIO& aio) const override;
421 static TaQLNode restore(AipsIO& aio);
422
425};
426
427// <summary>
428// Raw TaQL parse tree node defining a select column expression.
429// </summary>
430// <use visibility=local>
431// <reviewed reviewer="" date="" tests="tTaQLNode">
432// </reviewed>
433// <prerequisite>
434// # Classes you should understand before using this one.
435// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
436// </prerequisite>
437// <synopsis>
438// This class is a TaQLNodeRep holding a column expression in the
439// column list of the select clause.
440// A new column name and data type can be defined for the column (expression).
441// The expression can be a wildcarded column name (a regex) preceeded by
442// ~ or !~ (meaning include or exclude).
443// </synopsis>
444
446 public:
447 TaQLColNodeRep(const TaQLNode& expr, const String& name, const String& nameMask,
448 const String& dtype);
449 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
450 virtual void show(std::ostream& os) const override;
451 virtual void save(AipsIO& aio) const override;
452 static TaQLNode restore(AipsIO& aio);
453
458};
459
460// <summary>
461// Raw TaQL parse tree node defining a select column list.
462// </summary>
463// <use visibility=local>
464// <reviewed reviewer="" date="" tests="tTaQLNode">
465// </reviewed>
466// <prerequisite>
467// # Classes you should understand before using this one.
468// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
469// </prerequisite>
470// <synopsis>
471// This class is a TaQLNodeRep holding a select column list.
472// It also defines if the result must be distinct (unique)
473// </synopsis>
474
476 public:
477 TaQLColumnsNodeRep(Bool distinct, const TaQLMultiNode& nodes);
478 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
479 virtual void show(std::ostream& os) const override;
480 virtual void save(AipsIO& aio) const override;
481 static TaQLNode restore(AipsIO& aio);
482
485};
486
487// <summary>
488// Raw TaQL parse tree node defining a groupby list.
489// </summary>
490// <use visibility=local>
491// <reviewed reviewer="" date="" tests="tTaQLNode">
492// </reviewed>
493// <prerequisite>
494// # Classes you should understand before using this one.
495// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
496// </prerequisite>
497// <synopsis>
498// This class is a TaQLNodeRep holding a groupby list with the optional
499// ROLLUP qualifier.
500// </synopsis>
501
503 public:
504 // Do not change the values of this enum, as objects might be persistent.
505 enum Type { Normal = 0, Rollup = 1 }; // # in the future type Cube could be added
507 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
508 virtual void show(std::ostream& os) const override;
509 virtual void save(AipsIO& aio) const override;
510 static TaQLNode restore(AipsIO& aio);
511
514};
515
516// <summary>
517// Raw TaQL parse tree node defining a sort key.
518// </summary>
519// <use visibility=local>
520// <reviewed reviewer="" date="" tests="tTaQLNode">
521// </reviewed>
522// <prerequisite>
523// # Classes you should understand before using this one.
524// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
525// </prerequisite>
526// <synopsis>
527// This class is a TaQLNodeRep holding a sort key and the optional order
528// in which this key must be sorted.
529// </synopsis>
530
532 public:
533 // Do not change the values of this enum, as objects might be persistent.
534 enum Type { Ascending = 0, Descending = 1, None = 2 };
536 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
537 virtual void show(std::ostream& os) const override;
538 virtual void save(AipsIO& aio) const override;
539 static TaQLNode restore(AipsIO& aio);
540
543};
544
545// <summary>
546// Raw TaQL parse tree node defining a sort list.
547// </summary>
548// <use visibility=local>
549// <reviewed reviewer="" date="" tests="tTaQLNode">
550// </reviewed>
551// <prerequisite>
552// # Classes you should understand before using this one.
553// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
554// </prerequisite>
555// <synopsis>
556// This class is a TaQLNodeRep holding a sort list and the default order
557// for each individual sort key.
558// </synopsis>
559
561 public:
562 // Do not change the values of this enum, as objects might be persistent.
563 enum Type { Ascending = 0, Descending = 1 };
565 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
566 virtual void show(std::ostream& os) const override;
567 virtual void save(AipsIO& aio) const override;
568 static TaQLNode restore(AipsIO& aio);
569
573};
574
575// <summary>
576// Raw TaQL parse tree node defining a limit/offset expression.
577// </summary>
578// <use visibility=local>
579// <reviewed reviewer="" date="" tests="tTaQLNode">
580// </reviewed>
581// <prerequisite>
582// # Classes you should understand before using this one.
583// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
584// </prerequisite>
585// <synopsis>
586// This class is a TaQLNodeRep holding the optional expressions for the
587// LIMIT and OFFSET clause.
588// </synopsis>
589
591 public:
593 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
594 virtual void show(std::ostream& os) const override;
595 virtual void save(AipsIO& aio) const override;
596 static TaQLNode restore(AipsIO& aio);
597
600};
601
602// <summary>
603// Raw TaQL parse tree node defining a giving expression list.
604// </summary>
605// <use visibility=local>
606// <reviewed reviewer="" date="" tests="tTaQLNode">
607// </reviewed>
608// <prerequisite>
609// # Classes you should understand before using this one.
610// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
611// </prerequisite>
612// <synopsis>
613// This class is a TaQLNodeRep holding the values for a GIVING clause.
614// The value can be a table name or a list of expressions.
615// </synopsis>
616
618 public:
620 explicit TaQLGivingNodeRep(const TaQLMultiNode& exprlist);
621 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
622 virtual void show(std::ostream& os) const override;
623 virtual void save(AipsIO& aio) const override;
624 static TaQLNode restore(AipsIO& aio);
625
629};
630
631// <summary>
632// Raw TaQL parse tree node defining a column update expression.
633// </summary>
634// <use visibility=local>
635// <reviewed reviewer="" date="" tests="tTaQLNode">
636// </reviewed>
637// <prerequisite>
638// # Classes you should understand before using this one.
639// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
640// </prerequisite>
641// <synopsis>
642// This class is a TaQLNodeRep holding the values for an update expression.
643// It defines the column name and the expression for the new value.
644// Optionally an index can be defined in case the column contains array
645// values for which only some values need to be updated.
646// </synopsis>
647
649 public:
650 TaQLUpdExprNodeRep(const String& name, const String& nameMask, const TaQLNode& expr);
651 TaQLUpdExprNodeRep(const String& name, const String& nameMask, const TaQLMultiNode& indices,
652 const TaQLNode& expr);
653 TaQLUpdExprNodeRep(const String& name, const String& nameMask, const TaQLMultiNode& indices1,
654 const TaQLMultiNode& indices2, const TaQLNode& expr);
655 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
656 virtual void show(std::ostream& os) const override;
657 virtual void save(AipsIO& aio) const override;
658 static TaQLNode restore(AipsIO& aio);
659
662 TaQLMultiNode itsIndices1; // # indices or mask
663 TaQLMultiNode itsIndices2; // # mask or indices
665};
666
667// <summary>
668// Raw TaQL parse tree node defining a selection command.
669// </summary>
670// <use visibility=local>
671// <reviewed reviewer="" date="" tests="tTaQLNode">
672// </reviewed>
673// <prerequisite>
674// # Classes you should understand before using this one.
675// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
676// </prerequisite>
677// <synopsis>
678// This class is an abstract TaQLNodeRep for a selection command that can
679// also be used as a subquery.
680// It holds flags telling if and how the select command must be
681// executed when the node is visited for TaQLNodeHandler.
682// </synopsis>
683
685 public:
690 Bool getBrackets() const { return itsBrackets; }
691 Bool getNoExecute() const { return itsNoExecute; }
693 virtual void show(std::ostream& os) const override;
694
695 protected:
696 void saveSuper(AipsIO& aio) const;
698
699 private:
700 virtual void showDerived(std::ostream& os) const = 0;
702 Bool itsNoExecute; // # no execute in EXISTS operator
703 Bool itsFromExecute; // # special execute in FROM
704};
705
706// <summary>
707// Raw TaQL parse tree node defining a select command.
708// </summary>
709// <use visibility=local>
710// <reviewed reviewer="" date="" tests="tTaQLNode">
711// </reviewed>
712// <prerequisite>
713// # Classes you should understand before using this one.
714// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
715// </prerequisite>
716// <synopsis>
717// This class is a TaQLNodeRep holding the different parts of a
718// select expression.
719// It also holds flags telling if and how the select command must be
720// executed when the node is visited for TaQLNodeHandler.
721// </synopsis>
722
724 public:
725 TaQLSelectNodeRep(const TaQLNode& columns, const TaQLMultiNode& withTables, const TaQLNode& where,
726 const TaQLNode& groupby, const TaQLNode& having, const TaQLNode& sort,
727 const TaQLNode& limitoff, const TaQLNode& giving, const TaQLMultiNode& dminfo);
728 TaQLSelectNodeRep(const TaQLNode& columns, const TaQLMultiNode& withTables,
729 const TaQLMultiNode& fromTables, const TaQLMultiNode& joins,
730 const TaQLNode& where, const TaQLNode& groupby, const TaQLNode& having,
731 const TaQLNode& sort, const TaQLNode& limitoff, const TaQLNode& giving,
732 const TaQLMultiNode& dminfo);
733 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
734 virtual void showDerived(std::ostream& os) const override;
735 virtual void save(AipsIO& aio) const override;
736 static TaQLNode restore(AipsIO& aio);
737
749};
750
751// <summary>
752// Raw TaQL parse tree node defining a count command.
753// </summary>
754// <use visibility=local>
755// <reviewed reviewer="" date="" tests="tTaQLNode">
756// </reviewed>
757// <prerequisite>
758// # Classes you should understand before using this one.
759// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
760// </prerequisite>
761// <synopsis>
762// This class is a TaQLNodeRep holding the parts for a count command.
763// </synopsis>
764
766 public:
767 TaQLCountNodeRep(const TaQLMultiNode& with, const TaQLNode& columns, const TaQLMultiNode& tables,
768 const TaQLNode& where);
769 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
770 virtual void showDerived(std::ostream& os) const override;
771 virtual void save(AipsIO& aio) const override;
772 static TaQLNode restore(AipsIO& aio);
773
778};
779
780// <summary>
781// Raw TaQL parse tree node defining an update command.
782// </summary>
783// <use visibility=local>
784// <reviewed reviewer="" date="" tests="tTaQLNode">
785// </reviewed>
786// <prerequisite>
787// # Classes you should understand before using this one.
788// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
789// </prerequisite>
790// <synopsis>
791// This class is a TaQLNodeRep holding the parts for an update command.
792// The tables to be used can be defined in two parts: the main one in
793// the UPDATE clause, possible other ones in the FROM command.
794// </synopsis>
795
797 public:
799 const TaQLMultiNode& update, const TaQLMultiNode& from, const TaQLNode& where,
800 const TaQLNode& sort, const TaQLNode& limitoff);
801 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
802 virtual void show(std::ostream& os) const override;
803 virtual void save(AipsIO& aio) const override;
804 static TaQLNode restore(AipsIO& aio);
805
813};
814
815// <summary>
816// Raw TaQL parse tree node defining an insert command.
817// </summary>
818// <use visibility=local>
819// <reviewed reviewer="" date="" tests="tTaQLNode">
820// </reviewed>
821// <prerequisite>
822// # Classes you should understand before using this one.
823// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
824// </prerequisite>
825// <synopsis>
826// This class is a TaQLNodeRep holding the parts for an insert command.
827// The values cvan be a list of expressions or a subquery.
828// </synopsis>
829
831 public:
833 const TaQLMultiNode& columns, const TaQLNode& values, const TaQLNode& limit);
835 const TaQLMultiNode& insert);
836 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
837 virtual void show(std::ostream& os) const override;
838 virtual void save(AipsIO& aio) const override;
839 static TaQLNode restore(AipsIO& aio);
840
846};
847
848// <summary>
849// Raw TaQL parse tree node defining a delete command.
850// </summary>
851// <use visibility=local>
852// <reviewed reviewer="" date="" tests="tTaQLNode">
853// </reviewed>
854// <prerequisite>
855// # Classes you should understand before using this one.
856// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
857// </prerequisite>
858// <synopsis>
859// This class is a TaQLNodeRep holding the parts for a delete command.
860// </synopsis>
861
863 public:
864 TaQLDeleteNodeRep(const TaQLMultiNode& with, const TaQLMultiNode& tables, const TaQLNode& where,
865 const TaQLNode& sort, const TaQLNode& limitoff);
866 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
867 virtual void show(std::ostream& os) const override;
868 virtual void save(AipsIO& aio) const override;
869 static TaQLNode restore(AipsIO& aio);
870
876};
877
878// <summary>
879// Raw TaQL parse tree node defining a calc command.
880// </summary>
881// <use visibility=local>
882// <reviewed reviewer="" date="" tests="tTaQLNode">
883// </reviewed>
884// <prerequisite>
885// # Classes you should understand before using this one.
886// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
887// </prerequisite>
888// <synopsis>
889// This class is a TaQLNodeRep holding the parts of the calc command.
890// </synopsis>
891
893 public:
894 TaQLCalcNodeRep(const TaQLMultiNode& withTables, const TaQLMultiNode& fromTables,
895 const TaQLNode& expr, const TaQLNode& where, const TaQLNode& sort,
896 const TaQLNode& limitoff);
897 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
898 virtual void show(std::ostream& os) const override;
899 virtual void save(AipsIO& aio) const override;
900 static TaQLNode restore(AipsIO& aio);
901
908};
909
910// <summary>
911// Raw TaQL parse tree node defining a create table command.
912// </summary>
913// <use visibility=local>
914// <reviewed reviewer="" date="" tests="tTaQLNode">
915// </reviewed>
916// <prerequisite>
917// # Classes you should understand before using this one.
918// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
919// </prerequisite>
920// <synopsis>
921// This class is a TaQLNodeRep holding the parts of the create table command.
922// </synopsis>
923
925 public:
926 TaQLCreTabNodeRep(const TaQLMultiNode& with, const TaQLNode& giving,
927 const TaQLMultiNode& likeDrop, const TaQLMultiNode& cols, const TaQLNode& limit,
928 const TaQLMultiNode& dminfo);
929 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
930 virtual void showDerived(std::ostream& os) const override;
931 virtual void save(AipsIO& aio) const override;
932 static TaQLNode restore(AipsIO& aio);
933
940};
941
942// <summary>
943// Raw TaQL parse tree node defining a create column specification.
944// </summary>
945// <use visibility=local>
946// <reviewed reviewer="" date="" tests="tTaQLNode">
947// </reviewed>
948// <prerequisite>
949// # Classes you should understand before using this one.
950// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
951// </prerequisite>
952// <synopsis>
953// This class is a TaQLNodeRep holding the parts of a column specification
954// in the create table command.
955// </synopsis>
956
958 public:
959 TaQLColSpecNodeRep(const String& name, const String& likeCol, const String& dtype,
960 const TaQLMultiNode& spec);
961 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
962 virtual void show(std::ostream& os) const override;
963 virtual void save(AipsIO& aio) const override;
964 static TaQLNode restore(AipsIO& aio);
965
970};
971
972// <summary>
973// Raw TaQL parse tree node defining a record field.
974// </summary>
975// <use visibility=local>
976// <reviewed reviewer="" date="" tests="tTaQLNode">
977// </reviewed>
978// <prerequisite>
979// # Classes you should understand before using this one.
980// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
981// </prerequisite>
982// <synopsis>
983// This class is a TaQLNodeRep holding the parts of a record field.
984// </synopsis>
985
987 public:
988 TaQLRecFldNodeRep(const String& name, const TaQLNode& values, const String& dtype);
990 TaQLRecFldNodeRep(const String& name, const String& fromName, const String& dtype);
991 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
992 virtual void show(std::ostream& os) const override;
993 virtual void save(AipsIO& aio) const override;
994 static TaQLNode restore(AipsIO& aio);
995
1000};
1001
1002// <summary>
1003// Raw TaQL parse tree node defining a unit.
1004// </summary>
1005// <use visibility=local>
1006// <reviewed reviewer="" date="" tests="tTaQLNode">
1007// </reviewed>
1008// <prerequisite>
1009// # Classes you should understand before using this one.
1010// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1011// </prerequisite>
1012// <synopsis>
1013// This class is a TaQLNodeRep holding the parts of a record field.
1014// </synopsis>
1015
1017 public:
1018 TaQLUnitNodeRep(const String& unit, const TaQLNode& child);
1019 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1020 virtual void show(std::ostream& os) const override;
1021 virtual void save(AipsIO& aio) const override;
1023
1026};
1027
1028// <summary>
1029// Raw TaQL parse tree node defining an alter table command.
1030// </summary>
1031// <use visibility=local>
1032// <reviewed reviewer="" date="" tests="tTaQLNode">
1033// </reviewed>
1034// <prerequisite>
1035// # Classes you should understand before using this one.
1036// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1037// </prerequisite>
1038// <synopsis>
1039// This class is a TaQLNodeRep holding the parts of the alter table command.
1040// </synopsis>
1041
1043 public:
1044 TaQLAltTabNodeRep(const TaQLMultiNode& with, const TaQLNode& table, const TaQLMultiNode& from,
1045 const TaQLMultiNode& commands);
1046 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1047 virtual void showDerived(std::ostream& os) const override;
1048 virtual void save(AipsIO& aio) const override;
1050
1055};
1056
1057// <summary>
1058// Raw TaQL parse tree node defining an alter table add column command.
1059// </summary>
1060// <use visibility=local>
1061// <reviewed reviewer="" date="" tests="tTaQLNode">
1062// </reviewed>
1063// <prerequisite>
1064// # Classes you should understand before using this one.
1065// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1066// </prerequisite>
1067// <synopsis>
1068// This class is a TaQLNodeRep holding the parts of the add column subcommand.
1069// </synopsis>
1070
1072 public:
1073 TaQLAddColNodeRep(const TaQLMultiNode& cols, const TaQLMultiNode& dminfo);
1074 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1075 virtual void show(std::ostream& os) const override;
1076 virtual void save(AipsIO& aio) const override;
1078
1081};
1082
1083// <summary>
1084// Raw TaQL parse tree node defining an alter table rename or drop command.
1085// </summary>
1086// <use visibility=local>
1087// <reviewed reviewer="" date="" tests="tTaQLNode">
1088// </reviewed>
1089// <prerequisite>
1090// # Classes you should understand before using this one.
1091// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1092// </prerequisite>
1093// <synopsis>
1094// This class is a TaQLNodeRep holding the parts of the rename or drop subcommand.
1095// </synopsis>
1096
1098 public:
1100 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1101 virtual void show(std::ostream& os) const override;
1102 virtual void save(AipsIO& aio) const override;
1104
1107};
1108
1109// <summary>
1110// Raw TaQL parse tree node defining an alter table set keyword command.
1111// </summary>
1112// <use visibility=local>
1113// <reviewed reviewer="" date="" tests="tTaQLNode">
1114// </reviewed>
1115// <prerequisite>
1116// # Classes you should understand before using this one.
1117// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1118// </prerequisite>
1119// <synopsis>
1120// This class is a TaQLNodeRep holding the parts of the set keyword subcommand.
1121// </synopsis>
1122
1124 public:
1126 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1127 virtual void show(std::ostream& os) const override;
1128 virtual void save(AipsIO& aio) const override;
1130
1132};
1133
1134// <summary>
1135// Raw TaQL parse tree node defining an alter table add rows command.
1136// </summary>
1137// <use visibility=local>
1138// <reviewed reviewer="" date="" tests="tTaQLNode">
1139// </reviewed>
1140// <prerequisite>
1141// # Classes you should understand before using this one.
1142// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1143// </prerequisite>
1144// <synopsis>
1145// This class is a TaQLNodeRep holding the parts of the add rows subcommand.
1146// </synopsis>
1147
1149 public:
1151 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1152 virtual void show(std::ostream& os) const override;
1153 virtual void save(AipsIO& aio) const override;
1155
1157};
1158
1159// <summary>
1160// Raw TaQL parse tree node defining an alter table command.
1161// </summary>
1162// <use visibility=local>
1163// <reviewed reviewer="" date="" tests="tTaQLNode">
1164// </reviewed>
1165// <prerequisite>
1166// # Classes you should understand before using this one.
1167// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1168// </prerequisite>
1169// <synopsis>
1170// This class is a TaQLNodeRep holding the parts of the alter table command.
1171// </synopsis>
1172
1174 public:
1175 TaQLConcTabNodeRep(const String& tableName, const TaQLMultiNode& tables,
1176 const TaQLMultiNode& subtableNames);
1177 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1178 virtual void showDerived(std::ostream& os) const override;
1179 virtual void save(AipsIO& aio) const override;
1181
1185};
1186
1187// <summary>
1188// Raw TaQL parse tree node defining a show command.
1189// </summary>
1190// <use visibility=local>
1191// <reviewed reviewer="" date="" tests="tTaQLNode">
1192// </reviewed>
1193// <prerequisite>
1194// # Classes you should understand before using this one.
1195// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1196// </prerequisite>
1197// <synopsis>
1198// This class is a TaQLNodeRep holding the parts of the show command.
1199// </synopsis>
1200
1202 public:
1204 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1205 virtual void show(std::ostream& os) const override;
1206 virtual void save(AipsIO& aio) const override;
1208
1210};
1211
1212// <summary>
1213// Raw TaQL parse tree node defining an alter table copy column command.
1214// </summary>
1215// <use visibility=local>
1216// <reviewed reviewer="" date="" tests="tTaQLNode">
1217// </reviewed>
1218// <prerequisite>
1219// # Classes you should understand before using this one.
1220// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1221// </prerequisite>
1222// <synopsis>
1223// This class is a TaQLNodeRep holding the parts of the copy column subcommand.
1224// </synopsis>
1225
1227 public:
1228 TaQLCopyColNodeRep(const TaQLMultiNode& names, const TaQLMultiNode& dminfo);
1229 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1230 virtual void show(std::ostream& os) const override;
1231 virtual void save(AipsIO& aio) const override;
1233
1236};
1237
1238// <summary>
1239// Raw TaQL parse tree node defining a DROP TABLE command.
1240// </summary>
1241// <use visibility=local>
1242// <reviewed reviewer="" date="" tests="tTaQLNode">
1243// </reviewed>
1244// <prerequisite>
1245// # Classes you should understand before using this one.
1246// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1247// </prerequisite>
1248// <synopsis>
1249// This class is a TaQLNodeRep holding the tables of a drop table command.
1250// </synopsis>
1251
1253 public:
1255 virtual TaQLNodeResult visit(TaQLNodeVisitor&) const override;
1256 virtual void show(std::ostream& os) const override;
1257 virtual void save(AipsIO& aio) const override;
1259
1262};
1263
1264} // namespace casacore
1265
1266#endif
String: the storage and methods of handling collections of characters.
Definition String.h:355
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLAddColNodeRep(const TaQLMultiNode &cols, const TaQLMultiNode &dminfo)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
virtual void save(AipsIO &aio) const override
Save the object.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
TaQLAddRowNodeRep(const TaQLNode &nrow)
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLAltTabNodeRep(const TaQLMultiNode &with, const TaQLNode &table, const TaQLMultiNode &from, const TaQLMultiNode &commands)
virtual void showDerived(std::ostream &os) const override
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
TaQLBinaryNodeRep(Type type, const TaQLNode &left, const TaQLNode &right)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
Type
Do not change the values of this enum, as objects might be persistent.
static TaQLBinaryNodeRep * handleRegex(const TaQLNode &left, const TaQLRegexNode &regex)
Handle a comparison wih a regex.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const override
Save the object.
TaQLCalcNodeRep(const TaQLMultiNode &withTables, const TaQLMultiNode &fromTables, const TaQLNode &expr, const TaQLNode &where, const TaQLNode &sort, const TaQLNode &limitoff)
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
TaQLColNodeRep(const TaQLNode &expr, const String &name, const String &nameMask, const String &dtype)
virtual void save(AipsIO &aio) const override
Save the object.
TaQLColSpecNodeRep(const String &name, const String &likeCol, const String &dtype, const TaQLMultiNode &spec)
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLColumnsNodeRep(Bool distinct, const TaQLMultiNode &nodes)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
TaQLConcTabNodeRep(const String &tableName, const TaQLMultiNode &tables, const TaQLMultiNode &subtableNames)
virtual void showDerived(std::ostream &os) const override
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
Type
Do not change the values of this enum, as objects might be persistent.
Definition TaQLNodeDer.h:61
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLConstNodeRep(const String &value, Bool isTableName=False)
const String & getString() const
TaQLConstNodeRep(Int64 value, const String &subTableName)
const String & getUnit() const
Definition TaQLNodeDer.h:72
TaQLConstNodeRep(Double value)
TaQLConstNodeRep(const MVTime &value)
TaQLConstNodeRep(DComplex value)
TaQLConstNodeRep(Double value, const String &unit)
virtual void save(AipsIO &aio) const override
Save the object.
TaQLCopyColNodeRep(const TaQLMultiNode &names, const TaQLMultiNode &dminfo)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual void showDerived(std::ostream &os) const override
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
TaQLCountNodeRep(const TaQLMultiNode &with, const TaQLNode &columns, const TaQLMultiNode &tables, const TaQLNode &where)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const override
Save the object.
virtual void showDerived(std::ostream &os) const override
static TaQLNode restore(AipsIO &aio)
TaQLCreTabNodeRep(const TaQLMultiNode &with, const TaQLNode &giving, const TaQLMultiNode &likeDrop, const TaQLMultiNode &cols, const TaQLNode &limit, const TaQLMultiNode &dminfo)
virtual void save(AipsIO &aio) const override
Save the object.
TaQLDeleteNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables, const TaQLNode &where, const TaQLNode &sort, const TaQLNode &limitoff)
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLDropTabNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
TaQLFuncNodeRep(const String &name, const TaQLMultiNode &args)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLFuncNodeRep(const String &name)
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLGivingNodeRep(const TaQLMultiNode &exprlist)
static TaQLNode restore(AipsIO &aio)
TaQLGivingNodeRep(const String &name, const TaQLMultiNode &type)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLGroupNodeRep(Type type, const TaQLMultiNode &nodes)
Type
Do not change the values of this enum, as objects might be persistent.
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
TaQLIndexNodeRep(const TaQLNode &start, const TaQLNode &end, const TaQLNode &incr)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLInsertNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables, const TaQLMultiNode &columns, const TaQLNode &values, const TaQLNode &limit)
TaQLInsertNodeRep(const TaQLMultiNode &with, const TaQLMultiNode &tables, const TaQLMultiNode &insert)
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
static TaQLNode restore(AipsIO &aio)
TaQLJoinNodeRep(const TaQLMultiNode &tables, const TaQLNode &condition)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLKeyColNodeRep(const String &name, const String &nameMask=String())
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const override
Save the object.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLLimitOffNodeRep(const TaQLNode &limit, const TaQLNode &offset)
void setSeparator(uInt incr, const String &sep)
TaQLMultiNodeRep(const String &prefix, const String &postfix, Bool isSetOrArray=False)
void setSeparator(const String &sep)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
static TaQLMultiNode restore(AipsIO &aio)
TaQLMultiNodeRep(Bool isSetOrArray=False)
void setPPFix(const String &prefix, const String &postfix)
virtual void save(AipsIO &aio) const override
Save the object.
void add(const TaQLNode &node)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
const std::vector< TaQLNode > & getNodes() const
std::vector< TaQLNode > itsNodes
Envelope class for a node containing a list of nodes.
Definition TaQLNode.h:215
TaQLNodeRep(int nodeType)
Constructor for derived classes specifying the type.
char nodeType() const
Get the node type of the derived class.
Envelope class to hold the result of a visit to the node tree.
virtual void showDerived(std::ostream &os) const =0
void restoreSuper(AipsIO &aio)
void saveSuper(AipsIO &aio) const
TaQLQueryNodeRep(int nodeType)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
TaQLRangeNodeRep(const TaQLNode &end, Bool rightClosed)
TaQLRangeNodeRep(Bool leftClosed, const TaQLNode &start, const TaQLNode &end, Bool rightClosed, Bool asMidWidth=False)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLRangeNodeRep(Bool leftClosed, const TaQLNode &start)
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLRangeNodeRep(const TaQLNode &mid, const TaQLNode &width)
static TaQLNode restore(AipsIO &aio)
TaQLRecFldNodeRep(const String &name, const TaQLRecFldNodeRep &)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const override
Save the object.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLRecFldNodeRep(const String &name, const TaQLNode &values, const String &dtype)
TaQLRecFldNodeRep(const String &name, const String &fromName, const String &dtype)
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
TaQLRegexNodeRep(const String &value)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLRegexNodeRep(const String &value, Bool caseInsensitive, Bool negate, Bool ignoreBlanks, Int maxDistance)
Envelope class for a node containing a constant regex value.
Definition TaQLNode.h:193
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLRenDropNodeRep(Int type, const TaQLMultiNode &cols)
virtual void save(AipsIO &aio) const override
Save the object.
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)
virtual void showDerived(std::ostream &os) const override
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLSelectNodeRep(const TaQLNode &columns, const TaQLMultiNode &withTables, const TaQLMultiNode &fromTables, const TaQLMultiNode &joins, const TaQLNode &where, const TaQLNode &groupby, const TaQLNode &having, const TaQLNode &sort, const TaQLNode &limitoff, const TaQLNode &giving, const TaQLMultiNode &dminfo)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
TaQLSetKeyNodeRep(const TaQLMultiNode &keyvals)
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLShowNodeRep(const TaQLMultiNode &names)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
TaQLSortKeyNodeRep(Type type, const TaQLNode &child)
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
Type
Do not change the values of this enum, as objects might be persistent.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void save(AipsIO &aio) const override
Save the object.
Type
Do not change the values of this enum, as objects might be persistent.
TaQLSortNodeRep(Bool unique, Type type, const TaQLMultiNode &keys)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLTableNodeRep(const TaQLNode &table, const String &alias)
Type
Do not change the values of this enum, as objects might be persistent.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
virtual void save(AipsIO &aio) const override
Save the object.
TaQLUnaryNodeRep(Type type, const TaQLNode &child)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
virtual void show(std::ostream &os) const override
Print the object in an ostream.
static TaQLNode restore(AipsIO &aio)
virtual void save(AipsIO &aio) const override
Save the object.
TaQLUnitNodeRep(const String &unit, const TaQLNode &child)
TaQLUpdExprNodeRep(const String &name, const String &nameMask, const TaQLMultiNode &indices, const TaQLNode &expr)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
TaQLUpdExprNodeRep(const String &name, const String &nameMask, const TaQLMultiNode &indices1, const TaQLMultiNode &indices2, const TaQLNode &expr)
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
virtual void show(std::ostream &os) const override
Print the object in an ostream.
TaQLUpdExprNodeRep(const String &name, const String &nameMask, const TaQLNode &expr)
virtual void save(AipsIO &aio) const override
Save the object.
static TaQLNode restore(AipsIO &aio)
virtual TaQLNodeResult visit(TaQLNodeVisitor &) const override
Visit a node for tree traversal.
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 override
Print the object in an ostream.
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition mainpage.dox:28
const Bool False
Definition aipstype.h:42
int offset(int, int) const
compute a linear offset from array indicies
unsigned int uInt
Definition aipstype.h:49
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size).
Definition aipsxtype.h:36
String name() const
Return the name of the field.
TableExprNode regex(const TableExprNode &node)
Functions for regular expression matching and pattern matching.
Definition ExprNode.h:1302
int Int
Definition aipstype.h:48
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
const Bool True
Definition aipstype.h:41
NewDelAllocator< T > NewDelAllocator< T >::value
Definition Allocator.h:360
double Double
Definition aipstype.h:53
iterator end()
Definition Block.h:601