/* qlite.h generated by valac 0.56.18, the Vala compiler, do not modify */

#ifndef __QLITE_QLITE_H__
#define __QLITE_QLITE_H__

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <sqlite3.h>
#include <float.h>
#include <math.h>

G_BEGIN_DECLS

#define QLITE_COLUMN_DEFAULT_TABLE_NAME ""
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define QLITE_TYPE_COLUMN (qlite_column_get_type ())
#define QLITE_COLUMN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_COLUMN, QliteColumn))
#define QLITE_COLUMN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_COLUMN, QliteColumnClass))
#define QLITE_IS_COLUMN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_COLUMN))
#define QLITE_IS_COLUMN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_COLUMN))
#define QLITE_COLUMN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_COLUMN, QliteColumnClass))

typedef struct _QliteColumn QliteColumn;
typedef struct _QliteColumnClass QliteColumnClass;
typedef struct _QliteColumnPrivate QliteColumnPrivate;

#define QLITE_TYPE_ROW (qlite_row_get_type ())
#define QLITE_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_ROW, QliteRow))
#define QLITE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_ROW, QliteRowClass))
#define QLITE_IS_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_ROW))
#define QLITE_IS_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_ROW))
#define QLITE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_ROW, QliteRowClass))

typedef struct _QliteRow QliteRow;
typedef struct _QliteRowClass QliteRowClass;

#define QLITE_COLUMN_TYPE_INTEGER (qlite_column_integer_get_type ())
#define QLITE_COLUMN_INTEGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_INTEGER, QliteColumnInteger))
#define QLITE_COLUMN_INTEGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_INTEGER, QliteColumnIntegerClass))
#define QLITE_COLUMN_IS_INTEGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_INTEGER))
#define QLITE_COLUMN_IS_INTEGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_INTEGER))
#define QLITE_COLUMN_INTEGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_INTEGER, QliteColumnIntegerClass))

typedef struct _QliteColumnInteger QliteColumnInteger;
typedef struct _QliteColumnIntegerClass QliteColumnIntegerClass;
typedef struct _QliteColumnIntegerPrivate QliteColumnIntegerPrivate;

#define QLITE_COLUMN_TYPE_LONG (qlite_column_long_get_type ())
#define QLITE_COLUMN_LONG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_LONG, QliteColumnLong))
#define QLITE_COLUMN_LONG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_LONG, QliteColumnLongClass))
#define QLITE_COLUMN_IS_LONG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_LONG))
#define QLITE_COLUMN_IS_LONG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_LONG))
#define QLITE_COLUMN_LONG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_LONG, QliteColumnLongClass))

typedef struct _QliteColumnLong QliteColumnLong;
typedef struct _QliteColumnLongClass QliteColumnLongClass;
typedef struct _QliteColumnLongPrivate QliteColumnLongPrivate;

#define QLITE_COLUMN_TYPE_NULLABLE_REAL (qlite_column_nullable_real_get_type ())
#define QLITE_COLUMN_NULLABLE_REAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_NULLABLE_REAL, QliteColumnNullableReal))
#define QLITE_COLUMN_NULLABLE_REAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_NULLABLE_REAL, QliteColumnNullableRealClass))
#define QLITE_COLUMN_IS_NULLABLE_REAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_NULLABLE_REAL))
#define QLITE_COLUMN_IS_NULLABLE_REAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_NULLABLE_REAL))
#define QLITE_COLUMN_NULLABLE_REAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_NULLABLE_REAL, QliteColumnNullableRealClass))

typedef struct _QliteColumnNullableReal QliteColumnNullableReal;
typedef struct _QliteColumnNullableRealClass QliteColumnNullableRealClass;
typedef struct _QliteColumnNullableRealPrivate QliteColumnNullableRealPrivate;

#define QLITE_COLUMN_TYPE_TEXT (qlite_column_text_get_type ())
#define QLITE_COLUMN_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_TEXT, QliteColumnText))
#define QLITE_COLUMN_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_TEXT, QliteColumnTextClass))
#define QLITE_COLUMN_IS_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_TEXT))
#define QLITE_COLUMN_IS_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_TEXT))
#define QLITE_COLUMN_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_TEXT, QliteColumnTextClass))

typedef struct _QliteColumnText QliteColumnText;
typedef struct _QliteColumnTextClass QliteColumnTextClass;
typedef struct _QliteColumnTextPrivate QliteColumnTextPrivate;

#define QLITE_COLUMN_TYPE_NON_NULL_TEXT (qlite_column_non_null_text_get_type ())
#define QLITE_COLUMN_NON_NULL_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_NON_NULL_TEXT, QliteColumnNonNullText))
#define QLITE_COLUMN_NON_NULL_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_NON_NULL_TEXT, QliteColumnNonNullTextClass))
#define QLITE_COLUMN_IS_NON_NULL_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_NON_NULL_TEXT))
#define QLITE_COLUMN_IS_NON_NULL_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_NON_NULL_TEXT))
#define QLITE_COLUMN_NON_NULL_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_NON_NULL_TEXT, QliteColumnNonNullTextClass))

typedef struct _QliteColumnNonNullText QliteColumnNonNullText;
typedef struct _QliteColumnNonNullTextClass QliteColumnNonNullTextClass;
typedef struct _QliteColumnNonNullTextPrivate QliteColumnNonNullTextPrivate;

#define QLITE_COLUMN_TYPE_BOOL_TEXT (qlite_column_bool_text_get_type ())
#define QLITE_COLUMN_BOOL_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_BOOL_TEXT, QliteColumnBoolText))
#define QLITE_COLUMN_BOOL_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_BOOL_TEXT, QliteColumnBoolTextClass))
#define QLITE_COLUMN_IS_BOOL_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_BOOL_TEXT))
#define QLITE_COLUMN_IS_BOOL_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_BOOL_TEXT))
#define QLITE_COLUMN_BOOL_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_BOOL_TEXT, QliteColumnBoolTextClass))

