pg_query 2.1.4 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/Rakefile +2 -2
- data/ext/pg_query/include/access/twophase.h +2 -0
- data/ext/pg_query/include/access/xact.h +6 -0
- data/ext/pg_query/include/access/xlog_internal.h +10 -1
- data/ext/pg_query/include/access/xlogreader.h +10 -0
- data/ext/pg_query/include/catalog/dependency.h +2 -0
- data/ext/pg_query/include/catalog/pg_class.h +1 -1
- data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_control.h +2 -0
- data/ext/pg_query/include/catalog/pg_operator.h +3 -1
- data/ext/pg_query/include/catalog/pg_publication.h +3 -0
- data/ext/pg_query/include/catalog/pg_type.h +1 -0
- data/ext/pg_query/include/commands/async.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +2 -0
- data/ext/pg_query/include/commands/trigger.h +8 -0
- data/ext/pg_query/include/lib/simplehash.h +13 -13
- data/ext/pg_query/include/libpq/libpq.h +1 -0
- data/ext/pg_query/include/mb/pg_wchar.h +1 -0
- data/ext/pg_query/include/miscadmin.h +24 -11
- data/ext/pg_query/include/nodes/execnodes.h +2 -2
- data/ext/pg_query/include/nodes/parsenodes.h +5 -4
- data/ext/pg_query/include/nodes/pathnodes.h +2 -1
- data/ext/pg_query/include/nodes/pg_list.h +1 -0
- data/ext/pg_query/include/nodes/plannodes.h +18 -3
- data/ext/pg_query/include/optimizer/optimizer.h +0 -5
- data/ext/pg_query/include/parser/gram.h +2 -2
- data/ext/pg_query/include/parser/kwlist.h +1 -1
- data/ext/pg_query/include/parser/parse_coerce.h +1 -0
- data/ext/pg_query/include/pg_config.h +16 -13
- data/ext/pg_query/include/pg_query.h +2 -2
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +286 -314
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1 -0
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1 -0
- data/ext/pg_query/include/pgstat.h +2 -1
- data/ext/pg_query/include/plpgsql.h +2 -2
- data/ext/pg_query/include/port/pg_bitutils.h +48 -2
- data/ext/pg_query/include/port.h +4 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +4 -3
- data/ext/pg_query/include/replication/reorderbuffer.h +6 -5
- data/ext/pg_query/include/replication/slot.h +1 -1
- data/ext/pg_query/include/storage/block.h +1 -1
- data/ext/pg_query/include/storage/lock.h +6 -5
- data/ext/pg_query/include/storage/lwlock.h +1 -0
- data/ext/pg_query/include/storage/proc.h +14 -0
- data/ext/pg_query/include/storage/s_lock.h +24 -0
- data/ext/pg_query/include/tcop/pquery.h +6 -0
- data/ext/pg_query/include/utils/builtins.h +1 -0
- data/ext/pg_query/include/utils/inval.h +1 -0
- data/ext/pg_query/include/utils/portal.h +13 -0
- data/ext/pg_query/include/utils/rel.h +0 -1
- data/ext/pg_query/include/utils/relcache.h +1 -2
- data/ext/pg_query/include/utils/snapmgr.h +1 -0
- data/ext/pg_query/pg_query.pb-c.c +18 -5
- data/ext/pg_query/pg_query_deparse.c +8 -8
- data/ext/pg_query/pg_query_fingerprint.c +1 -0
- data/ext/pg_query/pg_query_json_plpgsql.c +68 -0
- data/ext/pg_query/pg_query_normalize.c +43 -7
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +11 -0
- data/ext/pg_query/pg_query_parse_plpgsql.c +58 -15
- data/ext/pg_query/src_backend_catalog_namespace.c +1 -0
- data/ext/pg_query/src_backend_libpq_pqcomm.c +8 -0
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +23 -33
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -0
- data/ext/pg_query/src_backend_nodes_list.c +12 -0
- data/ext/pg_query/src_backend_parser_gram.c +18 -3
- data/ext/pg_query/src_backend_parser_scan.c +493 -253
- data/ext/pg_query/src_backend_tcop_postgres.c +11 -1
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +38 -10
- data/ext/pg_query/src_backend_utils_misc_guc.c +1 -0
- data/ext/pg_query/src_common_wchar.c +11 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +4 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +1 -22
- data/ext/pg_query/src_port_snprintf.c +9 -7
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/fingerprint.rb +13 -2
- data/lib/pg_query/pg_query_pb.rb +2 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +3 -3
@@ -302,7 +302,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
302
302
|
|
303
303
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
304
304
|
_fingerprintNode(ctx, node->colcollations, node, "colcollations", depth + 1);
|
305
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
305
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colcollations) == 1 && linitial(node->colcollations) == NIL)) {
|
306
306
|
XXH3_copyState(ctx->xxh_state, prev);
|
307
307
|
if (ctx->write_tokens)
|
308
308
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -318,7 +318,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
318
318
|
|
319
319
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
320
320
|
_fingerprintNode(ctx, node->coldefexprs, node, "coldefexprs", depth + 1);
|
321
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
321
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coldefexprs) == 1 && linitial(node->coldefexprs) == NIL)) {
|
322
322
|
XXH3_copyState(ctx->xxh_state, prev);
|
323
323
|
if (ctx->write_tokens)
|
324
324
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -334,7 +334,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
334
334
|
|
335
335
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
336
336
|
_fingerprintNode(ctx, node->colexprs, node, "colexprs", depth + 1);
|
337
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
337
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colexprs) == 1 && linitial(node->colexprs) == NIL)) {
|
338
338
|
XXH3_copyState(ctx->xxh_state, prev);
|
339
339
|
if (ctx->write_tokens)
|
340
340
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -350,7 +350,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
350
350
|
|
351
351
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
352
352
|
_fingerprintNode(ctx, node->colnames, node, "colnames", depth + 1);
|
353
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
353
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colnames) == 1 && linitial(node->colnames) == NIL)) {
|
354
354
|
XXH3_copyState(ctx->xxh_state, prev);
|
355
355
|
if (ctx->write_tokens)
|
356
356
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -366,7 +366,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
366
366
|
|
367
367
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
368
368
|
_fingerprintNode(ctx, node->coltypes, node, "coltypes", depth + 1);
|
369
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
369
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypes) == 1 && linitial(node->coltypes) == NIL)) {
|
370
370
|
XXH3_copyState(ctx->xxh_state, prev);
|
371
371
|
if (ctx->write_tokens)
|
372
372
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -382,7 +382,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
382
382
|
|
383
383
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
384
384
|
_fingerprintNode(ctx, node->coltypmods, node, "coltypmods", depth + 1);
|
385
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
385
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypmods) == 1 && linitial(node->coltypmods) == NIL)) {
|
386
386
|
XXH3_copyState(ctx->xxh_state, prev);
|
387
387
|
if (ctx->write_tokens)
|
388
388
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -432,7 +432,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
432
432
|
|
433
433
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
434
434
|
_fingerprintNode(ctx, node->ns_names, node, "ns_names", depth + 1);
|
435
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
435
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ns_names) == 1 && linitial(node->ns_names) == NIL)) {
|
436
436
|
XXH3_copyState(ctx->xxh_state, prev);
|
437
437
|
if (ctx->write_tokens)
|
438
438
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -448,7 +448,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
448
448
|
|
449
449
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
450
450
|
_fingerprintNode(ctx, node->ns_uris, node, "ns_uris", depth + 1);
|
451
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
451
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ns_uris) == 1 && linitial(node->ns_uris) == NIL)) {
|
452
452
|
XXH3_copyState(ctx->xxh_state, prev);
|
453
453
|
if (ctx->write_tokens)
|
454
454
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -646,7 +646,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
646
646
|
|
647
647
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
648
648
|
_fingerprintNode(ctx, node->aggargtypes, node, "aggargtypes", depth + 1);
|
649
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
649
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggargtypes) == 1 && linitial(node->aggargtypes) == NIL)) {
|
650
650
|
XXH3_copyState(ctx->xxh_state, prev);
|
651
651
|
if (ctx->write_tokens)
|
652
652
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -669,7 +669,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
669
669
|
|
670
670
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
671
671
|
_fingerprintNode(ctx, node->aggdirectargs, node, "aggdirectargs", depth + 1);
|
672
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
672
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggdirectargs) == 1 && linitial(node->aggdirectargs) == NIL)) {
|
673
673
|
XXH3_copyState(ctx->xxh_state, prev);
|
674
674
|
if (ctx->write_tokens)
|
675
675
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -685,7 +685,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
685
685
|
|
686
686
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
687
687
|
_fingerprintNode(ctx, node->aggdistinct, node, "aggdistinct", depth + 1);
|
688
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
688
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggdistinct) == 1 && linitial(node->aggdistinct) == NIL)) {
|
689
689
|
XXH3_copyState(ctx->xxh_state, prev);
|
690
690
|
if (ctx->write_tokens)
|
691
691
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -738,7 +738,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
738
738
|
|
739
739
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
740
740
|
_fingerprintNode(ctx, node->aggorder, node, "aggorder", depth + 1);
|
741
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
741
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggorder) == 1 && linitial(node->aggorder) == NIL)) {
|
742
742
|
XXH3_copyState(ctx->xxh_state, prev);
|
743
743
|
if (ctx->write_tokens)
|
744
744
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -783,7 +783,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
783
783
|
|
784
784
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
785
785
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
786
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
786
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
787
787
|
XXH3_copyState(ctx->xxh_state, prev);
|
788
788
|
if (ctx->write_tokens)
|
789
789
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -820,7 +820,7 @@ _fingerprintGroupingFunc(FingerprintContext *ctx, const GroupingFunc *node, cons
|
|
820
820
|
|
821
821
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
822
822
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
823
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
823
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
824
824
|
XXH3_copyState(ctx->xxh_state, prev);
|
825
825
|
if (ctx->write_tokens)
|
826
826
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -836,7 +836,7 @@ _fingerprintGroupingFunc(FingerprintContext *ctx, const GroupingFunc *node, cons
|
|
836
836
|
|
837
837
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
838
838
|
_fingerprintNode(ctx, node->cols, node, "cols", depth + 1);
|
839
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
839
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cols) == 1 && linitial(node->cols) == NIL)) {
|
840
840
|
XXH3_copyState(ctx->xxh_state, prev);
|
841
841
|
if (ctx->write_tokens)
|
842
842
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -854,7 +854,7 @@ _fingerprintGroupingFunc(FingerprintContext *ctx, const GroupingFunc *node, cons
|
|
854
854
|
|
855
855
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
856
856
|
_fingerprintNode(ctx, node->refs, node, "refs", depth + 1);
|
857
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
857
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->refs) == 1 && linitial(node->refs) == NIL)) {
|
858
858
|
XXH3_copyState(ctx->xxh_state, prev);
|
859
859
|
if (ctx->write_tokens)
|
860
860
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -892,7 +892,7 @@ _fingerprintWindowFunc(FingerprintContext *ctx, const WindowFunc *node, const vo
|
|
892
892
|
|
893
893
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
894
894
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
895
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
895
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
896
896
|
XXH3_copyState(ctx->xxh_state, prev);
|
897
897
|
if (ctx->write_tokens)
|
898
898
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1015,7 +1015,7 @@ _fingerprintSubscriptingRef(FingerprintContext *ctx, const SubscriptingRef *node
|
|
1015
1015
|
|
1016
1016
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1017
1017
|
_fingerprintNode(ctx, node->reflowerindexpr, node, "reflowerindexpr", depth + 1);
|
1018
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1018
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->reflowerindexpr) == 1 && linitial(node->reflowerindexpr) == NIL)) {
|
1019
1019
|
XXH3_copyState(ctx->xxh_state, prev);
|
1020
1020
|
if (ctx->write_tokens)
|
1021
1021
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1038,7 +1038,7 @@ _fingerprintSubscriptingRef(FingerprintContext *ctx, const SubscriptingRef *node
|
|
1038
1038
|
|
1039
1039
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1040
1040
|
_fingerprintNode(ctx, node->refupperindexpr, node, "refupperindexpr", depth + 1);
|
1041
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1041
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->refupperindexpr) == 1 && linitial(node->refupperindexpr) == NIL)) {
|
1042
1042
|
XXH3_copyState(ctx->xxh_state, prev);
|
1043
1043
|
if (ctx->write_tokens)
|
1044
1044
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1059,7 +1059,7 @@ _fingerprintFuncExpr(FingerprintContext *ctx, const FuncExpr *node, const void *
|
|
1059
1059
|
|
1060
1060
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1061
1061
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
1062
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1062
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
1063
1063
|
XXH3_copyState(ctx->xxh_state, prev);
|
1064
1064
|
if (ctx->write_tokens)
|
1065
1065
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1161,7 +1161,7 @@ _fingerprintOpExpr(FingerprintContext *ctx, const OpExpr *node, const void *pare
|
|
1161
1161
|
|
1162
1162
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1163
1163
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
1164
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1164
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
1165
1165
|
XXH3_copyState(ctx->xxh_state, prev);
|
1166
1166
|
if (ctx->write_tokens)
|
1167
1167
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1224,7 +1224,7 @@ _fingerprintScalarArrayOpExpr(FingerprintContext *ctx, const ScalarArrayOpExpr *
|
|
1224
1224
|
|
1225
1225
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1226
1226
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
1227
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1227
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
1228
1228
|
XXH3_copyState(ctx->xxh_state, prev);
|
1229
1229
|
if (ctx->write_tokens)
|
1230
1230
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1273,7 +1273,7 @@ _fingerprintBoolExpr(FingerprintContext *ctx, const BoolExpr *node, const void *
|
|
1273
1273
|
|
1274
1274
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1275
1275
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
1276
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1276
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
1277
1277
|
XXH3_copyState(ctx->xxh_state, prev);
|
1278
1278
|
if (ctx->write_tokens)
|
1279
1279
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1303,7 +1303,7 @@ _fingerprintSubLink(FingerprintContext *ctx, const SubLink *node, const void *pa
|
|
1303
1303
|
|
1304
1304
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1305
1305
|
_fingerprintNode(ctx, node->operName, node, "operName", depth + 1);
|
1306
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1306
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->operName) == 1 && linitial(node->operName) == NIL)) {
|
1307
1307
|
XXH3_copyState(ctx->xxh_state, prev);
|
1308
1308
|
if (ctx->write_tokens)
|
1309
1309
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1370,7 +1370,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
1370
1370
|
|
1371
1371
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1372
1372
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
1373
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1373
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
1374
1374
|
XXH3_copyState(ctx->xxh_state, prev);
|
1375
1375
|
if (ctx->write_tokens)
|
1376
1376
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1407,7 +1407,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
1407
1407
|
|
1408
1408
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1409
1409
|
_fingerprintNode(ctx, node->parParam, node, "parParam", depth + 1);
|
1410
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1410
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->parParam) == 1 && linitial(node->parParam) == NIL)) {
|
1411
1411
|
XXH3_copyState(ctx->xxh_state, prev);
|
1412
1412
|
if (ctx->write_tokens)
|
1413
1413
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1428,7 +1428,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
1428
1428
|
|
1429
1429
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1430
1430
|
_fingerprintNode(ctx, node->paramIds, node, "paramIds", depth + 1);
|
1431
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1431
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->paramIds) == 1 && linitial(node->paramIds) == NIL)) {
|
1432
1432
|
XXH3_copyState(ctx->xxh_state, prev);
|
1433
1433
|
if (ctx->write_tokens)
|
1434
1434
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1463,7 +1463,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
1463
1463
|
|
1464
1464
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1465
1465
|
_fingerprintNode(ctx, node->setParam, node, "setParam", depth + 1);
|
1466
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1466
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->setParam) == 1 && linitial(node->setParam) == NIL)) {
|
1467
1467
|
XXH3_copyState(ctx->xxh_state, prev);
|
1468
1468
|
if (ctx->write_tokens)
|
1469
1469
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1523,7 +1523,7 @@ _fingerprintAlternativeSubPlan(FingerprintContext *ctx, const AlternativeSubPlan
|
|
1523
1523
|
|
1524
1524
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1525
1525
|
_fingerprintNode(ctx, node->subplans, node, "subplans", depth + 1);
|
1526
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1526
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->subplans) == 1 && linitial(node->subplans) == NIL)) {
|
1527
1527
|
XXH3_copyState(ctx->xxh_state, prev);
|
1528
1528
|
if (ctx->write_tokens)
|
1529
1529
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1611,7 +1611,7 @@ _fingerprintFieldStore(FingerprintContext *ctx, const FieldStore *node, const vo
|
|
1611
1611
|
|
1612
1612
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1613
1613
|
_fingerprintNode(ctx, node->fieldnums, node, "fieldnums", depth + 1);
|
1614
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1614
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fieldnums) == 1 && linitial(node->fieldnums) == NIL)) {
|
1615
1615
|
XXH3_copyState(ctx->xxh_state, prev);
|
1616
1616
|
if (ctx->write_tokens)
|
1617
1617
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1627,7 +1627,7 @@ _fingerprintFieldStore(FingerprintContext *ctx, const FieldStore *node, const vo
|
|
1627
1627
|
|
1628
1628
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1629
1629
|
_fingerprintNode(ctx, node->newvals, node, "newvals", depth + 1);
|
1630
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1630
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->newvals) == 1 && linitial(node->newvals) == NIL)) {
|
1631
1631
|
XXH3_copyState(ctx->xxh_state, prev);
|
1632
1632
|
if (ctx->write_tokens)
|
1633
1633
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -1899,7 +1899,7 @@ _fingerprintCaseExpr(FingerprintContext *ctx, const CaseExpr *node, const void *
|
|
1899
1899
|
|
1900
1900
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
1901
1901
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
1902
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
1902
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
1903
1903
|
XXH3_copyState(ctx->xxh_state, prev);
|
1904
1904
|
if (ctx->write_tokens)
|
1905
1905
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2041,7 +2041,7 @@ _fingerprintArrayExpr(FingerprintContext *ctx, const ArrayExpr *node, const void
|
|
2041
2041
|
|
2042
2042
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2043
2043
|
_fingerprintNode(ctx, node->elements, node, "elements", depth + 1);
|
2044
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2044
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->elements) == 1 && linitial(node->elements) == NIL)) {
|
2045
2045
|
XXH3_copyState(ctx->xxh_state, prev);
|
2046
2046
|
if (ctx->write_tokens)
|
2047
2047
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2069,7 +2069,7 @@ _fingerprintRowExpr(FingerprintContext *ctx, const RowExpr *node, const void *pa
|
|
2069
2069
|
|
2070
2070
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2071
2071
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
2072
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2072
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
2073
2073
|
XXH3_copyState(ctx->xxh_state, prev);
|
2074
2074
|
if (ctx->write_tokens)
|
2075
2075
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2085,7 +2085,7 @@ _fingerprintRowExpr(FingerprintContext *ctx, const RowExpr *node, const void *pa
|
|
2085
2085
|
|
2086
2086
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2087
2087
|
_fingerprintNode(ctx, node->colnames, node, "colnames", depth + 1);
|
2088
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2088
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colnames) == 1 && linitial(node->colnames) == NIL)) {
|
2089
2089
|
XXH3_copyState(ctx->xxh_state, prev);
|
2090
2090
|
if (ctx->write_tokens)
|
2091
2091
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2120,7 +2120,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
2120
2120
|
|
2121
2121
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2122
2122
|
_fingerprintNode(ctx, node->inputcollids, node, "inputcollids", depth + 1);
|
2123
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2123
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->inputcollids) == 1 && linitial(node->inputcollids) == NIL)) {
|
2124
2124
|
XXH3_copyState(ctx->xxh_state, prev);
|
2125
2125
|
if (ctx->write_tokens)
|
2126
2126
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2136,7 +2136,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
2136
2136
|
|
2137
2137
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2138
2138
|
_fingerprintNode(ctx, node->largs, node, "largs", depth + 1);
|
2139
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2139
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->largs) == 1 && linitial(node->largs) == NIL)) {
|
2140
2140
|
XXH3_copyState(ctx->xxh_state, prev);
|
2141
2141
|
if (ctx->write_tokens)
|
2142
2142
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2152,7 +2152,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
2152
2152
|
|
2153
2153
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2154
2154
|
_fingerprintNode(ctx, node->opfamilies, node, "opfamilies", depth + 1);
|
2155
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2155
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilies) == 1 && linitial(node->opfamilies) == NIL)) {
|
2156
2156
|
XXH3_copyState(ctx->xxh_state, prev);
|
2157
2157
|
if (ctx->write_tokens)
|
2158
2158
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2168,7 +2168,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
2168
2168
|
|
2169
2169
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2170
2170
|
_fingerprintNode(ctx, node->opnos, node, "opnos", depth + 1);
|
2171
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2171
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opnos) == 1 && linitial(node->opnos) == NIL)) {
|
2172
2172
|
XXH3_copyState(ctx->xxh_state, prev);
|
2173
2173
|
if (ctx->write_tokens)
|
2174
2174
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2184,7 +2184,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
2184
2184
|
|
2185
2185
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2186
2186
|
_fingerprintNode(ctx, node->rargs, node, "rargs", depth + 1);
|
2187
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2187
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rargs) == 1 && linitial(node->rargs) == NIL)) {
|
2188
2188
|
XXH3_copyState(ctx->xxh_state, prev);
|
2189
2189
|
if (ctx->write_tokens)
|
2190
2190
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2210,7 +2210,7 @@ _fingerprintCoalesceExpr(FingerprintContext *ctx, const CoalesceExpr *node, cons
|
|
2210
2210
|
|
2211
2211
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2212
2212
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
2213
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2213
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
2214
2214
|
XXH3_copyState(ctx->xxh_state, prev);
|
2215
2215
|
if (ctx->write_tokens)
|
2216
2216
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2247,7 +2247,7 @@ _fingerprintMinMaxExpr(FingerprintContext *ctx, const MinMaxExpr *node, const vo
|
|
2247
2247
|
|
2248
2248
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2249
2249
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
2250
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2250
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
2251
2251
|
XXH3_copyState(ctx->xxh_state, prev);
|
2252
2252
|
if (ctx->write_tokens)
|
2253
2253
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2322,7 +2322,7 @@ _fingerprintXmlExpr(FingerprintContext *ctx, const XmlExpr *node, const void *pa
|
|
2322
2322
|
|
2323
2323
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2324
2324
|
_fingerprintNode(ctx, node->arg_names, node, "arg_names", depth + 1);
|
2325
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2325
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->arg_names) == 1 && linitial(node->arg_names) == NIL)) {
|
2326
2326
|
XXH3_copyState(ctx->xxh_state, prev);
|
2327
2327
|
if (ctx->write_tokens)
|
2328
2328
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2338,7 +2338,7 @@ _fingerprintXmlExpr(FingerprintContext *ctx, const XmlExpr *node, const void *pa
|
|
2338
2338
|
|
2339
2339
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2340
2340
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
2341
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2341
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
2342
2342
|
XXH3_copyState(ctx->xxh_state, prev);
|
2343
2343
|
if (ctx->write_tokens)
|
2344
2344
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2361,7 +2361,7 @@ _fingerprintXmlExpr(FingerprintContext *ctx, const XmlExpr *node, const void *pa
|
|
2361
2361
|
|
2362
2362
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2363
2363
|
_fingerprintNode(ctx, node->named_args, node, "named_args", depth + 1);
|
2364
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2364
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->named_args) == 1 && linitial(node->named_args) == NIL)) {
|
2365
2365
|
XXH3_copyState(ctx->xxh_state, prev);
|
2366
2366
|
if (ctx->write_tokens)
|
2367
2367
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2789,7 +2789,7 @@ _fingerprintJoinExpr(FingerprintContext *ctx, const JoinExpr *node, const void *
|
|
2789
2789
|
|
2790
2790
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2791
2791
|
_fingerprintNode(ctx, node->usingClause, node, "usingClause", depth + 1);
|
2792
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2792
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->usingClause) == 1 && linitial(node->usingClause) == NIL)) {
|
2793
2793
|
XXH3_copyState(ctx->xxh_state, prev);
|
2794
2794
|
if (ctx->write_tokens)
|
2795
2795
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2810,7 +2810,7 @@ _fingerprintFromExpr(FingerprintContext *ctx, const FromExpr *node, const void *
|
|
2810
2810
|
|
2811
2811
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2812
2812
|
_fingerprintNode(ctx, node->fromlist, node, "fromlist", depth + 1);
|
2813
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2813
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fromlist) == 1 && linitial(node->fromlist) == NIL)) {
|
2814
2814
|
XXH3_copyState(ctx->xxh_state, prev);
|
2815
2815
|
if (ctx->write_tokens)
|
2816
2816
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2853,7 +2853,7 @@ _fingerprintOnConflictExpr(FingerprintContext *ctx, const OnConflictExpr *node,
|
|
2853
2853
|
|
2854
2854
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2855
2855
|
_fingerprintNode(ctx, node->arbiterElems, node, "arbiterElems", depth + 1);
|
2856
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2856
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->arbiterElems) == 1 && linitial(node->arbiterElems) == NIL)) {
|
2857
2857
|
XXH3_copyState(ctx->xxh_state, prev);
|
2858
2858
|
if (ctx->write_tokens)
|
2859
2859
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2900,7 +2900,7 @@ _fingerprintOnConflictExpr(FingerprintContext *ctx, const OnConflictExpr *node,
|
|
2900
2900
|
|
2901
2901
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2902
2902
|
_fingerprintNode(ctx, node->exclRelTlist, node, "exclRelTlist", depth + 1);
|
2903
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2903
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->exclRelTlist) == 1 && linitial(node->exclRelTlist) == NIL)) {
|
2904
2904
|
XXH3_copyState(ctx->xxh_state, prev);
|
2905
2905
|
if (ctx->write_tokens)
|
2906
2906
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2916,7 +2916,7 @@ _fingerprintOnConflictExpr(FingerprintContext *ctx, const OnConflictExpr *node,
|
|
2916
2916
|
|
2917
2917
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2918
2918
|
_fingerprintNode(ctx, node->onConflictSet, node, "onConflictSet", depth + 1);
|
2919
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2919
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->onConflictSet) == 1 && linitial(node->onConflictSet) == NIL)) {
|
2920
2920
|
XXH3_copyState(ctx->xxh_state, prev);
|
2921
2921
|
if (ctx->write_tokens)
|
2922
2922
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2959,7 +2959,7 @@ _fingerprintIntoClause(FingerprintContext *ctx, const IntoClause *node, const vo
|
|
2959
2959
|
|
2960
2960
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2961
2961
|
_fingerprintNode(ctx, node->colNames, node, "colNames", depth + 1);
|
2962
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2962
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colNames) == 1 && linitial(node->colNames) == NIL)) {
|
2963
2963
|
XXH3_copyState(ctx->xxh_state, prev);
|
2964
2964
|
if (ctx->write_tokens)
|
2965
2965
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -2980,7 +2980,7 @@ _fingerprintIntoClause(FingerprintContext *ctx, const IntoClause *node, const vo
|
|
2980
2980
|
|
2981
2981
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
2982
2982
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
2983
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
2983
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
2984
2984
|
XXH3_copyState(ctx->xxh_state, prev);
|
2985
2985
|
if (ctx->write_tokens)
|
2986
2986
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3081,7 +3081,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3081
3081
|
|
3082
3082
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3083
3083
|
_fingerprintNode(ctx, node->constraintDeps, node, "constraintDeps", depth + 1);
|
3084
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3084
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraintDeps) == 1 && linitial(node->constraintDeps) == NIL)) {
|
3085
3085
|
XXH3_copyState(ctx->xxh_state, prev);
|
3086
3086
|
if (ctx->write_tokens)
|
3087
3087
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3097,7 +3097,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3097
3097
|
|
3098
3098
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3099
3099
|
_fingerprintNode(ctx, node->cteList, node, "cteList", depth + 1);
|
3100
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3100
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cteList) == 1 && linitial(node->cteList) == NIL)) {
|
3101
3101
|
XXH3_copyState(ctx->xxh_state, prev);
|
3102
3102
|
if (ctx->write_tokens)
|
3103
3103
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3113,7 +3113,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3113
3113
|
|
3114
3114
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3115
3115
|
_fingerprintNode(ctx, node->distinctClause, node, "distinctClause", depth + 1);
|
3116
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3116
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->distinctClause) == 1 && linitial(node->distinctClause) == NIL)) {
|
3117
3117
|
XXH3_copyState(ctx->xxh_state, prev);
|
3118
3118
|
if (ctx->write_tokens)
|
3119
3119
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3129,7 +3129,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3129
3129
|
|
3130
3130
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3131
3131
|
_fingerprintNode(ctx, node->groupClause, node, "groupClause", depth + 1);
|
3132
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3132
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupClause) == 1 && linitial(node->groupClause) == NIL)) {
|
3133
3133
|
XXH3_copyState(ctx->xxh_state, prev);
|
3134
3134
|
if (ctx->write_tokens)
|
3135
3135
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3145,7 +3145,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3145
3145
|
|
3146
3146
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3147
3147
|
_fingerprintNode(ctx, node->groupingSets, node, "groupingSets", depth + 1);
|
3148
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3148
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupingSets) == 1 && linitial(node->groupingSets) == NIL)) {
|
3149
3149
|
XXH3_copyState(ctx->xxh_state, prev);
|
3150
3150
|
if (ctx->write_tokens)
|
3151
3151
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3320,7 +3320,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3320
3320
|
|
3321
3321
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3322
3322
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
3323
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3323
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
3324
3324
|
XXH3_copyState(ctx->xxh_state, prev);
|
3325
3325
|
if (ctx->write_tokens)
|
3326
3326
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3336,7 +3336,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3336
3336
|
|
3337
3337
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3338
3338
|
_fingerprintNode(ctx, node->rowMarks, node, "rowMarks", depth + 1);
|
3339
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3339
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rowMarks) == 1 && linitial(node->rowMarks) == NIL)) {
|
3340
3340
|
XXH3_copyState(ctx->xxh_state, prev);
|
3341
3341
|
if (ctx->write_tokens)
|
3342
3342
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3352,7 +3352,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3352
3352
|
|
3353
3353
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3354
3354
|
_fingerprintNode(ctx, node->rtable, node, "rtable", depth + 1);
|
3355
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3355
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rtable) == 1 && linitial(node->rtable) == NIL)) {
|
3356
3356
|
XXH3_copyState(ctx->xxh_state, prev);
|
3357
3357
|
if (ctx->write_tokens)
|
3358
3358
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3385,7 +3385,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3385
3385
|
|
3386
3386
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3387
3387
|
_fingerprintNode(ctx, node->sortClause, node, "sortClause", depth + 1);
|
3388
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3388
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->sortClause) == 1 && linitial(node->sortClause) == NIL)) {
|
3389
3389
|
XXH3_copyState(ctx->xxh_state, prev);
|
3390
3390
|
if (ctx->write_tokens)
|
3391
3391
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3415,7 +3415,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3415
3415
|
|
3416
3416
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3417
3417
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
3418
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3418
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
3419
3419
|
XXH3_copyState(ctx->xxh_state, prev);
|
3420
3420
|
if (ctx->write_tokens)
|
3421
3421
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3448,7 +3448,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3448
3448
|
|
3449
3449
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3450
3450
|
_fingerprintNode(ctx, node->windowClause, node, "windowClause", depth + 1);
|
3451
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3451
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->windowClause) == 1 && linitial(node->windowClause) == NIL)) {
|
3452
3452
|
XXH3_copyState(ctx->xxh_state, prev);
|
3453
3453
|
if (ctx->write_tokens)
|
3454
3454
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3464,7 +3464,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
3464
3464
|
|
3465
3465
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3466
3466
|
_fingerprintNode(ctx, node->withCheckOptions, node, "withCheckOptions", depth + 1);
|
3467
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3467
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->withCheckOptions) == 1 && linitial(node->withCheckOptions) == NIL)) {
|
3468
3468
|
XXH3_copyState(ctx->xxh_state, prev);
|
3469
3469
|
if (ctx->write_tokens)
|
3470
3470
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3485,7 +3485,7 @@ _fingerprintInsertStmt(FingerprintContext *ctx, const InsertStmt *node, const vo
|
|
3485
3485
|
|
3486
3486
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3487
3487
|
_fingerprintNode(ctx, node->cols, node, "cols", depth + 1);
|
3488
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3488
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cols) == 1 && linitial(node->cols) == NIL)) {
|
3489
3489
|
XXH3_copyState(ctx->xxh_state, prev);
|
3490
3490
|
if (ctx->write_tokens)
|
3491
3491
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3540,7 +3540,7 @@ _fingerprintInsertStmt(FingerprintContext *ctx, const InsertStmt *node, const vo
|
|
3540
3540
|
|
3541
3541
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3542
3542
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
3543
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3543
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
3544
3544
|
XXH3_copyState(ctx->xxh_state, prev);
|
3545
3545
|
if (ctx->write_tokens)
|
3546
3546
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3612,7 +3612,7 @@ _fingerprintDeleteStmt(FingerprintContext *ctx, const DeleteStmt *node, const vo
|
|
3612
3612
|
|
3613
3613
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3614
3614
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
3615
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3615
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
3616
3616
|
XXH3_copyState(ctx->xxh_state, prev);
|
3617
3617
|
if (ctx->write_tokens)
|
3618
3618
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3628,7 +3628,7 @@ _fingerprintDeleteStmt(FingerprintContext *ctx, const DeleteStmt *node, const vo
|
|
3628
3628
|
|
3629
3629
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3630
3630
|
_fingerprintNode(ctx, node->usingClause, node, "usingClause", depth + 1);
|
3631
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3631
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->usingClause) == 1 && linitial(node->usingClause) == NIL)) {
|
3632
3632
|
XXH3_copyState(ctx->xxh_state, prev);
|
3633
3633
|
if (ctx->write_tokens)
|
3634
3634
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3683,7 +3683,7 @@ _fingerprintUpdateStmt(FingerprintContext *ctx, const UpdateStmt *node, const vo
|
|
3683
3683
|
|
3684
3684
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3685
3685
|
_fingerprintNode(ctx, node->fromClause, node, "fromClause", depth + 1);
|
3686
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3686
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fromClause) == 1 && linitial(node->fromClause) == NIL)) {
|
3687
3687
|
XXH3_copyState(ctx->xxh_state, prev);
|
3688
3688
|
if (ctx->write_tokens)
|
3689
3689
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3716,7 +3716,7 @@ _fingerprintUpdateStmt(FingerprintContext *ctx, const UpdateStmt *node, const vo
|
|
3716
3716
|
|
3717
3717
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3718
3718
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
3719
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3719
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
3720
3720
|
XXH3_copyState(ctx->xxh_state, prev);
|
3721
3721
|
if (ctx->write_tokens)
|
3722
3722
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3732,7 +3732,7 @@ _fingerprintUpdateStmt(FingerprintContext *ctx, const UpdateStmt *node, const vo
|
|
3732
3732
|
|
3733
3733
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3734
3734
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
3735
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3735
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
3736
3736
|
XXH3_copyState(ctx->xxh_state, prev);
|
3737
3737
|
if (ctx->write_tokens)
|
3738
3738
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3792,7 +3792,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
3792
3792
|
|
3793
3793
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3794
3794
|
_fingerprintNode(ctx, node->distinctClause, node, "distinctClause", depth + 1);
|
3795
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3795
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->distinctClause) == 1 && linitial(node->distinctClause) == NIL)) {
|
3796
3796
|
XXH3_copyState(ctx->xxh_state, prev);
|
3797
3797
|
if (ctx->write_tokens)
|
3798
3798
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3808,7 +3808,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
3808
3808
|
|
3809
3809
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3810
3810
|
_fingerprintNode(ctx, node->fromClause, node, "fromClause", depth + 1);
|
3811
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3811
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fromClause) == 1 && linitial(node->fromClause) == NIL)) {
|
3812
3812
|
XXH3_copyState(ctx->xxh_state, prev);
|
3813
3813
|
if (ctx->write_tokens)
|
3814
3814
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3824,7 +3824,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
3824
3824
|
|
3825
3825
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3826
3826
|
_fingerprintNode(ctx, node->groupClause, node, "groupClause", depth + 1);
|
3827
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3827
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupClause) == 1 && linitial(node->groupClause) == NIL)) {
|
3828
3828
|
XXH3_copyState(ctx->xxh_state, prev);
|
3829
3829
|
if (ctx->write_tokens)
|
3830
3830
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3930,7 +3930,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
3930
3930
|
|
3931
3931
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3932
3932
|
_fingerprintNode(ctx, node->lockingClause, node, "lockingClause", depth + 1);
|
3933
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3933
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->lockingClause) == 1 && linitial(node->lockingClause) == NIL)) {
|
3934
3934
|
XXH3_copyState(ctx->xxh_state, prev);
|
3935
3935
|
if (ctx->write_tokens)
|
3936
3936
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3968,7 +3968,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
3968
3968
|
|
3969
3969
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3970
3970
|
_fingerprintNode(ctx, node->sortClause, node, "sortClause", depth + 1);
|
3971
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3971
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->sortClause) == 1 && linitial(node->sortClause) == NIL)) {
|
3972
3972
|
XXH3_copyState(ctx->xxh_state, prev);
|
3973
3973
|
if (ctx->write_tokens)
|
3974
3974
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -3984,7 +3984,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
3984
3984
|
|
3985
3985
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
3986
3986
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
3987
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
3987
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
3988
3988
|
XXH3_copyState(ctx->xxh_state, prev);
|
3989
3989
|
if (ctx->write_tokens)
|
3990
3990
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4000,7 +4000,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
4000
4000
|
|
4001
4001
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4002
4002
|
_fingerprintNode(ctx, node->valuesLists, node, "valuesLists", depth + 1);
|
4003
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4003
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->valuesLists) == 1 && linitial(node->valuesLists) == NIL)) {
|
4004
4004
|
XXH3_copyState(ctx->xxh_state, prev);
|
4005
4005
|
if (ctx->write_tokens)
|
4006
4006
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4033,7 +4033,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
4033
4033
|
|
4034
4034
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4035
4035
|
_fingerprintNode(ctx, node->windowClause, node, "windowClause", depth + 1);
|
4036
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4036
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->windowClause) == 1 && linitial(node->windowClause) == NIL)) {
|
4037
4037
|
XXH3_copyState(ctx->xxh_state, prev);
|
4038
4038
|
if (ctx->write_tokens)
|
4039
4039
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4071,7 +4071,7 @@ _fingerprintAlterTableStmt(FingerprintContext *ctx, const AlterTableStmt *node,
|
|
4071
4071
|
|
4072
4072
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4073
4073
|
_fingerprintNode(ctx, node->cmds, node, "cmds", depth + 1);
|
4074
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4074
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cmds) == 1 && linitial(node->cmds) == NIL)) {
|
4075
4075
|
XXH3_copyState(ctx->xxh_state, prev);
|
4076
4076
|
if (ctx->write_tokens)
|
4077
4077
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4166,6 +4166,11 @@ _fingerprintAlterTableCmd(FingerprintContext *ctx, const AlterTableCmd *node, co
|
|
4166
4166
|
_fingerprintString(ctx, buffer);
|
4167
4167
|
}
|
4168
4168
|
|
4169
|
+
if (node->recurse) {
|
4170
|
+
_fingerprintString(ctx, "recurse");
|
4171
|
+
_fingerprintString(ctx, "true");
|
4172
|
+
}
|
4173
|
+
|
4169
4174
|
if (true) {
|
4170
4175
|
_fingerprintString(ctx, "subtype");
|
4171
4176
|
_fingerprintString(ctx, _enumToStringAlterTableType(node->subtype));
|
@@ -4223,7 +4228,7 @@ _fingerprintAlterDomainStmt(FingerprintContext *ctx, const AlterDomainStmt *node
|
|
4223
4228
|
|
4224
4229
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4225
4230
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
4226
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4231
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
4227
4232
|
XXH3_copyState(ctx->xxh_state, prev);
|
4228
4233
|
if (ctx->write_tokens)
|
4229
4234
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4249,7 +4254,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
4249
4254
|
|
4250
4255
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4251
4256
|
_fingerprintNode(ctx, node->colCollations, node, "colCollations", depth + 1);
|
4252
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4257
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colCollations) == 1 && linitial(node->colCollations) == NIL)) {
|
4253
4258
|
XXH3_copyState(ctx->xxh_state, prev);
|
4254
4259
|
if (ctx->write_tokens)
|
4255
4260
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4265,7 +4270,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
4265
4270
|
|
4266
4271
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4267
4272
|
_fingerprintNode(ctx, node->colTypes, node, "colTypes", depth + 1);
|
4268
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4273
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colTypes) == 1 && linitial(node->colTypes) == NIL)) {
|
4269
4274
|
XXH3_copyState(ctx->xxh_state, prev);
|
4270
4275
|
if (ctx->write_tokens)
|
4271
4276
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4281,7 +4286,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
4281
4286
|
|
4282
4287
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4283
4288
|
_fingerprintNode(ctx, node->colTypmods, node, "colTypmods", depth + 1);
|
4284
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4289
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colTypmods) == 1 && linitial(node->colTypmods) == NIL)) {
|
4285
4290
|
XXH3_copyState(ctx->xxh_state, prev);
|
4286
4291
|
if (ctx->write_tokens)
|
4287
4292
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4297,7 +4302,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
4297
4302
|
|
4298
4303
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4299
4304
|
_fingerprintNode(ctx, node->groupClauses, node, "groupClauses", depth + 1);
|
4300
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4305
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupClauses) == 1 && linitial(node->groupClauses) == NIL)) {
|
4301
4306
|
XXH3_copyState(ctx->xxh_state, prev);
|
4302
4307
|
if (ctx->write_tokens)
|
4303
4308
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4367,7 +4372,7 @@ _fingerprintGrantStmt(FingerprintContext *ctx, const GrantStmt *node, const void
|
|
4367
4372
|
|
4368
4373
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4369
4374
|
_fingerprintNode(ctx, node->grantees, node, "grantees", depth + 1);
|
4370
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4375
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->grantees) == 1 && linitial(node->grantees) == NIL)) {
|
4371
4376
|
XXH3_copyState(ctx->xxh_state, prev);
|
4372
4377
|
if (ctx->write_tokens)
|
4373
4378
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4388,7 +4393,7 @@ _fingerprintGrantStmt(FingerprintContext *ctx, const GrantStmt *node, const void
|
|
4388
4393
|
|
4389
4394
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4390
4395
|
_fingerprintNode(ctx, node->objects, node, "objects", depth + 1);
|
4391
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4396
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objects) == 1 && linitial(node->objects) == NIL)) {
|
4392
4397
|
XXH3_copyState(ctx->xxh_state, prev);
|
4393
4398
|
if (ctx->write_tokens)
|
4394
4399
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4409,7 +4414,7 @@ _fingerprintGrantStmt(FingerprintContext *ctx, const GrantStmt *node, const void
|
|
4409
4414
|
|
4410
4415
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4411
4416
|
_fingerprintNode(ctx, node->privileges, node, "privileges", depth + 1);
|
4412
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4417
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->privileges) == 1 && linitial(node->privileges) == NIL)) {
|
4413
4418
|
XXH3_copyState(ctx->xxh_state, prev);
|
4414
4419
|
if (ctx->write_tokens)
|
4415
4420
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4445,7 +4450,7 @@ _fingerprintGrantRoleStmt(FingerprintContext *ctx, const GrantRoleStmt *node, co
|
|
4445
4450
|
|
4446
4451
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4447
4452
|
_fingerprintNode(ctx, node->granted_roles, node, "granted_roles", depth + 1);
|
4448
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4453
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->granted_roles) == 1 && linitial(node->granted_roles) == NIL)) {
|
4449
4454
|
XXH3_copyState(ctx->xxh_state, prev);
|
4450
4455
|
if (ctx->write_tokens)
|
4451
4456
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4461,7 +4466,7 @@ _fingerprintGrantRoleStmt(FingerprintContext *ctx, const GrantRoleStmt *node, co
|
|
4461
4466
|
|
4462
4467
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4463
4468
|
_fingerprintNode(ctx, node->grantee_roles, node, "grantee_roles", depth + 1);
|
4464
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4469
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->grantee_roles) == 1 && linitial(node->grantee_roles) == NIL)) {
|
4465
4470
|
XXH3_copyState(ctx->xxh_state, prev);
|
4466
4471
|
if (ctx->write_tokens)
|
4467
4472
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4521,7 +4526,7 @@ _fingerprintAlterDefaultPrivilegesStmt(FingerprintContext *ctx, const AlterDefau
|
|
4521
4526
|
|
4522
4527
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4523
4528
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
4524
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4529
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
4525
4530
|
XXH3_copyState(ctx->xxh_state, prev);
|
4526
4531
|
if (ctx->write_tokens)
|
4527
4532
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4583,7 +4588,7 @@ _fingerprintCopyStmt(FingerprintContext *ctx, const CopyStmt *node, const void *
|
|
4583
4588
|
|
4584
4589
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4585
4590
|
_fingerprintNode(ctx, node->attlist, node, "attlist", depth + 1);
|
4586
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4591
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->attlist) == 1 && linitial(node->attlist) == NIL)) {
|
4587
4592
|
XXH3_copyState(ctx->xxh_state, prev);
|
4588
4593
|
if (ctx->write_tokens)
|
4589
4594
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4614,7 +4619,7 @@ _fingerprintCopyStmt(FingerprintContext *ctx, const CopyStmt *node, const void *
|
|
4614
4619
|
|
4615
4620
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4616
4621
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
4617
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4622
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
4618
4623
|
XXH3_copyState(ctx->xxh_state, prev);
|
4619
4624
|
if (ctx->write_tokens)
|
4620
4625
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4691,7 +4696,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
4691
4696
|
|
4692
4697
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4693
4698
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
4694
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4699
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
4695
4700
|
XXH3_copyState(ctx->xxh_state, prev);
|
4696
4701
|
if (ctx->write_tokens)
|
4697
4702
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4712,7 +4717,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
4712
4717
|
|
4713
4718
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4714
4719
|
_fingerprintNode(ctx, node->inhRelations, node, "inhRelations", depth + 1);
|
4715
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4720
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->inhRelations) == 1 && linitial(node->inhRelations) == NIL)) {
|
4716
4721
|
XXH3_copyState(ctx->xxh_state, prev);
|
4717
4722
|
if (ctx->write_tokens)
|
4718
4723
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4750,7 +4755,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
4750
4755
|
|
4751
4756
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4752
4757
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
4753
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4758
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
4754
4759
|
XXH3_copyState(ctx->xxh_state, prev);
|
4755
4760
|
if (ctx->write_tokens)
|
4756
4761
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4817,7 +4822,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
4817
4822
|
|
4818
4823
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4819
4824
|
_fingerprintNode(ctx, node->tableElts, node, "tableElts", depth + 1);
|
4820
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4825
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tableElts) == 1 && linitial(node->tableElts) == NIL)) {
|
4821
4826
|
XXH3_copyState(ctx->xxh_state, prev);
|
4822
4827
|
if (ctx->write_tokens)
|
4823
4828
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4843,7 +4848,7 @@ _fingerprintDefineStmt(FingerprintContext *ctx, const DefineStmt *node, const vo
|
|
4843
4848
|
|
4844
4849
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4845
4850
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
4846
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4851
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
4847
4852
|
XXH3_copyState(ctx->xxh_state, prev);
|
4848
4853
|
if (ctx->write_tokens)
|
4849
4854
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4859,7 +4864,7 @@ _fingerprintDefineStmt(FingerprintContext *ctx, const DefineStmt *node, const vo
|
|
4859
4864
|
|
4860
4865
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4861
4866
|
_fingerprintNode(ctx, node->definition, node, "definition", depth + 1);
|
4862
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4867
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->definition) == 1 && linitial(node->definition) == NIL)) {
|
4863
4868
|
XXH3_copyState(ctx->xxh_state, prev);
|
4864
4869
|
if (ctx->write_tokens)
|
4865
4870
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4875,7 +4880,7 @@ _fingerprintDefineStmt(FingerprintContext *ctx, const DefineStmt *node, const vo
|
|
4875
4880
|
|
4876
4881
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4877
4882
|
_fingerprintNode(ctx, node->defnames, node, "defnames", depth + 1);
|
4878
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4883
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->defnames) == 1 && linitial(node->defnames) == NIL)) {
|
4879
4884
|
XXH3_copyState(ctx->xxh_state, prev);
|
4880
4885
|
if (ctx->write_tokens)
|
4881
4886
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4931,7 +4936,7 @@ _fingerprintDropStmt(FingerprintContext *ctx, const DropStmt *node, const void *
|
|
4931
4936
|
|
4932
4937
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4933
4938
|
_fingerprintNode(ctx, node->objects, node, "objects", depth + 1);
|
4934
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4939
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objects) == 1 && linitial(node->objects) == NIL)) {
|
4935
4940
|
XXH3_copyState(ctx->xxh_state, prev);
|
4936
4941
|
if (ctx->write_tokens)
|
4937
4942
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -4962,7 +4967,7 @@ _fingerprintTruncateStmt(FingerprintContext *ctx, const TruncateStmt *node, cons
|
|
4962
4967
|
|
4963
4968
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
4964
4969
|
_fingerprintNode(ctx, node->relations, node, "relations", depth + 1);
|
4965
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
4970
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->relations) == 1 && linitial(node->relations) == NIL)) {
|
4966
4971
|
XXH3_copyState(ctx->xxh_state, prev);
|
4967
4972
|
if (ctx->write_tokens)
|
4968
4973
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5059,7 +5064,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
5059
5064
|
|
5060
5065
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5061
5066
|
_fingerprintNode(ctx, node->excludeOpNames, node, "excludeOpNames", depth + 1);
|
5062
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5067
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->excludeOpNames) == 1 && linitial(node->excludeOpNames) == NIL)) {
|
5063
5068
|
XXH3_copyState(ctx->xxh_state, prev);
|
5064
5069
|
if (ctx->write_tokens)
|
5065
5070
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5090,7 +5095,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
5090
5095
|
|
5091
5096
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5092
5097
|
_fingerprintNode(ctx, node->indexIncludingParams, node, "indexIncludingParams", depth + 1);
|
5093
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5098
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indexIncludingParams) == 1 && linitial(node->indexIncludingParams) == NIL)) {
|
5094
5099
|
XXH3_copyState(ctx->xxh_state, prev);
|
5095
5100
|
if (ctx->write_tokens)
|
5096
5101
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5113,7 +5118,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
5113
5118
|
|
5114
5119
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5115
5120
|
_fingerprintNode(ctx, node->indexParams, node, "indexParams", depth + 1);
|
5116
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5121
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indexParams) == 1 && linitial(node->indexParams) == NIL)) {
|
5117
5122
|
XXH3_copyState(ctx->xxh_state, prev);
|
5118
5123
|
if (ctx->write_tokens)
|
5119
5124
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5160,7 +5165,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
5160
5165
|
|
5161
5166
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5162
5167
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5163
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5168
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5164
5169
|
XXH3_copyState(ctx->xxh_state, prev);
|
5165
5170
|
if (ctx->write_tokens)
|
5166
5171
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5240,7 +5245,7 @@ _fingerprintCreateFunctionStmt(FingerprintContext *ctx, const CreateFunctionStmt
|
|
5240
5245
|
|
5241
5246
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5242
5247
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
5243
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5248
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
5244
5249
|
XXH3_copyState(ctx->xxh_state, prev);
|
5245
5250
|
if (ctx->write_tokens)
|
5246
5251
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5252,22 +5257,8 @@ _fingerprintCreateFunctionStmt(FingerprintContext *ctx, const CreateFunctionStmt
|
|
5252
5257
|
_fingerprintString(ctx, "true");
|
5253
5258
|
}
|
5254
5259
|
|
5255
|
-
|
5256
|
-
XXH3_state_t* prev = XXH3_createState();
|
5257
|
-
XXH64_hash_t hash;
|
5258
|
-
|
5259
|
-
XXH3_copyState(prev, ctx->xxh_state);
|
5260
|
-
_fingerprintString(ctx, "options");
|
5260
|
+
// Intentionally ignoring node->options for fingerprinting
|
5261
5261
|
|
5262
|
-
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5263
|
-
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5264
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5265
|
-
XXH3_copyState(ctx->xxh_state, prev);
|
5266
|
-
if (ctx->write_tokens)
|
5267
|
-
dlist_delete(dlist_tail_node(&ctx->tokens));
|
5268
|
-
}
|
5269
|
-
XXH3_freeState(prev);
|
5270
|
-
}
|
5271
5262
|
if (node->parameters != NULL && node->parameters->length > 0) {
|
5272
5263
|
XXH3_state_t* prev = XXH3_createState();
|
5273
5264
|
XXH64_hash_t hash;
|
@@ -5277,7 +5268,7 @@ _fingerprintCreateFunctionStmt(FingerprintContext *ctx, const CreateFunctionStmt
|
|
5277
5268
|
|
5278
5269
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5279
5270
|
_fingerprintNode(ctx, node->parameters, node, "parameters", depth + 1);
|
5280
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5271
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->parameters) == 1 && linitial(node->parameters) == NIL)) {
|
5281
5272
|
XXH3_copyState(ctx->xxh_state, prev);
|
5282
5273
|
if (ctx->write_tokens)
|
5283
5274
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5320,7 +5311,7 @@ _fingerprintAlterFunctionStmt(FingerprintContext *ctx, const AlterFunctionStmt *
|
|
5320
5311
|
|
5321
5312
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5322
5313
|
_fingerprintNode(ctx, node->actions, node, "actions", depth + 1);
|
5323
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5314
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->actions) == 1 && linitial(node->actions) == NIL)) {
|
5324
5315
|
XXH3_copyState(ctx->xxh_state, prev);
|
5325
5316
|
if (ctx->write_tokens)
|
5326
5317
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5354,22 +5345,8 @@ _fingerprintAlterFunctionStmt(FingerprintContext *ctx, const AlterFunctionStmt *
|
|
5354
5345
|
static void
|
5355
5346
|
_fingerprintDoStmt(FingerprintContext *ctx, const DoStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
5356
5347
|
{
|
5357
|
-
|
5358
|
-
XXH3_state_t* prev = XXH3_createState();
|
5359
|
-
XXH64_hash_t hash;
|
5360
|
-
|
5361
|
-
XXH3_copyState(prev, ctx->xxh_state);
|
5362
|
-
_fingerprintString(ctx, "args");
|
5348
|
+
// Intentionally ignoring node->args for fingerprinting
|
5363
5349
|
|
5364
|
-
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5365
|
-
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
5366
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5367
|
-
XXH3_copyState(ctx->xxh_state, prev);
|
5368
|
-
if (ctx->write_tokens)
|
5369
|
-
dlist_delete(dlist_tail_node(&ctx->tokens));
|
5370
|
-
}
|
5371
|
-
XXH3_freeState(prev);
|
5372
|
-
}
|
5373
5350
|
}
|
5374
5351
|
|
5375
5352
|
static void
|
@@ -5453,7 +5430,7 @@ _fingerprintRuleStmt(FingerprintContext *ctx, const RuleStmt *node, const void *
|
|
5453
5430
|
|
5454
5431
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5455
5432
|
_fingerprintNode(ctx, node->actions, node, "actions", depth + 1);
|
5456
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5433
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->actions) == 1 && linitial(node->actions) == NIL)) {
|
5457
5434
|
XXH3_copyState(ctx->xxh_state, prev);
|
5458
5435
|
if (ctx->write_tokens)
|
5459
5436
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5519,10 +5496,7 @@ _fingerprintRuleStmt(FingerprintContext *ctx, const RuleStmt *node, const void *
|
|
5519
5496
|
static void
|
5520
5497
|
_fingerprintNotifyStmt(FingerprintContext *ctx, const NotifyStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
5521
5498
|
{
|
5522
|
-
|
5523
|
-
_fingerprintString(ctx, "conditionname");
|
5524
|
-
_fingerprintString(ctx, node->conditionname);
|
5525
|
-
}
|
5499
|
+
// Intentionally ignoring node->conditionname for fingerprinting
|
5526
5500
|
|
5527
5501
|
if (node->payload != NULL) {
|
5528
5502
|
_fingerprintString(ctx, "payload");
|
@@ -5534,20 +5508,14 @@ _fingerprintNotifyStmt(FingerprintContext *ctx, const NotifyStmt *node, const vo
|
|
5534
5508
|
static void
|
5535
5509
|
_fingerprintListenStmt(FingerprintContext *ctx, const ListenStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
5536
5510
|
{
|
5537
|
-
|
5538
|
-
_fingerprintString(ctx, "conditionname");
|
5539
|
-
_fingerprintString(ctx, node->conditionname);
|
5540
|
-
}
|
5511
|
+
// Intentionally ignoring node->conditionname for fingerprinting
|
5541
5512
|
|
5542
5513
|
}
|
5543
5514
|
|
5544
5515
|
static void
|
5545
5516
|
_fingerprintUnlistenStmt(FingerprintContext *ctx, const UnlistenStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
5546
5517
|
{
|
5547
|
-
|
5548
|
-
_fingerprintString(ctx, "conditionname");
|
5549
|
-
_fingerprintString(ctx, node->conditionname);
|
5550
|
-
}
|
5518
|
+
// Intentionally ignoring node->conditionname for fingerprinting
|
5551
5519
|
|
5552
5520
|
}
|
5553
5521
|
|
@@ -5584,7 +5552,7 @@ _fingerprintViewStmt(FingerprintContext *ctx, const ViewStmt *node, const void *
|
|
5584
5552
|
|
5585
5553
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5586
5554
|
_fingerprintNode(ctx, node->aliases, node, "aliases", depth + 1);
|
5587
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5555
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aliases) == 1 && linitial(node->aliases) == NIL)) {
|
5588
5556
|
XXH3_copyState(ctx->xxh_state, prev);
|
5589
5557
|
if (ctx->write_tokens)
|
5590
5558
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5600,7 +5568,7 @@ _fingerprintViewStmt(FingerprintContext *ctx, const ViewStmt *node, const void *
|
|
5600
5568
|
|
5601
5569
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5602
5570
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5603
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5571
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5604
5572
|
XXH3_copyState(ctx->xxh_state, prev);
|
5605
5573
|
if (ctx->write_tokens)
|
5606
5574
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5692,7 +5660,7 @@ _fingerprintCreateDomainStmt(FingerprintContext *ctx, const CreateDomainStmt *no
|
|
5692
5660
|
|
5693
5661
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5694
5662
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
5695
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5663
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
5696
5664
|
XXH3_copyState(ctx->xxh_state, prev);
|
5697
5665
|
if (ctx->write_tokens)
|
5698
5666
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5708,7 +5676,7 @@ _fingerprintCreateDomainStmt(FingerprintContext *ctx, const CreateDomainStmt *no
|
|
5708
5676
|
|
5709
5677
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5710
5678
|
_fingerprintNode(ctx, node->domainname, node, "domainname", depth + 1);
|
5711
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5679
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->domainname) == 1 && linitial(node->domainname) == NIL)) {
|
5712
5680
|
XXH3_copyState(ctx->xxh_state, prev);
|
5713
5681
|
if (ctx->write_tokens)
|
5714
5682
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5751,7 +5719,7 @@ _fingerprintCreatedbStmt(FingerprintContext *ctx, const CreatedbStmt *node, cons
|
|
5751
5719
|
|
5752
5720
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5753
5721
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5754
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5722
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5755
5723
|
XXH3_copyState(ctx->xxh_state, prev);
|
5756
5724
|
if (ctx->write_tokens)
|
5757
5725
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5782,7 +5750,7 @@ _fingerprintDropdbStmt(FingerprintContext *ctx, const DropdbStmt *node, const vo
|
|
5782
5750
|
|
5783
5751
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5784
5752
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5785
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5753
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5786
5754
|
XXH3_copyState(ctx->xxh_state, prev);
|
5787
5755
|
if (ctx->write_tokens)
|
5788
5756
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5808,7 +5776,7 @@ _fingerprintVacuumStmt(FingerprintContext *ctx, const VacuumStmt *node, const vo
|
|
5808
5776
|
|
5809
5777
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5810
5778
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5811
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5779
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5812
5780
|
XXH3_copyState(ctx->xxh_state, prev);
|
5813
5781
|
if (ctx->write_tokens)
|
5814
5782
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5824,7 +5792,7 @@ _fingerprintVacuumStmt(FingerprintContext *ctx, const VacuumStmt *node, const vo
|
|
5824
5792
|
|
5825
5793
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5826
5794
|
_fingerprintNode(ctx, node->rels, node, "rels", depth + 1);
|
5827
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5795
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rels) == 1 && linitial(node->rels) == NIL)) {
|
5828
5796
|
XXH3_copyState(ctx->xxh_state, prev);
|
5829
5797
|
if (ctx->write_tokens)
|
5830
5798
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5845,7 +5813,7 @@ _fingerprintExplainStmt(FingerprintContext *ctx, const ExplainStmt *node, const
|
|
5845
5813
|
|
5846
5814
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5847
5815
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5848
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5816
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5849
5817
|
XXH3_copyState(ctx->xxh_state, prev);
|
5850
5818
|
if (ctx->write_tokens)
|
5851
5819
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -5947,7 +5915,7 @@ _fingerprintCreateSeqStmt(FingerprintContext *ctx, const CreateSeqStmt *node, co
|
|
5947
5915
|
|
5948
5916
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
5949
5917
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
5950
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5918
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
5951
5919
|
XXH3_copyState(ctx->xxh_state, prev);
|
5952
5920
|
if (ctx->write_tokens)
|
5953
5921
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6002,7 +5970,7 @@ _fingerprintAlterSeqStmt(FingerprintContext *ctx, const AlterSeqStmt *node, cons
|
|
6002
5970
|
|
6003
5971
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6004
5972
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
6005
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
5973
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
6006
5974
|
XXH3_copyState(ctx->xxh_state, prev);
|
6007
5975
|
if (ctx->write_tokens)
|
6008
5976
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6040,7 +6008,7 @@ _fingerprintVariableSetStmt(FingerprintContext *ctx, const VariableSetStmt *node
|
|
6040
6008
|
|
6041
6009
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6042
6010
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
6043
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6011
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
6044
6012
|
XXH3_copyState(ctx->xxh_state, prev);
|
6045
6013
|
if (ctx->write_tokens)
|
6046
6014
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6096,7 +6064,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
6096
6064
|
|
6097
6065
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6098
6066
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
6099
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6067
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
6100
6068
|
XXH3_copyState(ctx->xxh_state, prev);
|
6101
6069
|
if (ctx->write_tokens)
|
6102
6070
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6112,7 +6080,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
6112
6080
|
|
6113
6081
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6114
6082
|
_fingerprintNode(ctx, node->columns, node, "columns", depth + 1);
|
6115
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6083
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->columns) == 1 && linitial(node->columns) == NIL)) {
|
6116
6084
|
XXH3_copyState(ctx->xxh_state, prev);
|
6117
6085
|
if (ctx->write_tokens)
|
6118
6086
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6157,7 +6125,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
6157
6125
|
|
6158
6126
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6159
6127
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
6160
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6128
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
6161
6129
|
XXH3_copyState(ctx->xxh_state, prev);
|
6162
6130
|
if (ctx->write_tokens)
|
6163
6131
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6212,7 +6180,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
6212
6180
|
|
6213
6181
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6214
6182
|
_fingerprintNode(ctx, node->transitionRels, node, "transitionRels", depth + 1);
|
6215
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6183
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->transitionRels) == 1 && linitial(node->transitionRels) == NIL)) {
|
6216
6184
|
XXH3_copyState(ctx->xxh_state, prev);
|
6217
6185
|
if (ctx->write_tokens)
|
6218
6186
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6255,7 +6223,7 @@ _fingerprintCreatePLangStmt(FingerprintContext *ctx, const CreatePLangStmt *node
|
|
6255
6223
|
|
6256
6224
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6257
6225
|
_fingerprintNode(ctx, node->plhandler, node, "plhandler", depth + 1);
|
6258
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6226
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->plhandler) == 1 && linitial(node->plhandler) == NIL)) {
|
6259
6227
|
XXH3_copyState(ctx->xxh_state, prev);
|
6260
6228
|
if (ctx->write_tokens)
|
6261
6229
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6271,7 +6239,7 @@ _fingerprintCreatePLangStmt(FingerprintContext *ctx, const CreatePLangStmt *node
|
|
6271
6239
|
|
6272
6240
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6273
6241
|
_fingerprintNode(ctx, node->plinline, node, "plinline", depth + 1);
|
6274
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6242
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->plinline) == 1 && linitial(node->plinline) == NIL)) {
|
6275
6243
|
XXH3_copyState(ctx->xxh_state, prev);
|
6276
6244
|
if (ctx->write_tokens)
|
6277
6245
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6297,7 +6265,7 @@ _fingerprintCreatePLangStmt(FingerprintContext *ctx, const CreatePLangStmt *node
|
|
6297
6265
|
|
6298
6266
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6299
6267
|
_fingerprintNode(ctx, node->plvalidator, node, "plvalidator", depth + 1);
|
6300
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6268
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->plvalidator) == 1 && linitial(node->plvalidator) == NIL)) {
|
6301
6269
|
XXH3_copyState(ctx->xxh_state, prev);
|
6302
6270
|
if (ctx->write_tokens)
|
6303
6271
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6323,7 +6291,7 @@ _fingerprintCreateRoleStmt(FingerprintContext *ctx, const CreateRoleStmt *node,
|
|
6323
6291
|
|
6324
6292
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6325
6293
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
6326
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6294
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
6327
6295
|
XXH3_copyState(ctx->xxh_state, prev);
|
6328
6296
|
if (ctx->write_tokens)
|
6329
6297
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6361,7 +6329,7 @@ _fingerprintAlterRoleStmt(FingerprintContext *ctx, const AlterRoleStmt *node, co
|
|
6361
6329
|
|
6362
6330
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6363
6331
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
6364
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6332
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
6365
6333
|
XXH3_copyState(ctx->xxh_state, prev);
|
6366
6334
|
if (ctx->write_tokens)
|
6367
6335
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6404,7 +6372,7 @@ _fingerprintDropRoleStmt(FingerprintContext *ctx, const DropRoleStmt *node, cons
|
|
6404
6372
|
|
6405
6373
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6406
6374
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
6407
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6375
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
6408
6376
|
XXH3_copyState(ctx->xxh_state, prev);
|
6409
6377
|
if (ctx->write_tokens)
|
6410
6378
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6437,7 +6405,7 @@ _fingerprintLockStmt(FingerprintContext *ctx, const LockStmt *node, const void *
|
|
6437
6405
|
|
6438
6406
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6439
6407
|
_fingerprintNode(ctx, node->relations, node, "relations", depth + 1);
|
6440
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6408
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->relations) == 1 && linitial(node->relations) == NIL)) {
|
6441
6409
|
XXH3_copyState(ctx->xxh_state, prev);
|
6442
6410
|
if (ctx->write_tokens)
|
6443
6411
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6458,7 +6426,7 @@ _fingerprintConstraintsSetStmt(FingerprintContext *ctx, const ConstraintsSetStmt
|
|
6458
6426
|
|
6459
6427
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6460
6428
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
6461
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6429
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
6462
6430
|
XXH3_copyState(ctx->xxh_state, prev);
|
6463
6431
|
if (ctx->write_tokens)
|
6464
6432
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6555,7 +6523,7 @@ _fingerprintCreateSchemaStmt(FingerprintContext *ctx, const CreateSchemaStmt *no
|
|
6555
6523
|
|
6556
6524
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6557
6525
|
_fingerprintNode(ctx, node->schemaElts, node, "schemaElts", depth + 1);
|
6558
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6526
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->schemaElts) == 1 && linitial(node->schemaElts) == NIL)) {
|
6559
6527
|
XXH3_copyState(ctx->xxh_state, prev);
|
6560
6528
|
if (ctx->write_tokens)
|
6561
6529
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6586,7 +6554,7 @@ _fingerprintAlterDatabaseStmt(FingerprintContext *ctx, const AlterDatabaseStmt *
|
|
6586
6554
|
|
6587
6555
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6588
6556
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
6589
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6557
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
6590
6558
|
XXH3_copyState(ctx->xxh_state, prev);
|
6591
6559
|
if (ctx->write_tokens)
|
6592
6560
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6678,7 +6646,7 @@ _fingerprintCreateConversionStmt(FingerprintContext *ctx, const CreateConversion
|
|
6678
6646
|
|
6679
6647
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6680
6648
|
_fingerprintNode(ctx, node->conversion_name, node, "conversion_name", depth + 1);
|
6681
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6649
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->conversion_name) == 1 && linitial(node->conversion_name) == NIL)) {
|
6682
6650
|
XXH3_copyState(ctx->xxh_state, prev);
|
6683
6651
|
if (ctx->write_tokens)
|
6684
6652
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6704,7 +6672,7 @@ _fingerprintCreateConversionStmt(FingerprintContext *ctx, const CreateConversion
|
|
6704
6672
|
|
6705
6673
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6706
6674
|
_fingerprintNode(ctx, node->func_name, node, "func_name", depth + 1);
|
6707
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6675
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->func_name) == 1 && linitial(node->func_name) == NIL)) {
|
6708
6676
|
XXH3_copyState(ctx->xxh_state, prev);
|
6709
6677
|
if (ctx->write_tokens)
|
6710
6678
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6823,7 +6791,7 @@ _fingerprintCreateOpClassStmt(FingerprintContext *ctx, const CreateOpClassStmt *
|
|
6823
6791
|
|
6824
6792
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6825
6793
|
_fingerprintNode(ctx, node->items, node, "items", depth + 1);
|
6826
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6794
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->items) == 1 && linitial(node->items) == NIL)) {
|
6827
6795
|
XXH3_copyState(ctx->xxh_state, prev);
|
6828
6796
|
if (ctx->write_tokens)
|
6829
6797
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6839,7 +6807,7 @@ _fingerprintCreateOpClassStmt(FingerprintContext *ctx, const CreateOpClassStmt *
|
|
6839
6807
|
|
6840
6808
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6841
6809
|
_fingerprintNode(ctx, node->opclassname, node, "opclassname", depth + 1);
|
6842
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6810
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclassname) == 1 && linitial(node->opclassname) == NIL)) {
|
6843
6811
|
XXH3_copyState(ctx->xxh_state, prev);
|
6844
6812
|
if (ctx->write_tokens)
|
6845
6813
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6855,7 +6823,7 @@ _fingerprintCreateOpClassStmt(FingerprintContext *ctx, const CreateOpClassStmt *
|
|
6855
6823
|
|
6856
6824
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6857
6825
|
_fingerprintNode(ctx, node->opfamilyname, node, "opfamilyname", depth + 1);
|
6858
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6826
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilyname) == 1 && linitial(node->opfamilyname) == NIL)) {
|
6859
6827
|
XXH3_copyState(ctx->xxh_state, prev);
|
6860
6828
|
if (ctx->write_tokens)
|
6861
6829
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6881,7 +6849,7 @@ _fingerprintCreateOpFamilyStmt(FingerprintContext *ctx, const CreateOpFamilyStmt
|
|
6881
6849
|
|
6882
6850
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6883
6851
|
_fingerprintNode(ctx, node->opfamilyname, node, "opfamilyname", depth + 1);
|
6884
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6852
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilyname) == 1 && linitial(node->opfamilyname) == NIL)) {
|
6885
6853
|
XXH3_copyState(ctx->xxh_state, prev);
|
6886
6854
|
if (ctx->write_tokens)
|
6887
6855
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6912,7 +6880,7 @@ _fingerprintAlterOpFamilyStmt(FingerprintContext *ctx, const AlterOpFamilyStmt *
|
|
6912
6880
|
|
6913
6881
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6914
6882
|
_fingerprintNode(ctx, node->items, node, "items", depth + 1);
|
6915
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6883
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->items) == 1 && linitial(node->items) == NIL)) {
|
6916
6884
|
XXH3_copyState(ctx->xxh_state, prev);
|
6917
6885
|
if (ctx->write_tokens)
|
6918
6886
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6928,7 +6896,7 @@ _fingerprintAlterOpFamilyStmt(FingerprintContext *ctx, const AlterOpFamilyStmt *
|
|
6928
6896
|
|
6929
6897
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6930
6898
|
_fingerprintNode(ctx, node->opfamilyname, node, "opfamilyname", depth + 1);
|
6931
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6899
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilyname) == 1 && linitial(node->opfamilyname) == NIL)) {
|
6932
6900
|
XXH3_copyState(ctx->xxh_state, prev);
|
6933
6901
|
if (ctx->write_tokens)
|
6934
6902
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6949,7 +6917,7 @@ _fingerprintPrepareStmt(FingerprintContext *ctx, const PrepareStmt *node, const
|
|
6949
6917
|
|
6950
6918
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6951
6919
|
_fingerprintNode(ctx, node->argtypes, node, "argtypes", depth + 1);
|
6952
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6920
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->argtypes) == 1 && linitial(node->argtypes) == NIL)) {
|
6953
6921
|
XXH3_copyState(ctx->xxh_state, prev);
|
6954
6922
|
if (ctx->write_tokens)
|
6955
6923
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -6991,7 +6959,7 @@ _fingerprintExecuteStmt(FingerprintContext *ctx, const ExecuteStmt *node, const
|
|
6991
6959
|
|
6992
6960
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
6993
6961
|
_fingerprintNode(ctx, node->params, node, "params", depth + 1);
|
6994
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
6962
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->params) == 1 && linitial(node->params) == NIL)) {
|
6995
6963
|
XXH3_copyState(ctx->xxh_state, prev);
|
6996
6964
|
if (ctx->write_tokens)
|
6997
6965
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7052,7 +7020,7 @@ _fingerprintCreateTableSpaceStmt(FingerprintContext *ctx, const CreateTableSpace
|
|
7052
7020
|
|
7053
7021
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7054
7022
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7055
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7023
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7056
7024
|
XXH3_copyState(ctx->xxh_state, prev);
|
7057
7025
|
if (ctx->write_tokens)
|
7058
7026
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7308,7 +7276,7 @@ _fingerprintAlterOperatorStmt(FingerprintContext *ctx, const AlterOperatorStmt *
|
|
7308
7276
|
|
7309
7277
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7310
7278
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7311
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7279
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7312
7280
|
XXH3_copyState(ctx->xxh_state, prev);
|
7313
7281
|
if (ctx->write_tokens)
|
7314
7282
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7329,7 +7297,7 @@ _fingerprintAlterTypeStmt(FingerprintContext *ctx, const AlterTypeStmt *node, co
|
|
7329
7297
|
|
7330
7298
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7331
7299
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7332
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7300
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7333
7301
|
XXH3_copyState(ctx->xxh_state, prev);
|
7334
7302
|
if (ctx->write_tokens)
|
7335
7303
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7345,7 +7313,7 @@ _fingerprintAlterTypeStmt(FingerprintContext *ctx, const AlterTypeStmt *node, co
|
|
7345
7313
|
|
7346
7314
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7347
7315
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
7348
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7316
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
7349
7317
|
XXH3_copyState(ctx->xxh_state, prev);
|
7350
7318
|
if (ctx->write_tokens)
|
7351
7319
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7371,7 +7339,7 @@ _fingerprintDropOwnedStmt(FingerprintContext *ctx, const DropOwnedStmt *node, co
|
|
7371
7339
|
|
7372
7340
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7373
7341
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
7374
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7342
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
7375
7343
|
XXH3_copyState(ctx->xxh_state, prev);
|
7376
7344
|
if (ctx->write_tokens)
|
7377
7345
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7409,7 +7377,7 @@ _fingerprintReassignOwnedStmt(FingerprintContext *ctx, const ReassignOwnedStmt *
|
|
7409
7377
|
|
7410
7378
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7411
7379
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
7412
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7380
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
7413
7381
|
XXH3_copyState(ctx->xxh_state, prev);
|
7414
7382
|
if (ctx->write_tokens)
|
7415
7383
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7430,7 +7398,7 @@ _fingerprintCompositeTypeStmt(FingerprintContext *ctx, const CompositeTypeStmt *
|
|
7430
7398
|
|
7431
7399
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7432
7400
|
_fingerprintNode(ctx, node->coldeflist, node, "coldeflist", depth + 1);
|
7433
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7401
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coldeflist) == 1 && linitial(node->coldeflist) == NIL)) {
|
7434
7402
|
XXH3_copyState(ctx->xxh_state, prev);
|
7435
7403
|
if (ctx->write_tokens)
|
7436
7404
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7468,7 +7436,7 @@ _fingerprintCreateEnumStmt(FingerprintContext *ctx, const CreateEnumStmt *node,
|
|
7468
7436
|
|
7469
7437
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7470
7438
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
7471
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7439
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
7472
7440
|
XXH3_copyState(ctx->xxh_state, prev);
|
7473
7441
|
if (ctx->write_tokens)
|
7474
7442
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7484,7 +7452,7 @@ _fingerprintCreateEnumStmt(FingerprintContext *ctx, const CreateEnumStmt *node,
|
|
7484
7452
|
|
7485
7453
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7486
7454
|
_fingerprintNode(ctx, node->vals, node, "vals", depth + 1);
|
7487
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7455
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->vals) == 1 && linitial(node->vals) == NIL)) {
|
7488
7456
|
XXH3_copyState(ctx->xxh_state, prev);
|
7489
7457
|
if (ctx->write_tokens)
|
7490
7458
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7505,7 +7473,7 @@ _fingerprintCreateRangeStmt(FingerprintContext *ctx, const CreateRangeStmt *node
|
|
7505
7473
|
|
7506
7474
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7507
7475
|
_fingerprintNode(ctx, node->params, node, "params", depth + 1);
|
7508
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7476
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->params) == 1 && linitial(node->params) == NIL)) {
|
7509
7477
|
XXH3_copyState(ctx->xxh_state, prev);
|
7510
7478
|
if (ctx->write_tokens)
|
7511
7479
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7521,7 +7489,7 @@ _fingerprintCreateRangeStmt(FingerprintContext *ctx, const CreateRangeStmt *node
|
|
7521
7489
|
|
7522
7490
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7523
7491
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
7524
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7492
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
7525
7493
|
XXH3_copyState(ctx->xxh_state, prev);
|
7526
7494
|
if (ctx->write_tokens)
|
7527
7495
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7567,7 +7535,7 @@ _fingerprintAlterEnumStmt(FingerprintContext *ctx, const AlterEnumStmt *node, co
|
|
7567
7535
|
|
7568
7536
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7569
7537
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
7570
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7538
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
7571
7539
|
XXH3_copyState(ctx->xxh_state, prev);
|
7572
7540
|
if (ctx->write_tokens)
|
7573
7541
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7588,7 +7556,7 @@ _fingerprintAlterTSDictionaryStmt(FingerprintContext *ctx, const AlterTSDictiona
|
|
7588
7556
|
|
7589
7557
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7590
7558
|
_fingerprintNode(ctx, node->dictname, node, "dictname", depth + 1);
|
7591
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7559
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->dictname) == 1 && linitial(node->dictname) == NIL)) {
|
7592
7560
|
XXH3_copyState(ctx->xxh_state, prev);
|
7593
7561
|
if (ctx->write_tokens)
|
7594
7562
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7604,7 +7572,7 @@ _fingerprintAlterTSDictionaryStmt(FingerprintContext *ctx, const AlterTSDictiona
|
|
7604
7572
|
|
7605
7573
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7606
7574
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7607
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7575
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7608
7576
|
XXH3_copyState(ctx->xxh_state, prev);
|
7609
7577
|
if (ctx->write_tokens)
|
7610
7578
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7625,7 +7593,7 @@ _fingerprintAlterTSConfigurationStmt(FingerprintContext *ctx, const AlterTSConfi
|
|
7625
7593
|
|
7626
7594
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7627
7595
|
_fingerprintNode(ctx, node->cfgname, node, "cfgname", depth + 1);
|
7628
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7596
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cfgname) == 1 && linitial(node->cfgname) == NIL)) {
|
7629
7597
|
XXH3_copyState(ctx->xxh_state, prev);
|
7630
7598
|
if (ctx->write_tokens)
|
7631
7599
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7641,7 +7609,7 @@ _fingerprintAlterTSConfigurationStmt(FingerprintContext *ctx, const AlterTSConfi
|
|
7641
7609
|
|
7642
7610
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7643
7611
|
_fingerprintNode(ctx, node->dicts, node, "dicts", depth + 1);
|
7644
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7612
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->dicts) == 1 && linitial(node->dicts) == NIL)) {
|
7645
7613
|
XXH3_copyState(ctx->xxh_state, prev);
|
7646
7614
|
if (ctx->write_tokens)
|
7647
7615
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7677,7 +7645,7 @@ _fingerprintAlterTSConfigurationStmt(FingerprintContext *ctx, const AlterTSConfi
|
|
7677
7645
|
|
7678
7646
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7679
7647
|
_fingerprintNode(ctx, node->tokentype, node, "tokentype", depth + 1);
|
7680
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7648
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tokentype) == 1 && linitial(node->tokentype) == NIL)) {
|
7681
7649
|
XXH3_copyState(ctx->xxh_state, prev);
|
7682
7650
|
if (ctx->write_tokens)
|
7683
7651
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7703,7 +7671,7 @@ _fingerprintCreateFdwStmt(FingerprintContext *ctx, const CreateFdwStmt *node, co
|
|
7703
7671
|
|
7704
7672
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7705
7673
|
_fingerprintNode(ctx, node->func_options, node, "func_options", depth + 1);
|
7706
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7674
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->func_options) == 1 && linitial(node->func_options) == NIL)) {
|
7707
7675
|
XXH3_copyState(ctx->xxh_state, prev);
|
7708
7676
|
if (ctx->write_tokens)
|
7709
7677
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7719,7 +7687,7 @@ _fingerprintCreateFdwStmt(FingerprintContext *ctx, const CreateFdwStmt *node, co
|
|
7719
7687
|
|
7720
7688
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7721
7689
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7722
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7690
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7723
7691
|
XXH3_copyState(ctx->xxh_state, prev);
|
7724
7692
|
if (ctx->write_tokens)
|
7725
7693
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7745,7 +7713,7 @@ _fingerprintAlterFdwStmt(FingerprintContext *ctx, const AlterFdwStmt *node, cons
|
|
7745
7713
|
|
7746
7714
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7747
7715
|
_fingerprintNode(ctx, node->func_options, node, "func_options", depth + 1);
|
7748
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7716
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->func_options) == 1 && linitial(node->func_options) == NIL)) {
|
7749
7717
|
XXH3_copyState(ctx->xxh_state, prev);
|
7750
7718
|
if (ctx->write_tokens)
|
7751
7719
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7761,7 +7729,7 @@ _fingerprintAlterFdwStmt(FingerprintContext *ctx, const AlterFdwStmt *node, cons
|
|
7761
7729
|
|
7762
7730
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7763
7731
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7764
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7732
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7765
7733
|
XXH3_copyState(ctx->xxh_state, prev);
|
7766
7734
|
if (ctx->write_tokens)
|
7767
7735
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7792,7 +7760,7 @@ _fingerprintCreateForeignServerStmt(FingerprintContext *ctx, const CreateForeign
|
|
7792
7760
|
|
7793
7761
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7794
7762
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7795
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7763
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7796
7764
|
XXH3_copyState(ctx->xxh_state, prev);
|
7797
7765
|
if (ctx->write_tokens)
|
7798
7766
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7833,7 +7801,7 @@ _fingerprintAlterForeignServerStmt(FingerprintContext *ctx, const AlterForeignSe
|
|
7833
7801
|
|
7834
7802
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7835
7803
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7836
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7804
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7837
7805
|
XXH3_copyState(ctx->xxh_state, prev);
|
7838
7806
|
if (ctx->write_tokens)
|
7839
7807
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7869,7 +7837,7 @@ _fingerprintCreateUserMappingStmt(FingerprintContext *ctx, const CreateUserMappi
|
|
7869
7837
|
|
7870
7838
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7871
7839
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7872
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7840
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7873
7841
|
XXH3_copyState(ctx->xxh_state, prev);
|
7874
7842
|
if (ctx->write_tokens)
|
7875
7843
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7912,7 +7880,7 @@ _fingerprintAlterUserMappingStmt(FingerprintContext *ctx, const AlterUserMapping
|
|
7912
7880
|
|
7913
7881
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7914
7882
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7915
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7883
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7916
7884
|
XXH3_copyState(ctx->xxh_state, prev);
|
7917
7885
|
if (ctx->write_tokens)
|
7918
7886
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -7992,7 +7960,7 @@ _fingerprintAlterTableSpaceOptionsStmt(FingerprintContext *ctx, const AlterTable
|
|
7992
7960
|
|
7993
7961
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
7994
7962
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
7995
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
7963
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
7996
7964
|
XXH3_copyState(ctx->xxh_state, prev);
|
7997
7965
|
if (ctx->write_tokens)
|
7998
7966
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8038,7 +8006,7 @@ _fingerprintAlterTableMoveAllStmt(FingerprintContext *ctx, const AlterTableMoveA
|
|
8038
8006
|
|
8039
8007
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8040
8008
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
8041
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8009
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
8042
8010
|
XXH3_copyState(ctx->xxh_state, prev);
|
8043
8011
|
if (ctx->write_tokens)
|
8044
8012
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8098,7 +8066,7 @@ _fingerprintCreateForeignTableStmt(FingerprintContext *ctx, const CreateForeignT
|
|
8098
8066
|
|
8099
8067
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8100
8068
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8101
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8069
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8102
8070
|
XXH3_copyState(ctx->xxh_state, prev);
|
8103
8071
|
if (ctx->write_tokens)
|
8104
8072
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8134,7 +8102,7 @@ _fingerprintImportForeignSchemaStmt(FingerprintContext *ctx, const ImportForeign
|
|
8134
8102
|
|
8135
8103
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8136
8104
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8137
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8105
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8138
8106
|
XXH3_copyState(ctx->xxh_state, prev);
|
8139
8107
|
if (ctx->write_tokens)
|
8140
8108
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8160,7 +8128,7 @@ _fingerprintImportForeignSchemaStmt(FingerprintContext *ctx, const ImportForeign
|
|
8160
8128
|
|
8161
8129
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8162
8130
|
_fingerprintNode(ctx, node->table_list, node, "table_list", depth + 1);
|
8163
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8131
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->table_list) == 1 && linitial(node->table_list) == NIL)) {
|
8164
8132
|
XXH3_copyState(ctx->xxh_state, prev);
|
8165
8133
|
if (ctx->write_tokens)
|
8166
8134
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8191,7 +8159,7 @@ _fingerprintCreateExtensionStmt(FingerprintContext *ctx, const CreateExtensionSt
|
|
8191
8159
|
|
8192
8160
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8193
8161
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8194
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8162
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8195
8163
|
XXH3_copyState(ctx->xxh_state, prev);
|
8196
8164
|
if (ctx->write_tokens)
|
8197
8165
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8217,7 +8185,7 @@ _fingerprintAlterExtensionStmt(FingerprintContext *ctx, const AlterExtensionStmt
|
|
8217
8185
|
|
8218
8186
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8219
8187
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8220
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8188
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8221
8189
|
XXH3_copyState(ctx->xxh_state, prev);
|
8222
8190
|
if (ctx->write_tokens)
|
8223
8191
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8282,7 +8250,7 @@ _fingerprintCreateEventTrigStmt(FingerprintContext *ctx, const CreateEventTrigSt
|
|
8282
8250
|
|
8283
8251
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8284
8252
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
8285
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8253
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
8286
8254
|
XXH3_copyState(ctx->xxh_state, prev);
|
8287
8255
|
if (ctx->write_tokens)
|
8288
8256
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8303,7 +8271,7 @@ _fingerprintCreateEventTrigStmt(FingerprintContext *ctx, const CreateEventTrigSt
|
|
8303
8271
|
|
8304
8272
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8305
8273
|
_fingerprintNode(ctx, node->whenclause, node, "whenclause", depth + 1);
|
8306
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8274
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->whenclause) == 1 && linitial(node->whenclause) == NIL)) {
|
8307
8275
|
XXH3_copyState(ctx->xxh_state, prev);
|
8308
8276
|
if (ctx->write_tokens)
|
8309
8277
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8442,7 +8410,7 @@ _fingerprintCreatePolicyStmt(FingerprintContext *ctx, const CreatePolicyStmt *no
|
|
8442
8410
|
|
8443
8411
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8444
8412
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
8445
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8413
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
8446
8414
|
XXH3_copyState(ctx->xxh_state, prev);
|
8447
8415
|
if (ctx->write_tokens)
|
8448
8416
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8519,7 +8487,7 @@ _fingerprintAlterPolicyStmt(FingerprintContext *ctx, const AlterPolicyStmt *node
|
|
8519
8487
|
|
8520
8488
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8521
8489
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
8522
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8490
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
8523
8491
|
XXH3_copyState(ctx->xxh_state, prev);
|
8524
8492
|
if (ctx->write_tokens)
|
8525
8493
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8651,7 +8619,7 @@ _fingerprintCreateAmStmt(FingerprintContext *ctx, const CreateAmStmt *node, cons
|
|
8651
8619
|
|
8652
8620
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8653
8621
|
_fingerprintNode(ctx, node->handler_name, node, "handler_name", depth + 1);
|
8654
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8622
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->handler_name) == 1 && linitial(node->handler_name) == NIL)) {
|
8655
8623
|
XXH3_copyState(ctx->xxh_state, prev);
|
8656
8624
|
if (ctx->write_tokens)
|
8657
8625
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8677,7 +8645,7 @@ _fingerprintCreatePublicationStmt(FingerprintContext *ctx, const CreatePublicati
|
|
8677
8645
|
|
8678
8646
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8679
8647
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8680
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8648
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8681
8649
|
XXH3_copyState(ctx->xxh_state, prev);
|
8682
8650
|
if (ctx->write_tokens)
|
8683
8651
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8698,7 +8666,7 @@ _fingerprintCreatePublicationStmt(FingerprintContext *ctx, const CreatePublicati
|
|
8698
8666
|
|
8699
8667
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8700
8668
|
_fingerprintNode(ctx, node->tables, node, "tables", depth + 1);
|
8701
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8669
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tables) == 1 && linitial(node->tables) == NIL)) {
|
8702
8670
|
XXH3_copyState(ctx->xxh_state, prev);
|
8703
8671
|
if (ctx->write_tokens)
|
8704
8672
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8724,7 +8692,7 @@ _fingerprintAlterPublicationStmt(FingerprintContext *ctx, const AlterPublication
|
|
8724
8692
|
|
8725
8693
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8726
8694
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8727
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8695
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8728
8696
|
XXH3_copyState(ctx->xxh_state, prev);
|
8729
8697
|
if (ctx->write_tokens)
|
8730
8698
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8750,7 +8718,7 @@ _fingerprintAlterPublicationStmt(FingerprintContext *ctx, const AlterPublication
|
|
8750
8718
|
|
8751
8719
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8752
8720
|
_fingerprintNode(ctx, node->tables, node, "tables", depth + 1);
|
8753
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8721
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tables) == 1 && linitial(node->tables) == NIL)) {
|
8754
8722
|
XXH3_copyState(ctx->xxh_state, prev);
|
8755
8723
|
if (ctx->write_tokens)
|
8756
8724
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8776,7 +8744,7 @@ _fingerprintCreateSubscriptionStmt(FingerprintContext *ctx, const CreateSubscrip
|
|
8776
8744
|
|
8777
8745
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8778
8746
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8779
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8747
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8780
8748
|
XXH3_copyState(ctx->xxh_state, prev);
|
8781
8749
|
if (ctx->write_tokens)
|
8782
8750
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8792,7 +8760,7 @@ _fingerprintCreateSubscriptionStmt(FingerprintContext *ctx, const CreateSubscrip
|
|
8792
8760
|
|
8793
8761
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8794
8762
|
_fingerprintNode(ctx, node->publication, node, "publication", depth + 1);
|
8795
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8763
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->publication) == 1 && linitial(node->publication) == NIL)) {
|
8796
8764
|
XXH3_copyState(ctx->xxh_state, prev);
|
8797
8765
|
if (ctx->write_tokens)
|
8798
8766
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8828,7 +8796,7 @@ _fingerprintAlterSubscriptionStmt(FingerprintContext *ctx, const AlterSubscripti
|
|
8828
8796
|
|
8829
8797
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8830
8798
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
8831
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8799
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
8832
8800
|
XXH3_copyState(ctx->xxh_state, prev);
|
8833
8801
|
if (ctx->write_tokens)
|
8834
8802
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8844,7 +8812,7 @@ _fingerprintAlterSubscriptionStmt(FingerprintContext *ctx, const AlterSubscripti
|
|
8844
8812
|
|
8845
8813
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8846
8814
|
_fingerprintNode(ctx, node->publication, node, "publication", depth + 1);
|
8847
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8815
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->publication) == 1 && linitial(node->publication) == NIL)) {
|
8848
8816
|
XXH3_copyState(ctx->xxh_state, prev);
|
8849
8817
|
if (ctx->write_tokens)
|
8850
8818
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8890,7 +8858,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
8890
8858
|
|
8891
8859
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8892
8860
|
_fingerprintNode(ctx, node->defnames, node, "defnames", depth + 1);
|
8893
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8861
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->defnames) == 1 && linitial(node->defnames) == NIL)) {
|
8894
8862
|
XXH3_copyState(ctx->xxh_state, prev);
|
8895
8863
|
if (ctx->write_tokens)
|
8896
8864
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8906,7 +8874,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
8906
8874
|
|
8907
8875
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8908
8876
|
_fingerprintNode(ctx, node->exprs, node, "exprs", depth + 1);
|
8909
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8877
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->exprs) == 1 && linitial(node->exprs) == NIL)) {
|
8910
8878
|
XXH3_copyState(ctx->xxh_state, prev);
|
8911
8879
|
if (ctx->write_tokens)
|
8912
8880
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8927,7 +8895,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
8927
8895
|
|
8928
8896
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8929
8897
|
_fingerprintNode(ctx, node->relations, node, "relations", depth + 1);
|
8930
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8898
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->relations) == 1 && linitial(node->relations) == NIL)) {
|
8931
8899
|
XXH3_copyState(ctx->xxh_state, prev);
|
8932
8900
|
if (ctx->write_tokens)
|
8933
8901
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8943,7 +8911,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
8943
8911
|
|
8944
8912
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8945
8913
|
_fingerprintNode(ctx, node->stat_types, node, "stat_types", depth + 1);
|
8946
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8914
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->stat_types) == 1 && linitial(node->stat_types) == NIL)) {
|
8947
8915
|
XXH3_copyState(ctx->xxh_state, prev);
|
8948
8916
|
if (ctx->write_tokens)
|
8949
8917
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -8969,7 +8937,7 @@ _fingerprintAlterCollationStmt(FingerprintContext *ctx, const AlterCollationStmt
|
|
8969
8937
|
|
8970
8938
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
8971
8939
|
_fingerprintNode(ctx, node->collname, node, "collname", depth + 1);
|
8972
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
8940
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collname) == 1 && linitial(node->collname) == NIL)) {
|
8973
8941
|
XXH3_copyState(ctx->xxh_state, prev);
|
8974
8942
|
if (ctx->write_tokens)
|
8975
8943
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9029,7 +8997,7 @@ _fingerprintAlterStatsStmt(FingerprintContext *ctx, const AlterStatsStmt *node,
|
|
9029
8997
|
|
9030
8998
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9031
8999
|
_fingerprintNode(ctx, node->defnames, node, "defnames", depth + 1);
|
9032
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9000
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->defnames) == 1 && linitial(node->defnames) == NIL)) {
|
9033
9001
|
XXH3_copyState(ctx->xxh_state, prev);
|
9034
9002
|
if (ctx->write_tokens)
|
9035
9003
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9089,7 +9057,7 @@ _fingerprintA_Expr(FingerprintContext *ctx, const A_Expr *node, const void *pare
|
|
9089
9057
|
|
9090
9058
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9091
9059
|
_fingerprintNode(ctx, node->name, node, "name", depth + 1);
|
9092
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9060
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->name) == 1 && linitial(node->name) == NIL)) {
|
9093
9061
|
XXH3_copyState(ctx->xxh_state, prev);
|
9094
9062
|
if (ctx->write_tokens)
|
9095
9063
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9127,7 +9095,7 @@ _fingerprintColumnRef(FingerprintContext *ctx, const ColumnRef *node, const void
|
|
9127
9095
|
|
9128
9096
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9129
9097
|
_fingerprintNode(ctx, node->fields, node, "fields", depth + 1);
|
9130
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9098
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fields) == 1 && linitial(node->fields) == NIL)) {
|
9131
9099
|
XXH3_copyState(ctx->xxh_state, prev);
|
9132
9100
|
if (ctx->write_tokens)
|
9133
9101
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9184,7 +9152,7 @@ _fingerprintFuncCall(FingerprintContext *ctx, const FuncCall *node, const void *
|
|
9184
9152
|
|
9185
9153
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9186
9154
|
_fingerprintNode(ctx, node->agg_order, node, "agg_order", depth + 1);
|
9187
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9155
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->agg_order) == 1 && linitial(node->agg_order) == NIL)) {
|
9188
9156
|
XXH3_copyState(ctx->xxh_state, prev);
|
9189
9157
|
if (ctx->write_tokens)
|
9190
9158
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9210,7 +9178,7 @@ _fingerprintFuncCall(FingerprintContext *ctx, const FuncCall *node, const void *
|
|
9210
9178
|
|
9211
9179
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9212
9180
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
9213
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9181
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
9214
9182
|
XXH3_copyState(ctx->xxh_state, prev);
|
9215
9183
|
if (ctx->write_tokens)
|
9216
9184
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9231,7 +9199,7 @@ _fingerprintFuncCall(FingerprintContext *ctx, const FuncCall *node, const void *
|
|
9231
9199
|
|
9232
9200
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9233
9201
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
9234
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9202
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
9235
9203
|
XXH3_copyState(ctx->xxh_state, prev);
|
9236
9204
|
if (ctx->write_tokens)
|
9237
9205
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9337,7 +9305,7 @@ _fingerprintA_Indirection(FingerprintContext *ctx, const A_Indirection *node, co
|
|
9337
9305
|
|
9338
9306
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9339
9307
|
_fingerprintNode(ctx, node->indirection, node, "indirection", depth + 1);
|
9340
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9308
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indirection) == 1 && linitial(node->indirection) == NIL)) {
|
9341
9309
|
XXH3_copyState(ctx->xxh_state, prev);
|
9342
9310
|
if (ctx->write_tokens)
|
9343
9311
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9358,7 +9326,7 @@ _fingerprintA_ArrayExpr(FingerprintContext *ctx, const A_ArrayExpr *node, const
|
|
9358
9326
|
|
9359
9327
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9360
9328
|
_fingerprintNode(ctx, node->elements, node, "elements", depth + 1);
|
9361
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9329
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->elements) == 1 && linitial(node->elements) == NIL)) {
|
9362
9330
|
XXH3_copyState(ctx->xxh_state, prev);
|
9363
9331
|
if (ctx->write_tokens)
|
9364
9332
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9381,7 +9349,7 @@ _fingerprintResTarget(FingerprintContext *ctx, const ResTarget *node, const void
|
|
9381
9349
|
|
9382
9350
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9383
9351
|
_fingerprintNode(ctx, node->indirection, node, "indirection", depth + 1);
|
9384
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9352
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indirection) == 1 && linitial(node->indirection) == NIL)) {
|
9385
9353
|
XXH3_copyState(ctx->xxh_state, prev);
|
9386
9354
|
if (ctx->write_tokens)
|
9387
9355
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9520,7 +9488,7 @@ _fingerprintCollateClause(FingerprintContext *ctx, const CollateClause *node, co
|
|
9520
9488
|
|
9521
9489
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9522
9490
|
_fingerprintNode(ctx, node->collname, node, "collname", depth + 1);
|
9523
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9491
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collname) == 1 && linitial(node->collname) == NIL)) {
|
9524
9492
|
XXH3_copyState(ctx->xxh_state, prev);
|
9525
9493
|
if (ctx->write_tokens)
|
9526
9494
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9572,7 +9540,7 @@ _fingerprintSortBy(FingerprintContext *ctx, const SortBy *node, const void *pare
|
|
9572
9540
|
|
9573
9541
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9574
9542
|
_fingerprintNode(ctx, node->useOp, node, "useOp", depth + 1);
|
9575
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9543
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->useOp) == 1 && linitial(node->useOp) == NIL)) {
|
9576
9544
|
XXH3_copyState(ctx->xxh_state, prev);
|
9577
9545
|
if (ctx->write_tokens)
|
9578
9546
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9624,7 +9592,7 @@ _fingerprintWindowDef(FingerprintContext *ctx, const WindowDef *node, const void
|
|
9624
9592
|
|
9625
9593
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9626
9594
|
_fingerprintNode(ctx, node->orderClause, node, "orderClause", depth + 1);
|
9627
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9595
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->orderClause) == 1 && linitial(node->orderClause) == NIL)) {
|
9628
9596
|
XXH3_copyState(ctx->xxh_state, prev);
|
9629
9597
|
if (ctx->write_tokens)
|
9630
9598
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9640,7 +9608,7 @@ _fingerprintWindowDef(FingerprintContext *ctx, const WindowDef *node, const void
|
|
9640
9608
|
|
9641
9609
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9642
9610
|
_fingerprintNode(ctx, node->partitionClause, node, "partitionClause", depth + 1);
|
9643
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9611
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->partitionClause) == 1 && linitial(node->partitionClause) == NIL)) {
|
9644
9612
|
XXH3_copyState(ctx->xxh_state, prev);
|
9645
9613
|
if (ctx->write_tokens)
|
9646
9614
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9744,7 +9712,7 @@ _fingerprintRangeFunction(FingerprintContext *ctx, const RangeFunction *node, co
|
|
9744
9712
|
|
9745
9713
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9746
9714
|
_fingerprintNode(ctx, node->coldeflist, node, "coldeflist", depth + 1);
|
9747
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9715
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coldeflist) == 1 && linitial(node->coldeflist) == NIL)) {
|
9748
9716
|
XXH3_copyState(ctx->xxh_state, prev);
|
9749
9717
|
if (ctx->write_tokens)
|
9750
9718
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9760,7 +9728,7 @@ _fingerprintRangeFunction(FingerprintContext *ctx, const RangeFunction *node, co
|
|
9760
9728
|
|
9761
9729
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9762
9730
|
_fingerprintNode(ctx, node->functions, node, "functions", depth + 1);
|
9763
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9731
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->functions) == 1 && linitial(node->functions) == NIL)) {
|
9764
9732
|
XXH3_copyState(ctx->xxh_state, prev);
|
9765
9733
|
if (ctx->write_tokens)
|
9766
9734
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9796,7 +9764,7 @@ _fingerprintRangeTableSample(FingerprintContext *ctx, const RangeTableSample *no
|
|
9796
9764
|
|
9797
9765
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9798
9766
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
9799
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9767
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
9800
9768
|
XXH3_copyState(ctx->xxh_state, prev);
|
9801
9769
|
if (ctx->write_tokens)
|
9802
9770
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9814,7 +9782,7 @@ _fingerprintRangeTableSample(FingerprintContext *ctx, const RangeTableSample *no
|
|
9814
9782
|
|
9815
9783
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9816
9784
|
_fingerprintNode(ctx, node->method, node, "method", depth + 1);
|
9817
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9785
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->method) == 1 && linitial(node->method) == NIL)) {
|
9818
9786
|
XXH3_copyState(ctx->xxh_state, prev);
|
9819
9787
|
if (ctx->write_tokens)
|
9820
9788
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9886,7 +9854,7 @@ _fingerprintRangeTableFunc(FingerprintContext *ctx, const RangeTableFunc *node,
|
|
9886
9854
|
|
9887
9855
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9888
9856
|
_fingerprintNode(ctx, node->columns, node, "columns", depth + 1);
|
9889
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9857
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->columns) == 1 && linitial(node->columns) == NIL)) {
|
9890
9858
|
XXH3_copyState(ctx->xxh_state, prev);
|
9891
9859
|
if (ctx->write_tokens)
|
9892
9860
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -9926,7 +9894,7 @@ _fingerprintRangeTableFunc(FingerprintContext *ctx, const RangeTableFunc *node,
|
|
9926
9894
|
|
9927
9895
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
9928
9896
|
_fingerprintNode(ctx, node->namespaces, node, "namespaces", depth + 1);
|
9929
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
9897
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->namespaces) == 1 && linitial(node->namespaces) == NIL)) {
|
9930
9898
|
XXH3_copyState(ctx->xxh_state, prev);
|
9931
9899
|
if (ctx->write_tokens)
|
9932
9900
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10037,7 +10005,7 @@ _fingerprintTypeName(FingerprintContext *ctx, const TypeName *node, const void *
|
|
10037
10005
|
|
10038
10006
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10039
10007
|
_fingerprintNode(ctx, node->arrayBounds, node, "arrayBounds", depth + 1);
|
10040
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10008
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->arrayBounds) == 1 && linitial(node->arrayBounds) == NIL)) {
|
10041
10009
|
XXH3_copyState(ctx->xxh_state, prev);
|
10042
10010
|
if (ctx->write_tokens)
|
10043
10011
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10055,7 +10023,7 @@ _fingerprintTypeName(FingerprintContext *ctx, const TypeName *node, const void *
|
|
10055
10023
|
|
10056
10024
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10057
10025
|
_fingerprintNode(ctx, node->names, node, "names", depth + 1);
|
10058
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10026
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->names) == 1 && linitial(node->names) == NIL)) {
|
10059
10027
|
XXH3_copyState(ctx->xxh_state, prev);
|
10060
10028
|
if (ctx->write_tokens)
|
10061
10029
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10095,7 +10063,7 @@ _fingerprintTypeName(FingerprintContext *ctx, const TypeName *node, const void *
|
|
10095
10063
|
|
10096
10064
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10097
10065
|
_fingerprintNode(ctx, node->typmods, node, "typmods", depth + 1);
|
10098
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10066
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typmods) == 1 && linitial(node->typmods) == NIL)) {
|
10099
10067
|
XXH3_copyState(ctx->xxh_state, prev);
|
10100
10068
|
if (ctx->write_tokens)
|
10101
10069
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10145,7 +10113,7 @@ _fingerprintColumnDef(FingerprintContext *ctx, const ColumnDef *node, const void
|
|
10145
10113
|
|
10146
10114
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10147
10115
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
10148
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10116
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
10149
10117
|
XXH3_copyState(ctx->xxh_state, prev);
|
10150
10118
|
if (ctx->write_tokens)
|
10151
10119
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10178,7 +10146,7 @@ _fingerprintColumnDef(FingerprintContext *ctx, const ColumnDef *node, const void
|
|
10178
10146
|
|
10179
10147
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10180
10148
|
_fingerprintNode(ctx, node->fdwoptions, node, "fdwoptions", depth + 1);
|
10181
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10149
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fdwoptions) == 1 && linitial(node->fdwoptions) == NIL)) {
|
10182
10150
|
XXH3_copyState(ctx->xxh_state, prev);
|
10183
10151
|
if (ctx->write_tokens)
|
10184
10152
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10292,7 +10260,7 @@ _fingerprintIndexElem(FingerprintContext *ctx, const IndexElem *node, const void
|
|
10292
10260
|
|
10293
10261
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10294
10262
|
_fingerprintNode(ctx, node->collation, node, "collation", depth + 1);
|
10295
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10263
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collation) == 1 && linitial(node->collation) == NIL)) {
|
10296
10264
|
XXH3_copyState(ctx->xxh_state, prev);
|
10297
10265
|
if (ctx->write_tokens)
|
10298
10266
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10340,7 +10308,7 @@ _fingerprintIndexElem(FingerprintContext *ctx, const IndexElem *node, const void
|
|
10340
10308
|
|
10341
10309
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10342
10310
|
_fingerprintNode(ctx, node->opclass, node, "opclass", depth + 1);
|
10343
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10311
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclass) == 1 && linitial(node->opclass) == NIL)) {
|
10344
10312
|
XXH3_copyState(ctx->xxh_state, prev);
|
10345
10313
|
if (ctx->write_tokens)
|
10346
10314
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10356,7 +10324,7 @@ _fingerprintIndexElem(FingerprintContext *ctx, const IndexElem *node, const void
|
|
10356
10324
|
|
10357
10325
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10358
10326
|
_fingerprintNode(ctx, node->opclassopts, node, "opclassopts", depth + 1);
|
10359
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10327
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclassopts) == 1 && linitial(node->opclassopts) == NIL)) {
|
10360
10328
|
XXH3_copyState(ctx->xxh_state, prev);
|
10361
10329
|
if (ctx->write_tokens)
|
10362
10330
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10407,7 +10375,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10407
10375
|
|
10408
10376
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10409
10377
|
_fingerprintNode(ctx, node->exclusions, node, "exclusions", depth + 1);
|
10410
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10378
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->exclusions) == 1 && linitial(node->exclusions) == NIL)) {
|
10411
10379
|
XXH3_copyState(ctx->xxh_state, prev);
|
10412
10380
|
if (ctx->write_tokens)
|
10413
10381
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10423,7 +10391,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10423
10391
|
|
10424
10392
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10425
10393
|
_fingerprintNode(ctx, node->fk_attrs, node, "fk_attrs", depth + 1);
|
10426
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10394
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fk_attrs) == 1 && linitial(node->fk_attrs) == NIL)) {
|
10427
10395
|
XXH3_copyState(ctx->xxh_state, prev);
|
10428
10396
|
if (ctx->write_tokens)
|
10429
10397
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10463,7 +10431,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10463
10431
|
|
10464
10432
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10465
10433
|
_fingerprintNode(ctx, node->including, node, "including", depth + 1);
|
10466
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10434
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->including) == 1 && linitial(node->including) == NIL)) {
|
10467
10435
|
XXH3_copyState(ctx->xxh_state, prev);
|
10468
10436
|
if (ctx->write_tokens)
|
10469
10437
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10504,7 +10472,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10504
10472
|
|
10505
10473
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10506
10474
|
_fingerprintNode(ctx, node->keys, node, "keys", depth + 1);
|
10507
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10475
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->keys) == 1 && linitial(node->keys) == NIL)) {
|
10508
10476
|
XXH3_copyState(ctx->xxh_state, prev);
|
10509
10477
|
if (ctx->write_tokens)
|
10510
10478
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10522,7 +10490,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10522
10490
|
|
10523
10491
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10524
10492
|
_fingerprintNode(ctx, node->old_conpfeqop, node, "old_conpfeqop", depth + 1);
|
10525
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10493
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->old_conpfeqop) == 1 && linitial(node->old_conpfeqop) == NIL)) {
|
10526
10494
|
XXH3_copyState(ctx->xxh_state, prev);
|
10527
10495
|
if (ctx->write_tokens)
|
10528
10496
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10545,7 +10513,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10545
10513
|
|
10546
10514
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10547
10515
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
10548
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10516
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
10549
10517
|
XXH3_copyState(ctx->xxh_state, prev);
|
10550
10518
|
if (ctx->write_tokens)
|
10551
10519
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10561,7 +10529,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
10561
10529
|
|
10562
10530
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10563
10531
|
_fingerprintNode(ctx, node->pk_attrs, node, "pk_attrs", depth + 1);
|
10564
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10532
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->pk_attrs) == 1 && linitial(node->pk_attrs) == NIL)) {
|
10565
10533
|
XXH3_copyState(ctx->xxh_state, prev);
|
10566
10534
|
if (ctx->write_tokens)
|
10567
10535
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10706,7 +10674,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10706
10674
|
|
10707
10675
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10708
10676
|
_fingerprintNode(ctx, node->colcollations, node, "colcollations", depth + 1);
|
10709
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10677
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colcollations) == 1 && linitial(node->colcollations) == NIL)) {
|
10710
10678
|
XXH3_copyState(ctx->xxh_state, prev);
|
10711
10679
|
if (ctx->write_tokens)
|
10712
10680
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10722,7 +10690,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10722
10690
|
|
10723
10691
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10724
10692
|
_fingerprintNode(ctx, node->coltypes, node, "coltypes", depth + 1);
|
10725
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10693
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypes) == 1 && linitial(node->coltypes) == NIL)) {
|
10726
10694
|
XXH3_copyState(ctx->xxh_state, prev);
|
10727
10695
|
if (ctx->write_tokens)
|
10728
10696
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10738,7 +10706,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10738
10706
|
|
10739
10707
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10740
10708
|
_fingerprintNode(ctx, node->coltypmods, node, "coltypmods", depth + 1);
|
10741
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10709
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypmods) == 1 && linitial(node->coltypmods) == NIL)) {
|
10742
10710
|
XXH3_copyState(ctx->xxh_state, prev);
|
10743
10711
|
if (ctx->write_tokens)
|
10744
10712
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10815,7 +10783,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10815
10783
|
|
10816
10784
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10817
10785
|
_fingerprintNode(ctx, node->functions, node, "functions", depth + 1);
|
10818
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10786
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->functions) == 1 && linitial(node->functions) == NIL)) {
|
10819
10787
|
XXH3_copyState(ctx->xxh_state, prev);
|
10820
10788
|
if (ctx->write_tokens)
|
10821
10789
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10856,7 +10824,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10856
10824
|
|
10857
10825
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10858
10826
|
_fingerprintNode(ctx, node->joinaliasvars, node, "joinaliasvars", depth + 1);
|
10859
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10827
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->joinaliasvars) == 1 && linitial(node->joinaliasvars) == NIL)) {
|
10860
10828
|
XXH3_copyState(ctx->xxh_state, prev);
|
10861
10829
|
if (ctx->write_tokens)
|
10862
10830
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10872,7 +10840,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10872
10840
|
|
10873
10841
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10874
10842
|
_fingerprintNode(ctx, node->joinleftcols, node, "joinleftcols", depth + 1);
|
10875
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10843
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->joinleftcols) == 1 && linitial(node->joinleftcols) == NIL)) {
|
10876
10844
|
XXH3_copyState(ctx->xxh_state, prev);
|
10877
10845
|
if (ctx->write_tokens)
|
10878
10846
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10895,7 +10863,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10895
10863
|
|
10896
10864
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10897
10865
|
_fingerprintNode(ctx, node->joinrightcols, node, "joinrightcols", depth + 1);
|
10898
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10866
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->joinrightcols) == 1 && linitial(node->joinrightcols) == NIL)) {
|
10899
10867
|
XXH3_copyState(ctx->xxh_state, prev);
|
10900
10868
|
if (ctx->write_tokens)
|
10901
10869
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -10953,7 +10921,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
10953
10921
|
|
10954
10922
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
10955
10923
|
_fingerprintNode(ctx, node->securityQuals, node, "securityQuals", depth + 1);
|
10956
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
10924
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->securityQuals) == 1 && linitial(node->securityQuals) == NIL)) {
|
10957
10925
|
XXH3_copyState(ctx->xxh_state, prev);
|
10958
10926
|
if (ctx->write_tokens)
|
10959
10927
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11060,7 +11028,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
11060
11028
|
|
11061
11029
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11062
11030
|
_fingerprintNode(ctx, node->values_lists, node, "values_lists", depth + 1);
|
11063
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11031
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->values_lists) == 1 && linitial(node->values_lists) == NIL)) {
|
11064
11032
|
XXH3_copyState(ctx->xxh_state, prev);
|
11065
11033
|
if (ctx->write_tokens)
|
11066
11034
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11081,7 +11049,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
11081
11049
|
|
11082
11050
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11083
11051
|
_fingerprintNode(ctx, node->funccolcollations, node, "funccolcollations", depth + 1);
|
11084
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11052
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccolcollations) == 1 && linitial(node->funccolcollations) == NIL)) {
|
11085
11053
|
XXH3_copyState(ctx->xxh_state, prev);
|
11086
11054
|
if (ctx->write_tokens)
|
11087
11055
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11104,7 +11072,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
11104
11072
|
|
11105
11073
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11106
11074
|
_fingerprintNode(ctx, node->funccolnames, node, "funccolnames", depth + 1);
|
11107
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11075
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccolnames) == 1 && linitial(node->funccolnames) == NIL)) {
|
11108
11076
|
XXH3_copyState(ctx->xxh_state, prev);
|
11109
11077
|
if (ctx->write_tokens)
|
11110
11078
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11120,7 +11088,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
11120
11088
|
|
11121
11089
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11122
11090
|
_fingerprintNode(ctx, node->funccoltypes, node, "funccoltypes", depth + 1);
|
11123
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11091
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccoltypes) == 1 && linitial(node->funccoltypes) == NIL)) {
|
11124
11092
|
XXH3_copyState(ctx->xxh_state, prev);
|
11125
11093
|
if (ctx->write_tokens)
|
11126
11094
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11136,7 +11104,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
11136
11104
|
|
11137
11105
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11138
11106
|
_fingerprintNode(ctx, node->funccoltypmods, node, "funccoltypmods", depth + 1);
|
11139
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11107
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccoltypmods) == 1 && linitial(node->funccoltypmods) == NIL)) {
|
11140
11108
|
XXH3_copyState(ctx->xxh_state, prev);
|
11141
11109
|
if (ctx->write_tokens)
|
11142
11110
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11189,7 +11157,7 @@ _fingerprintTableSampleClause(FingerprintContext *ctx, const TableSampleClause *
|
|
11189
11157
|
|
11190
11158
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11191
11159
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
11192
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11160
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
11193
11161
|
XXH3_copyState(ctx->xxh_state, prev);
|
11194
11162
|
if (ctx->write_tokens)
|
11195
11163
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11312,7 +11280,7 @@ _fingerprintGroupingSet(FingerprintContext *ctx, const GroupingSet *node, const
|
|
11312
11280
|
|
11313
11281
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11314
11282
|
_fingerprintNode(ctx, node->content, node, "content", depth + 1);
|
11315
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11283
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->content) == 1 && linitial(node->content) == NIL)) {
|
11316
11284
|
XXH3_copyState(ctx->xxh_state, prev);
|
11317
11285
|
if (ctx->write_tokens)
|
11318
11286
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11398,7 +11366,7 @@ _fingerprintWindowClause(FingerprintContext *ctx, const WindowClause *node, cons
|
|
11398
11366
|
|
11399
11367
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11400
11368
|
_fingerprintNode(ctx, node->orderClause, node, "orderClause", depth + 1);
|
11401
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11369
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->orderClause) == 1 && linitial(node->orderClause) == NIL)) {
|
11402
11370
|
XXH3_copyState(ctx->xxh_state, prev);
|
11403
11371
|
if (ctx->write_tokens)
|
11404
11372
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11414,7 +11382,7 @@ _fingerprintWindowClause(FingerprintContext *ctx, const WindowClause *node, cons
|
|
11414
11382
|
|
11415
11383
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11416
11384
|
_fingerprintNode(ctx, node->partitionClause, node, "partitionClause", depth + 1);
|
11417
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11385
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->partitionClause) == 1 && linitial(node->partitionClause) == NIL)) {
|
11418
11386
|
XXH3_copyState(ctx->xxh_state, prev);
|
11419
11387
|
if (ctx->write_tokens)
|
11420
11388
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11476,7 +11444,7 @@ _fingerprintObjectWithArgs(FingerprintContext *ctx, const ObjectWithArgs *node,
|
|
11476
11444
|
|
11477
11445
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11478
11446
|
_fingerprintNode(ctx, node->objargs, node, "objargs", depth + 1);
|
11479
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11447
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objargs) == 1 && linitial(node->objargs) == NIL)) {
|
11480
11448
|
XXH3_copyState(ctx->xxh_state, prev);
|
11481
11449
|
if (ctx->write_tokens)
|
11482
11450
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11492,7 +11460,7 @@ _fingerprintObjectWithArgs(FingerprintContext *ctx, const ObjectWithArgs *node,
|
|
11492
11460
|
|
11493
11461
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11494
11462
|
_fingerprintNode(ctx, node->objname, node, "objname", depth + 1);
|
11495
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11463
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objname) == 1 && linitial(node->objname) == NIL)) {
|
11496
11464
|
XXH3_copyState(ctx->xxh_state, prev);
|
11497
11465
|
if (ctx->write_tokens)
|
11498
11466
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11513,7 +11481,7 @@ _fingerprintAccessPriv(FingerprintContext *ctx, const AccessPriv *node, const vo
|
|
11513
11481
|
|
11514
11482
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11515
11483
|
_fingerprintNode(ctx, node->cols, node, "cols", depth + 1);
|
11516
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11484
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cols) == 1 && linitial(node->cols) == NIL)) {
|
11517
11485
|
XXH3_copyState(ctx->xxh_state, prev);
|
11518
11486
|
if (ctx->write_tokens)
|
11519
11487
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11539,7 +11507,7 @@ _fingerprintCreateOpClassItem(FingerprintContext *ctx, const CreateOpClassItem *
|
|
11539
11507
|
|
11540
11508
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11541
11509
|
_fingerprintNode(ctx, node->class_args, node, "class_args", depth + 1);
|
11542
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11510
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->class_args) == 1 && linitial(node->class_args) == NIL)) {
|
11543
11511
|
XXH3_copyState(ctx->xxh_state, prev);
|
11544
11512
|
if (ctx->write_tokens)
|
11545
11513
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11586,7 +11554,7 @@ _fingerprintCreateOpClassItem(FingerprintContext *ctx, const CreateOpClassItem *
|
|
11586
11554
|
|
11587
11555
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11588
11556
|
_fingerprintNode(ctx, node->order_family, node, "order_family", depth + 1);
|
11589
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11557
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->order_family) == 1 && linitial(node->order_family) == NIL)) {
|
11590
11558
|
XXH3_copyState(ctx->xxh_state, prev);
|
11591
11559
|
if (ctx->write_tokens)
|
11592
11560
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11639,6 +11607,13 @@ _fingerprintTableLikeClause(FingerprintContext *ctx, const TableLikeClause *node
|
|
11639
11607
|
XXH3_freeState(prev);
|
11640
11608
|
}
|
11641
11609
|
|
11610
|
+
if (node->relationOid != 0) {
|
11611
|
+
char buffer[50];
|
11612
|
+
sprintf(buffer, "%d", node->relationOid);
|
11613
|
+
_fingerprintString(ctx, "relationOid");
|
11614
|
+
_fingerprintString(ctx, buffer);
|
11615
|
+
}
|
11616
|
+
|
11642
11617
|
}
|
11643
11618
|
|
11644
11619
|
static void
|
@@ -11683,10 +11658,7 @@ _fingerprintFunctionParameter(FingerprintContext *ctx, const FunctionParameter *
|
|
11683
11658
|
_fingerprintString(ctx, _enumToStringFunctionParameterMode(node->mode));
|
11684
11659
|
}
|
11685
11660
|
|
11686
|
-
|
11687
|
-
_fingerprintString(ctx, "name");
|
11688
|
-
_fingerprintString(ctx, node->name);
|
11689
|
-
}
|
11661
|
+
// Intentionally ignoring node->name for fingerprinting
|
11690
11662
|
|
11691
11663
|
}
|
11692
11664
|
|
@@ -11702,7 +11674,7 @@ _fingerprintLockingClause(FingerprintContext *ctx, const LockingClause *node, co
|
|
11702
11674
|
|
11703
11675
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11704
11676
|
_fingerprintNode(ctx, node->lockedRels, node, "lockedRels", depth + 1);
|
11705
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11677
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->lockedRels) == 1 && linitial(node->lockedRels) == NIL)) {
|
11706
11678
|
XXH3_copyState(ctx->xxh_state, prev);
|
11707
11679
|
if (ctx->write_tokens)
|
11708
11680
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11806,7 +11778,7 @@ _fingerprintWithClause(FingerprintContext *ctx, const WithClause *node, const vo
|
|
11806
11778
|
|
11807
11779
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11808
11780
|
_fingerprintNode(ctx, node->ctes, node, "ctes", depth + 1);
|
11809
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11781
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctes) == 1 && linitial(node->ctes) == NIL)) {
|
11810
11782
|
XXH3_copyState(ctx->xxh_state, prev);
|
11811
11783
|
if (ctx->write_tokens)
|
11812
11784
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11839,7 +11811,7 @@ _fingerprintInferClause(FingerprintContext *ctx, const InferClause *node, const
|
|
11839
11811
|
|
11840
11812
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11841
11813
|
_fingerprintNode(ctx, node->indexElems, node, "indexElems", depth + 1);
|
11842
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11814
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indexElems) == 1 && linitial(node->indexElems) == NIL)) {
|
11843
11815
|
XXH3_copyState(ctx->xxh_state, prev);
|
11844
11816
|
if (ctx->write_tokens)
|
11845
11817
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11903,7 +11875,7 @@ _fingerprintOnConflictClause(FingerprintContext *ctx, const OnConflictClause *no
|
|
11903
11875
|
|
11904
11876
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11905
11877
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
11906
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11878
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
11907
11879
|
XXH3_copyState(ctx->xxh_state, prev);
|
11908
11880
|
if (ctx->write_tokens)
|
11909
11881
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11941,7 +11913,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
11941
11913
|
|
11942
11914
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11943
11915
|
_fingerprintNode(ctx, node->aliascolnames, node, "aliascolnames", depth + 1);
|
11944
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11916
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aliascolnames) == 1 && linitial(node->aliascolnames) == NIL)) {
|
11945
11917
|
XXH3_copyState(ctx->xxh_state, prev);
|
11946
11918
|
if (ctx->write_tokens)
|
11947
11919
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11957,7 +11929,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
11957
11929
|
|
11958
11930
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11959
11931
|
_fingerprintNode(ctx, node->ctecolcollations, node, "ctecolcollations", depth + 1);
|
11960
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11932
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecolcollations) == 1 && linitial(node->ctecolcollations) == NIL)) {
|
11961
11933
|
XXH3_copyState(ctx->xxh_state, prev);
|
11962
11934
|
if (ctx->write_tokens)
|
11963
11935
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11973,7 +11945,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
11973
11945
|
|
11974
11946
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11975
11947
|
_fingerprintNode(ctx, node->ctecolnames, node, "ctecolnames", depth + 1);
|
11976
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11948
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecolnames) == 1 && linitial(node->ctecolnames) == NIL)) {
|
11977
11949
|
XXH3_copyState(ctx->xxh_state, prev);
|
11978
11950
|
if (ctx->write_tokens)
|
11979
11951
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -11989,7 +11961,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
11989
11961
|
|
11990
11962
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
11991
11963
|
_fingerprintNode(ctx, node->ctecoltypes, node, "ctecoltypes", depth + 1);
|
11992
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11964
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecoltypes) == 1 && linitial(node->ctecoltypes) == NIL)) {
|
11993
11965
|
XXH3_copyState(ctx->xxh_state, prev);
|
11994
11966
|
if (ctx->write_tokens)
|
11995
11967
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12005,7 +11977,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
12005
11977
|
|
12006
11978
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12007
11979
|
_fingerprintNode(ctx, node->ctecoltypmods, node, "ctecoltypmods", depth + 1);
|
12008
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
11980
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecoltypmods) == 1 && linitial(node->ctecoltypmods) == NIL)) {
|
12009
11981
|
XXH3_copyState(ctx->xxh_state, prev);
|
12010
11982
|
if (ctx->write_tokens)
|
12011
11983
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12104,7 +12076,7 @@ _fingerprintPartitionElem(FingerprintContext *ctx, const PartitionElem *node, co
|
|
12104
12076
|
|
12105
12077
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12106
12078
|
_fingerprintNode(ctx, node->collation, node, "collation", depth + 1);
|
12107
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12079
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collation) == 1 && linitial(node->collation) == NIL)) {
|
12108
12080
|
XXH3_copyState(ctx->xxh_state, prev);
|
12109
12081
|
if (ctx->write_tokens)
|
12110
12082
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12144,7 +12116,7 @@ _fingerprintPartitionElem(FingerprintContext *ctx, const PartitionElem *node, co
|
|
12144
12116
|
|
12145
12117
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12146
12118
|
_fingerprintNode(ctx, node->opclass, node, "opclass", depth + 1);
|
12147
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12119
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclass) == 1 && linitial(node->opclass) == NIL)) {
|
12148
12120
|
XXH3_copyState(ctx->xxh_state, prev);
|
12149
12121
|
if (ctx->write_tokens)
|
12150
12122
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12167,7 +12139,7 @@ _fingerprintPartitionSpec(FingerprintContext *ctx, const PartitionSpec *node, co
|
|
12167
12139
|
|
12168
12140
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12169
12141
|
_fingerprintNode(ctx, node->partParams, node, "partParams", depth + 1);
|
12170
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12142
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->partParams) == 1 && linitial(node->partParams) == NIL)) {
|
12171
12143
|
XXH3_copyState(ctx->xxh_state, prev);
|
12172
12144
|
if (ctx->write_tokens)
|
12173
12145
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12198,7 +12170,7 @@ _fingerprintPartitionBoundSpec(FingerprintContext *ctx, const PartitionBoundSpec
|
|
12198
12170
|
|
12199
12171
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12200
12172
|
_fingerprintNode(ctx, node->listdatums, node, "listdatums", depth + 1);
|
12201
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12173
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->listdatums) == 1 && linitial(node->listdatums) == NIL)) {
|
12202
12174
|
XXH3_copyState(ctx->xxh_state, prev);
|
12203
12175
|
if (ctx->write_tokens)
|
12204
12176
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12216,7 +12188,7 @@ _fingerprintPartitionBoundSpec(FingerprintContext *ctx, const PartitionBoundSpec
|
|
12216
12188
|
|
12217
12189
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12218
12190
|
_fingerprintNode(ctx, node->lowerdatums, node, "lowerdatums", depth + 1);
|
12219
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12191
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->lowerdatums) == 1 && linitial(node->lowerdatums) == NIL)) {
|
12220
12192
|
XXH3_copyState(ctx->xxh_state, prev);
|
12221
12193
|
if (ctx->write_tokens)
|
12222
12194
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12252,7 +12224,7 @@ _fingerprintPartitionBoundSpec(FingerprintContext *ctx, const PartitionBoundSpec
|
|
12252
12224
|
|
12253
12225
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12254
12226
|
_fingerprintNode(ctx, node->upperdatums, node, "upperdatums", depth + 1);
|
12255
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12227
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->upperdatums) == 1 && linitial(node->upperdatums) == NIL)) {
|
12256
12228
|
XXH3_copyState(ctx->xxh_state, prev);
|
12257
12229
|
if (ctx->write_tokens)
|
12258
12230
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
@@ -12365,7 +12337,7 @@ _fingerprintVacuumRelation(FingerprintContext *ctx, const VacuumRelation *node,
|
|
12365
12337
|
|
12366
12338
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
12367
12339
|
_fingerprintNode(ctx, node->va_cols, node, "va_cols", depth + 1);
|
12368
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
12340
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->va_cols) == 1 && linitial(node->va_cols) == NIL)) {
|
12369
12341
|
XXH3_copyState(ctx->xxh_state, prev);
|
12370
12342
|
if (ctx->write_tokens)
|
12371
12343
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|