len > 0 => char
| 223 | |
| 224 | // len > 0 => char |
| 225 | TExprNode CreateStringLiteral(int len = -1) { |
| 226 | TScalarType scalar_type; |
| 227 | scalar_type.type = len > 0 ? TPrimitiveType::VARCHAR : TPrimitiveType::STRING; |
| 228 | if (len > 0) scalar_type.__set_len(len); |
| 229 | |
| 230 | TTypeNode type; |
| 231 | type.type = TTypeNodeType::SCALAR; |
| 232 | type.__set_scalar_type(scalar_type); |
| 233 | |
| 234 | TColumnType col_type; |
| 235 | col_type.__set_types(vector<TTypeNode>(1, type)); |
| 236 | |
| 237 | TStringLiteral string_literal; |
| 238 | string_literal.value = "\1"; |
| 239 | |
| 240 | TExprNode expr; |
| 241 | expr.node_type = TExprNodeType::STRING_LITERAL; |
| 242 | expr.type = col_type; |
| 243 | expr.num_children = 0; |
| 244 | expr.__set_string_literal(string_literal); |
| 245 | return expr; |
| 246 | } |
| 247 | |
| 248 | // Creates a function call to TestGetFnAttrs() in test-udfs.h |
| 249 | TExprNode CreateFunctionCall(vector<TExprNode> children, int precision, int scale) { |