typedef struct _QliteColumnBoolText QliteColumnBoolText;
typedef struct _QliteColumnBoolTextClass QliteColumnBoolTextClass;
typedef struct _QliteColumnBoolTextPrivate QliteColumnBoolTextPrivate;

#define QLITE_COLUMN_TYPE_BOOL_INT (qlite_column_bool_int_get_type ())
#define QLITE_COLUMN_BOOL_INT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_COLUMN_TYPE_BOOL_INT, QliteColumnBoolInt))
#define QLITE_COLUMN_BOOL_INT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_COLUMN_TYPE_BOOL_INT, QliteColumnBoolIntClass))
#define QLITE_COLUMN_IS_BOOL_INT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_COLUMN_TYPE_BOOL_INT))
#define QLITE_COLUMN_IS_BOOL_INT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_COLUMN_TYPE_BOOL_INT))
#define QLITE_COLUMN_BOOL_INT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_COLUMN_TYPE_BOOL_INT, QliteColumnBoolIntClass))

typedef struct _QliteColumnBoolInt QliteColumnBoolInt;
typedef struct _QliteColumnBoolIntClass QliteColumnBoolIntClass;
typedef struct _QliteColumnBoolIntPrivate QliteColumnBoolIntPrivate;

#define QLITE_TYPE_DATABASE (qlite_database_get_type ())
#define QLITE_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_DATABASE, QliteDatabase))
#define QLITE_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_DATABASE, QliteDatabaseClass))
#define QLITE_IS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_DATABASE))
#define QLITE_IS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_DATABASE))
#define QLITE_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_DATABASE, QliteDatabaseClass))

typedef struct _QliteDatabase QliteDatabase;
typedef struct _QliteDatabaseClass QliteDatabaseClass;
typedef struct _QliteDatabasePrivate QliteDatabasePrivate;

#define QLITE_TYPE_TABLE (qlite_table_get_type ())
#define QLITE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_TABLE, QliteTable))
#define QLITE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_TABLE, QliteTableClass))
#define QLITE_IS_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_TABLE))
#define QLITE_IS_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_TABLE))
#define QLITE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_TABLE, QliteTableClass))

typedef struct _QliteTable QliteTable;
typedef struct _QliteTableClass QliteTableClass;

#define QLITE_TYPE_STATEMENT_BUILDER (qlite_statement_builder_get_type ())
#define QLITE_STATEMENT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_STATEMENT_BUILDER, QliteStatementBuilder))
#define QLITE_STATEMENT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_STATEMENT_BUILDER, QliteStatementBuilderClass))
#define QLITE_IS_STATEMENT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_STATEMENT_BUILDER))
#define QLITE_IS_STATEMENT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_STATEMENT_BUILDER))
#define QLITE_STATEMENT_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_STATEMENT_BUILDER, QliteStatementBuilderClass))

typedef struct _QliteStatementBuilder QliteStatementBuilder;
typedef struct _QliteStatementBuilderClass QliteStatementBuilderClass;

#define QLITE_TYPE_QUERY_BUILDER (qlite_query_builder_get_type ())
#define QLITE_QUERY_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_QUERY_BUILDER, QliteQueryBuilder))
#define QLITE_QUERY_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_QUERY_BUILDER, QliteQueryBuilderClass))
#define QLITE_IS_QUERY_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_QUERY_BUILDER))
#define QLITE_IS_QUERY_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_QUERY_BUILDER))
#define QLITE_QUERY_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_QUERY_BUILDER, QliteQueryBuilderClass))

typedef struct _QliteQueryBuilder QliteQueryBuilder;
typedef struct _QliteQueryBuilderClass QliteQueryBuilderClass;

#define QLITE_TYPE_INSERT_BUILDER (qlite_insert_builder_get_type ())
#define QLITE_INSERT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_INSERT_BUILDER, QliteInsertBuilder))
#define QLITE_INSERT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_INSERT_BUILDER, QliteInsertBuilderClass))
#define QLITE_IS_INSERT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_INSERT_BUILDER))
#define QLITE_IS_INSERT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_INSERT_BUILDER))
#define QLITE_INSERT_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_INSERT_BUILDER, QliteInsertBuilderClass))

typedef struct _QliteInsertBuilder QliteInsertBuilder;
typedef struct _QliteInsertBuilderClass QliteInsertBuilderClass;

#define QLITE_TYPE_UPDATE_BUILDER (qlite_update_builder_get_type ())
#define QLITE_UPDATE_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_UPDATE_BUILDER, QliteUpdateBuilder))
#define QLITE_UPDATE_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_UPDATE_BUILDER, QliteUpdateBuilderClass))
#define QLITE_IS_UPDATE_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_UPDATE_BUILDER))
#define QLITE_IS_UPDATE_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_UPDATE_BUILDER))
#define QLITE_UPDATE_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_UPDATE_BUILDER, QliteUpdateBuilderClass))

typedef struct _QliteUpdateBuilder QliteUpdateBuilder;
typedef struct _QliteUpdateBuilderClass QliteUpdateBuilderClass;

#define QLITE_TYPE_UPSERT_BUILDER (qlite_upsert_builder_get_type ())
#define QLITE_UPSERT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_UPSERT_BUILDER, QliteUpsertBuilder))
#define QLITE_UPSERT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_UPSERT_BUILDER, QliteUpsertBuilderClass))
#define QLITE_IS_UPSERT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_UPSERT_BUILDER))
#define QLITE_IS_UPSERT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_UPSERT_BUILDER))
#define QLITE_UPSERT_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_UPSERT_BUILDER, QliteUpsertBuilderClass))

typedef struct _QliteUpsertBuilder QliteUpsertBuilder;
typedef struct _QliteUpsertBuilderClass QliteUpsertBuilderClass;

