diff options
| author | Marvin W <git@larma.de> | 2026-08-23 19:32:25 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-10-23 16:59:51 +0200 |
| commit | 98ef191bfb3cc5694b9d1001e46a9b00abbd7195 (patch) | |
| tree | b6d30b203266afe44f0b5ae8aaf479960e361273 /qlite/src/column.vala | |
| parent | b0456e13ed35e6ebf684b3a7f4d1cb4b6ec352cc (diff) | |
Move qlite into libdino
Diffstat (limited to 'qlite/src/column.vala')
| -rw-r--r-- | qlite/src/column.vala | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/qlite/src/column.vala b/qlite/src/column.vala deleted file mode 100644 index 36c8fcff..00000000 --- a/qlite/src/column.vala +++ /dev/null @@ -1,190 +0,0 @@ -using Sqlite; - -namespace Qlite { - -public abstract class Column<T> { - public const string DEFAULT_TABLE_NAME = ""; - - public string name { get; private set; } - public string? default { get; set; } - public int sqlite_type { get; private set; } - public bool primary_key { get; set; } - public bool auto_increment { get; set; } - public bool unique { get; set; } - public virtual bool not_null { get; set; } - public long min_version { get; set; default = -1; } - public long max_version { get; set; default = long.MAX; } - internal Table table { get; set; } - - public abstract T get(Row row, string? table_name = DEFAULT_TABLE_NAME); - - public virtual bool is_null(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return false; - } - - internal abstract void bind(Statement stmt, int index, T value); - - public string to_string() { - return table == null ? name : (table.name + "." + name); - } - - public string to_column_definition() { - string res = name; - switch (sqlite_type) { - case INTEGER: - res += " INTEGER"; - break; - case FLOAT: - res += " REAL"; - break; - case TEXT: - res += " TEXT"; - break; - default: - res += " UNKNOWN"; - break; - } - if (primary_key) { - res += " PRIMARY KEY"; - if (auto_increment) res += " AUTOINCREMENT"; - } - if (not_null) res += " NOT NULL"; - if (unique) res += " UNIQUE"; - if (default != null) res += @" DEFAULT $((!) default)"; - - return res; - } - - Column(string name, int type) { - this.name = name; - this.sqlite_type = type; - } - - public class Integer : Column<int> { - public Integer(string name) { - base(name, INTEGER); - } - - public override int get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return (int) row.get_integer(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - public override bool is_null(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return !row.has_integer(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - internal override void bind(Statement stmt, int index, int value) { - stmt.bind_int(index, value); - } - } - - public class Long : Column<long> { - public Long(string name) { - base(name, INTEGER); - } - - public override long get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return (long) row.get_integer(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - public override bool is_null(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return !row.has_integer(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - internal override void bind(Statement stmt, int index, long value) { - stmt.bind_int64(index, value); - } - } - - public class NullableReal : Column<double?> { - public NullableReal(string name) { - base(name, FLOAT); - } - - public override bool not_null { get { return false; } set {} } - - public override double? get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return row.get_real(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - public override bool is_null(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return !row.has_real(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - internal override void bind(Statement stmt, int index, double? value) { - stmt.bind_double(index, value); - } - } - - public class Text : Column<string?> { - public Text(string name) { - base(name, TEXT); - } - - public override string? get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return row.get_text(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - public override bool is_null(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return get(row, table_name == DEFAULT_TABLE_NAME ? table.name : table_name) == null; - } - - internal override void bind(Statement stmt, int index, string? value) { - if (value != null) { - stmt.bind_text(index, (!) value); - } else { - stmt.bind_null(index); - } - } - } - - public class NonNullText : Column<string> { - public NonNullText(string name) { - base(name, TEXT); - } - - public override bool not_null { get { return true; } set {} } - - public override string get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return (!)row.get_text(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name); - } - - public override bool is_null(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return false; - } - - internal override void bind(Statement stmt, int index, string value) { - stmt.bind_text(index, (!) value); - } - } - - public class BoolText : Column<bool> { - public BoolText(string name) { - base(name, TEXT); - } - - public override bool get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return row.get_text(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name) == "1"; - } - - internal override void bind(Statement stmt, int index, bool value) { - stmt.bind_text(index, value ? "1" : "0"); - } - } - - public class BoolInt : Column<bool> { - public BoolInt(string name) { - base(name, INTEGER); - } - - public override bool get(Row row, string? table_name = DEFAULT_TABLE_NAME) { - return row.get_integer(name, table_name == DEFAULT_TABLE_NAME ? table.name : table_name) == 1; - } - - internal override void bind(Statement stmt, int index, bool value) { - stmt.bind_int(index, value ? 1 : 0); - } - } -} - -} |
