@@ -7766,17 +7766,17 @@ def execute(
7766
7766
def column_info (self , table ):
7767
7767
meta_data = self .con .getMetaData ()
7768
7768
rs = meta_data .getColumns (None , None , table , None )
7769
-
7769
+ print ( "Getting column info..." )
7770
7770
col_info = ColumnInfo (self , table )
7771
7771
pk_columns = [self .pk_column (table )]
7772
-
7772
+ print ( "pk_columns" , pk_columns )
7773
7773
while rs .next ():
7774
- name = str (rs .getString ("COLUMN_NAME " ))
7774
+ name = str (rs .getString ("column_name " ))
7775
7775
domain = str (rs .getString ("TYPE_NAME" )).upper ()
7776
7776
notnull = str (rs .getString ("IS_NULLABLE" )) == "NO"
7777
7777
default = str (rs .getString ("COLUMN_DEF" ))
7778
7778
pk = name in pk_columns
7779
-
7779
+ print ( "name" , name )
7780
7780
col_info .append (
7781
7781
Column (
7782
7782
name = name , domain = domain , notnull = notnull , default = default , pk = pk
@@ -7786,10 +7786,11 @@ def column_info(self, table):
7786
7786
return col_info
7787
7787
7788
7788
def pk_column (self , table ):
7789
+ print (f"Getting pk_column for { table } " )
7789
7790
meta_data = self .con .getMetaData ()
7790
7791
rs = meta_data .getPrimaryKeys (None , None , table )
7791
7792
if rs .next ():
7792
- return str (rs .getString ("COLUMN_NAME " ))
7793
+ return str (rs .getString ("column_name " ))
7793
7794
return None
7794
7795
7795
7796
def get_tables (self ):
@@ -7858,6 +7859,7 @@ def _get_column_definitions(self, table_name):
7858
7859
# Creates a comma separated list of column names and types to be used in a
7859
7860
# CREATE TABLE statement
7860
7861
columns = self .column_info (table_name )
7862
+ print ("columns" , columns )
7861
7863
cols = ""
7862
7864
for c in columns :
7863
7865
cols += f"{ c ['name' ]} { c ['domain' ]} , "
@@ -7875,35 +7877,35 @@ def duplicate_record(self, dataset: DataSet, children: bool) -> pd.DataFrame:
7875
7877
f"{ lang .duplicate_prepend } "
7876
7878
f"{ dataset .get_description_for_pk (dataset .get_current_pk ())} "
7877
7879
)
7878
- table = self . quote_table ( dataset .table )
7879
- tmp_table = self . quote_table ( f"temp_{ dataset .table } " )
7880
- pk_column = self . quote_column ( dataset .pk_column )
7881
- description_column = self . quote_column ( dataset .description_column )
7880
+ table = dataset .table
7881
+ tmp_table = f"temp_{ dataset .table } "
7882
+ pk_column = dataset .pk_column
7883
+ description_column = dataset .description_column
7882
7884
7883
7885
# Create tmp table, update pk column in temp and insert into table
7884
7886
f"WHERE { pk_column } ={ dataset .get_current (dataset .pk_column )} "
7885
7887
query = [
7886
- f"DROP TABLE IF EXISTS { tmp_table } ;" ,
7887
- f"CREATE TABLE { tmp_table } ({ self ._get_column_definitions (table )} );" ,
7888
+ f"DROP TABLE IF EXISTS [ { tmp_table } ] ;" ,
7889
+ f"CREATE TABLE [ { tmp_table } ] ({ self ._get_column_definitions (table )} );" ,
7888
7890
(
7889
- f"INSERT INTO { tmp_table } (SELECT * FROM { table } "
7891
+ f"INSERT INTO [ { tmp_table } ] (SELECT * FROM [ { table } ] "
7890
7892
f"WHERE { pk_column } ={ dataset .get_current (dataset .pk_column )} );"
7891
7893
),
7892
7894
(
7893
- f"UPDATE { tmp_table } SET { pk_column } = "
7895
+ f"UPDATE [ { tmp_table } ] SET { pk_column } = "
7894
7896
f"{ self .next_pk (dataset .table , dataset .pk_column )} ;"
7895
7897
),
7896
- f"UPDATE { tmp_table } ]SET { description_column } = { description } " ,
7897
- f"INSERT INTO { table } SELECT * FROM { tmp_table } ;" ,
7898
- f"DROP TABLE IF EXISTS { tmp_table } " ,
7898
+ f"UPDATE [ { tmp_table } ] SET { description_column } = { description } " ,
7899
+ f"INSERT INTO [ { table } ] SELECT * FROM [ { tmp_table } ] ;" ,
7900
+ f"DROP TABLE IF EXISTS [ { tmp_table } ] " ,
7899
7901
]
7900
7902
for q in query :
7901
7903
res = self .execute (q )
7902
7904
if res .attrs ["exception" ]:
7903
7905
return res
7904
7906
7905
7907
# Now we save the new pk
7906
- pk = res .lastrowid
7908
+ pk = res .attrs [ " lastrowid" ]
7907
7909
7908
7910
# create list of which children we have duplicated
7909
7911
child_duplicated = []
@@ -7916,31 +7918,29 @@ def duplicate_record(self, dataset: DataSet, children: bool) -> pd.DataFrame:
7916
7918
and r .on_update_cascade
7917
7919
and (r .child_table not in child_duplicated )
7918
7920
):
7919
- child = self .quote_table (r .child_table )
7920
- tmp_child = self .quote_table (f"temp_{ r .child_table } " )
7921
- pk_column = self .quote_column (
7922
- dataset .frm [r .child_table ].pk_column
7923
- )
7924
- fk_column = self .quote_column (r .fk_column )
7921
+ child = r .child_table
7922
+ tmp_child = f"temp_{ r .child_table } "
7923
+ pk_column = dataset .frm [r .child_table ].pk_column
7924
+ fk_column = r .fk_column
7925
7925
7926
7926
# Update children's pk_columns to NULL and set correct parent
7927
7927
# PK value.
7928
7928
queries = [
7929
- f"DROP TABLE IF EXISTS { tmp_child } " ,
7929
+ f"DROP TABLE IF EXISTS [ { tmp_child } ] " ,
7930
7930
(
7931
- f"CREATE TABLE { tmp_table } "
7931
+ f"CREATE TABLE [ { tmp_table } ] "
7932
7932
f"({ self ._get_column_definitions (table )} );"
7933
7933
),
7934
7934
(
7935
- f"INSERT INTO { tmp_table } (SELECT * FROM { table } "
7935
+ f"INSERT INTO [ { tmp_table } ] (SELECT * FROM [ { table } ] "
7936
7936
f"WHERE { pk_column } ="
7937
7937
f"{ dataset .get_current (dataset .pk_column )} );"
7938
7938
),
7939
7939
# don't next_pk(), because child can be plural.
7940
- f"UPDATE { tmp_child } SET { pk_column } = NULL;" ,
7941
- f"UPDATE { tmp_child } SET { fk_column } = { pk } " ,
7942
- f"INSERT INTO { child } SELECT * FROM { tmp_child } ;" ,
7943
- f"DROP TABLE IF EXISTS { tmp_child } " ,
7940
+ f"UPDATE [ { tmp_child } ] SET { pk_column } = NULL;" ,
7941
+ f"UPDATE [ { tmp_child } ] SET { fk_column } = { pk } " ,
7942
+ f"INSERT INTO [ { child } ] SELECT * FROM [ { tmp_child } ] ;" ,
7943
+ f"DROP TABLE IF EXISTS [ { tmp_child } ] " ,
7944
7944
]
7945
7945
for q in queries :
7946
7946
res = self .execute (q )
0 commit comments