#define QLITE_TYPE_DELETE_BUILDER (qlite_delete_builder_get_type ())
#define QLITE_DELETE_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_DELETE_BUILDER, QliteDeleteBuilder))
#define QLITE_DELETE_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_DELETE_BUILDER, QliteDeleteBuilderClass))
#define QLITE_IS_DELETE_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_DELETE_BUILDER))
#define QLITE_IS_DELETE_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_DELETE_BUILDER))
#define QLITE_DELETE_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_DELETE_BUILDER, QliteDeleteBuilderClass))

typedef struct _QliteDeleteBuilder QliteDeleteBuilder;
typedef struct _QliteDeleteBuilderClass QliteDeleteBuilderClass;

#define QLITE_TYPE_ROW_ITERATOR (qlite_row_iterator_get_type ())
#define QLITE_ROW_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_ROW_ITERATOR, QliteRowIterator))
#define QLITE_ROW_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_ROW_ITERATOR, QliteRowIteratorClass))
#define QLITE_IS_ROW_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_ROW_ITERATOR))
#define QLITE_IS_ROW_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_ROW_ITERATOR))
#define QLITE_ROW_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_ROW_ITERATOR, QliteRowIteratorClass))

typedef struct _QliteRowIterator QliteRowIterator;
typedef struct _QliteRowIteratorClass QliteRowIteratorClass;
typedef struct _QliteStatementBuilderPrivate QliteStatementBuilderPrivate;
typedef struct _QliteDeleteBuilderPrivate QliteDeleteBuilderPrivate;
typedef struct _QliteInsertBuilderPrivate QliteInsertBuilderPrivate;
typedef struct _QliteQueryBuilderPrivate QliteQueryBuilderPrivate;

#define QLITE_STATEMENT_BUILDER_TYPE_ABSTRACT_FIELD (qlite_statement_builder_abstract_field_get_type ())
#define QLITE_STATEMENT_BUILDER_ABSTRACT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_STATEMENT_BUILDER_TYPE_ABSTRACT_FIELD, QliteStatementBuilderAbstractField))
#define QLITE_STATEMENT_BUILDER_ABSTRACT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_STATEMENT_BUILDER_TYPE_ABSTRACT_FIELD, QliteStatementBuilderAbstractFieldClass))
#define QLITE_STATEMENT_BUILDER_IS_ABSTRACT_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_STATEMENT_BUILDER_TYPE_ABSTRACT_FIELD))
#define QLITE_STATEMENT_BUILDER_IS_ABSTRACT_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_STATEMENT_BUILDER_TYPE_ABSTRACT_FIELD))
#define QLITE_STATEMENT_BUILDER_ABSTRACT_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_STATEMENT_BUILDER_TYPE_ABSTRACT_FIELD, QliteStatementBuilderAbstractFieldClass))

typedef struct _QliteStatementBuilderAbstractField QliteStatementBuilderAbstractField;
typedef struct _QliteStatementBuilderAbstractFieldClass QliteStatementBuilderAbstractFieldClass;

#define QLITE_TYPE_ROW_OPTION (qlite_row_option_get_type ())
#define QLITE_ROW_OPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_ROW_OPTION, QliteRowOption))
#define QLITE_ROW_OPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_ROW_OPTION, QliteRowOptionClass))
#define QLITE_IS_ROW_OPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_ROW_OPTION))
#define QLITE_IS_ROW_OPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_ROW_OPTION))
#define QLITE_ROW_OPTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_ROW_OPTION, QliteRowOptionClass))

typedef struct _QliteRowOption QliteRowOption;
typedef struct _QliteRowOptionClass QliteRowOptionClass;

#define QLITE_TYPE_MATCH_QUERY_BUILDER (qlite_match_query_builder_get_type ())
#define QLITE_MATCH_QUERY_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QLITE_TYPE_MATCH_QUERY_BUILDER, QliteMatchQueryBuilder))
#define QLITE_MATCH_QUERY_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), QLITE_TYPE_MATCH_QUERY_BUILDER, QliteMatchQueryBuilderClass))
#define QLITE_IS_MATCH_QUERY_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), QLITE_TYPE_MATCH_QUERY_BUILDER))
#define QLITE_IS_MATCH_QUERY_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), QLITE_TYPE_MATCH_QUERY_BUILDER))
#define QLITE_MATCH_QUERY_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), QLITE_TYPE_MATCH_QUERY_BUILDER, QliteMatchQueryBuilderClass))

typedef struct _QliteMatchQueryBuilder QliteMatchQueryBuilder;
typedef struct _QliteMatchQueryBuilderClass QliteMatchQueryBuilderClass;
typedef struct _QliteMatchQueryBuilderPrivate QliteMatchQueryBuilderPrivate;
typedef struct _QliteRowPrivate QliteRowPrivate;
typedef struct _QliteRowIteratorPrivate QliteRowIteratorPrivate;
typedef struct _QliteRowOptionPrivate QliteRowOptionPrivate;
typedef struct _QliteTablePrivate QliteTablePrivate;
typedef struct _QliteUpdateBuilderPrivate QliteUpdateBuilderPrivate;
typedef struct _QliteUpsertBuilderPrivate QliteUpsertBuilderPrivate;

struct _QliteColumn {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteColumnPrivate * priv;
};

struct _QliteColumnClass {
	GTypeClass parent_class;
	void (*finalize) (QliteColumn *self);
	gpointer (*get) (QliteColumn* self, QliteRow* row, const gchar* table_name);
	gboolean (*is_null) (QliteColumn* self, QliteRow* row, const gchar* table_name);
	void (*bind) (QliteColumn* self, sqlite3_stmt* stmt, gint index, gconstpointer value);
	gboolean (*get_not_null) (QliteColumn* self);
	void (*set_not_null) (QliteColumn* self, gboolean value);
};

struct _QliteColumnInteger {
	QliteColumn parent_instance;
	QliteColumnIntegerPrivate * priv;
};

struct _QliteColumnIntegerClass {
	QliteColumnClass parent_class;
};

struct _QliteColumnLong {
	QliteColumn parent_instance;
	QliteColumnLongPrivate * priv;
};

