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
43// <summary>
44// Raw TaQL parse tree node defining a constant value.
45// </summary>
46// <use visibility=local>
47// <reviewed reviewer="" date="" tests="tTaQLNode">
48// </reviewed>
49// <prerequisite>
50//# Classes you should understand before using this one.
51// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
52// </prerequisite>
53// <synopsis>
54// This class is a TaQLNodeRep holding a constant expression or a table name.
55// The types supported are Bool, Int, Double, DComplex, String, and MVTime.
56// Note that a keyword or column name is represented by TaQLKeyColNodeRep.
57// </synopsis>
58
60{
61public:
62 // Do not change the values of this enum, as objects might be persistent.
63 enum Type {CTBool =0,
68 CTTime =5};
72 explicit TaQLConstNodeRep (Double value, const String& unit);
73 explicit TaQLConstNodeRep (DComplex value);
74 explicit TaQLConstNodeRep (const String& value, Bool isTableName=False);
75 explicit TaQLConstNodeRep (const MVTime& value);
76 explicit TaQLConstNodeRep (Int64 value, const String& subTableName);
79 const String& getString() const;
80 const String& getUnit() const
81 { return itsUnit; }
82 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
83 virtual void show (std::ostream& os) const override;
84 virtual void save (AipsIO& aio) const override;
85 static TaQLNode restore (AipsIO& aio);
86
92 DComplex itsCValue;
96};
97
98
99// <summary>
100// Raw TaQL parse tree node defining a constant regex value.
101// </summary>
102// <use visibility=local>
103// <reviewed reviewer="" date="" tests="tTaQLNode">
104// </reviewed>
105// <prerequisite>
106//# Classes you should understand before using this one.
107// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
108// </prerequisite>
109// <synopsis>
110// This class is a TaQLNodeRep holding a constant regex/pattern value.
111// Part of the regex are the delimiters (like p//).
112// It also holds if the regex is case-insensitive and if a match or no match
113// operator is given.
114// </synopsis>
115
117{
118public:
119 explicit TaQLRegexNodeRep (const String& value);
120 TaQLRegexNodeRep (const String& value, Bool caseInsensitive, Bool negate,
121 Bool ignoreBlanks, Int maxDistance);
122 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
123 virtual void show (std::ostream& os) const override;
124 virtual void save (AipsIO& aio) const override;
125 static TaQLNode restore (AipsIO& aio);
126
129 Bool itsNegate; //# True means !~
130 //# The following members are only used for distance.
133};
134
135
136// <summary>
137// Raw TaQL parse tree node defining a unary operator.
138// </summary>
139// <use visibility=local>
140// <reviewed reviewer="" date="" tests="tTaQLNode">
141// </reviewed>
142// <prerequisite>
143//# Classes you should understand before using this one.
144// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
145// </prerequisite>
146// <synopsis>
147// This class is a TaQLNodeRep holding a unary operator and operand.
148// The operators supported are -, ~, NOT, EXISTS, and NOT EXISTS.
149// Note the unary operator + is superfluous and is ignored by the parser.
150// </synopsis>
151
153{
154public:
155 // Do not change the values of this enum, as objects might be persistent.
161 TaQLUnaryNodeRep (Type type, const TaQLNode& child);
162 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
163 virtual void show (std::ostream& os) const override;
164 virtual void save (AipsIO& aio) const override;
165 static TaQLNode restore (AipsIO& aio);
166
169};
170
171
172// <summary>
173// Raw TaQL parse tree node defining a binary operator.
174// </summary>
175// <use visibility=local>
176// <reviewed reviewer="" date="" tests="tTaQLNode">
177// </reviewed>
178// <prerequisite>
179//# Classes you should understand before using this one.
180// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
181// </prerequisite>
182// <synopsis>
183// This class is a TaQLNodeRep holding a binary operator and operands.
184// All standard mathematical (including % and ^), relational, bit, and logical
185// operators are supported. Furthermore operator IN and the INDEX operator
186// (for indexing in an array) are supported.
187// </synopsis>
188
190{
191public:
192 // Do not change the values of this enum, as objects might be persistent.
193 enum Type {B_PLUS =0,
203 B_LT =10,
204 B_LE =11,
205 B_OR =12,
206 B_AND =13,
207 B_IN =14,
215 TaQLBinaryNodeRep (Type type, const TaQLNode& left, const TaQLNode& right);
216 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
217 virtual void show (std::ostream& os) const override;
218 virtual void save (AipsIO& aio) const override;
219 static TaQLNode restore (AipsIO& aio);
220 // Handle a comparison wih a regex. The operator (~ or !~) is extracted
221 // from the regex.
223 const TaQLRegexNode& regex);
224
228};
229
230
231// <summary>
232// Raw TaQL parse tree node defining a list of nodes.
233// </summary>
234// <use visibility=local>
235// <reviewed reviewer="" date="" tests="tTaQLNode">
236// </reviewed>
237// <prerequisite>
238//# Classes you should understand before using this one.
239// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
240// </prerequisite>
241// <synopsis>
242// This class is a TaQLNodeRep holding a list of heterogeneous nodes.
243// </synopsis>
244
246{
247public:
248 explicit TaQLMultiNodeRep (Bool isSetOrArray=False);
249 TaQLMultiNodeRep(const String& prefix, const String& postfix,
250 Bool isSetOrArray=False);
253 void setPPFix (const String& prefix, const String& postfix)
254 { itsPrefix = prefix; itsPostfix = postfix; }
255 void setSeparator (const String& sep)
256 { itsSep = sep; }
257 void setSeparator (uInt incr, const String& sep)
258 { itsIncr = incr; itsSep2 = sep; }
259 void add (const TaQLNode& node)
260 { itsNodes.push_back (node); }
261 const std::vector<TaQLNode>& getNodes() const
262 { return itsNodes; }
263 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
264 virtual void show (std::ostream& os) const override;
265 virtual void save (AipsIO& aio) const override;
267
268 std::vector<TaQLNode> itsNodes;
275};
276
277
278// <summary>
279// Raw TaQL parse tree node defining a function.
280// </summary>
281// <use visibility=local>
282// <reviewed reviewer="" date="" tests="tTaQLNode">
283// </reviewed>
284// <prerequisite>
285//# Classes you should understand before using this one.
286// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
287// </prerequisite>
288// <synopsis>
289// This class is a TaQLNodeRep holding a function name and its arguments.
290// </synopsis>
291
293{
294public:
295 TaQLFuncNodeRep (const String& name);
296 TaQLFuncNodeRep (const String& name, const TaQLMultiNode& args);
297 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
298 virtual void show (std::ostream& os) const override;
299 virtual void save (AipsIO& aio) const override;
300 static TaQLNode restore (AipsIO& aio);
301
304};
305
306
307// <summary>
308// Raw TaQL parse tree node defining a range.
309// </summary>
310// <use visibility=local>
311// <reviewed reviewer="" date="" tests="tTaQLNode">
312// </reviewed>
313// <prerequisite>
314//# Classes you should understand before using this one.
315// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
316// </prerequisite>
317// <synopsis>
318// This class is a TaQLNodeRep holding the optional start and end values
319// of a range (i.e. an interval) and flags if the range is open or closed.
320// </synopsis>
321
323{
324public:
325 TaQLRangeNodeRep (Bool leftClosed, const TaQLNode& start,
326 const TaQLNode& end, Bool rightClosed,
327 Bool asMidWidth=False);
328 TaQLRangeNodeRep (Bool leftClosed, const TaQLNode& start);
329 TaQLRangeNodeRep (const TaQLNode& end, Bool rightClosed);
330 TaQLRangeNodeRep (const TaQLNode& mid, const TaQLNode& width);
331 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
332 virtual void show (std::ostream& os) const override;
333 virtual void save (AipsIO& aio) const override;
334 static TaQLNode restore (AipsIO& aio);
335
341};
342
343
344// <summary>
345// Raw TaQL parse tree node defining an index in a array.
346// </summary>
347// <use visibility=local>
348// <reviewed reviewer="" date="" tests="tTaQLNode">
349// </reviewed>
350// <prerequisite>
351//# Classes you should understand before using this one.
352// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
353// </prerequisite>
354// <synopsis>
355// This class is a TaQLNodeRep holding the optional start, end, and incr
356// values of an index in an array.
357// </synopsis>
358
360{
361public:
362 TaQLIndexNodeRep (const TaQLNode& start, const TaQLNode& end,
363 const TaQLNode& incr);
364 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
365 virtual void show (std::ostream& os) const override;
366 virtual void save (AipsIO& aio) const override;
367 static TaQLNode restore (AipsIO& aio);
368
372};
373
374
375// <summary>
376// Raw TaQL parse tree node defining a join operation.
377// </summary>
378// <use visibility=local>
379// <reviewed reviewer="" date="" tests="tTaQLNode">
380// </reviewed>
381// <prerequisite>
382//# Classes you should understand before using this one.
383// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
384// </prerequisite>
385// <synopsis>
386// This class is a TaQLNodeRep holding the expressions of a join operation.
387// This is, however, a placeholder and not implemented yet.
388// </synopsis>
389
391{
392public:
393 TaQLJoinNodeRep (const TaQLMultiNode& tables, const TaQLNode& condition);
394 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
395 virtual void show (std::ostream& os) const override;
396 virtual void save (AipsIO& aio) const override;
397 static TaQLNode restore (AipsIO& aio);
398
401};
402
403
404// <summary>
405// Raw TaQL parse tree node defining a keyword or column name.
406// </summary>
407// <use visibility=local>
408// <reviewed reviewer="" date="" tests="tTaQLNode">
409// </reviewed>
410// <prerequisite>
411//# Classes you should understand before using this one.
412// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
413// </prerequisite>
414// <synopsis>
415// This class is a TaQLNodeRep holding the name of a keyword or column.
416// The name can contain . and :: delimiters for scoping.
417// </synopsis>
418
420{
421public:
422 TaQLKeyColNodeRep (const String& name, const String& nameMask = String());
423 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
424 virtual void show (std::ostream& os) const override;
425 virtual void save (AipsIO& aio) const override;
426 static TaQLNode restore (AipsIO& aio);
427
430};
431
432
433// <summary>
434// Raw TaQL parse tree node defining a table.
435// </summary>
436// <use visibility=local>
437// <reviewed reviewer="" date="" tests="tTaQLNode">
438// </reviewed>
439// <prerequisite>
440//# Classes you should understand before using this one.
441// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
442// </prerequisite>
443// <synopsis>
444// This class is a TaQLNodeRep holding the info defining a table.
445// It can be a constant value holding a name or it can be a subquery.
446// Furthermore the alias of the table is defined (which can be empty).
447// </synopsis>
448
450{
451public:
452 TaQLTableNodeRep (const TaQLNode& table, const String& alias);
453 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
454 virtual void show (std::ostream& os) const override;
455 virtual void save (AipsIO& aio) const override;
456 static TaQLNode restore (AipsIO& aio);
457
460};
461
462
463// <summary>
464// Raw TaQL parse tree node defining a select column expression.
465// </summary>
466// <use visibility=local>
467// <reviewed reviewer="" date="" tests="tTaQLNode">
468// </reviewed>
469// <prerequisite>
470//# Classes you should understand before using this one.
471// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
472// </prerequisite>
473// <synopsis>
474// This class is a TaQLNodeRep holding a column expression in the
475// column list of the select clause.
476// A new column name and data type can be defined for the column (expression).
477// The expression can be a wildcarded column name (a regex) preceeded by
478// ~ or !~ (meaning include or exclude).
479// </synopsis>
480
482{
483public:
484 TaQLColNodeRep (const TaQLNode& expr, const String& name,
485 const String& nameMask, const String& dtype);
486 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
487 virtual void show (std::ostream& os) const override;
488 virtual void save (AipsIO& aio) const override;
489 static TaQLNode restore (AipsIO& aio);
490
495};
496
497
498// <summary>
499// Raw TaQL parse tree node defining a select column list.
500// </summary>
501// <use visibility=local>
502// <reviewed reviewer="" date="" tests="tTaQLNode">
503// </reviewed>
504// <prerequisite>
505//# Classes you should understand before using this one.
506// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
507// </prerequisite>
508// <synopsis>
509// This class is a TaQLNodeRep holding a select column list.
510// It also defines if the result must be distinct (unique)
511// </synopsis>
512
514{
515public:
516 TaQLColumnsNodeRep (Bool distinct, const TaQLMultiNode& nodes);
517 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
518 virtual void show (std::ostream& os) const override;
519 virtual void save (AipsIO& aio) const override;
520 static TaQLNode restore (AipsIO& aio);
521
524};
525
526
527// <summary>
528// Raw TaQL parse tree node defining a groupby list.
529// </summary>
530// <use visibility=local>
531// <reviewed reviewer="" date="" tests="tTaQLNode">
532// </reviewed>
533// <prerequisite>
534//# Classes you should understand before using this one.
535// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
536// </prerequisite>
537// <synopsis>
538// This class is a TaQLNodeRep holding a groupby list with the optional
539// ROLLUP qualifier.
540// </synopsis>
541
543{
544public:
545 // Do not change the values of this enum, as objects might be persistent.
546 enum Type {Normal=0,
547 Rollup=1}; //# in the future type Cube could be added
548 TaQLGroupNodeRep (Type type, const TaQLMultiNode& nodes);
549 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
550 virtual void show (std::ostream& os) const override;
551 virtual void save (AipsIO& aio) const override;
552 static TaQLNode restore (AipsIO& aio);
553
556};
557
558
559// <summary>
560// Raw TaQL parse tree node defining a sort key.
561// </summary>
562// <use visibility=local>
563// <reviewed reviewer="" date="" tests="tTaQLNode">
564// </reviewed>
565// <prerequisite>
566//# Classes you should understand before using this one.
567// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
568// </prerequisite>
569// <synopsis>
570// This class is a TaQLNodeRep holding a sort key and the optional order
571// in which this key must be sorted.
572// </synopsis>
573
575{
576public:
577 // Do not change the values of this enum, as objects might be persistent.
578 enum Type {Ascending =0,
580 None =2};
581 TaQLSortKeyNodeRep (Type type, const TaQLNode& child);
582 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
583 virtual void show (std::ostream& os) const override;
584 virtual void save (AipsIO& aio) const override;
585 static TaQLNode restore (AipsIO& aio);
586
589};
590
591
592// <summary>
593// Raw TaQL parse tree node defining a sort list.
594// </summary>
595// <use visibility=local>
596// <reviewed reviewer="" date="" tests="tTaQLNode">
597// </reviewed>
598// <prerequisite>
599//# Classes you should understand before using this one.
600// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
601// </prerequisite>
602// <synopsis>
603// This class is a TaQLNodeRep holding a sort list and the default order
604// for each individual sort key.
605// </synopsis>
606
608{
609public:
610 // Do not change the values of this enum, as objects might be persistent.
611 enum Type {Ascending =0,
613 TaQLSortNodeRep (Bool unique, Type type, const TaQLMultiNode& keys);
614 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
615 virtual void show (std::ostream& os) const override;
616 virtual void save (AipsIO& aio) const override;
617 static TaQLNode restore (AipsIO& aio);
618
622};
623
624
625// <summary>
626// Raw TaQL parse tree node defining a limit/offset expression.
627// </summary>
628// <use visibility=local>
629// <reviewed reviewer="" date="" tests="tTaQLNode">
630// </reviewed>
631// <prerequisite>
632//# Classes you should understand before using this one.
633// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
634// </prerequisite>
635// <synopsis>
636// This class is a TaQLNodeRep holding the optional expressions for the
637// LIMIT and OFFSET clause.
638// </synopsis>
639
641{
642public:
643 TaQLLimitOffNodeRep (const TaQLNode& limit, const TaQLNode& offset);
644 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
645 virtual void show (std::ostream& os) const override;
646 virtual void save (AipsIO& aio) const override;
647 static TaQLNode restore (AipsIO& aio);
648
651};
652
653
654// <summary>
655// Raw TaQL parse tree node defining a giving expression list.
656// </summary>
657// <use visibility=local>
658// <reviewed reviewer="" date="" tests="tTaQLNode">
659// </reviewed>
660// <prerequisite>
661//# Classes you should understand before using this one.
662// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
663// </prerequisite>
664// <synopsis>
665// This class is a TaQLNodeRep holding the values for a GIVING clause.
666// The value can be a table name or a list of expressions.
667// </synopsis>
668
670{
671public:
672 explicit TaQLGivingNodeRep (const String& name, const TaQLMultiNode& type);
673 explicit TaQLGivingNodeRep (const TaQLMultiNode& exprlist);
674 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
675 virtual void show (std::ostream& os) const override;
676 virtual void save (AipsIO& aio) const override;
677 static TaQLNode restore (AipsIO& aio);
678
682};
683
684
685// <summary>
686// Raw TaQL parse tree node defining a column update expression.
687// </summary>
688// <use visibility=local>
689// <reviewed reviewer="" date="" tests="tTaQLNode">
690// </reviewed>
691// <prerequisite>
692//# Classes you should understand before using this one.
693// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
694// </prerequisite>
695// <synopsis>
696// This class is a TaQLNodeRep holding the values for an update expression.
697// It defines the column name and the expression for the new value.
698// Optionally an index can be defined in case the column contains array
699// values for which only some values need to be updated.
700// </synopsis>
701
703{
704public:
705 TaQLUpdExprNodeRep (const String& name, const String& nameMask,
706 const TaQLNode& expr);
707 TaQLUpdExprNodeRep (const String& name, const String& nameMask,
708 const TaQLMultiNode& indices,
709 const TaQLNode& expr);
710 TaQLUpdExprNodeRep (const String& name, const String& nameMask,
711 const TaQLMultiNode& indices1,
712 const TaQLMultiNode& indices2,
713 const TaQLNode& expr);
714 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
715 virtual void show (std::ostream& os) const override;
716 virtual void save (AipsIO& aio) const override;
717 static TaQLNode restore (AipsIO& aio);
718
721 TaQLMultiNode itsIndices1; //# indices or mask
722 TaQLMultiNode itsIndices2; //# mask or indices
724};
725
726
727// <summary>
728// Raw TaQL parse tree node defining a selection command.
729// </summary>
730// <use visibility=local>
731// <reviewed reviewer="" date="" tests="tTaQLNode">
732// </reviewed>
733// <prerequisite>
734//# Classes you should understand before using this one.
735// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
736// </prerequisite>
737// <synopsis>
738// This class is an abstract TaQLNodeRep for a selection command that can
739// also be used as a subquery.
740// It holds flags telling if and how the select command must be
741// executed when the node is visited for TaQLNodeHandler.
742// </synopsis>
743
745{
746public:
749 { itsBrackets = True; }
751 { itsNoExecute = True; }
755 { return itsBrackets; }
757 { return itsNoExecute; }
759 { return itsFromExecute; }
760 virtual void show (std::ostream& os) const override;
761protected:
762 void saveSuper (AipsIO& aio) const;
763 void restoreSuper (AipsIO& aio);
764private:
765 virtual void showDerived (std::ostream& os) const = 0;
767 Bool itsNoExecute; //# no execute in EXISTS operator
768 Bool itsFromExecute; //# special execute in FROM
769};
770
771
772// <summary>
773// Raw TaQL parse tree node defining a select command.
774// </summary>
775// <use visibility=local>
776// <reviewed reviewer="" date="" tests="tTaQLNode">
777// </reviewed>
778// <prerequisite>
779//# Classes you should understand before using this one.
780// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
781// </prerequisite>
782// <synopsis>
783// This class is a TaQLNodeRep holding the different parts of a
784// select expression.
785// It also holds flags telling if and how the select command must be
786// executed when the node is visited for TaQLNodeHandler.
787// </synopsis>
788
790{
791public:
793 const TaQLMultiNode& withTables, const TaQLNode& where,
794 const TaQLNode& groupby, const TaQLNode& having,
795 const TaQLNode& sort, const TaQLNode& limitoff,
796 const TaQLNode& giving, const TaQLMultiNode& dminfo);
798 const TaQLMultiNode& withTables, const TaQLMultiNode& fromTables,
799 const TaQLMultiNode& joins, const TaQLNode& where,
800 const TaQLNode& groupby, const TaQLNode& having,
801 const TaQLNode& sort, const TaQLNode& limitoff,
802 const TaQLNode& giving, const TaQLMultiNode& dminfo);
803 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
804 virtual void showDerived (std::ostream& os) const override;
805 virtual void save (AipsIO& aio) const override;
806 static TaQLNode restore (AipsIO& aio);
807
819};
820
821
822// <summary>
823// Raw TaQL parse tree node defining a count command.
824// </summary>
825// <use visibility=local>
826// <reviewed reviewer="" date="" tests="tTaQLNode">
827// </reviewed>
828// <prerequisite>
829//# Classes you should understand before using this one.
830// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
831// </prerequisite>
832// <synopsis>
833// This class is a TaQLNodeRep holding the parts for a count command.
834// </synopsis>
835
837{
838public:
839 TaQLCountNodeRep (const TaQLMultiNode& with, const TaQLNode& columns,
840 const TaQLMultiNode& tables, const TaQLNode& where);
841 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
842 virtual void showDerived (std::ostream& os) const override;
843 virtual void save (AipsIO& aio) const override;
844 static TaQLNode restore (AipsIO& aio);
845
850};
851
852
853// <summary>
854// Raw TaQL parse tree node defining an update command.
855// </summary>
856// <use visibility=local>
857// <reviewed reviewer="" date="" tests="tTaQLNode">
858// </reviewed>
859// <prerequisite>
860//# Classes you should understand before using this one.
861// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
862// </prerequisite>
863// <synopsis>
864// This class is a TaQLNodeRep holding the parts for an update command.
865// The tables to be used can be defined in two parts: the main one in
866// the UPDATE clause, possible other ones in the FROM command.
867// </synopsis>
868
870{
871public:
873 const TaQLMultiNode& tables, const TaQLMultiNode& update,
874 const TaQLMultiNode& from, const TaQLNode& where,
875 const TaQLNode& sort, const TaQLNode& limitoff);
876 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
877 virtual void show (std::ostream& os) const override;
878 virtual void save (AipsIO& aio) const override;
879 static TaQLNode restore (AipsIO& aio);
880
888};
889
890
891// <summary>
892// Raw TaQL parse tree node defining an insert command.
893// </summary>
894// <use visibility=local>
895// <reviewed reviewer="" date="" tests="tTaQLNode">
896// </reviewed>
897// <prerequisite>
898//# Classes you should understand before using this one.
899// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
900// </prerequisite>
901// <synopsis>
902// This class is a TaQLNodeRep holding the parts for an insert command.
903// The values cvan be a list of expressions or a subquery.
904// </synopsis>
905
907{
908public:
909 TaQLInsertNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables,
910 const TaQLMultiNode& columns,
911 const TaQLNode& values, const TaQLNode& limit);
912 TaQLInsertNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables,
913 const TaQLMultiNode& insert);
914 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
915 virtual void show (std::ostream& os) const override;
916 virtual void save (AipsIO& aio) const override;
917 static TaQLNode restore (AipsIO& aio);
918
924};
925
926
927// <summary>
928// Raw TaQL parse tree node defining a delete command.
929// </summary>
930// <use visibility=local>
931// <reviewed reviewer="" date="" tests="tTaQLNode">
932// </reviewed>
933// <prerequisite>
934//# Classes you should understand before using this one.
935// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
936// </prerequisite>
937// <synopsis>
938// This class is a TaQLNodeRep holding the parts for a delete command.
939// </synopsis>
940
942{
943public:
944 TaQLDeleteNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables,
945 const TaQLNode& where,
946 const TaQLNode& sort, const TaQLNode& limitoff);
947 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
948 virtual void show (std::ostream& os) const override;
949 virtual void save (AipsIO& aio) const override;
950 static TaQLNode restore (AipsIO& aio);
951
957};
958
959
960// <summary>
961// Raw TaQL parse tree node defining a calc command.
962// </summary>
963// <use visibility=local>
964// <reviewed reviewer="" date="" tests="tTaQLNode">
965// </reviewed>
966// <prerequisite>
967//# Classes you should understand before using this one.
968// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
969// </prerequisite>
970// <synopsis>
971// This class is a TaQLNodeRep holding the parts of the calc command.
972// </synopsis>
973
975{
976public:
977 TaQLCalcNodeRep (const TaQLMultiNode& withTables, const TaQLMultiNode& fromTables,
978 const TaQLNode& expr, const TaQLNode& where,
979 const TaQLNode& sort, const TaQLNode& limitoff);
980 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
981 virtual void show (std::ostream& os) const override;
982 virtual void save (AipsIO& aio) const override;
983 static TaQLNode restore (AipsIO& aio);
984
991};
992
993
994// <summary>
995// Raw TaQL parse tree node defining a create table command.
996// </summary>
997// <use visibility=local>
998// <reviewed reviewer="" date="" tests="tTaQLNode">
999// </reviewed>
1000// <prerequisite>
1001//# Classes you should understand before using this one.
1002// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1003// </prerequisite>
1004// <synopsis>
1005// This class is a TaQLNodeRep holding the parts of the create table command.
1006// </synopsis>
1007
1009{
1010public:
1012 const TaQLNode& giving, const TaQLMultiNode& likeDrop,
1013 const TaQLMultiNode& cols,
1014 const TaQLNode& limit, const TaQLMultiNode& dminfo);
1015 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1016 virtual void showDerived (std::ostream& os) const override;
1017 virtual void save (AipsIO& aio) const override;
1018 static TaQLNode restore (AipsIO& aio);
1019
1026};
1027
1028
1029// <summary>
1030// Raw TaQL parse tree node defining a create column specification.
1031// </summary>
1032// <use visibility=local>
1033// <reviewed reviewer="" date="" tests="tTaQLNode">
1034// </reviewed>
1035// <prerequisite>
1036//# Classes you should understand before using this one.
1037// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1038// </prerequisite>
1039// <synopsis>
1040// This class is a TaQLNodeRep holding the parts of a column specification
1041// in the create table command.
1042// </synopsis>
1043
1045{
1046public:
1047 TaQLColSpecNodeRep (const String& name, const String& likeCol,
1048 const String& dtype, const TaQLMultiNode& spec);
1049 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1050 virtual void show (std::ostream& os) const override;
1051 virtual void save (AipsIO& aio) const override;
1052 static TaQLNode restore (AipsIO& aio);
1053
1058};
1059
1060
1061// <summary>
1062// Raw TaQL parse tree node defining a record field.
1063// </summary>
1064// <use visibility=local>
1065// <reviewed reviewer="" date="" tests="tTaQLNode">
1066// </reviewed>
1067// <prerequisite>
1068//# Classes you should understand before using this one.
1069// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1070// </prerequisite>
1071// <synopsis>
1072// This class is a TaQLNodeRep holding the parts of a record field.
1073// </synopsis>
1074
1076{
1077public:
1079 const TaQLNode& values, const String& dtype);
1081 TaQLRecFldNodeRep (const String& name, const String& fromName,
1082 const String& dtype);
1083 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1084 virtual void show (std::ostream& os) const override;
1085 virtual void save (AipsIO& aio) const override;
1086 static TaQLNode restore (AipsIO& aio);
1087
1092};
1093
1094
1095// <summary>
1096// Raw TaQL parse tree node defining a unit.
1097// </summary>
1098// <use visibility=local>
1099// <reviewed reviewer="" date="" tests="tTaQLNode">
1100// </reviewed>
1101// <prerequisite>
1102//# Classes you should understand before using this one.
1103// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1104// </prerequisite>
1105// <synopsis>
1106// This class is a TaQLNodeRep holding the parts of a record field.
1107// </synopsis>
1108
1110{
1111public:
1112 TaQLUnitNodeRep (const String& unit, const TaQLNode& child);
1113 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1114 virtual void show (std::ostream& os) const override;
1115 virtual void save (AipsIO& aio) const override;
1116 static TaQLNode restore (AipsIO& aio);
1117
1120};
1121
1122
1123// <summary>
1124// Raw TaQL parse tree node defining an alter table command.
1125// </summary>
1126// <use visibility=local>
1127// <reviewed reviewer="" date="" tests="tTaQLNode">
1128// </reviewed>
1129// <prerequisite>
1130//# Classes you should understand before using this one.
1131// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1132// </prerequisite>
1133// <synopsis>
1134// This class is a TaQLNodeRep holding the parts of the alter table command.
1135// </synopsis>
1136
1138{
1139public:
1140 TaQLAltTabNodeRep (const TaQLMultiNode& with, const TaQLNode& table,
1141 const TaQLMultiNode& from, const TaQLMultiNode& commands);
1142 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1143 virtual void showDerived (std::ostream& os) const override;
1144 virtual void save (AipsIO& aio) const override;
1145 static TaQLNode restore (AipsIO& aio);
1146
1151};
1152
1153
1154// <summary>
1155// Raw TaQL parse tree node defining an alter table add column command.
1156// </summary>
1157// <use visibility=local>
1158// <reviewed reviewer="" date="" tests="tTaQLNode">
1159// </reviewed>
1160// <prerequisite>
1161//# Classes you should understand before using this one.
1162// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1163// </prerequisite>
1164// <synopsis>
1165// This class is a TaQLNodeRep holding the parts of the add column subcommand.
1166// </synopsis>
1167
1169{
1170public:
1171 TaQLAddColNodeRep (const TaQLMultiNode& cols, const TaQLMultiNode& dminfo);
1172 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1173 virtual void show (std::ostream& os) const override;
1174 virtual void save (AipsIO& aio) const override;
1175 static TaQLNode restore (AipsIO& aio);
1176
1179};
1180
1181
1182// <summary>
1183// Raw TaQL parse tree node defining an alter table rename or drop 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 rename or drop subcommand.
1194// </synopsis>
1195
1197{
1198public:
1200 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1201 virtual void show (std::ostream& os) const override;
1202 virtual void save (AipsIO& aio) const override;
1203 static TaQLNode restore (AipsIO& aio);
1204
1207};
1208
1209
1210// <summary>
1211// Raw TaQL parse tree node defining an alter table set keyword command.
1212// </summary>
1213// <use visibility=local>
1214// <reviewed reviewer="" date="" tests="tTaQLNode">
1215// </reviewed>
1216// <prerequisite>
1217//# Classes you should understand before using this one.
1218// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1219// </prerequisite>
1220// <synopsis>
1221// This class is a TaQLNodeRep holding the parts of the set keyword subcommand.
1222// </synopsis>
1223
1225{
1226public:
1228 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1229 virtual void show (std::ostream& os) const override;
1230 virtual void save (AipsIO& aio) const override;
1231 static TaQLNode restore (AipsIO& aio);
1232
1234};
1235
1236
1237// <summary>
1238// Raw TaQL parse tree node defining an alter table add rows command.
1239// </summary>
1240// <use visibility=local>
1241// <reviewed reviewer="" date="" tests="tTaQLNode">
1242// </reviewed>
1243// <prerequisite>
1244//# Classes you should understand before using this one.
1245// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1246// </prerequisite>
1247// <synopsis>
1248// This class is a TaQLNodeRep holding the parts of the add rows subcommand.
1249// </synopsis>
1250
1252{
1253public:
1255 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1256 virtual void show (std::ostream& os) const override;
1257 virtual void save (AipsIO& aio) const override;
1258 static TaQLNode restore (AipsIO& aio);
1259
1261};
1262
1263
1264// <summary>
1265// Raw TaQL parse tree node defining an alter table command.
1266// </summary>
1267// <use visibility=local>
1268// <reviewed reviewer="" date="" tests="tTaQLNode">
1269// </reviewed>
1270// <prerequisite>
1271//# Classes you should understand before using this one.
1272// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1273// </prerequisite>
1274// <synopsis>
1275// This class is a TaQLNodeRep holding the parts of the alter table command.
1276// </synopsis>
1277
1279{
1280public:
1281 TaQLConcTabNodeRep (const String& tableName,
1282 const TaQLMultiNode& tables,
1283 const TaQLMultiNode& subtableNames);
1284 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1285 virtual void showDerived (std::ostream& os) const override;
1286 virtual void save (AipsIO& aio) const override;
1287 static TaQLNode restore (AipsIO& aio);
1288
1292};
1293
1294
1295// <summary>
1296// Raw TaQL parse tree node defining a show command.
1297// </summary>
1298// <use visibility=local>
1299// <reviewed reviewer="" date="" tests="tTaQLNode">
1300// </reviewed>
1301// <prerequisite>
1302//# Classes you should understand before using this one.
1303// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1304// </prerequisite>
1305// <synopsis>
1306// This class is a TaQLNodeRep holding the parts of the show command.
1307// </synopsis>
1308
1310{
1311public:
1313 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1314 virtual void show (std::ostream& os) const override;
1315 virtual void save (AipsIO& aio) const override;
1316 static TaQLNode restore (AipsIO& aio);
1317
1319};
1320
1321
1322// <summary>
1323// Raw TaQL parse tree node defining an alter table copy column command.
1324// </summary>
1325// <use visibility=local>
1326// <reviewed reviewer="" date="" tests="tTaQLNode">
1327// </reviewed>
1328// <prerequisite>
1329//# Classes you should understand before using this one.
1330// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1331// </prerequisite>
1332// <synopsis>
1333// This class is a TaQLNodeRep holding the parts of the copy column subcommand.
1334// </synopsis>
1335
1337{
1338public:
1339 TaQLCopyColNodeRep (const TaQLMultiNode& names, const TaQLMultiNode& dminfo);
1340 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1341 virtual void show (std::ostream& os) const override;
1342 virtual void save (AipsIO& aio) const override;
1343 static TaQLNode restore (AipsIO& aio);
1344
1347};
1348
1349
1350// <summary>
1351// Raw TaQL parse tree node defining a DROP TABLE command.
1352// </summary>
1353// <use visibility=local>
1354// <reviewed reviewer="" date="" tests="tTaQLNode">
1355// </reviewed>
1356// <prerequisite>
1357//# Classes you should understand before using this one.
1358// <li> <linkto class=TaQLNodeRep>TaQLNodeRep</linkto>
1359// </prerequisite>
1360// <synopsis>
1361// This class is a TaQLNodeRep holding the tables of a drop table command.
1362// </synopsis>
1363
1365{
1366public:
1367 TaQLDropTabNodeRep (const TaQLMultiNode& with, const TaQLMultiNode& tables);
1368 virtual TaQLNodeResult visit (TaQLNodeVisitor&) const override;
1369 virtual void show (std::ostream& os) const override;
1370 virtual void save (AipsIO& aio) const override;
1371 static TaQLNode restore (AipsIO& aio);
1372
1375};
1376
1377
1378} //# NAMESPACE CASACORE - END
1379
1380#endif
Normal or Gaussian distribution.
Definition Random.h:996
String: the storage and methods of handling collections of characters.
Definition String.h:223
Raw TaQL parse tree node defining an alter table add column command.
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.
Raw TaQL parse tree node defining an alter table add rows command.
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)
Raw TaQL parse tree node defining an alter table command.
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
Raw TaQL parse tree node defining a binary operator.
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.
Raw TaQL parse tree node defining a calc command.
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.
Raw TaQL parse tree node defining a select column expression.
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)
Raw TaQL parse tree node defining a create column specification.
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.
Raw TaQL parse tree node defining a select column list.
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)
Raw TaQL parse tree node defining an alter table command.
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:63
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:80
TaQLConstNodeRep(Double value)
TaQLConstNodeRep(const MVTime &value)
TaQLConstNodeRep(DComplex value)
TaQLConstNodeRep(Double value, const String &unit)
Raw TaQL parse tree node defining an alter table copy column command.
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)
Raw TaQL parse tree node defining a count command.
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)
Raw TaQL parse tree node defining a create table command.
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)
Raw TaQL parse tree node defining a delete command.
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.
Raw TaQL parse tree node defining a DROP TABLE command.
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.
Raw TaQL parse tree node defining a function.
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)
Raw TaQL parse tree node defining a giving expression list.
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.
Raw TaQL parse tree node defining a groupby list.
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.
Raw TaQL parse tree node defining an index in a array.
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.
Raw TaQL parse tree node defining an insert command.
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)
Raw TaQL parse tree node defining a join operation.
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.
Raw TaQL parse tree node defining a keyword or column name.
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.
Raw TaQL parse tree node defining a limit/offset expression.
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)
Raw TaQL parse tree node defining a list of nodes.
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:225
char nodeType() const
Get the node type of the derived class.
Envelope class to hold the result of a visit to the node tree.
Raw TaQL parse tree node defining a selection command.
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.
Raw TaQL parse tree node defining a range.
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)
Raw TaQL parse tree node defining a record field.
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)
Raw TaQL parse tree node defining a constant regex value.
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:202
Raw TaQL parse tree node defining an alter table rename or drop command.
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)
Raw TaQL parse tree node defining a select command.
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)
Raw TaQL parse tree node defining an alter table set keyword command.
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.
Raw TaQL parse tree node defining a show command.
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)
Raw TaQL parse tree node defining a sort key.
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.
Raw TaQL parse tree node defining a sort list.
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)
Raw TaQL parse tree node defining a table.
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)
Raw TaQL parse tree node defining a unary operator.
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)
Raw TaQL parse tree node defining a unit.
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)
Raw TaQL parse tree node defining a column update expression.
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)
Raw TaQL parse tree node defining an update command.
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.
this file contains all the compiler specific defines
Definition mainpage.dox:28
const Bool False
Definition aipstype.h:42
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
TableExprNode regex(const TableExprNode &node)
Functions for regular expression matching and pattern matching.
Definition ExprNode.h:1487
int Int
Definition aipstype.h:48
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
const Bool True
Definition aipstype.h:41
double Double
Definition aipstype.h:53