mustafasrepo commented on code in PR #7160:
URL: https://github.com/apache/arrow-datafusion/pull/7160#discussion_r1281471141


##########
datafusion/sql/tests/sql_integration.rs:
##########
@@ -233,6 +233,25 @@ fn plan_create_table_with_pk() {
     let sql = "create table person (id int, name string, primary key(id))";
     let plan = r#"
 CreateMemoryTable: Bare { table: "person" } constraints=[PrimaryKey([0])]
+  EmptyRelation
+    "#
+    .trim();
+    quick_test(sql, plan);
+
+    let sql = "create table person (id int primary key, name string)";
+    let plan = r#"
+CreateMemoryTable: Bare { table: "person" } constraints=[PrimaryKey([0])]
+  EmptyRelation
+    "#
+    .trim();
+    quick_test(sql, plan);
+}
+
+#[test]
+fn plan_create_table_with_multi_pk() {
+    let sql = "create table person (id int, name string primary key, primary 
key(id))";

Review Comment:
   > I am not sure this means a multi part primary key -- postgres errors on 
this syntax
   > 
   > ```sql
   > postgres=# create table person (id int, name varchar primary key, primary 
key(id));
   > ERROR:  multiple primary keys for table "person" are not allowed
   > LINE 1: ...e table person (id int, name varchar primary key, primary ke...
   > ```
   > 
   > I think the way this is supposed to be expressed is like
   > 
   > ```sql
   > create table person (id int, name varchar,  primary key(name,  id));
   > ```
   
   I guess it is better to follow postgres in this case. Postgres supports 
multiple unique constraints. Hence following query
   ```sql
   create table person (id int, name string primary key, primary key(id))
   ```
   can be written as 
   ```sql
   create table person (id int, name string unique not null, primary key(id))
   ```
   to define unique constraint. For writing composite primary key one have to 
use following syntax
   ```sql
   create table person (id int, name varchar,  primary key(name,  id));
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to