struct _QliteColumnLongClass {
	QliteColumnClass parent_class;
};

struct _QliteColumnNullableReal {
	QliteColumn parent_instance;
	QliteColumnNullableRealPrivate * priv;
};

struct _QliteColumnNullableRealClass {
	QliteColumnClass parent_class;
};

struct _QliteColumnText {
	QliteColumn parent_instance;
	QliteColumnTextPrivate * priv;
};

struct _QliteColumnTextClass {
	QliteColumnClass parent_class;
};

struct _QliteColumnNonNullText {
	QliteColumn parent_instance;
	QliteColumnNonNullTextPrivate * priv;
};

struct _QliteColumnNonNullTextClass {
	QliteColumnClass parent_class;
};

struct _QliteColumnBoolText {
	QliteColumn parent_instance;
	QliteColumnBoolTextPrivate * priv;
};

struct _QliteColumnBoolTextClass {
	QliteColumnClass parent_class;
};

struct _QliteColumnBoolInt {
	QliteColumn parent_instance;
	QliteColumnBoolIntPrivate * priv;
};

struct _QliteColumnBoolIntClass {
	QliteColumnClass parent_class;
};

struct _QliteDatabase {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteDatabasePrivate * priv;
	gboolean debug;
};

struct _QliteDatabaseClass {
	GTypeClass parent_class;
	void (*finalize) (QliteDatabase *self);
	void (*migrate) (QliteDatabase* self, glong old_version);
};

struct _QliteStatementBuilder {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteStatementBuilderPrivate * priv;
	QliteDatabase* db;
};

struct _QliteStatementBuilderClass {
	GTypeClass parent_class;
	void (*finalize) (QliteStatementBuilder *self);
	sqlite3_stmt* (*prepare) (QliteStatementBuilder* self);
};

struct _QliteDeleteBuilder {
	QliteStatementBuilder parent_instance;
	QliteDeleteBuilderPrivate * priv;
};

struct _QliteDeleteBuilderClass {
	QliteStatementBuilderClass parent_class;
};

struct _QliteInsertBuilder {
	QliteStatementBuilder parent_instance;
	QliteInsertBuilderPrivate * priv;
};

struct _QliteInsertBuilderClass {
	QliteStatementBuilderClass parent_class;
};

struct _QliteQueryBuilder {
	QliteStatementBuilder parent_instance;
	QliteQueryBuilderPrivate * priv;
	QliteTable* table;
	gchar* table_name;
	gchar* selection;
	QliteStatementBuilderAbstractField** selection_args;
	gint selection_args_length1;
	gint _selection_args_size_;
};

struct _QliteQueryBuilderClass {
	QliteStatementBuilderClass parent_class;
	QliteQueryBuilder* (*from) (QliteQueryBuilder* self, QliteTable* table);
	QliteQueryBuilder* (*from_name) (QliteQueryBuilder* self, const gchar* table);
};

struct _QliteMatchQueryBuilder {
	QliteQueryBuilder parent_instance;
	QliteMatchQueryBuilderPrivate * priv;
};

struct _QliteMatchQueryBuilderClass {
	QliteQueryBuilderClass parent_class;
};

struct _QliteRow {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteRowPrivate * priv;
};

struct _QliteRowClass {
	GTypeClass parent_class;
	void (*finalize) (QliteRow *self);
};

struct _QliteRowIterator {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteRowIteratorPrivate * priv;
};

struct _QliteRowIteratorClass {
	GTypeClass parent_class;
	void (*finalize) (QliteRowIterator *self);
};

struct _QliteRowOption {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteRowOptionPrivate * priv;
};

struct _QliteRowOptionClass {
	GTypeClass parent_class;
	void (*finalize) (QliteRowOption *self);
};

struct _QliteTable {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QliteTablePrivate * priv;
	QliteDatabase* db;
	QliteColumn** columns;
	gint columns_length1;
	QliteColumn** fts_columns;
	gint fts_columns_length1;
	gint _fts_columns_size_;
};

struct _QliteTableClass {
	GTypeClass parent_class;
	void (*finalize) (QliteTable *self);
};

struct _QliteUpdateBuilder {
	QliteStatementBuilder parent_instance;
	QliteUpdateBuilderPrivate * priv;
};

struct _QliteUpdateBuilderClass {
	QliteStatementBuilderClass parent_class;
};

struct _QliteUpsertBuilder {
	QliteStatementBuilder parent_instance;
	QliteUpsertBuilderPrivate * priv;
};

struct _QliteUpsertBuilderClass {
	QliteStatementBuilderClass parent_class;
};

VALA_EXTERN gpointer qlite_column_ref (gpointer instance);
VALA_EXTERN void qlite_column_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_column (const gchar* name,
                                     const gchar* nick,
                                     const gchar* blurb,
                                     GType object_type,
                                     GParamFlags flags);
VALA_EXTERN void qlite_value_set_column (GValue* value,
                             gpointer v_object);
VALA_EXTERN void qlite_value_take_column (GValue* value,
                              gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_column (const GValue* value);
VALA_EXTERN GType qlite_column_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumn, qlite_column_unref)
VALA_EXTERN gpointer qlite_row_ref (gpointer instance);
VALA_EXTERN void qlite_row_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_row (const gchar* name,
                                  const gchar* nick,
                                  const gchar* blurb,
                                  GType object_type,
                                  GParamFlags flags);
VALA_EXTERN void qlite_value_set_row (GValue* value,
                          gpointer v_object);
VALA_EXTERN void qlite_value_take_row (GValue* value,
                           gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_row (const GValue* value);
VALA_EXTERN GType qlite_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteRow, qlite_row_unref)
VALA_EXTERN gpointer qlite_column_get (QliteColumn* self,
                           QliteRow* row,
                           const gchar* table_name);
VALA_EXTERN gboolean qlite_column_is_null (QliteColumn* self,
                               QliteRow* row,
                               const gchar* table_name);
