Added quantiling UDAFs
[com/gs-lite.git] / src / ftacmp / schemaparser_impl.h
index dad02a1..f9ff518 100644 (file)
-/* ------------------------------------------------
-Copyright 2014 AT&T Intellectual Property
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
- ------------------------------------------- */
-#ifndef __INTERFACE_IMPL_INCLUDED__
-#define __INTERFACE_IMPL_INCLUDED__
-
-#include"schemaparser.h"
-
-
- #include"type_indicators.h"
- #include"type_objects.h"
- #include"parse_fta.h"
- #include "gstypes.h"
-
-
-
-
-//     access_result (access_fcn)(char *tuple, int offset);
-class tuple_access_info{
-public:
-       std::string field_name;
-       int offset;
-       data_type *pdt;
-
-
-       tuple_access_info(){
-               pdt = NULL;
-               offset = 0;
-       };
-
-       int init(field_entry *fe){
-               field_name = fe->get_name();
-               pdt = new data_type(fe->get_type());
-               return(pdt->type_indicator());
-       };
-};
-
-class param_block_info{
-public:
-       std::string param_name;
-       access_result value;
-       data_type *pdt;
-       unsigned int offset;
-       bool value_set;
-
-       param_block_info(){
-               pdt = NULL;
-               offset = 0;
-               value_set = false;
-       };
-
-       int init(var_pair_t *vp){
-               value_set = false;
-               param_name = vp->name;
-               pdt = new data_type(vp->val);
-               switch(pdt->get_type()){
-                       case int_t:
-                               value.r.i=0; break;
-                       case u_int_t:
-                       case u_short_t:
-                       case bool_t:
-                               value.r.ui=0; break;
-                       case floating_t:
-                               value.r.f = 0.0; break;
-                       case u_llong_t:
-                               value.r.ul = 0; break;
-                       case llong_t:
-                               value.r.l=0; break;
-                       case timeval_t:
-                               value.r.t.tv_sec=0; value.r.t.tv_usec=0; break;
-                       case v_str_t:
-                               value.r.vs.length = 0; value.r.vs.offset = 0; value.r.vs.reserved=0; break;
-                       case fstring_t:
-                               value.r.fs.data = NULL;
-                               value.r.fs.size = 0;
-                               break;
-                       default:
-                               break;
-               }
-               return(pdt->type_indicator());
-       };
-};
-
-
-
-class query_rep{
-public:
-       std::string name;
-
-       std::vector<tuple_access_info> field_info;
-       int min_tuple_size;
-
-       std::vector<param_block_info> param_info;
-       int min_param_size;
-
-       query_rep(std::string nm, int ntuples, int nparams) :
-               name(nm), field_info(ntuples), param_info(nparams) {
-                       min_tuple_size = 0;
-                       min_param_size = 0;
-       };
-
-       int set_field_info(int f, field_entry *fe){
-               if(f<0 || f>=field_info.size()) return(-1);
-               return(field_info[f].init(fe));
-       };
-
-       int finalize_field_info(){
-               int f;
-               int curr_pos = 0;
-               int fld_undefined = 0;
-               for(f=0;f<field_info.size();++f){
-                       field_info[f].offset = curr_pos;
-                       int sz = field_info[f].pdt->type_size();
-                       if(sz==0) fld_undefined = 1;
-                       curr_pos += sz;
-               }
-               min_tuple_size = curr_pos;
-               if(fld_undefined) return(-1);
-               else return(0);
-       };
-
-       int set_param_info(int p, var_pair_t *vp){
-               if(p<0 || p>=param_info.size()) return(-1);
-               return(param_info[p].init(vp));
-       };
-
-       int finalize_param_info(){
-               int p;
-               int curr_pos = 0;
-               int fld_undefined = 0;
-               for(p=0;p<param_info.size();++p){
-                       param_info[p].offset = curr_pos;
-                       int sz = param_info[p].pdt->type_size();
-                       if(sz==0) fld_undefined = 1;
-                       curr_pos += sz;
-               }
-               min_param_size = curr_pos;
-               if(fld_undefined) return(-1);
-               else return(0);
-       };
-
-
-};
-
-//                     Diagnostic tool.
-void ftaschema_debugdump(int sch_handle);
-
-#endif
-
+/* ------------------------------------------------\r
+Copyright 2014 AT&T Intellectual Property\r
+   Licensed under the Apache License, Version 2.0 (the "License");\r
+   you may not use this file except in compliance with the License.\r
+   You may obtain a copy of the License at\r
+\r
+     http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+ ------------------------------------------- */\r
+#ifndef __INTERFACE_IMPL_INCLUDED__\r
+#define __INTERFACE_IMPL_INCLUDED__\r
+\r
+#include"schemaparser.h"\r
+\r
+\r
+ #include"type_indicators.h"\r
+ #include"type_objects.h"\r
+ #include"parse_fta.h"\r
+ #include "gstypes.h"\r
+\r
+\r
+\r
+\r
+//     access_result (access_fcn)(char *tuple, int offset);\r
+class tuple_access_info{\r
+public:\r
+       std::string field_name;\r
+       int offset;\r
+       data_type *pdt;\r
+\r
+\r
+       tuple_access_info(){\r
+               pdt = NULL;\r
+               offset = 0;\r
+       };\r
+\r
+       int init(field_entry *fe){\r
+               field_name = fe->get_name();\r
+               pdt = new data_type(fe->get_type());\r
+               return(pdt->type_indicator());\r
+       };\r
+};\r
+\r
+class param_block_info{\r
+public:\r
+       std::string param_name;\r
+       access_result value;\r
+       data_type *pdt;\r
+       unsigned int offset;\r
+       bool value_set;\r
+\r
+       param_block_info(){\r
+               pdt = NULL;\r
+               offset = 0;\r
+               value_set = false;\r
+       };\r
+\r
+       int init(var_pair_t *vp){\r
+               value_set = false;\r
+               param_name = vp->name;\r
+               pdt = new data_type(vp->val);\r
+               switch(pdt->get_type()){\r
+                       case int_t:\r
+                               value.r.i=0; break;\r
+                       case u_int_t:\r
+                       case u_short_t:\r
+                       case bool_t:\r
+                               value.r.ui=0; break;\r
+                       case floating_t:\r
+                               value.r.f = 0.0; break;\r
+                       case u_llong_t:\r
+                               value.r.ul = 0; break;\r
+                       case llong_t:\r
+                               value.r.l=0; break;\r
+                       case timeval_t:\r
+                               value.r.t.tv_sec=0; value.r.t.tv_usec=0; break;\r
+                       case v_str_t:\r
+                               value.r.vs.length = 0; value.r.vs.offset = 0; value.r.vs.reserved=0; break;\r
+                       case fstring_t:\r
+                               value.r.fs.data = NULL;\r
+                               value.r.fs.size = 0;\r
+                               break;\r
+                       default:\r
+                               break;\r
+               }\r
+               return(pdt->type_indicator());\r
+       };\r
+};\r
+\r
+\r
+\r
+class query_rep{\r
+public:\r
+       std::string name;\r
+\r
+       std::vector<tuple_access_info> field_info;\r
+       int min_tuple_size;\r
+\r
+       std::vector<param_block_info> param_info;\r
+       int min_param_size;\r
+\r
+       query_rep(std::string nm, int ntuples, int nparams) :\r
+               name(nm), field_info(ntuples), param_info(nparams) {\r
+                       min_tuple_size = 0;\r
+                       min_param_size = 0;\r
+       };\r
+\r
+       int set_field_info(int f, field_entry *fe){\r
+               if(f<0 || f>=field_info.size()) return(-1);\r
+               return(field_info[f].init(fe));\r
+       };\r
+\r
+       int finalize_field_info(){\r
+               int f;\r
+               int curr_pos = 0;\r
+               int fld_undefined = 0;\r
+               for(f=0;f<field_info.size();++f){\r
+                       field_info[f].offset = curr_pos;\r
+                       int sz = field_info[f].pdt->type_size();\r
+                       if(sz==0) fld_undefined = 1;\r
+                       curr_pos += sz;\r
+               }\r
+               min_tuple_size = curr_pos;\r
+               if(fld_undefined) return(-1);\r
+               else return(0);\r
+       };\r
+\r
+       int set_param_info(int p, var_pair_t *vp){\r
+               if(p<0 || p>=param_info.size()) return(-1);\r
+               return(param_info[p].init(vp));\r
+       };\r
+\r
+       int finalize_param_info(){\r
+               int p;\r
+               int curr_pos = 0;\r
+               int fld_undefined = 0;\r
+               for(p=0;p<param_info.size();++p){\r
+                       param_info[p].offset = curr_pos;\r
+                       int sz = param_info[p].pdt->type_size();\r
+                       if(sz==0) fld_undefined = 1;\r
+                       curr_pos += sz;\r
+               }\r
+               min_param_size = curr_pos;\r
+               if(fld_undefined) return(-1);\r
+               else return(0);\r
+       };\r
+\r
+\r
+};\r
+\r
+//                     Diagnostic tool.\r
+void ftaschema_debugdump(int sch_handle);\r
+\r
+#endif\r
+\r