From 89f3987e6b0d6a35dde7077db1d8b212a3d3a2d7 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Fri, 23 Aug 2019 23:07:31 +0200 Subject: [PATCH] Fix generation of PRIMARY KEY constraint on int column --- moor/lib/src/runtime/structure/columns.dart | 2 +- moor/test/columns/int_column_test.dart | 38 +++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 moor/test/columns/int_column_test.dart diff --git a/moor/lib/src/runtime/structure/columns.dart b/moor/lib/src/runtime/structure/columns.dart index 02055d7d..5d736638 100644 --- a/moor/lib/src/runtime/structure/columns.dart +++ b/moor/lib/src/runtime/structure/columns.dart @@ -206,7 +206,7 @@ class GeneratedIntColumn extends GeneratedColumn if (hasAutoIncrement) { into.write(' PRIMARY KEY AUTOINCREMENT'); } else if (declaredAsPrimaryKey) { - into.write('PRIMARY KEY'); + into.write(' PRIMARY KEY'); } } diff --git a/moor/test/columns/int_column_test.dart b/moor/test/columns/int_column_test.dart new file mode 100644 index 00000000..f9d4922a --- /dev/null +++ b/moor/test/columns/int_column_test.dart @@ -0,0 +1,38 @@ +import 'package:moor/src/runtime/components/component.dart'; +import 'package:test_api/test_api.dart'; +import 'package:moor/moor.dart'; + +import '../data/tables/todos.dart'; + +void main() { + test('int column writes AUTOINCREMENT constraint', () { + final column = GeneratedIntColumn( + 'foo', + 'tbl', + false, + declaredAsPrimaryKey: true, + hasAutoIncrement: true, + ); + + final context = GenerationContext.fromDb(TodoDb(null)); + column.writeColumnDefinition(context); + + expect( + context.sql, equals('foo INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT')); + }); + + test('int column writes PRIMARY KEY constraint', () { + final column = GeneratedIntColumn( + 'foo', + 'tbl', + false, + declaredAsPrimaryKey: true, + hasAutoIncrement: false, + ); + + final context = GenerationContext.fromDb(TodoDb(null)); + column.writeColumnDefinition(context); + + expect(context.sql, equals('foo INTEGER NOT NULL PRIMARY KEY')); + }); +}