VALA_EXTERN gchar* qlite_column_to_string (QliteColumn* self);
VALA_EXTERN gchar* qlite_column_to_column_definition (QliteColumn* self);
VALA_EXTERN const gchar* qlite_column_get_name (QliteColumn* self);
VALA_EXTERN const gchar* qlite_column_get_default (QliteColumn* self);
VALA_EXTERN void qlite_column_set_default (QliteColumn* self,
                               const gchar* value);
VALA_EXTERN gint qlite_column_get_sqlite_type (QliteColumn* self);
VALA_EXTERN gboolean qlite_column_get_primary_key (QliteColumn* self);
VALA_EXTERN void qlite_column_set_primary_key (QliteColumn* self,
                                   gboolean value);
VALA_EXTERN gboolean qlite_column_get_auto_increment (QliteColumn* self);
VALA_EXTERN void qlite_column_set_auto_increment (QliteColumn* self,
                                      gboolean value);
VALA_EXTERN gboolean qlite_column_get_unique (QliteColumn* self);
VALA_EXTERN void qlite_column_set_unique (QliteColumn* self,
                              gboolean value);
VALA_EXTERN gboolean qlite_column_get_not_null (QliteColumn* self);
VALA_EXTERN void qlite_column_set_not_null (QliteColumn* self,
                                gboolean value);
VALA_EXTERN glong qlite_column_get_min_version (QliteColumn* self);
VALA_EXTERN void qlite_column_set_min_version (QliteColumn* self,
                                   glong value);
VALA_EXTERN glong qlite_column_get_max_version (QliteColumn* self);
VALA_EXTERN void qlite_column_set_max_version (QliteColumn* self,
                                   glong value);
VALA_EXTERN GType qlite_column_integer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnInteger, qlite_column_unref)
VALA_EXTERN QliteColumnInteger* qlite_column_integer_new (const gchar* name);
VALA_EXTERN QliteColumnInteger* qlite_column_integer_construct (GType object_type,
                                                    const gchar* name);
VALA_EXTERN GType qlite_column_long_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnLong, qlite_column_unref)
VALA_EXTERN QliteColumnLong* qlite_column_long_new (const gchar* name);
VALA_EXTERN QliteColumnLong* qlite_column_long_construct (GType object_type,
                                              const gchar* name);
VALA_EXTERN GType qlite_column_nullable_real_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnNullableReal, qlite_column_unref)
VALA_EXTERN QliteColumnNullableReal* qlite_column_nullable_real_new (const gchar* name);
VALA_EXTERN QliteColumnNullableReal* qlite_column_nullable_real_construct (GType object_type,
                                                               const gchar* name);
VALA_EXTERN GType qlite_column_text_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnText, qlite_column_unref)
VALA_EXTERN QliteColumnText* qlite_column_text_new (const gchar* name);
VALA_EXTERN QliteColumnText* qlite_column_text_construct (GType object_type,
                                              const gchar* name);
VALA_EXTERN GType qlite_column_non_null_text_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnNonNullText, qlite_column_unref)
VALA_EXTERN QliteColumnNonNullText* qlite_column_non_null_text_new (const gchar* name);
VALA_EXTERN QliteColumnNonNullText* qlite_column_non_null_text_construct (GType object_type,
                                                              const gchar* name);
VALA_EXTERN GType qlite_column_bool_text_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnBoolText, qlite_column_unref)
VALA_EXTERN QliteColumnBoolText* qlite_column_bool_text_new (const gchar* name);
VALA_EXTERN QliteColumnBoolText* qlite_column_bool_text_construct (GType object_type,
                                                       const gchar* name);
VALA_EXTERN GType qlite_column_bool_int_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteColumnBoolInt, qlite_column_unref)
VALA_EXTERN QliteColumnBoolInt* qlite_column_bool_int_new (const gchar* name);
VALA_EXTERN QliteColumnBoolInt* qlite_column_bool_int_construct (GType object_type,
                                                     const gchar* name);
VALA_EXTERN gpointer qlite_database_ref (gpointer instance);
VALA_EXTERN void qlite_database_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_database (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
VALA_EXTERN void qlite_value_set_database (GValue* value,
                               gpointer v_object);
VALA_EXTERN void qlite_value_take_database (GValue* value,
                                gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_database (const GValue* value);
VALA_EXTERN GType qlite_database_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteDatabase, qlite_database_unref)
VALA_EXTERN QliteDatabase* qlite_database_new (const gchar* file_name,
                                   glong expected_version);
VALA_EXTERN QliteDatabase* qlite_database_construct (GType object_type,
                                         const gchar* file_name,
                                         glong expected_version);
VALA_EXTERN gpointer qlite_table_ref (gpointer instance);
VALA_EXTERN void qlite_table_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_table (const gchar* name,
                                    const gchar* nick,
                                    const gchar* blurb,
                                    GType object_type,
                                    GParamFlags flags);
VALA_EXTERN void qlite_value_set_table (GValue* value,
                            gpointer v_object);
VALA_EXTERN void qlite_value_take_table (GValue* value,
                             gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_table (const GValue* value);
VALA_EXTERN GType qlite_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteTable, qlite_table_unref)
VALA_EXTERN void qlite_database_init (QliteDatabase* self,
                          QliteTable** tables,
                          gint tables_length1);
VALA_EXTERN void qlite_database_ensure_init (QliteDatabase* self);
VALA_EXTERN void qlite_database_migrate (QliteDatabase* self,
                             glong old_version);
VALA_EXTERN gpointer qlite_statement_builder_ref (gpointer instance);
VALA_EXTERN void qlite_statement_builder_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_statement_builder (const gchar* name,
                                                const gchar* nick,
                                                const gchar* blurb,
                                                GType object_type,
                                                GParamFlags flags);
VALA_EXTERN void qlite_value_set_statement_builder (GValue* value,
                                        gpointer v_object);
VALA_EXTERN void qlite_value_take_statement_builder (GValue* value,
                                         gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_statement_builder (const GValue* value);
VALA_EXTERN GType qlite_statement_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteStatementBuilder, qlite_statement_builder_unref)
VALA_EXTERN GType qlite_query_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteQueryBuilder, qlite_statement_builder_unref)
VALA_EXTERN QliteQueryBuilder* qlite_database_select (QliteDatabase* self,
                                          QliteColumn** columns,
                                          gint columns_length1);
