/*
|
* Licensed to the Apache Software Foundation (ASF) under one
|
* or more contributor license agreements. See the NOTICE file
|
* distributed with this work for additional information
|
* regarding copyright ownership. The ASF licenses this file
|
* to you 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 AG_LOAD_LABELS_H
|
#define AG_LOAD_LABELS_H
|
|
#include <errno.h>
|
#include <stdio.h>
|
#include <stdlib.h>
|
#include <string.h>
|
#include <unistd.h>
|
|
#include "postgres.h"
|
|
#include "access/heapam.h"
|
#include "access/xact.h"
|
#include "catalog/dependency.h"
|
#include "catalog/namespace.h"
|
#include "catalog/objectaddress.h"
|
#include "catalog/pg_class_d.h"
|
#include "commands/defrem.h"
|
#include "commands/sequence.h"
|
#include "commands/tablecmds.h"
|
#include "miscadmin.h"
|
#include "nodes/makefuncs.h"
|
#include "nodes/nodes.h"
|
#include "nodes/parsenodes.h"
|
#include "nodes/pg_list.h"
|
#include "nodes/plannodes.h"
|
#include "nodes/primnodes.h"
|
#include "nodes/value.h"
|
#include "parser/parse_node.h"
|
#include "parser/parser.h"
|
#include "storage/lockdefs.h"
|
#include "tcop/dest.h"
|
#include "tcop/utility.h"
|
#include "utils/acl.h"
|
#include "utils/builtins.h"
|
#include "utils/inval.h"
|
#include "utils/lsyscache.h"
|
#include "utils/rel.h"
|
|
#include "catalog/ag_graph.h"
|
#include "catalog/ag_label.h"
|
#include "commands/label_commands.h"
|
#include "utils/ag_cache.h"
|
#include "utils/agtype.h"
|
#include "utils/graphid.h"
|
|
#define AGE_VERTIX 1
|
#define AGE_EDGE 2
|
|
|
struct counts {
|
long unsigned fields;
|
long unsigned allvalues;
|
long unsigned rows;
|
};
|
|
typedef struct {
|
size_t row;
|
char **header;
|
size_t *header_len;
|
size_t header_num;
|
char **fields;
|
size_t *fields_len;
|
size_t alloc;
|
size_t cur_field;
|
int error;
|
size_t header_row_length;
|
size_t curr_row_length;
|
char *graph_name;
|
Oid graph_oid;
|
char *object_name;
|
int object_id;
|
bool id_field_exists;
|
} csv_vertex_reader;
|
|
|
void vertex_field_cb(void *field, size_t field_len, void *data);
|
void vertex_row_cb(int delim , void *data);
|
|
int create_labels_from_csv_file(char *file_path, char *graph_name, Oid graph_oid,
|
char *object_name, int object_id,
|
bool id_field_exists);
|
|
#endif //AG_LOAD_LABELS_H
|