VALA_EXTERN GType qlite_insert_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteInsertBuilder, qlite_statement_builder_unref)
VALA_EXTERN QliteInsertBuilder* qlite_database_insert (QliteDatabase* self);
VALA_EXTERN GType qlite_update_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteUpdateBuilder, qlite_statement_builder_unref)
VALA_EXTERN QliteUpdateBuilder* qlite_database_update (QliteDatabase* self,
                                           QliteTable* table);
VALA_EXTERN GType qlite_upsert_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteUpsertBuilder, qlite_statement_builder_unref)
VALA_EXTERN QliteUpsertBuilder* qlite_database_upsert (QliteDatabase* self,
                                           QliteTable* table);
VALA_EXTERN QliteUpdateBuilder* qlite_database_update_named (QliteDatabase* self,
                                                 const gchar* table);
VALA_EXTERN GType qlite_delete_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteDeleteBuilder, qlite_statement_builder_unref)
VALA_EXTERN QliteDeleteBuilder* qlite_database_delete (QliteDatabase* self);
VALA_EXTERN gpointer qlite_row_iterator_ref (gpointer instance);
VALA_EXTERN void qlite_row_iterator_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_row_iterator (const gchar* name,
                                           const gchar* nick,
                                           const gchar* blurb,
                                           GType object_type,
                                           GParamFlags flags);
VALA_EXTERN void qlite_value_set_row_iterator (GValue* value,
                                   gpointer v_object);
VALA_EXTERN void qlite_value_take_row_iterator (GValue* value,
                                    gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_row_iterator (const GValue* value);
VALA_EXTERN GType qlite_row_iterator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteRowIterator, qlite_row_iterator_unref)
VALA_EXTERN QliteRowIterator* qlite_database_query_sql (QliteDatabase* self,
                                            const gchar* sql,
                                            gchar** args,
                                            gint args_length1);
VALA_EXTERN void qlite_database_exec (QliteDatabase* self,
                          const gchar* sql,
                          GError** error);
VALA_EXTERN gboolean qlite_database_is_known_column (QliteDatabase* self,
                                         const gchar* table,
                                         const gchar* field);
VALA_EXTERN QliteDeleteBuilder* qlite_delete_builder_from (QliteDeleteBuilder* self,
                                               QliteTable* table);
VALA_EXTERN QliteDeleteBuilder* qlite_delete_builder_from_name (QliteDeleteBuilder* self,
                                                    const gchar* table);
VALA_EXTERN QliteDeleteBuilder* qlite_delete_builder_where (QliteDeleteBuilder* self,
                                                const gchar* selection,
                                                gchar** selection_args,
                                                gint selection_args_length1);
VALA_EXTERN QliteDeleteBuilder* qlite_delete_builder_with (QliteDeleteBuilder* self,
                                               GType t_type,
                                               GBoxedCopyFunc t_dup_func,
                                               GDestroyNotify t_destroy_func,
                                               QliteColumn* column,
                                               const gchar* comp,
                                               gconstpointer value);
VALA_EXTERN void qlite_delete_builder_perform (QliteDeleteBuilder* self);
VALA_EXTERN QliteInsertBuilder* qlite_insert_builder_replace (QliteInsertBuilder* self);
VALA_EXTERN QliteInsertBuilder* qlite_insert_builder_or (QliteInsertBuilder* self,
                                             const gchar* or);
VALA_EXTERN QliteInsertBuilder* qlite_insert_builder_into (QliteInsertBuilder* self,
                                               QliteTable* table);
VALA_EXTERN QliteInsertBuilder* qlite_insert_builder_into_name (QliteInsertBuilder* self,
                                                    const gchar* table);
VALA_EXTERN QliteInsertBuilder* qlite_insert_builder_value (QliteInsertBuilder* self,
                                                GType t_type,
                                                GBoxedCopyFunc t_dup_func,
                                                GDestroyNotify t_destroy_func,
                                                QliteColumn* column,
                                                gconstpointer value);
VALA_EXTERN QliteInsertBuilder* qlite_insert_builder_value_null (QliteInsertBuilder* self,
                                                     GType t_type,
                                                     GBoxedCopyFunc t_dup_func,
                                                     GDestroyNotify t_destroy_func,
                                                     QliteColumn* column);
VALA_EXTERN gint64 qlite_insert_builder_perform (QliteInsertBuilder* self);
VALA_EXTERN gpointer qlite_statement_builder_abstract_field_ref (gpointer instance);
VALA_EXTERN void qlite_statement_builder_abstract_field_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_statement_builder_param_spec_abstract_field (const gchar* name,
                                                               const gchar* nick,
                                                               const gchar* blurb,
                                                               GType object_type,
                                                               GParamFlags flags);
VALA_EXTERN void qlite_statement_builder_value_set_abstract_field (GValue* value,
                                                       gpointer v_object);
VALA_EXTERN void qlite_statement_builder_value_take_abstract_field (GValue* value,
                                                        gpointer v_object);
VALA_EXTERN gpointer qlite_statement_builder_value_get_abstract_field (const GValue* value);
VALA_EXTERN GType qlite_statement_builder_abstract_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteStatementBuilderAbstractField, qlite_statement_builder_abstract_field_unref)
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_select (QliteQueryBuilder* self,
                                               QliteColumn** columns,
                                               gint columns_length1);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_select_string (QliteQueryBuilder* self,
                                                      const gchar* column_selector);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_from (QliteQueryBuilder* self,
                                             QliteTable* table);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_from_name (QliteQueryBuilder* self,
                                                  const gchar* table);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_outer_join_with (QliteQueryBuilder* self,
                                                        GType t_type,
                                                        GBoxedCopyFunc t_dup_func,
                                                        GDestroyNotify t_destroy_func,
                                                        QliteTable* table,
                                                        QliteColumn* lhs,
                                                        QliteColumn* rhs,
                                                        const gchar* as);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_outer_join_on (QliteQueryBuilder* self,
                                                      QliteTable* table,
                                                      const gchar* on,
                                                      const gchar* as);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_join_with (QliteQueryBuilder* self,
                                                  GType t_type,
                                                  GBoxedCopyFunc t_dup_func,
                                                  GDestroyNotify t_destroy_func,
                                                  QliteTable* table,
                                                  QliteColumn* lhs,
                                                  QliteColumn* rhs,
                                                  const gchar* as);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_join_on (QliteQueryBuilder* self,
                                                QliteTable* table,
                                                const gchar* on,
                                                const gchar* as);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_where (QliteQueryBuilder* self,
                                              const gchar* selection,
                                              gchar** selection_args,
                                              gint selection_args_length1);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_with (QliteQueryBuilder* self,
                                             GType t_type,
                                             GBoxedCopyFunc t_dup_func,
                                             GDestroyNotify t_destroy_func,
                                             QliteColumn* column,
                                             const gchar* comp,
                                             gconstpointer value);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_with_null (QliteQueryBuilder* self,
                                                  GType t_type,
                                                  GBoxedCopyFunc t_dup_func,
                                                  GDestroyNotify t_destroy_func,
                                                  QliteColumn* column);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_without_null (QliteQueryBuilder* self,
                                                     GType t_type,
                                                     GBoxedCopyFunc t_dup_func,
                                                     GDestroyNotify t_destroy_func,
                                                     QliteColumn* column);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_order_by (QliteQueryBuilder* self,
                                                 QliteColumn* column,
                                                 const gchar* dir);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_order_by_name (QliteQueryBuilder* self,
                                                      const gchar* name,
                                                      const gchar* dir);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_group_by (QliteQueryBuilder* self,
                                                 QliteColumn** columns,
                                                 gint columns_length1);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_limit (QliteQueryBuilder* self,
                                              gint limit);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_offset (QliteQueryBuilder* self,
                                               gint offset);
VALA_EXTERN QliteQueryBuilder* qlite_query_builder_single (QliteQueryBuilder* self);
VALA_EXTERN gint64 qlite_query_builder_count (QliteQueryBuilder* self);
VALA_EXTERN gpointer qlite_row_option_ref (gpointer instance);
VALA_EXTERN void qlite_row_option_unref (gpointer instance);
VALA_EXTERN GParamSpec* qlite_param_spec_row_option (const gchar* name,
                                         const gchar* nick,
                                         const gchar* blurb,
                                         GType object_type,
                                         GParamFlags flags);
VALA_EXTERN void qlite_value_set_row_option (GValue* value,
                                 gpointer v_object);
VALA_EXTERN void qlite_value_take_row_option (GValue* value,
                                  gpointer v_object);
VALA_EXTERN gpointer qlite_value_get_row_option (const GValue* value);
VALA_EXTERN GType qlite_row_option_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteRowOption, qlite_row_option_unref)
VALA_EXTERN QliteRowOption* qlite_query_builder_row (QliteQueryBuilder* self);
VALA_EXTERN gpointer qlite_query_builder_get (QliteQueryBuilder* self,
                                  GType t_type,
                                  GBoxedCopyFunc t_dup_func,
                                  GDestroyNotify t_destroy_func,
                                  QliteColumn* field,
                                  gconstpointer def);
VALA_EXTERN QliteRowIterator* qlite_query_builder_iterator (QliteQueryBuilder* self);
VALA_EXTERN GType qlite_match_query_builder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QliteMatchQueryBuilder, qlite_statement_builder_unref)
VALA_EXTERN QliteMatchQueryBuilder* qlite_match_query_builder_match (QliteMatchQueryBuilder* self,
                                                         QliteColumn* column,
                                                         const gchar* match);
VALA_EXTERN gpointer qlite_row_get (QliteRow* self,
                        GType t_type,
                        GBoxedCopyFunc t_dup_func,
                        GDestroyNotify t_destroy_func,
                        QliteColumn* field);
VALA_EXTERN gchar* qlite_row_get_text (QliteRow* self,
                           const gchar* field,
                           const gchar* table);
VALA_EXTERN glong qlite_row_get_integer (QliteRow* self,
                             const gchar* field,
                             const gchar* table);
VALA_EXTERN gboolean qlite_row_has_integer (QliteRow* self,
                                const gchar* field,
                                const gchar* table);
VALA_EXTERN gdouble qlite_row_get_real (QliteRow* self,
                            const gchar* field,
                            const gchar* table,
                            gdouble def);
VALA_EXTERN gboolean qlite_row_has_real (QliteRow* self,
                             const gchar* field,
                             const gchar* table);
VALA_EXTERN gchar* qlite_row_to_string (QliteRow* self);
VALA_EXTERN QliteRowIterator* qlite_row_iterator_new_from_query_builder (QliteDatabase* db,
                                                             QliteQueryBuilder* query);
VALA_EXTERN QliteRowIterator* qlite_row_iterator_construct_from_query_builder (GType object_type,
                                                                   QliteDatabase* db,
                                                                   QliteQueryBuilder* query);
VALA_EXTERN QliteRowIterator* qlite_row_iterator_new (QliteDatabase* db,
                                          const gchar* sql,
                                          gchar** args,
                                          gint args_length1);
VALA_EXTERN QliteRowIterator* qlite_row_iterator_construct (GType object_type,
                                                QliteDatabase* db,
                                                const gchar* sql,
                                                gchar** args,
                                                gint args_length1);
VALA_EXTERN gboolean qlite_row_iterator_next (QliteRowIterator* self);
VALA_EXTERN QliteRow* qlite_row_iterator_get (QliteRowIterator* self);
VALA_EXTERN QliteRow* qlite_row_iterator_get_next (QliteRowIterator* self);
VALA_EXTERN QliteRowOption* qlite_row_option_new (QliteRow* row);
VALA_EXTERN QliteRowOption* qlite_row_option_construct (GType object_type,
                                            QliteRow* row);
VALA_EXTERN gboolean qlite_row_option_is_present (QliteRowOption* self);
VALA_EXTERN gpointer qlite_row_option_get (QliteRowOption* self,
                               GType t_type,
                               GBoxedCopyFunc t_dup_func,
                               GDestroyNotify t_destroy_func,
                               QliteColumn* field,
                               gconstpointer def);
VALA_EXTERN QliteRow* qlite_row_option_get_inner (QliteRowOption* self);
VALA_EXTERN QliteTable* qlite_table_new (QliteDatabase* db,
                             const gchar* name);
VALA_EXTERN QliteTable* qlite_table_construct (GType object_type,
                                   QliteDatabase* db,
                                   const gchar* name);
VALA_EXTERN void qlite_table_init (QliteTable* self,
                       QliteColumn** columns,
                       gint columns_length1,
                       const gchar* constraints);
VALA_EXTERN void qlite_table_fts (QliteTable* self,
                      QliteColumn** columns,
                      gint columns_length1);
VALA_EXTERN void qlite_table_fts_rebuild (QliteTable* self);
VALA_EXTERN void qlite_table_unique (QliteTable* self,
                         QliteColumn** columns,
                         gint columns_length1,
                         const gchar* on_conflict);
VALA_EXTERN void qlite_table_add_post_statement (QliteTable* self,
                                     const gchar* stmt);
VALA_EXTERN void qlite_table_add_create_statement (QliteTable* self,
                                       const gchar* stmt);
VALA_EXTERN void qlite_table_index (QliteTable* self,
                        const gchar* index_name,
                        QliteColumn** columns,
                        gint columns_length1,
                        gboolean unique);
VALA_EXTERN QliteQueryBuilder* qlite_table_select (QliteTable* self,
                                       QliteColumn** columns,
                                       gint columns_length1);
VALA_EXTERN QliteMatchQueryBuilder* qlite_table_match (QliteTable* self,
                                           QliteColumn* column,
                                           const gchar* query);
VALA_EXTERN QliteInsertBuilder* qlite_table_insert (QliteTable* self);
VALA_EXTERN QliteUpdateBuilder* qlite_table_update (QliteTable* self);
VALA_EXTERN QliteUpsertBuilder* qlite_table_upsert (QliteTable* self);
VALA_EXTERN QliteDeleteBuilder* qlite_table_delete (QliteTable* self);
VALA_EXTERN QliteRowOption* qlite_table_row_with (QliteTable* self,
                                      GType t_type,
                                      GBoxedCopyFunc t_dup_func,
                                      GDestroyNotify t_destroy_func,
                                      QliteColumn* column,
                                      gconstpointer value);
VALA_EXTERN gboolean qlite_table_is_known_column (QliteTable* self,
                                      const gchar* column);
VALA_EXTERN void qlite_table_create_table_at_version (QliteTable* self,
                                          glong version);
VALA_EXTERN void qlite_table_add_columns_for_version (QliteTable* self,
                                          glong old_version,
                                          glong new_version);
VALA_EXTERN void qlite_table_delete_columns_for_version (QliteTable* self,
                                             glong old_version,
                                             glong new_version);
VALA_EXTERN const gchar* qlite_table_get_name (QliteTable* self);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_or (QliteUpdateBuilder* self,
                                             const gchar* or);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_set (QliteUpdateBuilder* self,
                                              GType t_type,
                                              GBoxedCopyFunc t_dup_func,
                                              GDestroyNotify t_destroy_func,
                                              QliteColumn* column,
                                              gconstpointer value);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_set_null (QliteUpdateBuilder* self,
                                                   GType t_type,
                                                   GBoxedCopyFunc t_dup_func,
                                                   GDestroyNotify t_destroy_func,
                                                   QliteColumn* column);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_where (QliteUpdateBuilder* self,
                                                const gchar* selection,
                                                gchar** selection_args,
                                                gint selection_args_length1);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_with (QliteUpdateBuilder* self,
                                               GType t_type,
                                               GBoxedCopyFunc t_dup_func,
                                               GDestroyNotify t_destroy_func,
                                               QliteColumn* column,
                                               const gchar* comp,
                                               gconstpointer value);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_with_null (QliteUpdateBuilder* self,
                                                    GType t_type,
                                                    GBoxedCopyFunc t_dup_func,
                                                    GDestroyNotify t_destroy_func,
                                                    QliteColumn* column);
VALA_EXTERN QliteUpdateBuilder* qlite_update_builder_without_null (QliteUpdateBuilder* self,
                                                       GType t_type,
                                                       GBoxedCopyFunc t_dup_func,
                                                       GDestroyNotify t_destroy_func,
                                                       QliteColumn* column);
VALA_EXTERN void qlite_update_builder_perform (QliteUpdateBuilder* self);
VALA_EXTERN QliteUpsertBuilder* qlite_upsert_builder_value (QliteUpsertBuilder* self,
                                                GType t_type,
                                                GBoxedCopyFunc t_dup_func,
                                                GDestroyNotify t_destroy_func,
                                                QliteColumn* column,
                                                gconstpointer value,
                                                gboolean key);
VALA_EXTERN QliteUpsertBuilder* qlite_upsert_builder_value_null (QliteUpsertBuilder* self,
                                                     GType t_type,
                                                     GBoxedCopyFunc t_dup_func,
                                                     GDestroyNotify t_destroy_func,
                                                     QliteColumn* column,
                                                     gboolean key);
VALA_EXTERN gint64 qlite_upsert_builder_perform (QliteUpsertBuilder* self);

G_END_DECLS

#endif
